* Flash V124 was observed 0x90, V131 was observed 0xC0.
* Flash V124 was observed 0x90, V131 was observed 0xC0.
* EEPROM-based games vary wildly, since they can likely specify chip info in the 0x10-region of the footer.
* EEPROM-based games vary wildly, since they can likely specify chip info in the 0x10-region of the footer.
+
+
+
===NAND Savegame===
+
AGB_FIRM saves its active save memory to NAND on exit, this is then immediately picked up by NATIVE_FIRM on reboot by checking [[CONFIG_Registers#CFG_BOOTENV|CFG_BOOTENV]]. From there, this is verified and copied out to SD. The savegame format is as follows:
+
{| class="wikitable" border="1"
+
|-
+
! START
+
! SIZE
+
! DESCRIPTION
+
|-
+
| 0x0
+
| 0x4
+
| Magic ('.SAV')
+
|-
+
| 0x4
+
| 0xC
+
| Always 0xFF
+
|-
+
| 0x10
+
| 0x10
+
| AES-MAC of the SHA256 hash of 0x30..0x200 + the entire save itself, keyslot 0x24, keyY from process9 .rodata
+
|-
+
| 0x20
+
| 0x10
+
| Always 0xFF
+
|-
+
|-
+
| 0x30
+
| 0x40
+
| Always 0x1?
+
|-
+
| 0x34
+
| 0x4
+
| ? (observed 0x1, may change though)
+
|-
+
| 0x38
+
| 0x8
+
| AGB TitleID
+
|-
+
| 0x40
+
| 0x10
+
| eMMC CID from the console the save was made on (verified on load)