Zelda 64 Graphics Binary Debugger
  • C 98%
  • Makefile 2%
Find a file
2025-05-27 19:48:14 +01:00
include/libgbd Add string_encoding / --encoding option for the encoding to use to read in strings from rdram (#9) 2025-05-27 19:47:56 +01:00
libgfxd@e1bb62e65b Build fixes and some preliminary f3dex3 support 2024-06-26 23:22:11 +01:00
src Add string_encoding / --encoding option for the encoding to use to read in strings from rdram (#9) 2025-05-27 19:47:56 +01:00
.clang-format Update formatting config, format headers in include 2024-07-09 23:05:23 +01:00
.gitignore Meta fixups (#3) 2024-03-03 19:52:14 +00:00
.gitmodules Add non-standard libgfxd 2021-09-18 17:47:27 +01:00
LICENSE README, LICENSE and optional program arguments 2021-09-19 19:50:59 +01:00
Makefile Link libgfxd with --whole-archive to link in all ucodes (#10) 2025-05-27 19:48:14 +01:00
README.md Allow passing a pointer to read the start address at (#4) 2024-03-03 19:55:22 +00:00

Graphics Binary Debugger

The Graphics Binary Debugger, gbd, will inspect an N64 graphics task for errors and try to point out crashing GBI commands. Currently, it only targets F3DZEX and S2DEX2 for Zelda Ocarina of Time MQ Debug, its scope is intended to be expanded upon in the future. This does not attempt to accurately simulate the microcode task or the workings of the RDP, it only seeks to validate arguments to GBI commands.

It is still rather primitive, but good enough to debug several kinds of common crashes.

Usage

gbd <path to RAM dump> <start address>

or

gbd <path to RAM dump> *<pointer to start address>

For example gbd ram.bin 0x801B4100 (disassemble from 0x801B4100) or gbd ram.bin *0x8012D260 (disassemble from the address found at 0x8012D260)

Currently, the only way to use gbd is by dumping the contents of RDRAM to a file. AUTO can be entered in place of a start address to use the default start address.

Building

Run make to build the program. Building requires libiconv to be installed with --enable-static. Either install it yourself or run make libiconv to install it to libiconv/linux in the repository directory. If you would like to install libiconv elsewhere you can override ICONV_PREFIX in the Makefile.

Building for windows is also supported. The steps are the same, merely add TARGET=windows in the make commands. If running make libiconv for windows, it will be installed locally to libiconv/windows.