Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

3DS Cartridge Fixer Tool: Difference between revisions

From GameBrew
Created page with "{{Infobox 3DS Homebrews |title=3DS Cartridge Fixer Tool |image=3ds.png |description=Error correction for faulty 3DS Cartridges. |author=skawo |lastupdated=2025/07/03 |type=System Tools |version=1.4 |license=GPL-3.0 |download=https://dlhb.gamebrew.org/3dshomebrews/3DSCartridgeFixerTool.7z |website=https://gbatemp.net/threads/corrupted-cartridge-fixer-release.628539/ |source=https://github.com/skawo/GodMode9-with-Cartridge-Fixer |donation= }} {{#seo: |title= (System Tools)..."
 
No edit summary
Line 19: Line 19:
|image_alt=3DS Cartridge Fixer Tool
|image_alt=3DS Cartridge Fixer Tool
}}
}}
Corrupted Cartridge Fixer (also known as GodMode9 with Cartridge Fixer) is a fork of [[GodMode9 3DS|GodMode9]] by Skawo that adds error correction functionality for faulty Nintendo 3DS game cartridges.
Corrupted Cartridge Fixer (also known as GodMode9 with Cartridge Fixer) is a fork of [[GodMode9 3DS|GodMode9]] that adds error correction functionality for faulty Nintendo 3DS game cartridges.


3DS cartridges contain a NAND flash chip which, if left unused for long periods of time, may become corrupted. The controller chip inside the cartridge has a built-in error correction function that can restore corrupted data. This tool makes more extensive use of that functionality — it scans the cartridge for errors and, if found, repeatedly re-reads the offending data chunks while running the refresh function until the data corrects itself.
3DS cartridges contain a NAND flash chip which, if left unused for long periods of time, may become corrupted. The controller chip inside the cartridge has a built-in error correction function that can restore corrupted data. This tool makes more extensive use of that functionality — it scans the cartridge for errors and, if found, repeatedly re-reads the offending data chunks while running the refresh function until the data corrects itself.
Line 28: Line 28:


== Features ==
== Features ==
* Scans 3DS cartridges for corrupted data blocks.
* Scans 3DS cartridges for corrupted data blocks.
* Uses the cartridge controller's built-in refresh/error correction function to attempt data restoration.
* Uses the cartridge controller's built-in refresh/error correction function to attempt data restoration.
Line 40: Line 39:


== Installation ==
== Installation ==
Install [[Luma3DS|Luma CFW]] on your Nintendo 3DS if you haven't already (see [https://3ds.hacks.guide/ 3ds.hacks.guide]).


# Install [[Luma3DS|Luma CFW]] on your Nintendo 3DS if you haven't already (see [https://3ds.hacks.guide/ 3ds.hacks.guide]).
Download the <code>.firm</code> file from the [https://github.com/skawo/GodMode9-with-Cartridge-Fixer/releases Releases] section on GitHub.
# Download the <code>.firm</code> file from the [https://github.com/skawo/GodMode9-with-Cartridge-Fixer/releases Releases] section on GitHub.
# Place the <code>.firm</code> file into the <code>luma/payloads/</code> folder on your SD card.
# Turn on the 3DS while holding START to launch the payload.
 
== User guide ==


=== Verifying a cartridge ===
Place the <code>.firm</code> file into the <code>luma/payloads/</code> folder on your SD card.


# Launch the tool and insert a cartridge.
Turn on the 3DS while holding START to launch the payload.
# Choose '''GAMECART'''. A list of files will appear. If it doesn't, try reinserting the cartridge.
# Choose the file with the <code>.3ds</code> extension (but '''not''' <code>.trim.3ds</code>, just <code>.3ds</code>).
# Choose '''NCSD image options...'''
# Choose '''Verify''' to check whether the cartridge is corrupted.


=== Fixing a corrupted cartridge ===
== User guide ==
 
* Launch the tool and insert a cartridge.
# If the Verify step fails, go into '''NCSD image options...''' and choose '''Fix cartridge corruption'''.
* Choose "GAMECART". A list of files will appear. If it doesn't, try reinserting the cartridge.
# After the fixer finishes, go into '''NCSD image options...''' again and choose '''Verify'''.
* Choose the file with the <code>.3ds</code> extension (but not <code>.trim.3ds</code>, just <code>.3ds</code>).
# If the verification still fails, run the fixer process again. It may take several passes before the entire cartridge is stabilized.
* Choose "NCSD image options..."
* Choose "Verify" to check whether the cartridge is corrupted.
* If the Verify step fails, go into "NCSD image options..." and choose "Fix cartridge corruption".
* After the fixer finishes, go into "NCSD image options..." again and choose "Verify".
* If the verification still fails, run the fixer process again. It may take several passes before the entire cartridge is stabilized.


'''Notes:'''
'''Notes:'''
* This process can take a very long time heavily corrupted cartridges may take more than a day. You can close the 3DS lid while the process is running.
* Only applies to 3DS cartridges (NDS cartridges are not supported).
* This process can take a very long time, heavily corrupted cartridges may take more than a day. You can close the 3DS lid while the process is running.
* As long as the "Current hash" value is changing on screen, the program is working. If "Current hash" stops updating, the refresh function has stopped working on that block, and it will be skipped after 20 tries without change.
* As long as the "Current hash" value is changing on screen, the program is working. If "Current hash" stops updating, the refresh function has stopped working on that block, and it will be skipped after 20 tries without change.
* After 500 retries on a single chunk, an option to skip it (by holding Y) is provided. However, it can sometimes take more than 500 retries to fix a chunk, so only skip if you are sure it is stuck.
* After 500 retries on a single chunk, an option to skip it (by holding Y) is provided. However, it can sometimes take more than 500 retries to fix a chunk, so only skip if you are sure it is stuck.
* To check progress between runs, hold Y while selecting "Fix cartridge corruption" to output a log of bad blocks to <code>/gm9/out</code>. If the list gets shorter with each run, the cartridge is improving.
* To check progress between runs, hold Y while selecting "Fix cartridge corruption" to output a log of bad blocks to <code>/gm9/out</code>. If the list gets shorter with each run, the cartridge is improving.
* As a last resort, hold SELECT when selecting the fixer to make refresh run on every read. This is not recommended unless the cartridge is almost certainly a lost cause.
* As a last resort, hold SELECT when selecting the fixer to make refresh run on every read. This is not recommended unless the cartridge is almost certainly a lost cause.
 
* Running the GodMode9 Verify function periodically (every couple of years) on your cartridge collection may help extend their longevity by exercising all data blocks on the cartridge.
=== Preventive maintenance ===
 
Running the GodMode9 Verify function periodically (every couple of years) on your cartridge collection may help extend their longevity by exercising all data blocks on the cartridge.
 
== Known affected games ==


From testing, the following games appear to be more prone to this type of NAND flash corruption:
From testing, the following games appear to be more prone to this type of NAND flash corruption:
* Persona Q
* Persona Q
* Pokémon X and Y
* Pokémon X and Y
Line 86: Line 76:


== Compatibility ==
== Compatibility ==
 
Works with both Old 3DS and New 3DS models.
* Requires a Nintendo 3DS with [[Luma3DS]] custom firmware installed.
* Works with both Old 3DS and New 3DS models.
* Only applies to 3DS cartridges (NDS cartridges are not supported).


== Changelog ==
== Changelog ==
Line 108: Line 95:


== Credits ==
== Credits ==
 
* Skawo - Programming
* '''Skawo''' - Programming
* RoadrunnerWMC - Help
* '''RoadrunnerWMC''' - Help
* Pleasehelpme2 - Testing
* '''Pleasehelpme2''' - Testing
* BreadLoaf - Testing
* '''BreadLoaf''' - Testing
* Based on [[GodMode9 3DS|GodMode9]] by d0k3.
* Based on [[GodMode9 3DS|GodMode9]] by d0k3.


== External links ==
== External links ==
* GitHub - https://github.com/skawo/GodMode9-with-Cartridge-Fixer
* GitHub - https://github.com/skawo/GodMode9-with-Cartridge-Fixer
* GBAtemp - https://gbatemp.net/threads/corrupted-cartridge-fixer-release.628539/
* GBAtemp - https://gbatemp.net/threads/corrupted-cartridge-fixer-release.628539/

Revision as of 04:41, 16 March 2026

3DS Cartridge Fixer Tool
General
Authorskawo
TypeSystem Tools
Version1.4
LicenseGPL-3.0
Last Updated2025/07/03
Links
Download
Website
Source

Corrupted Cartridge Fixer (also known as GodMode9 with Cartridge Fixer) is a fork of GodMode9 that adds error correction functionality for faulty Nintendo 3DS game cartridges.

3DS cartridges contain a NAND flash chip which, if left unused for long periods of time, may become corrupted. The controller chip inside the cartridge has a built-in error correction function that can restore corrupted data. This tool makes more extensive use of that functionality — it scans the cartridge for errors and, if found, repeatedly re-reads the offending data chunks while running the refresh function until the data corrects itself.

If a cartridge appears to load infinitely or frequently crashes for non-gameplay-related reasons, this tool has a chance to fix it.

Warning: This is experimental software. It may not fix every cartridge, and while it should not make them worse, there are no guarantees. Only run this on cartridges that are already experiencing issues.

Features

  • Scans 3DS cartridges for corrupted data blocks.
  • Uses the cartridge controller's built-in refresh/error correction function to attempt data restoration.
  • Automatically re-reads offending chunks of data until the hash matches the expected value.
  • Skips blocks automatically if the hash gets stuck on the same wrong value for 20 consecutive refresh attempts.
  • Provides the option to skip a stuck chunk after 500 retries by holding Y.
  • Holding Y when selecting "Fix cartridge corruption" outputs a log of bad blocks to the SD card (/gm9/out folder).
  • Holding SELECT when selecting the fixer runs the refresh on every read (for severely corrupted cartridges).
  • Holding X when selecting the fix option causes blocks that fail to fix after 500 refreshes to be skipped automatically (v1.4).
  • Includes the standard GodMode9 Verify function for checking cartridge integrity.

Installation

Install Luma CFW on your Nintendo 3DS if you haven't already (see 3ds.hacks.guide).

Download the .firm file from the Releases section on GitHub.

Place the .firm file into the luma/payloads/ folder on your SD card.

Turn on the 3DS while holding START to launch the payload.

User guide

  • Launch the tool and insert a cartridge.
  • Choose "GAMECART". A list of files will appear. 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 "Verify" to check whether the cartridge is corrupted.
  • If the Verify step fails, go into "NCSD image options..." and choose "Fix cartridge corruption".
  • After the fixer finishes, go into "NCSD image options..." again and choose "Verify".
  • If the verification still fails, run the fixer process again. It may take several passes before the entire cartridge is stabilized.

Notes:

  • Only applies to 3DS cartridges (NDS cartridges are not supported).
  • This process can take a very long time, heavily corrupted cartridges may take more than a day. You can close the 3DS lid while the process is running.
  • As long as the "Current hash" value is changing on screen, the program is working. If "Current hash" stops updating, the refresh function has stopped working on that block, and it will be skipped after 20 tries without change.
  • After 500 retries on a single chunk, an option to skip it (by holding Y) is provided. However, it can sometimes take more than 500 retries to fix a chunk, so only skip if you are sure it is stuck.
  • To check progress between runs, hold Y while selecting "Fix cartridge corruption" to output a log of bad blocks to /gm9/out. If the list gets shorter with each run, the cartridge is improving.
  • As a last resort, hold SELECT when selecting the fixer to make refresh run on every read. This is not recommended unless the cartridge is almost certainly a lost cause.
  • Running the GodMode9 Verify function periodically (every couple of years) on your cartridge collection may help extend their longevity by exercising all data blocks on the cartridge.

From testing, the following games appear to be more prone to this type of NAND flash corruption:

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

Compatibility

Works with both Old 3DS and New 3DS models.

Changelog

v1.4

  • If X is held when the fix option is selected, blocks that fail to fix themselves after 500 refreshes will be skipped.

v1.3

  • Increased CTRCARD clock from 4.18 to 13.4 MHz on ROM reads as per GodMode9 commit 105f4ae.

v1.2

  • The tool will now only skip a block automatically if the hash gets stuck on the same wrong value 20 times consecutively.
  • Added an option to run a 100 Refreshes version, which runs the refresh command 100 times per read (may be more effective at restoring ExeFS and larger files).

v1.0

  • Initial release.
  • Detects if block hash gets stuck on a wrong value, and skips that block automatically if it remains stuck for 20 refresh attempts.
  • Allows the user to skip past a block after 500 refresh attempts by pressing Y.

Credits

  • Skawo - Programming
  • RoadrunnerWMC - Help
  • Pleasehelpme2 - Testing
  • BreadLoaf - Testing
  • Based on GodMode9 by d0k3.

External links

Advertising: