Homebrew Proposed SD directory restructuring for homebrew

Tjessx

Well-Known Member
Member
Joined
Dec 3, 2014
Messages
1,160
Trophies
0
Age
27
XP
952
Country
Belgium
The current HBL is a little wonky in its way to figure out what is an app, and what is not, and it's just a whole bunch of clusterfuck. Gridlauncher tried bringing some sort of standard to this behaviour, but it ended up fucking up some apps that come default (sploit installers comes to mind). Even if we use /3ds/, we still need a newer version of HBL that deals with it, so it won't be backwards compatible. I think this is one of the rare instances where backwards compatibility should be sacrificed for the betterment of the entire scene.
doesn't have the homebrew launcher folder support? i thought you could go to subfolders
 

Shadowhand

Slim, Alternative Dev.
Member
Joined
Feb 27, 2016
Messages
522
Trophies
0
Age
31
XP
1,958
Country
United Kingdom
doesn't have the homebrew launcher folder support? i thought you could go to subfolders
It does support that, yes. But that's not a solution. 3dsx format apps are supposed to be in a folder that's named the same as 3dsx file, and must be accompanied by an smdh file that has the same name as well (so it should be thing/thing.3dsx thing/thing.smdh), if it doesn't fit this criteria, it's simply ignored. except if it's only a single 3dsx file without a folder. As you can see, it's a very complicated system to determine 3dsx format apps, so using /3ds/ is not going to be backwards compatible.
 

chaoskagami

G̷̘̫̍̈́̊̓̈l̴̙͔̞͠i̵̳͊ţ̸̙͇͒̓c̵̬̪̯̥̳͒͌̚h̵̹̭͛̒̊̽̚
Developer
Joined
Mar 26, 2016
Messages
1,365
Trophies
1
Location
↑↑↓↓←→←→BA
Website
github.com
XP
2,287
Country
United States
This is what I'm envisioning. What I propose is we literally use /homebrew/3ds/ like we use SD root. That way only very little will have to be changed on both developer and user sides.

The problem with that is that it is still suscpetible to becoming a mess. It's also not future-proofed.

Not all of us see the merits of bundles evidently, from the number of people suggesting pseudo-unix layouts. I'm inclined to agree on needing a unix-style layout.

Then again, nothing prevents all of us from having a containerized standard and a unix-like standard, does it? Not everyone will follow standards, anyways.

The current HBL is a little wonky in its way to figure out what is an app, and what is not, and it's just a whole bunch of clusterfuck. Gridlauncher tried bringing some sort of standard to this behaviour, but it ended up fucking up some apps that come default (sploit installers comes to mind). Even if we use /3ds/, we still need a newer version of HBL that deals with it, so it won't be backwards compatible. I think this is one of the rare instances where backwards compatibility should be sacrificed for the betterment of the entire scene.

I agree. Backwards compatibility is going to harm us.
 
Last edited by chaoskagami,
  • Like
Reactions: gnmmarechal

Shadowhand

Slim, Alternative Dev.
Member
Joined
Feb 27, 2016
Messages
522
Trophies
0
Age
31
XP
1,958
Country
United Kingdom
The problem with that is that it is still suscpetible to becoming a mess. It's also not future-proofed.

Not all of us see the merits of bundles evidently, from the number of people suggesting pseudo-unix layouts. I'm inclined to agree on needing a unix-style layout.

Then again, nothing prevents all of us from having a containerized standard and a unix-like standard, does it? Not everyone will follow standards, anyways.
Why do you think it's not future proof? Also I didn't mean like an actual bundle like OSX has. Think more "%appdata%" on Windows.
Unix-like structure doesn't make a lot of sense because we don't have libraries, or a need for /etc or /var.
Each homebrew app out there is already self contained, it just needs its own file domain on the SD card to save configs, or other external but non-shared properties, and usually SD:/namespace is used (SD:/JKSV for example).

What I proposed isn't hard. It's not a wildly different structure. It's not a very big change. I literally want devs to add "/homebrew/3ds/" to the beginning of their file/folder paths.
 

chaoskagami

G̷̘̫̍̈́̊̓̈l̴̙͔̞͠i̵̳͊ţ̸̙͇͒̓c̵̬̪̯̥̳͒͌̚h̵̹̭͛̒̊̽̚
Developer
Joined
Mar 26, 2016
Messages
1,365
Trophies
1
Location
↑↑↓↓←→←→BA
Website
github.com
XP
2,287
Country
United States
Why do you think it's not future proof? Also I didn't mean like an actual bundle like OSX has. Think more "%appdata%" on Windows.
Unix-like structure doesn't make a lot of sense because we don't have libraries, or a need for /etc or /var.
Each homebrew app out there is already self contained, it just needs its own file domain on the SD card to save configs, or other external but non-shared properties, and usually SD:/namespace is used (SD:/JKSV for example).

What I proposed isn't hard. It's not a wildly different structure. It's not a very big change. I literally want devs to add "/homebrew/3ds/" to the beginning of their file/folder paths.

I think we have a clear need to separate savedata/configuration from the actual application if we're going to break compatibility.

If I had to pick an approach I prefer better of your approach and @TheCruel's I'd have to say Cruel's is better longterm. Yours will be a simpler adjustment for users, but I personally don't feel moving the path and enforcing folders is enough, especially since HBL currently tries to force folders (and has failed to force devs to do so) ;)

Longterm, it'd be better if savedata was outside the application's folder. Users will go 'wtf' at first but it isn't that hard to adjust to.
 
Last edited by chaoskagami,

Shadowhand

Slim, Alternative Dev.
Member
Joined
Feb 27, 2016
Messages
522
Trophies
0
Age
31
XP
1,958
Country
United Kingdom
I think we have a clear need to separate savedata/configuration from the actual application if we're going to break compatibility.

If I had to pick an approach I prefer better of your approach and @TheCruel's I'd have to say Cruel's is better longterm. Yours will be a simpler adjustment for users, but I personally don't feel moving the path and enforcing folders is enough, especially since HBL currently tries to force folders (and has failed to force devs to do so) ;)

Longterm, it'd be better if savedata was outside the application's folder. Users will go 'wtf' at first but it isn't that hard to adjust to.
But that's literally what I suggested?.. I'm saying we move /3ds/ to /homebrew/3ds/_hblauncher (so it'd be at the top of the list) or something similar, and have homebrew apps use /homebrew/3ds/* for their folders. That way we will have separated the actual binaries from the savedata.
 

chaoskagami

G̷̘̫̍̈́̊̓̈l̴̙͔̞͠i̵̳͊ţ̸̙͇͒̓c̵̬̪̯̥̳͒͌̚h̵̹̭͛̒̊̽̚
Developer
Joined
Mar 26, 2016
Messages
1,365
Trophies
1
Location
↑↑↓↓←→←→BA
Website
github.com
XP
2,287
Country
United States
But that's literally what I suggested?.. I'm saying we move /3ds/ to /homebrew/3ds/_hblauncher (so it'd be at the top of the list) or something similar, and have homebrew apps use /homebrew/3ds/* for their folders. That way we will have separated the actual binaries from the savedata.

Are you saying the 3dsx files DON'T go in their respective directories, but in sdmc:/homebrew/3ds/_hblauncher/whatever.3dsx? If so, that doesn't sound like a good idea - the 3dsx files would be separated but under a subdirectory of data files. :unsure:

Can you point me to your original post? I'm having issues finding it and I need a re-read.
 

Shadowhand

Slim, Alternative Dev.
Member
Joined
Feb 27, 2016
Messages
522
Trophies
0
Age
31
XP
1,958
Country
United Kingdom
Are you saying the 3dsx files DON'T go in their respective directories, but in sdmc:/homebrew/3ds/_hblauncher/whatever.3dsx? If so, that doesn't sound like a good idea - the 3dsx files would be separated but under a subdirectory of data files. :unsure:
Okay look, you know the current state of /3ds/ folder? I'm saying let's just move it under /homebrew/3ds/ under a different name. That'll be like /bin/ in unix-like system. Then we use /homebrew/3ds/ like root of SD, i.e. it'll contain JKSV folder, Luma, or corbenik, whatever.
 

chaoskagami

G̷̘̫̍̈́̊̓̈l̴̙͔̞͠i̵̳͊ţ̸̙͇͒̓c̵̬̪̯̥̳͒͌̚h̵̹̭͛̒̊̽̚
Developer
Joined
Mar 26, 2016
Messages
1,365
Trophies
1
Location
↑↑↓↓←→←→BA
Website
github.com
XP
2,287
Country
United States
Okay look, you know the current state of /3ds/ folder? I'm saying let's just move it under /homebrew/3ds/ under a different name. That'll be like /bin/ in unix-like system. Then we use /homebrew/3ds/ like root of SD, i.e. it'll contain JKSV folder, Luma, or corbenik, whatever.

Okay. That's just moving the clutter, though. It isn't resolving it, imo. :(

Like I've said, if we can get a majority to agree, I don't care what we all decide on even if it isn't future proofed. Anything is better than it being dumped on the root.

I think I'll just let everyone else go at it at this point. My two cents have been given. :)
 
  • Like
Reactions: Quantumcat

Shadowhand

Slim, Alternative Dev.
Member
Joined
Feb 27, 2016
Messages
522
Trophies
0
Age
31
XP
1,958
Country
United Kingdom
Okay. That's just moving the clutter, though. It isn't resolving it, imo. :(

Like I've said, if we can get a majority to agree, I don't care what we all decide on even if it isn't future proofed. Anything is better than it being dumped on the root.
I just want to clean up the root of the SD. As I said many times, my initial idea was /homebrew/ only, no /3ds/, but @Gelex said "m8 dat's dum, I aint supportin dat! make it /homebrew/3ds/" (artist's interpretation). I have no complaints with where the files are located as long as they are somewhere in /homebrew/3ds/ and not collide with other apps.
 
  • Like
Reactions: chaoskagami
A

a9lh-1user

Guest
Another quick question.
"Why change a working system everyone knows and is working with since a long time?"
I can't see in any of the notes in this thread a realy needed point.
 

chaoskagami

G̷̘̫̍̈́̊̓̈l̴̙͔̞͠i̵̳͊ţ̸̙͇͒̓c̵̬̪̯̥̳͒͌̚h̵̹̭͛̒̊̽̚
Developer
Joined
Mar 26, 2016
Messages
1,365
Trophies
1
Location
↑↑↓↓←→←→BA
Website
github.com
XP
2,287
Country
United States
I just want to clean up the root of the SD. As I said many times, my initial idea was /homebrew/ only, no /3ds/, but @Gelex said "m8 dat's dum, I aint supportin dat! make it /homebrew/3ds/" (artist's interpretation). I have no complaints with where the files are located as long as they are somewhere in /homebrew/3ds/ and not collide with other apps.

I imagine the 'Artist's interpretation' is funnier than the original conversation, but you gave me a chuckle with that.

Anyways, we're on the same page. Root clutter needs to go.

Another quick question.
"Why change a working system everyone knows and is working with since a long time?"
I can't see in any of the notes in this thread a realy needed point.

Because it is broke. You just think it ain't.
 
Last edited by chaoskagami,

Shadowhand

Slim, Alternative Dev.
Member
Joined
Feb 27, 2016
Messages
522
Trophies
0
Age
31
XP
1,958
Country
United Kingdom
Another quick question.
"Why change a working system everyone knows and is working with since a long time?"
I can't see in any of the notes in this thread a realy needed point.
Just because your car works on gasoline doesn't mean we don't have to change that.
Yes gasoline works, but it's bad for the environment. Just because it works (which doesn't) doesn't mean we should stick with it.
We'd never have touchscreen phones because SURPRISE, home phones with cables and rubber buttons still work.

--------------------- MERGED ---------------------------

I imagine the 'Artist's interpretation' is funnier than the original conversation, but you gave me a chuckle with that.
Anyways, we're on the same page. Root clutter needs to go.
Yeah the actual conversation was quite longer and not as funny. He's not from the ghetto.
 

DjoeN

Captain Haddock!
Member
Joined
Oct 21, 2005
Messages
5,489
Trophies
0
Age
54
Location
Somewhere in this potatoland!
Website
djoen.dommel.be
XP
2,857
Country
Belgium
SOOO,
As a Windows fan i'm only gonna support the following layout: :P

\3DS\arm9loaderhax.bin
\3DS\AppData\
\3DS\Documents and Settings\
\3DS\Program_Files\
\3DS\Users\
\3DS\Windows\ (boot.bin/hblauncherloader_otherapp_payload_*.bin/slot0xxxxx.bin/ntr.bin/arm9.bin/arm11.bin and other CFW related stuff :P)
\3DS\Temp\
\3DS\$Recycle.Bin\ (for whatever reason :P )

:D, ok, just Joking, i really don't care, but it would be nice to have some sort of unified way to organize the SD
AS stated above a few times, there will always be ppl who wil not follow rulez made by others, you can't avoid that.
 
Last edited by DjoeN,

Shadowhand

Slim, Alternative Dev.
Member
Joined
Feb 27, 2016
Messages
522
Trophies
0
Age
31
XP
1,958
Country
United Kingdom
AS stated above a few times, there will always be ppl who wil not follow rulez made by others, you can't avoid that.
For example, I contacted @cell9 but he said that my idea is dumb and it'll just confuse people and so he'll not release a fixed ntr.bin, which is fair enough.
I really wish for a nice opensource NTR replacement, or NTR itself going opensource... :(
 
  • Like
Reactions: chaoskagami

chaoskagami

G̷̘̫̍̈́̊̓̈l̴̙͔̞͠i̵̳͊ţ̸̙͇͒̓c̵̬̪̯̥̳͒͌̚h̵̹̭͛̒̊̽̚
Developer
Joined
Mar 26, 2016
Messages
1,365
Trophies
1
Location
↑↑↓↓←→←→BA
Website
github.com
XP
2,287
Country
United States
For example, I contacted @cell9 but he said that my idea is dumb and it'll just confuse people and so he'll not release a fixed ntr.bin, which is fair enough.
I really wish for a nice opensource NTR replacement, or NTR itself going opensource... :(

Yeah, so do we all. It'll never happen. @cell9 doesn't care. :(

If we want an open source NTR, the only solution is to pop it in IDA and rewrite it, or just write something like NTR. Easier said than done. :/
 
A

a9lh-1user

Guest
Just because your car works on gasoline doesn't mean we don't have to change that.
Yes gasoline works, but it's bad for the environment. Just because it works (which doesn't) doesn't mean we should stick with it.
We'd never have touchscreen phones because SURPRISE, home phones with cables and rubber buttons still work.

I see :)
you are talking about standards everyone has to follow.
That's a nice idea if and only if everyone stick with that rules!
To change something because it has chatastrophical consequences for the enviroment we live in is another thing imho.
But lets be realistic!
All the Dev's of HB and CFW are working on their own.
Some of them working things out together i think but not all.
So if the new standard will come there will be chaos for a longer time and it will need a long time before everything is working togheter (HB and CFW)
At the moment it is working and most people know how they can use it but if you change it with a complete new file hirarchie it will be a mess at the beginning i think.

So again i like the idea behind it because it would be easyer for most users but i'am absolute sure it will be chaos for a longer time if it comes.

Because it is broke. You just think it ain't.

I dont think it is broken because i can work with it :)
 
Last edited by ,

Shadowhand

Slim, Alternative Dev.
Member
Joined
Feb 27, 2016
Messages
522
Trophies
0
Age
31
XP
1,958
Country
United Kingdom
Yeah, so do we all. It'll never happen. @cell9 doesn't care. :(

If we want an open source NTR, the only solution is to pop it in IDA and rewrite it, or just write something like NTR. Easier said than done. :/
I tried to reverse engineer it, but only after opening the file in IDA I realized I have zero knowledge about assembly. So that was a waste of time. lol

--------------------- MERGED ---------------------------

All the Dev's of HB and CFW are working on their own.
Some of them working things out together i think but not all.
So if the new standard will come threre will be chaos for a longer time and it will need a long time before everything is working togheter (HB and CFW)
With what I propose, devs will literally have to just add "/homebrew/3ds/" to the start of their current paths. That's literally all that there has to be done.
 
A

a9lh-1user

Guest
Congrats if you get all under the dome and they change there HB or CFW!
I dont believe in it at the moment.
And what i wrote than you will have chaos for a short or longer time!
 

chaoskagami

G̷̘̫̍̈́̊̓̈l̴̙͔̞͠i̵̳͊ţ̸̙͇͒̓c̵̬̪̯̥̳͒͌̚h̵̹̭͛̒̊̽̚
Developer
Joined
Mar 26, 2016
Messages
1,365
Trophies
1
Location
↑↑↓↓←→←→BA
Website
github.com
XP
2,287
Country
United States
I tried to reverse engineer it, but only after opening the file in IDA I realized I have zero knowledge about assembly. So that was a waste of time. lol

I could do it, but only on Valve time. I'm too lazy to RE NTR when I could be implementing something like it.

Congrats if you get all under the dome and they change there HB or CFW!
I dont believe in it at the moment.
And what i wrote than you will have chaos for a short or longer time!

Luckily, my name is 'chaos'. B-)

I see :)
you are talking about standards everyone has to follow.
That's a nice idea if and only if everyone stick with that rules!
To change something because it has chatastrophical consequences for the enviroment we live in is another thing imho.
But lets be realistic!
All the Dev's of HB and CFW are working on their own.
Some of them working things out together i think but not all.
So if the new standard will come there will be chaos for a longer time and it will need a long time before everything is working togheter (HB and CFW)
At the moment it is working and most people know how they can use it but if you change it with a complete new file hirarchie it will be a mess at the beginning i think.

So again i like the idea behind it because it would be easyer for most users but i'am absolute sure it will be chaos for a longer time if it comes.



I dont think it is broken because i can work with it :)

You will never get everybody to follow standards. This is a fact. See funny for details: https://xkcd.com/927/

However, having one or two is better than having NONE and dumping garbage everywhere.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • K3Nv2 @ K3Nv2:
    Cod and sports games are good examples but people still buy the shit
  • ZeroT21 @ ZeroT21:
    it happens quit often if not all the time
  • ZeroT21 @ ZeroT21:
    diablo 4 anyone?
  • K3Nv2 @ K3Nv2:
    Everyone just doesn't want to be an outcast and say they're decent games why do they make billions if it's so shit
  • ZeroT21 @ ZeroT21:
    just buy nintendo stuff and their games if you just want fun
  • K3Nv2 @ K3Nv2:
    I still can't name 12 fun current Nintendo games
  • ZeroT21 @ ZeroT21:
    i say get a pc and emulate that too

    :rofl2:
  • K3Nv2 @ K3Nv2:
    Or in today's age at least a SteamDeck
  • ZeroT21 @ ZeroT21:
    i gotta say, the steam deck isn't a bad deal, even if you get a used one, you have options to get it serviced and the parts are also available through ifixit
  • K3Nv2 @ K3Nv2:
    I remember a guy trying to call me a SteamDeck fanboy I'm like well give me a grand I'll buy a winmax
    +1
  • K3Nv2 @ K3Nv2:
    Or a win4 things still sexy
  • ZeroT21 @ ZeroT21:
    having money does not mean everyone will just fork it over
  • ZeroT21 @ ZeroT21:
    everyone perceives value diffrently
  • K3Nv2 @ K3Nv2:
    I buy cheap and whats useable
  • K3Nv2 @ K3Nv2:
    Twice out of the year I may get something that's $600
  • ZeroT21 @ ZeroT21:
    we all like nice things, sure, but I also want to keep money on the side
  • K3Nv2 @ K3Nv2:
    I'd have the same mentality if money wasn't an object
  • ZeroT21 @ ZeroT21:
    having a warped sense can happen
  • ZeroT21 @ ZeroT21:
    reason i question myself, but not constantly
  • K3Nv2 @ K3Nv2:
    If I had Elon money sure I'd have a 20 bedroom home
  • ZeroT21 @ ZeroT21:
    if only that alone could make me happy, but nope
    :D
  • ZeroT21 @ ZeroT21:
    you'll only feel more empty after most of your urges go away like that
  • K3Nv2 @ K3Nv2:
    Spam account tried getting $10 off me I'm like you didn't have it last week you'll be fine
    +1
  • ZeroT21 @ ZeroT21:
    i get spam links all the time, even through steam
  • ZeroT21 @ ZeroT21:
    get same links from scammers posing as my steam friends
    ZeroT21 @ ZeroT21: get same links from scammers posing as my steam friends