2014-05-22 22:13:20 +00:00
|
|
|
LoadSAV: ; 735e8 (1c:75e8)
|
|
|
|
;(if carry -> write
|
|
|
|
;"the file data is destroyed")
|
|
|
|
call ClearScreen
|
|
|
|
call LoadFontTilePatterns
|
|
|
|
call LoadTextBoxTilePatterns
|
|
|
|
call LoadSAVCheckSum
|
|
|
|
jr c, .badsum
|
|
|
|
call LoadSAVCheckSum1
|
|
|
|
jr c, .badsum
|
|
|
|
call LoadSAVCheckSum2
|
|
|
|
jr c, .badsum
|
|
|
|
ld a, $2 ; good checksum
|
|
|
|
jr .goodsum
|
|
|
|
.badsum
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wd730
|
2014-05-22 22:13:20 +00:00
|
|
|
push hl
|
|
|
|
set 6, [hl]
|
|
|
|
ld hl, FileDataDestroyedText
|
|
|
|
call PrintText
|
|
|
|
ld c, $64
|
|
|
|
call DelayFrames
|
|
|
|
pop hl
|
|
|
|
res 6, [hl]
|
|
|
|
ld a, $1 ; bad checksum
|
|
|
|
.goodsum
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wd088], a ; checksum flag
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
FileDataDestroyedText: ; 7361e (1c:761e)
|
|
|
|
TX_FAR _FileDataDestroyedText
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
LoadSAVCheckSum: ; 73623 (1c:7623)
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamBank], a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDPLAYERNAME ; hero name located in SRAM
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $f8b ; but here checks the full SAV
|
|
|
|
call SAVCheckSum
|
|
|
|
ld c, a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
|
2014-05-22 22:13:20 +00:00
|
|
|
cp c
|
|
|
|
jp z, .Func_73652
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDPLAYERNAME
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $f8b
|
|
|
|
call SAVCheckSum
|
|
|
|
ld c, a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
|
2014-05-22 22:13:20 +00:00
|
|
|
cp c
|
|
|
|
jp nz, SAVBadCheckSum
|
|
|
|
|
|
|
|
.Func_73652 ; 73652 (1c:7652)
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDPLAYERNAME
|
2014-06-14 11:12:40 +00:00
|
|
|
ld de, wPlayerName ; wd158
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $b
|
|
|
|
call CopyData
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDMAINDATA
|
2014-09-14 18:29:18 +00:00
|
|
|
ld de, wPokedexOwned
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $789
|
|
|
|
call CopyData
|
2014-09-14 18:29:18 +00:00
|
|
|
ld hl, W_CURMAPTILESET
|
2014-05-22 22:13:20 +00:00
|
|
|
set 7, [hl]
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDSPRITEDATA
|
2014-05-22 22:13:20 +00:00
|
|
|
ld de, wSpriteStateData1
|
|
|
|
ld bc, $200
|
|
|
|
call CopyData
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDhTilesetType]
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [hTilesetType], a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDCURBOXDATA
|
2014-09-14 18:29:18 +00:00
|
|
|
ld de, W_NUMINBOX
|
|
|
|
ld bc, wBoxMonNicksEnd - W_NUMINBOX
|
2014-05-22 22:13:20 +00:00
|
|
|
call CopyData
|
|
|
|
and a
|
|
|
|
jp SAVGoodChecksum
|
|
|
|
|
|
|
|
LoadSAVCheckSum1: ; 73690 (1c:7690)
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamBank], a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDPLAYERNAME ; hero name located in SRAM
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $f8b ; but here checks the full SAV
|
|
|
|
call SAVCheckSum
|
|
|
|
ld c, a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
|
2014-05-22 22:13:20 +00:00
|
|
|
cp c
|
|
|
|
jr nz, SAVBadCheckSum
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDCURBOXDATA
|
2014-09-14 18:29:18 +00:00
|
|
|
ld de, W_NUMINBOX
|
|
|
|
ld bc, wBoxMonNicksEnd - W_NUMINBOX
|
2014-05-22 22:13:20 +00:00
|
|
|
call CopyData
|
|
|
|
and a
|
|
|
|
jp SAVGoodChecksum
|
|
|
|
|
|
|
|
LoadSAVCheckSum2: ; 736bd (1c:76bd)
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamBank], a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDPLAYERNAME ; hero name located in SRAM
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $f8b ; but here checks the full SAV
|
|
|
|
call SAVCheckSum
|
|
|
|
ld c, a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
|
2014-05-22 22:13:20 +00:00
|
|
|
cp c
|
|
|
|
jp nz, SAVBadCheckSum
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDPARTYDATA
|
2014-06-14 11:12:40 +00:00
|
|
|
ld de, wPartyCount ; wPartyCount
|
2015-04-26 17:15:12 +00:00
|
|
|
ld bc, wPokedexOwned - wPartyCount
|
2014-05-22 22:13:20 +00:00
|
|
|
call CopyData
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDMAINDATA
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wPokedexOwned ; wPokedexOwned
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, wPokedexSeenEnd - wPokedexOwned
|
|
|
|
call CopyData
|
|
|
|
and a
|
|
|
|
jp SAVGoodChecksum
|
|
|
|
|
|
|
|
SAVBadCheckSum: ; 736f7 (1c:76f7)
|
|
|
|
scf
|
|
|
|
|
|
|
|
SAVGoodChecksum: ; 736f8 (1c:76f8)
|
|
|
|
ld a, $0
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
Func_73701: ; 0x73701
|
|
|
|
call LoadSAVCheckSum
|
|
|
|
call LoadSAVCheckSum1
|
|
|
|
jp LoadSAVCheckSum2
|
|
|
|
|
|
|
|
SaveSAV: ;$770a
|
|
|
|
callba PrintSaveScreenText
|
|
|
|
ld hl,WouldYouLikeToSaveText
|
|
|
|
call SaveSAVConfirm
|
|
|
|
and a ;|0 = Yes|1 = No|
|
|
|
|
ret nz
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a,[wd088]
|
2014-05-22 22:13:20 +00:00
|
|
|
dec a
|
|
|
|
jr z,.save
|
|
|
|
call SAVCheckRandomID
|
|
|
|
jr z,.save
|
|
|
|
ld hl,OlderFileWillBeErasedText
|
|
|
|
call SaveSAVConfirm
|
|
|
|
and a
|
|
|
|
ret nz
|
|
|
|
.save ;$772d
|
|
|
|
call SaveSAVtoSRAM ;$7848
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 1, 13
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc,$0412
|
|
|
|
call ClearScreenArea ; clear area 4x12 starting at 13,1
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 1, 14
|
2014-05-22 22:13:20 +00:00
|
|
|
ld de,NowSavingString
|
|
|
|
call PlaceString
|
|
|
|
ld c,$78
|
|
|
|
call DelayFrames
|
|
|
|
ld hl,GameSavedText
|
|
|
|
call PrintText
|
|
|
|
ld a, (SFX_02_5d - SFX_Headers_02) / 3 ;sound for saved game
|
|
|
|
call PlaySoundWaitForCurrent
|
|
|
|
call WaitForSoundToFinish
|
|
|
|
ld c,$1e
|
|
|
|
jp DelayFrames
|
|
|
|
|
|
|
|
NowSavingString:
|
|
|
|
db "Now saving...@"
|
|
|
|
|
|
|
|
SaveSAVConfirm: ; 73768 (1c:7768)
|
|
|
|
call PrintText
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 0, 7
|
2015-02-07 20:27:36 +00:00
|
|
|
ld bc,$0801
|
|
|
|
ld a,TWO_OPTION_MENU
|
2015-02-07 10:43:08 +00:00
|
|
|
ld [wTextBoxID],a
|
2015-02-07 20:27:36 +00:00
|
|
|
call DisplayTextBoxID ; yes/no menu
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a,[wCurrentMenuItem]
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
WouldYouLikeToSaveText: ; 0x7377d
|
|
|
|
TX_FAR _WouldYouLikeToSaveText
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
GameSavedText: ; 73782 (1c:7782)
|
|
|
|
TX_FAR _GameSavedText
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
OlderFileWillBeErasedText: ; 73787 (1c:7787)
|
|
|
|
TX_FAR _OlderFileWillBeErasedText
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
SaveSAVtoSRAM0: ; 7378c (1c:778c)
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamBank], a
|
|
|
|
ld hl, wPlayerName
|
2015-04-26 17:15:12 +00:00
|
|
|
ld de, S_SAVEDPLAYERNAME
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $b
|
|
|
|
call CopyData
|
2014-09-14 18:29:18 +00:00
|
|
|
ld hl, wPokedexOwned
|
2015-04-26 17:15:12 +00:00
|
|
|
ld de, S_SAVEDMAINDATA
|
2014-09-14 18:29:18 +00:00
|
|
|
ld bc, W_NUMINBOX - wPokedexOwned
|
2014-05-22 22:13:20 +00:00
|
|
|
call CopyData
|
2014-09-14 18:29:18 +00:00
|
|
|
ld hl, wSpriteStateData1
|
2015-04-26 17:15:12 +00:00
|
|
|
ld de, S_SAVEDSPRITEDATA
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $200
|
|
|
|
call CopyData
|
2014-09-14 18:29:18 +00:00
|
|
|
ld hl, W_NUMINBOX
|
2015-04-26 17:15:12 +00:00
|
|
|
ld de, S_SAVEDCURBOXDATA
|
2014-09-14 18:29:18 +00:00
|
|
|
ld bc, wBoxMonNicksEnd - W_NUMINBOX
|
2014-05-22 22:13:20 +00:00
|
|
|
call CopyData
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, [hTilesetType]
|
2015-04-26 17:15:12 +00:00
|
|
|
ld [S_SAVEDhTilesetType], a
|
|
|
|
ld hl, S_SAVEDPLAYERNAME
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $f8b
|
|
|
|
call SAVCheckSum
|
2015-04-26 17:15:12 +00:00
|
|
|
ld [S_SAVEDMAINDATACHECKSUM], a
|
2014-05-22 22:13:20 +00:00
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
SaveSAVtoSRAM1: ; 737e2 (1c:77e2)
|
|
|
|
; stored pokémon
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamBank], a
|
|
|
|
ld hl, W_NUMINBOX
|
2015-04-26 17:15:12 +00:00
|
|
|
ld de, S_SAVEDCURBOXDATA
|
2014-09-14 18:29:18 +00:00
|
|
|
ld bc, wBoxMonNicksEnd - W_NUMINBOX
|
2014-05-22 22:13:20 +00:00
|
|
|
call CopyData
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDPLAYERNAME
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $f8b
|
|
|
|
call SAVCheckSum
|
2015-04-26 17:15:12 +00:00
|
|
|
ld [S_SAVEDMAINDATACHECKSUM], a
|
2014-05-22 22:13:20 +00:00
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
SaveSAVtoSRAM2: ; 7380f (1c:780f)
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamBank], a
|
|
|
|
ld hl, wPartyCount
|
2015-04-26 17:15:12 +00:00
|
|
|
ld de, S_SAVEDPARTYDATA
|
2014-09-14 18:29:18 +00:00
|
|
|
ld bc, wPokedexOwned - wPartyCount
|
2014-05-22 22:13:20 +00:00
|
|
|
call CopyData
|
|
|
|
ld hl, wPokedexOwned ; pokédex only
|
2015-04-26 17:15:12 +00:00
|
|
|
ld de, S_SAVEDMAINDATA
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, wPokedexSeenEnd - wPokedexOwned
|
|
|
|
call CopyData
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDPLAYERNAME
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $f8b
|
|
|
|
call SAVCheckSum
|
2015-04-26 17:15:12 +00:00
|
|
|
ld [S_SAVEDMAINDATACHECKSUM], a
|
2014-05-22 22:13:20 +00:00
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
SaveSAVtoSRAM: ; 73848 (1c:7848)
|
|
|
|
ld a, $2
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wd088], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call SaveSAVtoSRAM0
|
|
|
|
call SaveSAVtoSRAM1
|
|
|
|
jp SaveSAVtoSRAM2
|
|
|
|
|
|
|
|
SAVCheckSum: ; 73856 (1c:7856)
|
|
|
|
;Check Sum (result[1 byte] is complemented)
|
|
|
|
ld d, $0
|
|
|
|
.loop
|
|
|
|
ld a, [hli]
|
|
|
|
add d
|
|
|
|
ld d, a
|
|
|
|
dec bc
|
|
|
|
ld a, b
|
|
|
|
or c
|
|
|
|
jr nz, .loop
|
|
|
|
ld a, d
|
|
|
|
cpl
|
|
|
|
ret
|
|
|
|
|
|
|
|
Func_73863: ; 73863 (1c:7863)
|
|
|
|
ld hl, $a000
|
2015-04-26 17:15:12 +00:00
|
|
|
ld de, S_SAVEDBOXESCHECKSUM2 ; $ba4d
|
2014-05-22 22:13:20 +00:00
|
|
|
ld b, $6
|
|
|
|
.asm_7386b
|
|
|
|
push bc
|
|
|
|
push de
|
|
|
|
ld bc, $462
|
|
|
|
call SAVCheckSum
|
|
|
|
pop de
|
|
|
|
ld [de], a
|
|
|
|
inc de
|
|
|
|
pop bc
|
|
|
|
dec b
|
|
|
|
jr nz, .asm_7386b
|
|
|
|
ret
|
|
|
|
|
|
|
|
Func_7387b: ; 7387b (1c:787b)
|
|
|
|
ld hl, PointerTable_73895 ; $7895
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wd5a0]
|
2014-05-22 22:13:20 +00:00
|
|
|
and $7f
|
|
|
|
cp $6
|
|
|
|
ld b, $2
|
|
|
|
jr c, .asm_7388c
|
|
|
|
inc b
|
|
|
|
sub $6
|
|
|
|
.asm_7388c
|
|
|
|
ld e, a
|
|
|
|
ld d, $0
|
|
|
|
add hl, de
|
|
|
|
add hl, de
|
|
|
|
ld a, [hli]
|
|
|
|
ld h, [hl]
|
|
|
|
ld l, a
|
|
|
|
ret
|
|
|
|
|
|
|
|
PointerTable_73895: ; 73895 (1c:7895)
|
2015-04-26 15:56:15 +00:00
|
|
|
dw S_SAVEDBOX1
|
|
|
|
dw S_SAVEDBOX2
|
|
|
|
dw S_SAVEDBOX3
|
|
|
|
dw S_SAVEDBOX4
|
|
|
|
dw S_SAVEDBOX5
|
|
|
|
dw S_SAVEDBOX6
|
2014-05-22 22:13:20 +00:00
|
|
|
|
2014-09-14 18:29:18 +00:00
|
|
|
ChangeBox:: ; 738a1 (1c:78a1)
|
2014-05-22 22:13:20 +00:00
|
|
|
ld hl, WhenYouChangeBoxText
|
|
|
|
call PrintText
|
|
|
|
call YesNoChoice
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, [wCurrentMenuItem]
|
2014-05-22 22:13:20 +00:00
|
|
|
and a
|
2014-09-14 18:29:18 +00:00
|
|
|
ret nz ; return if No was chosen
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wd5a0
|
2014-05-22 22:13:20 +00:00
|
|
|
bit 7, [hl]
|
|
|
|
call z, Func_73a29
|
|
|
|
call Func_7393f
|
|
|
|
call UpdateSprites
|
2015-02-08 00:24:16 +00:00
|
|
|
ld hl, hFlags_0xFFF6
|
2014-05-22 22:13:20 +00:00
|
|
|
set 1, [hl]
|
|
|
|
call HandleMenuInput
|
2015-02-08 00:24:16 +00:00
|
|
|
ld hl, hFlags_0xFFF6
|
2014-05-22 22:13:20 +00:00
|
|
|
res 1, [hl]
|
|
|
|
bit 1, a
|
|
|
|
ret nz
|
|
|
|
call Func_7387b
|
|
|
|
ld e, l
|
|
|
|
ld d, h
|
2014-09-14 18:29:18 +00:00
|
|
|
ld hl, W_NUMINBOX
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_7390e
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, [wCurrentMenuItem]
|
2014-05-22 22:13:20 +00:00
|
|
|
set 7, a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wd5a0], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_7387b
|
2014-09-14 18:29:18 +00:00
|
|
|
ld de, W_NUMINBOX
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_7390e
|
2014-09-14 18:29:18 +00:00
|
|
|
ld hl, W_MAPTEXTPTR
|
|
|
|
ld de, wChangeBoxSavedMapTextPointer
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, [hli]
|
|
|
|
ld [de], a
|
|
|
|
inc de
|
|
|
|
ld a, [hl]
|
|
|
|
ld [de], a
|
2014-09-14 18:29:18 +00:00
|
|
|
call RestoreMapTextPointer
|
2014-05-22 22:13:20 +00:00
|
|
|
call SaveSAVtoSRAM
|
2014-09-14 18:29:18 +00:00
|
|
|
ld hl, wChangeBoxSavedMapTextPointer
|
|
|
|
call SetMapTextPointer
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, (SFX_02_5d - SFX_Headers_02) / 3
|
|
|
|
call PlaySoundWaitForCurrent
|
|
|
|
call WaitForSoundToFinish
|
|
|
|
ret
|
|
|
|
|
|
|
|
WhenYouChangeBoxText: ; 73909 (1c:7909)
|
|
|
|
TX_FAR _WhenYouChangeBoxText
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
Func_7390e: ; 7390e (1c:790e)
|
|
|
|
push hl
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, b
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBank], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $462
|
|
|
|
call CopyData
|
|
|
|
pop hl
|
|
|
|
xor a
|
|
|
|
ld [hli], a
|
|
|
|
dec a
|
|
|
|
ld [hl], a
|
|
|
|
ld hl, $a000
|
|
|
|
ld bc, $1a4c
|
|
|
|
call SAVCheckSum
|
2015-04-26 17:15:12 +00:00
|
|
|
ld [S_SAVEDBOXESCHECKSUM], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73863
|
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
Func_7393f: ; 7393f (1c:793f)
|
|
|
|
xor a
|
|
|
|
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
|
|
|
ld a, $3
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $b
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wMaxMenuItem], a ; wMaxMenuItem
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wTopMenuItemY], a ; wTopMenuItemY
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $c
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wTopMenuItemX], a ; wTopMenuItemX
|
2014-05-22 22:13:20 +00:00
|
|
|
xor a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wcc37], a
|
|
|
|
ld a, [wd5a0]
|
2014-05-22 22:13:20 +00:00
|
|
|
and $7f
|
2014-05-26 21:04:56 +00:00
|
|
|
ld [wCurrentMenuItem], a ; wCurrentMenuItem
|
|
|
|
ld [wLastMenuItem], a ; wLastMenuItem
|
2014-05-22 22:13:20 +00:00
|
|
|
ld hl, wTileMap
|
|
|
|
ld b, $2
|
|
|
|
ld c, $9
|
|
|
|
call TextBoxBorder
|
|
|
|
ld hl, ChooseABoxText
|
|
|
|
call PrintText
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 11, 0
|
2014-05-22 22:13:20 +00:00
|
|
|
ld b, $c
|
|
|
|
ld c, $7
|
|
|
|
call TextBoxBorder
|
2015-02-08 00:24:16 +00:00
|
|
|
ld hl, hFlags_0xFFF6
|
2014-05-22 22:13:20 +00:00
|
|
|
set 2, [hl]
|
|
|
|
ld de, BoxNames ; $79d9
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 13, 1
|
2014-05-22 22:13:20 +00:00
|
|
|
call PlaceString
|
2015-02-08 00:24:16 +00:00
|
|
|
ld hl, hFlags_0xFFF6
|
2014-05-22 22:13:20 +00:00
|
|
|
res 2, [hl]
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wd5a0]
|
2014-05-22 22:13:20 +00:00
|
|
|
and $7f
|
2014-08-23 06:17:47 +00:00
|
|
|
cp 9
|
2014-05-22 22:13:20 +00:00
|
|
|
jr c, .asm_739a6
|
2014-08-23 06:17:47 +00:00
|
|
|
sub 9
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 8, 2
|
2014-08-23 06:17:47 +00:00
|
|
|
ld [hl], "1"
|
|
|
|
add "0"
|
2014-05-22 22:13:20 +00:00
|
|
|
jr .asm_739a8
|
|
|
|
.asm_739a6
|
2014-08-23 06:17:47 +00:00
|
|
|
add "1"
|
2014-05-22 22:13:20 +00:00
|
|
|
.asm_739a8
|
2014-06-25 20:58:27 +00:00
|
|
|
Coorda 9, 2
|
|
|
|
hlCoord 1, 2
|
2014-05-22 22:13:20 +00:00
|
|
|
ld de, BoxNoText
|
|
|
|
call PlaceString
|
|
|
|
call Func_73a84
|
2014-06-25 20:58:27 +00:00
|
|
|
hlCoord 18, 1
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wWhichTrade ; wWhichTrade
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc, $14
|
|
|
|
ld a, $c
|
|
|
|
.asm_739c2
|
|
|
|
push af
|
|
|
|
ld a, [de]
|
|
|
|
and a
|
|
|
|
jr z, .asm_739c9
|
|
|
|
ld [hl], $78
|
|
|
|
.asm_739c9
|
|
|
|
add hl, bc
|
|
|
|
inc de
|
|
|
|
pop af
|
|
|
|
dec a
|
|
|
|
jr nz, .asm_739c2
|
|
|
|
ld a, $1
|
|
|
|
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
|
|
|
ret
|
|
|
|
|
|
|
|
ChooseABoxText: ; 739d4 (1c:79d4)
|
|
|
|
TX_FAR _ChooseABoxText
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
BoxNames: ; 739d9 (1c:79d9)
|
|
|
|
db "BOX 1"
|
|
|
|
next "BOX 2"
|
|
|
|
next "BOX 3"
|
|
|
|
next "BOX 4"
|
|
|
|
next "BOX 5"
|
|
|
|
next "BOX 6"
|
|
|
|
next "BOX 7"
|
|
|
|
next "BOX 8"
|
|
|
|
next "BOX 9"
|
|
|
|
next "BOX10"
|
|
|
|
next "BOX11"
|
|
|
|
next "BOX12@"
|
|
|
|
|
|
|
|
BoxNoText: ; 73a21 (1c:7a21)
|
|
|
|
db "BOX No.@"
|
|
|
|
|
|
|
|
Func_73a29: ; 73a29 (1c:7a29)
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $2
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBank], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73a4b
|
|
|
|
ld a, $3
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBank], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73a4b
|
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
Func_73a4b: ; 73a4b (1c:7a4b)
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDBOX1
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73a7f
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDBOX2
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73a7f
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDBOX3
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73a7f
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDBOX4
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73a7f
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDBOX5
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73a7f
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDBOX6
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73a7f
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl, S_SAVEDBOX1
|
|
|
|
ld bc, $6 * (S_SAVEDBOX2 - S_SAVEDBOX1) ; $1a4c
|
2014-05-22 22:13:20 +00:00
|
|
|
call SAVCheckSum
|
2015-04-26 17:15:12 +00:00
|
|
|
ld [S_SAVEDBOXESCHECKSUM], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73863
|
|
|
|
ret
|
|
|
|
|
|
|
|
Func_73a7f: ; 73a7f (1c:7a7f)
|
|
|
|
xor a
|
|
|
|
ld [hli], a
|
|
|
|
dec a
|
|
|
|
ld [hl], a
|
|
|
|
ret
|
|
|
|
|
|
|
|
Func_73a84: ; 73a84 (1c:7a84)
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wWhichTrade ; wWhichTrade
|
2014-05-22 22:13:20 +00:00
|
|
|
push hl
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $2
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBank], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73ab8
|
|
|
|
ld a, $3
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBank], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call Func_73ab8
|
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
pop hl
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wd5a0]
|
2014-05-22 22:13:20 +00:00
|
|
|
and $7f
|
|
|
|
ld c, a
|
|
|
|
ld b, $0
|
|
|
|
add hl, bc
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [W_NUMINBOX] ; wda80
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hl], a
|
|
|
|
ret
|
|
|
|
|
|
|
|
Func_73ab8: ; 73ab8 (1c:7ab8)
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDBOX1]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hli], a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDBOX2]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hli], a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDBOX3]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hli], a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDBOX4]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hli], a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDBOX5]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hli], a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a, [S_SAVEDBOX6]
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [hli], a
|
|
|
|
ret
|
|
|
|
|
|
|
|
SAVCheckRandomID: ;$7ad1
|
|
|
|
;checks if Sav file is the same by checking player's name 1st letter ($a598)
|
|
|
|
; and the two random numbers generated at game beginning
|
2014-05-26 21:04:56 +00:00
|
|
|
;(which are stored at wPlayerID)
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a,$0a
|
|
|
|
ld [$0000],a
|
|
|
|
ld a,$01
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode],a
|
|
|
|
ld [MBC1SRamBank],a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a,[S_SAVEDPLAYERNAME]
|
2014-05-22 22:13:20 +00:00
|
|
|
and a
|
|
|
|
jr z,.next
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl,S_SAVEDPLAYERNAME
|
2014-05-22 22:13:20 +00:00
|
|
|
ld bc,$0f8b
|
|
|
|
call SAVCheckSum
|
|
|
|
ld c,a
|
2015-04-26 17:15:12 +00:00
|
|
|
ld a,[S_SAVEDMAINDATACHECKSUM]
|
2014-05-22 22:13:20 +00:00
|
|
|
cp c
|
|
|
|
jr nz,.next
|
2015-04-26 17:15:12 +00:00
|
|
|
ld hl,S_SAVEDPLAYERID
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a,[hli]
|
|
|
|
ld h,[hl]
|
|
|
|
ld l,a
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a,[wPlayerID]
|
2014-05-22 22:13:20 +00:00
|
|
|
cp l
|
|
|
|
jr nz,.next
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a,[wPlayerID + 1]
|
2014-05-22 22:13:20 +00:00
|
|
|
cp h
|
|
|
|
.next
|
|
|
|
ld a,$00
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode],a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld [$0000],a
|
|
|
|
ret
|
|
|
|
|
2014-06-14 21:24:35 +00:00
|
|
|
SaveHallOfFameTeams: ; 73b0d (1c:7b0d)
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wd5a2]
|
2014-05-22 22:13:20 +00:00
|
|
|
dec a
|
2014-06-14 21:24:35 +00:00
|
|
|
cp NUM_HOF_TEAMS
|
2014-05-22 22:13:20 +00:00
|
|
|
jr nc, .asm_73b28
|
2014-06-14 21:24:35 +00:00
|
|
|
ld hl, sHallOfFame
|
|
|
|
ld bc, HOF_TEAM
|
2014-05-22 22:13:20 +00:00
|
|
|
call AddNTimes
|
|
|
|
ld e, l
|
|
|
|
ld d, h
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wcc5b
|
2014-06-14 21:24:35 +00:00
|
|
|
ld bc, HOF_TEAM
|
|
|
|
jr HallOfFame_Copy
|
|
|
|
|
2014-05-22 22:13:20 +00:00
|
|
|
.asm_73b28
|
2014-06-14 21:24:35 +00:00
|
|
|
ld hl, sHallOfFame + HOF_TEAM
|
|
|
|
ld de, sHallOfFame
|
|
|
|
ld bc, HOF_TEAM * (NUM_HOF_TEAMS - 1)
|
|
|
|
call HallOfFame_Copy
|
2014-05-26 21:04:56 +00:00
|
|
|
ld hl, wcc5b
|
2014-06-14 21:24:35 +00:00
|
|
|
ld de, sHallOfFame + HOF_TEAM * (NUM_HOF_TEAMS - 1)
|
|
|
|
ld bc, HOF_TEAM
|
|
|
|
jr HallOfFame_Copy
|
2014-05-22 22:13:20 +00:00
|
|
|
|
2014-06-14 21:24:35 +00:00
|
|
|
LoadHallOfFameTeams: ; 73b3f (1c:7b3f)
|
|
|
|
ld hl, sHallOfFame
|
|
|
|
ld bc, HOF_TEAM
|
2014-05-26 21:04:56 +00:00
|
|
|
ld a, [wWhichTrade] ; wWhichTrade
|
2014-05-22 22:13:20 +00:00
|
|
|
call AddNTimes
|
2014-05-26 21:04:56 +00:00
|
|
|
ld de, wcc5b
|
2014-06-14 21:24:35 +00:00
|
|
|
ld bc, HOF_TEAM
|
2014-05-22 22:13:20 +00:00
|
|
|
; fallthrough
|
2014-06-14 21:24:35 +00:00
|
|
|
|
|
|
|
HallOfFame_Copy: ; 73b51 (1c:7b51)
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
2014-05-22 22:13:20 +00:00
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBank], a
|
2014-05-22 22:13:20 +00:00
|
|
|
call CopyData
|
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
2015-02-08 06:18:42 +00:00
|
|
|
ClearSAV: ; 73b6a (1c:7b6a)
|
2014-09-14 18:29:18 +00:00
|
|
|
ld a, SRAM_ENABLE
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld a, $1
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
2014-05-22 22:13:20 +00:00
|
|
|
xor a
|
|
|
|
call PadSRAM_FF
|
|
|
|
ld a, $1
|
|
|
|
call PadSRAM_FF
|
|
|
|
ld a, $2
|
|
|
|
call PadSRAM_FF
|
|
|
|
ld a, $3
|
|
|
|
call PadSRAM_FF
|
|
|
|
xor a
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBankingMode], a
|
|
|
|
ld [MBC1SRamEnable], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ret
|
|
|
|
|
|
|
|
PadSRAM_FF: ; 73b8f (1c:7b8f)
|
2014-09-14 18:29:18 +00:00
|
|
|
ld [MBC1SRamBank], a
|
2014-05-22 22:13:20 +00:00
|
|
|
ld hl, $a000
|
|
|
|
ld bc, $2000
|
|
|
|
ld a, $ff
|
|
|
|
jp FillMemory
|