Changes

627 bytes added ,  05:13, 27 October 2015
more registers
Line 18: Line 18:  
| ?
 
| ?
 
|-
 
|-
| ARM7_?_STATE
+
| ARM7_?_CNT
 
| 0x10018104
 
| 0x10018104
| 0x1
+
| 0x2
 
|-
 
|-
| ARM7_?
+
| ARM7_?_STATUS
 
| 0x10018108
 
| 0x10018108
 
| 0x2
 
| 0x2
 
|-
 
|-
| ARM7_?
+
| ARM7_?_WRITE_1
 
| 0x10018110
 
| 0x10018110
| 0x8?
+
| 0x4
 +
|-
 +
| ARM7_?_WRITE_2
 +
| 0x10018114
 +
| 0x4
 +
|-
 +
| ARM7_?_READ_1
 +
| 0x10018118
 +
| 0x4
 +
|-
 +
| ARM7_?_READ_2
 +
| 0x1001811C
 +
| 0x4
 
|}
 
|}
   Line 36: Line 48:  
== ARM7_CODE ==
 
== ARM7_CODE ==
 
This is the first code that will be run after execution begins. TwlProcess9 uses this to put ARM7 in a loop (TWL), and to set the POSTFLG and branch to more copied code (AGB).This doesn't seem to start execution by itself.
 
This is the first code that will be run after execution begins. TwlProcess9 uses this to put ARM7 in a loop (TWL), and to set the POSTFLG and branch to more copied code (AGB).This doesn't seem to start execution by itself.
 +
 +
== ARM7_?_READ/WRITE ==
 +
The values here are read from, stored in the AGB_FIRM [[3DS_Virtual_Console#NAND_Savegame|savegame]], and then written to the respective registers upon save loading. These registers are read after waiting for bit 15 of ARM7_?_STATUS to be set, writing 0x0 and then 0x2 to that register, and then waiting for bit 15 to be set again. If bit 14 is not set afterward, these registers are read from and stored in the save. Otherwise, these values are saved (and restored) as 0x0.
    
= Memory map =
 
= Memory map =
96

edits