Reference: Microcode

Writing custom microcode (ucode) for the N64 was only done by a couple of studios for officially released games. Most studios used the microcode provided by Nintendo. The few developers that did write it complained about poor documentation, lack of debugging tools and little to no support from Nintendo.

For the brave few that care to venture this far here are some things to know and the workflow that I used.

Tools:

  • 'bass' assembler
  • MAME / Cen64

Technical Notes:

  • Processing available
    • RSP A limited MIPS R4000 processor
    • RDP A display processor that supports very limited command set
      • No conditional code
      • No Loops
      • Only Drawing and buffer related commands
    • Vector CoProcessor
  • All code and data must be DMA'd into IMEM and DMEM
  • Think from inside the RCP
    • RAM addresses are different
    • Direct Cartridge access is not available