N64 Memory Map Questions

  • Thread starter Thread starter gudenau
  • Start date Start date
  • Views Views 2,925
  • Replies Replies 2
  • Likes Likes 1

gudenau

Largely ignored
Member
Joined
Jul 7, 2010
Messages
4,111
Reaction score
4,466
Trophies
2
Location
/dev/random
Website
www.gudenau.net
XP
7,805
Country
United States
I was looking into the memory map of the Nitendo 64 to try and figure out where the cartridges where mapped into memory. I found that it was not just something like `image goes here` but it is split into multiple chunks.

How does one go from a ROM image to the memory map?

I do not understand how the `Cartridge Domain`s work, I can't find anything about them online.

Code:
Memory Map

  00000000-03EFFFFF   RDRAM Memory
  03F00000-03FFFFFF   RDRAM Registers
  04000000-040FFFFF   SP Registers
  04100000-041FFFFF   DP Command Registers
  04200000-042FFFFF   DP Span Registers
  04300000-043FFFFF   MIPS Interface (MI) Registers
  04400000-044FFFFF   Video Interface (VI) Registers
  04500000-045FFFFF   Audio Interface (AI) Registers
  04600000-046FFFFF   Peripheral Interface (PI) Registers
  04700000-047FFFFF   RDRAM Interface (RI) Registers
  04800000-048FFFFF   Serial Interface (SI) Registers
  04900000-04FFFFFF   Unused
  05000000-05FFFFFF   Cartridge Domain 2 Address 1
  06000000-07FFFFFF   Cartridge Domain 1 Address 1
  08000000-0FFFFFFF   Cartridge Domain 2 Address 2
  10000000-1FBFFFFF   Cartridge Domain 1 Address 2
  1FC00000-1FC007BF   PIF Boot ROM
  1FC007C0-1FC007FF   PIF RAM
  1FC00800-1FCFFFFF   Reserved
  1FD00000-7FFFFFFF   Cartridge Domain 1 Address 3
  80000000-FFFFFFFF   External SysAD Device

Pinging @FIX94 because they seems to know just about everything.
 
  • Like
Reactions: Deleted User
I dont really know a whole lot about N64 but looking at this:
https://github.com/PeterLemon/N64/blob/master/LIB/N64.INC#L220
appears to say that the ROM is located at 0x10000000 which is also then confirmed a bit further down with this line:
https://github.com/PeterLemon/N64/blob/master/LIB/N64.INC#L259
Also according to this:
http://en64.shoutwiki.com/wiki/Memory_map_detailed#external_SysAD_device
you should be able to also read that ROM from 0x90000000 and 0xB0000000 as those are just mirrored addresses.
 
I dont really know a whole lot about N64 but looking at this:
https://github.com/PeterLemon/N64/blob/master/LIB/N64.INC#L220
appears to say that the ROM is located at 0x10000000 which is also then confirmed a bit further down with this line:
https://github.com/PeterLemon/N64/blob/master/LIB/N64.INC#L259
Also according to this:
http://en64.shoutwiki.com/wiki/Memory_map_detailed#external_SysAD_device
you should be able to also read that ROM from 0x90000000 and 0xB0000000 as those are just mirrored addresses.

I was trying to find that little extra info for weeks, thanks a lot.
 

Site & Scene News

Popular threads in this forum