Merge pull request https://github.com/iimarckus/pokered/pull/95 from luckytyphlosion/master

and related bug fixes
This commit is contained in:
dannye 2015-07-05 03:49:31 -05:00
commit 063900c7d7
3 changed files with 105 additions and 68 deletions

View file

@ -37,39 +37,39 @@ LoadSAVCheckSum: ; 73623 (1c:7623)
ld a, $1 ld a, $1
ld [MBC1SRamBankingMode], a ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a ld [MBC1SRamBank], a
ld hl, $a598 ; hero name located in SRAM ld hl, S_SAVEDPLAYERNAME ; hero name located in SRAM
ld bc, $f8b ; but here checks the full SAV ld bc, $f8b ; but here checks the full SAV
call SAVCheckSum call SAVCheckSum
ld c, a ld c, a
ld a, [$b523] ; SAV's checksum ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
cp c cp c
jp z, .Func_73652 jp z, .Func_73652
ld hl, $a598 ld hl, S_SAVEDPLAYERNAME
ld bc, $f8b ld bc, $f8b
call SAVCheckSum call SAVCheckSum
ld c, a ld c, a
ld a, [$b523] ; SAV's checksum ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
cp c cp c
jp nz, SAVBadCheckSum jp nz, SAVBadCheckSum
.Func_73652 ; 73652 (1c:7652) .Func_73652 ; 73652 (1c:7652)
ld hl, $a598 ld hl, S_SAVEDPLAYERNAME
ld de, wPlayerName ld de, wPlayerName
ld bc, $b ld bc, $b
call CopyData call CopyData
ld hl, $a5a3 ld hl, S_SAVEDMAINDATA
ld de, wPokedexOwned ld de, wPokedexOwned
ld bc, $789 ld bc, $789
call CopyData call CopyData
ld hl, W_CURMAPTILESET ld hl, W_CURMAPTILESET
set 7, [hl] set 7, [hl]
ld hl, $ad2c ld hl, S_SAVEDSPRITEDATA
ld de, wSpriteStateData1 ld de, wSpriteStateData1
ld bc, $200 ld bc, $200
call CopyData call CopyData
ld a, [$b522] ld a, [S_SAVEDhTilesetType]
ld [hTilesetType], a ld [hTilesetType], a
ld hl, $b0c0 ld hl, S_SAVEDCURBOXDATA
ld de, W_NUMINBOX ld de, W_NUMINBOX
ld bc, wBoxMonNicksEnd - W_NUMINBOX ld bc, wBoxMonNicksEnd - W_NUMINBOX
call CopyData call CopyData
@ -82,14 +82,14 @@ LoadSAVCheckSum1: ; 73690 (1c:7690)
ld a, $1 ld a, $1
ld [MBC1SRamBankingMode], a ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a ld [MBC1SRamBank], a
ld hl, $a598 ; hero name located in SRAM ld hl, S_SAVEDPLAYERNAME ; hero name located in SRAM
ld bc, $f8b ; but here checks the full SAV ld bc, $f8b ; but here checks the full SAV
call SAVCheckSum call SAVCheckSum
ld c, a ld c, a
ld a, [$b523] ; SAV's checksum ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
cp c cp c
jr nz, SAVBadCheckSum jr nz, SAVBadCheckSum
ld hl, $b0c0 ld hl, S_SAVEDCURBOXDATA
ld de, W_NUMINBOX ld de, W_NUMINBOX
ld bc, wBoxMonNicksEnd - W_NUMINBOX ld bc, wBoxMonNicksEnd - W_NUMINBOX
call CopyData call CopyData
@ -102,18 +102,18 @@ LoadSAVCheckSum2: ; 736bd (1c:76bd)
ld a, $1 ld a, $1
ld [MBC1SRamBankingMode], a ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a ld [MBC1SRamBank], a
ld hl, $a598 ; hero name located in SRAM ld hl, S_SAVEDPLAYERNAME ; hero name located in SRAM
ld bc, $f8b ; but here checks the full SAV ld bc, $f8b ; but here checks the full SAV
call SAVCheckSum call SAVCheckSum
ld c, a ld c, a
ld a, [$b523] ; SAV's checksum ld a, [S_SAVEDMAINDATACHECKSUM] ; SAV's checksum
cp c cp c
jp nz, SAVBadCheckSum jp nz, SAVBadCheckSum
ld hl, $af2c ld hl, S_SAVEDPARTYDATA
ld de, wPartyCount ld de, wPartyCount
ld bc, $194 ld bc, wPokedexOwned - wPartyCount
call CopyData call CopyData
ld hl, $a5a3 ld hl, S_SAVEDMAINDATA
ld de, wPokedexOwned ld de, wPokedexOwned
ld bc, wPokedexSeenEnd - wPokedexOwned ld bc, wPokedexSeenEnd - wPokedexOwned
call CopyData call CopyData
@ -199,27 +199,27 @@ SaveSAVtoSRAM0: ; 7378c (1c:778c)
ld [MBC1SRamBankingMode], a ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a ld [MBC1SRamBank], a
ld hl, wPlayerName ld hl, wPlayerName
ld de, $a598 ld de, S_SAVEDPLAYERNAME
ld bc, $b ld bc, $b
call CopyData call CopyData
ld hl, wPokedexOwned ld hl, wPokedexOwned
ld de, $a5a3 ld de, S_SAVEDMAINDATA
ld bc, W_NUMINBOX - wPokedexOwned ld bc, W_NUMINBOX - wPokedexOwned
call CopyData call CopyData
ld hl, wSpriteStateData1 ld hl, wSpriteStateData1
ld de, $ad2c ld de, S_SAVEDSPRITEDATA
ld bc, $200 ld bc, $200
call CopyData call CopyData
ld hl, W_NUMINBOX ld hl, W_NUMINBOX
ld de, $b0c0 ld de, S_SAVEDCURBOXDATA
ld bc, wBoxMonNicksEnd - W_NUMINBOX ld bc, wBoxMonNicksEnd - W_NUMINBOX
call CopyData call CopyData
ld a, [hTilesetType] ld a, [hTilesetType]
ld [$b522], a ld [S_SAVEDhTilesetType], a
ld hl, $a598 ld hl, S_SAVEDPLAYERNAME
ld bc, $f8b ld bc, $f8b
call SAVCheckSum call SAVCheckSum
ld [$b523], a ld [S_SAVEDMAINDATACHECKSUM], a
xor a xor a
ld [MBC1SRamBankingMode], a ld [MBC1SRamBankingMode], a
ld [MBC1SRamEnable], a ld [MBC1SRamEnable], a
@ -233,13 +233,13 @@ SaveSAVtoSRAM1: ; 737e2 (1c:77e2)
ld [MBC1SRamBankingMode], a ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a ld [MBC1SRamBank], a
ld hl, W_NUMINBOX ld hl, W_NUMINBOX
ld de, $b0c0 ld de, S_SAVEDCURBOXDATA
ld bc, wBoxMonNicksEnd - W_NUMINBOX ld bc, wBoxMonNicksEnd - W_NUMINBOX
call CopyData call CopyData
ld hl, $a598 ld hl, S_SAVEDPLAYERNAME
ld bc, $f8b ld bc, $f8b
call SAVCheckSum call SAVCheckSum
ld [$b523], a ld [S_SAVEDMAINDATACHECKSUM], a
xor a xor a
ld [MBC1SRamBankingMode], a ld [MBC1SRamBankingMode], a
ld [MBC1SRamEnable], a ld [MBC1SRamEnable], a
@ -252,17 +252,17 @@ SaveSAVtoSRAM2: ; 7380f (1c:780f)
ld [MBC1SRamBankingMode], a ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a ld [MBC1SRamBank], a
ld hl, wPartyCount ld hl, wPartyCount
ld de, $af2c ld de, S_SAVEDPARTYDATA
ld bc, wPokedexOwned - wPartyCount ld bc, wPokedexOwned - wPartyCount
call CopyData call CopyData
ld hl, wPokedexOwned ; pokédex only ld hl, wPokedexOwned ; pokédex only
ld de, $a5a3 ld de, S_SAVEDMAINDATA
ld bc, wPokedexSeenEnd - wPokedexOwned ld bc, wPokedexSeenEnd - wPokedexOwned
call CopyData call CopyData
ld hl, $a598 ld hl, S_SAVEDPLAYERNAME
ld bc, $f8b ld bc, $f8b
call SAVCheckSum call SAVCheckSum
ld [$b523], a ld [S_SAVEDMAINDATACHECKSUM], a
xor a xor a
ld [MBC1SRamBankingMode], a ld [MBC1SRamBankingMode], a
ld [MBC1SRamEnable], a ld [MBC1SRamEnable], a
@ -292,7 +292,7 @@ SAVCheckSum: ; 73856 (1c:7856)
Func_73863: ; 73863 (1c:7863) Func_73863: ; 73863 (1c:7863)
ld hl, $a000 ld hl, $a000
ld de, $ba4d ld de, S_SAVEDBOXES1CHECKSUM2 ; S_SAVEDBOXES2CHECKSUM2
ld b, $6 ld b, $6
.asm_7386b .asm_7386b
push bc push bc
@ -327,12 +327,12 @@ Func_7387b: ; 7387b (1c:787b)
ret ret
PointerTable_73895: ; 73895 (1c:7895) PointerTable_73895: ; 73895 (1c:7895)
dw $A000 dw S_SAVEDBOX1 ; S_SAVEDBOX7
dw $A462 dw S_SAVEDBOX2 ; S_SAVEDBOX8
dw $A8C4 dw S_SAVEDBOX3 ; S_SAVEDBOX9
dw $AD26 dw S_SAVEDBOX4 ; S_SAVEDBOX10
dw $B188 dw S_SAVEDBOX5 ; S_SAVEDBOX11
dw $B5EA dw S_SAVEDBOX6 ; S_SAVEDBOX12
ChangeBox:: ; 738a1 (1c:78a1) ChangeBox:: ; 738a1 (1c:78a1)
ld hl, WhenYouChangeBoxText ld hl, WhenYouChangeBoxText
@ -402,7 +402,7 @@ Func_7390e: ; 7390e (1c:790e)
ld hl, $a000 ld hl, $a000
ld bc, $1a4c ld bc, $1a4c
call SAVCheckSum call SAVCheckSum
ld [$ba4c], a ld [S_SAVEDBOXES1CHECKSUM], a ; S_SAVEDBOXES2CHECKSUM
call Func_73863 call Func_73863
xor a xor a
ld [MBC1SRamBankingMode], a ld [MBC1SRamBankingMode], a
@ -518,22 +518,22 @@ Func_73a29: ; 73a29 (1c:7a29)
ret ret
Func_73a4b: ; 73a4b (1c:7a4b) Func_73a4b: ; 73a4b (1c:7a4b)
ld hl, $a000 ld hl, S_SAVEDBOX1 ; S_SAVEDBOX7
call Func_73a7f call Func_73a7f
ld hl, $a462 ld hl, S_SAVEDBOX2 ; S_SAVEDBOX8
call Func_73a7f call Func_73a7f
ld hl, $a8c4 ld hl, S_SAVEDBOX3 ; S_SAVEDBOX9
call Func_73a7f call Func_73a7f
ld hl, $ad26 ld hl, S_SAVEDBOX4 ; S_SAVEDBOX10
call Func_73a7f call Func_73a7f
ld hl, $b188 ld hl, S_SAVEDBOX5 ; S_SAVEDBOX11
call Func_73a7f call Func_73a7f
ld hl, $b5ea ld hl, S_SAVEDBOX6 ; S_SAVEDBOX12
call Func_73a7f call Func_73a7f
ld hl, $a000 ld hl, S_SAVEDBOX1 ; S_SAVEDBOX7
ld bc, $1a4c ld bc, $6 * (S_SAVEDBOX2 - S_SAVEDBOX1) ; $1a4c
call SAVCheckSum call SAVCheckSum
ld [$ba4c], a ld [S_SAVEDBOXES1CHECKSUM], a ; S_SAVEDBOXES2CHECKSUM
call Func_73863 call Func_73863
ret ret
@ -571,40 +571,40 @@ Func_73a84: ; 73a84 (1c:7a84)
ret ret
Func_73ab8: ; 73ab8 (1c:7ab8) Func_73ab8: ; 73ab8 (1c:7ab8)
ld a, [$a000] ld a, [S_SAVEDBOX1] ; S_SAVEDBOX7
ld [hli], a ld [hli], a
ld a, [$a462] ld a, [S_SAVEDBOX2] ; S_SAVEDBOX8
ld [hli], a ld [hli], a
ld a, [$a8c4] ld a, [S_SAVEDBOX3] ; S_SAVEDBOX9
ld [hli], a ld [hli], a
ld a, [$ad26] ld a, [S_SAVEDBOX4] ; S_SAVEDBOX10
ld [hli], a ld [hli], a
ld a, [$b188] ld a, [S_SAVEDBOX5] ; S_SAVEDBOX11
ld [hli], a ld [hli], a
ld a, [$b5ea] ld a, [S_SAVEDBOX6] ; S_SAVEDBOX12
ld [hli], a ld [hli], a
ret ret
SAVCheckRandomID: ; 73ad1 (1c:7ad1) SAVCheckRandomID: ; 73ad1 (1c:7ad1)
;checks if Sav file is the same by checking player's name 1st letter ($a598) ;checks if Sav file is the same by checking player's name 1st letter ($a598)
; and the two random numbers generated at game beginning ; and the two random numbers generated at game beginning
;(which are stored at wPlayerID) ;(which are stored at wPlayerID)s
ld a,$0a ld a,$0a
ld [$0000],a ld [$0000],a
ld a,$01 ld a,$01
ld [MBC1SRamBankingMode],a ld [MBC1SRamBankingMode],a
ld [MBC1SRamBank],a ld [MBC1SRamBank],a
ld a,[$a598] ld a,[S_SAVEDPLAYERNAME]
and a and a
jr z,.next jr z,.next
ld hl,$a598 ld hl,S_SAVEDPLAYERNAME
ld bc,$0f8b ld bc,$0f8b
call SAVCheckSum call SAVCheckSum
ld c,a ld c,a
ld a,[$b523] ld a,[S_SAVEDMAINDATACHECKSUM]
cp c cp c
jr nz,.next jr nz,.next
ld hl,$a605 ld hl,S_SAVEDMAINDATA + 98 ; player ID
ld a,[hli] ld a,[hli]
ld h,[hl] ld h,[hl]
ld l,a ld l,a

45
sram.asm Normal file
View file

@ -0,0 +1,45 @@
SECTION "Sprite Buffers", SRAM, BANK[0]
S_SPRITEBUFFER0:: ds SPRITEBUFFERSIZE ; a000
S_SPRITEBUFFER1:: ds SPRITEBUFFERSIZE ; a188
S_SPRITEBUFFER2:: ds SPRITEBUFFERSIZE ; a310
ds $100
sHallOfFame:: ds HOF_TEAM * NUM_HOF_TEAMS ; a598
SECTION "Save Data", SRAM, BANK[1]
ds $598
S_SAVEDPLAYERNAME:: ds 11 ; a598
S_SAVEDMAINDATA:: ds W_NUMINBOX - wPokedexOwned ; a5a3
S_SAVEDSPRITEDATA:: ds $200 ; wOAMBuffer - wSpriteStateData1 ; ad2c
S_SAVEDPARTYDATA:: ds wPokedexOwned - wPartyCount ; af2c
S_SAVEDCURBOXDATA:: ds wBoxMonNicksEnd - W_NUMINBOX ; b0c0
S_SAVEDhTilesetType:: ds 1 ; b522
S_SAVEDMAINDATACHECKSUM:: ds 1 ; b523
SECTION "Saved Boxes 1", SRAM, BANK[2]
S_SAVEDBOX1:: ds wBoxMonNicksEnd - W_NUMINBOX ; a000
S_SAVEDBOX2:: ds wBoxMonNicksEnd - W_NUMINBOX ; a462
S_SAVEDBOX3:: ds wBoxMonNicksEnd - W_NUMINBOX ; a8c4
S_SAVEDBOX4:: ds wBoxMonNicksEnd - W_NUMINBOX ; ad26
S_SAVEDBOX5:: ds wBoxMonNicksEnd - W_NUMINBOX ; b188
S_SAVEDBOX6:: ds wBoxMonNicksEnd - W_NUMINBOX ; b5ea
S_SAVEDBOXES1CHECKSUM:: ds 1 ; ba4c
S_SAVEDBOXES1CHECKSUM2:: ds 6 ; ba4d
SECTION "Saved Boxes 2", SRAM, BANK[3]
S_SAVEDBOX7:: ds wBoxMonNicksEnd - W_NUMINBOX ; a000
S_SAVEDBOX8:: ds wBoxMonNicksEnd - W_NUMINBOX ; a462
S_SAVEDBOX9:: ds wBoxMonNicksEnd - W_NUMINBOX ; a8c4
S_SAVEDBOX10:: ds wBoxMonNicksEnd - W_NUMINBOX ; ad26
S_SAVEDBOX11:: ds wBoxMonNicksEnd - W_NUMINBOX ; b188
S_SAVEDBOX12:: ds wBoxMonNicksEnd - W_NUMINBOX ; b5ea
S_SAVEDBOXES2CHECKSUM:: ds 1 ; ba4c
S_SAVEDBOXES2CHECKSUM2:: ds 6 ; ba4d

View file

@ -2296,12 +2296,4 @@ wStack:: ; dfff
ds -$100 ds -$100
SECTION "Sprite Buffers", SRAM, BANK[0] INCLUDE "sram.asm"
S_SPRITEBUFFER0:: ds SPRITEBUFFERSIZE ; a000
S_SPRITEBUFFER1:: ds SPRITEBUFFERSIZE ; a188
S_SPRITEBUFFER2:: ds SPRITEBUFFERSIZE ; a310
ds $100
sHallOfFame:: ds HOF_TEAM * NUM_HOF_TEAMS ; a598