diff --git a/.github/cidinfo.png b/.github/cidinfo.png new file mode 100644 index 0000000..2ccc359 Binary files /dev/null and b/.github/cidinfo.png differ diff --git a/.github/filesystem.png b/.github/filesystem.png new file mode 100644 index 0000000..1eff239 Binary files /dev/null and b/.github/filesystem.png differ diff --git a/README.md b/README.md index 3d509f3..f4b2fe8 100644 --- a/README.md +++ b/README.md @@ -10,5 +10,10 @@ This is the best DSi NAND repair tool out there, offering features such as: Why do these matter? You can create a new working NAND from scratch! No backups needed (but still recommended)! +![FileSystem menu](.github/filesystem.png)![NAND CID info](.github/cidinfo.png) + ## Notes -- I am including my own hostile and outdated fork of libfat. This is to block `nand_Startup()` during `fatMount()`. Without this having a NAND re-mount would run `nand_Startup()` more than once and break every NAND R/W function until reboot... \ No newline at end of file +- I am including my own hostile and outdated fork of libfat. This is to block `nand_Startup()` during `fatMount()`. Without this having a NAND re-mount would run `nand_Startup()` more than once and break every NAND R/W function until reboot... +- I do not use the release NandFirm/stage2/bootloader (v2435-8325). Instead I use newer NandFirms as listed below. These NandFirms are able to run unlaunch, however they will stop the installer from working ("unknown bootcode version"). Unlaunch installs carry a brick risk by sometimes erasing the Launcher TMD, so this will somewhat forcefully encourage users to move to a [safer installer](https://github.com/edo9300/unlaunch-installer). Normally I'm against intentionally breaking things but this will prevent future bricks. + - v2265-9336 (prod) + - v2725-9336 (dev) \ No newline at end of file diff --git a/arm9/src/main.c b/arm9/src/main.c index 89c7b8d..44932b7 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -278,16 +278,21 @@ int debug3(void) { iprintf("\n>> NAND AGING tester "); iprintf("\n--------------------------------"); - nandPrintInfo(); - if (!nandFirmImport(true)) { + if (success == true && !nandPrintInfo()) { success = false; } - nandFirmRead(); - if (!repairMbr(true)) { + if (success == true && !nandFirmImport(true)) { success = false; } - readMbr(); - + if (success == true && !nandFirmRead()) { + success = false; + } + if (success == true && !repairMbr(true)) { + success = false; + } + if (success == true && !readMbr()) { + success = false; + } if (success == true && !mountMain()) { if (!formatMain() && !formatPhoto() && !mountMain()) { iprintf("\nNAND mount failed!"); @@ -300,19 +305,27 @@ int debug3(void) { } else { nandMounted = true; } - filetestMain(); - unmountMain(); - filetestNitro(); + if (success == true && !filetestMain()) { + success = false; + } + if (success == true && !unmountMain()) { + success = false; + } + if (success == true && !filetestNitro()) { + success = false; + } agingMode = false; - + clearScreen(cSUB); iprintf("\n>> NAND AGING tester result "); iprintf("\n--------------------------------"); if (success == true) { iprintf("\nAll tests passed okay."); + setBackdropColorSub(0x1FE0); } else { iprintf("\nTests failed!"); + setBackdropColorSub(0x00FF); } exitFunction(); diff --git a/arm9/src/menu.c b/arm9/src/menu.c index 7b21b28..8d00773 100644 --- a/arm9/src/menu.c +++ b/arm9/src/menu.c @@ -367,5 +367,6 @@ void exitFunction() { wait(50); } clearScreen(cSUB); + setBackdropColorSub(0xFFFF); // Restore screen memory here } \ No newline at end of file diff --git a/arm9/src/message.c b/arm9/src/message.c index 2c7454f..7b8d6f8 100644 --- a/arm9/src/message.c +++ b/arm9/src/message.c @@ -140,7 +140,6 @@ bool randomConfirmBox(char* message) void messageBox(char* message) { - clearScreen(cSUB); messagePrint(message); } diff --git a/arm9/src/nand/filesystem.c b/arm9/src/nand/filesystem.c index 2d0e64e..4fd7341 100644 --- a/arm9/src/nand/filesystem.c +++ b/arm9/src/nand/filesystem.c @@ -408,17 +408,17 @@ bool mountNitroFS(void) { iprintf("\n--------------------------------"); if (sdMounted == false && !fatInitDefault()) { - iprintf("\nSD card not mounted!"); + iprintf("\nSD card not mounted!\n"); success = false; } else { - iprintf("\nSD card mounted okay."); + iprintf("\nSD card mounted okay.\n"); sdMounted = true; } if(!nitroFSInit("TwlNandTool.prod.srl") || !nitroFSGood()) { if(!nitroFSInit("TwlNandTool.dev.srl") || !nitroFSGood()) { if(!nitroFSInit("ntrboot.nds") || !nitroFSGood()) { - iprintf("\x1B[31mFailed to mount NitroFS!\n\x1B[30m\nSome features will not work.\n\nTry placing the SRL for your DSiat one of these locations:\n\nSDMC:/TwlNandTool.prod.srl\nSDMC:/TwlNandTool.dev.srl\nSDMC:/ntrboot.nds\n"); + messageBox("\n\x1B[31mFailed to mount NitroFS!\n\x1B[30m\nSome features will not work.\n\nTry placing the SRL for your DSiat one of these locations:\n\nSDMC:/TwlNandTool.prod.srl\nSDMC:/TwlNandTool.dev.srl\nSDMC:/ntrboot.nds\n"); success = false; } }