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: http://werwolv.net/downloads/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,

0xNULL

Member
Newcomer
Joined
Feb 18, 2020
Messages
9
Trophies
0
Age
64
XP
215
Country
Canada
That's weird, I reinstalled the newest version like 3 times and it still doesn't let me use it while on Dock mode... I tried with a wired control too
Version 1.0.1 fixes a bug where input only works in handheld, make sure you've rebooted after dropping the new version in .overlays folder otherwise the old version is still the one loaded in memory
 
  • Like
Reactions: Copai1

Copai1

Well-Known Member
Member
Joined
May 15, 2019
Messages
121
Trophies
0
Age
24
XP
474
Country
Costa Rica
Version 1.0.1 fixes a bug where input only works in handheld, make sure you've rebooted after dropping the new version in .overlays folder otherwise the old version is still the one loaded in memory

Gonna check again, thanks.
*Edit: Yep, it worked, thank you.

Sent from my G9 using Tapatalk
 
Last edited by Copai1,
  • Like
Reactions: 0xNULL

Muxi

Well-Known Member
Member
Joined
Jun 1, 2016
Messages
605
Trophies
0
Age
52
XP
2,112
Country
Germany
I have updated nx-ovlloader to version 1.0.2 But in the tesla menu v1.0.0-03c19c3 is displayed. Is this still correct?
 

mikifantastik98

Well-Known Member
Member
Joined
Dec 12, 2018
Messages
290
Trophies
0
Age
38
XP
1,643
Country
Italy
I have updated nx-ovlloader to version 1.0.2 But in the tesla menu v1.0.0-03c19c3 is displayed. Is this still correct?
same here ... when i updated 1.0.0 to 1.0.1 ....
... maybe is change the numbers of the build : v1.0.0-XXXXX

edit : really strange ...
before i updated to nx-ovlloader v1.0.2 the version on the display indicated v1.0.0-5ds25ae-dirty
now ... the correct version is displayed:
v1.0.2-9e4e479

____________________________
*** new overlay ***

Status Monitor Overlay
https://gbatemp.net/threads/status-monitor-overlay-tesla-overlay-to-monitor-your-hardware.558505/
 
Last edited by mikifantastik98,

FlareG

Member
Newcomer
Joined
Nov 14, 2019
Messages
6
Trophies
0
Age
33
XP
147
Country
Germany
Hey, thanks for your hard work. I found a weird freeze bug with latest atmosphere, latest tesla and super smash bros. When tesla is turned on and you click in super smash bros on news on the right in main menu there is a freeze. Also when there is a tutorial before you play a match it freezes.
 

masagrator

The patches guy
Developer
Joined
Oct 14, 2018
Messages
6,263
Trophies
3
XP
12,019
Country
Poland
will it be possible one day to determine the actual resolution of the game?
Nope, because this is engine internal stuff. Don't ask for something that is outside of OS jurisdiction.
FPS Counter is more doable than this because most games are relying on NVN API to show frames.
 
Last edited by masagrator,
  • Like
Reactions: Mindhunter123

nastys

ナースティス
Member
Joined
Aug 5, 2014
Messages
1,730
Trophies
0
Age
26
Location
Earth
XP
1,794
Country
Italy
@WerWolv I'm trying to make an overlay, but there's no documentation whatsoever, the example doesn't show how to call a function when an item is clicked, and the example in the README uses setClickListener, which has been removed, so...
How can I add a click listener using the latest version of libtesla? Do I have to create a subclass and override onClick() or is there a better way?
 
Last edited by nastys,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    realtimesave @ realtimesave: I have it in my hands