diff --git a/source/fs/fsinit.c b/source/fs/fsinit.c index eda4f0e..7d43b5d 100644 --- a/source/fs/fsinit.c +++ b/source/fs/fsinit.c @@ -35,7 +35,7 @@ bool InitExtFS() { bool InitImgFS(const char* path) { // deinit image filesystem - for (u32 i = (GetMountState() & IMG_NAND) ? NORM_FS - 1 : NORM_FS - IMGN_FS; i >= NORM_FS - IMGN_FS; i--) { + for (u32 i = NORM_FS - IMGN_FS; i < NORM_FS; i++) { char fsname[8]; snprintf(fsname, 7, "%lu:", i); if (!fs_mounted[i]) continue; @@ -45,7 +45,10 @@ bool InitImgFS(const char* path) { // (re)mount image, done if path == NULL MountImage(path); InitVirtualImageDrive(); - if (!GetMountState()) return false; + if (!GetMountState()) { + fs_mounted[9] = (f_mount(fs + 9, "9:", 1) == FR_OK); // ram drive + return false; + } // reinit image filesystem for (u32 i = NORM_FS - IMGN_FS; i < NORM_FS; i++) { char fsname[8]; diff --git a/source/godmode.c b/source/godmode.c index 4c7792b..1c856c0 100644 --- a/source/godmode.c +++ b/source/godmode.c @@ -605,7 +605,7 @@ u32 FileHandlerMenu(char* current_path, u32* cursor, u32* scroll, DirStruct* cur bool in_output_path = (strncmp(current_path, OUTPUT_PATH, 256) == 0); // special stuff, only available for known filetypes (see int special below) - bool mountable = (FTYPE_MOUNTABLE(filetype) && !(drvtype & DRV_IMAGE)); + bool mountable = (FTYPE_MOUNTABLE(filetype) && !(drvtype & (DRV_IMAGE|DRV_RAMDRIVE))); bool verificable = (FYTPE_VERIFICABLE(filetype)); bool decryptable = (FYTPE_DECRYPTABLE(filetype)); bool encryptable = (FYTPE_ENCRYPTABLE(filetype));