diff --git a/libctru/source/romfs_dev.c b/libctru/source/romfs_dev.c index a6841a9..9410f0a 100644 --- a/libctru/source/romfs_dev.c +++ b/libctru/source/romfs_dev.c @@ -114,14 +114,19 @@ typedef struct static Result romfsInitCommon(void); +__attribute__((weak)) const char* __romfs_path = NULL; + Result romfsInit(void) { if (romFS_active) return 0; if (envIsHomebrew()) { // RomFS appended to a 3DSX file - if (__system_argc == 0 || !__system_argv[0]) return 1; - const char* filename = __system_argv[0]; + const char* filename = __romfs_path; + if (__system_argc > 0 && __system_argv[0]) + filename = __system_argv[0]; + if (!filename) return 1; + if (strncmp(filename, "sdmc:/", 6) == 0) filename += 5; else if (strncmp(filename, "3dslink:/", 9) == 0)