Changes

Jump to navigation Jump to search
88 bytes added ,  11:01, 3 November 2009
clarify a few points
Line 42: Line 42:  
The Wii moves all 24MB of 1T-SRAM (referred to as MEM1) inside the Hollywood package, and adds an additional 64MB of GDDR3 RAM (MEM2).  During normal operation, IOS reserves the upper 12-16MB of MEM2 for its own use; the rest can freely be used for code or data by running PPC code.  MEM1 is slightly faster than MEM2.
 
The Wii moves all 24MB of 1T-SRAM (referred to as MEM1) inside the Hollywood package, and adds an additional 64MB of GDDR3 RAM (MEM2).  During normal operation, IOS reserves the upper 12-16MB of MEM2 for its own use; the rest can freely be used for code or data by running PPC code.  MEM1 is slightly faster than MEM2.
   −
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).
+
The IOS Heap range is usually 0x933E0000 – 0x93400000, as shown in registers 0x80003130(Start), 0x80003134(End). Pointers in this area are often passed back and forth between IOS and code running on Broadway. The top of MEM2 memory is allocated to IOS, and protected from access by some registers (TODO).
    
'''Broadway / IOS Global Memory Locations'''
 
'''Broadway / IOS Global Memory Locations'''
Line 130: Line 130:  
| 0x80000060
 
| 0x80000060
 
| 0x24
 
| 0x24
| Copyright code
+
| [http://hitmen.c02.at/files/yagcd/yagcd/chap4.html#sec4.2.1.3 Debugger Hook]
 
| Hook is PPC assembler used by Debugger
 
| Hook is PPC assembler used by Debugger
 
|-
 
|-
Line 206: Line 206:  
| 4
 
| 4
 
| 0x52535045
 
| 0x52535045
| Game ID 'RSPE' Wii Sports ID. If these 4 bytes don't match the ID at 80000000, offline mode in games is disabled.
+
| Game ID 'RSPE' Wii Sports ID. If these 4 bytes don't match the ID at 80000000, WC24 mode in games is disabled.
 
|-
 
|-
 
| 0x80003184
 
| 0x80003184
Line 244: Line 244:  
|}
 
|}
   −
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.
+
By convention, 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.
    
[[Category:Hardware]]
 
[[Category:Hardware]]

Navigation menu