Homebrew Proposed SD directory restructuring for homebrew

  • Thread starter Thread starter TheCruel
  • Start date Start date
  • Views Views 25,045
  • Replies Replies 243
  • Likes Likes 54
Having a folder called homebrew to have another folder inside called apps is stupidly redundant IMO, and app data should always go in the app folder alongside the 3dsx (or alone if you're using a CIA).

However it's true that there's a huge problem with some CIA homebrew developers (or at least some months ago there was a problem) who doesn't want to put his app data into 3ds folder and use root and that needs to change to avoid cluttering our SD card.

PS: I also think that 3ds was not the best name that could've been chosen to name that folder and apps was a much better one but meh.
 
  • Like
Reactions: gnmmarechal
app data should always go in the app folder alongside the 3dsx (or alone if you're using a CIA).
I don't agree with this. If the app data and the app itself are in two different locations, it allows users to delete a homebrew app if they don't need it for now, but still keep their configs. It's why on Linux systems, config is in /etc/, and on Windows, config is in %appdata%.

However it's true that there's a huge problem with some CIA homebrew developers (or at least some months ago there was a problem) who doesn't want to put his app data into 3ds folder and use root and that needs to change to avoid cluttering our SD card.
I'm one of those devs, and it's not so much a problem as the accepted community standard up to this point. The /3ds/ folder was created for .3dsx homebrew, HBL will list all folders inside it, so if something like CIAngel were to create a folder inside /3ds/, it would show up in HBL, cluttering the list.

PS: I also think that 3ds was not the best name that could've been chosen to name that folder and apps was a much better one but meh.
/3ds/ implies the intent of the folder, to contain 3ds "stuff", in this case homebrew. If it was named "apps" and you found an SD card in 6 months sitting around with that folder name on it, you'd have no idea what that folder was without browsing around it looking for files that can identify it.
 
  • Like
Reactions: clank and faku1810
I like the 3ds/apps proposal. Though I'm not entirely sold regarding the need for a separate data folder. I understand it's caused because HBL won't filter "only" the 3dsx but rather show folders if they exist, making it possible to show a bunch of folders that have no relevance to what the Homebrew launcher can run. But then, can't that be changed in the source code so HBL only shows 3dsx files if they exist under the folders they scan? And maybe only show a folder if it contains more than one 3dsx file?

Somehow I can't imagine people actually sharing the same SD in their 3ds with the wii and wiiu since it's annoying taking out a sd from one place to another. But even if that's actually the case, as others have already stated, it wouldn't make a difference. They won't be changing two or three scenes standards just to suit that particular scenario. So I think it's best we focus on making the folder structure suit the 3ds scene as much as possible, while still providing the "less clutter" feeling they want.
 
There's only one project that I'm currently working on for 3DS, and it doesn't use the root of the SD in any way apart from reading files in the file manger. It saves data only to '/3ds/Cyanogen3DS'.
I'd also like to agree with the guy on reddit. I guess things like CFWs would be more suitable to use the root, but homebrews and such should belong under the '/3ds' folder. It just seems well organized that way.
 
I don't agree with this. If the app data and the app itself are in two different locations, it allows users to delete a homebrew app if they don't need it for now, but still keep their configs. It's why on Linux systems, config is in /etc/, and on Windows, config is in %appdata%.

Assuming HBL was changed to only display 3dsx apps (or a folder if it contains more than one 3dsx); wouldn't it be possible to make homebrew create their own data or config folder? That way people would still be able to delete them separately based on their needs.

Example:
3ds/freeshop/ ; contains only configuration files because it's a cia only release. Doesn't show up in hbl.
3ds/Desmume/desmume.3dsx ; contains the 3dsx so it shows the app in HBL. It uses Desmume/data for the config and maybe a roms folder for the ds files.
3ds/JKSM/ ; contains either the 3dsx and a data folder, or just the data folder for the cia version.

I think that would comply with everyone's requirements, as it still allows for distinction if the SD is used in a different console.
 
Having a folder called homebrew to have another folder inside called apps is stupidly redundant IMO, and app data should always go in the app folder alongside the 3dsx (or alone if you're using a CIA).
Then your 3dsx dir (and HBL menu) will be littered with irrelevant data meant for CIA homebrew or arm9 utilities. It's already enough of a pain in the ass to navigate HBL with 50+ relevant items, let alone irrelevant ones
I like the 3ds/apps proposal. Though I'm not entirely sold regarding the need for a separate data folder. I understand it's caused because HBL won't filter "only" the 3dsx but rather show folders if they exist, making it possible to show a bunch of folders that have no relevance to what the Homebrew launcher can run. But then, can't that be changed in the source code so HBL only shows 3dsx files if they exist under the folders they scan? And maybe only show a folder if it contains more than one 3dsx file?
I thought about that too. And while that solves one problem of getting rid of clutter on the root directory and HBL, it then causes clutter elsewhere. Ideally, the HBL should have all of its games in one directory alone. Putting everything homebrew related in /3ds/ is like installing system software to system32. It could work, but it's nice to have that location only contain certain expected files.

Depending on people further thoughts, making improvements to HBL could be second best option that doesn't require more wide-spread changes. However, because of what I mentioned I don't think any devs will start putting their stuff in directories like /3ds/Emunand9/ since most devs don't like that lack of separation. That directory is expected to be for homebrew launchers and not necessarily for firm binaries, configuration files, and such.
 
Last edited by TheCruel,
Assuming HBL was changed to only display 3dsx apps (or a folder if it contains more than one 3dsx); wouldn't it be possible to make homebrew create their own data or config folder? That way people would still be able to delete them separately based on their needs.
HBL has the ability to browser the SD card, which would be required for this idea to work. If it only showed things with .3dsx then it would hide "/3ds/apps/" if it defaulted "/3ds/", or if you go up to the root of your SD card, it would hide the "/3ds/" folder since it doesn't directly contain a .3dsx file. Doing anything like recursive checking would be resource intensive, and could cause issues for people who share their 3DS with other things (Camera, WiiU, etc)
 
IMO this suggestion is better than adding the /homebrew/ folder (yeah, I suggested it on reddit, but after reading this I changed my mind).
I think something like this will be pretty good and won't break anything even if some devolpers don't fix it (if it becomes a standard, they eventually will):

/3ds/app/ -> homebrew apps (folders with 3dsx and files that the app needs to run)
/3ds/data/ -> files that the apps will generate (each app would use their own folder inside this one)
/3ds/a9lh/ -> arm9 payloads? Idk if this would be necessary or not but why not

This wouldn't even break the current version of HBL (as stated in some posts above this one), we would just have to open the "app" folder and there we have our homebrew.
 
/homebrew/3ds sounds really convenient: using /homebrew/ as a "root" and having just 2 folders on your real root. That's an extra work for a number of devs however

Having a folder called homebrew to have another folder inside called apps is stupidly redundant IMO, and app data should always go in the app folder alongside the 3dsx (or alone if you're using a CIA).

However it's true that there's a huge problem with some CIA homebrew developers (or at least some months ago there was a problem) who doesn't want to put his app data into 3ds folder and use root and that needs to change to avoid cluttering our SD card.

PS: I also think that 3ds was not the best name that could've been chosen to name that folder and apps was a much better one but meh.

I'm not a 1000% sure, but i believe that the foldername was set to 3ds for the small name, so that it would be easier to fit in a payload
 
/3ds/ implies the intent of the folder, to contain 3ds "stuff", in this case homebrew. If it was named "apps" and you found an SD card in 6 months sitting around with that folder name on it, you'd have no idea what that folder was without browsing around it looking for files that can identify it.

/3ds/ doesn't make sense and it does not convey its purpose:
What it does: House .3dsx format homebrew and maybe their data.
What it conveys: 3DS... stuff... on my SD... Alright then.

Whereas, /homebrew/3ds/ literally tells you what it does in the first glance:
What it does: House homebrew for 3DS.
What it conveys: House homebrew for 3DS.
 
  • Like
Reactions: evandixon
/3ds/ doesn't make sense and it does not convey its purpose:
What it does: House .3dsx format homebrew and maybe their data.
What it conveys: 3DS... stuff... on my SD... Alright then.

Whereas, /homebrew/3ds/ literally tells you what it does in the first glance:
What it does: House homebrew for 3DS.
What it conveys: House homebrew for 3DS.
I'm not a 1000% sure, but i believe that the foldername was set to 3ds for the small name, so that it would be easier to fit in a payload
 
/3ds/ doesn't make sense and it does not convey its purpose:
What it does: House .3dsx format homebrew and maybe their data.
What it conveys: 3DS... stuff... on my SD... Alright then.

Whereas, /homebrew/3ds/ literally tells you what it does in the first glance:
What it does: House homebrew for 3DS.
What it conveys: House homebrew for 3DS.

Sounds awfully reversed to me.
I think /3ds/homebrew/ would suit it better. (Coming from the psp, Sony had it set up like PSP/GAME but the way you're saying it seems odd to me).
Even if Sony didn't have it like that, I'd still think /3ds/homebrew seems better. I mean you can also have /3ds/audio/ or /3ds/pictures/
 
  • Like
Reactions: TheCruel
/3ds/ doesn't make sense and it does not convey its purpose:
What it does: House .3dsx format homebrew and maybe their data.
What it conveys: 3DS... stuff... on my SD... Alright then.

Whereas, /homebrew/3ds/ literally tells you what it does in the first glance:
What it does: House homebrew for 3DS.
What it conveys: House homebrew for 3DS.
Heh, so is there non-homebrew 3ds stuff people are putting on their SD card or something? If not, then /homebrew/3ds/ is the same thing except 1) trying to use it will not work with current HBL and 2) it doesn't actually propose any separation of 3dsx and non-3dsx homebrew files. Unless you mean to imply that you would be using /homebrew/3ds/apps/ or something.
 
  • Like
Reactions: clank and Joel16
Having a single /homebrew/ folder on the root would be best. This way you can just throw all of the .3dsx and .smdh files without needing to name folder inside of that homebrew folder.
 
Last edited by Xenon Hacks,
I'm not a 1000% sure, but i believe that the foldername was set to 3ds for the small name, so that it would be easier to fit in a payload
No actually I was told that it's /3ds/ because NDS devs used /nds/ for their thing.

Sounds awfully reversed to me.
I think /3ds/homebrew/ would suit it better. (Coming from the psp, Sony had it set up like PSP/GAME but the way you're saying it seems odd to me).
Even if Sony didn't have it like that, I'd still think /3ds/homebrew seems better. I mean you can also have /3ds/audio/ or /3ds/pictures/
My initial idea was just /homebrew/. No /3ds/ after it. But I was swiftly told that people somehow use their SDs for several devices, and that some big-name devs out there would not support just /homebrew/, but they would support /homebrew/3ds/.
/homebrew/3ds hits all the criteria I want:
1) It conveys its purpose loud and clear, at a single glance.
2) It prevents clutter from SD root.
3) It has room for expansion so if wiiu scene decides, they can use /homebrew/wiiu/ without cluttering the SD root with /wiiu/

Heh, so is there non-homebrew 3ds stuff people are putting on their SD card or something? If not, then /homebrew/3ds/ is the same thing except 1) trying to use it will not work with current HBL and 2) it doesn't actually propose any separation of 3dsx and non-3dsx homebrew files. Unless you mean to imply that you would be using /homebrew/3ds/apps/ or something.
I propose current /3ds/ folder should be moved to /homebrew/3ds/hbchannel or maybe /homebrew/3ds/3dsx, or heck, /homebrew/3ds/apps/ or bins/ would be fine as well.

Having a single /homebrew/ folder on the root would be best.This way you can just throw all of the .3dsx and .smdh files without needing to name folder inside of that homebrew folder.
That's not how that works. That'll create more chaos than it solves.
 
Why not just force linux-like FHS on everybody? Name the root folder 'usr' and have 'bin' (3dsx), 'sbin' (arm9), 'share', 'var' (for cache) etc under it. Shaft all the uncompliant stuff under 'opt' since it won't work anyways. Sort of serious, but j/k

I'll just say that if everyone can actually decide where the hell to put stuff in a rational manner that has no ambiguity, I'll gladly change the path on Corbenik. Oh, and we all should seriously start using argc and argv on arm9 instead of pathchangers (but that fell on dead ears, sadly.)
 
If we keep 3ds a s the base folder, then it will be backwards compatible with people that don't update their homebrew channel.
I think what was proposed in the
First post is the best option here
 
My initial idea was just /homebrew/. No /3ds/ after it. But I was swiftly told that people somehow use their SDs for several devices, and that some big-name devs out there would not support just /homebrew/, but they would support /homebrew/3ds/.
/homebrew/3ds hits all the criteria I want:
1) It conveys its purpose loud and clear, at a single glance.
2) It prevents clutter from SD root.
3) It has room for expansion so if wiiu scene decides, they can use /homebrew/wiiu/ without cluttering the SD root with /wiiu/


I propose current /3ds/ folder should be moved to /homebrew/3ds/hbchannel or maybe /homebrew/3ds/3dsx, or heck, /homebrew/3ds/apps/ or bins/ would be fine as well.
Your way does not with with the current HBL, and would cause headaches if someone is using homebrew that doest get updated. The way suggested in OP covers both these cases. Can you really not look at the folder /3ds/apps/ and infer that it may contain 3ds homebrew?

You can't even get the 3ds scene to agree with you, I find it highly unlikely you could convince any other scene to switch to your /homebrew/ idea.

And you should ask the devs who have gotten on board with your idea whether they think TheCruels idea is better, I'm curious what they say.
 

Site & Scene News

Popular threads in this forum