Corrupted Cartridge Fixer Release

  • Thread starter Thread starter skawo
  • Start date Start date
  • Views Views 212,974
  • Replies Replies 817
  • Likes Likes 95
So has their been a consesus yet on running this utility vs just putting the game in the 3DS and letting it sit hibernated for a day or two?
 
Not sure if this is a useful datapoint:
Without having read the recent updates about sleep mode, I inserted my Persona Q cart on Friday and left my 3DS on the home screen in sleep mode up till about late Sunday. When finally I went to play it, it crashed and subsequently failed verification afterward. I did take it out of sleep mode without launching anything once or twice though. It's been a couple of tries through the corruption fixer and I'm still getting unfixable chunks, so I might leave it in sleep mode again and see if anything changes tomorrow.

Also, the results screen text appears to be flipped? On the first run through, the result right before it completed was shown as
Unfixable chunks: 177
Fixed chunks: 571

But the results screen gave
Unfixable chunks: 571
Fixed chunks: 177
 
As a follow up, I was getting about ~50 unfixable chunks in the same areas in the last few runs of fixing I did, so I was gonna give up for the night. However, I did notice for some of the stuck hashes the expected and current hash were the same, and so I decided to try verifying again just in case something did change. The cart successfully verified with both regular GM9 and the fork several times after that.

This was on 1.91, so not sure if the expected/current hash mismatch bug is still around or if it's something else.
 
Useless update with a follow up question.
I verified all my collection succesfully, including games on the notorious list unused for many years.

Does this problem affects differently games from different regions? I'm from Europe.
 
I recently bought a second hand copy of Pokemon Omega Ruby that turned out to have this cartridge corruption issue.
I downloaded your tool to see if I can resolve it but it was never able to get past the first chunk. I thought the game was completely gone tbh. When using your tool, the icon for the 3ds files were very corrupt, and when dumped the game icon was just a black square with no text. Opening it would just crash the 3DS.
However, I decided to leave the game on the home screen and on standby. Now the icon for the 3ds files are looking normal, and the game appears on the home screen like normal. Currently it cannot be launched, but I would imagine another week or two on standby may actually fix it.

One thing I also noticed after leaving it on standby is that your tool now hangs after the first refresh. Not exactly sure why, and it never did that before, but now it just hangs. I will have to keep and eye on it to see what is going on with that
 
  • Like
Reactions: skawo and 3DSCast
Would you mind checking if this version also "hangs"?
That seems to have done the trick.
The hash also seems to change quicker on this version than the previous version, where it seemed to take a couple minutes for the current hash to change.

I have kept the cartridge on the home screen, in sleep mode, for about a day now and have not observed any change in behavior. I will see if this version of the tool is able to get this cartridge working again (or at least closer to working).
 
Yeah, so it's as glauberlima posited earlier. It doesn't hang, it just tries reading the exefs in very small chunks because it's stuck.
 
Hello,

I've noticed that sometimes it marks a chunk as unfixable when the displayed hash and the expected hash matches instead of marking the chuck as ok, is there a reason behind this behavior?

Thank you!
 
Not sure. Others have reported this too, but I genuinely have no idea how this could happen other than it being a display bug or instability of some sort
 
Registered to post my results. Had Pokemon Omega Ruby die around 2019. Saw the news about the fixer, installed 1.92.

Verification failed immediately.
Ran the fixer overnight, was stuck on EXEFS all night. I canceled the next morning with 0/0 fixed/unfixable.
Power cycled and let it sit at home on standby for 24 hours, no visible change.
Ran the fixer for another day, got to around 82,000,000 refreshes (I think. Hard to tell if it was 82m or 820m) and froze, still on EXEFS with 0/0 fix/unfix
Found this forum, downloaded the nobufferreduc, ran it from this point on. Hangs at 277 refreshes. 2 hours later, still at same 277. Can't Y skip or B to cancel.
Power cycle and retry, hang at 193 refreshes. Let it sit. Stuck at 193. Can't skip or B to cancel
Power cycle and retry, hang at 73 refreshes. Very curious now.
Power cycle, remove and reseat cartridge, and retry, hang at 19 refreshes.
Now I'm letting it sit on home again, though I doubt it'll help.
I saw posts that it doesn't really "hang" but I have no idea how long I should keep watching the refresh count do nothing before giving up.

I can't pretend to know what any of this means. I gave up on reviving this cartridge a while ago, but if my buggy cartridge can help anyone test tools, let me know.
 
Registered to post my results. Had Pokemon Omega Ruby die around 2019. Saw the news about the fixer, installed 1.92.

Verification failed immediately.
Ran the fixer overnight, was stuck on EXEFS all night. I canceled the next morning with 0/0 fixed/unfixable.
Power cycled and let it sit at home on standby for 24 hours, no visible change.
Ran the fixer for another day, got to around 82,000,000 refreshes (I think. Hard to tell if it was 82m or 820m) and froze, still on EXEFS with 0/0 fix/unfix
Found this forum, downloaded the nobufferreduc, ran it from this point on. Hangs at 277 refreshes. 2 hours later, still at same 277. Can't Y skip or B to cancel.
Power cycle and retry, hang at 193 refreshes. Let it sit. Stuck at 193. Can't skip or B to cancel
Power cycle and retry, hang at 73 refreshes. Very curious now.
Power cycle, remove and reseat cartridge, and retry, hang at 19 refreshes.
Now I'm letting it sit on home again, though I doubt it'll help.
I saw posts that it doesn't really "hang" but I have no idea how long I should keep watching the refresh count do nothing before giving up.

I can't pretend to know what any of this means. I gave up on reviving this cartridge a while ago, but if my buggy cartridge can help anyone test tools, let me know.
Thanks a lot for testing this and for the detailed notes — this is genuinely useful.

The important detail is that the refresh counter stopped completely and B/Y did nothing. That's not the "it's just retrying" behavior — it means the tool is stuck waiting on the cartridge itself and can't even poll the buttons.

The 82M-refresh run was one failure mode; the frozen-at-277 (and 193/73/19) hangs are a different one, and the decreasing numbers across reseats suggest the cartridge is progressively failing to respond.

To answer your question directly: if the refresh count doesn't change for ~60 seconds, it is hung and waiting longer won't help. You can stop it.

We're working on a timeout for the cartridge read path so it can't sit there forever, and so it reports a bad cartridge instead of freezing.

Before that, a few things would really help us:
1. Can GodMode9 read this cartridge at all through other paths? E.g. browse the gamecart drive, or try dumping any file from it. Does it also hang, or does a dump complete?
2. Do you have a known-good cartridge (or another game) to test with? Does the fixer / verify complete normally on it? We want to be sure a timeout won't hurt normal reads.
3. When it's stuck, is the refresh counter completely frozen (unchanged for 60s+)? Does the screen still redraw anything, or is everything frozen? And does the POWER button still shut it down normally?
4. How fast does it hang now — seconds after starting? Is it always on the first file in the EXEFS step?

Thank you very much for your feedback!
 
Thanks a lot for testing this and for the detailed notes — this is genuinely useful.

The important detail is that the refresh counter stopped completely and B/Y did nothing. That's not the "it's just retrying" behavior — it means the tool is stuck waiting on the cartridge itself and can't even poll the buttons.

The 82M-refresh run was one failure mode; the frozen-at-277 (and 193/73/19) hangs are a different one, and the decreasing numbers across reseats suggest the cartridge is progressively failing to respond.

To answer your question directly: if the refresh count doesn't change for ~60 seconds, it is hung and waiting longer won't help. You can stop it.

We're working on a timeout for the cartridge read path so it can't sit there forever, and so it reports a bad cartridge instead of freezing.

Before that, a few things would really help us:
1. Can GodMode9 read this cartridge at all through other paths? E.g. browse the gamecart drive, or try dumping any file from it. Does it also hang, or does a dump complete?
2. Do you have a known-good cartridge (or another game) to test with? Does the fixer / verify complete normally on it? We want to be sure a timeout won't hurt normal reads.
3. When it's stuck, is the refresh counter completely frozen (unchanged for 60s+)? Does the screen still redraw anything, or is everything frozen? And does the POWER button still shut it down normally?
4. How fast does it hang now — seconds after starting? Is it always on the first file in the EXEFS step?

Thank you very much for your feedback!

I'm moving back to v1.92 for these tests:

1. Can GodMode9 read this cartridge at all through other paths? E.g. browse the gamecart drive, or try dumping any file from it. Does it also hang, or does a dump complete?
GodMode9 is able to detect the cartridge and the cartridge shows files. I was able to save 000400000011C400_v02.dec.sav and 000400000011C400_v02.sav to /gm/out without any issues. I was able to open the files in a hex editor to see they contain data, though I don't know any method to validate them.

2. Do you have a known-good cartridge (or another game) to test with? Does the fixer / verify complete normally on it? We want to be sure a timeout won't hurt normal reads.
Performed a verification on Pokemon X. Pokemon X was able to read through the entirety of the cartridge and verify after 43 refreshes. Verification was a success without running the fixer.

3. When it's stuck, is the refresh counter completely frozen (unchanged for 60s+)? Does the screen still redraw anything, or is everything frozen? And does the POWER button still shut it down normally?
When it is stuck, the refresh counter is completely frozen. The screen does not redraw anything. The clock at the top-right is locked at whatever time the freeze occured. Power button only powers the system off by holding the button.

4. How fast does it hang now — seconds after starting? Is it always on the first file in the EXEFS step?
Hangs within 3 seconds. Always the first file in EXEFS.



Can you try version 1.8?

Downloaded and launched 1.8, but it stopped at 227 refreshes. Same as 1.92 and nobufferreduc, as the screen stops refreshing, clock stops, no ability to Y or B, and power button only powers off the system with a long-press.
 
I created an LUA script to verify and refresh my games. This runs 8 verifications, waiting an hour between each while running a cartridge refresh command every 5 minutes. This should help maintain the charges in the flash memory.
Does GodMode9 or your script have some sort of auto power off. The times I left it running and checked it considerably later than it should have finished verifying and found the console off with 100% battery (as I left it plugged) with no way to know whether the game was verified before shutting down.
 

Site & Scene News