CFW-Suite
CFW-Suite copied to clipboard
Tools which can be used to create a custom firmware for the Nintendo DS
CFW Suite
A collection of tools which can be used to modify some of the text from a DS or DS Lite firmware, to create a custom firmware (CFW).
See this video for an example.
Code from Chism, Loopy, Lick, and others has been used.
Steps to modify the "Touch the Touch Screen to continue." text
Dump original firmware
- (Optional but recommended) install a version of FlashMe, this adds a failsafe to your firmware so you can recover if a future flash fails,
- Dump your DS firmware using DSBF Dump,
Modifying the firmware
- Compile guiTool by running
make, - Extract gui data from your firmware with
guiTool firmware.bin -e gui.bin, - Make any changes you want to the
gui.binfile (note: text is Unicode), the "Touch the Touch Screen to continue." text starts at0x2c20in the file. - Make a copy of your firmware (here it is called
cfw.bin), - Inject gui data into your custom firmware with
guiTool cfw.bin -i gui.bin, - (Optional but recommended) run DeSmuME, go to
Config->Emulation Settingsand configure it to boot from your custom firmware; this is just to test that it works,
Flashing to hardware (fwManager - recommended method)
- Compile fwManager by running
make, or download a prebuilt binary, copy it to your flashcard, - Make a new directory called
firmwareson your flashcard, - Place your modified firmware (
cfw.bin) here, - Run fwManager and select your custom firmware; when the installer is running, short the SL1 terminal as if you were installing FlashMe.
Flashing to hardware (FlashMeInjector - old method for homebrew loaders that don't support libfat)
- Compile FlashMeInjector by running
make, - Inject your firmware into the FlashMe installer with
FlashMeInjector flashme.nds -lite cfw.binif you are using a DS Lite, orFlashMeInjector flashme.nds -phat cfw.binif you are using an original DS, - Run your modified FlashMe installer on your DS,
- FlashMe firmwares have an additional checksum, which will be incorrect, FlashMe will tell you the correct one and won't flash anything,
- Correct the FlashMe checksum with the one your DS told you, and inject the new firmware back into
flashme.nds, - Run
flashme.ndsagain, from here the installation process will be the same as if you were installing FlashMe normally (SL1 must be shorted),
If you follow the optional steps, then the risk of a brick will be relatively low; however, I take no responsibility if a brick does happen as a result of using these tools.
Uninstalling
Assuming you kept a backup of your original firmware, you can flash it with fwManager. Alternatively you may use noflashme.
No content owned by Nintendo is contained in this repo!
No firmwares are here, you must dump your own. The firmwares contained in the FlashMe installer have been removed, you must inject your own if you are using FlashMeInjector.