Corrupted Cartridge Fixer Release

  • Thread starter Thread starter skawo
  • Start date Start date
  • Views Views 181,492
  • Replies Replies 709
  • Likes Likes 86
Try to redownload the update data, then - maybe it just got corrupted on the SD card, or something.
Will mark this as partial fix, in any case.

Might also be a good idea to use GodMode9 to dump your cartridge to a .cia, extract the ROMFS and compare it with a working one to see exactly what's corrupted.
I dunno, I think it's a true fix though, because before running the tool, it threw up the same ARM11 error you mentioned on my N2DS with CFW.
 
How long is it supposed to take? My Refresh count is at roughly 4.1 Million and 11% into the ROMFS section so I'm worried I'm fighting a losing battle. Do I just trust the process, or should I just cut my losses and figure something else out?
 
It takes longer the more corrupt the cartridge is, but as long as it's progressing, it should be fine. That said, if you're seeing blocks getting "skipped" a lot, then, yeah, it's probably too far gone :c
 
Incidentally, actually, for checking carts, GodMode9 has a verify function which checks all the files, a more thorough check than just trying the cartridge out. A cartridge might start but still have some random files corrupted.
 
It takes longer the more corrupt the cartridge is, but as long as it's progressing, it should be fine. That said, if you're seeing blocks getting "skipped" a lot, then, yeah, it's probably too far gone :c
Alright, I'll keep that in mind and keep an eye on it. It'll probably keep going for the next few days at this rate lol
 
  • Like
Reactions: skawo
Hello! I just used this to fix my Pokemon Omega Ruby, it would crash everytime I entered a pokemon center and after using this tools it no longer has any issues.
 
  • Like
Reactions: skawo
Okay, good news and bad news. The good news is I'm no longer getting an immediate arm11 error. The bad news is I'm now getting a generic error 39 (quartz).

I know there are like 2 hashes at 2% that haven't been fixed yet but the tool spent the better half of 6 million cycles trying to fix it with no luck. I'm half tempted to cope and cycle it again for the next few days but maybe theres a fix for this specific error? Any advice?


Or maybe I just bite the bullet and call it dead which sounds pretty realistic actually.
 
Sounds like originally you had an ExeFS (code) corruption error, but now there's still a crucial ROMFS (filesystem) game file that's corrupted.

If it's just a couple hashes, I would definitely try to run it again for a while. As long as the 'Current hash' is changing while fixing one, there's a chance.

You could also dump your game (The "build cia" option), extract the ROMFS and compare to a good ROMFS to see exactly which file is corrupted. I could then build a little specialized thing to only run on that file. Or, you could use Layered FS to make a patch that redirects reads of that particular file to the SD card.
 
Last edited by skawo,
  • Like
Reactions: Blauhasenpopo
Sounds like originally you had an ExeFS (code) corruption error, but now there's still a crucial ROMFS (filesystem) game file that's corrupted.

If it's just a couple hashes, I would definitely try to run it again for a while. As long as the 'Current hash' is changing while fixing one, there's a chance.

You could also dump your game (The "build cia" option), extract the ROMFS and compare to a good ROMFS to see exactly which file is corrupted. I could then build a little specialized thing to only run on that file. Or, you could use Layered FS to make a patch that redirects reads of that particular file to the SD card
Okay, if I were to send over the game dump, where would it be best to put it? I don't know if this site allows us to through out game files
 
Replying to add another data point- mine probably falls somewhere between partial fix and unrecoverable.

I opened a brand new copy of Yokai Watch, plugged it in, nothing showed up as being in the slot. Tried plugging it into a 3ds with CFW and one without, same issue. Took a look at it in gm9, and when clicking on "NCSD image options", the game title showed as "YOK???????????" on the top two lines, and the publisher line was all question marks.

Ran the 1.2 version of this fixer for around 19 hours. When it was going through the EXEFS section, the Current Hash only updated once every few minutes, despite the constant refreshing count number. I let it run overnight (a bit over 9 hours), and in the morning, the 500 retries error finally showed up. Makes sense since 500 retries, at a maximum of 1 Current Hash update a minute, is an estimated minimum of 8.3 hours. I skipped the block overall after about 14 hours.

The ROMFS section moved along a bit "quicker". The Current Hash was updating many times a second, and the 500 retries occurred within a few minutes, rather than many hours. It had some matches, but I noticed a lot of 500 retry messages/skipped blocks. After 5 more hours of that, and the progress bar staying at 0%, I force quit.

The reason I say its slightly better than unrecoverable is because, after reinserting and checking the game in gm9, the title and publisher were updated the "YOKAI WATCH" and "NINTENDO", respectively. When I plugged it in at the regular 3DS home screen, it now shows that the game is in the slot. Nothing appears on the top screen when the cursor is on it though, and trying to open the game throws a "Game Card could not be read" error.

I'll probably try running this again when I have some more time to spend on it, since it is doing some fixing, though my cart may be too far gone. Disappointing since its never been used.

Is there a way to force the Current Hash to update more quickly on the EXEFS section though? That seems to be the biggest bottleneck so far. I've tried shorter sessions with the SELECT mode on, and that unfortunately isn't forcing the Current Hash to update any quicker.
 
That falls under unrecoverable I think :/
Damn, it's really sad to hear that an unused cart was like this :(
I wonder if your cart has a physical defect, like a chip that needs reflowing, although I suppose then it wouldn't get better at all by running this?

Here is a version that will update the hash faster - but it also refreshes less - due to running on larger chunks of data. I don't know whether this is less effective or as effective, so it'd be a helpful test I suppose.
 
That falls under unrecoverable I think :/
Damn, it's really sad to hear that an unused cart was like this :(
I wonder if your cart has a physical defect, like a chip that needs reflowing, although I suppose then it wouldn't get better at all by running this?

Here is a version that will update the hash faster - but it also refreshes less - due to running on larger chunks of data. I don't know whether this is less effective or as effective, so it'd be a helpful test I suppose.
Yeah its unfortunate :/ I don't have a solder iron, so even if it was a physical issue like that, I wouldn't be able fix it. I'm more inclined to think its a data retention issue though, since the refreshing has done something. I'll give that new version a go and let you know if anything changes (also thank you!)
 
I'm trying to test all my old cartridges that I haven't touched in years and I'm curious what the "Refresh count" counter is, at first I thought it was a count of problems it found but it even goes up during the verify step and that passes fine.
Also I'm not sure I have any with any problems because when using the logging it never logs any issues. Every log is just one line telling that it is a log of the games titleid.

I would actually be interested in someone posting a full video of it running and actually finding and fixing problems so I knew what I was looking for.
 
Refresh count is just the amount of times it calls the refresh function; this happens normally every 10000 reads - even in regular GodMode9 or when playing the game. I just printed the amount to screen.

If the tool finds a problem it will say "Hash mismatch" at the bottom and start increasing the refresh count more rapidly (with each read):

1686668622331.png

If the verification passes fine or there are no logs, then your cartridge doesn't have any issues.
 
  • Like
Reactions: impeeza
Refresh count is just the amount of times it calls the refresh function; this happens normally every 10000 reads - even in regular GodMode9 or when playing the game. I just printed the amount to screen.

If the tool finds a problem it will say "Hash mismatch" at the bottom and start increasing the refresh count more rapidly (with each read):

View attachment 377659
If the verification passes fine or there are no logs, then your cartridge doesn't have any issues.
Thank you, that helps a lot.
 
  • Like
Reactions: impeeza
Thank you so much for your tool, I'm pretty positive that it saved my copy of Alpha Saphire.
I got it second hand yesterday and noticed that while the game loaded up pretty quickly, it never made it past the initial title screen before game selection. My CFW 3DS showed a generic error (0xd900458b) and my normal 3DS crashed entirely.

After the first run through with your tool, I made it a little further into the opening sequence and after the third run through the game booted up normally! These were my stats:

1st try: over 250.000 refreshs that took a little over 2 hours (game did not boot correctly)
2nd try: over 8.000 refreshs that took about 1 hour
3rd try: over 250 refreshs that took about 1 hour (game booted normally)
4th try: about 50 refreshs that took around 30 minutes

After the 4th try I repeated the process two more times, thinking that I needed to get the refresh count to 0. It seems that functioning 3DS cartridges need about 50 refreshs in both your tool as well as the verify tool. I've been checking my other (presumingly working) cartrigdes using the verify tool for the past 2 hours and every game has shown about 50 refreshs).

What I did notice was that immediately running the verify tool after your tool lead to error messages (implying that the card is still corrupt). The refreshs of the verify tool were added onto the refreshs of your tool. After switching off the 3DS and running the verify command again it came out clear. Maybe something to keep in mind.

Hopefully this information helps? I'm very much a noob when it comes to 3DS hacking but I am pretty excited that I managed to save my game thanks to you!
 
  • Love
Reactions: impeeza
Yep, it will always do a certain amount of refreshes every run, even if the cartridge is fine - conforming with the refresh per 10000 standard. The exact amount depends on the game size.
 
Last edited by skawo,
Bro thanks a bunch! I was heartbroken when my planet robobot cartridge didn't work. But when I tested this out on it, it works clean and my save file is back too.
 
  • Love
Reactions: impeeza

Site & Scene News

Popular threads in this forum