Code Monkey home page Code Monkey logo

libtesla's Introduction

libtesla

libtesla is the interface between the Tesla overlay loader and user-made Overlays. It handles all layer creation, UI creation, drawing and input management. It's main goal is to make sure all overlays look and feel similar and don't differenciate themselves from the switch's native overlays.

Screenshots

Overlays do NOT show up on Screenshots. These pictures were taken using a capture card

Example

An example for how to use libtesla can be found here: https://github.com/WerWolv/libtesla/tree/master/example To create your own Overlay, please consider creating a new repository using the official Tesla overlay template: https://github.com/WerWolv/Tesla-Template

Please Note: While it is possible to create overlays without libtesla, it's highly recommended to not do so. libtesla handles showing and hiding of overlays, button combo detection, layer creation and a lot more. Not using it will lead to an inconsistent user experience when using multiple different overlays ultimately making it worse for the end user. If something's missing, please consider opening a PR here.

Credits

  • switchbrew for nx-hbloader which is used as basis for overlay loading
  • kardch for the amazing icon
  • All the devs on AtlasNX, RetroNX and Switchbrew for their feedback
  • All overlay devs for making something awesome out of this :)

libtesla's People

Contributors

aurorawright avatar averne avatar christopher876 avatar diwo avatar ely3m avatar hookedbehemoth avatar itotaljustice avatar masagrator avatar nastys avatar rexshao avatar werwolv avatar znxdomain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libtesla's Issues

Change Combo Button

Hey, i didn't find any info about changing the buttons that i have to press to show the menu, Thanks.

Occasional crash if TV Resolution is not set as 720p in Docked mode

How to reproduce:

  1. Put console in the Dock.
  2. Set "TV Resolution" to 480p or 1080p (or Automatic if your TV is 1080p/4K compatible)
  3. Load Tesla-Menu, open and close any overlay for multiple times (easier to reproduce)
  4. AMS will crash with 2168-0002 (Data Abort):
Process Info:
    Process Name:                ovlloader
    Program ID:                  420000000007e51a
Stack Trace:
        ReturnAddress[00]:       00000008b03cfc48 (Tesla-Menu + 0x1ac48)
        ReturnAddress[01]:       00000008b03d05f4 (Tesla-Menu + 0x1b5f4)
        ReturnAddress[02]:       00000008b03c2ce8 (Tesla-Menu + 0xdce8)
        ReturnAddress[03]:       00000008b03b53f0 (Tesla-Menu + 0x3f0)
        ReturnAddress[04]:       0000000000000000

Other overlays can crash in the same way (with their names in Stack Trace).
And all of them point to framebufferClose(&this->m_framebuffer) in tsl::gfx::Renderer::exit().
So I suppose the issue is related to libtesla.

Full crash report: 01626455123_420000000007e51a.log.zip

I'm using Mariko Iowa(Red-Box) Model with official Dock, latest AMS(0.19.5 M), nx-ovlloader(1.0.6) and Tesla-Menu(1.1.2).
Tested in HOS 12.1.0/10.2.0, without any other sysmodules running.

Won't recongize inputs except from attached Joy-Cons

Neither input from detached Joy-Cons (as player 1 or player 2), nor Pro Controller (safe guess that any other connected controllers) isn't recognized to open overlay.
Expected behavior: accept input from any player number on any controller.

Can't open files

For some reason I can't open or remove any file on sdcard with newest libtesla.
In old versions I didn't need to mount sdmc manually. Now I need to do it.

Is this how it should be?

use network

I don't know if i'm doing something wrong but i want to get my local ip address.

I init with clkrstInitialize(); the function don't return an error.

Then i try get my ip with gethostname() but when i print my ip i have 1.0.0.127

I tried in a simple homebrew and i get my local ip.

what i missed ?

menu don't show at all

i have reinstalled: atmosphere, hekate, nx-ovlloader, tesla menu and it doesn't work.

is someone can help me ?

Memory leak ?

I was trying to make my own overlay with this library, when I figured out Tesla made atmosphere crashing at some point.

In fact, I tried to reproduce this crash by providing an empty shell overlay module and loop with open/close. In addition I was able to reproduce this bug with any overlay module.

Do you have the same problem too ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.