Label BCD math predefs.

This commit is contained in:
yenatch 2014-05-25 17:27:02 -07:00
parent bba8405992
commit 4be11293e5
14 changed files with 92 additions and 83 deletions

View file

@ -36,8 +36,8 @@ Func_137aa: ; 137aa (4:77aa)
jr z, .asm_1380a jr z, .asm_1380a
ld de, wPlayerMoney + 2 ; $d349 ld de, wPlayerMoney + 2 ; $d349
ld c, $3 ld c, $3
ld a, $b ld a, $b ; AddBCDPredef
call Predef ; indirect jump to Func_f81d (f81d (3:781d)) call Predef
ld hl, PickUpPayDayMoneyText ld hl, PickUpPayDayMoneyText
call PrintText call PrintText
.asm_1380a .asm_1380a

View file

@ -120,7 +120,7 @@ PayDayEffect_ ; 2feb8 (b:7eb8)
ld [hl], a ld [hl], a
ld de, $cce7 ld de, $cce7
ld c, $3 ld c, $3
ld a, $b ld a, $b ; AddBCDPredef
call Predef call Predef
ld hl, CoinsScatteredText ; $7f04 ld hl, CoinsScatteredText ; $7f04
jp PrintText jp PrintText

View file

@ -996,8 +996,8 @@ TrainerBattleVictory: ; 3c696 (f:4696)
ld de, wPlayerMoney + 2 ; $d349 ld de, wPlayerMoney + 2 ; $d349
ld hl, $d07b ld hl, $d07b
ld c, $3 ld c, $3
ld a, $b ld a, $b ; AddBCDPredef
jp Predef ; indirect jump to Func_f81d (f81d (3:781d)) jp Predef
MoneyForWinningText: ; 3c6e4 (f:46e4) MoneyForWinningText: ; 3c6e4 (f:46e4)
TX_FAR _MoneyForWinningText TX_FAR _MoneyForWinningText

View file

@ -71,8 +71,8 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
ld hl, $ffde ld hl, $ffde
ld de, wPlayerMoney + 2 ; $d349 ld de, wPlayerMoney + 2 ; $d349
ld c, $3 ld c, $3
ld a, $c ld a, $c ; SubtractBCDPredef
call Predef ; indirect jump to Func_f836 (f836 (3:7836)) call Predef
ld a, $13 ld a, $13
ld [$d125], a ld [$d125], a
jp DisplayTextBoxID jp DisplayTextBoxID

View file

@ -104,7 +104,7 @@ HiddenCoins: ; 76799 (1d:6799)
ld de, $d5a5 ld de, $d5a5
ld hl, $ffa1 ld hl, $ffa1
ld c, $2 ld c, $2
ld a, $b ld a, $b ; AddBCDPredef
call Predef call Predef
ld hl, $d6fe ld hl, $d6fe
ld a, [$cd41] ld a, [$cd41]

View file

@ -70,12 +70,13 @@ HealPartyPredef: ; 4fe8e (13:7e8e)
dbw BANK(HealParty),HealParty dbw BANK(HealParty),HealParty
MoveAnimationPredef: ; 4fe91 (13:7e91) MoveAnimationPredef: ; 4fe91 (13:7e91)
dbw BANK(MoveAnimation),MoveAnimation; 08 play move animation dbw BANK(MoveAnimation),MoveAnimation; 08 play move animation
dbw BANK(Func_f71e),Func_f71e dbw BANK(DivideBCDPredef),DivideBCDPredef
dbw BANK(Func_f71e),Func_f71e dbw BANK(DivideBCDPredef),DivideBCDPredef
dbw BANK(Func_f81d),Func_f81d dbw BANK(AddBCDPredef),AddBCDPredef
dbw BANK(Func_f836),Func_f836 db BANK(SubtractBCDPredef)
dbw BANK(Func_f71e),Func_f71e dw SubtractBCDPredef
dbw BANK(Func_f71e),Func_f71e dbw BANK(DivideBCDPredef),DivideBCDPredef
dbw BANK(DivideBCDPredef),DivideBCDPredef
db BANK(InitializePlayerData) db BANK(InitializePlayerData)
dw InitializePlayerData dw InitializePlayerData
dbw BANK(FlagActionPredef),FlagActionPredef dbw BANK(FlagActionPredef),FlagActionPredef

View file

@ -618,7 +618,7 @@ SlotMachine_37741: ; 37741 (d:7741)
ld [hli], a ld [hli], a
ld de, $d5a5 ld de, $d5a5
ld c, $2 ld c, $2
ld a, $c ld a, $c ; SubtractBCDPredef
call Predef call Predef
SlotMachine_37754: ; 37754 (d:7754) SlotMachine_37754: ; 37754 (d:7754)
@ -660,7 +660,7 @@ SlotMachine_3776b: ; 3776b (d:776b)
ld hl, $cd47 ld hl, $cd47
ld de, $d5a5 ld de, $d5a5
ld c, $2 ld c, $2
ld a, $b ld a, $b ; AddBCDPredef
call Predef call Predef
call SlotMachine_37754 call SlotMachine_37754
call SlotMachine_3775f call SlotMachine_3775f

View file

@ -917,9 +917,9 @@ HandleBlackOut::
call StopMusic call StopMusic
ld hl, $d72e ld hl, $d72e
res 5, [hl] res 5, [hl]
ld a, Bank(Func_40b0) ; Bank(Func_40b0) and Bank(Func_62ce) need to be equal. ld a, Bank(Func_40b0) ; also Bank(Func_62ce) and Bank(Func_5d5f)
ld [H_LOADEDROMBANK], a ld [H_LOADEDROMBANK], a
ld [$2000], a ld [MBC3RomBank], a
call Func_40b0 call Func_40b0
call Func_62ce call Func_62ce
call Func_2312 call Func_2312
@ -8302,24 +8302,24 @@ GetTrainerName:: ; 359e (0:359e)
ld hl, GetTrainerName_ ld hl, GetTrainerName_
jp Bankswitch jp Bankswitch
; tests if player's money are at least as much as [$ff9f]
; sets carry flag if not enough money HasEnoughMoney::
; sets zero flag if amounts match exactly ; Check if the player has at least as much
HasEnoughMoney:: ; 35a6 (0:35a6) ; money as the 3-byte BCD value at $ff9f.
ld de, wPlayerMoney ; $d347 ld de, wPlayerMoney
ld hl, $ff9f ld hl, $ff9f
ld c, $3 ld c, 3
jp StringCmp jp StringCmp
; tests if player's game corner coins are at least as many as [$ffa0] HasEnoughCoins::
; sets carry flag if not enough coins ; Check if the player has at least as many
; sets zero flag if amounts match exactly ; coins as the 2-byte BCD value at $ffa0.
HasEnoughCoins:: ; 35b1 (0:35b1)
ld de, wPlayerCoins ld de, wPlayerCoins
ld hl, $ffa0 ld hl, $ffa0
ld c, $2 ld c, 2
jp StringCmp jp StringCmp
BankswitchHome:: ; 35bc (0:35bc) BankswitchHome:: ; 35bc (0:35bc)
; switches to bank # in a ; switches to bank # in a
; Only use this when in the home bank! ; Only use this when in the home bank!

View file

@ -63,49 +63,55 @@ SpriteOAMParametersFlipped: ; 40a4 (1:40a4)
db $08,$08, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED db $08,$08, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED
db $08,$00, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA db $08,$00, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA
Func_40b0: ; 40b0 (1:40b0)
Func_40b0::
; Reset player status on blackout.
xor a xor a
ld [$cf0b], a ld [$cf0b], a
ld [$d700], a ld [$d700], a
ld [W_ISINBATTLE], a ; $d057 ld [W_ISINBATTLE], a
ld [$d35d], a ld [$d35d], a
ld [$cf10], a ld [$cf10], a
ld [hJoyHeld], a ld [hJoyHeld], a
ld [$cc57], a ld [$cc57], a
ld [wFlags_0xcd60], a ld [wFlags_0xcd60], a
ld [$ff9f], a ld [$ff9f], a
ld [$ffa0], a ld [$ff9f + 1], a
ld [$ffa1], a ld [$ff9f + 2], a
call HasEnoughMoney call HasEnoughMoney
jr c, .asm_40ff jr c, .lostmoney ; never happens
ld a, [wPlayerMoney] ; $d347
; Halve the player's money.
ld a, [wPlayerMoney]
ld [$ff9f], a ld [$ff9f], a
ld a, [wPlayerMoney + 1] ; $d348 ld a, [wPlayerMoney + 1]
ld [$ffa0], a ld [$ff9f + 1], a
ld a, [wPlayerMoney + 2] ; $d349 ld a, [wPlayerMoney + 2]
ld [$ffa1], a ld [$ff9f + 2], a
xor a xor a
ld [$ffa2], a ld [$ffa2], a
ld [$ffa3], a ld [$ffa3], a
ld a, $2 ld a, 2
ld [$ffa4], a ld [$ffa4], a
ld a, $d ld a, $d ; DivideBCDPredef
call Predef ; indirect jump to Func_f71e (f71e (3:771e)) call Predef
ld a, [$ffa2] ld a, [$ffa2]
ld [wPlayerMoney], a ; $d347 ld [wPlayerMoney], a
ld a, [$ffa3] ld a, [$ffa2 + 1]
ld [wPlayerMoney + 1], a ; $d348 ld [wPlayerMoney + 1], a
ld a, [$ffa4] ld a, [$ffa2 + 2]
ld [wPlayerMoney + 2], a ; $d349 ld [wPlayerMoney + 2], a
.asm_40ff
.lostmoney
ld hl, $d732 ld hl, $d732
set 2, [hl] set 2, [hl]
res 3, [hl] res 3, [hl]
set 6, [hl] set 6, [hl]
ld a, $ff ld a, %11111111
ld [wJoyIgnore], a ld [wJoyIgnore], a
ld a, $7 ld a, $7 ; HealParty
jp Predef ; indirect jump to HealParty (f6a5 (3:76a5)) jp Predef
MewPicFront:: INCBIN "pic/bmon/mew.pic" MewPicFront:: INCBIN "pic/bmon/mew.pic"
MewPicBack:: INCBIN "pic/monback/mewb.pic" MewPicBack:: INCBIN "pic/monback/mewb.pic"
@ -5309,12 +5315,10 @@ HealParty:
ret ret
; predef $9 DivideBCDPredef::
; predef $a
; predef $d
; predef $e
Func_f71e: ; f71e (3:771e)
call GetPredefRegisters call GetPredefRegisters
DivideBCD::
xor a xor a
ld [$ffa5], a ld [$ffa5], a
ld [$ffa6], a ld [$ffa6], a
@ -5462,15 +5466,18 @@ Func_f800: ; f800 (3:7800)
ld de, $ffa1 ld de, $ffa1
ld hl, $ffa4 ld hl, $ffa4
push bc push bc
call Func_f839 call SubtractBCD
pop bc pop bc
jr .asm_f803 jr .asm_f803
Func_f81d: ; f81d (3:781d)
AddBCDPredef::
call GetPredefRegisters call GetPredefRegisters
AddBCD::
and a and a
ld b, c ld b, c
.asm_f822 .add
ld a, [de] ld a, [de]
adc [hl] adc [hl]
daa daa
@ -5478,25 +5485,26 @@ Func_f81d: ; f81d (3:781d)
dec de dec de
dec hl dec hl
dec c dec c
jr nz, .asm_f822 jr nz, .add
jr nc, .asm_f835 jr nc, .done
ld a, $99 ld a, $99
inc de inc de
.asm_f830 .fill
ld [de], a ld [de], a
inc de inc de
dec b dec b
jr nz, .asm_f830 jr nz, .fill
.asm_f835 .done
ret ret
Func_f836: ; f836 (3:7836)
SubtractBCDPredef::
call GetPredefRegisters call GetPredefRegisters
Func_f839: ; f839 (3:7839) SubtractBCD::
and a and a
ld b, c ld b, c
.asm_f83b .sub
ld a, [de] ld a, [de]
sbc [hl] sbc [hl]
daa daa
@ -5504,17 +5512,17 @@ Func_f839: ; f839 (3:7839)
dec de dec de
dec hl dec hl
dec c dec c
jr nz, .asm_f83b jr nz, .sub
jr nc, .asm_f84f jr nc, .done
ld a, $0 ld a, $00
inc de inc de
.asm_f849 .fill
ld [de], a ld [de], a
inc de inc de
dec b dec b
jr nz, .asm_f849 jr nz, .fill
scf scf
.asm_f84f .done
ret ret

View file

@ -157,7 +157,7 @@ CeladonGameCornerText2: ; 48ca9 (12:4ca9)
ld hl, $ffa1 ld hl, $ffa1
ld de, $d349 ld de, $d349
ld c, $3 ld c, $3
ld a, $c ld a, $c ; SubtractBCDPredef
call Predef call Predef
xor a xor a
ldh [$9f], a ldh [$9f], a
@ -167,7 +167,7 @@ CeladonGameCornerText2: ; 48ca9 (12:4ca9)
ld de, $d5a5 ld de, $d5a5
ld hl, $ffa1 ld hl, $ffa1
ld c, $2 ld c, $2
ld a, $b ld a, $b ; AddBCDPredef
call Predef call Predef
call CeladonGameCornerScript_48f1e call CeladonGameCornerScript_48f1e
ld hl, CeladonGameCornerText_48d27 ld hl, CeladonGameCornerText_48d27
@ -236,7 +236,7 @@ CeladonGameCornerText5: ; 48d4a (12:4d4a)
ld de, $d5a5 ld de, $d5a5
ld hl, $ffa1 ld hl, $ffa1
ld c, $2 ld c, $2
ld a, $b ld a, $b ; AddBCDPredef
call Predef call Predef
ld hl, $d77e ld hl, $d77e
set 2, [hl] set 2, [hl]
@ -319,7 +319,7 @@ CeladonGameCornerText9: ; 48dd9 (12:4dd9)
ld de, $d5a5 ld de, $d5a5
ld hl, $ffa1 ld hl, $ffa1
ld c, $2 ld c, $2
ld a, $b ld a, $b ; AddBCDPredef
call Predef call Predef
ld hl, $d77e ld hl, $d77e
set 4, [hl] set 4, [hl]
@ -373,7 +373,7 @@ CeladonGameCornerText10: ; 48e3b (12:4e3b)
ld de, $d5a5 ld de, $d5a5
ld hl, $ffa1 ld hl, $ffa1
ld c, $2 ld c, $2
ld a, $b ld a, $b ; AddBCDPredef
call Predef call Predef
ld hl, $d77e ld hl, $d77e
set 3, [hl] set 3, [hl]

View file

@ -120,7 +120,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
push hl push hl
push de push de
push bc push bc
ld a, $b ld a, $b ; AddBCDPredef
call Predef call Predef
pop bc pop bc
pop de pop de
@ -156,7 +156,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
inc hl inc hl
ld de, $d349 ld de, $d349
ld c, $3 ld c, $3
ld a, $c ld a, $c ; SubtractBCDPredef
call Predef call Predef
ld a, (SFX_02_5a - SFX_Headers_02) / 3 ld a, (SFX_02_5a - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent call PlaySoundWaitForCurrent

View file

@ -55,7 +55,7 @@ MtMoonPokecenterText4: ; 492ec (12:52ec)
ld hl, $cd3f ld hl, $cd3f
ld de, $d349 ld de, $d349
ld c, $3 ld c, $3
ld a, $c ld a, $c ; SubtractBCDPredef
call Predef call Predef
ld a, $13 ld a, $13
ld [$d125], a ld [$d125], a

View file

@ -103,7 +103,7 @@ Museum1FText1: ; 5c135 (17:4135)
ld hl, $cd3f ld hl, $cd3f
ld de, $d349 ld de, $d349
ld c, $3 ld c, $3
ld a, $c ld a, $c ; SubtractBCDPredef
call Predef call Predef
ld a, $13 ld a, $13
ld [$d125], a ld [$d125], a

View file

@ -176,7 +176,7 @@ SafariZoneEntranceText4: ; 752ca (1d:52ca)
ld hl, $cd3f ld hl, $cd3f
ld de, $d349 ld de, $d349
ld c, $3 ld c, $3
ld a, $c ld a, $c ; SubtractBCDPredef
call Predef call Predef
ld a, $13 ld a, $13
ld [$d125], a ld [$d125], a