Tools¶
Things I wrote because the projects needed them.
a816¶
My 65c816 assembler for Super Famicom work: linker, memory pools, typed layouts, source-level debug info, editor tooling. It grew up alongside Final Fantasy IV.
Documentation · Source on GitHub
katsuji¶
活字, movable type. My variable-width font tooling for a816 projects: it turns a PNG font into the file the VWF runtime reads, finds kerning pairs, wraps text by pixel width, and pre-renders static strings into tiles. It grew out of Final Fantasy IV's build scripts; FF4's five fonts still come out byte for byte the same.
Kintsuki¶
Reverse-engineering tooling around the ares SNES core: Python bindings, memory and PPU inspection, tracing, profiling, and automated tests. It's what I do most of the reverse engineering with: finding the routine that draws text, tracing who writes where, dumping VRAM and tilemaps, profiling hot code, and keeping labels as I go. I also write integration tests with it: boot the patched game, drive it to a scene, and check what ends up on screen and in memory.
The docs aren't public yet.