From d6f20ae74619fa4b3071867016fa7ae7253df98f Mon Sep 17 00:00:00 2001 From: Adelaide Walter Date: Mon, 8 Jan 2018 17:13:37 -0500 Subject: Use BANK for hardcoded SRAM banks (except for vestigial refs to JP's banks 4-7) --- engine/save.asm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'engine/save.asm') diff --git a/engine/save.asm b/engine/save.asm index af24b4d2f..a869d903e 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -418,7 +418,7 @@ EraseHallOfFame: ; 14d06 Function14d18: ; 14d18 ; XXX ; 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 @@ -454,7 +454,7 @@ SaveData: ; 14d68 Function14d6c: ; 14d6c ; XXX - ld a, $4 + ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3 call GetSRAMBank ld a, [$a60b] ld b, $0 @@ -471,7 +471,7 @@ Function14d6c: ; 14d6c Function14d83: ; 14d83 ; XXX - ld a, $4 + ld a, 4 ; MBC30 bank used by JP Crystal; inaccessible by MBC3 call GetSRAMBank xor a ld [$a60c], a @@ -482,7 +482,7 @@ Function14d83: ; 14d83 Function14d93: ; 14d93 ; XXX - ld a, $7 + ld a, 7 ; MBC30 bank used by JP Crystal; inaccessible by MBC3 call GetSRAMBank xor a ld [$a000], a -- cgit v1.2.3 From 94f32db7bc4a5e4e4d8837d3110d0876146783af Mon Sep 17 00:00:00 2001 From: Adelaide Walter Date: Mon, 8 Jan 2018 22:48:58 -0500 Subject: Document hardcoded SRAM addresses. --- engine/save.asm | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'engine/save.asm') 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 -- cgit v1.2.3