summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/battle/checkbattlescene.asm2
-rw-r--r--engine/battle/core.asm2
-rwxr-xr-xengine/mystery_gift.asm4
-rwxr-xr-xengine/rtc.asm8
-rw-r--r--engine/save.asm29
5 files changed, 28 insertions, 17 deletions
diff --git a/engine/battle/checkbattlescene.asm b/engine/battle/checkbattlescene.asm
index 24d06b8c9..a33cc62e3 100644
--- a/engine/battle/checkbattlescene.asm
+++ b/engine/battle/checkbattlescene.asm
@@ -21,7 +21,7 @@ CheckBattleScene: ; 4ea44
ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
- ld a, [$a60c]
+ ld a, [$a60c] ; address of MBC30 bank
ld c, a
call CloseSRAM
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index 7649eba84..6d4401946 100644
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -234,7 +234,7 @@ BattleTurn: ; 3c12f
MobileFn_3c1bf: mobile
ld a, 5 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
- ld hl, $a89b ; s5_a89b
+ ld hl, $a89b ; address of MBC30 bank
inc [hl]
jr nz, .finish
dec hl
diff --git a/engine/mystery_gift.asm b/engine/mystery_gift.asm
index 9a8c41f91..ec5cdecab 100755
--- a/engine/mystery_gift.asm
+++ b/engine/mystery_gift.asm
@@ -1563,10 +1563,10 @@ Function10578c: ; 10578c (41:578c)
inc de
ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
- ld hl, $a603
+ ld hl, $a603 ; address of MBC30 bank
ld bc, $8
call CopyBytes
- ld hl, $a007
+ ld hl, $a007 ; address of MBC30 bank
ld bc, $c
call CopyBytes
call CloseSRAM
diff --git a/engine/rtc.asm b/engine/rtc.asm
index bed0fcda4..b44db1c7c 100755
--- a/engine/rtc.asm
+++ b/engine/rtc.asm
@@ -148,12 +148,12 @@ Function140ae: ; 140ae
; mobile
ld a, 5 ; MBC30 bank used by JP Crystal; inaccessible by MBC3
call GetSRAMBank
- ld a, [$aa8c]
+ ld a, [$aa8c] ; address of MBC30 bank
inc a
- ld [$aa8c], a
- ld a, [$b2fa]
+ ld [$aa8c], a ; address of MBC30 bank
+ ld a, [$b2fa] ; address of MBC30 bank
inc a
- ld [$b2fa], a
+ ld [$b2fa], a ; address of MBC30 bank
call CloseSRAM
ret
diff --git a/engine/save.asm b/engine/save.asm
index a869d903e..12e5964b9 100644
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -421,7 +421,7 @@ Function14d18: ; 14d18
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
@@ -456,7 +456,7 @@ Function14d6c: ; 14d6c
; XXX
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,7 +464,7 @@ Function14d6c: ; 14d6c
.ok
ld a, b
- ld [$a60b], a
+ ld [$a60b], a ; address of MBC30 bank
call CloseSRAM
ret
; 14d83
@@ -474,8 +474,8 @@ 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
@@ -485,7 +485,7 @@ 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
@@ -873,6 +873,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 +885,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
@@ -897,8 +906,10 @@ _LoadData: ; 150b9
ld de, wCrystalData
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