• Hey, guest user. Hope you're enjoying GameParadise! Have you considered registering for an account? Come join us and add your take to the daily discourse.

ROM Hack 3DS ROM Tool: rom_tool

 
 

admin

Chad
Staff member
85%
Joined
Jan 25, 2024
Messages
5,748
Points
38
Age
38
Location
USA
Website
gameparadise.org
Credits
98,369

What Is rom_tool?


'rom_tool' is a tool designed to check/manipulate CTR Cartridge Image (CCI) files, mainly for use with Gateway 3DS and associated clones. CCI files are better known to the 3DS Scene as 3DS ROM Dumps, but as "CCI" is the correct term, I'll be using it in place of "ROM".


What Can Be Done With rom_tool?


Main uses:
  1. Read CCIs, and print information about them, including actual CCI data size, and minimum required 3DS FW etc.
  2. Reduce the size of CCIs, by removing unused bytes (CCI Trimming), and be able to restore them again (CCI Restoring).
  3. Extract the partitions from CCIs.
CCI trimming and un-trimming is tested(to trim and un-trim correctly), and works with all CCI sizes, large(4GB) and small(128MB).

NOTE: You can remove about 30MB extra from a CCI by removing the update data(in versions prior to rom_tool 3.0, this was referred to as "Super Trimming"). However unlike regular CCI trimming, this is a PERMANENT modification, and cannot be reversed. So use with caution and only when space is scarce. CCIs which have had their update data removed will only work with Gateway3DS v1.1 and above.

Predicting CCI Compatibility with 3DS Flashcards (R4i Gold 3DS Deluxe 2.0 / Gateway Firmware 1.2):
Use rom_tool to view CCI Info. If any of the following are true, then the CCI will not work:
  1. If "Media Type:" is "CARD2" (Flashcards can currently only emulate cards of type CARD1)
  2. If "SDK Version:" is "5.0.0 Release" or greater. (Firmwares < 5.0.0-11X, fail with the new format)
Predicting CCI Compatibility with 3DS Flashcards (R4i Gold 3DS Deluxe 3.0 / Gateway Firmware 2.0B1):
Use rom_tool to view CCI Info. If any of the following are true, then the CCI will not work:
  1. If "Media Type:" is "CARD2" (Flashcards can currently only emulate cards of type CARD1)

Using rom_tool


As rom_tool is a command line tool, you need to put "rom_tool" into the same directory as your CCI dumps. Then you need to open a command window (or terminal if your using MAC OS X) in that directory (search google for how to do this). Once you've done that you are ready to use rom_tool. Command line usage:

View CCI Info:
rom_tool -i Test.3ds

View CCI Partition Info:
rom_tool -p Test.3ds

Extract CCI Partitions:
rom_tool -x <directory for extracted files> Test.3ds

Trim CCI:
rom_tool -t Test.3ds

Restore CCI (Untrim):
rom_tool -r Test.3ds

Remove Update Data from CCI:
rom_tool -u Test.3ds


GUI - 3DSExplorer


Eli Sherer already implemented the basic features of rom_tool into 3DSExplorer. But I decided to implement all of rom_tool v3.1, and decided to improve 3DSExplorer while I was doing it. I based it on Eli Sherer's most recent release which has unfortunately has broken Ticket/TMD code, which I noticed after finishing the modifications. Using 3DSExplorer is easy, if you can get access to CCI dumps, you will be able to use 3DSExplorer.

Executable package and source code links are in the download section. My C# isn't the best, I mainly write in C, so don't be surpised if you find some hacky work a rounds in there.
* Automatic detection of CSU/CCI and CXI/CFA
* Writable Region can be saved from full sized CCI CARD2 dumps.
* The logo can be saved from SDK 5.0.0+ CXIs
* "CCI" Tab only appears if the CCI can be trimmed/restored
* Detects NCSD/NCCH data in the same way as rom_tool
* CIA displays Meta Dependency list properly.
* Various NCSD/NCCH Structures updated
* ICN Flags read properly.


Donwload Links


rom_tool (command line tool):
Executable (Windows 32/64-bit and Mac OS X): FileTrip (v3.1 Released: 8/11/13)
Source Code: GitHub

Modified 3DSExplorer (GUI):

Executable (Windows 32/64-bit): Dropbox
Source Code: GitHub


Release Notes

  1. rom_tool currently fails on Linux.
  2. When compiling on Windows, use MinGW.

Screenshots



32469-MacScreen1.png



32469-WindowScreen1.png

 
 

Recent Content

Newest Downloads

Tutorials

 
Back
Top