Skip to content

Latest commit

 

History

History
71 lines (58 loc) · 2.39 KB

File metadata and controls

71 lines (58 loc) · 2.39 KB

Python ROM Hacking Toolkit (pyromhackit)

This is a little Python utility providing my tools for doing ROM hacks, primarily geared towards script replacement. This is still largely a work in progress.

Build Status Code Health Coverage Status

Install

TODO

Dependencies

  • Python 3

Install the dependencies like so:

$ pip install -r requirements.txt

Usage

reader.py provides a kind of pipeline interface for processing a ROM. More information to come...

$ ./reader.py -h
usage: reader.py [-h]
                 [--transliteration TRANSLITERATION [TRANSLITERATION ...]]
                 [--width WIDTH] [--outfile OUTFILE]
                 infile {bin,hex}
                 [{odd,hex,text,map,replace,pack,join,table,label} [{odd,hex,text,map,replace,pack,join,table,label} ...]]

Read a ROM and process it.

positional arguments:
  infile                Path to the file to be read.
  {bin,hex}             Encoding of the read file.
  {odd,hex,text,map,replace,pack,join,table,label}
                        Apply processing rules to the out-encoded stream.

optional arguments:
  -h, --help            show this help message and exit
  --transliteration TRANSLITERATION [TRANSLITERATION ...], -t TRANSLITERATION [TRANSLITERATION ...]
                        YAML file mapping a set of symbols to another set of
                        symbols.
  --width WIDTH, -w WIDTH
                        Number of columns in the output.
  --outfile OUTFILE, -o OUTFILE
                        Output to file instead of to console.

Examples

$ ./reader.py majin-tensei-ii/mt2.sfc bin map text -t majin-tensei-ii/hexmap.yaml -o out.txt

Testing

$ pytest pyromhackit

Features

Functional requirements:

  • Palette formatter
  • ROM file reader module providing a pipeline interface to the ROM file.

Quality requirements:

  • Platform independence
  • Free software license

License

The software is licensed under GPLv3. See LICENSE.md for details.