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,
Hello,
I have tried it and it is really great !
2 things for me which would be useful to add I think:
- favorites management for having our most used tool to be avalaible at the top for example (with a "star" system like original HBmenu ? but with yellow one maybe :))
- date/time on the upper center of the screen ?

Also, I have quickly made a .nsp forwarder with the Windows tool, which open the .nro at the original location (switch\sphaira\sphaira.nro).
With the big Sphaira square orange smiley icon on the home screen ^_^
 

Attachments

Last edited by ceut,
  • Like
Reactions: f0li0
The problem is that homebrews could always install NSPs, the best way to have this is to disable Sys-patch on Sysnand and to don't use sig_patches. But if you've already installed NSPs on sysnand it's too late if you've connected the console to Nintendo's server and if you don't you can try to reset the sysnand via Haku33 or you can restore your original nand dump if it's clean and delete the "Nintendo" folder on the SD.
I think you're misunderstanding what I want. I have not touched my sysMMC for more than JKSV because I know I'll fuck up if I have access to a title installer (and even just the presence of a ticket can get you banned - even if it doesn't work), so I want to explicitly name the nro's that a hbmenu implementation shows me, making fuckups unlikely to impossible.

Also, I have quickly made a .nsp forwarder with the Windows tool, which open the .nro at the original location (switch\sphaira\sphaira.nro) I share with you.
The Sphaira square orange smiley icon is a little big on the home screen ^_^
You can just make one in the app itself. And for every other nro. And ROMs too!
 
TLDR about DBI drama. He is annoyed about people asking for English that he threatened to add malware to his software if your Switch where in English, basically destroying your Switch.
to be more precise, english support was implemented, and he actively disabled it because a couple people (that happen to speak english) bothered him in the past, and he went all crusade-against-the-West style "fuck all english speaking people".
 
I replaced this with the hbmenu.nro on my sd card root but pressing plus to exit just reloads sphaira.
 
Hello,
I have tried it and it is really great !
2 things for me which would be useful to add I think:
- favorites management for having our most used tool to be avalaible at the top for example (with a "star" system like original HBmenu ? but with yellow one maybe :))
- date/time on the upper center of the screen ?

Also, I have quickly made a .nsp forwarder with the Windows tool, which open the .nro at the original location (switch\sphaira\sphaira.nro).
With the big Sphaira square orange smiley icon on the home screen ^_^
Thank you for this, as someone who has the hbmenu on my Home Screen it’s very useful.

@TotalJustice - any plans for a higher res icon? I’ve always found the stock hbmenu to be kind of bland against the popping colours of my other forwarders (see attached).
2024121719333600-57B4628D2267231D57E0FC1078C0596D.jpeg
 
Thank you for this, as someone who has the hbmenu on my Home Screen it’s very useful.

@TotalJustice - any plans for a higher res icon? I’ve always found the stock hbmenu to be kind of bland against the popping colours of my other forwarders (see attached).
View attachment 476333
Are you talking about sphaira's icon? If so then yes i am open to replacing it.
 
Thank you for this, as someone who has the hbmenu on my Home Screen it’s very useful.

@TotalJustice - any plans for a higher res icon? I’ve always found the stock hbmenu to be kind of bland against the popping colours of my other forwarders (see attached).
View attachment 476333
Hey can you upload the icon to your perfect dark forwarder i want it badly.
 
Are you talking about sphaira's icon? If so then yes i am open to replacing it.
Yes! Appreciate you’ve only just released it publicly, and there are likely far more pressing challenges to address first!
Hey can you upload the icon to your perfect dark forwarder i want it badly.
I will do when I get time. I’m not 100% happy with it tbh. The text is a little small. If I can find the image files I used to make it again, I’ll upload a better version :grog:
 
Thank you i love sphaira thanks for taking the time to make this.
bleeding-edge builds (meaning, built from the latest commit) will be hosted here https://github.com/ITotalJustice/sphaira/actions. To get the download, click on the link, click on the commit name and scroll down to `Artifacts`. Download either `sphaira-MinSizeRel` (same as main release) or `sphaira-Release`. those builds will have the fix when pressing start.
 
Would you mind if I submitted one in a pr?
please do :lol:
Post automatically merged:

0.4.0 is out!​

  • Many translations were fixed, thank you to everyone that helped out.
  • Many small bug fixes.
  • New oled-black theme (see below)
  • New icon (see below)
  • Built in updater, next version you will see a notification when theres an update :)
  • can install nro forwarders from the filebrowser
  • Fixed inconsistent sound effects
  • added time to the main menu
  • fixed sphaira not exiting to home menu whilst running as hbmenu replacement
  • many more fixes (see release notes)
2024121800065900-CC47F0DEC75C1FD3B1F95FA9F9D57667.jpg


https://github.com/ITotalJustice/sphaira/releases/tag/0.4.0
 
Last edited by Deleted member 413168,
please do :lol:
Post automatically merged:

0.4.0 is out!​

  • Many translations were fixed, thank you to everyone that helped out.
  • Many small bug fixes.
  • New oled-black theme (see below)
  • New icon (see below)
  • Built in updater, next version you will see a notification when theres an update :)
  • can install nro forwarders from the filebrowser
  • Fixed inconsistent sound effects
  • added time to the main menu
  • fixed sphaira not exiting to home menu whilst running as hbmenu replacement
  • many more fixes (see release notes)
View attachment 476368

https://github.com/ITotalJustice/sphaira/releases/tag/0.4.0
This looks badass! Adding some variations to how the homebrew section is displayed would be cool, i.e an option to show them in a list, or in a carousel etc ❤️
 
  • Like
Reactions: worm28
Hey can you upload the icon to your perfect dark forwarder i want it badly.
@worm28 - as promised :grog:

perfect_dark [09e9fec7da970000].jpg

Post automatically merged:

please do :lol:
Post automatically merged:

0.4.0 is out!​

  • Many translations were fixed, thank you to everyone that helped out.
  • Many small bug fixes.
  • New oled-black theme (see below)
  • New icon (see below)
  • Built in updater, next version you will see a notification when theres an update :)
  • can install nro forwarders from the filebrowser
  • Fixed inconsistent sound effects
  • added time to the main menu
  • fixed sphaira not exiting to home menu whilst running as hbmenu replacement
  • many more fixes (see release notes)
View attachment 476368

https://github.com/ITotalJustice/sphaira/releases/tag/0.4.0
Curious (and i don't mean to derail the thread by asking), are there any benefits to retaining re3 over the official ports?
 
Last edited by The_Chaotician,
@worm28 - as promised :grog:

View attachment 476404
Post automatically merged:


Curious (and i don't mean to derail the thread by asking), are there any benefits to retaining re3 over the official ports?
Yes, the official ports were terrible. They did release a new patch recently which supposedly fixed the main issues, however I doubt it's any better than re3.
 
  • Like
Reactions: The_Chaotician
Made an alternative icon, in case someone is interested, you can use it by setting-up sys-tweak to have it in HOS (or forwarder)

icon.jpg
C_Users_cucho_ns-album_2024-12-18_12-50-40.png
 
  • Like
Reactions: The_Chaotician
I'm confused, are you using forwarders while being connected to Nintendo servers or sys-tweak is capable of replacing nros?
With sys-tweak you don’t need install nsp to change a game icon, name, and author. It’s just override a game you already have installed on your Switch (like a demo), instead of launching the game it will launch the homebrew .nro, so no risk of being banned (of course that means you NEVER have installed a nsp in your system before)
 

Site & Scene News

Popular threads in this forum