ROMulan is a tool designed to automate the process of extracting data from program files for manipulation by an external utility and then re-integrating the modified data in a useful way even if its new size requires it to be relocated. Its primary use is to allow for the editing of video game data outside of the program that uses it. With properly-created scripts, the modified data can be re-inserted into the original program even if it has grown larger than the area it used to occupy, and any pointers to the data will be automatically updated to reflect its new, automatically-generated location.
The following features assist in simplifying the process:
Batch Task Execution
Data region extract from file with/without endian switch
File copy to new location with/without endian switch
Call on external utilities
Automatically combine separate inject files to avoid conflict
Print status messages and/or pause for user keypress
Optionally prompt user to enter paths and filenames during processing
Data Injection
Read injection data from a file with/without endian switch
Define injection data in-script as BYTE, WORD, DWORD, or STRING
Use constants, "defines", or labels
Calculate at runtime with linear (no order of operations) math expressions
Group data into "Segments" for placement, either specified or automatic
Define "Labels" for use in data defines to create reference pointers to relocated data
Define "Disposable" areas of the file, telling ROMulan what it can safely overwrite
Automatically "Translate" file addresses to another logical address space when necessary
"Define" short/descriptive strings to be interpreted as longer strings at runtime
For more information, please view the documentation.
Also visit the homesite for a list of premade script sets.