This release is quite a big one. I have spent a lot of time on this release. Many new features have been added and lots issues have been fixed.
- game: option to create empty save data in the games menu.
- game: load title overrides (icon, name) from sys-tweak config.
- hbl: faster forwarder loading.
- ui: add info boxes to explain each option.
- mtp: support for 4gb+ file transfers.
- mtp: multithread file transfers (77MiB/s read, 40MiB/s write).
- ghdl: lists all releases, rather than just the latest.
- ghdl: show timestamp for each release.
- install: all verify options are disabled by default.
- install: options are no longer hidden, even if disabled. the install options are greyed out until enabled.
- homebrew: option to hide/filter out homebrew.
- themezer: removed as the api was changed.
- forwarder: add forwarder creator, allows you to set the icon, name, author etc.
- zip: optimise zip peek.
- ftp_menu: fix passphrase not being displayed properly.
- game: add content viewer (application, update, dlc).
- fatfs: support for mounting fat storage (prodinfof, safe, user, system).
- fatfs: handle archive bit for folders by displaying/handling them as 1 large file (as hos does).
- game: support for exporting games with personalised tickets.
- es: support for converting personalised tickets to common.
- devoptab: add NSP/NSZ mount support.
- devoptab: add NCA mount support.
- devoptab: add XCI/XCZ/Gamecard mount support.
- devoptab: add block compressed NCZ mount support.
- devoptab: add ZIP mount support.
- devoptab: add BFSAR mount support.
- devoptab: add HTTP mount support.
- devoptab: add NFS mount support.
- devoptab: add Samba mount support.
- devoptab: add FTP mount support.
- devoptab: add SFTP mount support.
- devoptab: add Webdav mount support.
- devoptab: add system save mount support.
- ncz: fix very rare install bug when using block compression. [see here for more info](https://github.com/nicoboss/nsz/issues/210).
- app: async init/exit to halve load/exit times.
- remove ftpsrv and untitled from builtin ghdl options, as both packages are available in the appstore.
- image: add image viewer (png, jpg, bmp).
- audio: add mp3 support.
- audio: add wav support.
- audio: add ogg support.
- audio: add flac support.
- audio: add idv3 tag parsing support for mp3.
- audio: add "decyption" of GTA Vice City mp3.
- theme: option to select any supported audio file and set it as the background music.
- devoptab: add usbdvd support for music playback and file browsing.
- export: add nsz export support (solid, block, ldm).
- export: add xcz export support (same as above).
- nro: add nro fs proper mount support (romfs, nacp, icon).
- nca: add program nca fs support.
- usb: re-write protocol, support for ns-usbloader is gone.
- usb: add webusb to support installing / exporting via a web browser.
- usb: add automated tests for installs to verify the python script.
- devoptab: add vfs, enables setting shortcuts to other mount points.
- save: fallback to use app id if sphaira fails to fetch title name.
- appstore: check if snes9x_2010 and hbmenu are actually displayed, as they would display if retroarch / sphaira was installed.
- save: set FsSaveDataMetaInfo when creating a save.
- fs: fix stdio not having BigFile flag set when 4gb+ file was being written.
- fs: fix some places where file paths were case sensitive compared.
- nca: now fetches the icon/name based on the system language.- usbS2S: disable all verify code during install, as it was not needed.
- save: fix empty file names when exporting saves caused by the name not loaded yet.
- ui: update ui based on delta time, it is now not tied to frame rate (works with 50-75hz display).
- es: fix modified common tickets (sphaira did this anyway, but it was broken).
- app: fix widgets not being destroyed in reverse order.
- fs: fix not checking for stdio open errors.
- export: fix the output file path being too big for fs (255+) which caused hos to do very strange things.
- fs: fix CreateDirectoryRecursivelyWithPath which would fail to split the path from the folder path if it was at the root directory.
- so many other bugs (90+ commits between the previous release and this one).
I have added an audio player to Sphaira, which supports mp3, wav, flac, ogg, bfstm files.
Mp3 files that have meta data embedded will be displayed, such as artwork, artist, song name etc.
Controls:
Left: seek back.
Right: seek forward.
A: pause / play.
Y: turn off the screen backlight to save battery life. Pressing any button enables the backlight.
You now set any of the above music files as the background music in Sphaira. From the file browser:
Open the file browser.
Press X to select options.
Navigate down to "Advanced".
Select "Set as background music".
Restart Sphaira and the music will automatically play!
To remove the song:
Press Y to open Sphaira options.
Select "Theme".
Select "Remove Background Music".
Custom mount points are here! Config entries go in /config/sphaira/mount/. Multiple entries can exist in the same file. The file name must be named using the names between (name) in from the table below (see the devoptab_templates.zip attached below).
Supported mounts:
HTTP/HTTPS (http.ini)
FTP (ftp.ini)
SFTP (sftp.ini)
Webdav (webdav.ini)
Samba share (smb.ini)
- NFS (nfs.ini)
Here is an example of a mount config with all options: https://gist.github.com/ITotalJustice/d24eee615335e9ded39305e072a6cbab/raw/b6aada4d15b9972cde724b879c82d1bf6f628944/smb_example_full.ini
Here's an example of a simple Samba config: https://gist.github.com/ITotalJustice/d24eee615335e9ded39305e072a6cbab/raw/b6aada4d15b9972cde724b879c82d1bf6f628944/smb.ini
This file would go in /config/sphaira/mount/smb.ini
Another example using webdav: https://gist.github.com/ITotalJustice/d24eee615335e9ded39305e072a6cbab/raw/b6aada4d15b9972cde724b879c82d1bf6f628944/webdav.ini
This file would go in /config/sphaira/mount/webdav.ini
Vfs is basically a shortcut to other mount points. This can be used as a way to quickly access folders on your sd card, or even other network mount points.
Here is an example: https://gist.github.com/ITotalJustice/d24eee615335e9ded39305e072a6cbab/raw/b6aada4d15b9972cde724b879c82d1bf6f628944/vfs.ini
This file would go in /config/sphaira/mount/vfs.ini
I've added NSZ to hopefully encorage more people to use NSZ for their backups. NSZ is basically a compressed NSP. Normally, you cannot compress a NSP because the NCA's are encrypted, and encrypted data does not compress. NSZ solves this by decrypting the data and then compressing. When converting back to NSP or installing, the data is decompress and then re-enrcypted. This is lossless. No data is modfied.
Why use NSZ?
The benefit of NSZ is that is results in a smaller output. Not only that, but NSZ exports are faster than NSP, and NSZ also installs faster compared to NSP.
The reason this happens is simple. Doing same source transfers (SD card -> SD card), such as exporting a game that is installed on your sd card to sd card, you halve your maximum throughput. However, if the data is compressed, then you write less data, which can improve performance. This is only true if the write speed is much slower than compression speed VS the final output size. In my tests, this is almost always true.
Installing works the same way. You have to read less data, which improves performance for same source transfers. This also improves performance is the read speed is slower than write speed, even if not using same source.
Example, you're installing a backup from your very slow http server, downloading at 8MiB/s. Your SD write speed is 30MiB/s, however you only achieve 8MiB/s because your bottleneck is the slow read. Now if the game is NSZ compressed, then it is possible to hit the max of 30MiB/s when decompressing, thus decreasing install times.
You can modify the NSZ exports, such as enabling block compression, changing compression level, changing thread count etc. However, i would strongly recommend leaving the options at the default as they have been tuned for a balance between speed and size.
NOTE: NSZ export only works with sources that support random write access. Because of this, Webdav and FTP are not supported as export targets. Please use Smb, Nfs, Hdd, SD card for NSZ export.
The USB code has been completely changed. This change was made in order to verify that installs / exports are working correctly. I currently have 2 frontends for USB, python scripts and the new webusb version!
NOTE: the webusb client only works on edge or chrome-based browsers (firefox / safari not supported).
If you have any problems getting usb to work, feel free to reach to me on patreon.
The version number will still say 0.13.3. I will update the version number when the full public release is out. This allows for the built-in updater to continue to function.
You can try out the USB web install here!
Sphaira lite is a smaller build of Sphaira with a lot of features disabled. I am providing it just in case people prefer / do not want these new features, but only want an up-to-date bug fix build.
-- TJ
TotalJustice
2025-09-30 00:57:08 +0000 UTClaz305
2025-09-29 23:39:56 +0000 UTClaz305
2025-09-29 23:31:11 +0000 UTC