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,
Thanks @TotalJustice for this great hbmenu replacement!
It would be great if you could add .zip, .rar and .7z files extraction to the file manager!
Long time ago it could be done on nx-shell… but it is not possible anymore in the last version :(
 
Thanks @TotalJustice for this great hbmenu replacement!
It would be great if you could add .zip, .rar and .7z files extraction to the file manager!
Long time ago it could be done on nx-shell… but it is not possible anymore in the last version :(
I can't really see a use case for adding file extraction, especially 7zip and rar.
 
It seems like It doesnt find the .nro inside folders. Is there and serio to switch on? With old homebrew launcher I have sort some apps i side folders
 
Last edited by alfonsovin,
I can't really see a use case for adding file extraction, especially 7zip and rar.
Thanks for answering!
Before sphaira I‘ve used nx-shell for any file management needs on my switch. It saves me the time of plugging the switch to the computer and do it with a computer. Sphaira‘s file manager covers most of the uses of nx-shell but not the file extraction…

Also, i use the ftp file transfer function a lot. I‘m used to browse the internet with a tablet and download compressed files, extract them in the tablet storage and then send the extracted files to the switch through FTP… but, as you may know, the switch’s wi-fi speed is not great and it takes some time.
If I could send a compressed file through ftp and then extract the file on the switch, perhaps i could save some time.
That would be my main use :)
 
Thanks for answering!
Before sphaira I‘ve used nx-shell for any file management needs on my switch. It saves me the time of plugging the switch to the computer and do it with a computer. Sphaira‘s file manager covers most of the uses of nx-shell but not the file extraction…

Also, i use the ftp file transfer function a lot. I‘m used to browse the internet with a tablet and download compressed files, extract them in the tablet storage and then send the extracted files to the switch through FTP… but, as you may know, the switch’s wi-fi speed is not great and it takes some time.
If I could send a compressed file through ftp and then extract the file on the switch, perhaps i could save some time.
That would be my main use :)
Yeah I don't think that's enough of a use case, sorry.
 
First of all - Stellar work. This instantly replaced the homebrew menu for me, it is so much cleaner, useful and well organized. Much easier to navigate as well, I can't see myself ever going back.

If I may make a suggestion (I don't know how easy this is to implement), other than the suggestions for touch screen support, I wonder if it is possible to add some sort of 'contact info' tab we can configure through a .txt file, in case a person's switch is lost/displaced.
 
Yeah I don't think that's enough of a use case, sorry.
probably a niche feature, I also transfer files from my phone to Switch through ftp, sometimes I'm away from PC so it's more convenient just download some mod or file in zip/rar, some devs github have compressed files.
 
  • Like
Reactions: dennismoore
First of all - Stellar work. This instantly replaced the homebrew menu for me, it is so much cleaner, useful and well organized. Much easier to navigate as well, I can't see myself ever going back.

If I may make a suggestion (I don't know how easy this is to implement), other than the suggestions for touch screen support, I wonder if it is possible to add some sort of 'contact info' tab we can configure through a .txt file, in case a person's switch is lost/displaced.
Touch will be added in the next release. As for the contact info, I won't be adding that 😄 I doubt anyone that finds a lost hacked switch is going to contact someone about it.

If you really want that as a feature however, it would be better to create a lock screen theme with your contact details on. This is what everyone does at festivals with phones.
 
It seems like It doesnt find the .nro inside folders. Is there and serio to switch on? With old homebrew launcher I have sort some apps i side folders

I have most all nros inside their own folders and they show up fine for me. No options had to be changed and I don't believe there even is an option to shows/hide nros inside folders.
 
About Theme icons.

- Are those resized to 50 heigh AND 50 width ? Or only 50 heigh?

- Is it possible to separate Icons and Themes?
Or I must clone the dark theme just to choose different icons?

Currently I am making my own icons using the OG Switch colour palette.
It is a WIP and will share the final 7-8 icons when are finished.

I have a few more questions in theme making. :) Unable to send a pm.
Hi, I have added the option to inherit from a theme. You can download the latest build from GitHub actions. You can reach out to me on discord if needed, there's a link in the GitHub issues. I am currently going over the theme options and would love to hear back from theme creators as to what features they would like added.
 
  • Like
Reactions: spkatsi
I have most all nros inside their own folders and they show up fine for me. No options had to be changed and I don't believe there even is an option to shows/hide nros inside folders.
O solo truco ah sin but I have some aorta of folder and It doesnt show to me. i mean, for example a folder ñame “games” and inside some games. Shaphura doesnt show the games neither the folder itshelf
 
Is spahira without additional hbstore, theme, irc,nxlink available ?
Just sphaira (light theme) + touch support + file manager only.
I like the UI and UX and i hope release a simple hb menu alternatives
 
I can't really see a use case for adding file extraction, especially 7zip and rar.
Some emulators support .7z, but I learned the hard way that they only 'see' the first file in the .7z. Many "collections" have .7z files with many versions and hacks and such. Took me a few minutes to figure out why I saw this "arena (Super Metroid hack)" when trying to play Super Metroid, and Super Metroid was only listed one time. Had to extract the .7z to see the different versions.

I haven't played around with retroarch on the Switch though, so I'm not sure if it's a valid use case.
 
Hi, I have added the option to inherit from a theme. You can download the latest build from GitHub actions. You can reach out to me on discord if needed, there's a link in the GitHub issues. I am currently going over the theme options and would love to hear back from theme creators as to what features they would like added.

That's great! Will reach on Discord as there are some questions - help needed. Maybe will be just me, maybe others will share them.
 
Is spahira without additional hbstore, theme, irc,nxlink available ?
Just sphaira (light theme) + touch support + file manager only.
I like the UI and UX and i hope release a simple hb menu alternatives
You can just use sphaira without using those features, they add no significant overhead to load / runtime, ie, it all loads within a single frame (>16.6ms)
Post automatically merged:

Some emulators support .7z, but I learned the hard way that they only 'see' the first file in the .7z. Many "collections" have .7z files with many versions and hacks and such. Took me a few minutes to figure out why I saw this "arena (Super Metroid hack)" when trying to play Super Metroid, and Super Metroid was only listed one time. Had to extract the .7z to see the different versions.

I haven't played around with retroarch on the Switch though, so I'm not sure if it's a valid use case.
Yeah many frontends (sphaira included) peek into a zip and check only the first file - for performance reasons. Sometimes this breaks, especially when pirating a ROM as they often come bundled with a .txt file explaining where you got the ROM from, who dumped it etc.
 
For the MTP feature, is there any plan to add support for “Saves” connection like DBI has?

Currently the MTP feature supports SD Card only. With the Save access via MTP we could access the Save files.
 
Last edited by ThePanda,
For the MTP feature, is there any plan to add support for “Saves” connection like DBI has?

Currently the MTP feature supports SD Card only. With the Save access via MTP we could access the Save files.
Definitely not for saves. I'd rather leave that to JKSV to handle. I didn't really want mtp in sphaira, but it was requested a few times and so I added it back. I'd rather not spend any time working on it however, it doesn't really interest me as it's a problem already solved by other apps, like dbi as you mentioned :)
 
Definitely not for saves. I'd rather leave that to JKSV to handle. I didn't really want mtp in sphaira, but it was requested a few times and so I added it back. I'd rather not spend any time working on it however, it doesn't really interest me as it's a problem already solved by other apps, like dbi as you mentioned :)
Ah ok. I was mainly asking because I'm looking for alternatives to DBI MTP sync (SD Card and Saves because of the recent drama). I use the MTP feature to sync my NSO Database with CaVE and DarkAkuma has a Save feature in CaVE for NSO saves but that uses the MTP Saves connection.

But I respect your decision. Thanks for sphaira. This is a very cool project and look forward to its evolution over time.
 
@TotalJustice: can you help me I deleted sphaira but I still have it instead of default hbmenu

by the way Thanks for this great app!

UPDATE: needed to replace hbmenu.nro in root of SD.
 
Last edited by 2K417,

Site & Scene News

Popular threads in this forum