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,
I always update manually and use USB way via hekate.
I updated to 1.5.1

the tesla overlay still crashing when I switch pokemon in pokemon violet.
it works for few Pokemon changes then it crashed.
may I ask, by still crashing, do you mean in docked mode or handheld mode?
since crashes in tv mode was a known issue since day one, and handheld crashes only on 16.0
 
nx-ovlloader doesn't work on atmosphere 1.5.0/firmware 16.0.0?
Post automatically merged:

nx-ovlloader doesn't work on atmosphere 1.5.0/firmware 16.0.0?
 
Here. This includes ovlloader, tesla menu, emuiibo, and the Edizon overlay from -> https://github.com/proferabg/EdiZon-Overlay

All tested on my OLED on emummc FW 16, with latest Atmosphere. Updated emuiibo isn't officially released yet so please don't bug XorTroll if there are bugs. I did intercept an emmi amiibo with it in Metroid Dread, and got my bonus from it. (but mental note... activating the Tesla menu also activates your cloak in Dread... so you'll start to die if you don't notice and turn the cloak off)

nx-ovlloader doesn't work on atmosphere 1.5.0/firmware 16.0.0?
Post automatically merged:

nx-ovlloader doesn't work on atmosphere 1.5.0/firmware 16.0.0?
nx-ovlloader has always worked with it. Tesla menu and anything else that used libtesla, needed the update. nx-ovlloader is not built with libtesla. It only loads the .ovl files (which are built with libtesla).
 

Attachments

Last edited by urherenow,
Here. This includes ovlloader, tesla menu, emuiibo, and the Edizon overlay from -> https://github.com/proferabg/EdiZon-Overlay

All tested on my OLED on emummc FW 16, with latest Atmosphere. Updated emuiibo isn't officially released yet so please don't bug XorTroll if there are bugs. I did intercept an emmi amiibo with it in Metroid Dread, and got my bonus from it. (but mental note... activating the Tesla menu also activates your cloak in Dread... so you'll start to die if you don't notice and turn the cloak off)


nx-ovlloader has always worked with it. Tesla menu and anything else that used libtesla, needed the update. nx-ovlloader is not built with libtesla. It only loads the .ovl files (which are built with libtesla).
It works but i guess you missed the part where i say that if you go in and out too much of the overlays it will crash eventually your switch with tesla titleid. We neeed a proper update.
 
  • Like
Reactions: ELY_M
It works but i guess you missed the part where i say that if you go in and out too much of the overlays it will crash eventually your switch with tesla titleid. We neeed a proper update.
You're assuming that ovlloader is responsible for the crash. I'm not going to say it isn't possible, but I will say that it's highly more likely caused by one of the .ovl files that it loads. I didn't experience a crash when I was testing just Edizon and emuiibo overlay, and I entered and exited several times. Then again, Metroid dread loads an entire area at a time, then likely doesn't access any files until you switch areas (so TomVita might be onto something with using the home button).

I also didn't see your particular post about crashes, but I only just went back a few pages to look (I'm not going to revisit all 60+) I don't fully understand what is meant by switching pokemon in the post that did talk about crashes. Are we talking with Edizon or...?
 
You're assuming that ovlloader is responsible for the crash. I'm not going to say it isn't possible, but I will say that it's highly more likely caused by one of the .ovl files that it loads. I didn't experience a crash when I was testing just Edizon and emuiibo overlay, and I entered and exited several times. Then again, Metroid dread loads an entire area at a time, then likely doesn't access any files until you switch areas (so TomVita might be onto something with using the home button).

I also didn't see your particular post about crashes, but I only just went back a few pages to look (I'm not going to revisit all 60+) I don't fully understand what is meant by switching pokemon in the post that did talk about crashes. Are we talking with Edizon or...?
a good game to test if it still crashes in handheld mode would be River City Girls 2, it was a 100% crash, run the game then open Edizon overlay at the Please Wait loading screen
 
a good game to test if it still crashes in handheld mode would be River City Girls 2, it was a 100% crash, run the game then open Edizon overlay at the Please Wait loading screen
That doesn't even sound smart to me (trying to load the tesla menu while your game is loading something). But it sounds like a safety check needs to be added somewhere. Not sure at the moment how to do it, and if a check of available RAM needs to be done (and maybe pre-allocate a buffer), if a check for file access is being done (if that's possible to check without crashing), or both.

EDIT: Just curious... do you have cheats installed for that game? Have you edited atmosphere's system_settings.ini to have:

dmnt_cheats_enabled_by_default = u8!0x0

Then delete your toggles file for that game (if you have one)?
 
Last edited by urherenow,
That doesn't even sound smart to me (trying to load the tesla menu while your game is loading something). But it sounds like a safety check needs to be added somewhere. Not sure at the moment how to do it, and if a check of available RAM needs to be done (and maybe pre-allocate a buffer), if a check for file access is being done (if that's possible to check without crashing), or both.

EDIT: Just curious... do you have cheats installed for that game? Have you edited atmosphere's system_settings.ini to have:

dmnt_cheats_enabled_by_default = u8!0x0

Then delete your toggles file for that game (if you have one)?
no, it crashes with or without any cheats and it was crashproof in handheld mode before 16.0
 
no, it crashes with or without any cheats and it was crashproof in handheld mode before 16.0
I see what you mean now. Had to download it first. But... it still makes no sense at all to try and run Edizon in any way, before the game has even loaded into its title screen. It seems like there is a couple of hickups while loading in the first place (the fighting girls above the progress bar freeze). When I wait to see the title screen, it doesn't crash. RAM may very well be the issue here. No time right now to dig into it... it's 12:40am in Japan and I have to work in the morning.
 
I see what you mean now. Had to download it first. But... it still makes no sense at all to try and run Edizon in any way, before the game has even loaded into its title screen. It seems like there is a couple of hickups while loading in the first place (the fighting girls above the progress bar freeze). When I wait to see the title screen, it doesn't crash. RAM may very well be the issue here. No time right now to dig into it... it's 12:40am in Japan and I have to work in the morning.
it is not just at loading screen, it's just a way of reproducing the crash 100% of the time, many games also crashes even in pause menu or at title screen, RAM might not be the problem since many Arcade Archives games are only less than 50MB also have a random chance of crashing like in tv mode

hope these videos could give someone a clue on what might be the cause of the crash problems

River City Girls 2 Handheld mode all using the same .ovl
16.0 100% crash when open Edizon overlay at loading screen

16.0 No crash if open Tesla overlay then wait and open Edizon Menu after loading screen
16.0 No crash if open Edizon Menu after loading screen


15.0.1 no crash anywhere
 
Last edited by dsrules,
That doesn't even sound smart to me (trying to load the tesla menu while your game is loading something). But it sounds like a safety check needs to be added somewhere. Not sure at the moment how to do it, and if a check of available RAM needs to be done (and maybe pre-allocate a buffer), if a check for file access is being done (if that's possible to check without crashing), or both.

EDIT: Just curious... do you have cheats installed for that game? Have you edited atmosphere's system_settings.ini to have:

dmnt_cheats_enabled_by_default = u8!0x0

Then delete your toggles file for that game (if you have one)?

Where do you find the toggles file (if there's one)?
 
  • Wow
Reactions: impeeza
Where do you find the toggles file (if there's one)?
atmosphere/contents/<titleID>/cheats... which can get annoying to look through, if you have a lot of games. A quick way to get rid of all of your cheats and stuff, would be to rename your contents folder, and make a new one with only 420000000007E51A (ovlloader) and maybe 0100000000000352 (emuiibo) in it.

Now that I'm home from work, I'm going to try things without emuiibo, then without Edizon overlay, and maybe even without both, to try and isolate exactly what is crashing.

EDIT:
Still can't track this down. I know enough to be dangerous, but not enough to know exactly what I'm doing. I've been trying to build the loader with different heap sizes, and even renamed it to start with 01 instead of 42, to get it into the same boat as an application. With no .ovl files present, other than ovlmenu, there is no crash. With EITHER Edizon or emuiibo .ovl (probably any .ovl file at all, and even if there is no 0100000000000352 folder in contents for emuiibo to actually load and do its thing...), it crashes. If I let the game load all the way, I can't make it crash.
 
Last edited by urherenow,
  • Like
Reactions: ELY_M
atmosphere/contents/<titleID>/cheats... which can get annoying to look through, if you have a lot of games. A quick way to get rid of all of your cheats and stuff, would be to rename your contents folder, and make a new one with only 420000000007E51A (ovlloader) and maybe 0100000000000352 (emuiibo) in it.

Now that I'm home from work, I'm going to try things without emuiibo, then without Edizon overlay, and maybe even without both, to try and isolate exactly what is crashing.

EDIT:
Still can't track this down. I know enough to be dangerous, but not enough to know exactly what I'm doing. I've been trying to build the loader with different heap sizes, and even renamed it to start with 01 instead of 42, to get it into the same boat as an application. With no .ovl files present, other than ovlmenu, there is no crash. With EITHER Edizon or emuiibo .ovl (probably any .ovl file at all, and even if there is no 0100000000000352 folder in contents for emuiibo to actually load and do its thing...), it crashes. If I let the game load all the way, I can't make it crash.
and remember to put the sigpatches again if your rename your contents folder :D
 

Site & Scene News

Popular threads in this forum