masterfeizz / DaedalusX64-3DS

Port of DaedalusX64 to the Nintendo 3DS
GNU General Public License v2.0
356 stars 31 forks source link

[FEATURE REQUEST] Use relative instead of absolute directories in 3dsx build. #45

Open vaguerant opened 4 years ago

vaguerant commented 4 years ago

Currently, the app uses sdmc:/3ds/DaedalusX64 anywhere it's accessing files, but 3dsx homebrew apps are perfectly happy running with relative directories, so that doesn't need to be the case at all. This shouldn't require any fancy work, from what I've seen in other apps, you can simply replace those with relative directory calls, e.g. if the 3dsx is in sdmc:/3ds/DaedalusX64 and you want sdmc:/3ds/DaedalusX64/roms/, you can just call roms/.

One of the main features of the Homebrew Launcher is that it supports navigating around directories. Personally, I use this to separate my homebrews into different folders for Games, Emulators, System tools, etc. However, since DaedalusX64 insists on reading from sdmc:/3ds/DaedalusX64, I can't really put it with my other emulators easily.

MrHuu commented 4 years ago

What about the .cia builds?

vaguerant commented 4 years ago

You probably still need hardcoded directories there. In order to avoid cluttering the root and/or 3ds directories, there was a semi-standard which never really took off for putting homebrew apps' data into sdmc:/3ds/data/. A few homebrews that use that are smash selector, snes9x-3ds and TRekt. e.g. TRekt keeps its save file in there, as sdmc:/3ds/data/TRekt/data.sav.

Actually, there's nothing to stop you doing that for the .3dsx builds as well instead of relative directories, if you want to avoid having behavior diverge across .cia and .3dsx versions. That would allow the same flexibility of where the user wants to keep the executable itself, without requiring a DaedalusX64 directory directly under 3ds if the user doesn't want to keep the app itself there.