I've read people on gbatemp/IRC/reddit complaining about homebrew polluting their SD's root directory. This has become an issue because 3ds userland homebrew was initially designed to be in the 3dsx format, almost exclusively. However, many people do not want to use this format, and perhaps for good reasons which I won't describe here. And others simply will never be able to use this format because their homebrew isn't for userland.
Regardless, there have emerged many popular CIA-only homebrew and many homebrew apps that aren't in userland, and both of these types of homebrew face the problem of choosing where to save their data on the SD card. Most have resorted to merely making a directory/file on the SD root.
I propose the following simple restructuring:
sd:/3ds/apps/
This is similar to what the WiiU uses. This will be for 3dsx homebrew, essentially a renaming of sd:/3ds/ that currently exists. In the same fashion, all subdirectories will be 3dsx homebrew apps. And you can expect that removing sd:/3ds/apps/luma3ds, for example, will be removing a 3dsx luma launcher, and nothing more.
sd:/3ds/appdata/
This will be for data saved by homebrew, whether it be by 3dsx or CIA userland, or whether it by an arm9 bootloader needing to save a config file. It likewise would have subdirectories of homebrew names. The ideal behavior would be that removing directories here will not break their corresponding homebrew, and it will rather just deleting everything (data dumps, caches, config files, etc.) created by the homebrew. Of course, not all homebrew devs have made their homebrew self-contained to recreate config files and such, so therefore those files should be saved along with the app itself and not in this directory, otherwise deleting this subdirectory will make the app inoperable.
Benefits:
I would like feedback, primarily from homebrew devs. Is there anything else to be considered?
Regardless, there have emerged many popular CIA-only homebrew and many homebrew apps that aren't in userland, and both of these types of homebrew face the problem of choosing where to save their data on the SD card. Most have resorted to merely making a directory/file on the SD root.
I propose the following simple restructuring:
sd:/3ds/apps/
This is similar to what the WiiU uses. This will be for 3dsx homebrew, essentially a renaming of sd:/3ds/ that currently exists. In the same fashion, all subdirectories will be 3dsx homebrew apps. And you can expect that removing sd:/3ds/apps/luma3ds, for example, will be removing a 3dsx luma launcher, and nothing more.
sd:/3ds/appdata/
This will be for data saved by homebrew, whether it be by 3dsx or CIA userland, or whether it by an arm9 bootloader needing to save a config file. It likewise would have subdirectories of homebrew names. The ideal behavior would be that removing directories here will not break their corresponding homebrew, and it will rather just deleting everything (data dumps, caches, config files, etc.) created by the homebrew. Of course, not all homebrew devs have made their homebrew self-contained to recreate config files and such, so therefore those files should be saved along with the app itself and not in this directory, otherwise deleting this subdirectory will make the app inoperable.
Benefits:
- Will give 3ds homebrew devs more flexibility when putting stuff in sd:/3ds/ without the need to pollute the directories used by HBL or other derivative launchers. Perhaps devs could also use sd:/3ds/cfw/ or sd:/3ds/arm9/ too, so people won't have rxTools/Luma3ds/Decrypt9/etc. directories in their SD root.
- Gives a proper separation of application and user data, similar to how PC environments operate.
- SD root directory would only need a few files/directories for 3ds homebrew purposes, making it nicer to use for other purposes as well.
- Requires a modification to HBL, albeit a simple one, using sd:/3ds/apps/ as the hb directory.
- 3dsx devs have come to expect CWD to provide their data space, and many aren't comfortable with changing to a fixed directory naming convention. This directory change won't break their work, but they'll simply not be compliant, having their user data mixed with app data against what would be expected.
- The current directory standard is so ubiquitous that changing it would break old tutorials (or confuse some end users). Some could perhaps consider it at a point of no return.
people want sd:/3ds to become sd:/3ds/apps so that CIA can put stuff in sd:/3ds/data or smth
— smea (@smealum) July 2, 2016
sd:/3ds will still work
I would like feedback, primarily from homebrew devs. Is there anything else to be considered?
Last edited by TheCruel,