A brand new game
for Windows, Linux, Mac, HTML5, 3DS Homebrew and more
The CIA Gets Involved
15th May, 2018
Over at GBATemp, user bobdamnit suggested that it'd be better if I release my 3DS games as .CIA files, so they can be installed on the main 3DS menu instead of just the Homebrew Launcher.
After practically an entire day, I finally figured out a way to integrate .cia creation in my simple-ish Build.bat
For the most part, it was easy enough, but once I hit the "TitleID" everything became much more complicated.
The 3DS uses this identifier to ensure that no two games overwrite each other, and similarly if you have two games with the same ID, then they WILL overwrite each other.
Essentially, if you download Smash Bros from the eShop, then download it again, you won't have two copies of Smash Bros.. You'll have one copy, which overwrites the other, and a wasted download.
So, Nintendo obviously keep a giant database for these things, and similarly so must the Homebrew community.
You aren't "assigned" IDs. You must simply make them up as you go along, and given the hodgepodge nature of Homebrew, there's a slight risk that people's games will accidentally overwrite each other.
.. Or even official games.
I've (I hope!) chosen a range of values which don't appear to be in use anywhere else. Although, only time will tell if that's the case.
Just in case any of my games do prove to be problematic in this area, I'll ensure the classic .3dsx file is also included with downloads, so that players can simply install that instead.
I do hope all that was worth it!
I'll be recompiling the selection of released games later, so they include the new functionality.