ROM Hack ROMulan Data Extractor/Injector

FAST6191

Techromancer
OP
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
Browsing romhacking.net today ( http://www.romhacking.net/forum/index.php/topic,12243.0.html ) I came across ROMulan Data Extractor/Injector and thought it would do well here.

Homepage (downloads and example formats for a few megadrive games)
http://stealth.hapisan.com/ROMulan/
Documentation
http://stealth.hapisan.com/ROMulan/ROMulan.html

Do pay attention to the license http://stealth.hapisan.com/ROMulan/ROMulan.html#License (it should not trouble most rom hackers and projects but it is not a standard license and has some special conditions)

QUOTE said:
ROMulan is a tool designed to provide a simple way to extract data from program files for manipulation by an external program, and to then re-integrate the data regardless of its new size. Its primary use is to allow for the editing of video game data outside of the program that uses it. After editing, the data can be re-inserted into the original program even if it has grown larger than the area it used to occupy, as long as it does not increase the size of the original file beyond the specified maximum file size.

General Usage

ROMulan relies on two types of files to perform its function- the "Batch Command File", and the "Injector File". These files contain data that describe the layout of the files being manipulated during extraction or injection, and how to treat the data being manipulated. If "Batch" and "Injector" files already exist that describe the desired program, usage is as simple as instructing ROMulan to call on those files, and then following any prompts that may be presented asking for information such as the name of the source program file, or a destination folder to house the extracted data. Otherwise, the user must know the layout of the target program file(s) and use that information to create the files described in the sections below, which can be more easliy understood by comparing these notes with currently-existing files of each type.

Some waffle from me
Quite often we get questions when people figure out file formats or have minor variations on existing formats where adjusting several hundred (or more) entries by hand is not ideal. Traditionally the reply is find a capable programming language and build your own tool which is not that nice for something simple enough to understand but large enough to render manual work tricky (it helps and there is a lot of overlap but you do not necessarily need to be a programmer or indeed a programmer of tools to be a rom hacker). This goes double for the newer consoles where they have formats stacked on top/inside of other formats. Granted there are tools like Altas and romjuice that are mainly aimed at scripts and pointers where this is more of a general archive unpacker. Better yet it is command line (granted it has a script aka "injector" to do various things) so you can chain it easily enough.
Naturally for a tool of this calibre it is something of a programming language unto itself but it is geared towards the sort of things you want to do as a hacker rather than the scope of activities a full on programming language might encompass. It is still good to at least have some simple scripting languages along the lines of python or perl .or maybe some C# but this should help bridge things.

Depending on how this plays out I might see about making a script collection for known DS and other console formats (SDAT, ARC, NARC, NANR and the like) as such things are a long time coming. I might also see about finally making a relinker for the DS.

If you want a head start on trying such things I would suggest a simple script at first (the BMG format Animal crossing and NSMB use is ideal) but
http://nocash.emubase.de/gbatek.htm#dscart...roromfilesystem is the DS file system.
http://llref.emutalk.net/nds_formats.htm
http://llref.emutalk.net/docs/

http://www.pipian.com/ierukana/hacking/ds_narc.html
http://www.pipian.com/ierukana/hacking/ds_nff.html
http://treeki.shacknet.nu/romhacking/docs.html
http://kiwi.ds.googlepages.com/sdat.html
http://kiwi.ds.googlepages.com/nsbmd.html
http://www.amnoid.de/gc/ (for the gamecube and something sort of for the wii)
http://hitmen.c02.at/files/yagcd/yagcd/frames.html (sections 14 onwards)

There are countless other places and threads that detail formats and example hacks as well.
http://gbatemp.net/index.php?showtopic=122534
Much of the old demo/hidden/beta tracks from mario kart used similar techniques.

If you look at the recent http://gbatemp.net/t276441-inazuma-eleven-e-full-project it has a nice example of the need for such a program.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan
    I rather enjoy a life of taking it easy. I haven't reached that life yet though.
    BakerMan @ BakerMan: