Repository navigation
v0.3.0 β the project's symbol map
@asmlift/core@0.3.0 and @asmlift/cli@0.3.0 are live on npm.
npm i @asmlift/cli # pulls @asmlift/core ^0.3.0What's new since 0.2.0
The project's symbol map (#8)
Point asmlift at your project's built ELF with one decomp.yaml key, and it spells the code the way your project does:
tools:
asmlift:
elf: rom.elfThree channels feed the map β each one your ELF carries is used:
.symtabβ names for globals and functions:gInputStateinstead of*(u16 *)0x03004668- DWARF (
-g) β declaration shapes (gState.timer,gBlendModeTable[i], signedness,volatile/const) and callee signatures for every function the ELF compiled from C β arity drives call-argument recovery .debug_macinfo(-g3) β address-cast macro names (#define gCounter (*(u16 *)0x03001234)), which no symbol table can carry
Every map fact is a ranked lever, never an override: the named spelling and its raw-address sibling are both scored, and --score-against's byte-diff picks the winner. Scored candidates declare themselves β no header wrangling, and the compile world is probed, not configured.
The CLI README covers how to produce a good ELF; the Klonoa decomp's asmlift-elf target is a worked example with all three channels.
Also
- Playground: a Symbols pane ranks with your map in-browser, plus a byte-matching symbol-map example
- Benchmark: all 192 real rows run symbol-fed with full provenance and reproduction scripts β asmlift 343 matches vs m2c 340 across 675 rows
- Depends on the new
@gba-kit/debug-info@0.4.0
Full changelog: v0.2.0...v0.3.0