Both the OoT and MM debug roms tries to talk to a dev device. It appears to be the N64 devkit made by Intelligent Systems. Besides being a cart emulator, the device provides a way for N64 software to spew lots of debug prints on a connected PC.
Majora’s Mask does one mystery read from 0xBFF00000. After that, it writes to the IS64 interface at 0xB58C0000, but never again touches it. There’s probably something here, but more work is needed.
Ocarina of Time
Ocarina of Time expects the device to be at 0xB3FF0000. It starts by writing zeros to base+0x14 and base+0x04, before writing ‘IS64’ to base+0x00. If it can read IS64 back, the device is assumed to be connected and the game uses it to send debug messages.
Messages are sent (approximitely) in this manner:
- Game reads from base+0x14. This is a pointer to the output text buffer or something probably. Maybe. Just return a zero here. In fact, just don’t worry about it.
- Game starts writing characters at base+0x20. Writing is done one character at a time; the game reads a word, modifies one byte in that word, and writes it back.
- After writing an entire message to be printed has been written out, the game writes the character count to base+0x14. This triggers a transfer to the PC probably.
- The game does not zero out either base+0x14 or the message buffer, so it’s probably done by the IS64.
Not great video