Corrupted Cartridge Fixer Release

skawo

Well-Known Member
OP
Member
Joined
Aug 18, 2015
Messages
538
Trophies
0
Age
34
XP
2,705
Country

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.



Download:
https://github.com/skawo/GodMode9-with-Cartridge-Fixer
(In the "releases" section)​


Usage:
  • Run the program (Install the Luma CFW, put the compiled .firm file from the Releases section in luma/payloads/, turn on the 3DS holding START) and insert a cartridge.
  • Choose "GAMECART". A list of files will pop up. If it doesn't, try reinserting the cartridge.
  • Choose the file with the .3ds extension (but NOT .trim.3ds, just .3ds).
  • Choose "NCSD image options..."
  • Choose "Fix cartridge corruption".
  • After the fixer finishes, go into "NCSD image options" again and choose "Verify".
  • If the verify option says that verification succeded, great! You're done.

If the verification fails, try running the fixer process again. It may take several run-throughs before the whole cart is stabilized. To verify that the cart is getting better with each-run through, hold Y while selecting the "Fix cartridge corruption" option. This will make the console output a log of bad blocks to the SD card (to the gm9/out folder). If that list keeps getting shorter with each run-through, great! Keep going. if the number of entries doesn't decrease after a 2-3 attempts, then those blocks are probably not going to get better with repeated runs.


If you're looking for a way to confirm your cartridges are working fine, GodMode9 (and as an extension, this tool as well) has a verify function which 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.
Stats so far:
37 fixed fully - - - - - - - - 17 fixed partially - - - - - - - - 19 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.
 
Last edited by skawo,

TriangularFish

Member
Newcomer
Joined
Jul 2, 2018
Messages
9
Trophies
0
Age
19
XP
95
Country
United States
Woah, crazy that this is a thing that’s even possible. Happy to see you ended up getting something like this working, especially after the recent wii u bricking news. Will definitely check my carts and run this by some of my friends to see if any of us could benefit from this :)
 

Clector

Well-Known Member
Member
Joined
Mar 15, 2016
Messages
1,078
Trophies
0
Location
Not here
XP
460
Country
Bangladesh
From my tested games, only Smash Bros. had these problems, the game card alone would boot to black and with the updates installed it would boot but crash on the tutorial video and load infinitely on various of the game modes.

Using the tool fixed it and seems to be working fine again as is or with the updates installed, had quite a few of mismatched blocks, but also a lot of good ones.

The game card is the first version from the launch of the game (1.0 without updates on the game card) with the 8.1.0 update.
 

skawo

Well-Known Member
OP
Member
Joined
Aug 18, 2015
Messages
538
Trophies
0
Age
34
XP
2,705
Country
I have released version 1.1 with more features:
  • Will detect if block hash gets stuck on a wrong value, and skip that block automatically if it's still stuck for 20 refresh attempts.
  • Allows user to skip past a block after 500 refresh attempts by pressing Y.
 
  • Like
Reactions: TriangularFish

Eigendysfunction

New Member
Newbie
Joined
Mar 20, 2023
Messages
1
Trophies
0
Age
26
XP
16
Country
Canada
Hey I literally made this account to post here and say thanks. I had a corrupted Fire Emblem Fates: Birthright cartridge and literally homebrewed an old 3DS just to try this, and it fixed it. Thank you!
 

Erebos

Member
Newcomer
Joined
Oct 10, 2013
Messages
13
Trophies
0
Age
36
XP
209
Country
Italy
A friend of mine tried your tool on his corrupted cartridge of Pokémon Omega Ruby, but it didn't work. He used both the releases of the tool. The first one got stuck almost immediately, even with Select mode. The latest one gave him a lot of mismatches and after many skips he decided to give up.

Just for reference, it's an Italian cartridge of Pokémon Omega Ruby bought on release day, the code on the back is ECRPX42413
 
  • Like
Reactions: skawo

epicmartin7

Well-Known Member
Member
Joined
Aug 5, 2015
Messages
428
Trophies
0
Age
24
XP
1,019
Country
United States
3DS Cartridge Fixer Tool

Lately, there have been news about NAND Flash media deteriorating just for 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.

Here it is: https://github.com/skawo/GodMode9-with-Cartridge-Fixer

Now, it bears repeating, even though it's bolded in the readme, there; only run this if your cartridge is already bad.

So far, 6 cartridges have been improved with this; 5 fixed completely and one where a single music file was completely unrecoverable. If you DO manage to fix your game, great! Please share, as I'd love to hear what the actual success rate here will be.

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.

Oh nice, this will be extremely useful.

As a weird sidenote, theoretically, could this allow for the overwriting of contents onto an existing 3DS Cartridge with custom contents? Or is there a limitation with the algorithm the refresher uses?
 

skawo

Well-Known Member
OP
Member
Joined
Aug 18, 2015
Messages
538
Trophies
0
Age
34
XP
2,705
Country
Last edited by skawo,

ack

Well-Known Member
Member
Joined
Jan 30, 2020
Messages
285
Trophies
0
XP
638
Country
United States
how permanent is this? The chunks are already having issues, so this would just fix them for a while, right?
 

skawo

Well-Known Member
OP
Member
Joined
Aug 18, 2015
Messages
538
Trophies
0
Age
34
XP
2,705
Country
I don't know how permanent this is, but in theory this isn't a persistent hardware problem per se - it's a problem with data retention, caused by the chip not getting power for while. Therefore it should last as long as the cartridge gets some use. The cartridge I fixed a few weeks ago still works perfectly.
 

ack

Well-Known Member
Member
Joined
Jan 30, 2020
Messages
285
Trophies
0
XP
638
Country
United States
ok so ive tried it and i had a partial fix, i guess? My alpha sapphire copy always crashes when you go into super training, and nowhere else, for some reason, but once i ran this, i was able to get 2 of the super training games in before it crashed, whereas i never completed one of them without it crashing before. It also wasn't able to fix 2 or 3 of the memory blocks, so that's probably where the problem's coming from.

Also, in pokemon games, are things that aren't changed between the game versions usually at the same memory address for both games? if so, then i could probably make a patch that replaces the broken chunks with data from my omega ruby cartridge lol.
 

TheStonedModder

Well-Known Member
Member
Joined
Dec 25, 2022
Messages
824
Trophies
0
Age
27
XP
1,628
Country
United States
ok so ive tried it and i had a partial fix, i guess? My alpha sapphire copy always crashes when you go into super training, and nowhere else, for some reason, but once i ran this, i was able to get 2 of the super training games in before it crashed, whereas i never completed one of them without it crashing before. It also wasn't able to fix 2 or 3 of the memory blocks, so that's probably where the problem's coming from.

Also, in pokemon games, are things that aren't changed between the game versions usually at the same memory address for both games? if so, then i could probably make a patch that replaces the broken chunks with data from my omega ruby cartridge lol.
I wonder if you could actually just dump a new copy of alpha sapphire and use the file redirection patches to just load/use "fresh" super training" files.

Just treat the vanilla files like modded ones
 

ack

Well-Known Member
Member
Joined
Jan 30, 2020
Messages
285
Trophies
0
XP
638
Country
United States
I wonder if you could actually just dump a new copy of alpha sapphire and use the file redirection patches to just load/use "fresh" super training" files.

Just treat the vanilla files like modded ones
then i would have to buy the game again :P
 

skawo

Well-Known Member
OP
Member
Joined
Aug 18, 2015
Messages
538
Trophies
0
Age
34
XP
2,705
Country
ok so ive tried it and i had a partial fix, i guess?
Try running version 1.2 instead of latest and see if that does better. Also, not sure if you have, but don't skip any blocks manually - it can take much more than the 500 retries to fix a block.

Just treat the vanilla files like modded ones
You absolutely can! But, I mean, at that point, might as well just install a full copy, I think.

I'm pretty sure you could make a patch out of the Ruby cart, though.
 
Last edited by skawo,

skawo

Well-Known Member
OP
Member
Joined
Aug 18, 2015
Messages
538
Trophies
0
Age
34
XP
2,705
Country
  • Like
Reactions: elk1007

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Lol rappers still promoting crypto