no one thought of a site like that before because szs sharing is illegal and was done secretly on discord servers.
It went in 3 steps:
1) the szs is a file extracted from your console's firmware and contains copyrighted data (picture, sound) and codes from nintendo. therefore it can't be shared.
The themes are editing the szs file to add a new layer (to put a background image) and edit the layout (icon position).
so the themes are made of three things : original szs, background picture converted to dds, a json layout file.
The resulted patched szs file goes on SD card and with the use of LayeredFS plugin, it's loaded in place of the original szs file at console boot.
- The szs is tied to a specific firmware version, 5.x szs can't be used on 6.x console, and vice versa.
- You can have only one szs at a time on your SD card.
2) Qcean team wanted to make a legal sharing solution, so they made a web-app website (program run locally on your browser) where users provide their own extracted szs file, and the URL of dds and json.
it was called auto-theme : theme creator uploaded their dds/json files on a compatible website (gbatemp download section has been made compatible especially for sharing themes), and the end user only had to click on a link to generate the patched szs file.
szs+url of dds+url of json = patched szs
- the dds+layout is not for a specific firmware, it can patch both 5.x and 6.x
The issue is that almost everyone continued to share their pre-patched illegal szs file, instead of using the autotheme legal sharing method. mainly because nobody cared to extract their own szs file from the firmware.
the extraction steps was complicated : making a full NAND dump, extracting keys, using windows Hactool to extract nca and extract nca to get szs.
nobody could make a sharing website, because everybody was still sharing illegal files, and for specific firmwares.
3) Qcean team worked on another easier solution : patch done directly on the console.
the team created a theme installer, which can list "nxtheme" files located on the SD card, and use an original extracted copy of szs to patch it and put the result where layeredFS can use it.
nxthemes are nothing else than a package of dds+layout, so they are identical and doing the exact same thing than previous methods.
- you can have multiple nxthemes on sd card
- it's not tied to a specific firmware
- you don't need to make a full nand dump anymore to extract your szs to SD card (to use as original template), though the user still need to extract its szs but it's a lot easier now (done inside the theme installer homebrew).
- nxtheme can be shared legally, and sharing one file is easier than multiple split files.
GBAtemp has a
Switch theme section that users started using. so in a sense, such website already exist.
the gallery idea is just another project, not tied to GBAtemp, but is more a existing theme listing site than a theme hosting website. so it could even list themes located on gbatemp.
4) future
Qcean team will work to:
- pack all screens in one nxtheme (no more one nxtheme per szs). the console uses 4 different szs : main screen, sleep screen, settings, game library.
- switch theme : a sysmodule to load a random theme at console boot, almost ready for release!