Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Snap64 Recomp symbols

The symbol files a mod build for Snap64 Recomp needs, in the form N64Recomp's mod tool reads. They are generated from the decompilation's ELF (ethteck/pokemonsnap at commit 3a236dc, the same one the port is built against) by the port's tools/gen_reference_syms.py, and they carry names, addresses and sizes only: no code and no data of the game.

  • pokemonsnap.us.syms.toml -- every function, by section: 4,268 across the 32 sections that hold code. The port's own patch build uses this same file (patches/pokemonsnap.syms.toml in the port's repository).
  • pokemonsnap.us.datasyms.toml -- the game's variables and segment marks by section: 12,754 symbols across 156 sections, the code sections included, because this game keeps most of its globals beside its code.

A mod's mod.toml names them under [inputs]:

func_reference_syms_file = "Snap64RecompSyms/pokemonsnap.us.syms.toml"
data_reference_syms_files = [ "Snap64RecompSyms/pokemonsnap.us.datasyms.toml" ]

The mod template checks this repository out as a submodule. When the decompilation gains a name, the port regenerates both files from its ELF and this repository moves with it. A mod already built keeps working, because the .nrm records addresses, not names; its source needs the new name the next time it is built.

Checked on 2026-09-20: both files regenerate byte for byte from the decompilation at that commit, and a mod built against them loads in the released 1.0.9.

To regenerate, from the port's root with the decompilation built:

python tools/gen_reference_syms.py <decomp>/build/pokemonsnap.elf pokemonsnap.us.syms.toml game_syms.ld pokemonsnap.us.datasyms.toml

About

The game's function and variable names with their addresses, for building Snap64 Recomp mods

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors