This program tunes a vanilla LSDJ ROM to any equal-temperament tuning system for microtonal music composition.. In theory, it should be able to generate other types of tuning systems, but it doesn't support this yet.
It has been tested with LSDJ version 9.2.F. The code tires to adapt to changes in the ROM by searching for specific data rather than editing a fixed location, but this method could still break at any time.
Running the tuner
Download tuner.py and run it like this:
# generate 12-TET ROM (i.e. change nothing) python3 tuner.py original_rom new_rom C C# D D# E F F# G G# A A# B # generate 19-TET ROM (flat sign converted to arrow; LSDJ has no "b") python3 tuner.py original_rom new_rom C C# Db D D# Eb E E# F F# Gb G G# Ab A A# Bb B B#
If there are no errors, it will print a tuning table with information on generated frequencies and their accuracies. Higher frequencies may be wildly innacurate (up to 15 cents in my experience!) due to how the Game Boy sound hardware works.