n64sym - N64 SDK symbol identification tool
This tool can be used to identify common N64 symbols/functions in games by searching ROM/RAM dumps for code in the SDK's libraries.

Download: https://github.com/shygoo/n64sym/releases
Source: https://github.com/shygoo/n64sym


n64sym <binary path> [options]

-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, default)
-o <output path>          set the output path
-h <headersize>           set the header size  (default: 0x80000000)
-t                        scan thoroughly
-v                        enable verbose logging

> n64sym dumps/paper_mario.bin -s
80069840 __osPfsRWInode
80069090 osPfsNumFiles
80069190 osPfsInitPak
80069388 pfsinitpak_o_0050
80069460 osPfsRepairId
800694C0 __osPfsGetStatus
CloudMcRip liked this post
n64sym v0.9 update

Download: https://github.com/shygoo/n64sym/releases

Changelog below


n64sym now supports the use of basic function signatures, so it no longer requires a bunch of stolen libraries.
You can use the -s option to scan for symbols from the built-in signature file.

Example: n64sym sm64.bin -s

The built-in signature file includes signatures for most of the OS versions, but it's still missing a handful. A list of what's currently included/missing is here.

You can generate your own signature files using the n64sig utility included in the repo. See the readme for more info.

ROM Support

A ROM may now be used for the input file. If the input file has one of the common N64 ROM extensions (z64/v64/n64), n64sym will look at the ROM header's entry point and adjust the symbol addresses accordingly. This will probably work fine most of the time, but note that if the ROM compresses its OS code or doesn't store it all in the main code segment, it will yield inaccurate results. 

Faster scanning

Instead of testing symbols against every byte of the input file, n64sym now only checks spots that look like functions. If you need to disable this feature you can use the -t option.

Output format

Multiple output formats are now supported via the -f <format> option. Supported formats include pj64, nemu, armips, n64split, and default.

Browser edition

Just for fun I made a gratuitous browser port of n64sym. You can try it out here:


Users browsing this thread: 1 Guest(s)