Tesla - The Nintendo Switch Overlay Menu

fhwyjbd.png

Hey all.
I'd like to introduce to you, Tesla: My answer to the growing need for proper ingame front ends for sysmodules.


What is this?

  • Tesla consists of three individual parts. nx-ovlloader, the Tesla menu and libtesla.
    • nx-ovlloader is basically nx-hbloader ported to run as a sysmodule. It runs in the background and loads overlay NROs (.ovl files) given to it.
    • Tesla Menu is the equivalent to the hbmenu. It's the initial thing loaded by nx-ovlloader and acts as a hub for you to select all other overlays.
    • libtesla is where it becomes interesting for developers. It's an easy to use library that handles layer creation, UI drawing and all the overlay UX. It makes it very easy to create a new overlay for anything
  • A frontend for sysmodules that before required either a homebrew or a config file to change settings or used sounds or the LED to give the user feedback.

What is this not?

  • A tool that lets you create overlays that are always visible. Overlays can get unloaded way to easily for this.
  • An excuse to port absolutely everything to a overlay. Nobody's going to need a title manager overlay. If you consider making a overlay, keep it simple. You don't have a whole lot of memory to work with.


How do I use this?

First of all, download the latest release of nx-ovlloader and the Tesla Menu from the GitHub Release page and extract it onto your SD card.
After a reboot, hold down L and DPad Down and push on the right joy stick to bring up Tesla at any time. Navigation works as you imagine it.
Similar to normal homebrews, you place your .ovl files in the /switch/.overlays folder on your SD card.


Screenshots

W8yN2M6.jpg

fdfWAXw.jpg


Notice


Make sure to use the latest Atmosphere release when trying this as older versions ( as the one SX OS uses too ) probably won't have enough memory available for this to run. Overlays do take a lot of space so nx-ovlloader reserves 6MB. 2MB for framebuffers and around 4MB for overlay developers to use in their overlays.


GitHub

nx-ovlloader: https://github.com/WerWolv/nx-ovlloader
Tesla Menu: https://github.com/WerWolv/Tesla-Menu


For Developers

libtesla: https://github.com/WerWolv/libtesla
Tesla build template: https://github.com/WerWolv/Tesla-Template


Download

nx-ovlloader: https://github.com/WerWolv/nx-ovlloader/releases/latest
Tesla-Menu: https://github.com/WerWolv/Tesla-Menu/releases/latest
EdiZon Overlay: https://download.werwolv.net/EdiZonOverlay.zip ( As a little preview for what this is capable of and what EdiZon 4.0.0 will have even more of soon :) )

Special thank especially to averne without him, this would not have been possible!


Obligatory Donation links

GitHub Sponsors https://github.com/sponsors/WerWolv
PayPal https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KP7XRJAND9KWU&source=url

Patreon https://www.patreon.com/werwolv


Thanks a lot and have fun using and extending it :)
 
Last edited by WerWolv,
So I'd be able to use the cheat db that I have? If so do I need the lang and Sdout zip's?
Yes.

Tesla and Tesla overlays where a framework where you run apps called Overlays, that apps run on a special applet of the HOS which was designed to show notifications and small tweaks on the original firmware.

They are composed of two components:

SYSTEM MODULE (SysModule) this component is a «service» or daemon which runs on background and start with the system. This was called TESLA and now is replaced by UltraHand. You install it copying a folder on the path SDMC:/atmosphere/contents/420000000007E51A (for tesla) and atmosphere\contents\420000000007E51A & atmosphere\contents\420000000007E51B (for Ultrahand).

Those sysmodules also uses a folder for configuration, SDMC:/config/tesla (for tesla) & SDMC:/config/ultrahand (for ultrahand)
in ultrahand you can put optional language files on SDMC:/config/ultrahand/lang .


Once you have the sysmodule working, you need a interface to load Overlays, that interface is called Overlay Menu. on Tesla was Tesla Overlay for UltraHand is, surprise, surprise UltraHand Overlay. you must copy it to SDMC:/switch/.overlays/ovlmenu.ovl this program is called when you press the key combo configurated. and this app should allows you to load others overlay files on the path SDMC:/switch/.overlays/
 
Yes.

Tesla and Tesla overlays where a framework where you run apps called Overlays, that apps run on a special applet of the HOS which was designed to show notifications and small tweaks on the original firmware.

They are composed of two components:

SYSTEM MODULE (SysModule) this component is a «service» or daemon which runs on background and start with the system. This was called TESLA and now is replaced by UltraHand. You install it copying a folder on the path SDMC:/atmosphere/contents/420000000007E51A (for tesla) and atmosphere\contents\420000000007E51A & atmosphere\contents\420000000007E51B (for Ultrahand).

Those sysmodules also uses a folder for configuration, SDMC:/config/tesla (for tesla) & SDMC:/config/ultrahand (for ultrahand)
in ultrahand you can put optional language files on SDMC:/config/ultrahand/lang .


Once you have the sysmodule working, you need a interface to load Overlays, that interface is called Overlay Menu. on Tesla was Tesla Overlay for UltraHand is, surprise, surprise UltraHand Overlay. you must copy it to SDMC:/switch/.overlays/ovlmenu.ovl this program is called when you press the key combo configurated. and this app should allows you to load others overlay files on the path SDMC:/switch/.overlays/
So delete everything relating to Tesla? Because, the second folder you mention with Tesla doesn't seem to exist for me as I was unable to find it. So I got things to work at least to my knowledge but when I try to access the codes for the games it says not compatible with AMS 1.10+
 
Last edited by Reiseconner,
  • Like
Reactions: impeeza
does anyone have issues with ultrahand overlay
making battery drain faster?
Post automatically merged:

edit :
faster than with tesla
 
Last edited by kiyafox,
  • Wow
Reactions: impeeza
does anyone have issues with ultrahand overlay
making battery drain faster?
Post automatically merged:

edit :
faster than with tesla

Did you measure this with the libultrahand version of status monitor vs the official version (regular libtesla) at 60hz? Because its runtime toll on core 3 is significantly lower. Or was this during subsequent shallow sleeps? What was your test case and version? I do have some ideas though, depending on the specifics of your observations.
Post automatically merged:

i've just implemented proper halting of the background event poller during shallow sleep now, which eliminates anything from running during sleep assuming that that was your concern (regular libtesla currently does not have this, but its background event poller is a tad simpler). Might update to v2.4.3 just for this addition.
 
Last edited by ppkantorski,
I'm using the Zing overlay in Monster Hunter Rise to see the boss monster's HP on Active Monitor, but the dodge button ZL+B is the same as the close button and closes the menu. Is there a way to change it to something other than ZL+B?
Post automatically merged:

I'm using the Zing overlay in Monster Hunter Rise to see the boss monster's HP on Active Monitor, but the dodge button ZL+B is the same as the close button and closes the menu. Is there a way to change it to something other than ZL+B?
 
I'm using the Zing overlay in Monster Hunter Rise to see the boss monster's HP on Active Monitor, but the dodge button ZL+B is the same as the close button and closes the menu. Is there a way to change it to something other than ZL+B?
Post automatically merged:

I'm using the Zing overlay in Monster Hunter Rise to see the boss monster's HP on Active Monitor, but the dodge button ZL+B is the same as the close button and closes the menu. Is there a way to change it to something other than ZL+B?
I don’t remember what I did. You can check the source or you can try my breezehand overlay which I added monitor bookmark feature (breeze bookmark).
Post automatically merged:

@masagrator out of curiosity I checked MHR ultrahand and breeze running at the same time and did not see random crash. What makes it better than Tesla + old version MHR + Edison SE over the many old atmosphere I tested them on I have no idea
 
Last edited by TomSwitch,
  • Like
Reactions: shoreyo
I'm using the Zing overlay in Monster Hunter Rise to see the boss monster's HP on Active Monitor, but the dodge button ZL+B is the same as the close button and closes the menu. Is there a way to change it to something other than ZL+B?
Post automatically merged:

I'm using the Zing overlay in Monster Hunter Rise to see the boss monster's HP on Active Monitor, but the dodge button ZL+B is the same as the close button and closes the menu. Is there a way to change it to something other than ZL+B?

Read its readme how exit combo button is set. It must be stored in some file.
If you use UltraHand overlay manager, you can set the key combo on the interface config.
 
I'm using the Zing overlay in Monster Hunter Rise to see the boss monster's HP on Active Monitor, but the dodge button ZL+B is the same as the close button and closes the menu. Is there a way to change it to something other than ZL+B?
Post automatically merged:

I'm using the Zing overlay in Monster Hunter Rise to see the boss monster's HP on Active Monitor, but the dodge button ZL+B is the same as the close button and closes the menu. Is there a way to change it to something other than ZL+B?
You can try this fork
https://github.com/zdm65477730/Zing/releases/tag/v0.5.0
By customizing ./config/Zing/keycombo.ini, you can change font size or quit overlay without being disturbed by game's controller mapping

or following @TomSwitch 's suggestion, use breezehand overlay insteaded
https://github.com/tomvita/Breezehand-Overlay
the latest version by now use simplified one-button mapping (dpad) to change font size and color may bring more distractions with games like MHR, though.
But IMO it will finally replace Zing with gen2 debug features updating:grog:
 
  • Like
Reactions: impeeza
You can try this fork
https://github.com/zdm65477730/Zing/releases/tag/v0.5.0
By customizing ./config/Zing/keycombo.ini, you can change font size or quit overlay without being disturbed by game's controller mapping

or following @TomSwitch 's suggestion, use breezehand overlay insteaded
https://github.com/tomvita/Breezehand-Overlay
the latest version by now use simplified one-button mapping (dpad) to change font size and color may bring more distractions with games like MHR, though.
But IMO it will finally replace Zing with gen2 debug features updating:grog:
i used zingforkand Breezehand-overlay.but zing fork don't show active monitor.
In breezehand-overlays the boss's HP is a floating-point number, and when I monitor it, it's a floating-point number, but when I monitor it with breeze-hand-overlay, it displays as XXXXXXXXXXXXXXX (in A 32-bit integer value).In the case of 2112, it was displayed as 1157890048.
. If the boss's HP is 2112 (a real number boss hp), I want it to display as 2112 or 2112.00. How can I do that?
 
Last edited by hujiroujin24,
i used zingforkand Breezehand-overlay.but zing fork don't show active monitor.
In breezehand-overlays the boss's HP is a floating-point number, and when I monitor it, it's a floating-point number, but when I monitor it with breeze-hand-overlay, it displays as XXXXXXXXXXXXXXX (in A 32-bit integer value).In the case of 2112, it was displayed as 1157890048.
. If the boss's HP is 2112 (a real number boss hp), I want it to display as 2112 or 2112.00. How can I do that?
It should follow the bookmark setting
 
When I pressed "change type" in Breeze's bookmarks, the display changed. However, it's inconvenient that the color and size change when I press the arrow keys while monitoring. Thanks for answering.
That is a bug that will be fixed. You will have to wait at least until 3 june
 
Last edited by TomSwitch,
  • Love
  • Like
Reactions: shoreyo and impeeza
i used zingforkand Breezehand-overlay.but zing fork don't show active monitor.
In breezehand-overlays the boss's HP is a floating-point number, and when I monitor it, it's a floating-point number, but when I monitor it with breeze-hand-overlay, it displays as XXXXXXXXXXXXXXX (in A 32-bit integer value).In the case of 2112, it was displayed as 1157890048.
. If the boss's HP is 2112 (a real number boss hp), I want it to display as 2112 or 2112.00. How can I do that?
You can edit SDMC/config/Zing/keycombo.ini, and manage mainMenuChangeToBookmarkCombo=Y+ZL to your preference.
Zing needs EdiZon-SE to define type of bookmark, such as breezehand requires breeze-beta.
By toggling bookmark with breezehand, you can easily sort in the order of you like,
 

Site & Scene News

Popular threads in this forum