summaryrefslogtreecommitdiff
path: root/engine/menus
diff options
context:
space:
mode:
authorvulcandth <vulcandth@gmail.com>2022-03-26 21:05:06 -0500
committerGitHub <noreply@github.com>2022-03-26 22:05:06 -0400
commitfbaa5c9d4b48c000a52860a8392fc423c4e312f9 (patch)
tree80c5d8b0458ab6a2c2f1995ed0addd1f6cb5570f /engine/menus
parenta178c57f021692e442febfff4e592a9be8687a33 (diff)
Build the Virtual Console patch with `make yellow_vc` (#80)
Diffstat (limited to 'engine/menus')
-rw-r--r--engine/menus/link_menu.asm2
-rw-r--r--engine/menus/pokedex.asm6
-rw-r--r--engine/menus/save.asm43
3 files changed, 31 insertions, 20 deletions
diff --git a/engine/menus/link_menu.asm b/engine/menus/link_menu.asm
index 2f2db573..6d9021e4 100644
--- a/engine/menus/link_menu.asm
+++ b/engine/menus/link_menu.asm
@@ -794,9 +794,11 @@ LinkMenu:
call Delay3
callfar CloseLinkConnection
ld hl, ColosseumCanceledText
+ vc_hook Network_STOP
call PrintText
ld hl, wd72e
res 6, [hl]
+ vc_hook Network_END
ret
.asm_f5963
diff --git a/engine/menus/pokedex.asm b/engine/menus/pokedex.asm
index 7b1a204a..d0e8cf2b 100644
--- a/engine/menus/pokedex.asm
+++ b/engine/menus/pokedex.asm
@@ -111,7 +111,13 @@ HandlePokedexSideMenu:
dec a
jr z, .choseArea
dec a
+ vc_patch disable_print
+IF DEF (_YELLOW_VC)
+ jr z, .handleMenuInput
+ELSE
jr z, .chosePrint
+ENDC
+ vc_patch_end
.choseQuit
ld b, 1
.exitSideMenu
diff --git a/engine/menus/save.asm b/engine/menus/save.asm
index 55ae9e47..a623ee1a 100644
--- a/engine/menus/save.asm
+++ b/engine/menus/save.asm
@@ -35,20 +35,23 @@ LoadSAV0:
call EnableSRAMAndLatchClockData
ld a, $1
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
@@ -80,11 +83,11 @@ LoadSAV1:
call EnableSRAMAndLatchClockData
ld a, $1
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
@@ -98,11 +101,11 @@ LoadSAV2:
call EnableSRAMAndLatchClockData
ld a, $1
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
@@ -213,8 +216,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
call DisableSRAMAndPrepareClockData
@@ -229,8 +232,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
call DisableSRAMAndPrepareClockData
@@ -255,8 +258,8 @@ SaveSAVtoSRAM2:
inc de
ld a, [hl]
ld [de], a
- ld hl, sPlayerName
- ld bc, sMainDataCheckSum - sPlayerName
+ ld hl, sGameData
+ ld bc, sGameDataEnd - sGameData
call SAVCheckSum
ld [sMainDataCheckSum], a
call DisableSRAMAndPrepareClockData
@@ -584,8 +587,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]