Corrupted Cartridge Fixer Release

  • Thread starter Thread starter skawo
  • Start date Start date
  • Views Views 184,580
  • Replies Replies 718
  • Likes Likes 87
Why don't you just follow the instructions in the first post in this thread..?

Don't you think there would be big warnings everywhere if there was some possibility of "bricking your device"?
for the first part i just didn't see the text in parenthesis, and for the second one, i'm kinda dumb when it comes to this kind of thing sorry, afterward i found a guide called "cartridge unfuck guide which explained in step by step but clearer for me (with the same exact github link) so i used the first one and i'm like on my forth fixing already and it seems only getting better so i just wantes to say thanks to @skawo you're the goat. Have a nice day !
 
Update on my cartridge fix, after all these days on block 1 refreshing every 51s.........I'm still on the first block, but now it started refreshing every 5s instead, stonks xD.
 
Can this be used to fix standard DS games as well? Noticed both my Pokemon Diamond and Platinum carts both give me the "save data could not be accessed/found" error so I was considering using this program if cleaning the bottom of the carts doesn't fix them.
DS carts do not have a writable ROM chip. Your issue sounds save related, you can hold Up+Select+B on the title screen to reset the save file.

Edit: Look at this slop Google gave me

Screenshot_20260511-134208_Chrome_1.jpg
 
Hi there,

I've found this tool and used it for my Smash Bros 3DS cartridge. Before the use of this tool, the cartridge wouldn't even load (black screen), and now it boots. However, there are still some issues left :
  • GodMode9 still can't verify the cartridge, it instantly fails
  • There are still around a hundred of unfixable chunks.
I have done normal fix, 100x fix, select + normal and select + 100x in this order, and for each fix, I've done it 3 times, but after that, theres no progress at all.

Is there a way to force these chunks to be fixed ? The game loads fine, but my goal here is to be able to verify the cartridge through GM9 :/
Alternatively, if the cartridge is a lost cause, is there a way to upload an old backup of the game in the cart itself ?
 
The only way to fix the chunks is to try using the tool over and over. If the unfixable chunk count is not decreasing in the logs, then the cartridge is probably toast.

There's no way to reprogram a cartridge, unfortunately.
 
The only way to fix the chunks is to try using the tool over and over. If the unfixable chunk count is not decreasing in the logs, then the cartridge is probably toast.

There's no way to reprogram a cartridge, unfortunately.

Damn, too bad :(

What's the best way to try to fix these chunks ? From what i've seen, its 100x + SELECT mode, but i want to be sure just in case.
Also, is there a way to target only those bad blocks ?
 
Last edited by DarSitam,
I would just do regular runs (no SELECT), to be honest. That way, only the bad blocks are the only ones targetted (the others are only read once - if you use the SELECT mode then it attempts to refresh them all, and it takes much longer).

Incidentally, I have just released an update (1.5a) that should make the process a bit faster. The unfixable chunk count is now printed to the screeen, so you no longer have to check the logs every time.
 

3DS Cartridge Fixer Tool


Lately, there have been news about NAND Flash media deteriorating just because of sitting unused in storage for too long. 3DS Cartridges use a fancy NAND Flash chip, so, naturally, there is some cause for concern that they, too, will start failing.

When cleaning my collection, I decided to check all my 3DS games for this very reason - and to my surprise, my Paper Jam Bros. cartridge has completely failed. On an unhacked 3DS, it would load infinitely, and on 3DSes with Luma CFW it would immediately throw an ARM 11 Exception when launched.

After dumping the game, I discovered that the ExeFS and about half of the game files were corrupted. I nearly wrote the cartridge off, until I noticed that the "infinite load" thing stopped happening. Indeed, the game was now crashing when trying to display the titlescreen. Checking with GodMode9, the ExeFS has seemingly fixed itself! Some more faffing later, I even managed to get the titlescreen to work again intermittently.



Reading around, I found this post, and with it mentions of the 3DS carts' refresh functionality. And so, I modified GodMode9 to run this refresh more frequently and after some manual checking and comparing hashes, I now have a fully working Paper Jam. Bros. cartridge again. Hooray?

I decided to make the process more automatic and release a tool able to potentially fix cartridges corrupted in this same manner.

This applies to 3DS carts only - not DS ones. Those are likely safe for the time being.



Download
(Click on "GM9CorruptionFixer_1.5a.firm" to download)


Usage:

  1. Install Luma CFW if it is not already installed.
  2. Download the compiled .firm file from the Releases section and copy it to:
    SD:/luma/payloads/
  3. Insert the SD card into the 3DS, then power it on while holding START.
  4. If a payload menu appears, select the GodMode Refresh firm. If not, simply continue.
  5. Select GAMECART.
    A list of files should appear. If no files are shown, remove and reinsert the game cartridge, then re-select GAMECART to try again.
  6. Select the file ending in .3ds.
    Do not select a file ending in .trim.3ds.
  7. Select NCSD image options...
  8. Select Verify.
    This checks whether the cartridge has this specific type of corruption or whether a different issue is causing the problem.
  9. If verification fails:
    • Return to NCSD image options
    • Select Fix cartridge corruption
    • If Fix cartridge corruption is missing, you likely launched the standard version of GodMode9 instead of the refresh version. Confirm that the refresh .firm file is in: SD:/luma/payloads/, and then relaunch it.
  10. After the repair process finishes:
  • Return to NCSD image options
  • Select Verify again
If the verification succeeds, the repair is complete. If verification still fails, run Fix cartridge corruption again (some cartridges require several repair passes before they become stable).

Tracking repair progress
To track whether the cartridge is improving, observe the "unfixable chunks" number. This number is increased whenever a chunk cannot be fixed, or is manually skipped.

Compare the number after each repair pass:
  • If the number of bad blocks decreases with each run, the cartridge is improving. Continue running the repair process.
  • If the number of bad blocks does not decrease after 2–3 attempts, those blocks are likely permanently damaged and probably will not improve with additional runs.

This will take a while. As in, it can take more than a day for heavily corrupted carts.

If you're just looking for a way to confirm your cartridges are working fine, the verify function (including the one in GodMode9) checks all the files - a more thorough check than just trying the cartridge out regularly. A cartridge might start but still have some random files corrupted.


Though not proven, I am not sure that simply inserting the cartridge into the console ocassionally is enough to preserve its longevity: to be safe, I think the console should actually go through all the data blocks at least once. Running the GodMode9 verify function periodically (every couple years or so) should extend the cartridge's longevity.

From testing, it seems some games are more affected than the others. The games that come up most often, and thus are likely most prone to this fault, are:

  • Persona Q
  • Pokemon X and Y
  • Pokemon Omega Ruby and Alpha Sapphire
  • Super Smash Bros. for Nintendo 3DS
  • Mario Kart 7
  • Fire Emblem Echoes
  • Fire Emblem Fates

(Note though, that this is not an extensive list - especially since these are all fairly big titles, and it's unlikely only first/second party stuff is affected)

Not updating this anymore, but after about a year
these were the stats:

72 fixed fully - - - - - - - - 35 improved - - - - - - - - 34 unrecoverable

If you do try this out, please share the results!

Note: this will not do anything for cartridges that have physical defects, such as cracked solder joints. But if your cartridge appears to load infinitely, or frequently crashes from non-gameplay-related reasons, this tool has a chance to fix it.

i love you tysm i can play pokemon alpha sapphire again
 
  • Like
Reactions: skawo
Some days later, and cartridge fixer 1.5 tells me that there's 0 unfixable chunks left on my smash cartridge. However, "verify files" still doesnt work. So either the fixer lies or there's another issue with the cartridge. Any ideas of what can I try next ?
 
It's possible that a chunk has destabilized again when other chunks got fixed. Try running it a couple more times?
Unless this is consistent... if so, try actually logging the results.
Admittedly, all new features are untested, because, well, I don't have any broken carts to test them with :v
 
I'm just getting into reviving my old 3DS and cartridges after probably 8+ years of collecting dust. If only I had known that was the kiss of death for these games. I actually just registered to say thank you for this @skawo . This is a great tool as I'm finding several of my games were completely toast.

Omega Ruby with 150-ish errors, got it down to 0 and it plays now. It still wont verify, but it plays so I'll call it a win.
Alpha Sapphire too far gone, title text showed corrupted with ???'s in the name and wouldnt get past 0% for hours.

I'll absolutely take 1/2.
 
I'm just getting into reviving my old 3DS and cartridges after probably 8+ years of collecting dust. If only I had known that was the kiss of death for these games. I actually just registered to say thank you for this @skawo . This is a great tool as I'm finding several of my games were completely toast.

Omega Ruby with 150-ish errors, got it down to 0 and it plays now. It still wont verify, but it plays so I'll call it a win.
Alpha Sapphire too far gone, title text showed corrupted with ???'s in the name and wouldnt get past 0% for hours.

I'll absolutely take 1/2.
Hmmm... Concerning that two people now reported 0 errors and the game still not verifying.
Could you run the fixer on Omega Ruby again and see if that happens again?
 
Interesting, that did fix it. It verifies fine now! Awesome thanks for the suggestion!

So my log on this Omega Ruby:

1) Wouldn't boot.
2) Ran verify, failed.
3) Ran fixer, 150-ish unfixable errors
4) Game booted (I was curious).
5) Ran fixer, 0 errors.
6) Ran verify, failed.
7) Ran fixer, 0 errors.
8) Ran verify, succeeded.
 
  • Like
Reactions: skawo
Hello!
Thank you! Fixer saved my Omega Ruby cartrige. Game crashed from time to time - after fixer run it verified without errors and runs as new!
Sadly, my Echoes of Valentia copy stuck in fixing on some chunks for days. It is sad, because some times it runs well and load/save works perfect.
I have got an idea: maybe there is a way to add log function to write to file ROMFS-path to unfixed files (which was skipped) so user could make ROMFS "patch" by copying files from valid CIA of game?
 
  • Like
Reactions: skawo
You can do this by dumping the filesystem to the SD card, dumping the filesystem from a ROM file and then comparing them both using something like WinMerge
 
Last edited by skawo,
  • Like
Reactions: ThanksAgain
You can do this by dumping the filesystem to the SD card, dumping the filesystem from a ROM file and then comparing them both using something like WinMerge
Thank you! I didn't know corrupted cartriges could be dumped too
 
Hi everyone, first of all, I’d like to thank Skawo for this tool.

I’m here to share my experience with the Corrupted Cartridge Fixer.

So, I recently bought a copy of Pokémon X. The game was recognized perfectly by my consoles, but whenever I booted it up, it would crash at the Nintendo 3DS logo, showing error 39, and sometimes 38, 40, or 41. I looked for information online and found this forum.

I followed the instructions and ran the program. The first time, it took 7 hours, and I had to press the Y button about 9 or 10 times to skip some blocks. It reached 100% with a total of 5 million refreshes and 4,800 unfixable chunks... Once finished, it ran through the process about 4 more times much faster (taking around 30 minutes) and ended up with 0 unfixable chunks.

After the process was done, I went to verify it, but it threw an error.

Then I tried running the game... and it crashed anyway. However, I updated Pokémon X to version 1.5, and surprise! It actually booted up! I was able to see the Pokémon X intro cinematic with Xerneas on the title screen. I pressed Start and saw there was a save file with about 40 hours of playtime. At this point, I was super excited, but when I tried to load that save file, it crashed... Well, at least I managed to get the game past the 3DS logo.

I started thinking that maybe the save data was corrupted or something, so I used Checkpoint to back up that 40-hour save. I booted the game again to delete it, and everything seemed fine until I hit confirm to delete the save—then it crashed.

Refusing to give up, I opened FBI and deleted the save data from there. I ran the game again, and this time a new screen popped up saying "The save data is corrupted." It wasn't a system crash like before; it was an in game Pokémon error message.

I decided to run the Corrupted Cartridge Fixer a second time. This time it took 2 hours and did 2 passes to reach 100%. When it finished, it showed 4,000 unfixable chunks (800 less than the first time). I still had to press the Y button to skip a few chunks, though I noticed that many of them got fixed just by waiting a bit.

I tried running the game again, but it was still stuck on that corrupted save error screen. I used the button combination to delete the save, and this time it actually let me do it (even though there was nothing there since I had deleted the data via FBI). I booted the game up once more, and surprise, it worked! It let me choose the language, I picked one, and the Pokémon X intro started. Sadly, it crashed right after pressing Start...

So, I ran the program for a third time. This time it took an hour and finished with 3,400 unfixable chunks. After reaching 100%, it did a 5-minute pass and finished with 0 unfixable chunks, as usual. I tried running the game again, but it crashed once more when pressing Start to begin the game.

Then I had an idea: I installed the Pokémon X .cia file, started a new game, saved at the very beginning, and backed up that save using Checkpoint to inject it into the original cartridge. I did that, and the save file showed up, but when I tried to load it, it crashed.

Frustrated at this point, I injected the original 40-hour save file into the .cia version to see if the save itself was corrupted, but it worked perfectly. So, I tried saving the game in a different city, backed it up, and injected that new save into the original Pokémon X cartridge via Checkpoint. And surprise! This time it actually loaded the game. I could move around, check my Pokémon, and look at the Pokédex. However, as soon as I used Fly to change areas, it crashed.

So, at this point, I have to ask: is it even worth it to keep trying to fix it?

Thanks again to Skawo and the whole community for sharing their experiences, and sorry for the long post
 
The "second pass" is just it going through all the different .romfs in the ROM, which Pokemon X has multiple. If the unfixable block count is going down then you can keep going, though if it's possible for it to get fixed, it's going take a while, unfortunately.
 

Site & Scene News

Popular threads in this forum