Skip to content

v1.0.0 — Sonic Chronicles Mod Builder

Latest

Choose a tag to compare

@DumbCode4Fun DumbCode4Fun released this 12 Oct 21:31
· 14 commits to main since this release

A randomizer and mod builder for Sonic Chronicles: The Dark Brotherhood (NDS), written
from scratch in pure Python against the ROM — no game files included, no dependencies to
install.

Download

SonicChroniclesModBuilder.zip (attached below) — extract anywhere and run ModPackMaker.exe.

You supply your own legally obtained ROM. The tool reads it and never writes to it;
builds land in build/ beside the executable.

Windows will warn you the first time. "Windows protected your PC" → More info →
Run anyway. The executable is unsigned, which is the only reason that appears. If you
would rather not take that on trust, run from source with ModPackMaker.bat, or rebuild
the exact same folder yourself with py tools/build/make_release.py --zip.

What it does

22 features, every one confirmed in a running game rather than inferred from the data:

  • Randomizers — POW moves and stat lines across the cast, enemy appearances, enemy
    placements, chests, drops, shop stock, quest rewards, equipment effects, Chao bonuses.
    One seed reproduces a run exactly, and the seed is written into the profile.
  • Progression — XP rate, per-character XP curves, level cap, stat curves, PP.
  • Combat — enemy scaling keyed to each enemy's own level, POW move retuning: cost,
    damage tiers, status effects, elements, and solo conversion so a team move works alone.
  • Items and shops — custom equipment, custom Chao, shop stock and repricing.
  • Presets — Vanilla+, Hard Mode, Randomizer, Chaos Mode, for when you do not want to
    configure anything.

Everything is a readable JSON profile, so a mod you like is a file you can share — and
the builder emits a BPS patch alongside the ROM, which is what you hand to other
people rather than the ROM itself.

What is also in the repository

The reverse-engineering record, which is most of the actual work: the save format, the
HERF/GFF4/TLK/GDA formats, what lives in ARM9, and the game's hidden stats. Two findings
worth flagging because the game's own UI never tells you:

  • Attack is accuracy, not damage. Damage is POW, which is never drawn anywhere.
  • Defense is evasion, not damage reduction. Reduction is GRT, also never drawn.

REVERSE_ENGINEERING_LOG.md is a dated log of every experiment, including the ones that
were wrong and how they were caught. It is written to be read.

Requirements

Windows for the executable. Anything with Python 3.8+ and tkinter to run from source.
numpy is optional and only makes patch generation faster.