n64sym
is a command-line utility that identifies symbols in N64 games.
n64sym <input path> [options]
Sets the path of the file to scan. The input file may either be a RAM dump or ROM image.
If the file extension is .z64
, .n64
, or .v64
, the tool will assume the file is a ROM image and attempt to identify the position of the main code segment and adjust the symbol addresses accordingly. Note that scanning a ROM image may yield inaccurate results; using a RAM dump for the input file is recommended.
-s scan for symbols from the built-in signature file
-l <sig/lib/obj path(s)> scan for symbols from signature/object/library file(s)
-f <output format> set the output format (pj64, nemu, armips, n64split, splat, default)
-o <output path> set the output path
-h <headersize> set the header size (default: 0x80000000)
-t scan thoroughly
-v enable verbose logging
Scans against the built-in signature file. See Included Libraries for a list of currently included libraries.
Scans against signature files and ELF libraries/objects. If a directory path is provided, n64sym
will use all *.sig
, *.a
and *.o
files that it finds in the directory tree. This option may be used multiple times.
Sets the output format. Valid formats include pj64
, nemu
, armips
, n64split
, splat
, and default
.
Format | Description |
---|---|
pj64 |
Project64 debugger symbols (*.sym) |
nemu |
Nemu64 bookmarks (*.nbm) |
armips |
armips labels (*.asm) |
n64split |
n64split config labels (*.yaml) |
splat |
splat symbol names (symbol_addrs.txt) |
default |
Space-separated address and symbol name |
Sets the output path. If this option is not used, n64sym
will use the standard output.
Overrides the header size (displacement of memory address against absolute file address). By default this value is either 0x80000000
or the entry point if the input file is a ROM image.
Enables thorough scanning. When this option is enabled, the scanner will check every byte of the input file instead of only checking spots that look like functions.
Enables verbose output.
n64sym paper_mario_ram.bin -s -f "pj64" -o "C:/Project64/Save/PAPER MARIO.sym"
n64sym "Super Mario 64 (U).z64" -s -f "n64split" -o "sm64config.yaml"
n64sym "Ronaldinho Soccer 64.z64" -l "./libultra" | grep "osPiStartDma"
n64sig
is a command-line utility that generates n64sym
-compatible signature files.
n64sig [options] > output_path
-l <lib/obj path(s)> generate signatures from object/library file(s)
-f <format> set the output format (json, default)
Run make
to build n64sym
and n64sig
.
Create a directory in the project root named oslibs
and drop the desired library/object files in it. Then run make rebuild_sigs
to rebuild src/builtin_signatures.sig
and web/signatures.json
.