diff options
| -rwxr-xr-x | engine/battle/4_2.asm | 4 | ||||
| -rwxr-xr-x | engine/battle/b_2.asm | 2 | ||||
| -rwxr-xr-x | engine/battle/core.asm | 4 | ||||
| -rwxr-xr-x | engine/menu/vending_machine.asm | 4 | ||||
| -rwxr-xr-x | engine/overworld/hidden_items.asm | 2 | ||||
| -rwxr-xr-x | engine/predefs.asm | 13 | ||||
| -rwxr-xr-x | engine/slot_machine.asm | 4 | ||||
| -rw-r--r-- | home.asm | 26 | ||||
| -rwxr-xr-x | main.asm | 96 | ||||
| -rwxr-xr-x | scripts/celadongamecorner.asm | 10 | ||||
| -rwxr-xr-x | scripts/daycarem.asm | 4 | ||||
| -rwxr-xr-x | scripts/mtmoonpokecenter.asm | 2 | ||||
| -rwxr-xr-x | scripts/museum1f.asm | 2 | ||||
| -rwxr-xr-x | scripts/safarizoneentrance.asm | 2 | 
14 files changed, 92 insertions, 83 deletions
| diff --git a/engine/battle/4_2.asm b/engine/battle/4_2.asm index 264a74d7..891363f5 100755 --- a/engine/battle/4_2.asm +++ b/engine/battle/4_2.asm @@ -36,8 +36,8 @@ Func_137aa: ; 137aa (4:77aa)  	jr z, .asm_1380a  	ld de, wPlayerMoney + 2 ; $d349  	ld c, $3 -	ld a, $b -	call Predef ; indirect jump to Func_f81d (f81d (3:781d)) +	ld a, $b ; AddBCDPredef +	call Predef  	ld hl, PickUpPayDayMoneyText  	call PrintText  .asm_1380a diff --git a/engine/battle/b_2.asm b/engine/battle/b_2.asm index b71ca40d..00510ec7 100755 --- a/engine/battle/b_2.asm +++ b/engine/battle/b_2.asm @@ -120,7 +120,7 @@ PayDayEffect_ ; 2feb8 (b:7eb8)  	ld [hl], a  	ld de, $cce7  	ld c, $3 -	ld a, $b +	ld a, $b ; AddBCDPredef  	call Predef  	ld hl, CoinsScatteredText ; $7f04  	jp PrintText diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 48d075c0..d47e8d30 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -996,8 +996,8 @@ TrainerBattleVictory: ; 3c696 (f:4696)  	ld de, wPlayerMoney + 2 ; $d349  	ld hl, $d07b  	ld c, $3 -	ld a, $b -	jp Predef ; indirect jump to Func_f81d (f81d (3:781d)) +	ld a, $b ; AddBCDPredef +	jp Predef  MoneyForWinningText: ; 3c6e4 (f:46e4)  	TX_FAR _MoneyForWinningText diff --git a/engine/menu/vending_machine.asm b/engine/menu/vending_machine.asm index 1f0ed084..7a8b6985 100755 --- a/engine/menu/vending_machine.asm +++ b/engine/menu/vending_machine.asm @@ -71,8 +71,8 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)  	ld hl, $ffde  	ld de, wPlayerMoney + 2 ; $d349  	ld c, $3 -	ld a, $c -	call Predef ; indirect jump to Func_f836 (f836 (3:7836)) +	ld a, $c ; SubtractBCDPredef +	call Predef  	ld a, $13  	ld [$d125], a  	jp DisplayTextBoxID diff --git a/engine/overworld/hidden_items.asm b/engine/overworld/hidden_items.asm index db6bf1cd..ea032cbe 100755 --- a/engine/overworld/hidden_items.asm +++ b/engine/overworld/hidden_items.asm @@ -104,7 +104,7 @@ HiddenCoins: ; 76799 (1d:6799)  	ld de, $d5a5  	ld hl, $ffa1  	ld c, $2 -	ld a, $b +	ld a, $b ; AddBCDPredef  	call Predef  	ld hl, $d6fe  	ld a, [$cd41] diff --git a/engine/predefs.asm b/engine/predefs.asm index 4a40ede6..a3591421 100755 --- a/engine/predefs.asm +++ b/engine/predefs.asm @@ -70,12 +70,13 @@ HealPartyPredef: ; 4fe8e (13:7e8e)  	dbw BANK(HealParty),HealParty  MoveAnimationPredef: ; 4fe91 (13:7e91)  	dbw BANK(MoveAnimation),MoveAnimation; 08 play move animation -	dbw BANK(Func_f71e),Func_f71e -	dbw BANK(Func_f71e),Func_f71e -	dbw BANK(Func_f81d),Func_f81d -	dbw BANK(Func_f836),Func_f836 -	dbw BANK(Func_f71e),Func_f71e -	dbw BANK(Func_f71e),Func_f71e +	dbw BANK(DivideBCDPredef),DivideBCDPredef +	dbw BANK(DivideBCDPredef),DivideBCDPredef +	dbw BANK(AddBCDPredef),AddBCDPredef +	db BANK(SubtractBCDPredef) +	dw SubtractBCDPredef +	dbw BANK(DivideBCDPredef),DivideBCDPredef +	dbw BANK(DivideBCDPredef),DivideBCDPredef  	db BANK(InitializePlayerData)  	dw InitializePlayerData  	dbw BANK(FlagActionPredef),FlagActionPredef diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 1d320207..99ee942b 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -618,7 +618,7 @@ SlotMachine_37741: ; 37741 (d:7741)  	ld [hli], a  	ld de, $d5a5  	ld c, $2 -	ld a, $c +	ld a, $c ; SubtractBCDPredef  	call Predef  SlotMachine_37754: ; 37754 (d:7754) @@ -660,7 +660,7 @@ SlotMachine_3776b: ; 3776b (d:776b)  	ld hl, $cd47  	ld de, $d5a5  	ld c, $2 -	ld a, $b +	ld a, $b ; AddBCDPredef  	call Predef  	call SlotMachine_37754  	call SlotMachine_3775f @@ -917,9 +917,9 @@ HandleBlackOut::  	call StopMusic  	ld hl, $d72e  	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 [$2000], a +	ld [MBC3RomBank], a  	call Func_40b0  	call Func_62ce  	call Func_2312 @@ -8302,24 +8302,24 @@ GetTrainerName:: ; 359e (0:359e)  	ld hl, GetTrainerName_  	jp Bankswitch -; tests if player's money are at least as much as [$ff9f] -; sets carry flag if not enough money -; sets zero flag if amounts match exactly -HasEnoughMoney:: ; 35a6 (0:35a6) -	ld de, wPlayerMoney ; $d347 + +HasEnoughMoney:: +; Check if the player has at least as much +; money as the 3-byte BCD value at $ff9f. +	ld de, wPlayerMoney  	ld hl, $ff9f -	ld c, $3 +	ld c, 3  	jp StringCmp -; tests if player's game corner coins are at least as many as [$ffa0] -; sets carry flag if not enough coins -; sets zero flag if amounts match exactly -HasEnoughCoins:: ; 35b1 (0:35b1) +HasEnoughCoins:: +; Check if the player has at least as many +; coins as the 2-byte BCD value at $ffa0.  	ld de, wPlayerCoins  	ld hl, $ffa0 -	ld c, $2 +	ld c, 2  	jp StringCmp +  BankswitchHome:: ; 35bc (0:35bc)  ; switches to bank # in a  ; Only use this when in the home bank! @@ -63,49 +63,55 @@ SpriteOAMParametersFlipped: ; 40a4 (1:40a4)  	db $08,$08, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED  	db $08,$00, OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA -Func_40b0: ; 40b0 (1:40b0) + +Func_40b0:: +; Reset player status on blackout.  	xor a  	ld [$cf0b], a  	ld [$d700], a -	ld [W_ISINBATTLE], a ; $d057 +	ld [W_ISINBATTLE], a  	ld [$d35d], a  	ld [$cf10], a  	ld [hJoyHeld], a  	ld [$cc57], a  	ld [wFlags_0xcd60], a +  	ld [$ff9f], a -	ld [$ffa0], a -	ld [$ffa1], a +	ld [$ff9f + 1], a +	ld [$ff9f + 2], a  	call HasEnoughMoney -	jr c, .asm_40ff -	ld a, [wPlayerMoney] ; $d347 +	jr c, .lostmoney ; never happens + +	; Halve the player's money. +	ld a, [wPlayerMoney]  	ld [$ff9f], a -	ld a, [wPlayerMoney + 1] ; $d348 -	ld [$ffa0], a -	ld a, [wPlayerMoney + 2] ; $d349 -	ld [$ffa1], a +	ld a, [wPlayerMoney + 1] +	ld [$ff9f + 1], a +	ld a, [wPlayerMoney + 2] +	ld [$ff9f + 2], a  	xor a  	ld [$ffa2], a  	ld [$ffa3], a -	ld a, $2 +	ld a, 2  	ld [$ffa4], a -	ld a, $d -	call Predef ; indirect jump to Func_f71e (f71e (3:771e)) +	ld a, $d ; DivideBCDPredef +	call Predef  	ld a, [$ffa2] -	ld [wPlayerMoney], a ; $d347 -	ld a, [$ffa3] -	ld [wPlayerMoney + 1], a ; $d348 -	ld a, [$ffa4] -	ld [wPlayerMoney + 2], a ; $d349 -.asm_40ff +	ld [wPlayerMoney], a +	ld a, [$ffa2 + 1] +	ld [wPlayerMoney + 1], a +	ld a, [$ffa2 + 2] +	ld [wPlayerMoney + 2], a + +.lostmoney  	ld hl, $d732  	set 2, [hl]  	res 3, [hl]  	set 6, [hl] -	ld a, $ff +	ld a, %11111111  	ld [wJoyIgnore], a -	ld a, $7 -	jp Predef ; indirect jump to HealParty (f6a5 (3:76a5)) +	ld a, $7 ; HealParty +	jp Predef  MewPicFront:: INCBIN "pic/bmon/mew.pic"  MewPicBack::  INCBIN "pic/monback/mewb.pic" @@ -5309,12 +5315,10 @@ HealParty:  	ret -; predef $9 -; predef $a -; predef $d -; predef $e -Func_f71e: ; f71e (3:771e) +DivideBCDPredef::  	call GetPredefRegisters + +DivideBCD::  	xor a  	ld [$ffa5], a  	ld [$ffa6], a @@ -5462,15 +5466,18 @@ Func_f800: ; f800 (3:7800)  	ld de, $ffa1  	ld hl, $ffa4  	push bc -	call Func_f839 +	call SubtractBCD  	pop bc  	jr .asm_f803 -Func_f81d: ; f81d (3:781d) + +AddBCDPredef::  	call GetPredefRegisters + +AddBCD::  	and a  	ld b, c -.asm_f822 +.add  	ld a, [de]  	adc [hl]  	daa @@ -5478,25 +5485,26 @@ Func_f81d: ; f81d (3:781d)  	dec de  	dec hl  	dec c -	jr nz, .asm_f822 -	jr nc, .asm_f835 +	jr nz, .add +	jr nc, .done  	ld a, $99  	inc de -.asm_f830 +.fill  	ld [de], a  	inc de  	dec b -	jr nz, .asm_f830 -.asm_f835 +	jr nz, .fill +.done  	ret -Func_f836: ; f836 (3:7836) + +SubtractBCDPredef::  	call GetPredefRegisters -Func_f839: ; f839 (3:7839) +SubtractBCD::  	and a  	ld b, c -.asm_f83b +.sub  	ld a, [de]  	sbc [hl]  	daa @@ -5504,17 +5512,17 @@ Func_f839: ; f839 (3:7839)  	dec de  	dec hl  	dec c -	jr nz, .asm_f83b -	jr nc, .asm_f84f -	ld a, $0 +	jr nz, .sub +	jr nc, .done +	ld a, $00  	inc de -.asm_f849 +.fill  	ld [de], a  	inc de  	dec b -	jr nz, .asm_f849 +	jr nz, .fill  	scf -.asm_f84f +.done  	ret diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm index be0a04fb..19b920c9 100755 --- a/scripts/celadongamecorner.asm +++ b/scripts/celadongamecorner.asm @@ -157,7 +157,7 @@ CeladonGameCornerText2: ; 48ca9 (12:4ca9)  	ld hl, $ffa1  	ld de, $d349  	ld c, $3 -	ld a, $c +	ld a, $c ; SubtractBCDPredef  	call Predef  	xor a  	ldh [$9f], a @@ -167,7 +167,7 @@ CeladonGameCornerText2: ; 48ca9 (12:4ca9)  	ld de, $d5a5  	ld hl, $ffa1  	ld c, $2 -	ld a, $b +	ld a, $b ; AddBCDPredef  	call Predef  	call CeladonGameCornerScript_48f1e  	ld hl, CeladonGameCornerText_48d27 @@ -236,7 +236,7 @@ CeladonGameCornerText5: ; 48d4a (12:4d4a)  	ld de, $d5a5  	ld hl, $ffa1  	ld c, $2 -	ld a, $b +	ld a, $b ; AddBCDPredef  	call Predef  	ld hl, $d77e  	set 2, [hl] @@ -319,7 +319,7 @@ CeladonGameCornerText9: ; 48dd9 (12:4dd9)  	ld de, $d5a5  	ld hl, $ffa1  	ld c, $2 -	ld a, $b +	ld a, $b ; AddBCDPredef  	call Predef  	ld hl, $d77e  	set 4, [hl] @@ -373,7 +373,7 @@ CeladonGameCornerText10: ; 48e3b (12:4e3b)  	ld de, $d5a5  	ld hl, $ffa1  	ld c, $2 -	ld a, $b +	ld a, $b ; AddBCDPredef  	call Predef  	ld hl, $d77e  	set 3, [hl] diff --git a/scripts/daycarem.asm b/scripts/daycarem.asm index 706a7bbf..96cff2ea 100755 --- a/scripts/daycarem.asm +++ b/scripts/daycarem.asm @@ -120,7 +120,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)  	push hl  	push de  	push bc -	ld a, $b +	ld a, $b ; AddBCDPredef  	call Predef  	pop bc  	pop de @@ -156,7 +156,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)  	inc hl  	ld de, $d349  	ld c, $3 -	ld a, $c +	ld a, $c ; SubtractBCDPredef  	call Predef  	ld a, (SFX_02_5a - SFX_Headers_02) / 3  	call PlaySoundWaitForCurrent diff --git a/scripts/mtmoonpokecenter.asm b/scripts/mtmoonpokecenter.asm index 01272c30..0b612310 100755 --- a/scripts/mtmoonpokecenter.asm +++ b/scripts/mtmoonpokecenter.asm @@ -55,7 +55,7 @@ MtMoonPokecenterText4: ; 492ec (12:52ec)  	ld hl, $cd3f  	ld de, $d349  	ld c, $3 -	ld a, $c +	ld a, $c ; SubtractBCDPredef  	call Predef  	ld a, $13  	ld [$d125], a diff --git a/scripts/museum1f.asm b/scripts/museum1f.asm index 94e9d410..b282b67c 100755 --- a/scripts/museum1f.asm +++ b/scripts/museum1f.asm @@ -103,7 +103,7 @@ Museum1FText1: ; 5c135 (17:4135)  	ld hl, $cd3f  	ld de, $d349  	ld c, $3 -	ld a, $c +	ld a, $c ; SubtractBCDPredef  	call Predef  	ld a, $13  	ld [$d125], a diff --git a/scripts/safarizoneentrance.asm b/scripts/safarizoneentrance.asm index ebb3b300..d02bbd48 100755 --- a/scripts/safarizoneentrance.asm +++ b/scripts/safarizoneentrance.asm @@ -176,7 +176,7 @@ SafariZoneEntranceText4: ; 752ca (1d:52ca)  	ld hl, $cd3f  	ld de, $d349  	ld c, $3 -	ld a, $c +	ld a, $c ; SubtractBCDPredef  	call Predef  	ld a, $13  	ld [$d125], a | 
