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
No edit summary
No edit summary
 
Line 4: Line 4:
|description=Error correction for faulty 3DS Cartridges.
|description=Error correction for faulty 3DS Cartridges.
|author=skawo
|author=skawo
|lastupdated=2025/07/03
|lastupdated=2026/05/25
|type=System Tools
|type=System Tools
|version=1.4
|version=1.5a
|license=GPL-3.0
|license=GPL-3.0
|download=https://dlhb.gamebrew.org/3dshomebrews/3DSCartridgeFixerTool.7z
|download=https://dlhb.gamebrew.org/3dshomebrews/3DSCartridgeFixerTool.7z
Line 79: Line 79:


== Changelog ==
== Changelog ==
'''v1.5a'''
* Prints the number of unfixable chunks to screen, so the user doesn't need to check the logs to verify progress
* Now based on newest GodMode9 version (thanks themmj!)
'''v1.4'''
'''v1.4'''
* If X is held when the fix option is selected, blocks that fail to fix themselves after 500 refreshes will be skipped.
* If X is held when the fix option is selected, blocks that fail to fix themselves after 500 refreshes will be skipped.

Latest revision as of 06:26, 31 May 2026

3DS Cartridge Fixer Tool
General
Authorskawo
TypeSystem Tools
Version1.5a
LicenseGPL-3.0
Last Updated2026/05/25
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.5a

  • Prints the number of unfixable chunks to screen, so the user doesn't need to check the logs to verify progress
  • Now based on newest GodMode9 version (thanks themmj!)

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: