Sphaira - hbmenu replacement

Sphaira is hbmenu alternative. It currently has feature parity with hbmenu (that is, launches homebrew + nxlink) whilst adding quite a few features.



HomeBrew​

The main menu tab, it lists all the .nro found in "/switch/". From there, you can launch, sort, delete, create a forwarder etc.
You can navigate to the other menu tabs using "L" and "R", explained below.

FileBrowser​

By pressing "L" from the main menu, you can access the file browser. You can Cut, Copy, Delete, Rename etc.
You can select multiple files / folders by using the "ZR" button and then se the above functions of that group of files.

Forwaders can be created if the selected file has a file assoc, see below for more details.

Appstore​

sphaira features an appstore, using the api from https://hb-app.store/switch. It can be navigated to by pressing "R" from the main menu.
The appstore is feature parity with hb-appstore app, as well as installing the manifests in the same folder as hb-appstore, in order to not break compatibility between the two.

Themes​

sphaira comes with 3 themes, abyss (default), black and white (unfinished).
custom themes can be added to "/config/sphaira/themes/", here is the abyss theme for example:
INI:
[meta]
name=Abyss
author=TotalJustice
version=1.0.0
; unused currently
preview=romfs:/theme/preview.jpg

[theme]
background=0x0f111aff
grid=0x0f115c30
selected=0x0f115cff
selected_overlay=0x529cffff
text=0xffbc41ff
text_selected=0x529cffff

icon_audio=romfs:/theme/icon_audio.png
icon_video=romfs:/theme/icon_video.png
icon_image=romfs:/theme/icon_image.png
icon_file=romfs:/theme/icon_file.png
icon_folder=romfs:/theme/icon_folder.png
icon_zip=romfs:/theme/icon_zip.png
icon_nro=romfs:/theme/icon_nro.png

music can be added to a theme, as long as the music is converted to bfstm format. simply add an entry like so: `music=/config/sphaira/themes/music/bgmusic_pcm.bfstm`

Forwaders​

sphaira can create and install forwarders for any .nro. It will use the icon of the .nro and the name + author.

It can also install forwarders for files that have a file assoc. For example, if mgba is installed and a game is located in "/roms/gba/game.gba", then the "Install Fowarder" option will appear. In this case, it will try to scrape the icon of the game, otherwise it will use the icon of the .nro and the name will be a combination of the .nro name and game name.

File Assoc​

file assoc is a way to associate file extensions (.gba, .nro etc) with a homebrew app. For example, clicking on rom.gbc that has an file assoc will bring up a list of all the applications that can handle it.
This can be used for emulators, media players, text editors etc...

custom file assoc should go in the folder "/config/sphaira/assoc/"

the format is *very* simple, here is an example of vgedit.ini
INI:
[config]
supported_extensions=txt|json|cfg|ini|md|log

and again for mgba.ini
INI:
[config]
supported_extensions=gba|gbc|sgb|gb
database=Nintendo - Game Boy|Nintendo - Game Boy Color|Nintendo - Game Boy Advance

"path": (optional) fullpath to the .nro. if not specified, it uses the name of the ini, ie, mgba.ini will use mgba.nro.
"supported_extensions": list of extensions the application supports, separated by |. plea
"database": (optional) name of the rom database to use defined by the left-side of this table <https://gist.github.com/ITotalJustice/d5e82ba601ca13b638af9b00e33a4a86>..

All of the retroarch cores has file assoc built into sphaira, so if you download retroarch using the appstore, and then navigate to "/roms/gbc/game.gbc", gambatte and mgba will be available to be selected.

Games can be kept in .zip format, sphaira will peek into the .zip and find the real extension and use that for displaying icons / file assoc.

Roms​

roms should be placed in "/roms/system_name/" where system name is defined by this table right-side entries <https://gist.github.com/ITotalJustice/d5e82ba601ca13b638af9b00e33a4a86>.
this is the same layout emulation station uses. the reason for forcing roms to be in specific folders is due to many roms for different systems using the same file extension, ie, .bin / .cue or .chd.

roms placed in subfolders are allowed, for example "/roms/psx/scooby-doo/scooby-doo.bin" is valid.

Themezer​

themes can be browsed and download by going Menu Options -> Misc -> Themezer. Themes will be downloaded to "/themes/sphaira/Theme Name - By Author/".
To install themes, launch "NXThemes Installer" and browse to the selected folder listed above.

Nxlink​

For homebrew developers, nxlink is built into sphaira. You do not have to press any special buttons, just do "nxlink *.nro" and send your nro like normal, console logging works to be using "nxlink -s *.nro"
By default, this is enabled in the background, to disable it: Menu Options -> Network -> Nxlink.



That's most of the features spahira has. If you enjoy it so much that you'd rather it be launched over regular hbmenu, you can enable the option in "Menu Options -> Replace hbmenu on exit" where it will do just that. It will create a backup of hbmenu in "/switch/hbmenu.nro" should you wish to swap back.
homebrew.jpg

games.jpg

appstore.jpg

appstore_page.jpg

file_browser.jpg

themezer.jpg

launch_options.jpg


Releases: https://github.com/ITotalJustice/sphaira/releases/
Bleeding-edge Releases: https://github.com/ITotalJustice/sphaira/actions
Source Code: https://github.com/ITotalJustice/sphaira
 
Last edited by Deleted member 413168,
I recently reinstalled some games much larger than 4gb (on a FAT32 formatted SD card, emuMMC file based) with Sphaira without issues (MTP on W10). Sometimes there is a timeout but it's on the OS side...

Does this happen with all games larger than 4gb or only specific ones ?

How full is your SD Card and what size / model ?

If your SD is a fake one (that happened before), the remaining space displayed is not what's physically remaining on the card => error past a certain point

If it's not SD card related and the error is not consistent between games : bad dumps maybe ?
 
I noticed during an MTP Install connection that the bottom of the screen says USB 2.0, but I'm using a USB 3.0 cable. Is there something I can do to get the 3.0 speed?
 
I noticed during an MTP Install connection that the bottom of the screen says USB 2.0, but I'm using a USB 3.0 cable. Is there something I can do to get the 3.0 speed?

There is 2 ways to force ubs3 support :

add this line in atmosphere/config/system_settings.ini

usb30_force_enabled = u8!0x1

OR add usb3force=1 in your hekate_ipl.ini file under each of the boot options
 
  • Like
Reactions: jaelbird
There is 2 ways to force ubs3 support :

add this line in atmosphere/config/system_settings.ini

usb30_force_enabled = u8!0x1

OR add usb3force=1 in your hekate_ipl.ini file under each of the boot options
Is any particular feature needed to force the USB3?
 
What do you mean ?

Either of the 2 quoted should work to force / enable usb3 support.

The only requirement is to not have a Switch Lite, as this model lack some hardware to support it (so Switch lite is usb2 speed max on the usb-c port).
 
There is 2 ways to force ubs3 support :

add this line in atmosphere/config/system_settings.ini

usb30_force_enabled = u8!0x1

OR add usb3force=1 in your hekate_ipl.ini file under each of the boot options
Doesn't Atmosphere needed to be compilated with patches too, to enable usb3.0 with it ?
 
Doesn't Atmosphere needed to be compilated with patches too, to enable usb3.0 with it ?
Oh yes, true !

If I remember correctly this was the case for the previous atmosphere but it was re-implemented in the main source code since then, no ?

If it's not the case, my bad, and you're right on this !

EDIT : usb3 support was indeed implemented for FW 20+ so it should work with the current atmopshere


stratosphere/loader/source/ldr_embedded_usb_patches.inc
{ ParseModuleId("A5EF8D22EDF8A384E4135270ED596C1D2D524159"), util::size(Usb30ForceEnablePatches_20_1_0), Usb30ForceEnablePatches_20_1_0 }, /* 20.1.0 - 20.5.0 */
{ ParseModuleId("766D0C2277207B40AD9B8DE309396D50CCE94885"), util::size(Usb30ForceEnablePatches_21_0_0), Usb30ForceEnablePatches_21_0_0 }, /* 21.0.0 */
 
Last edited by Insektaure,
Oh yes, true !

If I remember correctly this was the case for the previous atmosphere but it was re-implemented in the main source code since then, no ?

If it's not the case, my bad, and you're right on this !

EDIT : usb3 support was indeed implemented for FW 20+ so it should work with the current atmopshere


stratosphere/loader/source/ldr_embedded_usb_patches.inc
Because for me, even with those two methods enable, in DBI i'm still in usb2.0...
 
  • Sad
Reactions: Insektaure
Unfortunately I can't help debug this issue since my only modded system is a LIte model (stuck to usb2). :/

Have you tried in Sphaira to see if it display usb3 ?

If it's still usb2 (after a full reboot to apply the new configs), we are missing something else !
 
Unfortunately I can't help debug this issue since my only modded system is a LIte model (stuck to usb2). :/

Have you tried in Sphaira to see if it display usb3 ?

If it's still usb2 (after a full reboot to apply the new configs), we are missing something else !
Yeah, same in sphaira...
 
Yeah, same in sphaira...

I am using only the setting usb30_force_enabled = u8!0x1 in system_settings.ini and it works fine. Did you set BOTH options? Try using only one of them. I have also seen reports of changing the system_settings.ini to DISABLE usb 3.0, rebooting, changing it back to enabled, then rebooting again to solve the problem. Also, are you 100% sure you're using a usb 3.0 cable?
 
What do you mean ?

Either of the 2 quoted should work to force / enable usb3 support.

The only requirement is to not have a Switch Lite, as this model lack some hardware to support it (so Switch lite is usb2 speed max on the usb-c port).
ah I just wanted to know if all the switches were supported, my misfortune is precisely that of having a switch lite 😅
 
Heyah.
Is there any tip / guide for setting up the dump of titles by usb ?

I've been on it for hours, setting up everything (libusb is okay on my PC) :
  • The switch is waiting for the USB connexion
  • My PC is waiting for my Switch.
Thanks
 
Heyah.
Is there any tip / guide for setting up the dump of titles by usb ?

I've been on it for hours, setting up everything (libusb is okay on my PC) :
  • The switch is waiting for the USB connexion
  • My PC is waiting for my Switch.
Thanks
Go to menu > install mtp. It should show up a directory called Games with them there.
 
Sphaira works fine for installing games with MTP responder, but I can’t seem to install Homebrew (.nro) this way? Drag/copy a Homebrew nro file to sd card (root/switch/) just shows a not-allowed cursor appears.
 
Sphaira works fine for installing games with MTP responder, but I can’t seem to install Homebrew (.nro) this way? Drag/copy a Homebrew nro file to sd card (root/switch/) just shows a not-allowed cursor appears.
Connect your Switch to your PC and launch Sphaira in MTP mode. You should see Install (NSP, XCI, NSZ, XCZ) along with microSD card access.


Navigate to microSD card → switch and place the desired .nro file there.


if needed , disable MTP and re-enable it to refresh the connection.


Note that .nro files cannot be installed directly via MTP. They must be copied to the SD card first. To create a forwarder, open Sphaira, navigate to the target Homebrew application, press X, scroll down, and select Install Forwarder.
 
  • Like
Reactions: digdat0
hi everyone. m just wondering if i ever i decided to remove sphaira totally, what folders do i need to delete? I checked theres one in config, switch folder and?
 
Connect your Switch to your PC and launch Sphaira in MTP mode. You should see Install (NSP, XCI, NSZ, XCZ) along with microSD card access.


Navigate to microSD card → switch and place the desired .nro file there.


if needed , disable MTP and re-enable it to refresh the connection.


Note that .nro files cannot be installed directly via MTP. They must be copied to the SD card first. To create a forwarder, open Sphaira, navigate to the target Homebrew application, press X, scroll down, and select Install Forwarder.
Is it better than DBI installing NSP? Which advantages or disadvantages has?
 
Is it better than DBI installing NSP? Which advantages or disadvantages has?
It's not better than DBI at that, but it's an overall nice replacement for a lot of tools and if you're using YOUR OWN backups on a decent compression (or uncompressed) it works just fine, you can also mount smb shares if you have a simple shared folder on your PC and install from that location, create forwarders and so on.

If you're transfering a shit ton of backups and they are higly compressed like the ones you are probably downloading from the internet just use DBI since it will be more convenient.
 

Site & Scene News

Popular threads in this forum