- Recompiled LoROM 1MB USA dump (crc32=777aac2f) with snesrecomp v2 (ef0b3ff7) - 4 analysis roots emitted to src/gen (bank00 + dispatch/module/stubs) - ALttP title adapter hooks left in src/game_rtl.c for integration
recomp/
Analysis input for Legend of Zelda: A Link to the Past. tools/regen.sh reads this directory and
writes src/gen/.
| File | Owner | Notes |
|---|---|---|
bank*.cfg |
you, plus generated blocks | Per-bank analysis directives |
symbols.toml |
you | Progressive name map; the source of truth |
funcs.h |
generated | Re-synced by tools/regen.sh — do not hand-edit |
The block between >>> BEGIN symbols.toml and <<< END symbols.toml in
each bank cfg is rewritten from symbols.toml on every regen. Edit
symbols.toml, not the block.
Python 3.11+ includes the TOML reader. On older Python, install it with
python -m pip install tomli. Projects without symbols.toml do not need it.
Each [[func]] has a C identifier name, a 16-bit hexadecimal addr
(for example, "8000"), and an integer bank (for example, 0xc0).
Missing bank configs are created automatically; hand-written directives outside
the generated blocks are preserved. Removing an entry also removes its generated
directives on the next regen.
emit = false(the default) writes asymbollabel andforce_lleboundary: it stays interpreted, with no generatedfuncdeclaration infuncs.h.emit = truewrites afuncdeclaration and requests analysis from that entry, even without--cfg-roots. Only variants the analyzer proves safe become AOT code; others still use the interpreter. Optionalentry_mandentry_xselect the initial register-width flags (0 or 1, both default to 1).
An unchanged cfg file is not by itself evidence of failed code generation:
src/gen/bank*_v2.c contains code discovered from the ROM, while bank*.cfg
contains analysis inputs. Discovery does not copy every reached function back
into the configs.