Difference between revisions of "Memory map"

From WiiBrew
Jump to navigation Jump to search
m (Reverted edits by Nuke (Talk); changed back to last version by JeffEpler)
Line 7: Line 7:
  
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x817FFFFF
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x817FFFFF
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 24 MB
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 24 MB
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | MEM1 Memory (Cached)
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | MEM1 Memory (Cached)
  
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0xC0000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0xC0000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0xC17FFFFF
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0xC17FFFFF
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 24 MB
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 24 MB
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | MEM1 Memory (Uncached)
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | MEM1 Memory (Uncached)
  
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x90000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x90000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x93FFFFFF
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x93FFFFFF
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 64 MB
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 64 MB
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | MEM2 Memory (Cached)
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | MEM2 Memory (Cached)
  
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0xD0000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0xD0000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0xD3FFFFFF
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0xD3FFFFFF
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 64 MB
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 64 MB
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | MEM2 Memory (Uncached)
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | MEM2 Memory (Uncached)
  
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0xCD000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0xCD000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0xCD008000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0xCD008000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" |  
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" |  
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Hardware Registers
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Hardware Registers
 
|}
 
|}
  
Line 49: Line 49:
  
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 6
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 6
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x525350453031
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x525350453031
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Game Code 'RSPE01' (Wii Sports) Set by Apploader
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Game Code 'RSPE01' (Wii Sports) Set by Apploader
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000018
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000018
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x5D1C9EA3
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x5D1C9EA3
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Wii Game ID
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Wii Game ID
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000020
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000020
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x0D15EA5E
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x0D15EA5E
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Nintendo Standard Boot Code.
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Nintendo Standard Boot Code.
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000024
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000024
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x00000001
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x00000001
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Unknown
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Unknown
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000028
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000028
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x01800000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x01800000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Memory Size (Physical) 24MB
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Memory Size (Physical) 24MB
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x8000002C
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x8000002C
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x00000023
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x00000023
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Production Board Model
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Production Board Model
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000030
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000030
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x00000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x00000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Unknown
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Unknown
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000034
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000034
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x817FEC60
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x817FEC60
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Arena High
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Arena High
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000038
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000038
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x817FEC60
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x817FEC60
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Start of FST (File System Information)
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Start of FST (File System Information)
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x8000003C
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x8000003C
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x00001394
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x00001394
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Unknown
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Unknown
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000060
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000060
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x24
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x24
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Copyright code
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Copyright code
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Hook is PPC assembler used by Debugger
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Hook is PPC assembler used by Debugger
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x800000EC
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x800000EC
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x81800000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x81800000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Dev Debugger Monitor Address (If present)
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Dev Debugger Monitor Address (If present)
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x800000F0
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x800000F0
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x01800000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x01800000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Simulated Memory Size
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Simulated Memory Size
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x800000F4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x800000F4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x00000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x00000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Unknown / Unused
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Unknown / Unused
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x800000F8
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x800000F8
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x0E7BE2C0
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x0E7BE2C0
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Console Bus Speed
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Console Bus Speed
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x800000FC
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x800000FC
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x2B73A840
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x2B73A840
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Console CPU Speed
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Console CPU Speed
 +
|- style="background-color: #dee;"
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" | 0x80001800
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" | 0x1800
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" |
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" | Standard loader stub area (entry at 0x80001800)
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80003130
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x800030F0
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 8
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x933E0000, 0x93400000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x00000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | IOS Heap Range
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | DOL Execute Parameters
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80003138
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80003130
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 8
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x00000011
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x933E0000, 0x93400000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Hollywood Version
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | IOS Heap Range
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80003140
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80003138
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 8
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x00090204,0x00062507
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x00000011
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | IOS version
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Hollywood Version
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80003158
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80003140
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 8
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x0000FF16
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x00090204,0x00062507
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | GDDR Vendor Code
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | IOS version
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80003180
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80003158
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x52535045
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x0000FF16
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Game ID 'RSPE' Wii Sports ID (Written by  
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | GDDR Vendor Code
 +
|- style="background-color: #ddd;"
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80003180
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x52535045
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Game ID 'RSPE' Wii Sports ID (Written by  
  
 
Apploader)
 
Apploader)
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80003184
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80003184
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Unknown Flag (Set by Apploader)
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Unknown Flag (Set by Apploader)
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x8000318C
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x8000318C
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x00000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x00000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Title Booted from NAND (Launch Code)
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Title Booted from NAND (Launch Code)
 
|- style="background-color: #ddd;"
 
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x80003190
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x80003190
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x00000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x00000000
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Title Booted from NAND (Return Code)
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | Title Booted from NAND (Return Code)
|- style="background-color: #ddd;"
+
|- style="background-color: #dee;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x800030F0
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" | 0x80003400
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" | 0x100
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | 0x00000000
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" |
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | DOL Execute Parameters
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" | NAND boot vector (Broadway initialization code from nandloader)
 +
|- style="background-color: #eed;"
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eed;" | 0x80003F00
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eed;" | 0x132c100 (~19.2MB)
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eed;" |
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eed;" | Standard application executable area
 +
|- style="background-color: #dee;"
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" | 0x81330000
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" | 0x4d0000 (~4.8MB)
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" |  
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #fdd;" | Loader executable area
 
|}
 
|}
 +
 +
Applications should use the 0x80003F00 - 0x81330000 area for executable code and data loaded as part of their ELF/DOL, while loaders should use from 0x81330000 onwards. Applications can use the loader area and MEM2 as data work space once they are running, but they should restrict the sections contained in the DOL or ELF to the executable area only, since MEM2 is reserved as work area for the loader at that time. To preserve "return to loader" functionality, applications should never use the 0x80001800-0x80003000 area.

Revision as of 01:41, 19 April 2008

Start Address End Address Size Description
0x80000000 0x817FFFFF 24 MB MEM1 Memory (Cached)
0xC0000000 0xC17FFFFF 24 MB MEM1 Memory (Uncached)
0x90000000 0x93FFFFFF 64 MB MEM2 Memory (Cached)
0xD0000000 0xD3FFFFFF 64 MB MEM2 Memory (Uncached)
0xCD000000 0xCD008000 Hardware Registers

The IOS Heap range is 0x933E0000-0x93400000 it is shown in registers 0x80003130(Start), 0x80003130(End). The top of MEM2 memory is allocated to Starlet. You can access this memory by disabling memory protection via hardware registers in Starlet. (See Starlet Register List. TODO).

Broadway / IOS Global Memory Locations

Address Size Value Description
0x80000000 6 0x525350453031 Game Code 'RSPE01' (Wii Sports) Set by Apploader
0x80000018 4 0x5D1C9EA3 Wii Game ID
0x80000020 4 0x0D15EA5E Nintendo Standard Boot Code.
0x80000024 4 0x00000001 Unknown
0x80000028 4 0x01800000 Memory Size (Physical) 24MB
0x8000002C 4 0x00000023 Production Board Model
0x80000030 4 0x00000000 Unknown
0x80000034 4 0x817FEC60 Arena High
0x80000038 4 0x817FEC60 Start of FST (File System Information)
0x8000003C 4 0x00001394 Unknown
0x80000060 0x24 Copyright code Hook is PPC assembler used by Debugger
0x800000EC 4 0x81800000 Dev Debugger Monitor Address (If present)
0x800000F0 4 0x01800000 Simulated Memory Size
0x800000F4 4 0x00000000 Unknown / Unused
0x800000F8 4 0x0E7BE2C0 Console Bus Speed
0x800000FC 4 0x2B73A840 Console CPU Speed
0x80001800 0x1800 Standard loader stub area (entry at 0x80001800)
0x800030F0 4 0x00000000 DOL Execute Parameters
0x80003130 8 0x933E0000, 0x93400000 IOS Heap Range
0x80003138 4 0x00000011 Hollywood Version
0x80003140 8 0x00090204,0x00062507 IOS version
0x80003158 4 0x0000FF16 GDDR Vendor Code
0x80003180 4 0x52535045 Game ID 'RSPE' Wii Sports ID (Written by

Apploader)

0x80003184 4 0x80000000 Unknown Flag (Set by Apploader)
0x8000318C 4 0x00000000 Title Booted from NAND (Launch Code)
0x80003190 4 0x00000000 Title Booted from NAND (Return Code)
0x80003400 0x100 NAND boot vector (Broadway initialization code from nandloader)
0x80003F00 0x132c100 (~19.2MB) Standard application executable area
0x81330000 0x4d0000 (~4.8MB) Loader executable area

Applications should use the 0x80003F00 - 0x81330000 area for executable code and data loaded as part of their ELF/DOL, while loaders should use from 0x81330000 onwards. Applications can use the loader area and MEM2 as data work space once they are running, but they should restrict the sections contained in the DOL or ELF to the executable area only, since MEM2 is reserved as work area for the loader at that time. To preserve "return to loader" functionality, applications should never use the 0x80001800-0x80003000 area.