summaryrefslogtreecommitdiff
path: root/engine/save.asm
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2018-01-22 01:06:48 -0500
committerGitHub <noreply@github.com>2018-01-22 01:06:48 -0500
commitc60f1331fef22b886adf3472d2b4f348832cfaf7 (patch)
tree5a471fad61e406f5b3ca1aba67ced0186de01c52 /engine/save.asm
parentf27f79488a460f0a89670f3611e1e9e175baf5d6 (diff)
parent7fba864883732ccecb1221ae7ff97492d112362a (diff)
Merge pull request #456 from Rangi42/master
OAM data documentation; move more content into data/; move palettes into gfx/; more code+script constants; consistent map naming
Diffstat (limited to 'engine/save.asm')
-rw-r--r--engine/save.asm71
1 files changed, 39 insertions, 32 deletions
diff --git a/engine/save.asm b/engine/save.asm
index af24b4d2f..4291754e9 100644
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -415,13 +415,12 @@ EraseHallOfFame: ; 14d06
jp CloseSRAM
; 14d18
-Function14d18: ; 14d18
-; XXX
+Unreferenced_Function14d18: ; 14d18
; copy .Data to SRA4:a007
- ld a, $4
+ ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
ld hl, .Data
- ld de, $a007
+ ld de, $a007 ; address of MBC30 bank
ld bc, .DataEnd - .Data
call CopyBytes
jp CloseSRAM
@@ -452,11 +451,10 @@ SaveData: ; 14d68
ret
; 14d6c
-Function14d6c: ; 14d6c
-; XXX
- ld a, $4
+Unreferenced_Function14d6c: ; 14d6c
+ ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
- ld a, [$a60b]
+ ld a, [$a60b] ; address of MBC30 bank
ld b, $0
and a
jr z, .ok
@@ -464,28 +462,26 @@ Function14d6c: ; 14d6c
.ok
ld a, b
- ld [$a60b], a
+ ld [$a60b], a ; address of MBC30 bank
call CloseSRAM
ret
; 14d83
-Function14d83: ; 14d83
-; XXX
- ld a, $4
+Unreferenced_Function14d83: ; 14d83
+ ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
xor a
- ld [$a60c], a
- ld [$a60d], a
+ ld [$a60c], a ; address of MBC30 bank
+ ld [$a60d], a ; address of MBC30 bank
call CloseSRAM
ret
; 14d93
-Function14d93: ; 14d93
-; XXX
- ld a, $7
+Unreferenced_Function14d93: ; 14d93
+ ld a, 7 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
xor a
- ld [$a000], a
+ ld [$a000], a ; address of MBC30 bank
call CloseSRAM
ret
; 14da0
@@ -529,9 +525,9 @@ SavePlayerData: ; 14dd7
ld de, sPlayerData
ld bc, wPlayerDataEnd - wPlayerData
call CopyBytes
- ld hl, wMapData
- ld de, sMapData
- ld bc, wMapDataEnd - wMapData
+ ld hl, wCurrMapData
+ ld de, sCurrMapData
+ ld bc, wCurrMapDataEnd - wCurrMapData
call CopyBytes
jp CloseSRAM
; 14df7
@@ -596,9 +592,9 @@ SaveBackupPlayerData: ; 14e55
ld de, sBackupPlayerData
ld bc, wPlayerDataEnd - wPlayerData
call CopyBytes
- ld hl, wMapData
- ld de, sBackupMapData
- ld bc, wMapDataEnd - wMapData
+ ld hl, wCurrMapData
+ ld de, sBackupCurrMapData
+ ld bc, wCurrMapDataEnd - wCurrMapData
call CopyBytes
call CloseSRAM
ret
@@ -781,9 +777,9 @@ LoadPlayerData: ; 14fd7 (5:4fd7)
ld de, wPlayerData
ld bc, wPlayerDataEnd - wPlayerData
call CopyBytes
- ld hl, sMapData
- ld de, wMapData
- ld bc, wMapDataEnd - wMapData
+ ld hl, sCurrMapData
+ ld de, wCurrMapData
+ ld bc, wCurrMapDataEnd - wCurrMapData
call CopyBytes
call CloseSRAM
ld a, BANK(sBattleTowerChallengeState)
@@ -837,9 +833,9 @@ LoadBackupPlayerData: ; 15046 (5:5046)
ld de, wPlayerData
ld bc, wPlayerDataEnd - wPlayerData
call CopyBytes
- ld hl, sBackupMapData
- ld de, wMapData
- ld bc, wMapDataEnd - wMapData
+ ld hl, sBackupCurrMapData
+ ld de, wCurrMapData
+ ld bc, wCurrMapDataEnd - wCurrMapData
call CopyBytes
call CloseSRAM
ret
@@ -873,6 +869,11 @@ VerifyBackupChecksum: ; 1507c (5:507c)
_SaveData: ; 1509a
+ ; This is called within two scenarios:
+ ; a) ErasePreviousSave (the process of erasing the save from a previous game file)
+ ; b) unused mobile functionality
+ ; It is not part of a regular save.
+
ld a, BANK(sCrystalData)
call GetSRAMBank
ld hl, wCrystalData
@@ -880,7 +881,11 @@ _SaveData: ; 1509a
ld bc, wCrystalDataEnd - wCrystalData
call CopyBytes
- ; XXX SRAM bank 7
+ ; This block originally had some mobile functionality, but since we're still in
+ ; BANK(sCrystalData), it instead overwrites the sixteen EventFlags starting at 1:a603 with
+ ; garbage from wd479. This isn't an issue, since ErasePreviousSave is followed by a regular
+ ; save that unwrites the garbage.
+
ld hl, wd479
ld a, [hli]
ld [$a60e + 0], a
@@ -898,7 +903,9 @@ _LoadData: ; 150b9
ld bc, wCrystalDataEnd - wCrystalData
call CopyBytes
- ; XXX SRAM bank 7
+ ; This block originally had some mobile functionality to mirror _SaveData above, but instead it
+ ; (harmlessly) writes the aforementioned EventFlags to the unused wd479.
+
ld hl, wd479
ld a, [$a60e + 0]
ld [hli], a