diff options
Diffstat (limited to 'engine/menus')
-rw-r--r-- | engine/menus/main_menu.asm | 2 | ||||
-rw-r--r-- | engine/menus/save.asm | 43 |
2 files changed, 25 insertions, 20 deletions
diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm index 7e4cc9be..0708c0ce 100644 --- a/engine/menus/main_menu.asm +++ b/engine/menus/main_menu.asm @@ -284,9 +284,11 @@ LinkMenu: .choseCancel xor a ld [wMenuJoypadPollCount], a + vc_hook Network_STOP call Delay3 call CloseLinkConnection ld hl, LinkCanceledText + vc_hook Network_END call PrintText ld hl, wd72e res 6, [hl] diff --git a/engine/menus/save.asm b/engine/menus/save.asm index 83a5ca9b..fdf69765 100644 --- a/engine/menus/save.asm +++ b/engine/menus/save.asm @@ -37,20 +37,23 @@ LoadSAV0: ld a, $1 ld [MBC1SRamBankingMode], a ld [MBC1SRamBank], a - ld hl, sPlayerName ; hero name located in SRAM - ld bc, sMainDataCheckSum - sPlayerName ; but here checks the full SAV +; This vc_hook does not have to be in any particular location. +; It is defined here because it refers to the same labels as the two lines below. + vc_hook SaveLimit + ld hl, sGameData + ld bc, sGameDataEnd - sGameData call SAVCheckSum ld c, a - ld a, [sMainDataCheckSum] ; SAV's checksum + ld a, [sMainDataCheckSum] cp c jp z, .checkSumsMatched ; If the computed checksum didn't match the saved on, try again. - ld hl, sPlayerName - ld bc, sMainDataCheckSum - sPlayerName + ld hl, sGameData + ld bc, sGameDataEnd - sGameData call SAVCheckSum ld c, a - ld a, [sMainDataCheckSum] ; SAV's checksum + ld a, [sMainDataCheckSum] cp c jp nz, SAVBadCheckSum @@ -84,11 +87,11 @@ LoadSAV1: ld a, $1 ld [MBC1SRamBankingMode], a ld [MBC1SRamBank], a - ld hl, sPlayerName ; hero name located in SRAM - ld bc, sMainDataCheckSum - sPlayerName ; but here checks the full SAV + ld hl, sGameData + ld bc, sGameDataEnd - sGameData call SAVCheckSum ld c, a - ld a, [sMainDataCheckSum] ; SAV's checksum + ld a, [sMainDataCheckSum] cp c jr nz, SAVBadCheckSum ld hl, sCurBoxData @@ -104,11 +107,11 @@ LoadSAV2: ld a, $1 ld [MBC1SRamBankingMode], a ld [MBC1SRamBank], a - ld hl, sPlayerName ; hero name located in SRAM - ld bc, sMainDataCheckSum - sPlayerName ; but here checks the full SAV + ld hl, sGameData + ld bc, sGameDataEnd - sGameData call SAVCheckSum ld c, a - ld a, [sMainDataCheckSum] ; SAV's checksum + ld a, [sMainDataCheckSum] cp c jp nz, SAVBadCheckSum ld hl, sPartyData @@ -219,8 +222,8 @@ SaveSAVtoSRAM0: call CopyData ldh a, [hTileAnimations] ld [sTileAnimations], a - ld hl, sPlayerName - ld bc, sMainDataCheckSum - sPlayerName + ld hl, sGameData + ld bc, sGameDataEnd - sGameData call SAVCheckSum ld [sMainDataCheckSum], a xor a @@ -239,8 +242,8 @@ SaveSAVtoSRAM1: ld de, sCurBoxData ld bc, wBoxDataEnd - wBoxDataStart call CopyData - ld hl, sPlayerName - ld bc, sMainDataCheckSum - sPlayerName + ld hl, sGameData + ld bc, sGameDataEnd - sGameData call SAVCheckSum ld [sMainDataCheckSum], a xor a @@ -262,8 +265,8 @@ SaveSAVtoSRAM2: ld de, sMainData ld bc, wPokedexSeenEnd - wPokedexOwned call CopyData - ld hl, sPlayerName - ld bc, sMainDataCheckSum - sPlayerName + ld hl, sGameData + ld bc, sGameDataEnd - sGameData call SAVCheckSum ld [sMainDataCheckSum], a xor a @@ -612,8 +615,8 @@ SAVCheckRandomID: ld a, [sPlayerName] and a jr z, .next - ld hl, sPlayerName - ld bc, sMainDataCheckSum - sPlayerName + ld hl, sGameData + ld bc, sGameDataEnd - sGameData call SAVCheckSum ld c, a ld a, [sMainDataCheckSum] |