diff options
Diffstat (limited to 'engine')
108 files changed, 6496 insertions, 5876 deletions
diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index aa9a9882..16a3c3f9 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -1,23 +1,22 @@ -HallOfFameComputer: ; 7405c (1d:405c) +HallOfFamePC: ; 7405c (1d:405c) callba AnimateHallOfFame call ClearScreen ld c, $64 call DelayFrames call DisableLCD - ld hl, $8800 - ld bc, $400 + ld hl, vFont + ld bc, $800 / 2 call Func_74171 - ld hl, $9600 - ld bc, $100 + ld hl, vChars2 + $600 + ld bc, $200 / 2 call Func_74171 - ld hl, $97e0 + ld hl, vChars2 + $7e0 ld bc, $10 ld a, $ff call FillMemory ld hl, wTileMap call Func_7417b - FuncCoord 0, 14 ; $c4b8 - ld hl, Coord + hlCoord 0, 14 call Func_7417b ld a, $c0 ld [rBGP], a ; $ff47 @@ -30,8 +29,8 @@ HallOfFameComputer: ; 7405c (1d:405c) ld c, $80 call DelayFrames xor a - ld [wWhichTrade], a ; $cd3d - ld [$cd3e], a + ld [wWhichTrade], a ; wWhichTrade + ld [wTrainerEngageDistance], a jp Credits Func_740ba: ; 740ba (1d:40ba) @@ -53,29 +52,28 @@ DisplayCreditsMon: ; 740cb (1d:40cb) call FillMiddleOfScreenWithWhite ; display the next monster from CreditsMons - ld hl,$CD3E + ld hl,wTrainerEngageDistance ld c,[hl] ; how many monsters have we displayed so far? inc [hl] ld b,0 ld hl,CreditsMons add hl,bc ; go that far in the list of monsters and get the next one ld a,[hl] - ld [$CF91],a - ld [$D0B5],a - FuncCoord 8, 6 ; $c420 - ld hl,Coord + ld [wcf91],a + ld [wd0b5],a + hlCoord 8, 6 call GetMonHeader call LoadFrontSpriteByMonIndex - ld hl,$980C + ld hl,vBGMap0 + $c call Func_74164 xor a ld [H_AUTOBGTRANSFERENABLED],a call LoadScreenTilesFromBuffer1 - ld hl,$9800 + ld hl,vBGMap0 call Func_74164 ld a,$A7 ld [$FF4B],a - ld hl,$9C00 + ld hl,vBGMap1 call Func_74164 call FillMiddleOfScreenWithWhite ld a,$FC @@ -153,8 +151,7 @@ Func_7417b: ; 7417b (1d:417b) jp FillMemory FillMiddleOfScreenWithWhite: ; 74183 (1d:4183) - FuncCoord 0, 4 ; $c3f0 - ld hl, Coord + hlCoord 0, 4 ld bc, $c8 ; 10 rows of 20 tiles each ld a, $7f ; blank white tile jp FillMemory @@ -164,8 +161,7 @@ Credits: ; 7418e (1d:418e) push de .asm_74192 pop de - FuncCoord 9, 6 ; $c421 - ld hl, Coord + hlCoord 9, 6 push hl call FillMiddleOfScreenWithWhite pop hl @@ -238,20 +234,19 @@ Credits: ; 7418e (1d:418e) call FillMiddleOfScreenWithWhite pop de ld de, TheEndGfx - ld hl, $9600 + ld hl, vChars2 + $600 ld bc, (BANK(TheEndGfx) << 8) + $0a call CopyVideoData - FuncCoord 4, 8 ; $c444 - ld hl, Coord - ld de, UnnamedText_74229 ; $4229 + hlCoord 4, 8 + ld de, TheEndTextString call PlaceString - FuncCoord 4, 9 ; $c458 - ld hl, Coord + hlCoord 4, 9 inc de call PlaceString jp Func_740ba -UnnamedText_74229: ; 74229 (1d:4229) +TheEndTextString: ; 74229 (1d:4229) +; "T H E E N D" db $60," ",$62," ",$64," ",$64," ",$66," ",$68,"@" db $61," ",$63," ",$65," ",$65," ",$67," ",$69,"@" @@ -260,4 +255,4 @@ INCLUDE "data/credits_order.asm" INCLUDE "text/credits_text.asm" TheEndGfx: ; 7473e (1d:473e) ; 473E (473F on blue) - INCBIN "gfx/theend.w40.interleave.2bpp" + INCBIN "gfx/theend.interleave.2bpp" diff --git a/engine/battle/1.asm b/engine/battle/1.asm index 91f7d3b1..04546313 100755 --- a/engine/battle/1.asm +++ b/engine/battle/1.asm @@ -1,5 +1,5 @@ DrainHPEffect_: ; 783f (1:783f) - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE ld a, [hl] srl a ; divide damage by 2 ld [hli], a @@ -11,13 +11,13 @@ DrainHPEffect_: ; 783f (1:783f) inc hl inc [hl] .asm_784f - ld hl, W_PLAYERMONCURHP ; $d015 - ld de, W_PLAYERMONMAXHP ; $d023 + ld hl, wBattleMonHP ; wd015 + ld de, wBattleMonMaxHP ; wd023 ld a, [H_WHOSETURN] ; $fff3 and a jp z, Func_7861 - ld hl, W_ENEMYMONCURHP ; $cfe6 - ld de, W_ENEMYMONMAXHP ; $cff4 + ld hl, wEnemyMonHP ; wEnemyMonHP + ld de, wEnemyMonMaxHP ; wEnemyMonMaxHP Func_7861: ; 7861 (1:7861) ld bc, wHPBarOldHP+1 @@ -33,12 +33,12 @@ Func_7861: ; 7861 (1:7861) ld a, [de] dec bc ld [bc], a - ld a, [$d0d8] + ld a, [wd0d8] ld b, [hl] add b ld [hld], a ld [wHPBarNewHP], a - ld a, [W_DAMAGE] ; $d0d7 + ld a, [W_DAMAGE] ; W_DAMAGE ld b, [hl] adc b ld [hli], a @@ -67,28 +67,23 @@ Func_7861: ; 7861 (1:7861) .asm_789c ld a, [H_WHOSETURN] ; $fff3 and a - FuncCoord 10, 9 ; $c45e - ld hl, Coord + hlCoord 10, 9 ld a, $1 jr z, .asm_78aa - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 xor a .asm_78aa - ld [wListMenuID], a ; $cf94 - ld a, $48 - call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d)) - ld a, $0 - call Predef ; indirect jump to Func_3cd60 (3cd60 (f:4d60)) - ld a, $49 - call Predef ; indirect jump to Func_3cdec (3cdec (f:4dec)) + ld [wListMenuID], a ; wListMenuID + predef UpdateHPBar2 + predef Func_3cd60 + predef Func_3cdec callab ReadPlayerMonCurHPAndStatus ld hl, SuckedHealthText ; $78dc ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + ld a, [W_PLAYERMOVEEFFECT] ; wcfd3 jr z, .asm_78d2 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT .asm_78d2 cp DREAM_EATER_EFFECT jr nz, .asm_78d9 diff --git a/engine/battle/14.asm b/engine/battle/14.asm index 209135af..01d115a6 100755 --- a/engine/battle/14.asm +++ b/engine/battle/14.asm @@ -1,52 +1,52 @@ Func_525af: ; 525af (14:65af) ld a, [$ffd7] - ld [$d0d4], a + ld [wd0d4], a xor a - ld [$cd6a], a - ld [$cf0b], a - ld hl, $cc2b + ld [wcd6a], a + ld [wcf0b], a + ld hl, wcc2b ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [wListScrollOffset], a ; $cc36 - ld [$d05e], a - ld [W_PLAYERMONID], a - ld [W_PLAYERMONSALIVEFLAGS], a - ld [wPlayerMonNumber], a ; $cc2f - ld [$d078], a - ld [$d35d], a - ld hl, $cf1d + ld [wListScrollOffset], a ; wcc36 + ld [wd05e], a + ld [wBattleMonSpecies], a + ld [wPartyAliveFlags], a + ld [wPlayerMonNumber], a ; wPlayerMonNumber + ld [wd078], a + ld [wd35d], a + ld hl, wcf1d ld [hli], a ld [hl], a - ld hl, $ccd3 + ld hl, wccd3 ld b, $3c .asm_525e1 ld [hli], a dec b jr nz, .asm_525e1 inc a - ld [$ccd9], a - ld a, [W_CURMAP] ; $d35e + ld [wccd9], a + ld a, [W_CURMAP] ; W_CURMAP cp SAFARI_ZONE_EAST jr c, .asm_525f9 cp SAFARI_ZONE_REST_HOUSE_1 jr nc, .asm_525f9 ld a, $2 - ld [W_BATTLETYPE], a ; $d05a + ld [W_BATTLETYPE], a ; wd05a .asm_525f9 ld hl, PlayBattleMusic ld b, BANK(PlayBattleMusic) jp Bankswitch ParalyzeEffect_: ; 52601 (14:6601) - ld hl, W_ENEMYMONSTATUS ; $cfe9 - ld de, W_PLAYERMOVETYPE ; $cfd5 + ld hl, wEnemyMonStatus ; wcfe9 + ld de, W_PLAYERMOVETYPE ; wcfd5 ld a, [H_WHOSETURN] ; $fff3 and a jp z, .asm_52613 - ld hl, W_PLAYERMONSTATUS ; $d018 - ld de, W_ENEMYMOVETYPE ; $cfcf + ld hl, wBattleMonStatus ; wBattleMonStatus + ld de, W_ENEMYMOVETYPE ; wcfcf .asm_52613 ld a, [hl] @@ -69,7 +69,7 @@ ParalyzeEffect_: ; 52601 (14:6601) push hl callab MoveHitTest pop hl - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, .asm_52659 set 6, [hl] diff --git a/engine/battle/15.asm b/engine/battle/15.asm index d2e93ab1..69d8ff3f 100755 --- a/engine/battle/15.asm +++ b/engine/battle/15.asm @@ -1,11 +1,11 @@ GainExperience: ; 5524f (15:524f) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] cp $4 ret z call Func_5546c - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) + ld hl, wPartyMons xor a - ld [wWhichPokemon], a ; $cf92 + ld [wWhichPokemon], a Func_5525f: ; 5525f (15:525f) inc hl @@ -13,12 +13,11 @@ Func_5525f: ; 5525f (15:525f) or [hl] jp z, Func_55436 push hl - ld hl, W_PLAYERMONSALIVEFLAGS - ld a, [wWhichPokemon] ; $cf92 + ld hl, wPartyAliveFlags + ld a, [wWhichPokemon] ld c, a ld b, $2 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef FlagActionPredef ld a, c and a pop hl @@ -27,7 +26,7 @@ Func_5525f: ; 5525f (15:525f) add hl, de ld d, h ld e, l - ld hl, $d002 + ld hl, wd002 ld c, $5 .asm_55285 ld a, [hli] @@ -56,26 +55,26 @@ Func_5525f: ; 5525f (15:525f) jr .asm_55285 .asm_552a1 xor a - ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND) - ld [$ff97], a - ld a, [$d008] - ld [$ff98], a - ld a, [W_ENEMYMONLEVEL] ; $cff3 - ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) + ld [H_MULTIPLICAND], a + ld [H_MULTIPLICAND + 1], a + ld a, [wd008] + ld [H_MULTIPLICAND + 2], a + ld a, [wEnemyMonLevel] + ld [H_MULTIPLIER], a call Multiply - ld a, $7 - ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) - ld b, $4 + ld a, 7 + ld [H_DIVISOR], a + ld b, 4 call Divide ld hl, $fff2 add hl, de ld b, [hl] inc hl - ld a, [wPlayerID] ; $d359 + ld a, [wPlayerID] cp b jr nz, .asm_552d1 ld b, [hl] - ld a, [wPlayerID + 1] ; $d35a + ld a, [wPlayerID + 1] cp b ld a, $0 jr z, .asm_552d6 @@ -83,8 +82,8 @@ Func_5525f: ; 5525f (15:525f) call Func_5549f ld a, $1 .asm_552d6 - ld [$cf4d], a - ld a, [W_ISINBATTLE] ; $d057 + ld [wcf4d], a + ld a, [W_ISINBATTLE] dec a call nz, Func_5549f inc hl @@ -92,12 +91,12 @@ Func_5525f: ; 5525f (15:525f) inc hl ld b, [hl] ld a, [$ff98] - ld [$cf4c], a + ld [wcf4c], a add b ld [hld], a ld b, [hl] ld a, [$ff97] - ld [$cf4b], a + ld [wcf4b], a adc b ld [hl], a jr nc, .asm_552f8 @@ -107,17 +106,17 @@ Func_5525f: ; 5525f (15:525f) .asm_552f8 inc hl push hl - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ld c, a - ld b, $0 - ld hl, W_PARTYMON1 ; $d164 + ld b, 0 + ld hl, wPartySpecies add hl, bc ld a, [hl] - ld [$d0b5], a + ld [wd0b5], a call GetMonHeader - ld d, $64 + ld d, MAX_LEVEL callab CalcExperience - ld a, [H_NUMTOPRINT] ; $ff96 (aliases: H_MULTIPLICAND) + ld a, [$ff96] ld b, a ld a, [$ff97] ld c, a @@ -140,13 +139,13 @@ Func_5525f: ; 5525f (15:525f) dec hl .asm_5532e push hl - ld a, [wWhichPokemon] ; $cf92 - ld hl, W_PARTYMON1NAME ; $d2b5 + ld a, [wWhichPokemon] + ld hl, wPartyMonNicks call GetPartyMonName ld hl, GainedText call PrintText xor a - ld [$cc49], a + ld [wcc49], a call LoadMonData pop hl ld bc, $13 @@ -157,17 +156,17 @@ Func_5525f: ; 5525f (15:525f) ld a, [hl] cp d jp z, Func_55436 - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] push af push hl ld a, d - ld [W_CURENEMYLVL], a ; $d127 + ld [W_CURENEMYLVL], a ld [hl], a ld bc, $ffdf add hl, bc ld a, [hl] - ld [$d0b5], a - ld [$d11e], a + ld [wd0b5], a + ld [wd11e], a call GetMonHeader ld bc, $23 add hl, bc @@ -198,12 +197,12 @@ Func_5525f: ; 5525f (15:525f) ld a, [hl] adc b ld [hl], a - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ld b, a - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] cp b jr nz, .asm_553f7 - ld de, W_PLAYERMONCURHP ; $d015 + ld de, wBattleMonHP ld a, [hli] ld [de], a inc de @@ -212,19 +211,19 @@ Func_5525f: ; 5525f (15:525f) ld bc, $1f add hl, bc push hl - ld de, W_PLAYERMONLEVEL ; $d022 + ld de, wBattleMonLevel ; wBattleMonLevel ld bc, $b call CopyData pop hl - ld a, [W_PLAYERBATTSTATUS3] ; $d064 + ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3 bit 3, a jr nz, .asm_553c8 - ld de, $cd0f + ld de, wcd0f ld bc, $b call CopyData .asm_553c8 xor a - ld [$d11e], a + ld [wd11e], a callab Func_3ed99 callab Func_3ed1a callab Func_3ee19 @@ -235,59 +234,55 @@ Func_5525f: ; 5525f (15:525f) ld hl, GrewLevelText call PrintText xor a - ld [$cc49], a + ld [wcc49], a call LoadMonData ld d, $1 callab PrintStatsBox call WaitForTextScrollButtonPress call LoadScreenTilesFromBuffer1 xor a - ld [$cc49], a - ld a, [$d0b5] - ld [$d11e], a - ld a, $1a - call Predef ; indirect jump to Func_3af5b (3af5b (e:6f5b)) - ld hl, $ccd3 - ld a, [wWhichPokemon] ; $cf92 + ld [wcc49], a + ld a, [wd0b5] + ld [wd11e], a + predef Func_3af5b + ld hl, wccd3 + ld a, [wWhichPokemon] ; wWhichPokemon ld c, a ld b, $1 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef FlagActionPredef pop hl pop af - ld [W_CURENEMYLVL], a ; $d127 + ld [W_CURENEMYLVL], a ; W_CURENEMYLVL Func_55436: ; 55436 (15:5436) - ld a, [W_NUMINPARTY] ; $d163 + ld a, [wPartyCount] ; wPartyCount ld b, a - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon inc a cp b jr z, .asm_55450 - ld [wWhichPokemon], a ; $cf92 + ld [wWhichPokemon], a ; wWhichPokemon ld bc, $2c - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) + ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1) call AddNTimes jp Func_5525f .asm_55450 - ld hl, W_PLAYERMONSALIVEFLAGS + ld hl, wPartyAliveFlags xor a ld [hl], a - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld c, a ld b, $1 push bc - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) - ld hl, $ccf5 + predef FlagActionPredef + ld hl, wccf5 xor a ld [hl], a pop bc - ld a, $10 - jp Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef_jump FlagActionPredef Func_5546c: ; 5546c (15:546c) - ld a, [W_PLAYERMONSALIVEFLAGS] + ld a, [wPartyAliveFlags] ld b, a xor a ld c, $8 @@ -301,15 +296,15 @@ Func_5546c: ; 5546c (15:546c) jr nz, .asm_55475 cp $2 ret c - ld [$d11e], a - ld hl, $d002 + ld [wd11e], a + ld hl, wd002 ld c, $7 .asm_55488 xor a ld [H_DIVIDEND], a ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT) ld a, [hl] ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND) - ld a, [$d11e] + ld a, [wd11e] ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) ld b, $2 call Divide @@ -336,12 +331,12 @@ Func_5549f: ; 5549f (15:549f) GainedText: ; 554b2 (15:54b2) TX_FAR _GainedText db $08 ; asm - ld a, [$cc5b] + ld a, [wcc5b] ld hl, WithExpAllText and a ret nz ld hl, ExpPointsText - ld a, [$cf4d] + ld a, [wcf4d] and a ret z ld hl, BoostedText diff --git a/engine/battle/16.asm b/engine/battle/16.asm index f2f4ada9..1500d003 100755 --- a/engine/battle/16.asm +++ b/engine/battle/16.asm @@ -1,17 +1,17 @@ PrintBeginningBattleText: ; 58d99 (16:4d99) - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr nz, .trainerBattle - ld a, [W_CURMAP] ; $d35e + ld a, [W_CURMAP] ; W_CURMAP cp POKEMONTOWER_3 jr c, .notPokemonTower cp LAVENDER_HOUSE_1 jr c, .pokemonTower .notPokemonTower - ld a, [W_ENEMYMONID] + ld a, [wEnemyMonSpecies2] call PlayCry ld hl, WildMonAppearedText - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr z, .notFishing ld hl, HookedMonAttackedText @@ -31,8 +31,8 @@ PrintBeginningBattleText: ; 58d99 (16:4d99) .pokemonTower ld b, SILPH_SCOPE call IsItemInBag - ld a, [W_ENEMYMONID] - ld [$cf91], a + ld a, [wEnemyMonSpecies2] + ld [wcf91], a cp MAROWAK jr z, .isMarowak ld a, b @@ -61,9 +61,9 @@ PrintBeginningBattleText: ; 58d99 (16:4d99) .playSFX xor a - ld [$c0f1], a + ld [wc0f1], a ld a, $80 - ld [$c0f2], a + ld [wc0f2], a ld a, (SFX_08_77 - SFX_Headers_08) / 3 call PlaySound jp WaitForSoundToFinish @@ -95,24 +95,24 @@ GhostCantBeIDdText: ; 58e54 (16:4e54) db "@" SendOutMon: ; 58e59 (16:4e59) - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] or [hl] ld hl, GoText jr z, .printText xor a ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND) - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] - ld [$cce3], a + ld [wcce3], a ld [$ff97], a ld a, [hl] - ld [$cce4], a + ld [wcce4], a ld [$ff98], a ld a, $19 ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) call Multiply - ld hl, W_ENEMYMONMAXHP ; $cff4 + ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP ld a, [hli] ld b, [hl] srl a @@ -173,8 +173,8 @@ PlayerMon2Text: ; 58ed7 (16:4ed7) db $08 ; asm push de push bc - ld hl, $cfe7 - ld de, $cce4 + ld hl, wEnemyMonHP + 1 + ld de, wcce4 ld b, [hl] dec hl ld a, [de] @@ -188,7 +188,7 @@ PlayerMon2Text: ; 58ed7 (16:4ed7) ld a, $19 ld [H_POWEROFTEN], a call Multiply - ld hl, W_ENEMYMONMAXHP + ld hl, wEnemyMonMaxHP ld a, [hli] ld b, [hl] srl a diff --git a/engine/battle/1a.asm b/engine/battle/1a.asm index 2770a459..6b502a31 100755 --- a/engine/battle/1a.asm +++ b/engine/battle/1a.asm @@ -11,10 +11,10 @@ DecrementPP: ; 68000 (1a:4000) ret nz ; if any of these statuses are true, don't decrement PP bit 6, [hl] ; check 6th bit status flag on W_PLAYERBATTSTATUS2 ret nz ; and return if it is set - ld hl, $D02D ; PP of first move (in battle) + ld hl, wBattleMonPP ; PP of first move (in battle) call .DecrementPP - ld a, [$D064] ; load pokemon status bits? + ld a, [W_PLAYERBATTSTATUS3] ; load pokemon status bits? bit 3, a ; XXX transform status? ret nz ; If it is, return. Pokemon Red stores the "current pokemon's" PP ; separately from the "Pokemon in your party's" PP. This is @@ -26,12 +26,12 @@ DecrementPP: ; 68000 (1a:4000) ; its opponent, which is *not* the same as its real PP as part of your ; party. So we return, and don't do that part. - ld hl, $D188 ; PP of first move (in party) - ld a, [$CC2F] ; which mon in party is active + ld hl, wPartyMon1PP ; PP of first move (in party) + ld a, [wPlayerMonNumber] ; which mon in party is active ld bc, $2C ; XXX probably size of party pokemon's data structure call AddNTimes ; calculate address of the mon to modify .DecrementPP - ld a, [$CC2E] ; which move (0, 1, 2, 3) did we use? + ld a, [wPlayerMoveListIndex] ; which move (0, 1, 2, 3) did we use? ld c, a ld b, 0 add hl ,bc ; calculate the address in memory of the PP we need to decrement diff --git a/engine/battle/1c.asm b/engine/battle/1c.asm index 1f07807a..b3b24007 100755 --- a/engine/battle/1c.asm +++ b/engine/battle/1c.asm @@ -2,15 +2,14 @@ Func_708ca: ; 708ca (1c:48ca) ld a, $e4 ld [rOBP1], a ; $ff49 call Func_7092a - FuncCoord 12, 0 ; $c3ac - ld hl, Coord + hlCoord 12, 0 ld bc, $707 call ClearScreenArea call Delay3 xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld a, $91 - ld [$cee9], a + ld [wHPBarMaxHP], a ld a, $1 ld [H_WHOSETURN], a ; $fff3 callab Func_79793 @@ -24,7 +23,7 @@ Func_708ca: ; 708ca (1c:48ca) sla a ld [rOBP1], a ; $ff49 jr nz, .asm_708f6 - call CleanLCD_OAM + call ClearSprites call Func_7092a ld b, $e4 .asm_7090d @@ -42,30 +41,30 @@ Func_708ca: ; 708ca (1c:48ca) ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba call Delay3 - jp CleanLCD_OAM + jp ClearSprites Func_7092a: ; 7092a (1c:492a) - ld de, $9000 - ld hl, $8000 - ld bc, $31 + ld de, vFrontPic + ld hl, vSprites + ld bc, 7 * 7 call CopyVideoData ld a, $10 - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 ld a, $70 - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld hl, wOAMBuffer ld bc, $606 ld d, $8 .asm_70948 push bc - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 ld e, a .asm_7094d ld a, e add $8 ld e, a ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 ld [hli], a ld a, d ld [hli], a @@ -75,44 +74,44 @@ Func_7092a: ; 7092a (1c:492a) dec c jr nz, .asm_7094d inc d - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 add $8 - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 pop bc dec b jr nz, .asm_70948 ret -Func_7096d: ; 7096d (1c:496d) +BattleTransition: ; 7096d (1c:496d) ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a call Delay3 xor a ld [$ffb0], a dec a - ld [$cfcb], a + ld [wcfcb], a call DelayFrame - ld hl, $c102 - ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c + ld hl, wSpriteStateData1 + 2 + ld a, [H_DOWNARROWBLINKCNT2] ld c, a ld b, $0 ld de, $10 -.asm_70989 +.loop1 ld a, [hl] cp $ff - jr z, .asm_7098f + jr z, .skip1 inc b -.asm_7098f +.skip1 add hl, de dec c - jr nz, .asm_70989 - ld hl, $c310 + jr nz, .loop1 + ld hl, wOAMBuffer + $10 ld c, $9 -.asm_70998 +.loop2 ld a, b swap a cp l - jr z, .asm_709a9 + jr z, .skip2 push hl push bc ld bc, $10 @@ -120,22 +119,22 @@ Func_7096d: ; 7096d (1c:496d) call FillMemory pop bc pop hl -.asm_709a9 +.skip2 ld de, $10 add hl, de dec c - jr nz, .asm_70998 + jr nz, .loop2 call Delay3 call LoadBattleTransitionTile ld bc, $0 - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] cp $4 - jr z, .asm_709c9 - call Func_709e2 - call Func_709ef - call Func_70a19 -.asm_709c9 - ld hl, PointerTable_709d2 ; $49d2 + jr z, .linkBattle + call GetBattleTransitionID_WildOrTrainer + call GetBattleTransitionID_CompareLevels + call GetBattleTransitionID_IsDungeonMap +.linkBattle + ld hl, BattleTransitions add hl, bc add hl, bc ld a, [hli] @@ -143,94 +142,105 @@ Func_7096d: ; 7096d (1c:496d) ld l, a jp [hl] -PointerTable_709d2: ; 709d2 (1c:49d2) - dw Func_70d24 - dw Func_70a72 - dw Func_70ce4 - dw Func_70a72 - dw Func_70cb4 - dw Func_70b7f - dw Func_70c7e - dw Func_70bca - -Func_709e2: ; 709e2 (1c:49e2) - ld a, [W_CUROPPONENT] ; $d059 +; the three GetBattleTransitionID functions set the first +; three bits of c, which determines what transition animation +; to play at the beginning of a battle +; bit 0: set if trainer battle +; bit 1: set if enemy is at least 3 levels higher than player +; bit 2: set if dungeon map +BattleTransitions: ; 709d2 (1c:49d2) + dw BattleTransition_DoubleCircle ; %000 + dw BattleTransition_Spiral ; %001 + dw BattleTransition_Circle ; %010 + dw BattleTransition_Spiral ; %011 + dw BattleTransition_HorizontalStripes ; %100 + dw BattleTransition_Shrink ; %101 + dw BattleTransition_VerticalStripes ; %110 + dw BattleTransition_Split ; %111 + +GetBattleTransitionID_WildOrTrainer: ; 709e2 (1c:49e2) + ld a, [W_CUROPPONENT] cp $c8 - jr nc, .asm_709ec + jr nc, .trainer res 0, c ret -.asm_709ec +.trainer set 0, c ret -Func_709ef: ; 709ef (1c:49ef) - ld hl, W_PARTYMON1_HP ; $d16c -.asm_709f2 +GetBattleTransitionID_CompareLevels: ; 709ef (1c:49ef) + ld hl, wPartyMon1HP +.faintedLoop ld a, [hli] or [hl] - jr nz, .asm_709fc - ld de, $2b + jr nz, .notFainted + ld de, wPartyMon2 - (wPartyMon1 + 1) add hl, de - jr .asm_709f2 -.asm_709fc - ld de, $1f + jr .faintedLoop +.notFainted + ld de, wPartyMon1Level - (wPartyMon1HP + 1) add hl, de ld a, [hl] add $3 ld e, a - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] sub e - jr nc, .asm_70a12 + jr nc, .highLevelEnemy res 1, c ld a, $1 - ld [$cd47], a + ld [wcd47], a ret -.asm_70a12 +.highLevelEnemy set 1, c xor a - ld [$cd47], a + ld [wcd47], a ret -Func_70a19: ; 70a19 (1c:4a19) - ld a, [W_CURMAP] ; $d35e +; fails to recognize VICTORY_ROAD_2, VICTORY_ROAD_3, all ROCKET_HIDEOUT maps, +; MANSION_1, SEAFOAM_ISLANDS_[2-5], POWER_PLANT, DIGLETTS_CAVE +; and SILPH_CO_[9-11]F as dungeon maps +GetBattleTransitionID_IsDungeonMap: ; 70a19 (1c:4a19) + ld a, [W_CURMAP] ld e, a - ld hl, MapIDList_70a3f ; $4a3f -.asm_70a20 + ld hl, DungeonMaps1 +.loop1 ld a, [hli] cp $ff - jr z, .asm_70a2b + jr z, .noMatch1 cp e - jr nz, .asm_70a20 -.asm_70a28 + jr nz, .loop1 +.match set 2, c ret -.asm_70a2b - ld hl, MapIDList_70a44 ; $4a44 -.asm_70a2e +.noMatch1 + ld hl, DungeonMaps2 +.loop2 ld a, [hli] cp $ff - jr z, .asm_70a3c + jr z, .noMatch2 ld d, a ld a, [hli] cp e - jr c, .asm_70a2e + jr c, .loop2 ld a, e cp d - jr nc, .asm_70a28 -.asm_70a3c + jr nc, .match +.noMatch2 res 2, c ret -; Func_70a19 checks if W_CURMAP is equal to one of these maps -MapIDList_70a3f: ; 70a3f (1c:4a3f) +; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP +; is equal to one of these maps +DungeonMaps1: ; 70a3f (1c:4a3f) db VIRIDIAN_FOREST db ROCK_TUNNEL_1 db SEAFOAM_ISLANDS_1 db ROCK_TUNNEL_2 db $FF -; Func_70a19 checks if W_CURMAP is in between or equal to each pair of maps -MapIDList_70a44: ; 70a44 (1c:4a44) +; GetBattleTransitionID_IsDungeonMap checks if W_CURMAP +; is in between or equal to each pair of maps +DungeonMaps2: ; 70a44 (1c:4a44) ; all MT_MOON maps db MT_MOON_1 db MT_MOON_3 @@ -243,282 +253,274 @@ MapIDList_70a44: ; 70a44 (1c:4a44) db LAVENDER_POKECENTER db LAVENDER_HOUSE_2 - ; all SILPH_CO, MANSION, SAFARI_ZONE, and UNKNOWN_DUNGEON maps, + ; SILPH_CO_[2-8]F, MANSION[2-4], SAFARI_ZONE, and UNKNOWN_DUNGEON maps, ; except for SILPH_CO_1F db SILPH_CO_2F db UNKNOWN_DUNGEON_1 db $FF LoadBattleTransitionTile: ; 70a4d (1c:4a4d) - ld hl, $8ff0 - ld de, BattleTransitionTile ; $4a59 + ld hl, vChars1 + $7f0 + ld de, BattleTransitionTile ld bc, (BANK(BattleTransitionTile) << 8) + $01 jp CopyVideoData BattleTransitionTile: ; 70a59 (1c:4a59) INCBIN "gfx/battle_transition.2bpp" -Func_70a69: ; 70a69 (1c:4a69) +BattleTransition_BlackScreen: ; 70a69 (1c:4a69) ld a, $ff ld [rBGP], a ; $ff47 ld [rOBP0], a ; $ff48 ld [rOBP1], a ; $ff49 ret -Func_70a72: ; 70a72 (1c:4a72) - ld a, [$cd47] +; for non-dungeon trainer battles +; called regardless of mon levels, but does an +; outward spiral if enemy is at least 3 levels +; higher than player and does an inward spiral otherwise +BattleTransition_Spiral: ; 70a72 (1c:4a72) + ld a, [wcd47] and a - jr z, .asm_70a7d - call Func_70aaa - jr .asm_70a9f -.asm_70a7d - FuncCoord 10, 10 ; $c472 - ld hl, Coord + jr z, .outwardSpiral + call BattleTransition_InwardSpiral + jr .done +.outwardSpiral + hlCoord 10, 10 ld a, $3 - ld [$d09f], a + ld [wd09f], a ld a, l - ld [$d09b], a + ld [wd09b], a ld a, h - ld [$d09a], a + ld [wd09a], a ld b, $78 -.asm_70a8f +.loop1 ld c, $3 -.asm_70a91 +.loop2 push bc - call Func_70af9 + call BattleTransition_OutwardSpiral_ pop bc dec c - jr nz, .asm_70a91 + jr nz, .loop2 call DelayFrame dec b - jr nz, .asm_70a8f -.asm_70a9f - call Func_70a69 + jr nz, .loop1 +.done + call BattleTransition_BlackScreen xor a - ld [$d09b], a - ld [$d09a], a + ld [wd09b], a + ld [wd09a], a ret -Func_70aaa: ; 70aaa (1c:4aaa) +BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa) ld a, $7 - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ld hl, wTileMap ld c, $11 ld de, $14 - call Func_70ae0 + call BattleTransition_InwardSpiral_ inc c - jr .asm_70ac3 -.asm_70abd + jr .skip +.loop ld de, $14 - call Func_70ae0 -.asm_70ac3 + call BattleTransition_InwardSpiral_ +.skip inc c ld de, $1 - call Func_70ae0 + call BattleTransition_InwardSpiral_ dec c dec c ld de, $ffec - call Func_70ae0 + call BattleTransition_InwardSpiral_ inc c - ld de, rIE ; $ffff - call Func_70ae0 + ld de, rIE + call BattleTransition_InwardSpiral_ dec c dec c ld a, c and a - jr nz, .asm_70abd + jr nz, .loop ret -Func_70ae0: ; 70ae0 (1c:4ae0) +BattleTransition_InwardSpiral_: ; 70ae0 (1c:4ae0) push bc -.asm_70ae1 +.loop ld [hl], $ff add hl, de push bc - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] dec a - jr nz, .asm_70af0 - call Func_70d19 + jr nz, .skip + call BattleTransition_TransferDelay3 ld a, $7 -.asm_70af0 - ld [wWhichTrade], a ; $cd3d +.skip + ld [wWhichTrade], a pop bc dec c - jr nz, .asm_70ae1 + jr nz, .loop pop bc ret -Func_70af9: ; 70af9 (1c:4af9) +BattleTransition_OutwardSpiral_: ; 70af9 (1c:4af9) ld bc, $ffec ld de, $14 - ld a, [$d09b] + ld a, [wd09b] ld l, a - ld a, [$d09a] + ld a, [wd09a] ld h, a - ld a, [$d09f] + ld a, [wd09f] cp $0 - jr z, .asm_70b25 + jr z, .zero cp $1 - jr z, .asm_70b2f + jr z, .one cp $2 - jr z, .asm_70b39 + jr z, .two cp $3 - jr z, .asm_70b43 -.asm_70b1a + jr z, .three +.done1 ld [hl], $ff -.asm_70b1c +.done2_ ld a, l - ld [$d09b], a + ld [wd09b], a ld a, h - ld [$d09a], a + ld [wd09a], a ret -.asm_70b25 +.zero dec hl ld a, [hl] cp $ff - jr nz, .asm_70b4d + jr nz, .done2 inc hl add hl, bc - jr .asm_70b1a -.asm_70b2f + jr .done1 +.one add hl, de ld a, [hl] cp $ff - jr nz, .asm_70b4d + jr nz, .done2 add hl, bc dec hl - jr .asm_70b1a -.asm_70b39 + jr .done1 +.two inc hl ld a, [hl] cp $ff - jr nz, .asm_70b4d + jr nz, .done2 dec hl add hl, de - jr .asm_70b1a -.asm_70b43 + jr .done1 +.three add hl, bc ld a, [hl] cp $ff - jr nz, .asm_70b4d + jr nz, .done2 add hl, de inc hl - jr .asm_70b1a -.asm_70b4d + jr .done1 +.done2 ld [hl], $ff - ld a, [$d09f] + ld a, [wd09f] inc a cp $4 - jr nz, .asm_70b58 + jr nz, .skip xor a -.asm_70b58 - ld [$d09f], a - jr .asm_70b1c - -Func_70b5d: ; 70b5d (1c:4b5d) - ld hl, DataTable_70b72 ; $4b72 -.asm_70b60 +.skip + ld [wd09f], a + jr .done2_ + +FlashScreen: +BattleTransition_FlashScreen_: ; 70b5d (1c:4b5d) + ld hl, BattleTransition_FlashScreenPalettes +.loop ld a, [hli] cp $1 - jr z, .asm_70b6e - ld [rBGP], a ; $ff47 + jr z, .done + ld [rBGP], a ld c, $2 call DelayFrames - jr .asm_70b60 -.asm_70b6e + jr .loop +.done dec b - jr nz, Func_70b5d + jr nz, BattleTransition_FlashScreen_ ret -DataTable_70b72: ; 70b72 (1c:4b72) +BattleTransition_FlashScreenPalettes: ; 70b72 (1c:4b72) db $F9,$FE,$FF,$FE,$F9,$E4,$90,$40,$00,$40,$90,$E4 db $01 ; terminator -Func_70b7f: ; 70b7f (1c:4b7f) +; used for low level trainer dungeon battles +BattleTransition_Shrink: ; 70b7f (1c:4b7f) ld c, $9 -.asm_70b81 +.loop push bc xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - FuncCoord 0, 7 ; $c42c - ld hl, Coord - FuncCoord 0, 8 ; $c440 - ld de, Coord + ld [H_AUTOBGTRANSFERENABLED], a + hlCoord 0, 7 + deCoord 0, 8 ld bc, $ffd8 - call Func_70c12 - FuncCoord 0, 10 ; $c468 - ld hl, Coord - FuncCoord 0, 9 ; $c454 - ld de, Coord + call BattleTransition_CopyTiles1 + hlCoord 0, 10 + deCoord 0, 9 ld bc, $28 - call Func_70c12 - FuncCoord 8, 0 ; $c3a8 - ld hl, Coord - FuncCoord 9, 0 ; $c3a9 - ld de, Coord + call BattleTransition_CopyTiles1 + hlCoord 8, 0 + deCoord 9, 0 ld bc, $fffe - call Func_70c3f - FuncCoord 11, 0 ; $c3ab - ld hl, Coord - FuncCoord 10, 0 ; $c3aa - ld de, Coord + call BattleTransition_CopyTiles2 + hlCoord 11, 0 + deCoord 10, 0 ld bc, $2 - call Func_70c3f + call BattleTransition_CopyTiles2 ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a ld c, $6 call DelayFrames pop bc dec c - jr nz, .asm_70b81 - call Func_70a69 + jr nz, .loop + call BattleTransition_BlackScreen ld c, $a jp DelayFrames -Func_70bca: ; 70bca (1c:4bca) +; used for high level trainer dungeon battles +BattleTransition_Split: ; 70bca (1c:4bca) ld c, $9 xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba -.asm_70bcf + ld [H_AUTOBGTRANSFERENABLED], a +.loop push bc - FuncCoord 0, 16 ; $c4e0 - ld hl, Coord - FuncCoord 0, 17 ; $c4f4 - ld de, Coord + hlCoord 0, 16 + deCoord 0, 17 ld bc, $ffd8 - call Func_70c12 - FuncCoord 0, 1 ; $c3b4 - ld hl, Coord + call BattleTransition_CopyTiles1 + hlCoord 0, 1 ld de, wTileMap ld bc, $28 - call Func_70c12 - FuncCoord 18, 0 ; $c3b2 - ld hl, Coord - FuncCoord 19, 0 ; $c3b3 - ld de, Coord + call BattleTransition_CopyTiles1 + hlCoord 18, 0 + deCoord 19, 0 ld bc, $fffe - call Func_70c3f - FuncCoord 1, 0 ; $c3a1 - ld hl, Coord + call BattleTransition_CopyTiles2 + hlCoord 1, 0 ld de, wTileMap ld bc, $2 - call Func_70c3f - call Func_70d19 + call BattleTransition_CopyTiles2 + call BattleTransition_TransferDelay3 call Delay3 pop bc dec c - jr nz, .asm_70bcf - call Func_70a69 + jr nz, .loop + call BattleTransition_BlackScreen ld c, $a jp DelayFrames -Func_70c12: ; 70c12 (1c:4c12) +BattleTransition_CopyTiles1: ; 70c12 (1c:4c12) ld a, c - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ld a, b - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld c, $8 -.asm_70c1c +.loop1 push bc push hl push de @@ -526,89 +528,89 @@ Func_70c12: ; 70c12 (1c:4c12) call CopyData pop hl pop de - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ld c, a - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] ld b, a add hl, bc pop bc dec c - jr nz, .asm_70c1c + jr nz, .loop1 ld l, e ld h, d ld a, $ff ld c, $14 -.asm_70c3a +.loop2 ld [hli], a dec c - jr nz, .asm_70c3a + jr nz, .loop2 ret -Func_70c3f: ; 70c3f (1c:4c3f) +BattleTransition_CopyTiles2: ; 70c3f (1c:4c3f) ld a, c - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ld a, b - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld c, $9 -.asm_70c49 +.loop1 push bc push hl push de ld c, $12 -.asm_70c4e +.loop2 ld a, [hl] ld [de], a ld a, e add $14 - jr nc, .asm_70c56 + jr nc, .noCarry1 inc d -.asm_70c56 +.noCarry1 ld e, a ld a, l add $14 - jr nc, .asm_70c5d + jr nc, .noCarry2 inc h -.asm_70c5d +.noCarry2 ld l, a dec c - jr nz, .asm_70c4e + jr nz, .loop2 pop hl pop de - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ld c, a - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] ld b, a add hl, bc pop bc dec c - jr nz, .asm_70c49 + jr nz, .loop1 ld l, e ld h, d ld de, $14 ld c, $12 -.asm_70c77 +.loop3 ld [hl], $ff add hl, de dec c - jr nz, .asm_70c77 + jr nz, .loop3 ret -Func_70c7e: ; 70c7e (1c:4c7e) +; used for high level wild dungeon battles +BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e) ld c, $12 ld hl, wTileMap - FuncCoord 1, 17 ; $c4f5 - ld de, Coord + deCoord 1, 17 xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba -.asm_70c89 + ld [H_AUTOBGTRANSFERENABLED], a +.loop push bc push hl push de push de - call Func_70caa + call BattleTransition_VerticalStripes_ pop hl - call Func_70caa - call Func_70d19 + call BattleTransition_VerticalStripes_ + call BattleTransition_TransferDelay3 pop hl ld bc, $ffec add hl, bc @@ -619,109 +621,115 @@ Func_70c7e: ; 70c7e (1c:4c7e) add hl, bc pop bc dec c - jr nz, .asm_70c89 - jp Func_70a69 + jr nz, .loop + jp BattleTransition_BlackScreen -Func_70caa: ; 70caa (1c:4caa) +BattleTransition_VerticalStripes_: ; 70caa (1c:4caa) ld c, $a -.asm_70cac +.loop ld [hl], $ff inc hl inc hl dec c - jr nz, .asm_70cac + jr nz, .loop ret -Func_70cb4: ; 70cb4 (1c:4cb4) +; used for low level wild dungeon battles +BattleTransition_HorizontalStripes: ; 70cb4 (1c:4cb4) ld c, $14 ld hl, wTileMap - FuncCoord 19, 1 ; $c3c7 - ld de, Coord + deCoord 19, 1 xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba -.asm_70cbf + ld [H_AUTOBGTRANSFERENABLED], a +.loop push bc push hl push de push de - call Func_70cd8 + call BattleTransition_HorizontalStripes_ pop hl - call Func_70cd8 - call Func_70d19 + call BattleTransition_HorizontalStripes_ + call BattleTransition_TransferDelay3 pop de pop hl pop bc inc hl dec de dec c - jr nz, .asm_70cbf - jp Func_70a69 + jr nz, .loop + jp BattleTransition_BlackScreen -Func_70cd8: ; 70cd8 (1c:4cd8) +BattleTransition_HorizontalStripes_: ; 70cd8 (1c:4cd8) ld c, $9 ld de, $28 -.asm_70cdd +.loop ld [hl], $ff add hl, de dec c - jr nz, .asm_70cdd + jr nz, .loop ret -Func_70ce4: ; 70ce4 (1c:4ce4) - call Func_70cfd +; used for high level wild non-dungeon battles +; makes one full circle around the screen +; by animating each half circle one at a time +BattleTransition_Circle: ; 70ce4 (1c:4ce4) + call BattleTransition_FlashScreen ld bc, $000a - ld hl, Unknown_70d61 - call Func_70d06 + ld hl, BattleTransition_HalfCircle1 + call BattleTransition_Circle_Sub1 ld c, $a ld b, $1 - ld hl, Unknown_70d93 - call Func_70d06 - jp Func_70a69 + ld hl, BattleTransition_HalfCircle2 + call BattleTransition_Circle_Sub1 + jp BattleTransition_BlackScreen -Func_70cfd: ; 70cfd (1c:4cfd) +BattleTransition_FlashScreen: ; 70cfd (1c:4cfd) ld b, $3 - call Func_70b5d + call BattleTransition_FlashScreen_ xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a ret -Func_70d06: ; 70d06 (1c:4d06) +BattleTransition_Circle_Sub1: ; 70d06 (1c:4d06) push bc push hl ld a, b - call Func_70d50 + call BattleTransition_Circle_Sub2 pop hl ld bc, $0005 add hl, bc - call Func_70d19 + call BattleTransition_TransferDelay3 pop bc dec c - jr nz, Func_70d06 + jr nz, BattleTransition_Circle_Sub1 ret -Func_70d19: ; 70d19 (1c:4d19) +BattleTransition_TransferDelay3: ; 70d19 (1c:4d19) ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a call Delay3 xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a ret -Func_70d24: ; 70d24 (1c:4d24) - call Func_70cfd +; used for low level wild non-dungeon battles +; makes two half circles around the screen +; by animating both half circles at the same time +BattleTransition_DoubleCircle: ; 70d24 (1c:4d24) + call BattleTransition_FlashScreen ld c, $a - ld hl, Unknown_70d61 ; $4d61 - ld de, Unknown_70d93 ; $4d93 -.asm_70d2f + ld hl, BattleTransition_HalfCircle1 + ld de, BattleTransition_HalfCircle2 +.loop push bc push hl push de push de xor a - call Func_70d50 + call BattleTransition_Circle_Sub2 pop hl ld a, $1 - call Func_70d50 + call BattleTransition_Circle_Sub2 pop hl ld bc, $5 add hl, bc @@ -729,16 +737,16 @@ Func_70d24: ; 70d24 (1c:4d24) ld d, h pop hl add hl, bc - call Func_70d19 + call BattleTransition_TransferDelay3 pop bc dec c - jr nz, .asm_70d2f - jp Func_70a69 + jr nz, .loop + jp BattleTransition_BlackScreen -Func_70d50: ; 70d50 (1c:4d50) - ld [wWhichTrade], a ; $cd3d +BattleTransition_Circle_Sub2: ; 70d50 (1c:4d50) + ld [wWhichTrade], a ld a, [hli] - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld a, [hli] ld e, a ld a, [hli] @@ -746,166 +754,146 @@ Func_70d50: ; 70d50 (1c:4d50) ld a, [hli] ld h, [hl] ld l, a - jp Func_70dc5 + jp BattleTransition_Circle_Sub3 -Unknown_70d61: ; 70d61 (1c:4d61) +BattleTransition_HalfCircle1: ; 70d61 (1c:4d61) db $01 - dw Unknown_70dfe - FuncCoord 18, 6 - dw Coord + dw BattleTransition_CircleData1 + dwCoord 18, 6 db $01 - dw Unknown_70e04 - FuncCoord 19, 3 - dw Coord + dw BattleTransition_CircleData2 + dwCoord 19, 3 db $01 - dw Unknown_70e0e - FuncCoord 18, 0 - dw Coord + dw BattleTransition_CircleData3 + dwCoord 18, 0 db $01 - dw Unknown_70e20 - FuncCoord 14, 0 - dw Coord + dw BattleTransition_CircleData4 + dwCoord 14, 0 db $01 - dw Unknown_70e2e - FuncCoord 10, 0 - dw Coord + dw BattleTransition_CircleData5 + dwCoord 10, 0 db $00 - dw Unknown_70e2e - FuncCoord 9, 0 - dw Coord + dw BattleTransition_CircleData5 + dwCoord 9, 0 db $00 - dw Unknown_70e20 - FuncCoord 5, 0 - dw Coord + dw BattleTransition_CircleData4 + dwCoord 5, 0 db $00 - dw Unknown_70e0e - FuncCoord 1, 0 - dw Coord + dw BattleTransition_CircleData3 + dwCoord 1, 0 db $00 - dw Unknown_70e04 - FuncCoord 0, 3 - dw Coord + dw BattleTransition_CircleData2 + dwCoord 0, 3 db $00 - dw Unknown_70dfe - FuncCoord 1, 6 - dw Coord + dw BattleTransition_CircleData1 + dwCoord 1, 6 -Unknown_70d93: ; 70d93 (1c:4d93) +BattleTransition_HalfCircle2: ; 70d93 (1c:4d93) db $00 - dw Unknown_70dfe - FuncCoord 1, 11 - dw Coord + dw BattleTransition_CircleData1 + dwCoord 1, 11 db $00 - dw Unknown_70e04 - FuncCoord 0, 14 - dw Coord + dw BattleTransition_CircleData2 + dwCoord 0, 14 db $00 - dw Unknown_70e0e - FuncCoord 1, 17 - dw Coord + dw BattleTransition_CircleData3 + dwCoord 1, 17 db $00 - dw Unknown_70e20 - FuncCoord 5, 17 - dw Coord + dw BattleTransition_CircleData4 + dwCoord 5, 17 db $00 - dw Unknown_70e2e - FuncCoord 9, 17 - dw Coord + dw BattleTransition_CircleData5 + dwCoord 9, 17 db $01 - dw Unknown_70e2e - FuncCoord 10, 17 - dw Coord + dw BattleTransition_CircleData5 + dwCoord 10, 17 db $01 - dw Unknown_70e20 - FuncCoord 14, 17 - dw Coord + dw BattleTransition_CircleData4 + dwCoord 14, 17 db $01 - dw Unknown_70e0e - FuncCoord 18, 17 - dw Coord + dw BattleTransition_CircleData3 + dwCoord 18, 17 db $01 - dw Unknown_70e04 - FuncCoord 19, 14 - dw Coord + dw BattleTransition_CircleData2 + dwCoord 19, 14 db $01 - dw Unknown_70dfe - FuncCoord 18, 11 - dw Coord + dw BattleTransition_CircleData1 + dwCoord 18, 11 -Func_70dc5: ; 70dc5 (1c:4dc5) +BattleTransition_Circle_Sub3: ; 70dc5 (1c:4dc5) push hl ld a, [de] ld c, a inc de -.asm_70dc9 +.loop1 ld [hl], $ff - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] and a - jr z, .asm_70dd4 + jr z, .skip1 inc hl - jr .asm_70dd5 -.asm_70dd4 + jr .skip2 +.skip1 dec hl -.asm_70dd5 +.skip2 dec c - jr nz, .asm_70dc9 + jr nz, .loop1 pop hl - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] and a ld bc, $14 - jr z, .asm_70de5 + jr z, .skip3 ld bc, $ffec -.asm_70de5 +.skip3 add hl, bc ld a, [de] inc de cp $ff ret z and a - jr z, Func_70dc5 + jr z, BattleTransition_Circle_Sub3 ld c, a -.asm_70def - ld a, [$cd3e] +.loop2 + ld a, [wTrainerEngageDistance] and a - jr z, .asm_70df8 + jr z, .skip4 dec hl - jr .asm_70df9 -.asm_70df8 + jr .skip5 +.skip4 inc hl -.asm_70df9 +.skip5 dec c - jr nz, .asm_70def - jr Func_70dc5 + jr nz, .loop2 + jr BattleTransition_Circle_Sub3 -Unknown_70dfe: ; 70dfe (1c:4dfe) +BattleTransition_CircleData1: ; 70dfe (1c:4dfe) db $02,$03,$05,$04,$09,$FF -Unknown_70e04: ; 70e04 (1c:4e04) +BattleTransition_CircleData2: ; 70e04 (1c:4e04) db $01,$01,$02,$02,$04,$02,$04,$02,$03,$FF -Unknown_70e0e: ; 70e0e (1c:4e0e) +BattleTransition_CircleData3: ; 70e0e (1c:4e0e) db $02,$01,$03,$01,$04,$01,$04,$01,$04,$01,$03,$01,$02,$01,$01,$01,$01,$FF -Unknown_70e20: ; 70e20 (1c:4e20) +BattleTransition_CircleData4: ; 70e20 (1c:4e20) db $04,$01,$04,$00,$03,$01,$03,$00,$02,$01,$02,$00,$01,$FF -Unknown_70e2e: ; 70e2e (1c:4e2e) +BattleTransition_CircleData5: ; 70e2e (1c:4e2e) db $04,$00,$03,$00,$03,$00,$02,$00,$02,$00,$01,$00,$01,$00,$01,$FF diff --git a/engine/battle/4.asm b/engine/battle/4.asm index b19b3b49..db6614cc 100755 --- a/engine/battle/4.asm +++ b/engine/battle/4.asm @@ -1,12 +1,12 @@ Func_128d8: ; 128d8 (4:68d8) - ld a, [W_YCOORD] ; $d361 + ld a, [W_YCOORD] ; wd361 ld b, a - ld a, [W_CURMAPHEIGHT] ; $d368 + ld a, [W_CURMAPHEIGHT] ; wd368 call Func_128ea ret z - ld a, [W_XCOORD] ; $d362 + ld a, [W_XCOORD] ; wd362 ld b, a - ld a, [W_CURMAPWIDTH] ; $d369 + ld a, [W_CURMAPWIDTH] ; wd369 Func_128ea: ; 128ea (4:68ea) add a @@ -15,20 +15,20 @@ Func_128ea: ; 128ea (4:68ea) inc b ret -Func_128ef: ; 128ef (4:68ef) - call Load16BitRegisters +DrawHP: ; 128ef (4:68ef) + call GetPredefRegisters ld a, $1 jr asm_128fb Func_128f6: ; 128f6 (4:68f6) - call Load16BitRegisters + call GetPredefRegisters ld a, $2 asm_128fb: ; 128fb (4:68fb) - ld [wListMenuID], a ; $cf94 + ld [wListMenuID], a ; wListMenuID push hl - ld a, [$cf99] + ld a, [wcf99] ld b, a - ld a, [$cf9a] + ld a, [wcf9a] ld c, a or b jr nz, .asm_12913 @@ -39,12 +39,11 @@ asm_128fb: ; 128fb (4:68fb) ld d, a jp Func_12924 .asm_12913 - ld a, [$cfba] + ld a, [wcfba] ld d, a - ld a, [$cfbb] + ld a, [wcfbb] ld e, a - ld a, $26 - call Predef ; indirect jump to UpdateHPBar_LoadRegisters (f9dc (3:79dc)) + predef HPBarLength ld a, $6 ld d, a ld c, a @@ -65,12 +64,12 @@ Func_12924: ; 12924 (4:6924) ld bc, $15 .asm_1293a add hl, bc - ld de, $cf99 + ld de, wcf99 ld bc, $203 call PrintNumber ld a, "/" ld [hli], a - ld de, $cfba + ld de, wcfba ld bc, $203 call PrintNumber pop hl diff --git a/engine/battle/4_2.asm b/engine/battle/4_2.asm index de9aa7be..c5c62796 100755 --- a/engine/battle/4_2.asm +++ b/engine/battle/4_2.asm @@ -1,16 +1,16 @@ Func_137aa: ; 137aa (4:77aa) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_137eb - ld a, [W_ENEMYMONNUMBER] ; $cfe8 - ld hl, $d8a8 - ld bc, $2c + ld a, [wEnemyMonPartyPos] + ld hl, wEnemyMon1Status + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes - ld a, [W_ENEMYMONSTATUS] ; $cfe9 + ld a, [wEnemyMonStatus] ; wcfe9 ld [hl], a call ClearScreen callab Func_372d6 - ld a, [$cf0b] + ld a, [wcf0b] cp $1 ld de, YouWinText jr c, .asm_137de @@ -18,62 +18,59 @@ Func_137aa: ; 137aa (4:77aa) jr z, .asm_137de ld de, DrawText .asm_137de - FuncCoord 6, 8 ; $c446 - ld hl, Coord + hlCoord 6, 8 call PlaceString ld c, $c8 call DelayFrames jr .asm_1380a .asm_137eb - ld a, [$cf0b] + ld a, [wcf0b] and a jr nz, .asm_13813 - ld hl, $cce5 + ld hl, wcce5 ld a, [hli] or [hl] inc hl or [hl] jr z, .asm_1380a - ld de, wPlayerMoney + 2 ; $d349 + ld de, wPlayerMoney + 2 ; wd349 ld c, $3 - ld a, $b - call Predef ; indirect jump to Func_f81d (f81d (3:781d)) + predef AddBCDPredef ld hl, PickUpPayDayMoneyText call PrintText .asm_1380a xor a - ld [$ccd4], a - ld a, $2a - call Predef ; indirect jump to Func_3ad1c (3ad1c (e:6d1c)) + ld [wccd4], a + predef Func_3ad1c .asm_13813 xor a - ld [$d083], a - ld [$c02a], a - ld [W_ISINBATTLE], a ; $d057 - ld [W_BATTLETYPE], a ; $d05a - ld [W_MOVEMISSED], a ; $d05f - ld [W_CUROPPONENT], a ; $d059 - ld [$d11f], a - ld [$d120], a - ld [$d078], a - ld hl, $cc2b + ld [wd083], a + ld [wc02a], a + ld [W_ISINBATTLE], a ; W_ISINBATTLE + ld [W_BATTLETYPE], a ; wd05a + ld [W_MOVEMISSED], a ; W_MOVEMISSED + ld [W_CUROPPONENT], a ; wd059 + ld [wd11f], a + ld [wd120], a + ld [wd078], a + ld hl, wcc2b ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [wListScrollOffset], a ; $cc36 - ld hl, $d060 + ld [wListScrollOffset], a ; wcc36 + ld hl, wd060 ld b, $18 .asm_1383e ld [hli], a dec b jr nz, .asm_1383e - ld hl, $d72c + ld hl, wd72c set 0, [hl] call WaitForSoundToFinish call GBPalWhiteOut ld a, $ff - ld [$d42f], a + ld [wd42f], a ret YouWinText: ; 13853 (4:7853) @@ -90,10 +87,10 @@ PickUpPayDayMoneyText: ; 1386b (4:786b) db "@" Func_13870: ; 13870 (4:7870) - ld a, [$cc57] + ld a, [wcc57] and a ret nz - ld a, [$d736] + ld a, [wd736] and a ret nz callab Func_c49d @@ -105,37 +102,36 @@ Func_13870: ; 13870 (4:7870) .asm_13888 callab Func_128d8 jr z, .asm_13884 - ld a, [$d0db] + ld a, [wd0db] and a jr z, .asm_1389e dec a jr z, .asm_13905 - ld [$d0db], a + ld [wd0db], a .asm_1389e - FuncCoord 9, 9 ; $c45d - ld hl, Coord + hlCoord 9, 9 ld c, [hl] ld a, [W_GRASSTILE] cp c - ld a, [W_GRASSRATE] ; $d887 + ld a, [W_GRASSRATE] ; W_GRASSRATE jr z, .asm_138c4 ld a, $14 cp c - ld a, [W_WATERRATE] ; $d8a4 + ld a, [W_WATERRATE] ; wEnemyMon1Species jr z, .asm_138c4 - ld a, [W_CURMAP] ; $d35e + ld a, [W_CURMAP] ; W_CURMAP cp REDS_HOUSE_1F jr c, .asm_13912 - ld a, [W_CURMAPTILESET] ; $d367 + ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET cp FOREST ; Viridian Forest/Safari Zone jr z, .asm_13912 - ld a, [W_GRASSRATE] ; $d887 + ld a, [W_GRASSRATE] ; W_GRASSRATE .asm_138c4 ld b, a - ld a, [H_RAND1] ; $ffd3 + ld a, [hRandomAdd] cp b jr nc, .asm_13912 - ld a, [H_RAND2] ; $ffd4 + ld a, [hRandomSub] ld b, a ld hl, WildMonEncounterSlotChances ; $7918 .asm_138d0 @@ -146,31 +142,30 @@ Func_13870: ; 13870 (4:7870) jr .asm_138d0 .asm_138d7 ld c, [hl] - ld hl, W_GRASSMONS ; $d888 - FuncCoord 8, 9 ; $c45c - ld a, [Coord] + ld hl, W_GRASSMONS ; wd888 + aCoord 8, 9 cp $14 jr nz, .asm_138e5 - ld hl, W_WATERMONS ; $d8a5 (aliases: W_ENEMYMON1HP) + ld hl, W_WATERMONS ; wd8a5 (aliases: wEnemyMon1HP) .asm_138e5 ld b, $0 add hl, bc ld a, [hli] - ld [W_CURENEMYLVL], a ; $d127 + ld [W_CURENEMYLVL], a ; W_CURENEMYLVL ld a, [hl] - ld [$cf91], a - ld [W_ENEMYMONID], a - ld a, [$d0db] + ld [wcf91], a + ld [wEnemyMonSpecies2], a + ld a, [wd0db] and a jr z, .asm_13916 - ld a, [W_PARTYMON1_LEVEL] ; $d18c + ld a, [wPartyMon1Level] ; wPartyMon1Level ld b, a - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL cp b jr c, .asm_13912 jr .asm_13916 .asm_13905 - ld [$d0db], a + ld [wd0db], a ld a, $d2 ld [H_DOWNARROWBLINKCNT2], a ; $ff8c call EnableAutoTextBoxDrawing @@ -202,14 +197,14 @@ WildMonEncounterSlotChances: ; 13918 (4:7918) RecoilEffect_: ; 1392c (4:792c) ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVENUM] ; $cfd2 - ld hl, W_PLAYERMONMAXHP ; $d023 + ld a, [W_PLAYERMOVENUM] ; wcfd2 + ld hl, wBattleMonMaxHP ; wd023 jr z, .asm_1393d - ld a, [W_ENEMYMOVENUM] ; $cfcc - ld hl, W_ENEMYMONMAXHP ; $cff4 + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM + ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP .asm_1393d ld d, a - ld a, [W_DAMAGE] ; $d0d7 + ld a, [W_DAMAGE] ; W_DAMAGE ld b, a ld a, [W_DAMAGE + 1] ld c, a @@ -252,19 +247,16 @@ RecoilEffect_: ; 1392c (4:792c) ld [hli], a ld [hl], a .asm_13982 - FuncCoord 10, 9 ; $c45e - ld hl, Coord + hlCoord 10, 9 ld a, [H_WHOSETURN] ; $fff3 and a ld a, $1 jr z, .asm_13990 - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 xor a .asm_13990 - ld [wListMenuID], a ; $cf94 - ld a, $48 - call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d)) + ld [wListMenuID], a ; wListMenuID + predef UpdateHPBar2 ld hl, HitWithRecoilText ; $799e jp PrintText HitWithRecoilText: ; 1399e (4:799e) @@ -272,8 +264,8 @@ HitWithRecoilText: ; 1399e (4:799e) db "@" ConversionEffect_: ; 139a3 (4:79a3) - ld hl, W_ENEMYMONTYPE1 - ld de, W_PLAYERMONTYPE1 + ld hl, wEnemyMonType1 + ld de, wBattleMonType1 ld a, [H_WHOSETURN] and a ld a, [W_ENEMYBATTSTATUS1] @@ -312,18 +304,18 @@ HazeEffect_: ; 139da (4:79da) call Func_13a43 ld hl, wEnemyMonAttackMod call Func_13a43 - ld hl, $cd12 - ld de, W_PLAYERMONATK + ld hl, wcd12 + ld de, wBattleMonAttack call Func_13a4a - ld hl, $cd26 - ld de, W_ENEMYMONATTACK + ld hl, wcd26 + ld de, wEnemyMonAttack call Func_13a4a - ld hl, W_ENEMYMONSTATUS + ld hl, wEnemyMonStatus ld de, wEnemySelectedMove ld a, [H_WHOSETURN] and a jr z, .asm_13a09 - ld hl, W_PLAYERMONSTATUS + ld hl, wBattleMonStatus dec de .asm_13a09 @@ -338,7 +330,7 @@ HazeEffect_: ; 139da (4:79da) xor a ld [W_PLAYERDISABLEDMOVE], a ld [W_ENEMYDISABLEDMOVE], a - ld hl, $ccee + ld hl, wccee ld [hli], a ld [hl], a ld hl, W_PLAYERBATTSTATUS1 @@ -384,25 +376,25 @@ StatusChangesEliminatedText: ; 13a53 (4:7a53) db "@" GetTrainerName_: ; 13a58 (4:7a58) - ld hl, W_GRASSRATE ; $d887 - ld a, [W_ISLINKBATTLE] ; $d12b + ld hl, W_GRASSRATE ; W_GRASSRATE + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE and a jr nz, .rival - ld hl, W_RIVALNAME ; $d34a - ld a, [W_TRAINERCLASS] ; $d031 + ld hl, W_RIVALNAME ; wd34a + ld a, [W_TRAINERCLASS] ; wd031 cp SONY1 jr z, .rival cp SONY2 jr z, .rival cp SONY3 jr z, .rival - ld [$d0b5], a + ld [wd0b5], a ld a, TRAINER_NAME ld [W_LISTTYPE], a ld a, $e - ld [$d0b7], a + ld [wPredefBank], a call GetName - ld hl, $cd6d + ld hl, wcd6d .rival ld de, W_TRAINERNAME ld bc, $d diff --git a/engine/battle/5.asm b/engine/battle/5.asm index 4dbfb4df..6c7a642e 100755 --- a/engine/battle/5.asm +++ b/engine/battle/5.asm @@ -1,13 +1,13 @@ SubstituteEffectHandler: ; 17dad (5:7dad) ld c, 50 call DelayFrames - ld hl, W_PLAYERMONMAXHP + ld hl, wBattleMonMaxHP ld de, wPlayerSubstituteHP ld bc, W_PLAYERBATTSTATUS2 ld a, [$fff3] ;whose turn? and a jr z, .notEnemy - ld hl, W_ENEMYMONMAXHP + ld hl, wEnemyMonMaxHP ld de, wEnemySubstituteHP ld bc, W_ENEMYBATTSTATUS2 .notEnemy @@ -42,7 +42,7 @@ SubstituteEffectHandler: ; 17dad (5:7dad) ld h, b ld l, c set 4, [hl] ;set bit 4 of flags, user now has substitute - ld a, [$d355] ;load options + ld a, [W_OPTIONS] ;load options bit 7, a ;battle animation is enabled? ld hl, Func_3fba8 ; $7ba8 ;animation enabled: 0F:7BA8 ld b, BANK(Func_3fba8) diff --git a/engine/battle/9.asm b/engine/battle/9.asm index 79624d34..dc72825c 100755 --- a/engine/battle/9.asm +++ b/engine/battle/9.asm @@ -1,5 +1,5 @@ Func_27d6b: ; 27d6b (9:7d6b) - call Load16BitRegisters + call GetPredefRegisters push hl call GetMonHeader pop hl @@ -26,9 +26,9 @@ asm_27d8c: ; 27d8c (9:7d8c) jp FillMemory Func_27d98: ; 27d98 (9:7d98) - call Load16BitRegisters + call GetPredefRegisters push hl - ld a, [W_PLAYERMOVETYPE] ; $cfd5 + ld a, [W_PLAYERMOVETYPE] ; wcfd5 asm_27d9f: ; 27d9f (9:7d9f) add a ld hl, TypeNamePointers ; $7dae @@ -54,7 +54,7 @@ SaveTrainerName: ; 27e4a (9:7e4a) ld a,[hli] ld h,[hl] ld l,a - ld de,$CD6D + ld de,wcd6d .CopyCharacter ld a,[hli] ld [de],a @@ -157,11 +157,11 @@ CooltrainerFName: ; 27f79 (9:7f79) db "COOLTRAINER♀@" FocusEnergyEffect_: ; 27f86 (9:7f86) - ld hl, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_27f91 - ld hl, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .asm_27f91 bit 2, [hl] ; is mon already using focus energy? jr nz, .asm_27fa5 diff --git a/engine/battle/a.asm b/engine/battle/a.asm index 2e409b57..fd3ef40b 100755 --- a/engine/battle/a.asm +++ b/engine/battle/a.asm @@ -1,15 +1,15 @@ LeechSeedEffect_: ; 2bea9 (a:7ea9) callab MoveHitTest - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, .asm_2bee7 - ld hl, W_ENEMYBATTSTATUS2 ; $d068 - ld de, W_ENEMYMONTYPE1 ; $cfea (aliases: W_ENEMYMONTYPES) + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 + ld de, wEnemyMonType1 ; wcfea (aliases: wEnemyMonType) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_2bec8 - ld hl, W_PLAYERBATTSTATUS2 ; $d063 - ld de, W_PLAYERMONTYPE1 ; $d019 (aliases: W_PLAYERMONTYPES) + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 + ld de, wBattleMonType1 ; wd019 (aliases: wBattleMonType) .asm_2bec8 ld a, [de] cp GRASS diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index aaa65bbb..cc598de4 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -223,7 +223,7 @@ PlayAnimation: ; 780f1 (1e:40f1) rla sla c rla - ld [$D09F],a ; tile select + ld [wd09f],a ; tile select ld a,[hli] ; sound ld [wAnimSoundID],a ; store sound ld a,[hli] ; subanimation ID @@ -243,7 +243,7 @@ PlayAnimation: ; 780f1 (1e:40f1) push hl ld a,[rOBP0] push af - ld a,[$CC79] + ld a,[wcc79] ld [rOBP0],a call LoadAnimationTileset call LoadSubanimation @@ -328,7 +328,7 @@ GetSubanimationTransform2: ; 781ca (1e:41ca) ; loads tile patterns for battle animations LoadAnimationTileset: ; 781d2 (1e:41d2) - ld a,[$D09F] ; tileset select + ld a,[wd09f] ; tileset select add a add a ld hl,AnimationTilesetPointers @@ -336,14 +336,14 @@ LoadAnimationTileset: ; 781d2 (1e:41d2) ld d,0 add hl,de ld a,[hli] - ld [$D07D],a ; number of tiles + ld [wd07d],a ; number of tiles ld a,[hli] ld e,a ld a,[hl] ld d,a ; de = address of tileset - ld hl,$8310 ; destination address in VRAM + ld hl,vSprites + $310 ld b, BANK(AnimationTileset1) ; ROM bank - ld a,[$D07D] + ld a,[wd07d] ld c,a ; number of tiles jp CopyVideoData ; load tileset @@ -394,7 +394,7 @@ MoveAnimation: ; 78d5e (1e:4d5e) .MoveAnimation ; check if battle animations are disabled in the options - ld a,[$D355] + ld a,[W_OPTIONS] bit 7,a jr nz,.AnimationsDisabled call ShareMoveAnimations @@ -408,11 +408,11 @@ MoveAnimation: ; 78d5e (1e:4d5e) .AnimationFinished call WaitForSoundToFinish xor a - ld [$D096],a - ld [$D09B],a - ld [$D08B],a + ld [W_SUBANIMSUBENTRYADDR],a + ld [wd09b],a + ld [W_SUBANIMTRANSFORM],a dec a - ld [$CF07],a + ld [wAnimSoundID],a pop af pop bc pop de @@ -443,7 +443,7 @@ ShareMoveAnimations: ; 78da6 (1e:4da6) ret Func_78dbd: ; 78dbd (1e:4dbd) - ld a,[$CC5B] + ld a,[wcc5b] and a ret z dec a @@ -517,14 +517,14 @@ Func_78e01: ; 78e01 (1e:4e01) ret Func_78e23: ; 78e23 (1e:4e23) - ld a, [$cf1b] + ld a, [wcf1b] and a ld a, $e4 jr z, .asm_78e47 ld a, $f0 - ld [$cc79], a + ld [wcc79], a ld b, $e4 - ld a, [W_ANIMATIONID] ; $d07c + ld a, [W_ANIMATIONID] ; W_ANIMATIONID cp $aa jr c, .asm_78e3f cp $ae @@ -538,7 +538,7 @@ Func_78e23: ; 78e23 (1e:4e23) ret .asm_78e47 ld a, $e4 - ld [$cc79], a + ld [wcc79], a ld [rOBP0], a ; $ff48 ld a, $6c ld [rOBP1], a ; $ff49 @@ -616,7 +616,7 @@ AnimationCleanOAM: ; 78ec8 (1e:4ec8) push bc push af call DelayFrame - call CleanLCD_OAM + call ClearSprites pop af pop bc pop de @@ -724,7 +724,7 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5) db $FF ; terminator DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) - ld a,[$CF91] + ld a,[wcf91] cp a,3 ; is it a Master Ball or Ultra Ball? jr nc,.skipFlashingEffect .flashingEffect ; do a flashing effect if it's Master Ball or Ultra Ball @@ -742,7 +742,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) ld a,[W_ISINBATTLE] cp a,02 ; is it a trainer battle? jr z,.isTrainerBattle - ld a,[$d11e] + ld a,[wd11e] cp a,$10 ; is the enemy pokemon the Ghost Marowak? ret nz ; if the enemy pokemon is the Ghost Marowak, make it dodge during the last 3 frames @@ -754,8 +754,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) cp a,1 ret nz .moveGhostMarowakLeft - FuncCoord 17,0 - ld hl,Coord + hlCoord 17, 0 ld de,20 ld bc,$0707 ; 7 rows and 7 columns .loop @@ -792,9 +791,9 @@ DoBallShakeSpecialEffects: ; 78f96 (1e:4f96) dec a ret nz ; if it's the end of the ball shaking subanimation, check if more shakes are left and restart the subanimation - ld a,[$cd3d] ; number of shakes + ld a,[wWhichTrade] ; number of shakes dec a ; decrement number of shakes - ld [$cd3d],a + ld [wWhichTrade],a ret z ; if there are shakes left, restart the subanimation ld a,[W_SUBANIMSUBENTRYADDR] @@ -831,11 +830,9 @@ DoRockSlideSpecialEffects: ; 78fd9 (1e:4fd9) ; if the subaninmation counter is between 8 and 11, shake the screen horizontally and vertically .shakeScreen ld b,1 - ld a,$24 - call Predef ; shake horizontally + predef Func_48125 ; shake horizontally ld b,1 - ld a,$21 - jp Predef ; shake vertically + predef_jump Func_480ff ; shake vertically FlashScreenEveryEightFrameBlocks: ; 78ff7 (1e:4ff7) ld a,[W_SUBANIMCOUNTER] @@ -856,8 +853,7 @@ DoExplodeSpecialEffects: ; 79009 (1e:5009) cp a,1 ; is it the end of the subanimation? jr nz,FlashScreenEveryFourFrameBlocks ; if it's the end of the subanimation, make the attacking pokemon disappear - FuncCoord 1, 5 ; $c405 - ld hl,Coord + hlCoord 1, 5 jp AnimationHideMonPic ; make pokemon disappear ; flashes the screen when subanimation counter is 1 modulo 4 @@ -975,7 +971,7 @@ BallMoveDistances2: ; 790b3 (1e:50b3) ; so that there are two musical notes flying towards the defending pokemon DoGrowlSpecialEffects: ; 790bc (1e:50bc) ld hl,wOAMBuffer ; OAM buffer - ld de,$c310 + ld de,wOAMBuffer + $10 ld bc,$10 call CopyData ; copy the musical note graphic ld a,[W_SUBANIMCOUNTER] @@ -1094,8 +1090,8 @@ CallWithTurnFlipped: ; 79155 (1e:5155) ; flashes the screen for an extended period (48 frames) AnimationFlashScreenLong: ; 79165 (1e:5165) ld a,3 ; cycle through the palettes 3 times - ld [$D08A],a - ld a,[$cf1b] ; running on SGB? + ld [wd08a],a + ld a,[wcf1b] ; running on SGB? and a ld hl,FlashScreenLongMonochrome jr z,.loop @@ -1110,9 +1106,9 @@ AnimationFlashScreenLong: ; 79165 (1e:5165) call FlashScreenLongDelay jr .innerLoop .endOfPalettes - ld a,[$D08A] + ld a,[wd08a] dec a - ld [$D08A],a + ld [wd08a],a pop hl jr nz,.loop ret @@ -1152,8 +1148,8 @@ FlashScreenLongSGB: ; 7919b (1e:519b) ; causes a delay of 2 frames for the first cycle ; causes a delay of 1 frame for the second and third cycles FlashScreenLongDelay: ; 791a8 (1e:51a8) - ld a,[$D08A] - cp a,4 ; never true since [$D08A] starts at 3 + ld a,[wd08a] + cp a,4 ; never true since [wd08a] starts at 3 ld c,4 jr z,.delayFrames cp a,3 @@ -1215,7 +1211,7 @@ Func_791f9: ; 791f9 (1e:51f9) ld bc, $4040 Func_791fc: ; 791fc (1e:51fc) - ld a, [$cf1b] + ld a, [wcf1b] and a ld a, b jr z, .asm_79204 @@ -1227,39 +1223,37 @@ Func_791fc: ; 791fc (1e:51fc) ld b, $5 Func_79209: ; 79209 (1e:5209) - ld a, $21 - jp Predef ; indirect jump to Func_480ff (480ff (12:40ff)) + predef_jump Func_480ff AnimationShakeScreen: ; 7920e (1e:520e) ; Shakes the screen for a while. Used in Earthquake/Fissure/etc. animations. ld b, $8 Func_79210: ; 79210 (1e:5210) - ld a, $24 - jp Predef ; indirect jump to Func_48125 (48125 (12:4125)) + predef_jump Func_48125 AnimationWaterDropletsEverywhere: ; 79215 (1e:5215) ; Draws water droplets all over the screen and makes them ; scroll. It's hard to describe, but it's the main animation ; in Surf/Mist/Toxic. xor a - ld [$d09f], a + ld [wd09f], a call LoadAnimationTileset ld d, $20 ld a, $f0 - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld a, $71 - ld [$d09f], a + ld [wd09f], a .asm_79228 ld a, $10 - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 ld a, $0 - ld [$d08a], a + ld [wd08a], a call Func_79246 ld a, $18 - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 ld a, $20 - ld [$d08a], a + ld [wd08a], a call Func_79246 dec d jr nz, .asm_79228 @@ -1268,24 +1262,24 @@ AnimationWaterDropletsEverywhere: ; 79215 (1e:5215) Func_79246: ; 79246 (1e:5246) ld hl, wOAMBuffer .asm_79249 - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 add $1b - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld [hli], a - ld a, [$d09f] + ld a, [wd09f] ld [hli], a xor a ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 cp $90 jr c, .asm_79249 sub $a8 - ld [W_BASECOORDX], a ; $d081 - ld a, [W_BASECOORDY] ; $d082 + ld [W_BASECOORDX], a ; wd081 + ld a, [W_BASECOORDY] ; wd082 add $10 - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 cp $70 jr c, .asm_79249 call AnimationCleanOAM @@ -1296,15 +1290,15 @@ AnimationSlideMonUp: ; 7927a (1e:527a) ld c, $7 ld a, [H_WHOSETURN] and a - ld hl, $c419 - ld de, $c405 + ld hl, wTileMap + $79 + ld de, wTileMap + $65 ld a, $30 jr z, .asm_79291 - ld hl, $c3c0 - ld de, $c3ac + ld hl, wTileMap + $20 + ld de, wTileMap + $c ld a, $ff .asm_79291 - ld [$d09f], a + ld [wd09f], a jp Func_792bf AnimationSlideMonDown: ; 79297 (1e:5297) @@ -1328,7 +1322,7 @@ AnimationSlideMonOut: ; 792af (1e:52af) ; Slides the mon's sprite out of the screen horizontally. ld e, $8 ld a, $3 - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM jp Func_795f8 AnimationSlideEnemyMonOut: ; 792b9 (1e:52b9) @@ -1356,13 +1350,13 @@ Func_792bf: ; 792bf (1e:52bf) jr nz, .asm_792c4 ld a, [H_WHOSETURN] and a - ld hl, $c47d + ld hl, wTileMap + $dd jr z, .asm_792e2 - ld hl, $c424 + ld hl, wTileMap + $84 .asm_792e2 - ld a, [$d09f] + ld a, [wd09f] inc a - ld [$d09f], a + ld [wd09f], a ld c, $7 .asm_792eb ld [hli], a @@ -1409,7 +1403,7 @@ Func_79329: ; 79329 (1e:5329) add $8 ld e, a ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 ld [hli], a ld a, d ld [hli], a @@ -1424,7 +1418,7 @@ Func_79337: ; 79337 (1e:5337) Func_79339: ; 79339 (1e:5339) ld de, $4 .asm_7933c - ld a, [$d08a] + ld a, [wd08a] ld b, a ld a, [hl] add b @@ -1447,7 +1441,7 @@ Func_79350: ; 79350 (1e:5350) Func_79352: ; 79352 (1e:5352) ld de, $4 .asm_79355 - ld a, [$d08a] + ld a, [wd08a] ld b, a ld a, [hl] add b @@ -1488,10 +1482,10 @@ AnimationBlinkMon: ; 7936f (1e:536f) AnimationFlashMonPic: ; 79389 (1e:5389) ; Flashes the mon's sprite on and off - ld a, [W_PLAYERMONID] - ld [$ceea], a - ld a, [$cfe5] - ld [$cee9], a + ld a, [wBattleMonSpecies] + ld [wHPBarMaxHP + 1], a + ld a, [wEnemyMonSpecies] + ld [wHPBarMaxHP], a jp Func_79793 AnimationFlashEnemyMonPic: ; 79398 (1e:5398) @@ -1517,11 +1511,11 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1) ; The mon's sprite disappears after this animation. ld a, [H_WHOSETURN] and a - ld hl, $c404 - ld de, $c406 + ld hl, wTileMap + $64 + ld de, wTileMap + $66 jr z, .asm_793c2 - ld hl, $c3ab - ld de, $c3ad + ld hl, wTileMap + $b + ld de, wTileMap + $d .asm_793c2 xor a @@ -1565,11 +1559,9 @@ AnimationMoveMonHorizontally: ; 793f9 (1e:53f9) call AnimationHideMonPic ld a, [H_WHOSETURN] ; $fff3 and a - FuncCoord 2, 5 ; $c406 - ld hl, Coord + hlCoord 2, 5 jr z, .asm_79407 - FuncCoord 11, 0 ; $c3ab - ld hl, Coord + hlCoord 11, 0 .asm_79407 xor a push hl @@ -1597,14 +1589,14 @@ AnimationSpiralBallsInward: ; 79424 (1e:5424) and a jr z, .asm_79435 ld a, $d8 - ld [$d08a], a + ld [wd08a], a ld a, $50 - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM jr .asm_7943c .asm_79435 xor a - ld [$d08a], a - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [wd08a], a + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM .asm_7943c ld d, $7a ld c, $3 @@ -1619,12 +1611,12 @@ AnimationSpiralBallsInward: ; 79424 (1e:5424) ld a, [hl] cp $ff jr z, .asm_7946f - ld a, [$d08a] + ld a, [wd08a] add [hl] ld [de], a inc de inc hl - ld a, [W_SUBANIMTRANSFORM] ; $d08b + ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM add [hl] ld [de], a inc hl @@ -1680,24 +1672,20 @@ AnimationSquishMonPic: ; 794a1 (1e:54a1) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_794b1 - FuncCoord 16, 0 ; $c3b0 - ld hl, Coord - FuncCoord 14, 0 ; $c3ae - ld de, Coord + hlCoord 16, 0 + deCoord 14, 0 jr .asm_794b7 .asm_794b1 - FuncCoord 5, 5 ; $c409 - ld hl, Coord - FuncCoord 3, 5 ; $c407 - ld de, Coord + hlCoord 5, 5 + deCoord 3, 5 .asm_794b7 push de xor a - ld [$d09f], a + ld [wd09f], a call Func_794d4 pop hl ld a, $1 - ld [$d09f], a + ld [wd09f], a call Func_794d4 pop bc dec c @@ -1712,7 +1700,7 @@ Func_794d4: ; 794d4 (1e:54d4) push bc push hl ld c, $3 - ld a, [$d09f] + ld a, [wd09f] cp $0 jr nz, .asm_794e7 call Func_7985b @@ -1743,9 +1731,9 @@ AnimationShootBallsUpward: ; 794f9 (1e:54f9) ld bc, $3028 .asm_79506 ld a, b - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 ld a, c - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld bc, $501 call Func_79517 jp AnimationCleanOAM @@ -1753,13 +1741,13 @@ AnimationShootBallsUpward: ; 794f9 (1e:54f9) Func_79517: ; 79517 (1e:5517) push bc xor a - ld [$d09f], a + ld [wd09f], a call LoadAnimationTileset pop bc ld d, $7a ld hl, wOAMBuffer push bc - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 ld e, a .asm_7952a call Func_79329 @@ -1768,12 +1756,12 @@ Func_79517: ; 79517 (1e:5517) call DelayFrame pop bc ld a, b - ld [$d08a], a + ld [wd08a], a .asm_79538 push bc ld hl, wOAMBuffer .asm_7953c - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 add $8 ld e, a ld a, [hl] @@ -1784,9 +1772,9 @@ Func_79517: ; 79517 (1e:5517) jr .asm_79554 .asm_7954b ld [hl], $0 - ld a, [$d08a] + ld a, [wd08a] dec a - ld [$d08a], a + ld [wd08a], a .asm_79554 ld de, $4 add hl, de @@ -1794,7 +1782,7 @@ Func_79517: ; 79517 (1e:5517) jr nz, .asm_7953c call DelayFrames pop bc - ld a, [$d08a] + ld a, [wd08a] and a jr nz, .asm_79538 ret @@ -1838,7 +1826,7 @@ UpwardBallsAnimXCoordinatesEnemyTurn: ; 79598 (1e:5598) AnimationMinimizeMon: ; 7959f (1e:559f) ; Changes the mon's sprite to a mini black sprite. Used by the ; Minimize animation. - ld hl, $c6e8 + ld hl, wTempPic push hl xor a ld bc, $310 @@ -1883,7 +1871,7 @@ AnimationSlideMonDownAndHide: ; 795c9 (1e:55c9) dec c jr nz, .asm_795cd call AnimationHideMonPic - ld hl, $c6e8 + ld hl, wTempPic ld bc, $0310 xor a call FillMemory @@ -1893,12 +1881,10 @@ Func_795f8: ; 795f8 (1e:55f8) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_79602 - FuncCoord 12, 0 ; $c3ac - ld hl, Coord + hlCoord 12, 0 jr .asm_79605 .asm_79602 - FuncCoord 0, 5 ; $c404 - ld hl, Coord + hlCoord 0, 5 .asm_79605 ld d, $8 .asm_79607 @@ -1924,7 +1910,7 @@ Func_795f8: ; 795f8 (1e:55f8) pop de dec b jr nz, .asm_7960a - ld a, [W_SUBANIMTRANSFORM] ; $d08b + ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM ld c, a call DelayFrames pop hl @@ -1960,17 +1946,17 @@ AnimationSlideMonHalfLeft: ; 79645 (1e:5645) Func_79652: ; 79652 (1e:5652) ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, $9310 + ld hl, vBackPic jr z, .asm_7965d - ld hl, $9000 + ld hl, vFrontPic .asm_7965d - ld de, $c6e8 - ld bc, $31 + ld de, wTempPic + ld bc, 7 * 7 jp CopyVideoData AnimationWavyScreen: ; 79666 (1e:5666) ; used in Psywave/Psychic etc. - ld hl, $9800 + ld hl, vBGMap0 call Func_79e0d call Delay3 xor a @@ -2005,7 +1991,7 @@ AnimationWavyScreen: ; 79666 (1e:5666) ld [H_AUTOBGTRANSFERENABLED], a call Delay3 call LoadScreenTilesFromBuffer2 - ld hl, $9c00 + ld hl, vBGMap1 call Func_79e0d ret @@ -2031,38 +2017,38 @@ WavyScreenLineOffsets: ; 796bf (1e:56bf) AnimationSubstitute: ; 796e0 (1e:56e0) ; Changes the pokemon's sprite to the mini sprite - ld hl, $c6e8 + ld hl, wTempPic xor a ld bc, $0310 call FillMemory ld a, [$fff3] and a jr z, .asm_79715 ; 0x796ed $26 - ld hl, SlowbroSprite ; $4780 ; facing down sprite - ld de, $c808 + ld hl, SlowbroSprite ; facing down sprite + ld de, wTempPic + $120 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $10 ; $4790 - ld de, $c878 + ld hl, SlowbroSprite + $10 + ld de, wTempPic + $120 + $70 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $20 ; $47a0 - ld de, $c818 + ld hl, SlowbroSprite + $20 + ld de, wTempPic + $120 + $10 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $30 ; $47b0 - ld de, $c888 + ld hl, SlowbroSprite + $30 + ld de, wTempPic + $120 + $10 + $70 call CopySlowbroSpriteData - jr .asm_79739 ; 0x79713 $24 + jr .asm_79739 .asm_79715 - ld hl, SlowbroSprite + $40 ; $47c0 ; facing up sprite - ld de, $c878 + ld hl, SlowbroSprite + $40 ; facing up sprite + ld de, wTempPic + $120 + $70 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $50 ; $47d0 - ld de, $c8e8 + ld hl, SlowbroSprite + $50 + ld de, wTempPic + $120 + $e0 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $60 ; $47e0 - ld de, $c888 + ld hl, SlowbroSprite + $60 + ld de, wTempPic + $120 + $80 call CopySlowbroSpriteData - ld hl, SlowbroSprite + $70 ; $47f0 - ld de, $c8f8 + ld hl, SlowbroSprite + $70 + ld de, wTempPic + $120 + $f0 call CopySlowbroSpriteData .asm_79739 call Func_79652 @@ -2076,11 +2062,11 @@ CopySlowbroSpriteData: ; 7973f (1e:573f) Func_79747: ; 79747 (1e:5747) ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, $ccf7 - ld a, [W_PLAYERBATTSTATUS2] ; $d063 + ld hl, wccf7 + ld a, [W_PLAYERBATTSTATUS2] ; W_PLAYERBATTSTATUS2 jr z, .asm_79758 - ld hl, $ccf3 - ld a, [W_ENEMYBATTSTATUS2] ; $d068 + ld hl, wccf3 + ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 .asm_79758 push hl bit 4, a @@ -2117,40 +2103,38 @@ AnimationBoundUpAndDown: ; 7977a (1e:577a) AnimationTransformMon: ; 79787 (1e:5787) ; Redraws this mon's sprite as the back/front sprite of the opposing mon. ; Used in Transform. - ld a, [$cfe5] - ld [$ceea], a - ld a, [W_PLAYERMONID] - ld [$cee9], a + ld a, [wEnemyMonSpecies] + ld [wHPBarMaxHP + 1], a + ld a, [wBattleMonSpecies] + ld [wHPBarMaxHP], a Func_79793: ; 79793 (1e:5793) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_797b0 - ld a, [$cee9] - ld [$cf91], a - ld [$d0b5], a + ld a, [wHPBarMaxHP] + ld [wcf91], a + ld [wd0b5], a xor a ld [W_SPRITEFLIPPED], a call GetMonHeader - FuncCoord 12, 0 ; $c3ac - ld hl, Coord + hlCoord 12, 0 call LoadFrontSpriteByMonIndex jr .asm_797d3 .asm_797b0 - ld a, [$cfd9] + ld a, [wBattleMonSpecies2] push af - ld a, [$ceea] - ld [$cfd9], a - ld [$d0b5], a + ld a, [wHPBarMaxHP + 1] + ld [wBattleMonSpecies2], a + ld [wd0b5], a call GetMonHeader - ld a, $4 - call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103)) + predef LoadMonBackPic xor a call Func_79842 call Func_79820 call Func_79aae pop af - ld [$cfd9], a + ld [wBattleMonSpecies2], a .asm_797d3 ld b, $1 jp GoPAL_SET @@ -2168,13 +2152,13 @@ AnimationHideEnemyMonPic: ; 797d8 (1e:57d8) Func_797e8: ; 797e8 (1e:57e8) push bc push de - ld [$d09f], a + ld [wd09f], a call LoadAnimationTileset pop de pop bc xor a ld e, a - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld hl, wOAMBuffer .asm_797fa call Func_79329 @@ -2291,28 +2275,28 @@ Func_7986f: ; 7986f (1e:586f) ld a,[H_WHOSETURN] and a jr nz,.next - ld a,[W_PLAYERMONID] ; get number of current monster + ld a,[wBattleMonSpecies] ; get number of current monster jr .Continue .next - ld a,[$CFE5] + ld a,[wEnemyMonSpecies] .Continue push hl call GetCryData ld b,a pop hl - ld a,[$C0F1] + ld a,[wc0f1] add [hl] - ld [$C0F1],a + ld [wc0f1],a inc hl - ld a,[$C0F2] + ld a,[wc0f2] add [hl] - ld [$C0F2],a + ld [wc0f2],a jr .done .NotCryMove ld a,[hli] - ld [$C0F1],a + ld [wc0f1],a ld a,[hli] - ld [$C0F2],a + ld [wc0f2],a .done ld a,b ret @@ -2509,8 +2493,8 @@ Func_79aae: ; 79aae (1e:5aae) jr asm_79acb Func_79aba: ; 79aba (1e:5aba) - call Load16BitRegisters - ld a, [$cd6c] + call GetPredefRegisters + ld a, [wcd6c] and a jr nz, .asm_79ac8 ld de, Unknown_79b02 ; $5b02 @@ -2599,7 +2583,7 @@ AnimationLeavesFalling: ; 79c74 (1e:5c74) ; in Razor Leaf's animation. ld a, [$ff48] push af - ld a, [$cc79] + ld a, [wcc79] ld [$ff48], a ld d, $37 ld a, $3 @@ -2616,7 +2600,7 @@ AnimationPetalsFalling: ; 79c8a (1e:5c8a) ld a, $14 ld [W_SUBANIMTRANSFORM], a call Func_79c97 - jp CleanLCD_OAM + jp ClearSprites Func_79c97: ; 79c97 (1e:5c97) ld c, a @@ -2636,7 +2620,7 @@ Func_79c97: ; 79c97 (1e:5c97) push hl push de ld a, [hl] - ld [$d08a], a + ld [wd08a], a call Func_79d16 call Func_79cdb pop de @@ -2645,7 +2629,7 @@ Func_79c97: ; 79c97 (1e:5c97) ld e, l ld d, h pop hl - ld a, [$d08a] + ld a, [wd08a] ld [hli], a pop bc dec c @@ -2668,7 +2652,7 @@ Func_79cdb: ; 79cdb (1e:5cdb) ld a, $a0 .asm_79ce8 ld [hli], a - ld a, [$d08a] + ld a, [wd08a] ld b, a ld de, Unknown_79d0d and $7f @@ -2702,7 +2686,7 @@ Unknown_79d0d: ; 79d0d (1e:5d0d) db $00,$01,$03,$05,$07,$09,$0B,$0D,$0F Func_79d16: ; 79d16 (1e:5d16) - ld a, [$d08a] + ld a, [wd08a] inc a ld b, a and $7f @@ -2712,11 +2696,11 @@ Func_79d16: ; 79d16 (1e:5d16) and $80 xor $80 .asm_79d26 - ld [$d08a], a + ld [wd08a], a ret Func_79d2a: ; 79d2a (1e:5d2a) - ld hl, $c301 + ld hl, wOAMBuffer + $01 ld de, Unknown_79d3e ld a, [W_SUBANIMTRANSFORM] ld c, a @@ -2751,46 +2735,46 @@ Unknown_79d63: ; 79d63 (1e:5d63) db $00,$84,$06,$81,$02,$88,$01,$83,$05,$89,$09,$80,$07,$87,$03,$82,$04,$85,$08,$86 AnimationShakeEnemyHUD: ; 79d77 (1e:5d77) - ld de, $9310 - ld hl, $8000 - ld bc, $0031 + ld de, vBackPic + ld hl, vSprites + ld bc, 7 * 7 call CopyVideoData xor a ld [$ffae], a - ld hl, $9800 + ld hl, vBGMap0 call Func_79e0d ld a, $90 ld [$ffb0], a - ld hl, $9b20 + ld hl, vBGMap0 + $320 call Func_79e0d ld a, $38 ld [$ffb0], a call Func_792fd - ld hl, $9800 + ld hl, vBGMap0 call Func_79e0d call AnimationHideMonPic call Delay3 ld de, $0208 call Func_79de9 call AnimationShowMonPic - call CleanLCD_OAM + call ClearSprites ld a, $90 ld [$ffb0], a - ld hl, $9c00 + ld hl, vBGMap1 call Func_79e0d xor a ld [$ffb0], a call SaveScreenTilesToBuffer1 - ld hl, $9800 + ld hl, vBGMap0 call Func_79e0d call ClearScreen call Delay3 call LoadScreenTilesFromBuffer1 - ld hl, $9c00 + ld hl, vBGMap1 jp Func_79e0d Func_79dda: ; 79dda (1e:5dda) - call Load16BitRegisters + call GetPredefRegisters ld a, c ld [H_DOWNARROWBLINKCNT1], a ; $ff8b ld a, b @@ -2830,7 +2814,7 @@ TossBallAnimation: ; 79e16 (1e:5e16) ld a,[W_ISINBATTLE] cp a,2 jr z,.BlockBall ; if in trainer battle, play different animation - ld a,[$D11E] + ld a,[wd11e] ld b,a ; upper nybble: how many animations (from PokeBallAnimations) to play @@ -2843,11 +2827,11 @@ TossBallAnimation: ; 79e16 (1e:5e16) ; store these for later ld a,b and a,$F - ld [$CD3D],a + ld [wWhichTrade],a ld hl,.PokeBallAnimations ; choose which toss animation to use - ld a,[$CF91] + ld a,[wcf91] cp a,POKE_BALL ld b,TOSS_ANIM jr z,.done @@ -2885,7 +2869,7 @@ TossBallAnimation: ; 79e16 (1e:5e16) Func_79e6a: ; 79e6a (1e:5e6a) call WaitForSoundToFinish - ld a, [$d05b] + ld a, [wd05b] and $7f ret z cp $a @@ -2901,8 +2885,8 @@ Func_79e6a: ; 79e6a (1e:5e6a) ld b, $1 ld c, (SFX_08_51 - SFX_Headers_08) / 3 .asm_79e8b - ld [$c0f1], a + ld [wc0f1], a ld a, b - ld [$c0f2], a + ld [wc0f2], a ld a, c jp PlaySound diff --git a/engine/battle/b.asm b/engine/battle/b.asm index 7269e48c..24a75af4 100755 --- a/engine/battle/b.asm +++ b/engine/battle/b.asm @@ -1,5 +1,5 @@ DisplayEffectiveness: ; 2fb7b (b:7b7b) - ld a, [$D05B] + ld a, [wd05b] and a, $7F cp a, $0A ret z diff --git a/engine/battle/b_2.asm b/engine/battle/b_2.asm index b71ca40d..e343f1aa 100755 --- a/engine/battle/b_2.asm +++ b/engine/battle/b_2.asm @@ -86,13 +86,13 @@ DuplicateBitsTable: ; 2fea8 (b:7ea8) PayDayEffect_ ; 2feb8 (b:7eb8) xor a - ld hl, $cd6d + ld hl, wcd6d ld [hli], a ld a, [$fff3] and a - ld a, [$d022] + ld a, [wBattleMonLevel] jr z, .asm_2fec8 ; 0x2fec3 $3 - ld a, [$cff3] + ld a, [wEnemyMonLevel] .asm_2fec8 add a ld [$ff98], a @@ -118,10 +118,9 @@ PayDayEffect_ ; 2feb8 (b:7eb8) ld a, [$ff99] add b ld [hl], a - ld de, $cce7 + ld de, wcce7 ld c, $3 - ld a, $b - call Predef + predef AddBCDPredef ld hl, CoinsScatteredText ; $7f04 jp PrintText diff --git a/engine/battle/c.asm b/engine/battle/c.asm index b93cc273..c1347d24 100755 --- a/engine/battle/c.asm +++ b/engine/battle/c.asm @@ -21,19 +21,19 @@ ShroudedInMistText: ; 33f52 (c:7f52) db "@" OneHitKOEffect_: ; 33f57 (c:7f57) - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE xor a ld [hli], a ld [hl], a ; set the damage output to zero dec a - ld [$d05e], a - ld hl, $d02a - ld de, $cffb + ld [wd05e], a + ld hl, wBattleMonSpeed + 1 + ld de, wEnemyMonSpeed + 1 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_33f72 - ld hl, $cffb - ld de, $d02a + ld hl, wEnemyMonSpeed + 1 + ld de, wBattleMonSpeed + 1 .asm_33f72 ld a, [de] dec de @@ -45,14 +45,14 @@ OneHitKOEffect_: ; 33f57 (c:7f57) ld a, [hl] sbc b jr c, .asm_33f8a - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE ld a, $ff ld [hli], a ld [hl], a ld a, $2 - ld [$d05e], a + ld [wd05e], a ret .asm_33f8a ld a, $1 - ld [W_MOVEMISSED], a ; $d05f + ld [W_MOVEMISSED], a ; W_MOVEMISSED ret diff --git a/engine/battle/core.asm b/engine/battle/core.asm index a19919f4..b3495a29 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -94,16 +94,15 @@ EffectsArray5B: ; 3c049 (f:4049) Func_3c04c: ; 3c04c (f:404c) call Func_3ec92 ld a, $1 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID - FuncCoord 1, 5 ; $c405 - ld hl, Coord + hlCoord 1, 5 ld bc, $307 call ClearScreenArea call DisableLCD call LoadFontTilePatterns call Func_3ee58 - ld hl, $9800 + ld hl, vBGMap0 ld bc, $400 .asm_3c06f ld a, $7f @@ -113,7 +112,7 @@ Func_3c04c: ; 3c04c (f:404c) or c jr nz, .asm_3c06f ld hl, wTileMap - ld de, $9800 + ld de, vBGMap0 ld b, $12 .asm_3c07f ld c, $14 @@ -139,7 +138,7 @@ Func_3c04c: ; 3c04c (f:404c) ld [$ffd7], a ld [$ffaf], a dec a - ld [$cfcb], a + ld [wcfcb], a call Delay3 xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba @@ -171,10 +170,8 @@ Func_3c04c: ; 3c04c (f:404c) ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld a, $31 ld [$ffe1], a - FuncCoord 1, 5 ; $c405 - ld hl, Coord - ld a, $1 - call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6)) + hlCoord 1, 5 + predef Func_3f0c6 xor a ld [$ffb0], a ld [rWY], a ; $ff4a @@ -183,14 +180,14 @@ Func_3c04c: ; 3c04c (f:404c) call Delay3 ld b, $1 call GoPAL_SET - call ResetLCD_OAM + call HideSprites ld hl, PrintBeginningBattleText ld b, BANK(PrintBeginningBattleText) jp Bankswitch Func_3c0ff: ; 3c0ff (f:40ff) push bc - ld hl, $c301 + ld hl, wOAMBuffer + $01 ld c, $15 ld de, $4 .asm_3c108 @@ -216,12 +213,12 @@ Func_3c110: ; 3c110 (f:4110) Func_3c11e: ; 3c11e (f:411e) xor a - ld [W_PLAYERMONSALIVEFLAGS], a - ld [$ccf5], a - ld [$cd6a], a + ld [wPartyAliveFlags], a + ld [wccf5], a + ld [wcd6a], a inc a - ld [$d11d], a - ld hl, W_ENEMYMON1HP ; $d8a5 + ld [wd11d], a + ld hl, wEnemyMon1HP ; wd8a5 ld bc, $2b ld d, $3 .asm_3c134 @@ -233,29 +230,29 @@ Func_3c11e: ; 3c11e (f:411e) jr .asm_3c134 .asm_3c13c ld a, d - ld [$cc3e], a - ld a, [W_ISINBATTLE] ; $d057 + ld [wcc3e], a + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a call nz, Func_3c92a ld c, $28 call DelayFrames call SaveScreenTilesToBuffer1 .asm_3c14f - call AnyPlayerPokemonAliveCheck + call AnyPartyAlive ld a, d and a jp z, HandlePlayerBlackOut call LoadScreenTilesFromBuffer1 - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a and a jp z, Func_3c1ad .asm_3c161 call InitBattleMenu ret c - ld a, [$cd6a] + ld a, [wcd6a] and a jr z, .asm_3c161 - ld a, [W_NUMSAFARIBALLS] ; $da47 + ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS and a jr nz, .asm_3c17a call LoadScreenTilesFromBuffer1 @@ -263,24 +260,24 @@ Func_3c11e: ; 3c11e (f:411e) jp PrintText .asm_3c17a callab PrintSafariZoneBattleText - ld a, [$cffb] + ld a, [wEnemyMonSpeed + 1] add a ld b, a jp c, asm_3c202 - ld a, [$cce9] + ld a, [wcce9] and a jr z, .asm_3c194 srl b srl b .asm_3c194 - ld a, [$cce8] + ld a, [wcce8] and a jr z, .asm_3c1a0 sla b jr nc, .asm_3c1a0 ld b, $ff .asm_3c1a0 - call GenRandom + call Random cp b jr nc, .asm_3c14f jr asm_3c202 @@ -291,53 +288,50 @@ OutOfSafariBallsText: ; 3c1a8 (f:41a8) Func_3c1ad: ; 3c1ad (f:41ad) xor a - ld [wWhichPokemon], a ; $cf92 + ld [wWhichPokemon], a ; wWhichPokemon .asm_3c1b1 call Func_3ca97 jr nz, .asm_3c1bc - ld hl, wWhichPokemon ; $cf92 + ld hl, wWhichPokemon ; wWhichPokemon inc [hl] jr .asm_3c1b1 .asm_3c1bc - ld a, [wWhichPokemon] ; $cf92 - ld [wPlayerMonNumber], a ; $cc2f + ld a, [wWhichPokemon] ; wWhichPokemon + ld [wPlayerMonNumber], a ; wPlayerMonNumber inc a - ld hl, W_NUMINPARTY ; $d163 + ld hl, wPartyCount ; wPartyCount ld c, a ld b, $0 add hl, bc ld a, [hl] - ld [$cf91], a - ld [$cfd9], a + ld [wcf91], a + ld [wBattleMonSpecies2], a call LoadScreenTilesFromBuffer1 - FuncCoord 1, 5 ; $c405 - ld hl, Coord + hlCoord 1, 5 ld a, $9 call Func_3c8df call SaveScreenTilesToBuffer1 - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon ld c, a ld b, $1 push bc - ld hl, W_PLAYERMONSALIVEFLAGS - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) - ld hl, $ccf5 + ld hl, wPartyAliveFlags + predef FlagActionPredef + ld hl, wccf5 pop bc - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef FlagActionPredef call Func_3cba6 call LoadScreenTilesFromBuffer1 call Func_3cc91 jr MainInBattleLoop asm_3c202: ; 3c202 (f:4202) call LoadScreenTilesFromBuffer1 - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 ld hl, WildRanText jr nz, .asm_3c216 xor a - ld [$cf0b], a + ld [wcf0b], a ld hl, EnemyRanText .asm_3c216 call PrintText @@ -359,53 +353,53 @@ EnemyRanText: ; 3c22e (f:422e) MainInBattleLoop: ; 3c233 (f:4233) call ReadPlayerMonCurHPAndStatus - ld hl, W_PLAYERMONCURHP + ld hl, wBattleMonHP ld a, [hli] or [hl] jp z, HandlePlayerMonFainted ; test if current player mon is fainted - ld hl, $cfe6 + ld hl, wEnemyMonHP ld a, [hli] or [hl] jp z, HandleEnemyMonFainted call SaveScreenTilesToBuffer1 xor a - ld [$d11d], a - ld a, [$d063] + ld [wd11d], a + ld a, [W_PLAYERBATTSTATUS2] and $60 jr nz, .asm_3c2a6 ; 0x3c252 $52 - ld hl, $d067 + ld hl, W_ENEMYBATTSTATUS1 res 3, [hl] - ld hl, $d062 + ld hl, W_PLAYERBATTSTATUS1 res 3, [hl] ld a, [hl] and $12 jr nz, .asm_3c2a6 ; 0x3c261 $43 call InitBattleMenu ; show battle menu ret c - ld a, [$d078] + ld a, [wd078] and a ret nz - ld a, [$d018] + ld a, [wBattleMonStatus] and $27 jr nz, .asm_3c2a6 ; 0x3c271 $33 - ld a, [$d062] + ld a, [W_PLAYERBATTSTATUS1] and $21 jr nz, .asm_3c2a6 ; 0x3c278 $2c - ld a, [$d067] + ld a, [W_ENEMYBATTSTATUS1] bit 5, a jr z, .asm_3c288 ; 0x3c27f $7 ld a, $ff - ld [$ccdc], a + ld [wPlayerSelectedMove], a jr .asm_3c2a6 ; 0x3c286 $1e .asm_3c288 - ld a, [$cd6a] + ld a, [wcd6a] and a jr nz, .asm_3c2a6 ; 0x3c28c $18 - ld [$ccdb], a + ld [wMoveMenuType], a inc a - ld [$d07c], a + ld [W_ANIMATIONID], a xor a - ld [$cc35], a + ld [wcc35], a call MoveSelectionMenu push af call LoadScreenTilesFromBuffer1 @@ -417,7 +411,7 @@ MainInBattleLoop: ; 3c233 (f:4233) ld a, [W_ISLINKBATTLE] cp $4 jr nz, .noLinkBattle - ld a, [$cc3e] + ld a, [wcc3e] cp $f jp z, asm_3c202 cp $e @@ -426,11 +420,11 @@ MainInBattleLoop: ; 3c233 (f:4233) jr z, .noLinkBattle sub $4 jr c, .noLinkBattle - ld a, [$d062] + ld a, [W_PLAYERBATTSTATUS1] bit 5, a jr z, .asm_3c2dd ; 0x3c2c9 $12 - ld a, [$cc2e] - ld hl, W_PLAYERMONMOVES + ld a, [wPlayerMoveListIndex] + ld hl, wBattleMonMoves ld c, a ld b, $0 add hl, bc @@ -464,8 +458,8 @@ MainInBattleLoop: ; 3c233 (f:4233) cp COUNTER jr z, .playerMovesFirst .compareSpeed - ld de, W_PLAYERMONSPEED ; player speed value - ld hl, W_ENEMYMONSPEED ; enemy speed value + ld de, wBattleMonSpeed ; player speed value + ld hl, wEnemyMonSpeed ; enemy speed value ld c, $2 call StringCmp ; compare speed values jr z, .speedEqual @@ -475,12 +469,12 @@ MainInBattleLoop: ; 3c233 (f:4233) ld a, [$ffaa] cp $2 jr z, .invertOutcome - call GenRandomInBattle + call BattleRandom cp $80 jr c, .playerMovesFirst jr .enemyMovesFirst .invertOutcome - call GenRandomInBattle + call BattleRandom cp $80 jr c, .enemyMovesFirst jr .playerMovesFirst @@ -490,7 +484,7 @@ MainInBattleLoop: ; 3c233 (f:4233) callab TrainerAI jr c, .AIActionUsedEnemyFirst call Func_3e6bc ; execute enemy move - ld a, [$d078] + ld a, [wd078] and a ret nz ld a, b @@ -501,7 +495,7 @@ MainInBattleLoop: ; 3c233 (f:4233) jp z, HandleEnemyMonFainted call Func_3cd5a call Func_3d65e ; execute player move - ld a, [$d078] + ld a, [wd078] and a ret nz ld a, b @@ -514,7 +508,7 @@ MainInBattleLoop: ; 3c233 (f:4233) jp MainInBattleLoop .playerMovesFirst call Func_3d65e ; execute player move - ld a, [$d078] + ld a, [wd078] and a ret nz ld a, b @@ -528,7 +522,7 @@ MainInBattleLoop: ; 3c233 (f:4233) callab TrainerAI jr c, .AIActionUsedPlayerFirst call Func_3e6bc ; execute enemy move - ld a, [$d078] + ld a, [wd078] and a ret nz ld a, b @@ -542,13 +536,13 @@ MainInBattleLoop: ; 3c233 (f:4233) jp MainInBattleLoop HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd) - ld hl, W_PLAYERMONCURHP ; $d015 - ld de, W_PLAYERMONSTATUS ; $d018 + ld hl, wBattleMonHP ; wd015 + ld de, wBattleMonStatus ; wBattleMonStatus ld a, [H_WHOSETURN] ; $fff3 and a jr z, .playersTurn - ld hl, W_ENEMYMONCURHP ; $cfe6 - ld de, W_ENEMYMONSTATUS ; $cfe9 + ld hl, wEnemyMonHP ; wEnemyMonHP + ld de, wEnemyMonStatus ; wcfe9 .playersTurn ld a, [de] and (1 << BRN) | (1 << PSN) @@ -562,17 +556,17 @@ HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd) .poisoned call PrintText xor a - ld [$cc5b], a + ld [wcc5b], a ld a,BURN_PSN_ANIM call PlayMoveAnimation ; play burn/poison animation pop hl call HandlePoisonBurnLeechSeed_DecreaseOwnHP .notBurnedOrPoisoned - ld de, W_PLAYERBATTSTATUS2 ; $d063 + ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .playersTurn2 - ld de, W_ENEMYBATTSTATUS2 ; $d068 + ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .playersTurn2 ld a, [de] add a @@ -583,7 +577,7 @@ HandlePoisonBurnLeechSeed: ; 3c3bd (f:43bd) xor $1 ld [H_WHOSETURN], a ; $fff3 xor a - ld [$cc5b], a + ld [wcc5b], a ld a,ABSORB call PlayMoveAnimation ; play leech seed animation (from opposing mon) pop af @@ -643,13 +637,13 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: ; 3c43d (f:443d) jr nz, .nonZeroDamage inc c ; damage is at least 1 .nonZeroDamage - ld hl, W_PLAYERBATTSTATUS3 ; $d064 - ld de, W_PLAYERTOXICCOUNTER ; $d06c + ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3 + ld de, W_PLAYERTOXICCOUNTER ; wd06c ld a, [H_WHOSETURN] ; $fff3 and a jr z, .playersTurn - ld hl, W_ENEMYBATTSTATUS3 ; $d069 - ld de, W_ENEMYTOXICCOUNTER ; $d071 + ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3 + ld de, W_ENEMYTOXICCOUNTER ; wd071 .playersTurn bit 0, [hl] jr z, .noToxic @@ -690,11 +684,11 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: ; 3c43d (f:443d) ; adds bc to enemy HP HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3) push hl - ld hl, W_ENEMYMONMAXHP ; $cff4 + ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP ld a, [H_WHOSETURN] ; $fff3 and a jr z, .playersTurn - ld hl, W_PLAYERMONMAXHP ; $d023 + ld hl, wBattleMonMaxHP ; wd023 .playersTurn ld a, [hli] ld [wHPBarMaxHP+1], a @@ -739,55 +733,52 @@ HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3) ret UpdateCurMonHPBar: ; 3c4f6 (f:44f6) - FuncCoord 10, 9 ; $c45e - ld hl, Coord ; tile pointer to player HP bar + hlCoord 10, 9 ; tile pointer to player HP bar ld a, [H_WHOSETURN] ; $fff3 and a ld a, $1 jr z, .playersTurn - FuncCoord 2, 2 ; $c3ca - ld hl, Coord ; tile pointer to enemy HP bar + hlCoord 2, 2 ; tile pointer to enemy HP bar xor a .playersTurn push bc - ld [wListMenuID], a ; $cf94 - ld a, $48 - call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d)) + ld [wListMenuID], a ; wListMenuID + predef UpdateHPBar2 pop bc ret Func_3c50f: ; 3c50f (f:450f) - ld a, [$d06a] + ld a, [wd06a] and a jr nz, .asm_3c51a - ld hl, W_PLAYERBATTSTATUS1 ; $d062 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 res 5, [hl] .asm_3c51a - ld a, [$d06f] + ld a, [wd06f] and a ret nz - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 5, [hl] ret HandleEnemyMonFainted: ; 3c525 (f:4525) xor a - ld [$ccf0], a + ld [wccf0], a call FaintEnemyPokemon - call AnyPlayerPokemonAliveCheck + call AnyPartyAlive ld a, d and a jp z, HandlePlayerBlackOut - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld a, [hli] or [hl] call nz, Func_3cd60 - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a ret z call AnyEnemyPokemonAliveCheck jp z, TrainerBattleVictory - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld a, [hli] or [hl] jr nz, .asm_3c555 @@ -796,60 +787,58 @@ HandleEnemyMonFainted: ; 3c525 (f:4525) call Func_3c7d8 .asm_3c555 ld a, $1 - ld [$cd6a], a + ld [wcd6a], a call Func_3c664 jp z, asm_3c202 xor a - ld [$cd6a], a + ld [wcd6a], a jp MainInBattleLoop FaintEnemyPokemon ; 0x3c567 call ReadPlayerMonCurHPAndStatus - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr z, .wild - ld a, [W_ENEMYMONNUMBER] ; $cfe8 - ld hl, W_ENEMYMON1HP + ld a, [wEnemyMonPartyPos] + ld hl, wEnemyMon1HP ld bc, $2c ; mon struct len call AddNTimes xor a ld [hli], a ld [hl], a .wild - ld hl, W_PLAYERBATTSTATUS1 ; $d062 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 res 2, [hl] xor a - ld [W_NUMHITS], a ; $d074 - ld hl, $d065 ; enemy statuses + ld [W_NUMHITS], a ; wd074 + ld hl, wd065 ; enemy statuses ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [W_ENEMYDISABLEDMOVE], a ; $d072 - ld [$ccef], a - ld [$ccf3], a - ld hl, $ccf1 + ld [W_ENEMYDISABLEDMOVE], a ; W_ENEMYDISABLEDMOVE + ld [wccef], a + ld [wccf3], a + ld hl, wccf1 ld [hli], a ld [hl], a - FuncCoord 12, 5 ; $c410 - ld hl, Coord - FuncCoord 12, 6 ; $c424 - ld de, Coord + hlCoord 12, 5 + deCoord 12, 6 call Func_3c893 ld hl, wTileMap ld bc, $40b call ClearScreenArea - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr z, .wild_win xor a - ld [$c0f1], a - ld [$c0f2], a + ld [wc0f1], a + ld [wc0f2], a ld a, (SFX_08_48 - SFX_Headers_08) / 3 ; SFX_FALL? call PlaySoundWaitForCurrent .sfxwait - ld a, [$c02a] + ld a, [wc02a] cp (SFX_08_48 - SFX_Headers_08) / 3 jr z, .sfxwait ld a, (SFX_08_43 - SFX_Headers_08) / 3 ; SFX_DROP @@ -861,16 +850,16 @@ FaintEnemyPokemon ; 0x3c567 ld a, MUSIC_DEFEATED_WILD_MON call PlayBattleVictoryMusic .sfxplayed - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld a, [hli] or [hl] jr nz, .playermonnotfaint - ld a, [$ccf0] + ld a, [wccf0] and a jr nz, .playermonnotfaint call Func_3c741 .playermonnotfaint - call AnyPlayerPokemonAliveCheck + call AnyPartyAlive ld a, d and a ret z @@ -879,12 +868,12 @@ FaintEnemyPokemon ; 0x3c567 call Func_3ee94 call SaveScreenTilesToBuffer1 xor a - ld [$cf0b], a + ld [wcf0b], a ld b, EXP__ALL call IsItemInBag push af jr z, .no_exp_all - ld hl, $d002 + ld hl, wd002 ld b, $7 .exp_all_loop srl [hl] @@ -893,13 +882,13 @@ FaintEnemyPokemon ; 0x3c567 jr nz, .exp_all_loop .no_exp_all xor a - ld [$cc5b], a + ld [wcc5b], a callab GainExperience pop af ret z ld a, $1 - ld [$cc5b], a - ld a, [W_NUMINPARTY] ; $d163 + ld [wcc5b], a + ld a, [wPartyCount] ; wPartyCount ld b, $0 .asm_3c62c scf @@ -907,7 +896,7 @@ FaintEnemyPokemon ; 0x3c567 dec a jr nz, .asm_3c62c ld a, b - ld [W_PLAYERMONSALIVEFLAGS], a + ld [wPartyAliveFlags], a ld hl, GainExperience ld b, BANK(GainExperience) jp Bankswitch @@ -918,17 +907,17 @@ EnemyMonFaintedText: ; 0x3c63e Func_3c643: ; 3c643 (f:4643) xor a - ld [$d083], a - ld [$c02a], a + ld [wd083], a + ld [wc02a], a inc a - ld [$ccf6], a + ld [wccf6], a ret AnyEnemyPokemonAliveCheck: ; 3c64f (f:464f) - ld a, [wEnemyPartyCount] ; $d89c + ld a, [wEnemyPartyCount] ; wEnemyPartyCount ld b, a xor a - ld hl, W_ENEMYMON1HP ; $d8a5 + ld hl, wEnemyMon1HP ; wd8a5 ld de, $2c .asm_3c65a or [hl] @@ -942,49 +931,49 @@ AnyEnemyPokemonAliveCheck: ; 3c64f (f:464f) ret Func_3c664: ; 3c664 (f:4664) - ld hl, $cf1e + ld hl, wcf1e ld e, $30 call GetBattleHealthBarColor callab DrawEnemyPokeballs - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3c687 call Func_3d605 - ld a, [$cc3e] + ld a, [wcc3e] cp $f ret z call LoadScreenTilesFromBuffer1 .asm_3c687 call EnemySendOut xor a - ld [W_ENEMYMOVENUM], a ; $cfcc - ld [$cd6a], a - ld [$ccd5], a + ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM + ld [wcd6a], a + ld [wccd5], a inc a ret TrainerBattleVictory: ; 3c696 (f:4696) call Func_3c643 ld b, MUSIC_DEFEATED_GYM_LEADER - ld a, [W_GYMLEADERNO] ; $d05c + ld a, [W_GYMLEADERNO] ; W_GYMLEADERNO and a jr nz, .gymleader ld b, MUSIC_DEFEATED_TRAINER .gymleader - ld a, [W_TRAINERCLASS] ; $d031 + ld a, [W_TRAINERCLASS] ; wd031 cp SONY3 ; final battle against rival jr nz, .notrival ld b, MUSIC_DEFEATED_GYM_LEADER ld hl, W_FLAGS_D733 set 1, [hl] .notrival - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 ld a, b call nz, PlayBattleVictoryMusic ld hl, TrainerDefeatedText call PrintText - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 ret z call ScrollTrainerPicAfterBattle @@ -993,11 +982,10 @@ TrainerBattleVictory: ; 3c696 (f:4696) call Func_3381 ld hl, MoneyForWinningText call PrintText - ld de, wPlayerMoney + 2 ; $d349 - ld hl, $d07b + ld de, wPlayerMoney + 2 ; wd349 + ld hl, wd07b ld c, $3 - ld a, $b - jp Predef ; indirect jump to Func_f81d (f81d (3:781d)) + predef_jump AddBCDPredef MoneyForWinningText: ; 3c6e4 (f:46e4) TX_FAR _MoneyForWinningText @@ -1010,7 +998,7 @@ TrainerDefeatedText: ; 3c6e9 (f:46e9) PlayBattleVictoryMusic: ; 3c6ee (f:46ee) push af ld a, $ff - ld [$c0ee], a + ld [wc0ee], a call PlaySoundWaitForCurrent ld c, BANK(Music_DefeatedTrainer) pop af @@ -1019,18 +1007,18 @@ PlayBattleVictoryMusic: ; 3c6ee (f:46ee) HandlePlayerMonFainted: ; 3c700 (f:4700) ld a, $1 - ld [$ccf0], a + ld [wccf0], a call Func_3c741 - call AnyPlayerPokemonAliveCheck ; test if any more mons are alive + call AnyPartyAlive ; test if any more mons are alive ld a, d and a jp z, HandlePlayerBlackOut - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] or [hl] jr nz, .enemyMonNotFainted call FaintEnemyPokemon - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a ret z ; if wild encounter, battle is over call AnyEnemyPokemonAliveCheck @@ -1041,49 +1029,45 @@ HandlePlayerMonFainted: ; 3c700 (f:4700) call Func_3c7d8 jp nz, MainInBattleLoop ld a, $1 - ld [$cd6a], a + ld [wcd6a], a call Func_3c664 jp z, asm_3c202 xor a - ld [$cd6a], a + ld [wcd6a], a jp MainInBattleLoop Func_3c741: ; 3c741 (f:4741) - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld c, a - ld hl, W_PLAYERMONSALIVEFLAGS ; clear fainted mon's alive flag + ld hl, wPartyAliveFlags ; clear fainted mon's alive flag ld b, $0 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + predef FlagActionPredef + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 2, [hl] ; reset "attacking multiple times" flag - ld a, [$d083] + ld a, [wd083] bit 7, a ; skip sound flag (red bar (?)) jr z, .skipWaitForSound ld a, $ff - ld [$d083], a + ld [wd083], a call WaitForSoundToFinish .skipWaitForSound - ld hl, $cd05 + ld hl, wcd05 ld [hli], a ld [hl], a - ld [W_PLAYERMONSTATUS], a ; $d018 + ld [wBattleMonStatus], a ; wBattleMonStatus call ReadPlayerMonCurHPAndStatus - FuncCoord 9, 7 ; $c435 - ld hl, Coord + hlCoord 9, 7 ld bc, $50b call ClearScreenArea - FuncCoord 1, 10 ; $c469 - ld hl, Coord - FuncCoord 1, 11 ; $c47d - ld de, Coord + hlCoord 1, 10 + deCoord 1, 11 call Func_3c893 ld a, $1 - ld [$cf0b], a - ld a, [$ccf0] + ld [wcf0b], a + ld a, [wccf0] and a ret z - ld a, [W_PLAYERMONID] + ld a, [wBattleMonSpecies] call PlayCry ld hl, PlayerMonFaintedText jp PrintText @@ -1095,30 +1079,29 @@ PlayerMonFaintedText: ; 3c796 (f:4796) Func_3c79b: ; 3c79b (f:479b) call Func_3ee94 call SaveScreenTilesToBuffer1 - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE and a dec a ret nz ld hl, UseNextMonText call PrintText .asm_3c7ad - FuncCoord 13, 9 ; $c461 - ld hl, Coord + hlCoord 13, 9 ld bc, $a0e ld a, $14 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID - ld a, [$d12e] + ld a, [wd12e] cp $2 jr z, .asm_3c7c4 and a ret .asm_3c7c4 - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jr z, .asm_3c7ad - ld hl, W_PARTYMON1_SPEED ; $d193 - ld de, W_ENEMYMONSPEED + ld hl, wPartyMon1Speed + ld de, wEnemyMonSpeed jp Func_3cab9 UseNextMonText: ; 3c7d3 (f:47d3) @@ -1127,7 +1110,7 @@ UseNextMonText: ; 3c7d3 (f:47d3) Func_3c7d8: ; 3c7d8 (f:47d8) ld a, $2 - ld [$d07d], a + ld [wd07d], a call DisplayPartyMenu .asm_3c7e0 jr nc, .asm_3c7e7 @@ -1137,28 +1120,26 @@ Func_3c7d8: ; 3c7d8 (f:47d8) .asm_3c7e7 call Func_3ca97 jr z, .asm_3c7e2 - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3c7fa inc a - ld [$cd6a], a + ld [wcd6a], a call Func_3d605 .asm_3c7fa xor a - ld [$cd6a], a - call CleanLCD_OAM - ld a, [wWhichPokemon] ; $cf92 - ld [wPlayerMonNumber], a ; $cc2f + ld [wcd6a], a + call ClearSprites + ld a, [wWhichPokemon] ; wWhichPokemon + ld [wPlayerMonNumber], a ; wPlayerMonNumber ld c, a - ld hl, W_PLAYERMONSALIVEFLAGS + ld hl, wPartyAliveFlags ld b, $1 push bc - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef FlagActionPredef pop bc - ld hl, $ccf5 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + ld hl, wccf5 + predef FlagActionPredef call Func_3cba6 call GBPalWhiteOut call Func_3ee5b @@ -1166,7 +1147,7 @@ Func_3c7d8: ; 3c7d8 (f:47d8) call GoPAL_SET_CF1C call GBPalNormal call Func_3cc91 - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] or [hl] ret @@ -1174,10 +1155,10 @@ Func_3c7d8: ; 3c7d8 (f:47d8) ; called when player is out of usable mons. ; prints approriate lose message, sets carry flag if player blacked out (special case for initial rival fight) HandlePlayerBlackOut: ; 3c837 (f:4837) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr z, .notSony1Battle - ld a, [W_CUROPPONENT] ; $d059 + ld a, [W_CUROPPONENT] ; wd059 cp $c8 + SONY1 jr nz, .notSony1Battle ld hl, wTileMap ; sony 1 battle @@ -1195,15 +1176,15 @@ HandlePlayerBlackOut: ; 3c837 (f:4837) ld b, $0 call GoPAL_SET ld hl, PlayerBlackedOutText2 - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .noLinkBattle ld hl, LinkBattleLostText .noLinkBattle call PrintText - ld a, [$d732] + ld a, [wd732] res 5, a - ld [$d732], a + ld [wd732], a call ClearScreen scf ret @@ -1221,10 +1202,10 @@ LinkBattleLostText: ; 3c88e (f:488e) db "@" Func_3c893: ; 3c893 (f:4893) - ld a, [$d730] + ld a, [wd730] push af set 6, a - ld [$d730], a + ld [wd730], a ld b, $7 .asm_3c89e push bc @@ -1263,7 +1244,7 @@ Func_3c893: ; 3c893 (f:4893) dec b jr nz, .asm_3c89e pop af - ld [$d730], a + ld [wd730], a ret SevenSpacesText: ; 3c8d7 (f:48d7) @@ -1310,49 +1291,46 @@ Func_3c8df: ; 3c8df (f:48df) ; XXX this needs cleaning up. it's what runs when a juggler switches pokemon EnemySendOut: ; 3c90e (f:490e) - ld hl,W_PLAYERMONSALIVEFLAGS + ld hl,wPartyAliveFlags xor a ld [hl],a - ld a,[$CC2F] + ld a,[wPlayerMonNumber] ld c,a ld b,1 push bc - ld a,$10 - call Predef - ld hl,$CCF5 + predef FlagActionPredef + ld hl,wccf5 xor a ld [hl],a pop bc - ld a,$10 - call Predef + predef FlagActionPredef Func_3c92a: ; 3c92a (f:492a) xor a - ld hl,$D065 + ld hl,wd065 ld [hli],a ld [hli],a ld [hli],a ld [hli],a ld [hl],a - ld [$D072],a - ld [$CCEF],a - ld [$CCF3],a - ld hl,$CCF1 + ld [W_ENEMYDISABLEDMOVE],a + ld [wccef],a + ld [wccf3],a + ld hl,wccf1 ld [hli],a ld [hl],a dec a ld [wAICount],a ld hl,W_PLAYERBATTSTATUS1 res 5,[hl] - FuncCoord 18, 0 ; $c3b2 - ld hl,Coord + hlCoord 18, 0 ld a,8 call Func_3c8df call Func_3ee94 call SaveScreenTilesToBuffer1 - ld a,[$D12B] + ld a,[W_ISLINKBATTLE] cp 4 jr nz,.next - ld a,[$CC3E] + ld a,[wcc3e] sub 4 ld [wWhichPokemon],a jr .next3 @@ -1360,14 +1338,14 @@ Func_3c92a: ; 3c92a (f:492a) ld b,$FF .next2 inc b - ld a,[$CFE8] + ld a,[wEnemyMonPartyPos] cp b jr z,.next2 - ld hl,$D8A4 + ld hl,wEnemyMon1 ld a,b ld [wWhichPokemon],a push bc - ld bc,$2C + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes pop bc inc hl @@ -1378,59 +1356,58 @@ Func_3c92a: ; 3c92a (f:492a) jr z,.next2 .next3 ld a,[wWhichPokemon] - ld hl,$D8C5 - ld bc,$2C + ld hl,wEnemyMon1Level + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes ld a,[hl] - ld [$D127],a + ld [W_CURENEMYLVL],a ld a,[wWhichPokemon] inc a - ld hl,$D89C + ld hl,wEnemyPartyCount ld c,a ld b,0 add hl,bc ld a,[hl] - ld [W_ENEMYMONID],a - ld [$CF91],a + ld [wEnemyMonSpecies2],a + ld [wcf91],a call Func_3eb01 - ld hl,$CFE6 + ld hl,wEnemyMonHP ld a,[hli] - ld [$CCE3],a + ld [wcce3],a ld a,[hl] - ld [$CCE4],a + ld [wcce4],a ld a,1 - ld [$CC26],a - ld a,[$D11D] + ld [wCurrentMenuItem],a + ld a,[wd11d] dec a jr z,.next4 - ld a,[W_NUMINPARTY] + ld a,[wPartyCount] dec a jr z,.next4 - ld a,[$D12B] + ld a,[W_ISLINKBATTLE] cp 4 jr z,.next4 - ld a,[$D355] + ld a,[W_OPTIONS] bit 6,a jr nz,.next4 ld hl, TrainerAboutToUseText call PrintText - FuncCoord 0, 7 ; $c42c - ld hl,Coord + hlCoord 0, 7 ld bc,$0801 ld a,$14 - ld [$D125],a + ld [wd125],a call DisplayTextBoxID - ld a,[$CC26] + ld a,[wCurrentMenuItem] and a jr nz,.next4 ld a,2 - ld [$D07D],a + ld [wd07d],a call DisplayPartyMenu .next9 ld a,1 - ld [$CC26],a + ld [wCurrentMenuItem],a jr c,.next7 - ld hl,$CC2F + ld hl,wPlayerMonNumber ld a,[wWhichPokemon] cp [hl] jr nz,.next6 @@ -1443,13 +1420,13 @@ Func_3c92a: ; 3c92a (f:492a) call Func_3ca97 jr z,.next8 xor a - ld [$CC26],a + ld [wCurrentMenuItem],a .next7 call GBPalWhiteOut call Func_3ee5b call LoadScreenTilesFromBuffer1 .next4 - call CleanLCD_OAM + call ClearSprites ld hl,wTileMap ld bc,$040B call ClearScreenArea @@ -1458,27 +1435,25 @@ Func_3c92a: ; 3c92a (f:492a) call GBPalNormal ld hl,TrainerSentOutText call PrintText - ld a,[W_ENEMYMONID] - ld [$CF91],a - ld [$D0B5],a + ld a,[wEnemyMonSpecies2] + ld [wcf91],a + ld [wd0b5],a call GetMonHeader - ld de,$9000 + ld de,vFrontPic call LoadMonFrontSprite ld a,$CF ld [$FFE1],a - FuncCoord 15, 6 ; $c427 - ld hl,Coord - ld a,2 - call Predef - ld a,[W_ENEMYMONID] + hlCoord 15, 6 + predef Func_3f073 + ld a,[wEnemyMonSpecies2] call PlayCry call Func_3cdec - ld a,[$CC26] + ld a,[wCurrentMenuItem] and a ret nz xor a - ld [W_PLAYERMONSALIVEFLAGS],a - ld [$CCF5],a + ld [wPartyAliveFlags],a + ld [wccf5],a call SaveScreenTilesToBuffer1 jp Func_3d1ba @@ -1492,12 +1467,12 @@ TrainerSentOutText: ; 3ca7e (f:4a7e) ; tests if the player has any pokemon that are not fainted ; sets d = 0 if all fainted, d != 0 if some mons are still alive -AnyPlayerPokemonAliveCheck: ; 3ca83 (f:4a83) - ld a, [W_NUMINPARTY] ; $d163 +AnyPartyAlive: ; 3ca83 (f:4a83) + ld a, [wPartyCount] ; wPartyCount ld e, a xor a - ld hl, W_PARTYMON1_HP ; $d16c - ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA - 1 + ld hl, wPartyMon1HP ; wd16c + ld bc, wPartyMon2 - wPartyMon1 - 1 .partyMonsLoop or [hl] inc hl @@ -1509,14 +1484,14 @@ AnyPlayerPokemonAliveCheck: ; 3ca83 (f:4a83) ret Func_3ca97: ; 3ca97 (f:4a97) - ld a, [wWhichPokemon] ; $cf92 - ld hl, W_PARTYMON1_HP ; $d16c + ld a, [wWhichPokemon] ; wWhichPokemon + ld hl, wPartyMon1HP ; wd16c ld bc, $2c call AddNTimes ld a, [hli] or [hl] ret nz - ld a, [$d11d] + ld a, [wd11d] and a jr nz, .asm_3cab2 ld hl, NoWillText @@ -1532,18 +1507,18 @@ NoWillText: ; 3cab4 (f:4ab4) Func_3cab9: ; 3cab9 (f:4ab9) call IsGhostBattle jp z, .asm_3cb5c - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 jp z, .asm_3cb5c - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jp z, .asm_3cb5c - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr nz, .asm_3cb4c - ld a, [$d120] + ld a, [wd120] inc a - ld [$d120], a + ld [wd120], a ld a, [hli] ld [$ff97], a ld a, [hl] @@ -1583,7 +1558,7 @@ Func_3cab9: ; 3cab9 (f:4ab9) ld a, [$ff97] and a jr nz, .asm_3cb5c - ld a, [$d120] + ld a, [wd120] ld c, a .asm_3cb2b dec c @@ -1595,13 +1570,13 @@ Func_3cab9: ; 3cab9 (f:4ab9) jr c, .asm_3cb5c jr .asm_3cb2b .asm_3cb39 - call GenRandomInBattle + call BattleRandom ld b, a ld a, [$ff98] cp b jr nc, .asm_3cb5c ld a, $1 - ld [$cd6a], a + ld [wcd6a], a ld hl, CantEscapeText jr .asm_3cb4f .asm_3cb4c @@ -1609,29 +1584,29 @@ Func_3cab9: ; 3cab9 (f:4ab9) .asm_3cb4f call PrintText ld a, $1 - ld [$d11f], a + ld [wd11f], a call SaveScreenTilesToBuffer1 and a ret .asm_3cb5c - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 ld a, $2 jr nz, .asm_3cb81 call SaveScreenTilesToBuffer1 xor a - ld [$cd6a], a + ld [wcd6a], a ld a, $f - ld [wPlayerMoveListIndex], a ; $cc2e + ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex call Func_3d605 call LoadScreenTilesFromBuffer1 - ld a, [$cc3e] + ld a, [wcc3e] cp $f ld a, $2 jr z, .asm_3cb81 dec a .asm_3cb81 - ld [$cf0b], a + ld [wcf0b], a ld a, (SFX_08_44 - SFX_Headers_08) / 3 call PlaySoundWaitForCurrent ld hl, GotAwayText @@ -1654,42 +1629,42 @@ GotAwayText: ; 3cba1 (f:4ba1) db "@" Func_3cba6: ; 3cba6 (f:4ba6) - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon ld bc, $2c - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) + ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1) call AddNTimes - ld de, W_PLAYERMONID + ld de, wBattleMonSpecies ld bc, $c call CopyData ld bc, $f add hl, bc - ld de, W_PLAYERMONIVS + ld de, wBattleMonDVs ld bc, $2 call CopyData - ld de, W_PLAYERMONPP ; $d02d + ld de, wBattleMonPP ; wBattleMonPP ld bc, $4 call CopyData - ld de, W_PLAYERMONLEVEL ; $d022 + ld de, wBattleMonLevel ; wBattleMonLevel ld bc, $b call CopyData - ld a, [$cfd9] - ld [$d0b5], a + ld a, [wBattleMonSpecies2] + ld [wd0b5], a call GetMonHeader - ld hl, W_PARTYMON1NAME ; $d2b5 - ld a, [wPlayerMonNumber] ; $cc2f + ld hl, wPartyMonNicks ; wPartyMonNicks + ld a, [wPlayerMonNumber] ; wPlayerMonNumber call SkipFixedLengthTextEntries - ld de, W_PLAYERMONNAME + ld de, wBattleMonNick ld bc, $b call CopyData - ld hl, W_PLAYERMONLEVEL ; $d022 - ld de, $cd0f + ld hl, wBattleMonLevel ; wBattleMonLevel + ld de, wcd0f ld bc, $b call CopyData call Func_3ed1a call Func_3ee19 ld a, $7 ld b, $8 - ld hl, wPlayerMonAttackMod ; $cd1a + ld hl, wPlayerMonAttackMod ; wcd1a .asm_3cc0e ld [hli], a dec b @@ -1697,40 +1672,40 @@ Func_3cba6: ; 3cba6 (f:4ba6) ret Func_3cc13: ; 3cc13 (f:4c13) - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon ld bc, $2c - ld hl, wEnemyMons ; $d8a4 + ld hl, wEnemyMons ; wEnemyMon1Species call AddNTimes - ld de, $cfe5 + ld de, wEnemyMonSpecies ld bc, $c call CopyData ld bc, $f add hl, bc - ld de, $cff1 + ld de, wEnemyMonDVs ld bc, $2 call CopyData - ld de, W_ENEMYMONPP ; $cffe + ld de, wEnemyMonPP ; wcffe ld bc, $4 call CopyData - ld de, W_ENEMYMONLEVEL ; $cff3 + ld de, wEnemyMonLevel ; wEnemyMonLevel ld bc, $b call CopyData - ld a, [$cfe5] - ld [$d0b5], a + ld a, [wEnemyMonSpecies] + ld [wd0b5], a call GetMonHeader - ld hl, $d9ee - ld a, [wWhichPokemon] ; $cf92 + ld hl, wEnemyMonNicks + ld a, [wWhichPokemon] ; wWhichPokemon call SkipFixedLengthTextEntries - ld de, W_ENEMYMONNAME + ld de, wEnemyMonNick ld bc, $b call CopyData - ld hl, W_ENEMYMONLEVEL ; $cff3 - ld de, $cd23 + ld hl, wEnemyMonLevel ; wEnemyMonLevel + ld de, wcd23 ld bc, $b call CopyData call Func_3ed1e ld hl, W_MONHBASESTATS - ld de, $d002 + ld de, wd002 ld b, $5 .asm_3cc79 ld a, [hli] @@ -1740,18 +1715,18 @@ Func_3cc13: ; 3cc13 (f:4c13) jr nz, .asm_3cc79 ld a, $7 ld b, $8 - ld hl, wEnemyMonStatMods ; $cd2e + ld hl, wEnemyMonStatMods ; wcd2e .asm_3cc86 ld [hli], a dec b jr nz, .asm_3cc86 - ld a, [wWhichPokemon] ; $cf92 - ld [W_ENEMYMONNUMBER], a ; $cfe8 + ld a, [wWhichPokemon] ; wWhichPokemon + ld [wEnemyMonPartyPos], a ret Func_3cc91: ; 3cc91 (f:4c91) callab SendOutMon - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] or [hl] jp z, Func_3cca4 @@ -1759,91 +1734,81 @@ Func_3cc91: ; 3cc91 (f:4c91) Func_3cca4: ; 3cca4 (f:4ca4) call Func_3cd60 - ld a, $4 - call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103)) + predef LoadMonBackPic xor a ld [$ffe1], a - ld hl, $cc2d + ld hl, wcc2d ld [hli], a ld [hl], a - ld [$cc5b], a - ld [$d05b], a - ld [W_PLAYERMOVENUM], a ; $cfd2 - ld hl, $ccf1 + ld [wcc5b], a + ld [wd05b], a + ld [W_PLAYERMOVENUM], a ; wcfd2 + ld hl, wccf1 ld [hli], a ld [hl], a - ld hl, $d060 + ld hl, wd060 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [W_PLAYERDISABLEDMOVE], a ; $d06d - ld [$ccee], a - ld [$ccf7], a + ld [W_PLAYERDISABLEDMOVE], a ; W_PLAYERDISABLEDMOVE + ld [wccee], a + ld [wccf7], a ld b, $1 call GoPAL_SET - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 5, [hl] ld a, $1 ld [H_WHOSETURN], a ; $fff3 ld a, POOF_ANIM call PlayMoveAnimation - FuncCoord 4, 11 ; $c480 - ld hl, Coord - ld a, $2 - call Predef ; indirect jump to Func_3f073 (3f073 (f:7073)) - ld a, [$cf91] + hlCoord 4, 11 + predef Func_3f073 + ld a, [wcf91] call PlayCry call Func_3ee94 jp SaveScreenTilesToBuffer1 Func_3ccfa: ; 3ccfa (f:4cfa) - FuncCoord 1, 5 ; $c405 - ld hl, Coord + hlCoord 1, 5 ld bc, $707 call ClearScreenArea - FuncCoord 3, 7 ; $c42f - ld hl, Coord + hlCoord 3, 7 ld bc, $505 xor a - ld [$cd6c], a + ld [wcd6c], a ld [H_DOWNARROWBLINKCNT1], a ; $ff8b - ld a, $5 - call Predef ; indirect jump to Func_79aba (79aba (1e:5aba)) + predef Func_79aba ld c, $4 call DelayFrames call Func_3cd3a - FuncCoord 4, 9 ; $c458 - ld hl, Coord + hlCoord 4, 9 ld bc, $303 ld a, $1 - ld [$cd6c], a + ld [wcd6c], a xor a ld [H_DOWNARROWBLINKCNT1], a ; $ff8b - ld a, $5 - call Predef ; indirect jump to Func_79aba (79aba (1e:5aba)) + predef Func_79aba call Delay3 call Func_3cd3a ld a, $4c - FuncCoord 5, 11 ; $c481 - ld [Coord], a + Coorda 5, 11 Func_3cd3a: ; 3cd3a (f:4d3a) - FuncCoord 1, 5 ; $c405 - ld hl, Coord + hlCoord 1, 5 ld bc, $707 jp ClearScreenArea -; reads player's current mon's HP into W_PLAYERMONCURHP +; reads player's current mon's HP into wBattleMonHP ReadPlayerMonCurHPAndStatus: ; 3cd43 (f:4d43) - ld a, [wPlayerMonNumber] ; $cc2f - ld hl, W_PARTYMON1_HP ; $d16c - ld bc, W_PARTYMON2DATA - W_PARTYMON1DATA + ld a, [wPlayerMonNumber] ; wPlayerMonNumber + ld hl, wPartyMon1HP ; wd16c + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes ld d, h ld e, l - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld bc, $4 ; 2 bytes HP, 1 byte unknown (unused?), 1 byte status jp CopyData @@ -1854,67 +1819,61 @@ Func_3cd5a: ; 3cd5a (f:4d5a) Func_3cd60: ; 3cd60 (f:4d60) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - FuncCoord 9, 7 ; $c435 - ld hl, Coord + hlCoord 9, 7 ld bc, $50b call ClearScreenArea callab PlacePlayerHUDTiles - FuncCoord 18, 9 ; $c466 - ld hl, Coord + hlCoord 18, 9 ld [hl], $73 - ld de, W_PLAYERMONNAME - FuncCoord 10, 7 ; $c436 - ld hl, Coord + ld de, wBattleMonNick + hlCoord 10, 7 call Func_3ce9c call PlaceString - ld hl, W_PLAYERMONID - ld de, $cf98 + ld hl, wBattleMonSpecies + ld de, wcf98 ld bc, $c call CopyData - ld hl, W_PLAYERMONLEVEL ; $d022 - ld de, $cfb9 + ld hl, wBattleMonLevel ; wBattleMonLevel + ld de, wcfb9 ld bc, $b call CopyData - FuncCoord 14, 8 ; $c44e - ld hl, Coord + hlCoord 14, 8 push hl inc hl - ld de, $cf9c + ld de, wcf9c call PrintStatusConditionNotFainted pop hl jr nz, .asm_3cdae call PrintLevel .asm_3cdae - ld a, [$cf98] - ld [$cf91], a - FuncCoord 10, 9 ; $c45e - ld hl, Coord - ld a, $5f - call Predef ; indirect jump to Func_128ef (128ef (4:68ef)) + ld a, [wcf98] + ld [wcf91], a + hlCoord 10, 9 + predef DrawHP ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld hl, $cf1d + ld hl, wcf1d call GetBattleHealthBarColor - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld a, [hli] or [hl] jr z, .asm_3cdd9 - ld a, [$ccf6] + ld a, [wccf6] and a ret nz - ld a, [$cf1d] + ld a, [wcf1d] cp $2 jr z, .asm_3cde6 .asm_3cdd9 - ld hl, $d083 + ld hl, wd083 bit 7, [hl] ld [hl], $0 ret z xor a - ld [$c02a], a + ld [wc02a], a ret .asm_3cde6 - ld hl, $d083 + ld hl, wd083 set 7, [hl] ret @@ -1925,24 +1884,22 @@ Func_3cdec: ; 3cdec (f:4dec) ld bc, $40c call ClearScreenArea callab PlaceEnemyHUDTiles - ld de, W_ENEMYMONNAME - FuncCoord 1, 0 ; $c3a1 - ld hl, Coord + ld de, wEnemyMonNick + hlCoord 1, 0 call Func_3ce9c call PlaceString - FuncCoord 4, 1 ; $c3b8 - ld hl, Coord + hlCoord 4, 1 push hl inc hl - ld de, W_ENEMYMONSTATUS ; $cfe9 + ld de, wEnemyMonStatus ; wcfe9 call PrintStatusConditionNotFainted pop hl jr nz, .asm_3ce23 - ld a, [W_ENEMYMONLEVEL] ; $cff3 - ld [$cfb9], a + ld a, [wEnemyMonLevel] ; wEnemyMonLevel + ld [wcfb9], a call PrintLevel .asm_3ce23 - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP ld a, [hli] ld [$ff97], a ld a, [hld] @@ -1959,7 +1916,7 @@ Func_3cdec: ; 3cdec (f:4dec) ld a, $30 ld [H_REMAINDER], a ; $ff99 (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN) call Multiply - ld hl, W_ENEMYMONMAXHP ; $cff4 + ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP ld a, [hli] ld b, a ld a, [hl] @@ -1999,13 +1956,12 @@ Func_3cdec: ; 3cdec (f:4dec) Func_3ce7f: ; 3ce7f (f:4e7f) xor a - ld [wListMenuID], a ; $cf94 - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + ld [wListMenuID], a ; wListMenuID + hlCoord 2, 2 call DrawHPBar ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld hl, $cf1e + ld hl, wcf1e GetBattleHealthBarColor: ; 3ce90 (f:4e90) ld b, [hl] @@ -2039,27 +1995,27 @@ Func_3ce9c: ; 3ce9c (f:4e9c) InitBattleMenu: ; 3ceb3 (f:4eb3) call LoadScreenTilesFromBuffer1 ; restore saved screen - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a and a jr nz, .nonstandardbattle call Func_3cd5a ; redraw names and HP bars? call Func_3ee94 call SaveScreenTilesToBuffer1 .nonstandardbattle - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 ; safari ld a, $b ; safari menu id jr nz, .menuselected ld a, $1b ; regular menu id .menuselected - ld [$d125], a + ld [wd125], a call DisplayTextBoxID - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a dec a jp nz, RegularBattleMenu ; regular battle ; the following happens for the old man tutorial - ld hl, W_PLAYERNAME ; $d158 - ld de, W_GRASSRATE ; $d887 + ld hl, wPlayerName ; wd158 + ld de, W_GRASSRATE ; W_GRASSRATE ld bc, $b call CopyData ; temporarily save the player name in unused space, ; which is supposed to get overwritten when entering a @@ -2067,18 +2023,16 @@ InitBattleMenu: ; 3ceb3 (f:4eb3) ; may not get overwritten (cinnabar) and the infamous ; missingno. glitch can show up. ld hl, OldManName ; $4f12 - ld de, W_PLAYERNAME ; $d158 + ld de, wPlayerName ; wd158 ld bc, $b call CopyData ; the following simulates the keystrokes by drawing menus on screen - FuncCoord 9, 14 ; $c4c1 - ld hl, Coord + hlCoord 9, 14 ld [hl], "▶" ld c, $50 call DelayFrames ld [hl], $7f - FuncCoord 9, 16 ; $c4e9 - ld hl, Coord + hlCoord 9, 16 ld [hl], "▶" ld c, $32 call DelayFrames @@ -2090,38 +2044,33 @@ OldManName: ; 3cf12 (f:4f12) db "OLD MAN@" RegularBattleMenu: ; 3cf1a (f:4f1a) - ld a, [$cc2d] - ld [wCurrentMenuItem], a ; $cc26 - ld [wLastMenuItem], a ; $cc2a + ld a, [wcc2d] + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wLastMenuItem], a ; wLastMenuItem sub $2 jr c, .leftcolumn - ld [wCurrentMenuItem], a ; $cc26 - ld [wLastMenuItem], a ; $cc2a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wLastMenuItem], a ; wLastMenuItem jr .rightcolumn .leftcolumn - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 ld a, " " jr z, .safaribattle - FuncCoord 15, 14 ; $c4c7 - ld [Coord], a - FuncCoord 15, 16 ; $c4ef - ld [Coord], a + Coorda 15, 14 + Coorda 15, 16 ld b, $9 jr .notsafari .safaribattle - FuncCoord 13, 14 ; $c4c5 - ld [Coord], a - FuncCoord 13, 16 ; $c4ed - ld [Coord], a - FuncCoord 7, 14 ; $c4bf - ld hl, Coord - ld de, W_NUMSAFARIBALLS ; $da47 + Coorda 13, 14 + Coorda 13, 16 + hlCoord 7, 14 + ld de, W_NUMSAFARIBALLS ; W_NUMSAFARIBALLS ld bc, $102 call PrintNumber ld b, $1 .notsafari - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $e ld [hli], a ld a, b @@ -2136,29 +2085,24 @@ RegularBattleMenu: ; 3cf1a (f:4f1a) jr nz, .rightcolumn jr .selection .rightcolumn - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 ld a, " " jr z, .safarirightcolumn - FuncCoord 9, 14 ; $c4c1 - ld [Coord], a - FuncCoord 9, 16 ; $c4e9 - ld [Coord], a + Coorda 9, 14 + Coorda 9, 16 ld b, $f jr .notsafarirightcolumn .safarirightcolumn - FuncCoord 1, 14 ; $c4b9 - ld [Coord], a - FuncCoord 1, 16 ; $c4e1 - ld [Coord], a - FuncCoord 7, 14 ; $c4bf - ld hl, Coord - ld de, W_NUMSAFARIBALLS ; $da47 + Coorda 1, 14 + Coorda 1, 16 + hlCoord 7, 14 + ld de, W_NUMSAFARIBALLS ; W_NUMSAFARIBALLS ld bc, $102 call PrintNumber ld b, $d .notsafarirightcolumn - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $e ld [hli], a ld a, b @@ -2172,15 +2116,15 @@ RegularBattleMenu: ; 3cf1a (f:4f1a) call HandleMenuInput bit 5, a jr nz, .leftcolumn - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem add $2 ; if we're in the right column, the actual id is +2 - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem .selection call PlaceUnfilledArrowMenuCursor - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 - ld a, [wCurrentMenuItem] ; $cc26 - ld [$cc2d], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld [wcc2d], a jr z, .asm_3cfd0 cp $1 jr nz, .asm_3cfcb @@ -2194,21 +2138,21 @@ RegularBattleMenu: ; 3cf1a (f:4f1a) and a jr nz, Func_3cfe8 ; first option was selected... - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 jr z, .safari1 xor a - ld [$d120], a + ld [wd120], a jp LoadScreenTilesFromBuffer1 ; restore saved screen and return?? .safari1 ; safari first option?? ld a, SAFARI_BALL - ld [$cf91], a + ld [wcf91], a jr asm_3d05f Func_3cfe8: ; 3cfe8 (f:4fe8) cp $2 jp nz, Func_3d0ca - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3cffd ld hl, ItemsCantBeUsedHereText @@ -2216,83 +2160,83 @@ Func_3cfe8: ; 3cfe8 (f:4fe8) jp InitBattleMenu .asm_3cffd ; bag? call SaveScreenTilesToBuffer2 ; copy bg? - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 jr nz, asm_3d00e ld a, SAFARI_BAIT - ld [$cf91], a + ld [wcf91], a jr asm_3d05f asm_3d00e: ; 3d00e (f:500e) call LoadScreenTilesFromBuffer1 - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a and a jr nz, .asm_3d01a call Func_3cd5a .asm_3d01a - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a dec a jr nz, Func_3d031 ld hl, OldManItemList ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a + ld [wcf8c], a jr Func_3d03c OldManItemList: ; 3d02d (f:502d) db $01, POKE_BALL, 50, $ff Func_3d031 - ld hl, wNumBagItems ; $d31d + ld hl, wNumBagItems ; wNumBagItems ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a + ld [wcf8c], a Func_3d03c xor a - ld [$cf93], a + ld [wcf93], a ld a, $3 - ld [wListMenuID], a ; $cf94 - ld a, [$cc2c] - ld [wCurrentMenuItem], a ; $cc26 + ld [wListMenuID], a ; wListMenuID + ld a, [wcc2c] + ld [wCurrentMenuItem], a ; wCurrentMenuItem call DisplayListMenuID - ld a, [wCurrentMenuItem] ; $cc26 - ld [$cc2c], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld [wcc2c], a ld a, $0 - ld [$cc37], a - ld [$cc35], a + ld [wcc37], a + ld [wcc35], a jp c, InitBattleMenu asm_3d05f: ; 3d05f (f:505f) - ld a, [$cf91] - ld [$d11e], a + ld a, [wcf91] + ld [wd11e], a call GetItemName call CopyStringToCF4B ; copy name xor a - ld [$d152], a + ld [wd152], a call UseItem call Func_3ee5b - call CleanLCD_OAM + call ClearSprites xor a - ld [wCurrentMenuItem], a ; $cc26 - ld a, [W_BATTLETYPE] ; $d05a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld a, [W_BATTLETYPE] ; wd05a cp $2 jr z, .asm_3d09c - ld a, [$cd6a] + ld a, [wcd6a] and a jp z, asm_3d00e - ld a, [W_PLAYERBATTSTATUS1] ; $d062 + ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1 bit 5, a jr z, .asm_3d09c - ld hl, $d06a + ld hl, wd06a dec [hl] jr nz, .asm_3d09c - ld hl, W_PLAYERBATTSTATUS1 ; $d062 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 res 5, [hl] .asm_3d09c - ld a, [$d11c] + ld a, [wd11c] and a jr nz, .asm_3d0b7 - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 jr z, .asm_3d0b2 call LoadScreenTilesFromBuffer1 @@ -2305,9 +2249,9 @@ asm_3d05f: ; 3d05f (f:505f) .asm_3d0b7 call GBPalNormal xor a - ld [$d11c], a + ld [wd11c], a ld a, $2 - ld [$cf0b], a + ld [wcf0b], a scf ret @@ -2319,23 +2263,23 @@ Func_3d0ca: ; 3d0ca (f:50ca) dec a jp nz, Func_3d1fa call SaveScreenTilesToBuffer2 - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a cp $2 jr nz, Func_3d0e0 ld a, SAFARI_ROCK - ld [$cf91], a + ld [wcf91], a jp asm_3d05f Func_3d0e0: ; 3d0e0 (f:50e0) call LoadScreenTilesFromBuffer1 xor a - ld [$d07d], a - ld [$cc35], a + ld [wd07d], a + ld [wcc35], a call DisplayPartyMenu asm_3d0ed: ; 3d0ed (f:50ed) jp nc, Func_3d119 asm_3d0f0: ; 3d0f0 (f:50f0) - call CleanLCD_OAM + call ClearSprites call GBPalWhiteOut call Func_3ee5b call LoadScreenTilesFromBuffer2 @@ -2344,21 +2288,20 @@ asm_3d0f0: ; 3d0f0 (f:50f0) jp InitBattleMenu Func_3d105: ; 3d105 (f:5105) - FuncCoord 11, 11 ; $c487 - ld hl, Coord + hlCoord 11, 11 ld bc, $81 ld a, $7f call FillMemory xor a - ld [$d07d], a + ld [wd07d], a call GoBackToPartyMenu jr asm_3d0ed Func_3d119: ; 3d119 (f:5119) ld a, $c - ld [$d125], a + ld [wd125], a call DisplayTextBoxID - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $c ld [hli], a ld [hli], a @@ -2375,32 +2318,30 @@ Func_3d119: ; 3d119 (f:5119) bit 1, a jr nz, Func_3d105 call PlaceUnfilledArrowMenuCursor - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $2 jr z, asm_3d0f0 and a jr z, .asm_3d18a xor a - ld [$cc49], a - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) - call CleanLCD_OAM - ld a, $36 - call Predef ; indirect jump to StatusScreen (12953 (4:6953)) - ld a, $37 - call Predef ; indirect jump to StatusScreen2 (12b57 (4:6b57)) - ld a, [W_ENEMYBATTSTATUS2] ; $d068 + ld [wcc49], a + ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1) + call ClearSprites + predef StatusScreen + predef StatusScreen2 + ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 bit 4, a ld hl, AnimationSubstitute jr nz, .asm_3d182 - ld a, [$ccf3] + ld a, [wccf3] and a ld hl, AnimationMinimizeMon jr nz, .asm_3d182 - ld a, [$cfe5] - ld [$cf91], a - ld [$d0b5], a + ld a, [wEnemyMonSpecies] + ld [wcf91], a + ld [wd0b5], a call GetMonHeader - ld de, $9000 + ld de, vFrontPic call LoadMonFrontSprite jr .asm_3d187 .asm_3d182 @@ -2409,9 +2350,9 @@ Func_3d119: ; 3d119 (f:5119) .asm_3d187 jp Func_3d0e0 .asm_3d18a - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld d, a - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon cp d jr nz, .asm_3d19d ld hl, AlreadyOutText @@ -2421,9 +2362,9 @@ Func_3d119: ; 3d119 (f:5119) call Func_3ca97 jp z, Func_3d105 ld a, $1 - ld [$cd6a], a + ld [wcd6a], a call GBPalWhiteOut - call CleanLCD_OAM + call ClearSprites call Func_3ee5b call LoadScreenTilesFromBuffer1 call GoPAL_SET_CF1C @@ -2434,23 +2375,21 @@ Func_3d1ba: ; 3d1ba (f:51ba) ld c, $32 call DelayFrames call Func_3ccfa - ld a, [wWhichPokemon] ; $cf92 - ld [wPlayerMonNumber], a ; $cc2f + ld a, [wWhichPokemon] ; wWhichPokemon + ld [wPlayerMonNumber], a ; wPlayerMonNumber ld c, a ld b, $1 push bc - ld hl, W_PLAYERMONSALIVEFLAGS - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + ld hl, wPartyAliveFlags + predef FlagActionPredef pop bc - ld hl, $ccf5 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + ld hl, wccf5 + predef FlagActionPredef call Func_3cba6 call Func_3cc91 call SaveScreenTilesToBuffer1 ld a, $2 - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem and a ret @@ -2461,14 +2400,14 @@ AlreadyOutText: ; 3d1f5 (f:51f5) Func_3d1fa: ; 3d1fa (f:51fa) call LoadScreenTilesFromBuffer1 ld a, $3 - ld [wCurrentMenuItem], a ; $cc26 - ld hl, W_PLAYERMONSPEED - ld de, W_ENEMYMONSPEED + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld hl, wBattleMonSpeed + ld de, wEnemyMonSpeed call Func_3cab9 ld a, $0 - ld [$d11f], a + ld [wd11f], a ret c - ld a, [$cd6a] + ld a, [wcd6a] and a ret nz jp InitBattleMenu @@ -2482,14 +2421,14 @@ MoveSelectionMenu: ; 3d219 (f:5219) jr .regularmenu .loadmoves - ld de, $d0dc + ld de, wd0dc ld bc, $4 call CopyData callab Func_39b87 ret .writemoves - ld de, $d0e1 + ld de, wd0e1 ld a, [$fff6] set 2, a ld [$fff6], a @@ -2502,59 +2441,51 @@ MoveSelectionMenu: ; 3d219 (f:5219) .regularmenu call Func_3d3f5 ret z - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves call .loadmoves - FuncCoord 4, 12 ; $c494 - ld hl, Coord + hlCoord 4, 12 ld b, $4 ld c, $e di call TextBoxBorder - FuncCoord 4, 12 ; $c494 - ld hl, Coord + hlCoord 4, 12 ld [hl], $7a - FuncCoord 10, 12 ; $c49a - ld hl, Coord + hlCoord 10, 12 ld [hl], $7e ei - FuncCoord 6, 13 ; $c4aa - ld hl, Coord + hlCoord 6, 13 call .writemoves ld b, $5 ld a, $c jr .menuset .mimicmenu - ld hl, W_ENEMYMONMOVES + ld hl, wEnemyMonMoves call .loadmoves - FuncCoord 0, 7 ; $c42c - ld hl, Coord + hlCoord 0, 7 ld b, $4 ld c, $e call TextBoxBorder - FuncCoord 2, 8 ; $c442 - ld hl, Coord + hlCoord 2, 8 call .writemoves ld b, $1 ld a, $7 jr .menuset .relearnmenu - ld a, [wWhichPokemon] ; $cf92 - ld hl, W_PARTYMON1_MOVE1 ; $d173 + ld a, [wWhichPokemon] ; wWhichPokemon + ld hl, wPartyMon1Moves ; wPartyMon1Moves ld bc, $2c call AddNTimes call .loadmoves - FuncCoord 4, 7 ; $c430 - ld hl, Coord + hlCoord 4, 7 ld b, $4 ld c, $e call TextBoxBorder - FuncCoord 6, 8 ; $c446 - ld hl, Coord + hlCoord 6, 8 call .writemoves ld b, $5 ld a, $7 .menuset - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld [hli], a ld a, b ld [hli], a ; wTopMenuItemX @@ -2563,12 +2494,12 @@ MoveSelectionMenu: ; 3d219 (f:5219) jr z, .selectedmoveknown ld a, $1 jr nc, .selectedmoveknown - ld a, [wPlayerMoveListIndex] ; $cc2e + ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex inc a .selectedmoveknown ld [hli], a ; wCurrentMenuItem inc hl ; wTileBehindCursor untouched - ld a, [$cd6c] + ld a, [wcd6c] inc a inc a ld [hli], a ; wMaxMenuItem @@ -2579,7 +2510,7 @@ MoveSelectionMenu: ; 3d219 (f:5219) dec a ld b, $c3 jr z, .matchedkeyspicked - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr z, .matchedkeyspicked ld a, [W_FLAGS_D733] @@ -2593,7 +2524,7 @@ MoveSelectionMenu: ; 3d219 (f:5219) ld a, [wMoveMenuType] cp $1 jr z, .movelistindex1 - ld a, [wPlayerMoveListIndex] ; $cc2e + ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex inc a .movelistindex1 ld [hl], a ; wLastMenuItem @@ -2604,8 +2535,7 @@ Func_3d2fe: ; 3d2fe (f:52fe) jr z, .battleselect dec a jr nz, .select - FuncCoord 1, 14 ; $c4b9 - ld hl, Coord + hlCoord 1, 14 ld de, WhichTechniqueString ; $53b8 call PlaceString jr .select @@ -2614,11 +2544,10 @@ Func_3d2fe: ; 3d2fe (f:52fe) bit 0, a jr nz, .select call Func_3d4b6 - ld a, [$cc35] + ld a, [wcc35] and a jr z, .select - FuncCoord 5, 13 ; $c4a9 - ld hl, Coord + hlCoord 5, 13 dec a ld bc, $14 call AddNTimes @@ -2638,10 +2567,10 @@ Func_3d2fe: ; 3d2fe (f:52fe) bit 1, a ; B, but was it reset above? push af xor a - ld [$cc35], a - ld a, [wCurrentMenuItem] ; $cc26 + ld [wcc35], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem dec a - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem ld b, a ld a, [wMoveMenuType] dec a ; if not mimic @@ -2651,38 +2580,38 @@ Func_3d2fe: ; 3d2fe (f:52fe) .nob dec a ld a, b - ld [wPlayerMoveListIndex], a ; $cc2e + ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex jr nz, .moveselected pop af ret .moveselected pop af ret nz - ld hl, W_PLAYERMONPP ; $d02d - ld a, [wCurrentMenuItem] ; $cc26 + ld hl, wBattleMonPP ; wBattleMonPP + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a ld b, $0 add hl, bc ld a, [hl] and $3f jr z, .nopp - ld a, [W_PLAYERDISABLEDMOVE] ; $d06d + ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE swap a and $f dec a cp c jr z, .disabled - ld a, [W_PLAYERBATTSTATUS3] ; $d064 + ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3 bit 3, a ; transformed jr nz, .dummy ; game freak derp .dummy - ld a, [wCurrentMenuItem] ; $cc26 - ld hl, W_PLAYERMONMOVES + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld hl, wBattleMonMoves ld c, a ld b, $0 add hl, bc ld a, [hl] - ld [wPlayerSelectedMove], a ; $ccdc + ld [wPlayerSelectedMove], a ; wPlayerSelectedMove xor a ret .disabled @@ -2707,34 +2636,34 @@ WhichTechniqueString: ; 3d3b8 (f:53b8) db "WHICH TECHNIQUE?@" Func_3d3c9: ; 3d3c9 (f:53c9) - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jp nz, Func_3d2fe call EraseMenuCursor - ld a, [$cd6c] + ld a, [wcd6c] inc a - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem jp Func_3d2fe Func_3d3dd: ; 3d3dd (f:53dd) - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld b, a - ld a, [$cd6c] + ld a, [wcd6c] inc a inc a cp b jp nz, Func_3d2fe call EraseMenuCursor ld a, $1 - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem jp Func_3d2fe Func_3d3f5: ; 3d3f5 (f:53f5) ld a, $a5 - ld [wPlayerSelectedMove], a ; $ccdc - ld a, [W_PLAYERDISABLEDMOVE] ; $d06d + ld [wPlayerSelectedMove], a ; wPlayerSelectedMove + ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE and a - ld hl, W_PLAYERMONPP ; $d02d + ld hl, wBattleMonPP ; wBattleMonPP jr nz, .asm_3d40e ld a, [hli] or [hl] @@ -2776,43 +2705,43 @@ NoMovesLeftText: ; 3d430 (f:5430) db "@" Func_3d435: ; 3d435 (f:5435) - ld a, [$cc35] + ld a, [wcc35] and a jr z, asm_3d4ad - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves call Func_3d493 - ld hl, W_PLAYERMONPP ; $d02d + ld hl, wBattleMonPP ; wBattleMonPP call Func_3d493 - ld hl, W_PLAYERDISABLEDMOVE ; $d06d + ld hl, W_PLAYERDISABLEDMOVE ; W_PLAYERDISABLEDMOVE ld a, [hl] swap a and $f ld b, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp b jr nz, .asm_3d463 ld a, [hl] and $f ld b, a - ld a, [$cc35] + ld a, [wcc35] swap a add b ld [hl], a jr .asm_3d474 .asm_3d463 - ld a, [$cc35] + ld a, [wcc35] cp b jr nz, .asm_3d474 ld a, [hl] and $f ld b, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem swap a add b ld [hl], a .asm_3d474 - ld hl, W_PARTYMON1_MOVE1 ; $d173 - ld a, [wPlayerMonNumber] ; $cc2f + ld hl, wPartyMon1Moves ; wPartyMon1Moves + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld bc, $2c call AddNTimes push hl @@ -2822,12 +2751,12 @@ Func_3d435: ; 3d435 (f:5435) add hl, bc call Func_3d493 xor a - ld [$cc35], a + ld [wcc35], a jp MoveSelectionMenu Func_3d493: ; 3d493 (f:5493) push hl - ld a, [$cc35] + ld a, [wcc35] dec a ld c, a ld b, $0 @@ -2835,7 +2764,7 @@ Func_3d493: ; 3d493 (f:5493) ld d, h ld e, l pop hl - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem dec a ld c, a ld b, $0 @@ -2847,83 +2776,74 @@ Func_3d493: ; 3d493 (f:5493) ld [de], a ret asm_3d4ad: ; 3d4ad (f:54ad) - ld a, [wCurrentMenuItem] ; $cc26 - ld [$cc35], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld [wcc35], a jp MoveSelectionMenu Func_3d4b6: ; 3d4b6 (f:54b6) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - FuncCoord 0, 8 ; $c440 - ld hl, Coord + hlCoord 0, 8 ld b, $3 ld c, $9 call TextBoxBorder - ld a, [W_PLAYERDISABLEDMOVE] ; $d06d + ld a, [W_PLAYERDISABLEDMOVE] ; W_PLAYERDISABLEDMOVE and a jr z, .asm_3d4df swap a and $f ld b, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp b jr nz, .asm_3d4df - FuncCoord 1, 10 ; $c469 - ld hl, Coord + hlCoord 1, 10 ld de, DisabledText call PlaceString jr .asm_3d54e .asm_3d4df - ld hl, wCurrentMenuItem ; $cc26 + ld hl, wCurrentMenuItem ; wCurrentMenuItem dec [hl] xor a ld [H_WHOSETURN], a ; $fff3 - ld hl, W_PLAYERMONMOVES - ld a, [wCurrentMenuItem] ; $cc26 + ld hl, wBattleMonMoves + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a ld b, $0 add hl, bc ld a, [hl] - ld [wPlayerSelectedMove], a ; $ccdc - ld a, [wPlayerMonNumber] ; $cc2f - ld [wWhichPokemon], a ; $cf92 + ld [wPlayerSelectedMove], a ; wPlayerSelectedMove + ld a, [wPlayerMonNumber] ; wPlayerMonNumber + ld [wWhichPokemon], a ; wWhichPokemon ld a, $4 - ld [$cc49], a + ld [wcc49], a callab GetMaxPP - ld hl, wCurrentMenuItem ; $cc26 + ld hl, wCurrentMenuItem ; wCurrentMenuItem ld c, [hl] inc [hl] ld b, $0 - ld hl, W_PLAYERMONPP ; $d02d + ld hl, wBattleMonPP ; wBattleMonPP add hl, bc ld a, [hl] and $3f - ld [$cd6d], a - FuncCoord 1, 9 ; $c455 - ld hl, Coord + ld [wcd6d], a + hlCoord 1, 9 ld de, TypeText call PlaceString - FuncCoord 7, 11 ; $c483 - ld hl, Coord + hlCoord 7, 11 ld [hl], "/" - FuncCoord 5, 9 ; $c459 - ld hl, Coord + hlCoord 5, 9 ld [hl], "/" - FuncCoord 5, 11 ; $c481 - ld hl, Coord - ld de, $cd6d + hlCoord 5, 11 + ld de, wcd6d ld bc, $102 call PrintNumber - FuncCoord 8, 11 ; $c484 - ld hl, Coord - ld de, $d11e + hlCoord 8, 11 + ld de, wd11e ld bc, $102 call PrintNumber call GetCurrentMove - FuncCoord 2, 10 ; $c46a - ld hl, Coord - ld a, $5d - call Predef ; indirect jump to Func_27d98 (27d98 (9:7d98)) + hlCoord 2, 10 + predef Func_27d98 .asm_3d54e ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba @@ -2942,16 +2862,16 @@ SelectEnemyMove: ; 3d564 (f:5564) call SaveScreenTilesToBuffer1 call Func_3d605 call LoadScreenTilesFromBuffer1 - ld a, [$cc3e] + ld a, [wcc3e] cp $e jp z, .asm_3d601 cp $d jr z, .unableToMove cp $4 ret nc - ld [$cce2], a + ld [wEnemyMoveListIndex], a ld c, a - ld hl, W_ENEMYMONMOVES + ld hl, wEnemyMonMoves ld b, $0 add hl, bc ld a, [hl] @@ -2964,7 +2884,7 @@ SelectEnemyMove: ; 3d564 (f:5564) ld a, [hl] and $12 ; using multi-turn move or bide ret nz - ld a, [W_ENEMYMONSTATUS] + ld a, [wEnemyMonStatus] and SLP | 1 << FRZ ; sleeping or frozen ret nz ld a, [W_ENEMYBATTSTATUS1] @@ -2977,7 +2897,7 @@ SelectEnemyMove: ; 3d564 (f:5564) ld a, $ff jr .done .notCaughtInWrap - ld hl, W_ENEMYMONMOVES+1 ; 2nd enemy move + ld hl, wEnemyMonMoves+1 ; 2nd enemy move ld a, [hld] and a jr nz, .atLeastTwoMovesAvailable @@ -2992,7 +2912,7 @@ SelectEnemyMove: ; 3d564 (f:5564) callab AIEnemyTrainerChooseMoves .chooseRandomMove push hl - call GenRandomInBattle ; get random + call BattleRandom ld b, $1 cp $3f ; select move 1 in [0,3e] (63/256 chance) jr c, .moveChosen @@ -3028,35 +2948,35 @@ SelectEnemyMove: ; 3d564 (f:5564) Func_3d605: ; 3d605 (f:5605) ld a, $ff - ld [$cc3e], a - ld a, [wPlayerMoveListIndex] ; $cc2e + ld [wcc3e], a + ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex cp $f jr z, .asm_3d630 - ld a, [$cd6a] + ld a, [wcd6a] and a jr nz, .asm_3d629 - ld a, [wPlayerSelectedMove] ; $ccdc + ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove cp $a5 ld b, $e jr z, .asm_3d62f dec b inc a jr z, .asm_3d62f - ld a, [wPlayerMoveListIndex] ; $cc2e + ld a, [wPlayerMoveListIndex] ; wPlayerMoveListIndex jr .asm_3d630 .asm_3d629 - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon add $4 ld b, a .asm_3d62f ld a, b .asm_3d630 - ld [$cc42], a + ld [wcc42], a callab PrintWaitingText .asm_3d63b call Func_22c3 call DelayFrame - ld a, [$cc3e] + ld a, [wcc3e] inc a jr z, .asm_3d63b ld b, $a @@ -3076,16 +2996,16 @@ Func_3d605: ; 3d605 (f:5605) Func_3d65e: ; 3d65e (f:565e) xor a ld [H_WHOSETURN], a ; $fff3 - ld a, [wPlayerSelectedMove] ; $ccdc + ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove inc a jp z, Func_3d80a xor a - ld [W_MOVEMISSED], a ; $d05f - ld [$cced], a - ld [$ccf4], a + ld [W_MOVEMISSED], a ; W_MOVEMISSED + ld [wcced], a + ld [wccf4], a ld a, $a - ld [$d05b], a - ld a, [$cd6a] + ld [wd05b], a + ld a, [wcd6a] and a jp nz, Func_3d80a call PrintGhostText @@ -3095,14 +3015,14 @@ Func_3d65e: ; 3d65e (f:565e) jp [hl] .asm_3d68a call GetCurrentMove - ld hl, W_PLAYERBATTSTATUS1 ; $d062 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 bit 4, [hl] jr nz, asm_3d6a9 call Func_3dc88 jp z, Func_3d80a Func_3d69a: ; 3d69a (f:569a) - ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + ld a, [W_PLAYERMOVEEFFECT] ; wcfd3 cp CHARGE_EFFECT jp z, Func_3f132 cp FLY_EFFECT @@ -3117,7 +3037,7 @@ asm_3d6a9: ; 3d6a9 (f:56a9) asm_3d6b0: ; 3d6b0 (f:56b0) call PrintMonName1Text ld hl,DecrementPP - ld de,$CCDC ; pointer to the move just used + ld de,wPlayerSelectedMove ; pointer to the move just used ld b,BANK(DecrementPP) call Bankswitch ld a,[W_PLAYERMOVEEFFECT] ; effect of the move just used @@ -3168,7 +3088,7 @@ asm_3d71e ld b,BANK(Func_79747) call nz,Bankswitch pop af - ld [$CC5B],a + ld [wcc5b],a ld a,[W_PLAYERMOVENUM] call PlayMoveAnimation call Func_3eed3 @@ -3190,7 +3110,7 @@ asm_3d74b jr asm_3d766 .next5 xor a - ld [$CC5B],a + ld [wcc5b],a ld a,STATUS_AFFECTED_ANIM call PlayMoveAnimation asm_3d766 @@ -3200,7 +3120,7 @@ asm_3d766 call MirrorMoveCopyMove jp z,Func_3d80a xor a - ld [$CCED],a + ld [wcced],a jp Func_3d69a .next6 cp a,METRONOME_EFFECT @@ -3226,14 +3146,14 @@ asm_3d766 call Func_3dc5c callab DisplayEffectiveness ld a,1 - ld [$CCF4],a + ld [wccf4],a .next9 ld a,[W_PLAYERMOVEEFFECT] ld hl,EffectsArray4 ld de,1 call IsInArray call c,Func_3f132 - ld hl,$CFE6 + ld hl,wEnemyMonHP ld a,[hli] ld b,[hl] or b @@ -3243,9 +3163,9 @@ asm_3d766 ld hl,W_PLAYERBATTSTATUS1 bit 2,[hl] jr z,.next10 ; 57EF - ld a,[$D06A] + ld a,[wd06a] dec a - ld [$D06A],a + ld [wd06a],a jp nz,asm_3d714 res 2,[hl] @@ -3269,7 +3189,7 @@ MultiHitText: ; 3d805 (f:5805) Func_3d80a: ; 3d80a (f:580a) xor a - ld [$CD6A],a + ld [wcd6a],a ld b,1 ret @@ -3280,7 +3200,7 @@ PrintGhostText: ; 3d811 (f:5811) ld a,[H_WHOSETURN] and a jr nz,.Ghost - ld a,[W_PLAYERMONSTATUS] ; player’s turn + ld a,[wBattleMonStatus] ; player’s turn and a,SLP | (1 << FRZ) ret nz ld hl,ScaredText @@ -3319,18 +3239,18 @@ IsGhostBattle: ; 3d83a (f:583a) ret Func_3d854: ; 3d854 (f:5854) - ld hl,W_PLAYERMONSTATUS + ld hl,wBattleMonStatus ld a,[hl] and a,SLP jr z,.FrozenCheck ; to 5884 dec a - ld [W_PLAYERMONSTATUS],a ; decrement sleep count + ld [wBattleMonStatus],a ; decrement sleep count and a jr z,.WakeUp ; to 5874 xor a - ld [$CC5B],a + ld [wcc5b],a ld a,SLP_ANIM - 1 call PlayMoveAnimation ld hl,FastAsleepText @@ -3341,7 +3261,7 @@ Func_3d854: ; 3d854 (f:5854) call PrintText .sleepDone xor a - ld [$CCF1],a + ld [wccf1],a ld hl,Func_3d80a jp Func_3da37 @@ -3351,7 +3271,7 @@ Func_3d854: ; 3d854 (f:5854) ld hl,IsFrozenText call PrintText xor a - ld [$CCF1],a + ld [wccf1],a ld hl,Func_3d80a jp Func_3da37 @@ -3384,7 +3304,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) ld hl,Func_3d80a ; $580a jp Func_3da37 .next - ld hl,$D06D + ld hl,W_PLAYERDISABLEDMOVE ld a,[hl] and a jr z,.next2 ; 58EE @@ -3393,14 +3313,14 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) and a,$F jr nz,.next2 ld [hl],a - ld [$CCEE],a + ld [wccee],a ld hl,DisabledNoMoreText call PrintText .next2 ld a,[W_PLAYERBATTSTATUS1] add a jr nc,.next3 ; 5929 - ld hl,$D06B + ld hl,wd06b dec [hl] jr nz,.next4 ; 5907 ld hl,W_PLAYERBATTSTATUS1 @@ -3412,10 +3332,10 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) ld hl,IsConfusedText call PrintText xor a - ld [$CC5B],a + ld [wcc5b],a ld a,CONF_ANIM - 1 call PlayMoveAnimation - call GenRandomInBattle + call BattleRandom cp a,$80 jr c,.next3 ld hl,W_PLAYERBATTSTATUS1 @@ -3425,20 +3345,20 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) call PrintHurtItselfText jr .next5 ; 5952 .next3 - ld a,[$CCEE] + ld a,[wccee] and a jr z,.ParalysisCheck ; 593E - ld hl,$CCDC + ld hl,wPlayerSelectedMove cp [hl] jr nz,.ParalysisCheck call PrintMoveIsDisabledText ld hl,Func_3d80a ; $580a jp Func_3da37 .ParalysisCheck - ld hl,W_PLAYERMONSTATUS + ld hl,wBattleMonStatus bit PAR,[hl] jr z,.next7 ; 5975 - call GenRandomInBattle ; random number + call BattleRandom cp a,$3F jr nc,.next7 ld hl,FullyParalyzedText @@ -3456,7 +3376,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) jr .next9 ; 596F .next8 xor a - ld [$CC5B],a + ld [wcc5b],a ld a,STATUS_AFFECTED_ANIM call PlayMoveAnimation .next9 @@ -3468,18 +3388,18 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) jr z,.next10 ; 59D0 xor a ld [W_PLAYERMOVENUM],a - ld hl,$D0D7 + ld hl,W_DAMAGE ld a,[hli] ld b,a ld c,[hl] - ld hl,$D075 + ld hl,wd075 ld a,[hl] add c ld [hld],a ld a,[hl] adc b ld [hl],a - ld hl,$D06A + ld hl,wd06a dec [hl] jr z,.next11 ; 599B ld hl,Func_3d80a ; $580a @@ -3490,15 +3410,15 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) ld hl,UnleashedEnergyText call PrintText ld a,1 - ld [$CFD4],a - ld hl,$D075 + ld [W_PLAYERMOVEPOWER],a + ld hl,wd075 ld a,[hld] add a ld b,a - ld [$D0D8],a + ld [wd0d8],a ld a,[hl] rl a - ld [$D0D7],a + ld [W_DAMAGE],a or b jr nz,.next12 ; 59C2 ld a,1 @@ -3518,7 +3438,7 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) ld [W_PLAYERMOVENUM],a ld hl,ThrashingAboutText call PrintText - ld hl,$D06A + ld hl,wd06a dec [hl] ld hl,asm_3d6dc ; $56dc jp nz,Func_3da37 @@ -3526,11 +3446,11 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) ld hl,W_PLAYERBATTSTATUS1 res 1,[hl] set 7,[hl] - call GenRandomInBattle ; random number + call BattleRandom and a,3 inc a inc a - ld [$D06B],a + ld [wd06b],a pop hl jp Func_3da37 .next13 @@ -3538,23 +3458,23 @@ HyperBeamCheck: ; 3d8c2 (f:58c2) jp z,Func_3da1a ld hl,AttackContinuesText call PrintText - ld a,[$D06A] + ld a,[wd06a] dec a - ld [$D06A],a + ld [wd06a],a ld hl,asm_3d714 ; $5714 jp nz,Func_3da37 jp Func_3da37 Func_3da1a: ; 3da1a (f:5a1a) - ld a, [W_PLAYERBATTSTATUS2] ; $d063 + ld a, [W_PLAYERBATTSTATUS2] ; W_PLAYERBATTSTATUS2 bit 6, a jp z, Func_3da39 ld a, RAGE - ld [$d11e], a + ld [wd11e], a call GetMoveName call CopyStringToCF4B xor a - ld [W_PLAYERMOVEEFFECT], a ; $cfd3 + ld [W_PLAYERMOVEEFFECT], a ; wcfd3 ld hl, asm_3d6b0 ; $56b0 jp Func_3da37 @@ -3628,19 +3548,19 @@ CantMoveText: ; 3da83 (f:5a83) db "@" PrintMoveIsDisabledText: ; 3da88 (f:5a88) - ld hl, wPlayerSelectedMove ; $ccdc - ld de, W_PLAYERBATTSTATUS1 ; $d062 + ld hl, wPlayerSelectedMove ; wPlayerSelectedMove + ld de, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3da97 inc hl - ld de, W_ENEMYBATTSTATUS1 ; $d067 + ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 .asm_3da97 ld a, [de] res 4, a ld [de], a ld a, [hl] - ld [$d11e], a + ld [wd11e], a call GetMoveName ld hl, MoveIsDisabledText jp PrintText @@ -3652,22 +3572,22 @@ MoveIsDisabledText: ; 3daa8 (f:5aa8) PrintHurtItselfText: ; 3daad (f:5aad) ld hl, HurtItselfText call PrintText - ld hl, W_ENEMYMONDEFENSE ; $cff8 + ld hl, wEnemyMonDefense ; wcff8 ld a, [hli] push af ld a, [hld] push af - ld a, [W_PLAYERMONDEF] + ld a, [wBattleMonDefense] ld [hli], a - ld a, [$d028] + ld a, [wBattleMonDefense + 1] ld [hl], a - ld hl, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, W_PLAYERMOVEEFFECT ; wcfd3 push hl ld a, [hl] push af xor a ld [hli], a - ld [$d05e], a + ld [wd05e], a ld a, $28 ld [hli], a xor a @@ -3677,13 +3597,13 @@ PrintHurtItselfText: ; 3daad (f:5aad) pop af pop hl ld [hl], a - ld hl, $cff9 + ld hl, wEnemyMonDefense + 1 pop af ld [hld], a pop af ld [hl], a xor a - ld [$cc5b], a + ld [wcc5b], a inc a ld [H_WHOSETURN], a ; $fff3 call PlayMoveAnimation @@ -3701,20 +3621,20 @@ MonName1Text: ; 3dafb (f:5afb) db $08 ; asm ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVENUM] ; $cfd2 - ld hl, $ccf1 + ld a, [W_PLAYERMOVENUM] ; wcfd2 + ld hl, wccf1 jr z, .asm_3db11 - ld a, [W_ENEMYMOVENUM] ; $cfcc - ld hl, $ccf2 + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM + ld hl, wccf2 .asm_3db11 ld [hl], a - ld [$d11e], a + ld [wd11e], a call Func_3db85 - ld a, [$cced] + ld a, [wcced] and a ld hl, Used2Text ret nz - ld a, [$d11e] + ld a, [wd11e] cp DOUBLESLAP ld hl, Used2Text ret c @@ -3731,7 +3651,7 @@ Used2Text: ; 3db34 (f:5b34) db $08 ; asm PrintInsteadText: ; 3db39 (f:5b39) - ld a, [$cced] + ld a, [wcced] and a jr z, PrintCF4BText ld hl, InsteadText @@ -3749,7 +3669,7 @@ CF4BText: ; 3db4c (f:5b4c) TX_FAR _CF4BText db $08 ; asm ld hl, ExclamationPointPointerTable - ld a, [$d11e] + ld a, [wd11e] add a push bc ld b, $0 @@ -3790,7 +3710,7 @@ ExclamationPoint5Text: ; 3db80 (f:5b80) Func_3db85: ; 3db85 (f:5b85) push bc - ld a, [$d11e] ; move number + ld a, [wd11e] ; move number ld c, a ld b, $0 ld hl, UnknownMovesList_3dba3 ; $5ba3 @@ -3806,7 +3726,7 @@ Func_3db85: ; 3db85 (f:5b85) jr .asm_3db8f .asm_3db9d ld a, b - ld [$d11e], a + ld [wd11e], a pop bc ret @@ -3826,18 +3746,18 @@ UnknownMovesList_3dba3: ; 3dba3 (f:5ba3) db $FF ; terminator PrintMoveFailureText: ; 3dbe2 (f:5be2) - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3dbed - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3dbed ld hl, DoesntAffectMonText ; $5c57 - ld a, [$d05b] + ld a, [wd05b] and $7f jr z, .asm_3dc04 ld hl, AttackMissedText ; $5c42 - ld a, [$d05e] + ld a, [wd05e] cp $ff jr nz, .asm_3dc04 ld hl, UnaffectedText ; $5c4c @@ -3845,14 +3765,14 @@ PrintMoveFailureText: ; 3dbe2 (f:5be2) push de call PrintText xor a - ld [$d05e], a + ld [wd05e], a pop de ld a, [de] cp JUMP_KICK_EFFECT ret nz ; if you get here, the mon used hi jump kick and missed - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE ld a, [hli] ld b, [hl] srl a @@ -3872,8 +3792,7 @@ PrintMoveFailureText: ; 3dbe2 (f:5be2) ld hl, KeptGoingAndCrashedText ; $5c47 call PrintText ld b, $4 - ld a, $24 - call Predef ; indirect jump to Func_48125 (48125 (12:4125)) + predef Func_48125 ld a, [H_WHOSETURN] ; $fff3 and a jr nz, .asm_3dc3f @@ -3902,7 +3821,7 @@ DoesntAffectMonText: ; 3dc57 (f:5c57) db "@" Func_3dc5c: ; 3dc5c (f:5c5c) - ld a, [$d05e] + ld a, [wd05e] and a jr z, .asm_3dc75 dec a @@ -3916,7 +3835,7 @@ Func_3dc5c: ; 3dc5c (f:5c5c) ld l, a call PrintText xor a - ld [$d05e], a + ld [wd05e], a .asm_3dc75 ld c, $14 jp DelayFrames @@ -3935,23 +3854,23 @@ OHKOText: ; 3dc83 (f:5c83) Func_3dc88: ; 3dc88 (f:5c88) xor a - ld [$cced], a - ld a, [W_ISLINKBATTLE] ; $d12b + ld [wcced], a + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3dc97 ld a, $1 and a ret .asm_3dc97 - ld hl, W_PARTYMON1_OTID ; $d177 + ld hl, wPartyMon1OTID ; wPartyMon1OTID ld bc, $2c - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ; wPlayerMonNumber call AddNTimes - ld a, [wPlayerID] ; $d359 + ld a, [wPlayerID] ; wPlayerID cp [hl] jr nz, .asm_3dcb1 inc hl - ld a, [wPlayerID + 1] ; $d35a + ld a, [wPlayerID + 1] ; wd35a cp [hl] jp z, Func_3ddb0 .asm_3dcb1 @@ -3973,7 +3892,7 @@ Func_3dc88: ; 3dc88 (f:5c88) .asm_3dcce ld b, a ld c, a - ld a, [W_PLAYERMONLEVEL] ; $d022 + ld a, [wBattleMonLevel] ; wBattleMonLevel ld d, a add b ld b, a @@ -3984,14 +3903,14 @@ Func_3dc88: ; 3dc88 (f:5c88) cp d jp nc, Func_3ddb0 .asm_3dcdf - call GenRandomInBattle + call BattleRandom swap a cp b jr nc, .asm_3dcdf cp c jp c, Func_3ddb0 .asm_3dceb - call GenRandomInBattle + call BattleRandom cp b jr nc, .asm_3dceb cp c @@ -3999,7 +3918,7 @@ Func_3dc88: ; 3dc88 (f:5c88) ld a, d sub c ld b, a - call GenRandomInBattle + call BattleRandom swap a sub b jr c, .asm_3dd0e @@ -4010,16 +3929,16 @@ Func_3dc88: ; 3dc88 (f:5c88) call PrintHurtItselfText jp Func_3ddb4 .asm_3dd0e - call GenRandomInBattle + call BattleRandom add a swap a and $7 jr z, .asm_3dd0e - ld [W_PLAYERMONSTATUS], a ; $d018 + ld [wBattleMonStatus], a ; wBattleMonStatus ld hl, BeganToNapText jr .asm_3dd3a .asm_3dd20 - call GenRandomInBattle + call BattleRandom and $3 ld hl, LoafingAroundText and a @@ -4035,16 +3954,16 @@ Func_3dc88: ; 3dc88 (f:5c88) call PrintText jr Func_3ddb4 .asm_3dd3f - ld a, [$d01d] + ld a, [wBattleMonMoves + 1] and a jr z, .asm_3dd20 - ld a, [$ccee] + ld a, [wccee] and a jr nz, .asm_3dd20 - ld a, [wPlayerSelectedMove] ; $ccdc + ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove cp $a5 jr z, .asm_3dd20 - ld hl, W_PLAYERMONPP ; $d02d + ld hl, wBattleMonPP ; wBattleMonPP push hl ld a, [hli] and $3f @@ -4062,7 +3981,7 @@ Func_3dc88: ; 3dc88 (f:5c88) add b pop hl push af - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a ld b, $0 add hl, bc @@ -4073,33 +3992,33 @@ Func_3dc88: ; 3dc88 (f:5c88) cp b jr z, .asm_3dd20 ld a, $1 - ld [$cced], a - ld a, [wMaxMenuItem] ; $cc28 + ld [wcced], a + ld a, [wMaxMenuItem] ; wMaxMenuItem ld b, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a .asm_3dd86 - call GenRandomInBattle + call BattleRandom and $3 cp b jr nc, .asm_3dd86 cp c jr z, .asm_3dd86 - ld [wCurrentMenuItem], a ; $cc26 - ld hl, W_PLAYERMONPP ; $d02d + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld hl, wBattleMonPP ; wBattleMonPP ld e, a ld d, $0 add hl, de ld a, [hl] and a jr z, .asm_3dd86 - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a ld b, $0 - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves add hl, bc ld a, [hl] - ld [wPlayerSelectedMove], a ; $ccdc + ld [wPlayerSelectedMove], a ; wPlayerSelectedMove call GetCurrentMove Func_3ddb0: ; 3ddb0 (f:5db0) @@ -4145,7 +4064,7 @@ CalculateDamage: ; 3ddcf (f:5dcf) cp a, $14 ;types >= $14 are all special jr nc, .specialAttack .physicalAttack - ld hl, W_ENEMYMONDEFENSE ;opponent defense + ld hl, wEnemyMonDefense ;opponent defense ld a, [hli] ;*BC = opponent defense used later ld b, a ld c, [hl] @@ -4156,8 +4075,8 @@ CalculateDamage: ; 3ddcf (f:5dcf) sla c ;x2 defense if bit2 of D069 is set rl b .next - ld hl, W_PLAYERMONATK ;attack pointer - ld a, [$d05e] + ld hl, wBattleMonAttack ;attack pointer + ld a, [wd05e] and a jr z, .next3 ld c, 3 @@ -4167,14 +4086,14 @@ CalculateDamage: ; 3ddcf (f:5dcf) ld a, [$ff98] ld c, a push bc - ld hl, $d18f + ld hl, wPartyMon1Attack ld a, [wPlayerMonNumber] - ld bc, $002c + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes pop bc jr .next3 .specialAttack - ld hl, W_ENEMYMONSPECIAL ;opponent special + ld hl, wEnemyMonSpecial ;opponent special ld a, [hli] ;*BC = opponent special defense used later ld b, a ld c, [hl] @@ -4185,8 +4104,8 @@ CalculateDamage: ; 3ddcf (f:5dcf) sla c ;x2 special defense if bit1 of D069 set rl b .next2 - ld hl, W_PLAYERMONSPECIAL - ld a, [$d05e] ;XXX + ld hl, wBattleMonSpecial + ld a, [wd05e] ;XXX and a jr z, .next3 ;skip portion of code that pulls up inactive pokemon .loadOtherPoke @@ -4197,9 +4116,9 @@ CalculateDamage: ; 3ddcf (f:5dcf) ld a, [$ff98] ld c, a push bc - ld hl, $d195 + ld hl, wPartyMon1Special ld a, [wPlayerMonNumber] - ld bc, $002c + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes pop bc .next3 @@ -4222,9 +4141,9 @@ CalculateDamage: ; 3ddcf (f:5dcf) inc l ;minimum HL = 1 .next4 ld b, l ;*B = attack [possibly scaled] [C contains defense] - ld a, [$d022] ;*E = level + ld a, [wBattleMonLevel] ;*E = level ld e, a - ld a, [$d05e] ;critical hit? + ld a, [wd05e] ;critical hit? and a jr z, .next5 sla e ;double level if it was a critical hit @@ -4234,11 +4153,11 @@ CalculateDamage: ; 3ddcf (f:5dcf) ret Func_3de75: ; 3de75 (f:5e75) - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE xor a ld [hli], a ld [hl], a - ld hl, W_ENEMYMOVEPOWER ; $cfce + ld hl, W_ENEMYMOVEPOWER ; wcfce ld a, [hli] ld d, a and a @@ -4246,22 +4165,22 @@ Func_3de75: ; 3de75 (f:5e75) ld a, [hl] cp $14 jr nc, .asm_3debc - ld hl, W_PLAYERMONDEF + ld hl, wBattleMonDefense ld a, [hli] ld b, a ld c, [hl] - ld a, [W_PLAYERBATTSTATUS3] ; $d064 + ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3 bit 2, a jr z, .asm_3de98 sla c rl b .asm_3de98 - ld hl, W_ENEMYMONATTACK - ld a, [$d05e] + ld hl, wEnemyMonAttack + ld a, [wd05e] and a jr z, .asm_3deef - ld hl, W_PARTYMON1_DEFENSE ; $d191 - ld a, [wPlayerMonNumber] ; $cc2f + ld hl, wPartyMon1Defense + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld bc, $2c call AddNTimes ld a, [hli] @@ -4274,22 +4193,22 @@ Func_3de75: ; 3de75 (f:5e75) pop bc jr .asm_3deef .asm_3debc - ld hl, W_PLAYERMONSPECIAL + ld hl, wBattleMonSpecial ld a, [hli] ld b, a ld c, [hl] - ld a, [W_PLAYERBATTSTATUS3] ; $d064 + ld a, [W_PLAYERBATTSTATUS3] ; W_PLAYERBATTSTATUS3 bit 1, a jr z, .asm_3decd sla c rl b .asm_3decd - ld hl, W_ENEMYMONSPECIAL ; $cffc - ld a, [$d05e] + ld hl, wEnemyMonSpecial ; wcffc + ld a, [wd05e] and a jr z, .asm_3deef - ld hl, W_PARTYMON1_SPECIAL ; $d195 - ld a, [wPlayerMonNumber] ; $cc2f + ld hl, wPartyMon1Special ; wPartyMon1Special + ld a, [wPlayerMonNumber] ; wPlayerMonNumber ld bc, $2c call AddNTimes ld a, [hli] @@ -4320,9 +4239,9 @@ Func_3de75: ; 3de75 (f:5e75) inc l .asm_3df0a ld b, l - ld a, [W_ENEMYMONLEVEL] ; $cff3 + ld a, [wEnemyMonLevel] ; wEnemyMonLevel ld e, a - ld a, [$d05e] + ld a, [wd05e] and a jr z, .asm_3df17 sla e @@ -4335,16 +4254,16 @@ Func_3de75: ; 3de75 (f:5e75) Func_3df1c: ; 3df1c (f:5f1c) push de push bc - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3df40 - ld hl, $d8c6 + ld hl, wEnemyMon1Stats dec c sla c ld b, $0 add hl, bc - ld a, [W_ENEMYMONNUMBER] ; $cfe8 - ld bc, $2c + ld a, [wEnemyMonPartyPos] + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes ld a, [hli] ld [$ff97], a @@ -4354,13 +4273,13 @@ Func_3df1c: ; 3df1c (f:5f1c) pop de ret .asm_3df40 - ld a, [W_ENEMYMONLEVEL] ; $cff3 - ld [W_CURENEMYLVL], a ; $d127 - ld a, [$cfe5] - ld [$d0b5], a + ld a, [wEnemyMonLevel] ; wEnemyMonLevel + ld [W_CURENEMYLVL], a ; W_CURENEMYLVL + ld a, [wEnemyMonSpecies] + ld [wd0b5], a call GetMonHeader - ld hl, $cff1 - ld de, $cfaf + ld hl, wEnemyMonDVs + ld de, wcfaf ld a, [hli] ld [de], a inc de @@ -4368,7 +4287,7 @@ Func_3df1c: ; 3df1c (f:5f1c) ld [de], a pop bc ld b, $0 - ld hl, $cfa4 + ld hl, wcfa4 call CalcStat pop de ret @@ -4384,7 +4303,7 @@ MoreCalculateDamage: ; 3df65 (f:5f65) and a ld a, [W_PLAYERMOVEEFFECT] jr z, .effect - ld a, [$cfcd] + ld a, [W_ENEMYMOVEEFFECT] .effect ; EXPLODE_EFFECT halves defense. @@ -4534,7 +4453,7 @@ MoreCalculateDamage: ; 3df65 (f:5f65) Func_3e016: ; 3e016 (f:6016) call Func_3f132 - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED dec a ret @@ -4552,25 +4471,25 @@ UnusedHighCriticalMoves: ; 3e01e (f:601e) ; among the most popular) tend to CH about 20 to 25% of the time." CriticalHitTest: ; 3e023 (f:6023) xor a - ld [$d05e], a + ld [wd05e], a ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [$cfe5] + ld a, [wEnemyMonSpecies] jr nz, .asm_3e032 - ld a, [W_PLAYERMONID] + ld a, [wBattleMonSpecies] .asm_3e032 - ld [$d0b5], a + ld [wd0b5], a call GetMonHeader ld a, [W_MONHBASESPEED] ld b, a srl b ; (effective (base speed/2)) ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, W_PLAYERMOVEPOWER ; $cfd4 - ld de, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, W_PLAYERMOVEPOWER ; W_PLAYERMOVEPOWER + ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 jr z, .calcCriticalHitProbability - ld hl, W_ENEMYMOVEPOWER ; $cfce - ld de, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYMOVEPOWER ; wcfce + ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .calcCriticalHitProbability ; 0x3e04f ld a, [hld] ; read base power from RAM and a @@ -4606,14 +4525,14 @@ CriticalHitTest: ; 3e023 (f:6023) jr nc, .SkipHighCritical ld b, $ff .SkipHighCritical - call GenRandomInBattle ; generates a random value, in "a" + call BattleRandom ; generates a random value, in "a" rlc a rlc a rlc a cp b ; check a against calculated crit rate ret nc ; no critical hit if no borrow ld a, $1 - ld [$d05e], a ; set critical hit flag + ld [wd05e], a ; set critical hit flag ret ; high critical hit moves @@ -4697,7 +4616,7 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df) jr ApplyDamageToEnemyPokemon .superFangEffect ; set the damage to half the target's HP - ld hl,W_ENEMYMONCURHP + ld hl,wEnemyMonHP ld de,W_DAMAGE ld a,[hli] srl a @@ -4714,7 +4633,7 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df) ld [de],a jr ApplyDamageToEnemyPokemon .specialDamage - ld hl,W_PLAYERMONLEVEL + ld hl,wBattleMonLevel ld a,[hl] ld b,a ld a,[W_PLAYERMOVENUM] @@ -4736,7 +4655,7 @@ ApplyAttackToEnemyPokemon: ; 3e0df (f:60df) ld b,a ; b = level * 1.5 ; loop until a random number in the range [1, b) is found .loop - call GenRandomInBattle ; random number + call BattleRandom and a jr z,.loop cp b @@ -4763,16 +4682,16 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142) ; also, save the current HP at wHPBarOldHP ld a,[hld] ld b,a - ld a,[W_ENEMYMONCURHP + 1] + ld a,[wEnemyMonHP + 1] ld [wHPBarOldHP],a sub b - ld [W_ENEMYMONCURHP + 1],a + ld [wEnemyMonHP + 1],a ld a,[hl] ld b,a - ld a,[W_ENEMYMONCURHP] + ld a,[wEnemyMonHP] ld [wHPBarOldHP+1],a sbc b - ld [W_ENEMYMONCURHP],a + ld [wEnemyMonHP],a jr nc,.animateHpBar ; if more damage was done than the current HP, zero the HP and set the damage ; equal to how much HP the pokemon had before the attack @@ -4781,26 +4700,24 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142) ld a,[wHPBarOldHP] ld [hl],a xor a - ld hl,W_ENEMYMONCURHP + ld hl,wEnemyMonHP ld [hli],a ld [hl],a .animateHpBar - ld hl,W_ENEMYMONMAXHP + ld hl,wEnemyMonMaxHP ld a,[hli] ld [wHPBarMaxHP+1],a ld a,[hl] ld [wHPBarMaxHP],a - ld hl,W_ENEMYMONCURHP + ld hl,wEnemyMonHP ld a,[hli] ld [wHPBarNewHP+1],a ld a,[hl] ld [wHPBarNewHP],a - FuncCoord 2, 2 ; $c3ca - ld hl,Coord + hlCoord 2, 2 xor a - ld [$cf94],a - ld a,$48 - call Predef ; animate the HP bar shortening + ld [wListMenuID],a + predef UpdateHPBar2 ; animate the HP bar shortening ApplyAttackToEnemyPokemonDone: ; 3e19d (f:619d) jp Func_3cd5a ; redraw pokemon names and HP bars @@ -4818,7 +4735,7 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0) jr ApplyDamageToPlayerPokemon .superFangEffect ; set the damage to half the target's HP - ld hl,W_PLAYERMONCURHP + ld hl,wBattleMonHP ld de,W_DAMAGE ld a,[hli] srl a @@ -4835,7 +4752,7 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0) ld [de],a jr ApplyDamageToPlayerPokemon .specialDamage - ld hl,W_ENEMYMONLEVEL + ld hl,wEnemyMonLevel ld a,[hl] ld b,a ld a,[W_ENEMYMOVENUM] @@ -4859,7 +4776,7 @@ ApplyAttackToPlayerPokemon: ; 3e1a0 (f:61a0) ; this differs from the range when the player attacks, which is [1, b) ; it's possible for the enemy to do 0 damage with Psywave, but the player always does at least 1 damage .loop - call GenRandomInBattle ; random number + call BattleRandom cp b jr nc,.loop ld b,a @@ -4884,16 +4801,16 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200) ; also, save the current HP at wHPBarOldHP and the new HP at wHPBarNewHP ld a,[hld] ld b,a - ld a,[W_PLAYERMONCURHP + 1] + ld a,[wBattleMonHP + 1] ld [wHPBarOldHP],a sub b - ld [W_PLAYERMONCURHP + 1],a + ld [wBattleMonHP + 1],a ld [wHPBarNewHP],a ld b,[hl] - ld a,[W_PLAYERMONCURHP] + ld a,[wBattleMonHP] ld [wHPBarOldHP+1],a sbc b - ld [W_PLAYERMONCURHP],a + ld [wBattleMonHP],a ld [wHPBarNewHP+1],a jr nc,.animateHpBar ; if more damage was done than the current HP, zero the HP and set the damage @@ -4903,24 +4820,22 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200) ld a,[wHPBarOldHP] ld [hl],a xor a - ld hl,W_PLAYERMONCURHP + ld hl,wBattleMonHP ld [hli],a ld [hl],a ld hl,wHPBarNewHP ld [hli],a ld [hl],a .animateHpBar - ld hl,W_PLAYERMONMAXHP + ld hl,wBattleMonMaxHP ld a,[hli] ld [wHPBarMaxHP+1],a ld a,[hl] ld [wHPBarMaxHP],a - FuncCoord 10, 9 ; $c45e - ld hl,Coord + hlCoord 10, 9 ld a,$01 - ld [$cf94],a - ld a,$48 - call Predef ; animate the HP bar shortening + ld [wListMenuID],a + predef UpdateHPBar2 ; animate the HP bar shortening ApplyAttackToPlayerPokemonDone jp Func_3cd5a ; redraw pokemon names and HP bars @@ -5031,12 +4946,12 @@ MirrorMoveCopyMove: ; 3e2fd (f:62fd) ld a,[H_WHOSETURN] and a ; values for player turn - ld a,[$ccf2] + ld a,[wccf2] ld hl,wPlayerSelectedMove ld de,W_PLAYERMOVENUM jr z,.next ; values for enemy turn - ld a,[$ccf1] + ld a,[wccf1] ld de,W_ENEMYMOVENUM ld hl,wEnemySelectedMove .next @@ -5058,7 +4973,7 @@ MirrorMoveFailedText: ; 3e324 (f:6324) ; function used to reload move data for moves like Mirror Move and Metronome ReloadMoveData: ; 3e329 (f:6329) - ld [$d11e],a + ld [wd11e],a dec a ld hl,Moves ld bc,$0006 @@ -5076,7 +4991,7 @@ ReloadMoveData: ; 3e329 (f:6329) ; function that picks a random move for metronome MetronomePickMove: ; 3e348 (f:6348) xor a - ld [$cc5b],a + ld [wcc5b],a ld a,METRONOME call PlayMoveAnimation ; play Metronome's animation ; values for player turn @@ -5090,10 +5005,10 @@ MetronomePickMove: ; 3e348 (f:6348) ld hl,wEnemySelectedMove ; loop to pick a random number in the range [1, $a5) to be the move used by Metronome .pickMoveLoop - call GenRandomInBattle ; random number + call BattleRandom and a jr z,.pickMoveLoop - cp a,NUM_MOVES + 1 ; max normal move number + 1 (this is Struggle's move number) + cp a,NUM_ATTACKS + 1 ; max normal move number + 1 (this is Struggle's move number) jr nc,.pickMoveLoop cp a,METRONOME jr z,.pickMoveLoop @@ -5107,13 +5022,13 @@ IncrementMovePP: ; 3e373 (f:6373) ld a,[H_WHOSETURN] and a ; values for player turn - ld hl,W_PLAYERMONPP - ld de,W_PARTYMON1_MOVE1PP + ld hl,wBattleMonPP + ld de,wPartyMon1PP ld a,[wPlayerMoveListIndex] jr z,.next ; values for enemy turn - ld hl,W_ENEMYMONPP - ld de,$d8c1 ; enemy party pokemon 1 PP + ld hl,wEnemyMonPP + ld de,wEnemyMon1PP ld a,[wEnemyMoveListIndex] .next ld b,$00 @@ -5127,9 +5042,9 @@ IncrementMovePP: ; 3e373 (f:6373) and a ld a,[wPlayerMonNumber] ; value for player turn jr z,.next2 - ld a,[W_ENEMYMONNUMBER] ; value for enemy turn + ld a,[wEnemyMonPartyPos] ; value for enemy turn .next2 - ld bc,$002c + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes inc [hl] ; increment PP in the party memory location ret @@ -5137,32 +5052,32 @@ IncrementMovePP: ; 3e373 (f:6373) ; function to adjust the base damage of an attack to account for type effectiveness AdjustDamageForMoveType: ; 3e3a5 (f:63a5) ; values for player turn - ld hl,W_PLAYERMONTYPES + ld hl,wBattleMonType ld a,[hli] ld b,a ; b = type 1 of attacker ld c,[hl] ; c = type 2 of attacker - ld hl,W_ENEMYMONTYPES + ld hl,wEnemyMonType ld a,[hli] ld d,a ; d = type 1 of defender ld e,[hl] ; e = type 2 of defender ld a,[W_PLAYERMOVETYPE] - ld [$d11e],a + ld [wd11e],a ld a,[H_WHOSETURN] and a jr z,.next ; values for enemy turn - ld hl,W_ENEMYMONTYPES + ld hl,wEnemyMonType ld a,[hli] ld b,a ; b = type 1 of attacker ld c,[hl] ; c = type 2 of attacker - ld hl,W_PLAYERMONTYPES + ld hl,wBattleMonType ld a,[hli] ld d,a ; d = type 1 of defender ld e,[hl] ; e = type 2 of defender ld a,[W_ENEMYMOVETYPE] - ld [$d11e],a + ld [wd11e],a .next - ld a,[$d11e] ; move type + ld a,[wd11e] ; move type cp b ; does the move type match type 1 of the attacker? jr z,.sameTypeAttackBonus cp c ; does the move type match type 2 of the attacker? @@ -5184,10 +5099,10 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5) ld [W_DAMAGE],a ld a,l ld [W_DAMAGE + 1],a - ld hl,$d05b + ld hl,wd05b set 7,[hl] .skipSameTypeAttackBonus - ld a,[$d11e] + ld a,[wd11e] ld b,a ; b = move type ld hl,TypeEffects .loop @@ -5207,13 +5122,13 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5) push hl push bc inc hl - ld a,[$d05b] + ld a,[wd05b] and a,$80 ld b,a ld a,[hl] ; a = damage multiplier ld [H_MULTIPLIER],a add b - ld [$d05b],a + ld [wd05b],a xor a ld [H_MULTIPLICAND],a ld hl,W_DAMAGE @@ -5250,18 +5165,18 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5) ; function to tell how effective the type of an enemy attack is on the player's current pokemon ; this doesn't take into account the effects that dual types can have ; (e.g. 4x weakness / resistance, weaknesses and resistances canceling) -; the result is stored in [$D11E] +; the result is stored in [wd11e] ; ($05 is not very effective, $10 is neutral, $14 is super effective) ; as far is can tell, this is only used once in some AI code to help decide which move to use AIGetTypeEffectiveness: ; 3e449 (f:6449) ld a,[W_ENEMYMOVETYPE] ld d,a ; d = type of enemy move - ld hl,W_PLAYERMONTYPES + ld hl,wBattleMonType ld b,[hl] ; b = type 1 of player's pokemon inc hl ld c,[hl] ; c = type 2 of player's pokemon ld a,$10 - ld [$d11e],a ; initialize [$D11E] to neutral effectiveness + ld [wd11e],a ; initialize [wd11e] to neutral effectiveness ld hl,TypeEffects .loop ld a,[hli] @@ -5282,7 +5197,7 @@ AIGetTypeEffectiveness: ; 3e449 (f:6449) jr .loop .done ld a,[hl] - ld [$d11e],a ; store damage multiplier + ld [wd11e],a ; store damage multiplier ret INCLUDE "data/type_effects.asm" @@ -5292,14 +5207,14 @@ MoveHitTest: ; 3e56b (f:656b) ; player's turn ld hl,W_ENEMYBATTSTATUS1 ld de,W_PLAYERMOVEEFFECT - ld bc,W_ENEMYMONSTATUS + ld bc,wEnemyMonStatus ld a,[H_WHOSETURN] and a jr z,.dreamEaterCheck ; enemy's turn ld hl,W_PLAYERBATTSTATUS1 ld de,W_ENEMYMOVEEFFECT - ld bc,W_PLAYERMONSTATUS + ld bc,wBattleMonStatus .dreamEaterCheck ld a,[de] cp a,DREAM_EATER_EFFECT @@ -5385,7 +5300,7 @@ MoveHitTest: ; 3e56b (f:656b) .doAccuracyCheck ; if the random number generated is greater than or equal to the scaled accuracy, the move misses ; note that this means that even the highest accuracy is still just a 255/256 chance, not 100% - call GenRandomInBattle ; random number + call BattleRandom cp b jr nc,.moveMissed ret @@ -5478,7 +5393,7 @@ CalcHitChance: ; 3e624 (f:6624) ret Func_3e687: ; 3e687 (f:6687) - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE ld a, [hli] and a jr nz, .asm_3e692 @@ -5494,7 +5409,7 @@ Func_3e687: ; 3e687 (f:6687) ld a, [hl] ld [$ff98], a .asm_3e69c - call GenRandomInBattle + call BattleRandom rrca cp $d9 jr c, .asm_3e69c @@ -5505,81 +5420,81 @@ Func_3e687: ; 3e687 (f:6687) ld b, $4 call Divide ld a, [$ff97] - ld hl, W_DAMAGE ; $d0d7 + ld hl, W_DAMAGE ; W_DAMAGE ld [hli], a ld a, [$ff98] ld [hl], a ret Func_3e6bc: ; 3e6bc (f:66bc) - ld a, [wEnemySelectedMove] ; $ccdd + ld a, [wEnemySelectedMove] ; wccdd inc a jp z, Func_3e88c call PrintGhostText jp z, Func_3e88c - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3e6dc ld b, $1 - ld a, [$cc3e] + ld a, [wcc3e] cp $e jr z, .asm_3e6dc cp $4 ret nc .asm_3e6dc - ld hl, $ccd5 + ld hl, wccd5 inc [hl] xor a - ld [W_MOVEMISSED], a ; $d05f - ld [$ccf4], a + ld [W_MOVEMISSED], a ; W_MOVEMISSED + ld [wccf4], a ld a, $a - ld [$d05b], a + ld [wd05b], a call Func_3e88f jr nz, .asm_3e6f2 jp [hl] .asm_3e6f2 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 bit 4, [hl] jr nz, asm_3e70b call GetCurrentMove Func_3e6fc: ; 3e6fc (f:66fc) - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp CHARGE_EFFECT jp z, Func_3f132 cp FLY_EFFECT jp z, Func_3f132 jr asm_3e72b asm_3e70b: ; 3e70b (f:670b) - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 4, [hl] ; no longer charging up for attack res 6, [hl] ; no longer invulnerable to typcial attacks - ld a, [W_ENEMYMOVENUM] ; $cfcc - ld [$d0b5], a + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM + ld [wd0b5], a ld a, $2c - ld [$d0b7], a + ld [wPredefBank], a ld a, MOVE_NAME ld [W_LISTTYPE], a call GetName - ld de, $cd6d + ld de, wcd6d call CopyStringToCF4B asm_3e72b: ; 3e72b (f:672b) xor a - ld [$cced], a + ld [wcced], a call PrintMonName1Text - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT ld hl, EffectsArray1 ; $4000 ld de, $1 call IsInArray jp c, Func_3f132 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT ld hl, EffectsArray5B ; $4049 ld de, $1 call IsInArray call c, Func_3f132 asm_3e750: ; 3e750 (f:6750) call Func_3ec81 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT ld hl, EffectsArray2 ; $4011 ld de, $1 call IsInArray @@ -5598,10 +5513,10 @@ asm_3e750: ; 3e750 (f:6750) Func_3e77f: ; 3e77f (f:677f) call MoveHitTest asm_3e782: ; 3e782 (f:6782) - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr z, .asm_3e791 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp EXPLODE_EFFECT jr z, asm_3e7a0 jr Func_3e7d1 @@ -5609,7 +5524,7 @@ asm_3e782: ; 3e782 (f:6782) call Func_3ec81 Func_3e794: ; 3e794 (f:6794) - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT and a ld a, $1 jr z, asm_3e7a4 @@ -5620,18 +5535,18 @@ asm_3e7a0: ; 3e7a0 (f:67a0) xor a asm_3e7a4: ; 3e7a4 (f:67a4) push af - ld a, [W_ENEMYBATTSTATUS2] ; $d068 + ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 bit 4, a ; does mon have a substitute? ld hl, Func_79747 ld b, BANK(Func_79747) call nz, Bankswitch pop af - ld [$cc5b], a - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld [wcc5b], a + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM call PlayMoveAnimation call Func_3eed3 call Func_3cdec - ld a, [W_ENEMYBATTSTATUS2] ; $d068 + ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 bit 4, a ; does mon have a substitute? ld hl, Func_79771 ld b, BANK(Func_79771) @@ -5642,7 +5557,7 @@ Func_3e7d1: ; 3e7d1 (f:67d1) call Func_3ec81 ld c, $1e call DelayFrames - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp FLY_EFFECT jr z, .asm_3e7e6 cp CHARGE_EFFECT @@ -5650,11 +5565,11 @@ Func_3e7d1: ; 3e7d1 (f:67d1) jr asm_3e7ef .asm_3e7e6 xor a - ld [$cc5b], a + ld [wcc5b], a ld a,STATUS_AFFECTED_ANIM call PlayMoveAnimation asm_3e7ef: ; 3e7ef (f:67ef) - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp MIRROR_MOVE_EFFECT jr nz, .notMirrorMoveEffect call MirrorMoveCopyMove @@ -5666,16 +5581,16 @@ asm_3e7ef: ; 3e7ef (f:67ef) call MetronomePickMove jp Func_3e6fc .notMetronomeEffect - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT ld hl, EffectsArray3 ; $4014 ld de, $1 call IsInArray jp c, Func_3f132 - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr z, .asm_3e82b call PrintMoveFailureText - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp EXPLODE_EFFECT jr z, .asm_3e83e jp Func_3e88c @@ -5684,24 +5599,24 @@ asm_3e7ef: ; 3e7ef (f:67ef) call Func_3dc5c callab DisplayEffectiveness ld a, $1 - ld [$ccf4], a + ld [wccf4], a .asm_3e83e - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT ld hl, EffectsArray4 ; $4030 ld de, $1 call IsInArray call c, Func_3f132 - ld hl, W_PLAYERMONCURHP ; $d015 + ld hl, wBattleMonHP ; wd015 ld a, [hli] ld b, [hl] or b ret z call HandleBuildingRage - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 bit 2, [hl] ; is mon hitting multiple times? (example: double kick) jr z, .asm_3e873 push hl - ld hl, $d06f + ld hl, wd06f dec [hl] pop hl jp nz, Func_3e794 @@ -5709,9 +5624,9 @@ asm_3e7ef: ; 3e7ef (f:67ef) ld hl, HitXTimesText ; $6887 call PrintText xor a - ld [$cd05], a + ld [wcd05], a .asm_3e873 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT and a jr z, Func_3e88c ld hl, EffectsArray5 ; $403b @@ -5729,18 +5644,18 @@ Func_3e88c: ; 3e88c (f:688c) ret Func_3e88f: ; 3e88f (f:688f) - ld hl, W_ENEMYMONSTATUS ; $cfe9 + ld hl, wEnemyMonStatus ; wcfe9 ld a, [hl] and $7 jr z, .asm_3e8bf dec a - ld [W_ENEMYMONSTATUS], a ; $cfe9 + ld [wEnemyMonStatus], a ; wcfe9 and a jr z, .asm_3e8af ld hl, FastAsleepText call PrintText xor a - ld [$cc5b], a + ld [wcc5b], a ld a,SLP_ANIM call PlayMoveAnimation jr .asm_3e8b5 @@ -5749,7 +5664,7 @@ Func_3e88f: ; 3e88f (f:688f) call PrintText .asm_3e8b5 xor a - ld [$ccf2], a + ld [wccf2], a ld hl, Func_3e88c ; $688c jp Func_3eab8 .asm_3e8bf @@ -5758,11 +5673,11 @@ Func_3e88f: ; 3e88f (f:688f) ld hl, IsFrozenText call PrintText xor a - ld [$ccf2], a + ld [wccf2], a ld hl, Func_3e88c ; $688c jp Func_3eab8 .asm_3e8d3 - ld a, [W_PLAYERBATTSTATUS1] ; $d062 + ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1 bit 5, a jp z, Func_3e8e7 ld hl, CantMoveText @@ -5771,7 +5686,7 @@ Func_3e88f: ; 3e88f (f:688f) jp Func_3eab8 Func_3e8e7: ; 3e8e7 (f:68e7) - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 bit 3, [hl] jp z, Func_3e8fd res 3, [hl] @@ -5781,7 +5696,7 @@ Func_3e8e7: ; 3e8e7 (f:68e7) jp Func_3eab8 Func_3e8fd: ; 3e8fd (f:68fd) - ld hl, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 bit 5, [hl] jr z, .asm_3e912 res 5, [hl] @@ -5790,7 +5705,7 @@ Func_3e8fd: ; 3e8fd (f:68fd) ld hl, Func_3e88c ; $688c jp Func_3eab8 .asm_3e912 - ld hl, W_ENEMYDISABLEDMOVE ; $d072 + ld hl, W_ENEMYDISABLEDMOVE ; W_ENEMYDISABLEDMOVE ld a, [hl] and a jr z, .asm_3e929 @@ -5799,17 +5714,17 @@ Func_3e8fd: ; 3e8fd (f:68fd) and $f jr nz, .asm_3e929 ld [hl], a - ld [$ccef], a + ld [wccef], a ld hl, DisabledNoMoreText call PrintText .asm_3e929 - ld a, [W_ENEMYBATTSTATUS1] ; $d067 + ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1 add a jp nc, Func_3e9aa - ld hl, $d070 + ld hl, wd070 dec [hl] jr nz, .asm_3e944 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 7, [hl] ld hl, ConfusedNoMoreText call PrintText @@ -5818,34 +5733,34 @@ Func_3e8fd: ; 3e8fd (f:68fd) ld hl, IsConfusedText call PrintText xor a - ld [$cc5b], a + ld [wcc5b], a ld a,CONF_ANIM call PlayMoveAnimation - call GenRandomInBattle + call BattleRandom cp $80 jr c, Func_3e9aa - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 ld a, [hl] and $80 ld [hl], a ld hl, HurtItselfText call PrintText - ld hl, W_PLAYERMONDEF + ld hl, wBattleMonDefense ld a, [hli] push af ld a, [hld] push af - ld a, [W_ENEMYMONDEFENSE] ; $cff8 + ld a, [wEnemyMonDefense] ; wcff8 ld [hli], a - ld a, [$cff9] + ld a, [wEnemyMonDefense + 1] ld [hl], a - ld hl, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT push hl ld a, [hl] push af xor a ld [hli], a - ld [$d05e], a + ld [wd05e], a ld a, $28 ld [hli], a xor a @@ -5855,13 +5770,13 @@ Func_3e8fd: ; 3e8fd (f:68fd) pop af pop hl ld [hl], a - ld hl, $d028 + ld hl, wBattleMonDefense + 1 pop af ld [hld], a pop af ld [hl], a xor a - ld [$cc5b], a + ld [wcc5b], a ld [H_WHOSETURN], a ; $fff3 ld a, POUND call PlayMoveAnimation @@ -5871,30 +5786,30 @@ Func_3e8fd: ; 3e8fd (f:68fd) jr asm_3e9d3 Func_3e9aa: ; 3e9aa (f:69aa) - ld a, [$ccef] + ld a, [wccef] and a jr z, .asm_3e9bf - ld hl, wEnemySelectedMove ; $ccdd + ld hl, wEnemySelectedMove ; wccdd cp [hl] jr nz, .asm_3e9bf call PrintMoveIsDisabledText ld hl, Func_3e88c ; $688c jp Func_3eab8 .asm_3e9bf - ld hl, W_ENEMYMONSTATUS ; $cfe9 + ld hl, wEnemyMonStatus ; wcfe9 bit 6, [hl] jr z, asm_3e9f6 - call GenRandomInBattle + call BattleRandom cp $3f jr nc, asm_3e9f6 ld hl, FullyParalyzedText call PrintText asm_3e9d3: ; 3e9d3 (f:69d3) - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 ld a, [hl] and $cc ld [hl], a - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT cp FLY_EFFECT jr z, .asm_3e9e7 cp CHARGE_EFFECT @@ -5902,59 +5817,59 @@ asm_3e9d3: ; 3e9d3 (f:69d3) jr .asm_3e9f0 .asm_3e9e7 xor a - ld [$cc5b], a + ld [wcc5b], a ld a, STATUS_AFFECTED_ANIM call PlayMoveAnimation .asm_3e9f0 ld hl, Func_3e88c ; $688c jp Func_3eab8 asm_3e9f6: ; 3e9f6 (f:69f6) - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 bit 0, [hl] ; is mon using bide? jr z, .asm_3ea54 xor a - ld [W_ENEMYMOVENUM], a ; $cfcc - ld hl, W_DAMAGE ; $d0d7 + ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM + ld hl, W_DAMAGE ; W_DAMAGE ld a, [hli] ld b, a ld c, [hl] - ld hl, $cd06 + ld hl, wcd06 ld a, [hl] add c ld [hld], a ld a, [hl] adc b ld [hl], a - ld hl, $d06f + ld hl, wd06f dec [hl] jr z, .asm_3ea1c ld hl, Func_3e88c ; $688c jp Func_3eab8 .asm_3ea1c - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 0, [hl] ld hl, UnleashedEnergyText call PrintText ld a, $1 - ld [W_ENEMYMOVEPOWER], a ; $cfce - ld hl, $cd06 + ld [W_ENEMYMOVEPOWER], a ; wcfce + ld hl, wcd06 ld a, [hld] add a ld b, a - ld [$d0d8], a + ld [wd0d8], a ld a, [hl] rl a - ld [W_DAMAGE], a ; $d0d7 + ld [W_DAMAGE], a ; W_DAMAGE or b jr nz, .asm_3ea43 ld a, $1 - ld [W_MOVEMISSED], a ; $d05f + ld [W_MOVEMISSED], a ; W_MOVEMISSED .asm_3ea43 xor a ld [hli], a ld [hl], a ld a, BIDE - ld [W_ENEMYMOVENUM], a ; $cfcc + ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM call Func_3ec81 ld hl, asm_3e782 ; $6782 jp Func_3eab8 @@ -5962,22 +5877,22 @@ asm_3e9f6: ; 3e9f6 (f:69f6) bit 1, [hl] ; is mon using thrash or petal dance? jr z, .asm_3ea83 ld a, THRASH - ld [W_ENEMYMOVENUM], a ; $cfcc + ld [W_ENEMYMOVENUM], a ; W_ENEMYMOVENUM ld hl, ThrashingAboutText call PrintText - ld hl, $d06f + ld hl, wd06f dec [hl] ld hl, asm_3e750 ; $6750 jp nz, Func_3eab8 push hl - ld hl, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 res 1, [hl] ; mon is no longer using thrash or petal dance set 7, [hl] ; mon is now confused - call GenRandomInBattle + call BattleRandom and $3 inc a inc a - ld [$d070], a + ld [wd070], a pop hl jp Func_3eab8 .asm_3ea83 @@ -5985,22 +5900,22 @@ asm_3e9f6: ; 3e9f6 (f:69f6) jp z, Func_3ea9b ld hl, AttackContinuesText call PrintText - ld hl, $d06f + ld hl, wd06f dec [hl] ld hl, Func_3e794 ; $6794 jp nz, Func_3eab8 jp Func_3eab8 Func_3ea9b: ; 3ea9b (f:6a9b) - ld a, [W_ENEMYBATTSTATUS2] ; $d068 + ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 bit 6, a ; is mon using rage? jp z, Func_3eaba ld a, RAGE - ld [$d11e], a + ld [wd11e], a call GetMoveName call CopyStringToCF4B xor a - ld [W_ENEMYMOVEEFFECT], a ; $cfcd + ld [W_ENEMYMOVEEFFECT], a ; W_ENEMYMOVEEFFECT ld hl, asm_3e72b ; $672b jp Func_3eab8 @@ -6017,18 +5932,18 @@ GetCurrentMove: ; 3eabe (f:6abe) ld a, [H_WHOSETURN] ; $fff3 and a jp z, .player - ld de, W_ENEMYMOVENUM ; $cfcc - ld a, [wEnemySelectedMove] ; $ccdd + ld de, W_ENEMYMOVENUM ; W_ENEMYMOVENUM + ld a, [wEnemySelectedMove] ; wccdd jr .selected .player - ld de, W_PLAYERMOVENUM ; $cfd2 + ld de, W_PLAYERMOVENUM ; wcfd2 ld a, [W_FLAGS_D733] bit 0, a - ld a, [$ccd9] + ld a, [wccd9] jr nz, .selected - ld a, [wPlayerSelectedMove] ; $ccdc + ld a, [wPlayerSelectedMove] ; wPlayerSelectedMove .selected - ld [$d0b5], a + ld [wd0b5], a dec a ld hl, Moves ; $4000 ld bc, $6 @@ -6036,80 +5951,80 @@ GetCurrentMove: ; 3eabe (f:6abe) ld a, BANK(Moves) call FarCopyData ld a, $2c - ld [$d0b7], a + ld [wPredefBank], a ld a, $2 ld [W_LISTTYPE], a ; list type 2 = move name call GetName - ld de, $cd6d + ld de, wcd6d jp CopyStringToCF4B Func_3eb01: ; 3eb01 (f:6b01) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jp z, Func_3cc13 - ld a, [W_ENEMYMONID] - ld [$cfe5], a - ld [$d0b5], a + ld a, [wEnemyMonSpecies2] + ld [wEnemyMonSpecies], a + ld [wd0b5], a call GetMonHeader - ld a, [W_ENEMYBATTSTATUS3] ; $d069 + ld a, [W_ENEMYBATTSTATUS3] ; W_ENEMYBATTSTATUS3 bit 3, a - ld hl, $cceb + ld hl, wcceb ld a, [hli] ld b, [hl] jr nz, .asm_3eb33 - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE cp $2 ld a, $98 ld b, $88 jr z, .asm_3eb33 - call GenRandomInBattle + call BattleRandom ld b, a - call GenRandomInBattle + call BattleRandom .asm_3eb33 - ld hl, $cff1 + ld hl, wEnemyMonDVs ld [hli], a ld [hl], b - ld de, W_ENEMYMONLEVEL ; $cff3 - ld a, [W_CURENEMYLVL] ; $d127 + ld de, wEnemyMonLevel ; wEnemyMonLevel + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL ld [de], a inc de ld b, $0 - ld hl, W_ENEMYMONCURHP ; $cfe6 + ld hl, wEnemyMonHP ; wEnemyMonHP push hl call CalcStats pop hl - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE cp $2 jr z, .asm_3eb65 - ld a, [W_ENEMYBATTSTATUS3] ; $d069 + ld a, [W_ENEMYBATTSTATUS3] ; W_ENEMYBATTSTATUS3 bit 3, a jr nz, .asm_3eb86 - ld a, [W_ENEMYMONMAXHP] ; $cff4 + ld a, [wEnemyMonMaxHP] ; wEnemyMonMaxHP ld [hli], a - ld a, [W_ENEMYMONMAXHP+1] + ld a, [wEnemyMonMaxHP+1] ld [hli], a xor a inc hl ld [hl], a jr .asm_3eb86 .asm_3eb65 - ld hl, W_ENEMYMON1HP ; $d8a5 (aliases: W_WATERMONS) - ld a, [wWhichPokemon] ; $cf92 - ld bc, $2c + ld hl, wEnemyMon1HP ; wd8a5 (aliases: W_WATERMONS) + ld a, [wWhichPokemon] ; wWhichPokemon + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes ld a, [hli] - ld [W_ENEMYMONCURHP], a ; $cfe6 + ld [wEnemyMonHP], a ; wEnemyMonHP ld a, [hli] - ld [$cfe7], a - ld a, [wWhichPokemon] ; $cf92 - ld [W_ENEMYMONNUMBER], a ; $cfe8 + ld [wEnemyMonHP + 1], a + ld a, [wWhichPokemon] ; wWhichPokemon + ld [wEnemyMonPartyPos], a inc hl ld a, [hl] - ld [W_ENEMYMONSTATUS], a ; $cfe9 + ld [wEnemyMonStatus], a ; wcfe9 jr .asm_3eb86 .asm_3eb86 ld hl, W_MONHTYPES - ld de, W_ENEMYMONTYPES ; $cfea + ld de, wEnemyMonType ; wcfea ld a, [hli] ; copy type 1 ld [de], a inc de @@ -6119,14 +6034,14 @@ Func_3eb01: ; 3eb01 (f:6b01) ld a, [hli] ; copy catch rate ld [de], a inc de - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE cp $2 jr nz, .asm_3ebb0 - ld hl, $d8ac - ld a, [wWhichPokemon] ; $cf92 - ld bc, $2c + ld hl, wEnemyMon1Moves + ld a, [wWhichPokemon] ; wWhichPokemon + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes - ld bc, $4 + ld bc, NUM_MOVES call CopyData jr .asm_3ebca .asm_3ebb0 @@ -6146,16 +6061,14 @@ Func_3eb01: ; 3eb01 (f:6b01) dec de dec de xor a - ld [$cee9], a - ld a, $3e - call Predef ; indirect jump to WriteMonMoves (3afb8 (e:6fb8)) + ld [wHPBarMaxHP], a + predef WriteMonMoves .asm_3ebca - ld hl, W_ENEMYMONMOVES - ld de, $cffd - ld a, $5e - call Predef ; indirect jump to LoadMovePPs (f473 (3:7473)) + ld hl, wEnemyMonMoves + ld de, wEnemyMonSpecial + 1 + predef LoadMovePPs ld hl, W_MONHBASESTATS - ld de, $d002 + ld de, wd002 ld b, $5 .asm_3ebdd ld a, [hli] @@ -6169,31 +6082,29 @@ Func_3eb01: ; 3eb01 (f:6b01) inc de ld a, [hl] ; base exp ld [de], a - ld a, [W_ENEMYMONID] - ld [$d11e], a + ld a, [wEnemyMonSpecies2] + ld [wd11e], a call GetMonName - ld hl, $cd6d - ld de, W_ENEMYMONNAME + ld hl, wcd6d + ld de, wEnemyMonNick ld bc, $b call CopyData - ld a, [W_ENEMYMONID] - ld [$d11e], a - ld a, $3a - call Predef ; indirect jump to IndexToPokedex (41010 (10:5010)) - ld a, [$d11e] + ld a, [wEnemyMonSpecies2] + ld [wd11e], a + predef IndexToPokedex + ld a, [wd11e] dec a ld c, a ld b, $1 - ld hl, wPokedexSeen ; $d30a - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) - ld hl, W_ENEMYMONLEVEL ; $cff3 - ld de, $cd23 + ld hl, wPokedexSeen ; wd30a + predef FlagActionPredef + ld hl, wEnemyMonLevel ; wEnemyMonLevel + ld de, wcd23 ld bc, $b call CopyData ld a, $7 ld b, $8 - ld hl, wEnemyMonStatMods ; $cd2e + ld hl, wEnemyMonStatMods ; wcd2e .asm_3ec2d ld [hli], a dec b @@ -6201,53 +6112,52 @@ Func_3eb01: ; 3eb01 (f:6b01) ret Func_3ec32: ; 3ec32 (f:6c32) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr nz, .asm_3ec4d xor a - ld [wMenuJoypadPollCount], a ; $cc34 + ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount callab Func_372d6 ld a, $1 - ld [$cfcb], a + ld [wcfcb], a call ClearScreen .asm_3ec4d call DelayFrame - ld a, $30 - call Predef ; indirect jump to Func_7096d (7096d (1c:496d)) + predef BattleTransition callab Func_3ee58 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld a, $ff - ld [$cfcb], a - call CleanLCD_OAM + ld [wcfcb], a + call ClearSprites call ClearScreen xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld [$ffb0], a ld [rWY], a ; $ff4a ld [$ffd7], a - ld hl, $d060 + ld hl, wd060 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [W_PLAYERDISABLEDMOVE], a ; $d06d + ld [W_PLAYERDISABLEDMOVE], a ; W_PLAYERDISABLEDMOVE ret Func_3ec81: ; 3ec81 (f:6c81) push bc - ld a, [W_PLAYERMONLEVEL] ; $d022 + ld a, [wBattleMonLevel] ; wBattleMonLevel ld b, a - ld a, [W_ENEMYMONLEVEL] ; $cff3 - ld [W_PLAYERMONLEVEL], a ; $d022 + ld a, [wEnemyMonLevel] ; wEnemyMonLevel + ld [wBattleMonLevel], a ; wBattleMonLevel ld a, b - ld [W_ENEMYMONLEVEL], a ; $cff3 + ld [wEnemyMonLevel], a ; wEnemyMonLevel pop bc ret Func_3ec92: ; 3ec92 (f:6c92) - ld a, [W_BATTLETYPE] ; $d05a + ld a, [W_BATTLETYPE] ; wd05a dec a ld de, RedPicBack ; $7e0a jr nz, .asm_3ec9e @@ -6255,8 +6165,7 @@ Func_3ec92: ; 3ec92 (f:6c92) .asm_3ec9e ld a, BANK(RedPicBack) call UncompressSpriteFromDE - ld a, $3 - call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40)) + predef ScaleSpriteByTwo ld hl, wOAMBuffer xor a ld [H_DOWNARROWBLINKCNT1], a ; $ff8b @@ -6288,26 +6197,24 @@ Func_3ec92: ; 3ec92 (f:6c92) ld e, a dec b jr nz, .asm_3ecb2 - ld de, $9310 + ld de, vBackPic call InterlaceMergeSpriteBuffers ld a, $a ld [$0], a xor a ld [$4000], a - ld hl, $8000 + ld hl, vSprites ld de, S_SPRITEBUFFER1 ld a, [H_LOADEDROMBANK] ld b, a - ld c, $31 + ld c, 7 * 7 call CopyVideoData xor a ld [$0], a ld a, $31 ld [$ffe1], a - FuncCoord 1, 5 ; $c405 - ld hl, Coord - ld a, $1 - jp Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6)) + hlCoord 1, 5 + predef_jump Func_3f0c6 Func_3ed02: ; 3ed02 (f:6d02) callab Func_39680 @@ -6335,10 +6242,10 @@ Func_3ed27: ; 3ed27 (f:6d27) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3ed48 - ld a, [W_PLAYERMONSTATUS] ; $d018 + ld a, [wBattleMonStatus] ; wBattleMonStatus and $40 ret z - ld hl, $d02a + ld hl, wBattleMonSpeed + 1 ld a, [hld] ld b, a ld a, [hl] @@ -6354,10 +6261,10 @@ Func_3ed27: ; 3ed27 (f:6d27) ld [hl], b ret .asm_3ed48 - ld a, [W_ENEMYMONSTATUS] ; $cfe9 + ld a, [wEnemyMonStatus] ; wcfe9 and $40 ret z - ld hl, $cffb + ld hl, wEnemyMonSpeed + 1 ld a, [hld] ld b, a ld a, [hl] @@ -6377,10 +6284,10 @@ Func_3ed64: ; 3ed64 (f:6d64) ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3ed81 - ld a, [W_PLAYERMONSTATUS] ; $d018 + ld a, [wBattleMonStatus] ; wBattleMonStatus and $10 ret z - ld hl, $d026 + ld hl, wBattleMonAttack + 1 ld a, [hld] ld b, a ld a, [hl] @@ -6394,10 +6301,10 @@ Func_3ed64: ; 3ed64 (f:6d64) ld [hl], b ret .asm_3ed81 - ld a, [W_ENEMYMONSTATUS] ; $cfe9 + ld a, [wEnemyMonStatus] ; wcfe9 and $10 ret z - ld hl, $cff7 + ld hl, wEnemyMonAttack + 1 ld a, [hld] ld b, a ld a, [hl] @@ -6424,16 +6331,16 @@ Func_3ed99: ; 3ed99 (f:6d99) Func_3eda5: ; 3eda5 (f:6da5) push bc push bc - ld a, [$d11e] + ld a, [wd11e] and a ld a, c - ld hl, W_PLAYERMONATK - ld de, $cd12 - ld bc, wPlayerMonAttackMod ; $cd1a + ld hl, wBattleMonAttack + ld de, wcd12 + ld bc, wPlayerMonAttackMod ; wcd1a jr z, .asm_3edc0 - ld hl, W_ENEMYMONATTACK - ld de, $cd26 - ld bc, wEnemyMonStatMods ; $cd2e + ld hl, wEnemyMonAttack + ld de, wcd26 + ld bc, wEnemyMonStatMods ; wcd2e .asm_3edc0 add c ld c, a @@ -6505,7 +6412,7 @@ Func_3ee19: ; 3ee19 (f:6e19) ret z ld a, [W_OBTAINEDBADGES] ld b, a - ld hl, W_PLAYERMONATK + ld hl, wBattleMonAttack ld c, $4 .asm_3ee28 srl b @@ -6552,22 +6459,22 @@ Func_3ee5b: ; 3ee5b (f:6e5b) add a jr c, .asm_3ee7c ld hl, BattleHudTiles1 ; $6080 - ld de, $96d0 + ld de, vChars2 + $6d0 ld bc, $18 ld a, BANK(BattleHudTiles1) call FarCopyDataDouble ld hl, BattleHudTiles2 ; $6098 - ld de, $9730 + ld de, vChars2 + $730 ld bc, $30 ld a, BANK(BattleHudTiles2) jp FarCopyDataDouble .asm_3ee7c ld de, BattleHudTiles1 ; $6080 - ld hl, $96d0 + ld hl, vChars2 + $6d0 ld bc, (BANK(BattleHudTiles1) << 8) + $03 call CopyVideoDataDouble ld de, BattleHudTiles2 ; $6098 - ld hl, $9730 + ld hl, vChars2 + $730 ld bc, (BANK(BattleHudTiles2) << 8) + $06 jp CopyVideoDataDouble @@ -6578,34 +6485,39 @@ Func_3ee94: ; 3ee94 (f:6e94) TerminatorText_3ee9a: ; 3ee9a (f:6e9a) db "@" -; generates a random number unless in link battle -; stores random number in A -GenRandomInBattle: ; 3ee9b (f:6e9b) + +BattleRandom: +; Link battles use a shared PRNG. + ld a, [W_ISLINKBATTLE] cp $4 - jp nz, GenRandom + jp nz, Random + push hl push bc - ld a, [$ccde] + ld a, [wccde] ld c, a - ld b, $0 - ld hl, $d148 + ld b, 0 + ld hl, wd148 add hl, bc inc a - ld [$ccde], a - cp $9 + ld [wccde], a + cp 9 ld a, [hl] pop bc pop hl ret c + push hl push bc push af + xor a - ld [$ccde], a - ld hl, $d148 - ld b, $9 -.asm_3eec5 + ld [wccde], a + + ld hl, wd148 + ld b, 9 +.loop ld a, [hl] ld c, a add a @@ -6614,22 +6526,24 @@ GenRandomInBattle: ; 3ee9b (f:6e9b) inc a ld [hli], a dec b - jr nz, .asm_3eec5 ; 0x3eecd $f6 + jr nz, .loop + pop af pop bc pop hl ret + Func_3eed3: ; 3eed3 (f:6ed3) ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, W_ENEMYMONTYPE1 ; $cfea (aliases: W_ENEMYMONTYPES) - ld de, W_ENEMYBATTSTATUS1 ; $d067 - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld hl, wEnemyMonType1 ; wcfea (aliases: wEnemyMonType) + ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld a, [W_PLAYERMOVENUM] ; wcfd2 jr z, .asm_3eeea - ld hl, W_PLAYERMONTYPE1 ; $d019 (aliases: W_PLAYERMONTYPES) - ld de, W_ENEMYBATTSTATUS1 ; $d067 - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld hl, wBattleMonType1 ; wd019 (aliases: wBattleMonType) + ld de, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM .asm_3eeea cp SELFDESTRUCT jr z, .asm_3eef1 @@ -6645,77 +6559,75 @@ Func_3eed3: ; 3eed3 (f:6ed3) ld a, [hl] cp GHOST ret z - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a ret nz ld a, MEGA_PUNCH - ld [$cc5b], a + ld [wcc5b], a PlayMoveAnimation: ; 3ef07 (f:6f07) - ld [$D07C],a + ld [W_ANIMATIONID],a call Delay3 - PREDEF_JUMP MoveAnimationPredef ; predef 8 + predef_jump MoveAnimation InitBattle: ; 3ef12 (f:6f12) - ld a, [W_CUROPPONENT] ; $d059 + ld a, [W_CUROPPONENT] ; wd059 and a jr z, asm_3ef23 InitOpponent: ; 3ef18 (f:6f18) - ld a, [W_CUROPPONENT] ; $d059 - ld [$cf91], a - ld [W_ENEMYMONID], a + ld a, [W_CUROPPONENT] ; wd059 + ld [wcf91], a + ld [wEnemyMonSpecies2], a jr asm_3ef3d asm_3ef23: ; 3ef23 (f:6f23) - ld a, [$d732] + ld a, [wd732] bit 1, a jr z, .asm_3ef2f - ld a, [H_CURRENTPRESSEDBUTTONS] + ld a, [hJoyHeld] bit 1, a ret nz .asm_3ef2f - ld a, [$d13c] + ld a, [wd13c] and a ret nz callab Func_13870 ret nz asm_3ef3d: ; 3ef3d (f:6f3d) - ld a, [$d35d] + ld a, [wd35d] push af - ld hl, $d358 + ld hl, wd358 ld a, [hl] push af res 1, [hl] callab Func_525af - ld a, [W_ENEMYMONID] + ld a, [wEnemyMonSpecies2] sub $c8 jp c, InitWildBattle - ld [W_TRAINERCLASS], a ; $d031 + ld [W_TRAINERCLASS], a ; wd031 call GetTrainerInformation callab ReadTrainer call Func_3ec32 call _LoadTrainerPic xor a - ld [W_ENEMYMONID], a + ld [wEnemyMonSpecies2], a ld [$ffe1], a dec a - ld [wAICount], a ; $ccdf - FuncCoord 12, 0 ; $c3ac - ld hl, Coord - ld a, $1 - call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6)) + ld [wAICount], a ; wccdf + hlCoord 12, 0 + predef Func_3f0c6 ld a, $ff - ld [W_ENEMYMONNUMBER], a ; $cfe8 + ld [wEnemyMonPartyPos], a ld a, $2 - ld [W_ISINBATTLE], a ; $d057 + ld [W_ISINBATTLE], a ; W_ISINBATTLE jp Func_3efeb InitWildBattle: ; 3ef8b (f:6f8b) ld a, $1 - ld [W_ISINBATTLE], a ; $d057 + ld [W_ISINBATTLE], a ; W_ISINBATTLE call Func_3eb01 call Func_3ec32 - ld a, [W_CUROPPONENT] ; $d059 + ld a, [W_CUROPPONENT] ; wd059 cp MAROWAK jr z, .isGhost call IsGhostBattle @@ -6728,7 +6640,7 @@ InitWildBattle: ; 3ef8b (f:6f8b) ld a, c ld [hli], a ; write front sprite pointer ld [hl], b - ld hl, W_ENEMYMONNAME ; set name to "GHOST" + ld hl, wEnemyMonNick ; set name to "GHOST" ld a, "G" ld [hli], a ld a, "H" @@ -6740,26 +6652,24 @@ InitWildBattle: ; 3ef8b (f:6f8b) ld a, "T" ld [hli], a ld [hl], "@" - ld a, [$cf91] + ld a, [wcf91] push af ld a, MON_GHOST - ld [$cf91], a - ld de, $9000 + ld [wcf91], a + ld de, vFrontPic call LoadMonFrontSprite ; load ghost sprite pop af - ld [$cf91], a + ld [wcf91], a jr .spriteLoaded .isNoGhost - ld de, $9000 + ld de, vFrontPic call LoadMonFrontSprite ; load mon sprite .spriteLoaded xor a - ld [W_TRAINERCLASS], a ; $d031 + ld [W_TRAINERCLASS], a ; wd031 ld [$ffe1], a - FuncCoord 12, 0 ; $c3ac - ld hl, Coord - ld a, $1 - call Predef ; indirect jump to Func_3f0c6 (3f0c6 (f:70c6)) + hlCoord 12, 0 + predef Func_3f0c6 Func_3efeb: ; 3efeb (f:6feb) ld b, $0 @@ -6779,25 +6689,23 @@ Func_3efeb: ; 3efeb (f:6feb) ld a, $9c ld [$ffbd], a call LoadScreenTilesFromBuffer1 - FuncCoord 9, 7 ; $c435 - ld hl, Coord + hlCoord 9, 7 ld bc, $50a call ClearScreenArea - FuncCoord 1, 0 ; $c3a1 - ld hl, Coord + hlCoord 1, 0 ld bc, $40a call ClearScreenArea - call CleanLCD_OAM - ld a, [W_ISINBATTLE] ; $d057 + call ClearSprites + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a call z, Func_3cdec call Func_3c11e callab Func_137aa pop af - ld [$d358], a + ld [wd358], a pop af - ld [$d35d], a - ld a, [$d0d4] + ld [wd35d], a + ld a, [wd0d4] ld [$ffd7], a scf ret @@ -6806,38 +6714,38 @@ TerminatorText_3f04a: ; 3f04a (f:704a) db "@" _LoadTrainerPic: ; 3f04b (f:704b) -; $d033-$d034 contain pointer to pic - ld a, [$d033] +; wd033-wd034 contain pointer to pic + ld a, [wd033] ld e, a - ld a, [$d034] + ld a, [wd034] ld d, a ; de contains pointer to trainer pic - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE and a ld a, Bank(TrainerPics) ; this is where all the trainer pics are (not counting Red's) jr z, .loadSprite ld a, Bank(RedPicFront) .loadSprite call UncompressSpriteFromDE - ld de, $9000 + ld de, vFrontPic ld a, $77 ld c, a jp LoadUncompressedSpriteData Func_3f069: ; 3f069 (f:7069) xor a - ld [$c0f1], a - ld [$c0f2], a + ld [wc0f1], a + ld [wc0f2], a jp PlaySound Func_3f073: ; 3f073 (f:7073) - ld a, [$cc4f] + ld a, [wPredefRegisters] ld h, a - ld a, [$cc50] + ld a, [wPredefRegisters + 1] ld l, a ld a, [$ffe1] ld [H_DOWNARROWBLINKCNT1], a ; $ff8b ld b, $4c - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE and a jr z, .asm_3f0bc add b @@ -6846,19 +6754,17 @@ Func_3f073: ; 3f073 (f:7073) ld bc, $ffd7 add hl, bc ld a, $1 - ld [$cd6c], a + ld [wcd6c], a ld bc, $303 - ld a, $5 - call Predef ; indirect jump to Func_79aba (79aba (1e:5aba)) + predef Func_79aba ld c, $4 call DelayFrames ld bc, $ffd7 add hl, bc xor a - ld [$cd6c], a + ld [wcd6c], a ld bc, $505 - ld a, $5 - call Predef ; indirect jump to Func_79aba (79aba (1e:5aba)) + predef Func_79aba ld c, $5 call DelayFrames ld bc, $ffd7 @@ -6872,9 +6778,9 @@ Func_3f073: ; 3f073 (f:7073) jr asm_3f0d0 Func_3f0c6: ; 3f0c6 (f:70c6) - ld a, [$cc4f] + ld a, [wPredefRegisters] ld h, a - ld a, [$cc50] + ld a, [wPredefRegisters + 1] ld l, a ld a, [$ffe1] asm_3f0d0: ; 3f0d0 (f:70d0) @@ -6923,24 +6829,22 @@ asm_3f0d0: ; 3f0d0 (f:70d0) jr nz, .asm_3f0f4 ret -; loads back sprite of mon to $8000 -; assumes the corresponding mon header is already loaded -LoadMonBackSprite: ; 3f103 (f:7103) - ld a, [$cfd9] - ld [$cf91], a - FuncCoord 1, 5 ; $c405 - ld hl, Coord +LoadMonBackPic: +; Assumes the monster's attributes have +; been loaded with GetMonHeader. + ld a, [wBattleMonSpecies2] + ld [wcf91], a + hlCoord 1, 5 ld b, $7 ld c, $8 call ClearScreenArea ld hl, W_MONHBACKSPRITE - W_MONHEADER call UncompressMonSprite - ld a, $3 - call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40)) - ld de, $9310 + predef ScaleSpriteByTwo + ld de, vBackPic call InterlaceMergeSpriteBuffers ; combine the two buffers to a single 2bpp sprite - ld hl, $8000 - ld de, $9310 + ld hl, vSprites + ld de, vBackPic ld c, (2*SPRITEBUFFERSIZE)/16 ; count of 16-byte chunks to be copied ld a, [H_LOADEDROMBANK] ld b, a @@ -7058,13 +6962,13 @@ MoveEffectPointerTable: ; 3f150 (f:7150) dw DisableEffect ; DISABLE_EFFECT SleepEffect: ; 3f1fc (f:71fc) - ld de, W_ENEMYMONSTATUS ; $cfe9 - ld bc, W_ENEMYBATTSTATUS2 ; $d068 + ld de, wEnemyMonStatus ; wcfe9 + ld bc, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jp z, .asm_3f20e - ld de, W_PLAYERMONSTATUS ; $d018 - ld bc, W_PLAYERBATTSTATUS2 ; $d063 + ld de, wBattleMonStatus ; wBattleMonStatus + ld bc, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 .asm_3f20e ld a, [bc] @@ -7085,11 +6989,11 @@ SleepEffect: ; 3f1fc (f:71fc) push de call MoveHitTest pop de - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, .asm_3f242 .asm_3f231 - call GenRandomInBattle + call BattleRandom and $7 jr z, .asm_3f231 ld [de], a @@ -7108,13 +7012,13 @@ AlreadyAsleepText: ; 3f24a (f:724a) db "@" PoisonEffect: ; 3f24f (f:724f) - ld hl, W_ENEMYMONSTATUS ; $cfe9 - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, wEnemyMonStatus ; wcfe9 + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f260 - ld hl, W_PLAYERMONSTATUS ; $d018 - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, wBattleMonStatus ; wBattleMonStatus + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3f260 call CheckTargetSubstitute jr nz, .asm_3f2d3 @@ -7140,12 +7044,12 @@ PoisonEffect: ; 3f24f (f:724f) call MoveHitTest pop de pop hl - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, .asm_3f2d7 jr .asm_3f295 .asm_3f290 - call GenRandomInBattle + call BattleRandom cp b ret nc .asm_3f295 @@ -7156,13 +7060,13 @@ PoisonEffect: ; 3f24f (f:724f) ld a, [H_WHOSETURN] ; $fff3 and a ld b, $c7 - ld hl, W_PLAYERBATTSTATUS3 ; $d064 + ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3 ld a, [de] - ld de, W_PLAYERTOXICCOUNTER ; $d06c + ld de, W_PLAYERTOXICCOUNTER ; wd06c jr nz, .asm_3f2b0 ld b, $a9 - ld hl, W_ENEMYBATTSTATUS3 ; $d069 - ld de, W_ENEMYTOXICCOUNTER ; $d071 + ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3 + ld de, W_ENEMYTOXICCOUNTER ; wd071 .asm_3f2b0 cp $5c jr nz, .asm_3f2bd @@ -7207,13 +7111,13 @@ DrainHPEffect: ; 3f2e9 (f:72e9) jp Bankswitch ExplodeEffect: ; 3f2f1 (f:72f1) - ld hl, W_PLAYERMONCURHP ; $d015 - ld de, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, wBattleMonHP ; wd015 + ld de, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f302 - ld hl, W_ENEMYMONCURHP ; $cfe6 - ld de, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, wEnemyMonHP ; wEnemyMonHP + ld de, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .asm_3f302 xor a ld [hli], a ; set the mon's HP to 0 @@ -7227,22 +7131,22 @@ ExplodeEffect: ; 3f2f1 (f:72f1) FreezeBurnParalyzeEffect: ; 3f30c (f:730c) xor a - ld [$cc5b], a + ld [wcc5b], a call CheckTargetSubstitute ;test bit 4 of d063/d068 flags [target has substitute flag] ret nz ;return if they have a substitute, can't effect them ld a, [$fff3] ;whose turn? and a jp nz, opponentAttacker - ld a, [W_ENEMYMONSTATUS] + ld a, [wEnemyMonStatus] and a jp nz, CheckDefrost ;opponent has no existing status ld a, [W_PLAYERMOVETYPE] ld b, a - ld a, [W_ENEMYMONTYPE1] + ld a, [wEnemyMonType1] cp b ret z ;return if they match [can't freeze an ice type etc.] - ld a, [W_ENEMYMONTYPE2] + ld a, [wEnemyMonType2] cp b ret z ;return.. ld a, [W_PLAYERMOVEEFFECT] @@ -7253,7 +7157,7 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c) sub a, $1e ;subtract $1E to map to equivalent 10% chance effects .next1 push af ;push effect... - call GenRandomInBattle ;get random 8bit value for probability test + call BattleRandom ;get random 8bit value for probability test cp b ;success? pop bc ;...pop effect into C ret nc ;do nothing if random value is >= 1A or 4D [no status applied] @@ -7264,14 +7168,14 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c) cp a, FREEZE_SIDE_EFFECT jr z, .freeze ld a, 1 << PAR - ld [W_ENEMYMONSTATUS], a + ld [wEnemyMonStatus], a call Func_3ed27 ;quarter speed of affected monster ld a, $a9 call Func_3fbb9 ;animation jp PrintMayNotAttackText ;print paralysis text .burn ld a, 1 << BRN - ld [W_ENEMYMONSTATUS], a + ld [wEnemyMonStatus], a call Func_3ed64 ld a, $a9 call Func_3fbb9 ;animation @@ -7280,21 +7184,21 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c) .freeze call Func_3f9cf ;resets bit 5 of the D063/D068 flags ld a, 1 << FRZ - ld [W_ENEMYMONSTATUS], a + ld [wEnemyMonStatus], a ld a, $a9 call Func_3fbb9 ;animation ld hl, FrozenText jp PrintText opponentAttacker: ; 3f382 (f:7382) - ld a, [W_PLAYERMONSTATUS] ;this appears to the same as above with addresses swapped for opponent + ld a, [wBattleMonStatus] ;this appears to the same as above with addresses swapped for opponent and a jp nz, CheckDefrost ld a, [W_ENEMYMOVETYPE] ld b, a - ld a, [W_PLAYERMONTYPE1] + ld a, [wBattleMonType1] cp b ret z - ld a, [W_PLAYERMONTYPE2] + ld a, [wBattleMonType2] cp b ret z ld a, [W_ENEMYMOVEEFFECT] @@ -7305,7 +7209,7 @@ opponentAttacker: ; 3f382 (f:7382) sub a, $1e .next1 push af - call GenRandomInBattle + call BattleRandom cp b pop bc ret nc @@ -7315,18 +7219,18 @@ opponentAttacker: ; 3f382 (f:7382) cp a, FREEZE_SIDE_EFFECT jr z, .freeze ld a, 1 << PAR - ld [W_PLAYERMONSTATUS], a + ld [wBattleMonStatus], a call Func_3ed27 jp PrintMayNotAttackText .burn ld a, 1 << BRN - ld [W_PLAYERMONSTATUS], a + ld [wBattleMonStatus], a call Func_3ed64 ld hl, BurnedText jp PrintText .freeze ld a, 1 << FRZ - ld [W_PLAYERMONSTATUS], a + ld [wBattleMonStatus], a ld hl, FrozenText jp PrintText @@ -7350,10 +7254,10 @@ CheckDefrost: ; 3f3e2 (f:73e2) sub a, FIRE ret nz ;return if it isn't fire ;type is fire - ld [W_ENEMYMONSTATUS], a ;set opponent status to 00 ["defrost" a frozen monster] - ld hl, $d8a8 ;status of first opponent monster in their roster - ld a, [W_ENEMYMONNUMBER] - ld bc, $002c ;$2C bytes per roster entry + ld [wEnemyMonStatus], a ;set opponent status to 00 ["defrost" a frozen monster] + ld hl, wEnemyMon1Status + ld a, [wEnemyMonPartyPos] + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes xor a ld [hl], a ;clear status in roster @@ -7363,10 +7267,10 @@ CheckDefrost: ; 3f3e2 (f:73e2) ld a, [W_ENEMYMOVETYPE] ;same as above with addresses swapped sub a, FIRE ret nz - ld [W_PLAYERMONSTATUS], a - ld hl, $d16f + ld [wBattleMonStatus], a + ld hl, wPartyMon1Status ld a, [wPlayerMonNumber] - ld bc, $002c + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes xor a ld [hl], a @@ -7379,13 +7283,13 @@ FireDefrostedText: ; 3f423 (f:7423) db "@" StatModifierUpEffect: ; 3f428 (f:7428) - ld hl, wPlayerMonStatMods ; $cd1a - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, wPlayerMonStatMods ; wcd1a + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f439 - ld hl, wEnemyMonStatMods ; $cd2e - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, wEnemyMonStatMods ; wcd2e + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3f439 ld a, [de] sub $a @@ -7415,13 +7319,13 @@ StatModifierUpEffect: ; 3f428 (f:7428) cp $4 jr nc, asm_3f4ca push hl - ld hl, $d026 - ld de, $cd12 + ld hl, wBattleMonAttack + 1 + ld de, wcd12 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f472 - ld hl, $cff7 - ld de, $cd26 + ld hl, wEnemyMonAttack + 1 + ld de, wcd26 .asm_3f472 push bc sla c @@ -7485,15 +7389,15 @@ asm_3f4ca: ; 3f4ca (f:74ca) ld b, c inc b call Func_3f688 - ld hl, W_PLAYERBATTSTATUS2 ; $d063 - ld de, W_PLAYERMOVENUM ; $cfd2 - ld bc, $ccf7 + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 + ld de, W_PLAYERMOVENUM ; wcfd2 + ld bc, wccf7 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f4e6 - ld hl, W_ENEMYBATTSTATUS2 ; $d068 - ld de, W_ENEMYMOVENUM ; $cfcc - ld bc, $ccf3 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 + ld de, W_ENEMYMOVENUM ; W_ENEMYMOVENUM + ld bc, wccf3 .asm_3f4e6 ld a, [de] cp MINIMIZE @@ -7541,9 +7445,9 @@ MonsStatsRoseText: ; 3f528 (f:7528) ld hl, GreatlyRoseText ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + ld a, [W_PLAYERMOVEEFFECT] ; wcfd3 jr z, .asm_3f53b - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT .asm_3f53b cp ATTACK_DOWN1_EFFECT ret nc @@ -7559,19 +7463,19 @@ RoseText: ; 3f547 (f:7547) db "@" StatModifierDownEffect: ; 3f54c (f:754c) - ld hl, wEnemyMonStatMods ; $cd2e - ld de, W_PLAYERMOVEEFFECT ; $cfd3 - ld bc, W_ENEMYBATTSTATUS1 ; $d067 + ld hl, wEnemyMonStatMods ; wcd2e + ld de, W_PLAYERMOVEEFFECT ; wcfd3 + ld bc, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f572 - ld hl, wPlayerMonStatMods ; $cd1a - ld de, W_ENEMYMOVEEFFECT ; $cfcd - ld bc, W_PLAYERBATTSTATUS1 ; $d062 - ld a, [W_ISLINKBATTLE] ; $d12b + ld hl, wPlayerMonStatMods ; wcd1a + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT + ld bc, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 jr z, .asm_3f572 - call GenRandomInBattle + call BattleRandom cp $40 jp c, Func_3f65a .asm_3f572 @@ -7580,7 +7484,7 @@ StatModifierDownEffect: ; 3f54c (f:754c) ld a, [de] cp ATTACK_DOWN_SIDE_EFFECT jr c, .asm_3f58a - call GenRandomInBattle + call BattleRandom cp SPLASH_EFFECT jp nc, Func_3f650 ld a, [de] @@ -7594,7 +7498,7 @@ StatModifierDownEffect: ; 3f54c (f:754c) pop bc pop de pop hl - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jp nz, Func_3f65a ld a, [bc] @@ -7627,13 +7531,13 @@ StatModifierDownEffect: ; 3f54c (f:754c) jr nc, asm_3f62c push hl push de - ld hl, $cff7 - ld de, $cd26 + ld hl, wEnemyMonAttack + 1 + ld de, wcd26 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f5d8 - ld hl, $d026 - ld de, $cd12 + ld hl, wBattleMonAttack + 1 + ld de, wcd12 .asm_3f5d8 push bc sla c @@ -7736,9 +7640,9 @@ MonsStatsFellText: ; 3f661 (f:7661) ld hl, FellText ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + ld a, [W_PLAYERMOVEEFFECT] ; wcfd3 jr z, .asm_3f674 - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT .asm_3f674 cp $1a ret c @@ -7767,7 +7671,7 @@ Func_3f688: ; 3f688 (f:7688) jr z, .asm_3f68d jr .asm_3f690 .asm_3f696 - ld de, $cf4b + ld de, wcf4b ld bc, $a jp CopyData @@ -7798,13 +7702,13 @@ StatModifierRatios: ; 3f6cb (f:76cb) BideEffect: ; 3f6e5 (f:76e5) ld hl, W_PLAYERBATTSTATUS1 ld de, W_NUMHITS - ld bc, $d06a + ld bc, wd06a ld a, [H_WHOSETURN] and a jr z, .asm_3f6fc ld hl, W_ENEMYBATTSTATUS1 - ld de, $cd05 - ld bc, $d06f + ld de, wcd05 + ld bc, wd06f .asm_3f6fc set 0, [hl] ; mon is now using bide xor a @@ -7813,7 +7717,7 @@ BideEffect: ; 3f6e5 (f:76e5) ld [de], a ld [W_PLAYERMOVEEFFECT], a ld [W_ENEMYMOVEEFFECT], a - call GenRandomInBattle + call BattleRandom and $1 inc a inc a @@ -7823,16 +7727,16 @@ BideEffect: ; 3f6e5 (f:76e5) jp Func_3fb96 ThrashPetalDanceEffect: ; 3f717 (f:7717) - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld de, $d06a + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld de, wd06a ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f728 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld de, $d06f + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld de, wd06f .asm_3f728 set 1, [hl] ; mon is now using thrash/petal dance - call GenRandomInBattle + call BattleRandom and $1 inc a inc a @@ -7845,19 +7749,19 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739) ld a, [H_WHOSETURN] ; $fff3 and a jr nz, .asm_3f791 - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr nz, .asm_3f77e - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL ld b, a - ld a, [W_PLAYERMONLEVEL] ; $d022 + ld a, [wBattleMonLevel] ; wBattleMonLevel cp b jr nc, .asm_3f76e add b ld c, a inc c .asm_3f751 - call GenRandomInBattle + call BattleRandom cp c jr nc, .asm_3f751 srl b @@ -7866,40 +7770,40 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739) jr nc, .asm_3f76e ld c, $32 call DelayFrames - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld a, [W_PLAYERMOVENUM] ; wcfd2 cp TELEPORT jp nz, PrintDidntAffectText jp PrintButItFailedText_ .asm_3f76e call ReadPlayerMonCurHPAndStatus xor a - ld [$cc5b], a + ld [wcc5b], a inc a - ld [$d078], a - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld [wd078], a + ld a, [W_PLAYERMOVENUM] ; wcfd2 jr .asm_3f7e4 .asm_3f77e ld c, $32 call DelayFrames ld hl, IsUnaffectedText - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld a, [W_PLAYERMOVENUM] ; wcfd2 cp TELEPORT jp nz, PrintText jp PrintButItFailedText_ .asm_3f791 - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a jr nz, .asm_3f7d1 - ld a, [W_PLAYERMONLEVEL] ; $d022 + ld a, [wBattleMonLevel] ; wBattleMonLevel ld b, a - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL cp b jr nc, .asm_3f7c1 add b ld c, a inc c .asm_3f7a4 - call GenRandomInBattle + call BattleRandom cp c jr nc, .asm_3f7a4 srl b @@ -7908,23 +7812,23 @@ SwitchAndTeleportEffect: ; 3f739 (f:7739) jr nc, .asm_3f7c1 ld c, $32 call DelayFrames - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM cp TELEPORT jp nz, PrintDidntAffectText jp PrintButItFailedText_ .asm_3f7c1 call ReadPlayerMonCurHPAndStatus xor a - ld [$cc5b], a + ld [wcc5b], a inc a - ld [$d078], a - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld [wd078], a + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM jr .asm_3f7e4 .asm_3f7d1 ld c, $32 call DelayFrames ld hl, IsUnaffectedText - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM cp TELEPORT jp nz, PrintText jp Func_3fb4e @@ -7957,24 +7861,24 @@ WasBlownAwayText: ; 3f80c (f:780c) db "@" TwoToFiveAttacksEffect: ; 3f811 (f:7811) - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld de, $d06a - ld bc, W_NUMHITS ; $d074 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld de, wd06a + ld bc, W_NUMHITS ; wd074 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f828 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld de, $d06f - ld bc, $cd05 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld de, wd06f + ld bc, wcd05 .asm_3f828 bit 2, [hl] ; is mon attacking multiple times? ret nz set 2, [hl] ; mon is now attacking multiple times - ld hl, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f838 - ld hl, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3f838 ld a, [hl] cp TWINEEDLE_EFFECT @@ -7982,11 +7886,11 @@ TwoToFiveAttacksEffect: ; 3f811 (f:7811) cp ATTACK_TWICE_EFFECT ld a, $2 jr z, .asm_3f853 - call GenRandomInBattle + call BattleRandom and $3 cp $2 jr c, .asm_3f851 - call GenRandomInBattle + call BattleRandom and $3 .asm_3f851 inc a @@ -8003,13 +7907,13 @@ TwoToFiveAttacksEffect: ; 3f811 (f:7811) FlichSideEffect: ; 3f85b (f:785b) call CheckTargetSubstitute ret nz - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f870 - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3f870 ld a, [de] cp FLINCH_SIDE_EFFECT1 @@ -8017,7 +7921,7 @@ FlichSideEffect: ; 3f85b (f:785b) jr z, .asm_3f879 ld b, $4d ; ~30% chance of flinch .asm_3f879 - call GenRandomInBattle + call BattleRandom cp b ret nc set 3, [hl] ; set mon's status to flinching @@ -8030,14 +7934,14 @@ OneHitKOEffect: ; 3f884 (f:7884) jp Bankswitch ChargeEffect: ; 3f88c (f:788c) - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a ld b, $ae jr z, .asm_3f8a1 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT ld b, $af .asm_3f8a1 set 4, [hl] @@ -8055,18 +7959,18 @@ ChargeEffect: ; 3f88c (f:788c) ld b, $c0 .asm_3f8b6 xor a - ld [$cc5b], a + ld [wcc5b], a ld a, b call Func_3fbb9 ld a, [de] - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade ld hl, ChargeMoveEffectText ; $78c8 jp PrintText ChargeMoveEffectText: ; 3f8c8 (f:78c8) TX_FAR _ChargeMoveEffectText db $08 ; asm - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade cp RAZOR_WIND ld hl, MadeWhirlwindText ; $78f9 jr z, .asm_3f8f8 @@ -8112,23 +8016,23 @@ DugAHoleText: ; 3f912 (f:7912) db "@" TrappingEffect: ; 3f917 (f:7917) - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld de, $d06a + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld de, wd06a ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f928 - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld de, $d06f + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld de, wd06f .asm_3f928 bit 5, [hl] ret nz call Func_3f9cf set 5, [hl] - call GenRandomInBattle + call BattleRandom and $3 cp $2 jr c, .asm_3f93e - call GenRandomInBattle + call BattleRandom and $3 .asm_3f93e inc a @@ -8151,7 +8055,7 @@ RecoilEffect: ; 3f951 (f:7951) jp Bankswitch ConfusionSideEffect: ; 3f959 (f:7959) - call GenRandomInBattle + call BattleRandom cp $19 ret nc jr Func_3f96f @@ -8160,26 +8064,26 @@ ConfusionEffect: ; 3f961 (f:7961) call CheckTargetSubstitute jr nz, Func_3f9a6 call MoveHitTest - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, Func_3f9a6 Func_3f96f: ; 3f96f (f:796f) ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, W_ENEMYBATTSTATUS1 ; $d067 - ld bc, $d070 - ld a, [W_PLAYERMOVEEFFECT] ; $cfd3 + ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 + ld bc, wd070 + ld a, [W_PLAYERMOVEEFFECT] ; wcfd3 jr z, .asm_3f986 - ld hl, W_PLAYERBATTSTATUS1 ; $d062 - ld bc, $d06b - ld a, [W_ENEMYMOVEEFFECT] ; $cfcd + ld hl, W_PLAYERBATTSTATUS1 ; W_PLAYERBATTSTATUS1 + ld bc, wd06b + ld a, [W_ENEMYMOVEEFFECT] ; W_ENEMYMOVEEFFECT .asm_3f986 bit 7, [hl] ; is mon confused? jr nz, Func_3f9a6 set 7, [hl] ; mon is now confused push af - call GenRandomInBattle + call BattleRandom and $3 inc a inc a @@ -8212,22 +8116,22 @@ SubstituteEffect: ; 3f9b9 (f:79b9) jp Bankswitch HyperBeamEffect: ; 3f9c1 (f:79c1) - ld hl, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f9cc - ld hl, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .asm_3f9cc set 5, [hl] ; mon now needs to recharge ret Func_3f9cf: ; 3f9cf (f:79cf) push hl - ld hl, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3f9db - ld hl, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 .asm_3f9db res 5, [hl] ; mon no longer needs to recharge pop hl @@ -8252,20 +8156,20 @@ MimicEffect: ; 3f9ed (f:79ed) jr nz, .asm_3fa74 ld a, [H_WHOSETURN] and a - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves ld a, [W_PLAYERBATTSTATUS1] jr nz, .asm_3fa13 ld a, [W_ISLINKBATTLE] cp $4 jr nz, .asm_3fa3a - ld hl, W_ENEMYMONMOVES + ld hl, wEnemyMonMoves ld a, [W_ENEMYBATTSTATUS1] .asm_3fa13 bit 6, a jr nz, .asm_3fa74 .asm_3fa17 push hl - call GenRandomInBattle + call BattleRandom and $3 ld c, a ld b, $0 @@ -8277,10 +8181,10 @@ MimicEffect: ; 3f9ed (f:79ed) ld d, a ld a, [H_WHOSETURN] and a - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves ld a, [wPlayerMoveListIndex] jr z, .asm_3fa5f - ld hl, W_ENEMYMONMOVES + ld hl, wEnemyMonMoves ld a, [wEnemyMoveListIndex] jr .asm_3fa5f .asm_3fa3a @@ -8293,21 +8197,21 @@ MimicEffect: ; 3f9ed (f:79ed) ld [wMoveMenuType], a call MoveSelectionMenu call LoadScreenTilesFromBuffer1 - ld hl, W_ENEMYMONMOVES + ld hl, wEnemyMonMoves ld a, [wCurrentMenuItem] ld c, a ld b, $0 add hl, bc ld d, [hl] pop af - ld hl, W_PLAYERMONMOVES + ld hl, wBattleMonMoves .asm_3fa5f ld c, a ld b, $0 add hl, bc ld a, d ld [hl], a - ld [$d11e], a + ld [wd11e], a call GetMoveName call Func_3fba8 ld hl, MimicLearnedMoveText @@ -8330,23 +8234,23 @@ SplashEffect: ; 3fa84 (f:7a84) DisableEffect: ; 3fa8a (f:7a8a) call MoveHitTest - ld a, [W_MOVEMISSED] ; $d05f + ld a, [W_MOVEMISSED] ; W_MOVEMISSED and a jr nz, .asm_3fb06 - ld de, W_ENEMYDISABLEDMOVE ; $d072 - ld hl, W_ENEMYMONMOVES + ld de, W_ENEMYDISABLEDMOVE ; W_ENEMYDISABLEDMOVE + ld hl, wEnemyMonMoves ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3faa4 - ld de, W_PLAYERDISABLEDMOVE ; $d06d - ld hl, W_PLAYERMONMOVES + ld de, W_PLAYERDISABLEDMOVE ; W_PLAYERDISABLEDMOVE + ld hl, wBattleMonMoves .asm_3faa4 ld a, [de] and a jr nz, .asm_3fb06 .asm_3faa8 push hl - call GenRandomInBattle + call BattleRandom and $3 ld c, a ld b, $0 @@ -8355,18 +8259,18 @@ DisableEffect: ; 3fa8a (f:7a8a) pop hl and a jr z, .asm_3faa8 - ld [$d11e], a + ld [wd11e], a push hl ld a, [H_WHOSETURN] ; $fff3 and a - ld hl, W_PLAYERMONPP ; $d02d + ld hl, wBattleMonPP ; wBattleMonPP jr nz, .asm_3facf - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $4 pop hl jr nz, .asm_3fae1 push hl - ld hl, W_ENEMYMONPP ; $cffe + ld hl, wEnemyMonPP ; wcffe .asm_3facf push hl ld a, [hli] @@ -8384,7 +8288,7 @@ DisableEffect: ; 3fa8a (f:7a8a) and a jr z, .asm_3faa8 .asm_3fae1 - call GenRandomInBattle + call BattleRandom and $7 inc a inc c @@ -8392,13 +8296,13 @@ DisableEffect: ; 3fa8a (f:7a8a) add c ld [de], a call Func_3fb89 - ld hl, $ccee + ld hl, wccee ld a, [H_WHOSETURN] ; $fff3 and a jr nz, .asm_3faf8 inc hl .asm_3faf8 - ld a, [$d11e] + ld a, [wd11e] ld [hl], a call GetMoveName ld hl, MoveWasDisabledText ; $7b09 @@ -8455,7 +8359,7 @@ NoEffectText: ; 3fb49 (f:7b49) db "@" Func_3fb4e: ; 3fb4e (f:7b4e) - ld a, [$ccf4] + ld a, [wccf4] and a ret nz @@ -8489,11 +8393,11 @@ ParalyzedMayNotAttackText: ; 3fb74 (f:7b74) CheckTargetSubstitute: ; 3fb79 (f:7b79) push hl - ld hl, $d068 + ld hl, W_ENEMYBATTSTATUS2 ld a, [$fff3] ;whose turn? and a jr z, .next1 - ld hl, $d063 + ld hl, W_PLAYERBATTSTATUS2 .next1 bit 4, [hl] ;test bit 4 in d063/d068 flags pop hl @@ -8502,45 +8406,44 @@ CheckTargetSubstitute: ; 3fb79 (f:7b79) Func_3fb89: ; 3fb89 (f:7b89) ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld a, [W_PLAYERMOVENUM] ; wcfd2 jr z, .asm_3fb94 - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM .asm_3fb94 and a ret z Func_3fb96: ; 3fb96 (f:7b96) - ld [W_ANIMATIONID], a ; $d07c + ld [W_ANIMATIONID], a ; W_ANIMATIONID ld a, [H_WHOSETURN] ; $fff3 and a ld a, $6 jr z, .asm_3fba2 ld a, $3 .asm_3fba2 - ld [$cc5b], a + ld [wcc5b], a jp Func_3fbbc Func_3fba8: ; 3fba8 (f:7ba8) xor a - ld [$cc5b], a + ld [wcc5b], a ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld a, [W_PLAYERMOVENUM] ; wcfd2 jr z, .asm_3fbb7 - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM .asm_3fbb7 and a ret z Func_3fbb9: ; 3fbb9 (f:7bb9) - ld [W_ANIMATIONID], a ; $d07c + ld [W_ANIMATIONID], a ; W_ANIMATIONID Func_3fbbc: ; 3fbbc (f:7bbc) push hl push de push bc - ld a, $8 - call Predef ; indirect jump to MoveAnimation (78d5e (1e:4d5e)) + predef MoveAnimation pop bc pop de pop hl diff --git a/engine/battle/d.asm b/engine/battle/d.asm index a6ad21ea..d23c9114 100755 --- a/engine/battle/d.asm +++ b/engine/battle/d.asm @@ -1,25 +1,21 @@ Func_372d6: ; 372d6 (d:72d6) call LoadTextBoxTilePatterns - FuncCoord 3, 4 ; $c3f3 - ld hl, Coord + hlCoord 3, 4 ld b, $7 ld c, $c call TextBoxBorder - FuncCoord 4, 5 ; $c408 - ld hl, Coord - ld de, W_PLAYERNAME ; $d158 + hlCoord 4, 5 + ld de, wPlayerName ; wd158 call PlaceString - FuncCoord 4, 10 ; $c46c - ld hl, Coord - ld de, W_GRASSRATE ; $d887 + hlCoord 4, 10 + ld de, W_GRASSRATE ; W_GRASSRATE call PlaceString - FuncCoord 9, 8 ; $c449 - ld hl, Coord + hlCoord 9, 8 ld a, $69 ld [hli], a ld [hl], $6a xor a - ld [$cfcb], a + ld [wcfcb], a callab SetupPlayerAndEnemyPokeballs ld c, $96 jp DelayFrames diff --git a/engine/battle/e.asm b/engine/battle/e.asm index ada3071e..8b0476ca 100755 --- a/engine/battle/e.asm +++ b/engine/battle/e.asm @@ -1,11 +1,11 @@ Func_39680: ; 39680 (e:5680) ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [$d060] - ld hl, $d026 + ld a, [wd060] + ld hl, wBattleMonAttack + 1 jr z, .asm_39691 - ld a, [$d065] - ld hl, $cff7 + ld a, [wd065] + ld hl, wEnemyMonAttack + 1 .asm_39691 ld c, $4 ld b, a @@ -30,11 +30,11 @@ Func_3969f: ; 3969f (e:569f) Func_396a7: ; 396a7 (e:56a7) ld a, [H_WHOSETURN] ; $fff3 and a - ld a, [$d061] - ld hl, W_PLAYERMONATK + ld a, [wd061] + ld hl, wBattleMonAttack jr z, .asm_396b8 - ld a, [$d066] - ld hl, W_ENEMYMONATTACK + ld a, [wd066] + ld hl, wEnemyMonAttack .asm_396b8 ld c, $4 ld b, a @@ -63,12 +63,11 @@ _ScrollTrainerPicAfterBattle: ; 396d3 (e:56d3) ; Load the enemy trainer's pic and scrolls it into ; the screen from the right. xor a - ld [W_ENEMYMONID], a + ld [wEnemyMonSpecies2], a ld b, $1 call GoPAL_SET callab _LoadTrainerPic - FuncCoord 19, 0 ; $c3b3 - ld hl, Coord + hlCoord 19, 0 ld c, $0 .asm_396e9 inc c @@ -114,7 +113,7 @@ Func_39707: ; 39707 (e:5707) ; unused slots are filled with 0, all used slots may be chosen with equal probability AIEnemyTrainerChooseMoves: ; 39719 (e:5719) ld a, $a - ld hl, $cee9 ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end + ld hl, wHPBarMaxHP ; init temporary move selection array. Only the moves with the lowest numbers are chosen in the end ld [hli], a ; move 1 ld [hli], a ; move 2 ld [hli], a ; move 3 @@ -123,7 +122,7 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719) swap a and $f jr z, .noMoveDisabled - ld hl, $cee9 + ld hl, wHPBarMaxHP dec a ld c, a ld b, $0 @@ -165,8 +164,8 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719) push de jp [hl] ; execute modification function .loopFindMinimumEntries ; all entries will be decremented sequentially until one of them is zero - ld hl, $cee9 ; temp move selection array - ld de, W_ENEMYMONMOVES ; enemy moves + ld hl, wHPBarMaxHP ; temp move selection array + ld de, wEnemyMonMoves ; enemy moves ld c, $4 .loopDecrementEntries ld a, [de] @@ -187,8 +186,8 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719) inc a cp $5 jr nz, .loopUndoPartialIteration - ld hl, $cee9 ; temp move selection array - ld de, W_ENEMYMONMOVES ; enemy moves + ld hl, wHPBarMaxHP ; temp move selection array + ld de, wEnemyMonMoves ; enemy moves ld c, $4 .filterMinimalEntries ; all minimal entries now have value 1. All other slots will be disabled (move set to 0) ld a, [de] @@ -209,10 +208,10 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719) inc de dec c jr nz, .filterMinimalEntries - ld hl, $cee9 ; use created temporary array as move set + ld hl, wHPBarMaxHP ; use created temporary array as move set ret .useOriginalMoveSet - ld hl, W_ENEMYMONMOVES ; use original move set + ld hl, wEnemyMonMoves ; use original move set ret AIMoveChoiceModificationFunctionPointers: ; 397a3 (e:57a3) @@ -223,11 +222,11 @@ AIMoveChoiceModificationFunctionPointers: ; 397a3 (e:57a3) ; discourages moves that cause no damage but only a status ailment if player's mon already has one AIMoveChoiceModification1: ; 397ab (e:57ab) - ld a, [W_PLAYERMONSTATUS] + ld a, [wBattleMonStatus] and a ret z ; return if no status ailment on player's mon - ld hl, $cee8 ; temp move selection array (-1 byte offest) - ld de, W_ENEMYMONMOVES ; enemy moves + ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest) + ld de, wEnemyMonMoves ; enemy moves ld b, $5 .nextMove dec b @@ -266,11 +265,11 @@ StatusAilmentMoveEffects ; 57e2 ; slightly encourage moves with specific effects AIMoveChoiceModification2: ; 397e7 (e:57e7) - ld a, [$ccd5] + ld a, [wccd5] cp $1 ret nz - ld hl, $cee8 ; temp move selection array (-1 byte offest) - ld de, W_ENEMYMONMOVES ; enemy moves + ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest) + ld de, wEnemyMonMoves ; enemy moves ld b, $5 .nextMove dec b @@ -297,8 +296,8 @@ AIMoveChoiceModification2: ; 397e7 (e:57e7) ; encourages moves that are effective against the player's mon AIMoveChoiceModification3: ; 39817 (e:5817) - ld hl, $cee8 ; temp move selection array (-1 byte offest) - ld de, W_ENEMYMONMOVES ; enemy moves + ld hl, wBuffer - 1 ; temp move selection array (-1 byte offest) + ld de, wEnemyMonMoves ; enemy moves ld b, $5 .nextMove dec b @@ -316,7 +315,7 @@ AIMoveChoiceModification3: ; 39817 (e:5817) pop de pop bc pop hl - ld a, [$d11e] + ld a, [wd11e] cp $10 jr z, .nextMove jr c, .notEffectiveMove @@ -328,7 +327,7 @@ AIMoveChoiceModification3: ; 39817 (e:5817) push bc ld a, [W_ENEMYMOVETYPE] ld d, a - ld hl, W_ENEMYMONMOVES ; enemy moves + ld hl, wEnemyMonMoves ; enemy moves ld b, $5 ld c, $0 .loopMoves @@ -374,7 +373,7 @@ ReadMove: ; 39884 (e:5884) ld hl,Moves ld bc,6 call AddNTimes - ld de,$CFCC + ld de,W_ENEMYMOVENUM call CopyData pop bc pop de @@ -579,21 +578,21 @@ TrainerPicAndMoneyPointers: ; 39914 (e:5914) INCLUDE "text/trainer_names.asm" Func_39b87: ; 39b87 (e:5b87) - ld hl, $d0dc - ld de, $d0e1 + ld hl, wd0dc + ld de, wd0e1 ld b, $0 .asm_39b8f ld a, [hli] and a jr z, .asm_39bc1 push hl - ld [$d0b5], a + ld [wd0b5], a ld a, $2c - ld [$d0b7], a + ld [wPredefBank], a ld a, MOVE_NAME ld [W_LISTTYPE], a call GetName - ld hl, $cd6d + ld hl, wcd6d .asm_39ba7 ld a, [hli] cp $50 @@ -603,7 +602,7 @@ Func_39b87: ; 39b87 (e:5b87) jr .asm_39ba7 .asm_39bb0 ld a, b - ld [$cd6c], a + ld [wcd6c], a inc b ld a, $4e ld [de], a @@ -631,71 +630,71 @@ Func_39b87: ; 39b87 (e:5b87) ret Func_39bd5: ; 39bd5 (e:5bd5) - ld a, [$d11b] + ld a, [wd11b] cp $1 jr nz, .asm_39be6 - ld hl, wEnemyPartyCount ; $d89c - ld de, W_ENEMYMON1OT ; $d9ac OT names of other player + ld hl, wEnemyPartyCount ; wEnemyPartyCount + ld de, wEnemyMonOT ; wd9ac OT names of other player ld a, $6 jr .asm_39c18 .asm_39be6 cp $4 jr nz, .calcAttackStat4 - ld hl, W_NUMINPARTY ; $d163 - ld de, W_PARTYMON1OT ; $d273 + ld hl, wPartyCount ; wPartyCount + ld de, wPartyMonOT ; wd273 ld a, $5 jr .asm_39c18 .calcAttackStat4 cp $5 jr nz, .asm_39c02 - ld hl, $cf7b + ld hl, wStringBuffer2 + 11 ld de, MonsterNames ; $421e ld a, $1 jr .asm_39c18 .asm_39c02 cp $2 jr nz, .asm_39c10 - ld hl, wNumBagItems ; $d31d + ld hl, wNumBagItems ; wNumBagItems ld de, ItemNames ; $472b ld a, $4 jr .asm_39c18 .asm_39c10 - ld hl, $cf7b + ld hl, wStringBuffer2 + 11 ld de, ItemNames ; $472b ld a, ITEM_NAME .asm_39c18 ld [W_LISTTYPE], a ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a + ld [wcf8c], a ld a, e - ld [$cf8d], a + ld [wcf8d], a ld a, d - ld [$cf8e], a + ld [wcf8e], a ld bc, ItemPrices ; $4608 ld a, c - ld [$cf8f], a + ld [wcf8f], a ld a, b - ld [$cf90], a + ld [wcf90], a ret Func_39c37: ; 39c37 (e:5c37) - ld hl, W_PARTYMON1 ; $d164 - ld a, [$cc49] + ld hl, wPartySpecies + ld a, [wcc49] and a jr z, .asm_39c4b dec a jr z, .asm_39c48 - ld hl, $da81 + ld hl, wBoxSpecies jr .asm_39c4b .asm_39c48 - ld hl, $d89d + ld hl, wEnemyPartyMons .asm_39c4b ld d, $0 add hl, de ld a, [hl] - ld [$cf91], a + ld [wcf91], a ret ReadTrainer: ; 39c53 (e:5c53) @@ -705,7 +704,7 @@ ReadTrainer: ; 39c53 (e:5c53) and a ret nz -; set [wEnemyPartyCount] to 0, [$D89D] to FF +; set [wEnemyPartyCount] to 0, [wEnemyPartyMons] to FF ; XXX first is total enemy pokemon? ; XXX second is species of first pokemon? ld hl,wEnemyPartyCount @@ -754,11 +753,11 @@ ReadTrainer: ; 39c53 (e:5c53) ld a,[hli] and a ; have we reached the end of the trainer data? jr z,.FinishUp - ld [$CF91],a ; write species somewhere (XXX why?) + ld [wcf91],a ; write species somewhere (XXX why?) ld a,1 - ld [$CC49],a + ld [wcc49],a push hl - call AddPokemonToParty + call AddPartyMon pop hl jr .LoopTrainerData .SpecialTrainer @@ -771,11 +770,11 @@ ReadTrainer: ; 39c53 (e:5c53) jr z,.AddLoneMove ld [W_CURENEMYLVL],a ld a,[hli] - ld [$CF91],a + ld [wcf91],a ld a,1 - ld [$CC49],a + ld [wcc49],a push hl - call AddPokemonToParty + call AddPartyMon pop hl jr .SpecialTrainer .AddLoneMove @@ -791,8 +790,8 @@ ReadTrainer: ; 39c53 (e:5c53) add hl,bc ld a,[hli] ld d,[hl] - ld hl,W_ENEMYMON1MOVE3 - ld bc,W_ENEMYMON2MOVE3 - W_ENEMYMON1MOVE3 + ld hl,wEnemyMon1Moves + 2 + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes ld [hl],d jr .FinishUp @@ -821,13 +820,13 @@ ReadTrainer: ; 39c53 (e:5c53) jr .FinishUp ; nope .GiveTeamMoves ld a,[hl] - ld [$D95E],a + ld [wEnemyMon5Moves + 2],a jr .FinishUp .ChampionRival ; give moves to his team ; pidgeot ld a,SKY_ATTACK - ld [W_ENEMYMON1MOVE3],a + ld [wEnemyMon1Moves + 2],a ; starter ld a,[W_RIVALSTARTER] @@ -840,10 +839,10 @@ ReadTrainer: ; 39c53 (e:5c53) ld b,BLIZZARD ; must be squirtle .GiveStarterMove ld a,b - ld [W_ENEMYMON6MOVE3],a + ld [wEnemyMon6Moves + 2],a .FinishUp ; XXX this needs documenting xor a ; clear D079-D07B - ld de,$D079 + ld de,wd079 ld [de],a inc de ld [de],a @@ -852,11 +851,10 @@ ReadTrainer: ; 39c53 (e:5c53) ld a,[W_CURENEMYLVL] ld b,a .LastLoop - ld hl,$D047 + ld hl,wd047 ld c,2 push bc - ld a,$B - call Predef + predef AddBCDPredef pop bc inc de inc de @@ -898,7 +896,7 @@ TrainerAI: ; 3a52e (e:652e) ld a,[hli] ld h,[hl] ld l,a - call GenRandom + call Random jp [hl] TrainerAIPointers: ; 3a55c (e:655c) @@ -985,7 +983,7 @@ CooltrainerFAI: ; 3a601 (e:6601) BrockAI: ; 3a614 (e:6614) ; if his active monster has a status condition, use a full heal - ld a,[W_ENEMYMONSTATUS] + ld a,[wEnemyMonStatus] and a ret z jp AIUseFullHeal @@ -1092,25 +1090,25 @@ Func_3a69b: ; 3a69b (e:669b) AIUseFullRestore: ; 3a6a0 (e:66a0) call AICureStatus ld a,FULL_RESTORE - ld [$CF05],a + ld [wcf05],a ld de,wHPBarOldHP - ld hl,$CFE7 + ld hl,wEnemyMonHP + 1 ld a,[hld] ld [de],a inc de ld a,[hl] ld [de],a inc de - ld hl,$CFF5 + ld hl,wEnemyMonMaxHP + 1 ld a,[hld] ld [de],a inc de ld [wHPBarMaxHP],a - ld [$CFE7],a + ld [wEnemyMonHP + 1],a ld a,[hl] ld [de],a ld [wHPBarMaxHP+1],a - ld [W_ENEMYMONCURHP],a + ld [wEnemyMonHP],a jr Func_3a718 AIUsePotion: ; 3a6ca (e:66ca) @@ -1133,8 +1131,8 @@ AIUseHyperPotion: ; 3a6d6 (e:66d6) AIRecoverHP: ; 3a6da (e:66da) ; heal b HP and print "trainer used $(a) on pokemon!" - ld [$CF05],a - ld hl,$CFE7 + ld [wcf05],a + ld hl,wEnemyMonHP + 1 ld a,[hl] ld [wHPBarOldHP],a add b @@ -1151,7 +1149,7 @@ AIRecoverHP: ; 3a6da (e:66da) inc hl ld a,[hld] ld b,a - ld de,$CFF5 + ld de,wEnemyMonMaxHP + 1 ld a,[de] dec de ld [wHPBarMaxHP],a @@ -1174,18 +1172,16 @@ AIRecoverHP: ; 3a6da (e:66da) Func_3a718: ; 3a718 (e:6718) call AIPrintItemUse_ - FuncCoord 2, 2 ; $c3ca - ld hl,Coord + hlCoord 2, 2 xor a - ld [$CF94],a - ld a,$48 - call Predef + ld [wListMenuID],a + predef UpdateHPBar2 jp DecrementAICount Func_3a72a: ; 3a72a (e:672a) ld a,[wEnemyPartyCount] ld c,a - ld hl,W_ENEMYMON1HP + ld hl,wEnemyMon1HP ld d,0 ; keep count of unfainted monsters @@ -1215,13 +1211,13 @@ Func_3a74b: ; 3a74b (e:674b) ; prepare to withdraw the active monster: copy hp, number, and status to roster - ld a,[W_ENEMYMONNUMBER] - ld hl,W_ENEMYMON1HP - ld bc,$2C + ld a,[wEnemyMonPartyPos] + ld hl,wEnemyMon1HP + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes ld d,h ld e,l - ld hl,W_ENEMYMONCURHP + ld hl,wEnemyMonHP ld bc,4 call CopyData @@ -1229,10 +1225,10 @@ Func_3a74b: ; 3a74b (e:674b) call PrintText ld a,1 - ld [$D11D],a + ld [wd11d],a callab EnemySendOut xor a - ld [$D11D],a + ld [wd11d],a ld a,[W_ISLINKBATTLE] cp 4 @@ -1252,41 +1248,41 @@ AIUseFullHeal: ; 3a786 (e:6786) AICureStatus: ; 3a791 (e:6791) ; cures the status of enemy's active pokemon - ld a,[W_ENEMYMONNUMBER] - ld hl,$D8A8 - ld bc,$2C + ld a,[wEnemyMonPartyPos] + ld hl,wEnemyMon1Status + ld bc,wEnemyMon2 - wEnemyMon1 call AddNTimes xor a ld [hl],a ; clear status in enemy team roster - ld [W_ENEMYMONSTATUS],a ; clear status of active enemy - ld hl,$D069 + ld [wEnemyMonStatus],a ; clear status of active enemy + ld hl,W_ENEMYBATTSTATUS3 res 0,[hl] ret AIUseXAccuracy: ; 0x3a7a8 unused call Func_3a69b - ld hl,$D068 + ld hl,W_ENEMYBATTSTATUS2 set 0,[hl] ld a,X_ACCURACY jp AIPrintItemUse AIUseGuardSpec: ; 3a7b5 (e:67b5) call Func_3a69b - ld hl,$D068 + ld hl,W_ENEMYBATTSTATUS2 set 1,[hl] ld a,GUARD_SPEC_ jp AIPrintItemUse AIUseDireHit: ; 0x3a7c2 unused call Func_3a69b - ld hl,$D068 + ld hl,W_ENEMYBATTSTATUS2 set 2,[hl] ld a,DIRE_HIT jp AIPrintItemUse Func_3a7cf: ; 3a7cf (e:67cf) ld [H_DIVISOR],a - ld hl,$CFF4 + ld hl,wEnemyMonMaxHP ld a,[hli] ld [H_DIVIDEND],a ld a,[hl] @@ -1297,7 +1293,7 @@ Func_3a7cf: ; 3a7cf (e:67cf) ld c,a ld a,[H_QUOTIENT + 2] ld b,a - ld hl,$CFE7 + ld hl,wEnemyMonHP + 1 ld a,[hld] ld e,a ld a,[hl] @@ -1330,11 +1326,11 @@ AIUseXSpecial: ; 3a804 (e:6804) ; fallthrough AIIncreaseStat: ; 3a808 (e:6808) - ld [$CF05],a + ld [wcf05],a push bc call AIPrintItemUse_ pop bc - ld hl,$CFCD + ld hl,W_ENEMYMOVEEFFECT ld a,[hld] push af ld a,[hl] @@ -1352,14 +1348,14 @@ AIIncreaseStat: ; 3a808 (e:6808) jp DecrementAICount AIPrintItemUse: ; 3a82c (e:682c) - ld [$CF05],a + ld [wcf05],a call AIPrintItemUse_ jp DecrementAICount AIPrintItemUse_: ; 3a835 (e:6835) -; print "x used [$CF05] on z!" - ld a,[$CF05] - ld [$D11E],a +; print "x used [wcf05] on z!" + ld a,[wcf05] + ld [wd11e],a call GetItemName ld hl, AIBattleUseItemText jp PrintText @@ -1371,7 +1367,7 @@ AIBattleUseItemText: ; 3a844 (e:6844) DrawAllPokeballs: ; 3a849 (e:6849) call LoadPartyPokeballGfx call SetupOwnPartyPokeballs - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a ret z ; return if wild pokémon jp SetupEnemyPartyPokeballs @@ -1382,36 +1378,36 @@ DrawEnemyPokeballs: ; 0x3a857 LoadPartyPokeballGfx: ; 3a85d (e:685d) ld de, PokeballTileGraphics ; $697e - ld hl, $8310 + ld hl, vSprites + $310 ld bc, (BANK(PokeballTileGraphics) << 8) + $04 jp CopyVideoData SetupOwnPartyPokeballs: ; 3a869 (e:6869) call PlacePlayerHUDTiles - ld hl, W_PARTYMON1DATA - ld de, W_NUMINPARTY ; $d163 + ld hl, wPartyMon1 + ld de, wPartyCount ; wPartyCount call SetupPokeballs ld a, $60 - ld hl, W_BASECOORDX ; $d081 + ld hl, W_BASECOORDX ; wd081 ld [hli], a ld [hl], a ld a, $8 - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld hl, wOAMBuffer jp Func_3a8e1 SetupEnemyPartyPokeballs: ; 3a887 (e:6887) call PlaceEnemyHUDTiles ld hl, wEnemyMons - ld de, wEnemyPartyCount ; $d89c + ld de, wEnemyPartyCount ; wEnemyPartyCount call SetupPokeballs - ld hl, W_BASECOORDX ; $d081 + ld hl, W_BASECOORDX ; wd081 ld a, $48 ld [hli], a ld [hl], $20 ld a, $f8 - ld [$cd3e], a - ld hl, $c318 + ld [wTrainerEngageDistance], a + ld hl, wOAMBuffer + $18 jp Func_3a8e1 SetupPokeballs: ; 0x3a8a6 @@ -1465,22 +1461,22 @@ PickPokeball: ; 3a8c2 (e:68c2) ret Func_3a8e1: ; 3a8e1 (e:68e1) - ld de, $cee9 + ld de, wHPBarMaxHP ld c, $6 .asm_3a8e6 - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 ld [hli], a ld a, [de] ld [hli], a xor a ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 ld b, a - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] add b - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 inc de dec c jr nz, .asm_3a8e6 @@ -1488,11 +1484,10 @@ Func_3a8e1: ; 3a8e1 (e:68e1) PlacePlayerHUDTiles: ; 3a902 (e:6902) ld hl, PlayerBattleHUDGraphicsTiles ; $6916 - ld de, $cd3f + ld de, wTrainerFacingDirection ld bc, $3 call CopyData - FuncCoord 18, 10 ; $c47a - ld hl, Coord + hlCoord 18, 10 ld de, rIE ; $ffff jr PlaceHUDTiles @@ -1504,11 +1499,10 @@ PlayerBattleHUDGraphicsTiles: ; 3a916 (e:6916) PlaceEnemyHUDTiles: ; 3a919 (e:6919) ld hl, EnemyBattleHUDGraphicsTiles ; $692d - ld de, $cd3f + ld de, wTrainerFacingDirection ld bc, $3 call CopyData - FuncCoord 1, 2 ; $c3c9 - ld hl, Coord + hlCoord 1, 2 ld de, $1 jr PlaceHUDTiles @@ -1522,7 +1516,7 @@ PlaceHUDTiles: ; 3a930 (e:6930) ld [hl], $73 ld bc, $14 add hl, bc - ld a, [$cd40] + ld a, [wTrainerScreenY] ld [hl], a ld a, $8 .asm_3a93c @@ -1531,33 +1525,33 @@ PlaceHUDTiles: ; 3a930 (e:6930) dec a jr nz, .asm_3a93c add hl, de - ld a, [$cd41] + ld a, [wTrainerScreenX] ld [hl], a ret SetupPlayerAndEnemyPokeballs: ; 3a948 (e:6948) call LoadPartyPokeballGfx - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) - ld de, W_NUMINPARTY ; $d163 + ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1) + ld de, wPartyCount ; wPartyCount call SetupPokeballs - ld hl, W_BASECOORDX ; $d081 + ld hl, W_BASECOORDX ; wd081 ld a, $50 ld [hli], a ld [hl], $40 ld a, $8 - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld hl, wOAMBuffer call Func_3a8e1 - ld hl, wEnemyMons ; $d8a4 - ld de, wEnemyPartyCount ; $d89c + ld hl, wEnemyMons ; wEnemyMon1Species + ld de, wEnemyPartyCount ; wEnemyPartyCount call SetupPokeballs - ld hl, W_BASECOORDX ; $d081 + ld hl, W_BASECOORDX ; wd081 ld a, $50 ld [hli], a ld [hl], $68 - ld hl, $c318 + ld hl, wOAMBuffer + $18 jp Func_3a8e1 ; four tiles: pokeball, black pokeball (status ailment), crossed out pokeball (faited) and pokeball slot (no mon) PokeballTileGraphics:: ; 3a97e (e:697e) - INCBIN "gfx/pokeball.2bpp"
\ No newline at end of file + INCBIN "gfx/pokeball.2bpp" diff --git a/engine/battle/e_2.asm b/engine/battle/e_2.asm index e6d6eddc..665807fe 100755 --- a/engine/battle/e_2.asm +++ b/engine/battle/e_2.asm @@ -1,13 +1,13 @@ HealEffect_: ; 3b9ec (e:79ec) ld a, [H_WHOSETURN] ; $fff3 and a - ld de, W_PLAYERMONCURHP ; $d015 - ld hl, W_PLAYERMONMAXHP ; $d023 - ld a, [W_PLAYERMOVENUM] ; $cfd2 + ld de, wBattleMonHP ; wd015 + ld hl, wBattleMonMaxHP ; wd023 + ld a, [W_PLAYERMOVENUM] ; wcfd2 jr z, .asm_3ba03 - ld de, W_ENEMYMONCURHP ; $cfe6 - ld hl, W_ENEMYMONMAXHP ; $cff4 - ld a, [W_ENEMYMOVENUM] ; $cfcc + ld de, wEnemyMonHP ; wEnemyMonHP + ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP + ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM .asm_3ba03 ld b, a ld a, [de] @@ -25,11 +25,11 @@ HealEffect_: ; 3b9ec (e:79ec) push af ld c, $32 call DelayFrames - ld hl, W_PLAYERMONSTATUS ; $d018 + ld hl, wBattleMonStatus ; wBattleMonStatus ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3ba25 - ld hl, W_ENEMYMONSTATUS ; $cfe9 + ld hl, wEnemyMonStatus ; wcfe9 .asm_3ba25 ld a, [hl] and a @@ -85,17 +85,14 @@ HealEffect_: ; 3b9ec (e:79ec) call BankswitchEtoF ld a, [H_WHOSETURN] ; $fff3 and a - FuncCoord 10, 9 ; $c45e - ld hl, Coord + hlCoord 10, 9 ld a, $1 jr z, .asm_3ba83 - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 xor a .asm_3ba83 - ld [wListMenuID], a ; $cf94 - ld a, $48 - call Predef ; indirect jump to UpdateHPBar (fa1d (3:7a1d)) + ld [wListMenuID], a ; wListMenuID + predef UpdateHPBar2 ld hl, Func_3cd5a ; $4d5a call BankswitchEtoF ld hl, RegainedHealthText ; $7aac @@ -120,36 +117,36 @@ RegainedHealthText: ; 3baac (e:7aac) db "@" TransformEffect_: ; 3bab1 (e:7ab1) - ld hl, W_PLAYERMONID - ld de, $cfe5 - ld bc, W_ENEMYBATTSTATUS3 ; $d069 - ld a, [W_ENEMYBATTSTATUS1] ; $d067 + ld hl, wBattleMonSpecies + ld de, wEnemyMonSpecies + ld bc, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3 + ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1 ld a, [H_WHOSETURN] ; $fff3 and a jr nz, .asm_3bad1 - ld hl, $cfe5 - ld de, W_PLAYERMONID - ld bc, W_PLAYERBATTSTATUS3 ; $d064 - ld [wPlayerMoveListIndex], a ; $cc2e - ld a, [W_PLAYERBATTSTATUS1] ; $d062 + ld hl, wEnemyMonSpecies + ld de, wBattleMonSpecies + ld bc, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3 + ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex + ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1 .asm_3bad1 bit 6, a ; is mon invulnerable to typical attacks? (fly/dig) jp nz, Func_3bb8c push hl push de push bc - ld hl, W_PLAYERBATTSTATUS2 ; $d063 + ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3bae4 - ld hl, W_ENEMYBATTSTATUS2 ; $d068 + ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2 .asm_3bae4 bit 4, [hl] push af ld hl, Func_79747 ld b, BANK(Func_79747) call nz, Bankswitch - ld a, [W_OPTIONS] ; $d355 + ld a, [W_OPTIONS] ; W_OPTIONS add a ld hl, Func_3fba8 ; $7ba8 ld b, BANK(Func_3fba8) @@ -185,10 +182,10 @@ TransformEffect_: ; 3bab1 (e:7ab1) and a jr z, .asm_3bb32 ld a, [de] - ld [$cceb], a + ld [wcceb], a inc de ld a, [de] - ld [$ccec], a + ld [wccec], a dec de .asm_3bb32 ld a, [hli] @@ -227,13 +224,13 @@ TransformEffect_: ; 3bab1 (e:7ab1) .asm_3bb5d pop hl ld a, [hl] - ld [$d11e], a + ld [wd11e], a call GetMonName - ld hl, $cd26 - ld de, $cd12 + ld hl, wcd26 + ld de, wcd12 call Func_3bb7d - ld hl, wEnemyMonStatMods ; $cd2e - ld de, wPlayerMonStatMods ; $cd1a + ld hl, wEnemyMonStatMods ; wcd2e + ld de, wPlayerMonStatMods ; wcd1a call Func_3bb7d ld hl, TransformedText ; $7b92 jp PrintText @@ -259,13 +256,13 @@ TransformedText: ; 3bb92 (e:7b92) db "@" ReflectLightScreenEffect_: ; 3bb97 (e:7b97) - ld hl, W_PLAYERBATTSTATUS3 ; $d064 - ld de, W_PLAYERMOVEEFFECT ; $cfd3 + ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3 + ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld a, [H_WHOSETURN] ; $fff3 and a jr z, .asm_3bba8 - ld hl, W_ENEMYBATTSTATUS3 ; $d069 - ld de, W_ENEMYMOVEEFFECT ; $cfcd + ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3 + ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT .asm_3bba8 ld a, [de] cp LIGHT_SCREEN_EFFECT diff --git a/engine/battle/safari_zone.asm b/engine/battle/safari_zone.asm index 426e391e..99e1492d 100755 --- a/engine/battle/safari_zone.asm +++ b/engine/battle/safari_zone.asm @@ -1,5 +1,5 @@ PrintSafariZoneBattleText: ; 4277 (1:4277) - ld hl, $cce9 + ld hl, wcce9 ld a, [hl] and a jr z, .asm_4284 @@ -15,11 +15,11 @@ PrintSafariZoneBattleText: ; 4277 (1:4277) ld hl, SafariZoneAngryText jr nz, .asm_429f push hl - ld a, [$cfe5] - ld [$d0b5], a + ld a, [wEnemyMonSpecies] + ld [wd0b5], a call GetMonHeader ld a, [W_MONHCATCHRATE] - ld [$d007], a + ld [wd007], a pop hl .asm_429f push hl diff --git a/engine/cable_club.asm b/engine/cable_club.asm index 3b1cbedd..fc049ceb 100755 --- a/engine/cable_club.asm +++ b/engine/cable_club.asm @@ -6,29 +6,27 @@ Func_5317: ; 5317 (1:5317) call LoadFontTilePatterns call LoadHpBarAndStatusTilePatterns call LoadTrainerInfoTextBoxTiles - FuncCoord 3, 8 ; $c443 - ld hl, Coord + hlCoord 3, 8 ld b, $2 ld c, $c call Func_5ab3 - FuncCoord 4, 10 ; $c46c - ld hl, Coord + hlCoord 4, 10 ld de, PleaseWaitString ; $550f call PlaceString - ld hl, W_NUMHITS ; $d074 + ld hl, W_NUMHITS ; wd074 xor a ld [hli], a ld [hl], $50 Func_5345: ; 5345 - ld hl, $d152 + ld hl, wd152 ld a, $fd ld b, $6 .asm_534c ld [hli], a dec b jr nz, .asm_534c - ld hl, $d141 + ld hl, wd141 ld a, $fd ld b, $7 .asm_5357 @@ -37,7 +35,7 @@ Func_5345: ; 5345 jr nz, .asm_5357 ld b, $a .asm_535d - call GenRandom + call Random cp $fd jr nc, .asm_535d ld [hli], a @@ -54,7 +52,7 @@ Func_5345: ; 5345 ld [hli], a dec b jr nz, .asm_5373 - ld hl, W_GRASSRATE ; $d887 + ld hl, W_GRASSRATE ; W_GRASSRATE ld bc, $1a9 .asm_537d xor a @@ -63,8 +61,8 @@ Func_5345: ; 5345 ld a, b or c jr nz, .asm_537d - ld hl, W_PARTYMONEND ; $d16a - ld de, $c512 + ld hl, wPartyMons - 1 + ld de, wTileMapBackup + 10 ld bc, $0 .asm_538d inc c @@ -114,20 +112,20 @@ Func_5345: ; 5345 call Delay3 ld a, $8 ld [rIE], a ; $ffff - ld hl, $d141 + ld hl, wd141 ld de, wTileMapBackup2 ld bc, $11 call Func_216f ld a, $fe ld [de], a - ld hl, $d152 - ld de, $d893 + ld hl, wd152 + ld de, wd893 ld bc, $1a8 call Func_216f ld a, $fe ld [de], a ld hl, wTileMapBackup - ld de, $c5d0 + ld de, wTileMapBackup + 200 ld bc, $c8 call Func_216f ld a, $d @@ -147,7 +145,7 @@ Func_5345: ; 5345 cp $fe jr z, .asm_5415 dec hl - ld de, $d148 + ld de, wd148 ld c, $a .asm_5427 ld a, [hli] @@ -158,7 +156,7 @@ Func_5345: ; 5345 dec c jr nz, .asm_5427 .asm_5431 - ld hl, $d896 + ld hl, wd896 .asm_5434 ld a, [hli] and a @@ -168,7 +166,7 @@ Func_5345: ; 5345 cp $fe jr z, .asm_5434 dec hl - ld de, W_GRASSRATE ; $d887 + ld de, W_GRASSRATE ; W_GRASSRATE ld c, $b .asm_5446 ld a, [hli] @@ -178,7 +176,7 @@ Func_5345: ; 5345 inc de dec c jr nz, .asm_5446 - ld de, wEnemyPartyCount ; $d89c + ld de, wEnemyPartyCount ; wEnemyPartyCount ld bc, $194 .asm_5456 ld a, [hli] @@ -191,7 +189,7 @@ Func_5345: ; 5345 or c jr nz, .asm_5456 ld de, wTileMapBackup - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) + ld hl, wPartyMons ld c, $2 .asm_546a ld a, [de] @@ -206,7 +204,7 @@ Func_5345: ; 5345 jr z, .asm_5489 push hl push bc - ld b, $0 + ld b, 0 dec a ld c, a add hl, bc @@ -216,11 +214,11 @@ Func_5345: ; 5345 pop hl jr .asm_546a .asm_5489 - ld hl, W_PARTYMON6DATA + W_PARTYMON1_MOVE4PP - W_PARTYMON1DATA ; $d267 + ld hl, wPartyMons + $fc ; wd267 dec c jr nz, .asm_546a - ld de, $c5d0 - ld hl, W_WATERRATE ; $d8a4 + ld de, wTileMapBackup + 200 + ld hl, wEnemyMons ld c, $2 .asm_5497 ld a, [de] @@ -245,38 +243,36 @@ Func_5345: ; 5345 pop hl jr .asm_5497 .asm_54b6 - ld hl, $d9a0 + ld hl, wEnemyMons + $fc dec c jr nz, .asm_5497 ld a, $ac - ld [$cf8d], a + ld [wcf8d], a ld a, $d9 - ld [$cf8e], a + ld [wcf8e], a xor a - ld [$cc38], a + ld [wcc38], a ld a, $ff call PlaySound ld a, [$ffaa] cp $2 ld c, $42 call z, DelayFrames - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $3 ld a, $32 - ld [W_ISLINKBATTLE], a ; $d12b + ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE jr nz, .asm_5506 ld a, $4 - ld [W_ISLINKBATTLE], a ; $d12b + ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE ld a, SONY1 + $c8 - ld [W_CUROPPONENT], a ; $d059 + ld [W_CUROPPONENT], a ; wd059 call ClearScreen call Delay3 - ld hl, W_OPTIONS ; $d355 + ld hl, W_OPTIONS ; W_OPTIONS res 7, [hl] - ld a, $2c - call Predef ; indirect jump to InitOpponent (3ef18 (f:6f18)) - ld a, $7 - call Predef ; indirect jump to HealParty (f6a5 (3:76a5)) + predef InitOpponent + predef HealParty jp Func_577d .asm_5506 ld c, BANK(Music_GameCorner) @@ -290,7 +286,7 @@ PleaseWaitString: ; 550f (1:550f) Func_551c: ld hl, PointerTable_5a5b ; $5a5b ld b, $0 - ld a, [$cc38] + ld a, [wcc38] cp $ff jp z, LoadTitlescreenGraphics add a @@ -307,31 +303,31 @@ TradeCenter_SelectMon: call Func_57f2 call Func_57a2 xor a - ld hl, $cc3d + ld hl, wcc3d ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld [$cc37], a - ld [$cc26], a - ld [$cc2a], a - ld [$cc34], a + ld [wcc37], a + ld [wCurrentMenuItem], a + ld [wLastMenuItem], a + ld [wMenuJoypadPollCount], a inc a - ld [$cc42], a + ld [wcc42], a jp .asm_55dc .asm_5557 xor a - ld [$cc37], a + ld [wcc37], a inc a - ld [$cc49], a + ld [wcc49], a ld a, $a1 - ld [$cc29], a - ld a, [$d89c] - ld [$cc28], a + ld [wMenuWatchedKeys], a + ld a, [wEnemyPartyCount] + ld [wMaxMenuItem], a ld a, $9 - ld [$cc24], a + ld [wTopMenuItemY], a ld a, $1 - ld [$cc25], a + ld [wTopMenuItemX], a .asm_5574 ld hl, $fff6 set 1, [hl] @@ -342,17 +338,17 @@ TradeCenter_SelectMon: jp z, .asm_565b bit 0, a jr z, .asm_55b0 ; 0x5587 $27 - ld a, [$cc28] + ld a, [wMaxMenuItem] ld c, a - ld a, [$cc26] + ld a, [wCurrentMenuItem] cp c jr c, .asm_559a ; 0x5591 $7 - ld a, [$cc28] + ld a, [wMaxMenuItem] dec a - ld [$cc26], a + ld [wCurrentMenuItem], a .asm_559a ld a, $1 - ld [$d11b], a + ld [wd11b], a callab Func_39bd5 ld hl, wEnemyMons call Func_57d6 @@ -361,20 +357,20 @@ TradeCenter_SelectMon: bit 5, a jr z, .asm_55d4 ; 0x55b2 $20 xor a - ld [$cc49], a - ld a, [$cc30] + ld [wcc49], a + ld a, [wMenuCursorLocation] ld l, a - ld a, [$cc31] + ld a, [wMenuCursorLocation + 1] ld h, a - ld a, [$cc27] + ld a, [wTileBehindCursor] ld [hl], a - ld a, [$cc26] + ld a, [wCurrentMenuItem] ld b, a - ld a, [$d163] + ld a, [wPartyCount] dec a cp b jr nc, .asm_55dc ; 0x55cd $d - ld [$cc26], a + ld [wCurrentMenuItem], a jr .asm_55dc ; 0x55d2 $8 .asm_55d4 bit 7, a @@ -382,17 +378,17 @@ TradeCenter_SelectMon: jp .asm_572f .asm_55dc xor a - ld [$cc49], a - ld [$cc37], a + ld [wcc49], a + ld [wcc37], a ld a, $91 - ld [$cc29], a - ld a, [$d163] - ld [$cc28], a + ld [wMenuWatchedKeys], a + ld a, [wPartyCount] + ld [wMaxMenuItem], a ld a, $1 - ld [$cc24], a + ld [wTopMenuItemY], a ld a, $1 - ld [$cc25], a - ld hl, $c3b5 + ld [wTopMenuItemX], a + ld hl, wTileMap + $15 ld bc, $0601 call ClearScreenArea .asm_5601 @@ -409,7 +405,7 @@ TradeCenter_SelectMon: jr z, .asm_562e ; 0x5616 $16 jp .asm_5665 ld a, $4 - ld [$d11b], a + ld [wd11b], a callab Func_39bd5 call Func_57d6 jp .asm_565b @@ -417,20 +413,20 @@ TradeCenter_SelectMon: bit 4, a jr z, .asm_5654 ; 0x5630 $22 ld a, $1 - ld [$cc49], a - ld a, [$cc30] + ld [wcc49], a + ld a, [wMenuCursorLocation] ld l, a - ld a, [$cc31] + ld a, [wMenuCursorLocation + 1] ld h, a - ld a, [$cc27] + ld a, [wTileBehindCursor] ld [hl], a - ld a, [$cc26] + ld a, [wCurrentMenuItem] ld b, a - ld a, [$d89c] + ld a, [wEnemyPartyCount] dec a cp b jr nc, .asm_5651 ; 0x564c $3 - ld [$cc26], a + ld [wCurrentMenuItem], a .asm_5651 jp .asm_5557 .asm_5654 @@ -438,43 +434,43 @@ TradeCenter_SelectMon: jr z, .asm_565b ; 0x5656 $3 jp .asm_572f .asm_565b - ld a, [$cc49] + ld a, [wcc49] and a jp z, .asm_5601 jp .asm_5574 .asm_5665 call SaveScreenTilesToBuffer1 call PlaceUnfilledArrowMenuCursor - ld a, [$cc28] + ld a, [wMaxMenuItem] ld c, a - ld a, [$cc26] + ld a, [wCurrentMenuItem] cp c jr c, .asm_5679 ; 0x5673 $4 - ld a, [$cc28] + ld a, [wMaxMenuItem] dec a .asm_5679 push af - ld hl, $c4b8 + ld hl, wTileMap + $118 ld b, $2 ld c, $12 call Func_5ab3 - ld hl, $c4e2 + ld hl, wTileMap + $142 ld de, .statsTrade call PlaceString xor a - ld [$cc26], a - ld [$cc2a], a - ld [$cc34], a - ld [$cc28], a + ld [wCurrentMenuItem], a + ld [wLastMenuItem], a + ld [wMenuJoypadPollCount], a + ld [wMaxMenuItem], a ld a, $10 - ld [$cc24], a + ld [wTopMenuItemY], a .asm_569f ld a, $7f - ld [$c4eb], a + ld [wTileMap + $14b], a ld a, $13 - ld [$cc29], a + ld [wMenuWatchedKeys], a ld a, $1 - ld [$cc25], a + ld [wTopMenuItemX], a call HandleMenuInput bit 4, a jr nz, .asm_56c3 ; 0x56b3 $e @@ -482,16 +478,16 @@ TradeCenter_SelectMon: jr z, .asm_56df ; 0x56b7 $26 .asm_56b9 pop af - ld [$cc26], a + ld [wCurrentMenuItem], a call LoadScreenTilesFromBuffer1 jp .asm_55dc .asm_56c3 ld a, $7f - ld [$c4e1], a + ld [wTileMap + $141], a ld a, $23 - ld [$cc29], a + ld [wMenuWatchedKeys], a ld a, $b - ld [$cc25], a + ld [wTopMenuItemX], a call HandleMenuInput bit 5, a jr nz, .asm_569f ; 0x56d7 $c6 @@ -500,9 +496,9 @@ TradeCenter_SelectMon: jr .asm_56f9 ; 0x56dd $1a .asm_56df pop af - ld [$cc26], a + ld [wCurrentMenuItem], a ld a, $4 - ld [$d11b], a + ld [wd11b], a callab Func_39bd5 call Func_57d6 call LoadScreenTilesFromBuffer1 @@ -510,37 +506,37 @@ TradeCenter_SelectMon: .asm_56f9 call PlaceUnfilledArrowMenuCursor pop af - ld [$cc26], a - ld [$cd3d], a - ld [$cc42], a + ld [wCurrentMenuItem], a + ld [wWhichTrade], a + ld [wcc42], a call Func_226e - ld a, [$cc3d] + ld a, [wcc3d] cp $f jp z, Func_551c - ld [$cd3e], a + ld [wTrainerEngageDistance], a call Func_57c7 ld a, $1 - ld [$cc38], a + ld [wcc38], a jp Func_551c .statsTrade db "STATS TRADE@" .asm_572f - ld a, [$cc26] + ld a, [wCurrentMenuItem] ld b, a - ld a, [$cc28] + ld a, [wMaxMenuItem] cp b jp nz, .asm_565b - ld a, [$cc30] + ld a, [wMenuCursorLocation] ld l, a - ld a, [$cc31] + ld a, [wMenuCursorLocation + 1] ld h, a ld a, $7f ld [hl], a .asm_5745 ld a, $ed - ld [$c4e1], a + ld [wTileMap + $141], a .asm_574a - call GetJoypadStateLowSensitivity + call JoypadLowSensitivity ld a, [$ffb5] and a jr z, .asm_574a ; 0x5750 $f8 @@ -549,32 +545,32 @@ TradeCenter_SelectMon: bit 6, a jr z, .asm_574a ; 0x5758 $f0 ld a, $7f - ld [$c4e1], a - ld a, [$d163] + ld [wTileMap + $141], a + ld a, [wPartyCount] dec a - ld [$cc26], a + ld [wCurrentMenuItem], a jp .asm_55dc .asm_5769 ld a, $ec - ld [$c4e1], a + ld [wTileMap + $141], a ld a, $f - ld [$cc42], a + ld [wcc42], a call Func_226e - ld a, [$cc3d] + ld a, [wcc3d] cp $f jr nz, .asm_5745 ; 0x577b $c8 Func_577d: ; 577d (1:577d) call GBPalWhiteOutWithDelay3 - ld hl, $cfc4 + ld hl, wcfc4 ld a, [hl] push af push hl res 0, [hl] xor a - ld [$d72d], a + ld [wd72d], a dec a - ld [$d42f], a + ld [wd42f], a call LoadMapData callba Func_c335 pop hl @@ -584,15 +580,15 @@ Func_577d: ; 577d (1:577d) ret Func_57a2: - ld hl, $c4d7 + ld hl, wTileMap + $137 ld a, $7e ld bc, $0031 call FillMemory - ld hl, $c4cc + ld hl, wTileMap + $12c ld b, $1 ld c, $9 call Func_5ab3 - ld hl, $c4e2 + ld hl, wTileMap + $142 ld de, CancelTextString jp PlaceString @@ -600,20 +596,18 @@ CancelTextString: db "CANCEL@" Func_57c7: - ld a, [$cc3d] - ld hl, $c455 + ld a, [wcc3d] + ld hl, wTileMap + $b5 ld bc, $0014 call AddNTimes ld [hl], $ec ret Func_57d6: - ld a, [$cc26] + ld a, [wCurrentMenuItem] ld [wWhichPokemon], a - ld a, $36 - call Predef - ld a, $37 - call Predef + predef StatusScreen + predef StatusScreen2 call GBPalNormal call LoadTrainerInfoTextBoxTiles call Func_57f2 @@ -624,21 +618,21 @@ Func_57f2: ld b, $6 ld c, $12 call Func_5ab3 - ld hl, $c440 + ld hl, wTileMap + $a0 ld b, $6 ld c, $12 call Func_5ab3 - ld hl, $c3a5 - ld de, W_PLAYERNAME + ld hl, wTileMap + $5 + ld de, wPlayerName call PlaceString - ld hl, $c445 - ld de, $d887 + ld hl, wTileMap + $a5 + ld de, W_GRASSRATE call PlaceString - ld hl, $c3b6 - ld de, $d164 + ld hl, wTileMap + $16 + ld de, wPartySpecies call Func_5827 - ld hl, $c456 - ld de, $d89d + ld hl, wTileMap + $b6 + ld de, wEnemyPartyMons Func_5827: ld c, $0 @@ -646,7 +640,7 @@ Func_5827: ld a, [de] cp $ff ret z - ld [$d11e], a + ld [wd11e], a push bc push hl push de @@ -669,170 +663,168 @@ TradeCenter_Trade: ld c, $64 call DelayFrames xor a - ld [$cc43], a - ld [$cc3e], a - ld [$cc37], a - ld [$cc34], a - ld hl, $c490 + ld [wcc43], a + ld [wcc3e], a + ld [wcc37], a + ld [wMenuJoypadPollCount], a + ld hl, wTileMap + $f0 ld b, $4 ld c, $12 call Func_5ab3 - ld a, [$cd3d] - ld hl, $d164 + ld a, [wWhichTrade] + ld hl, wPartySpecies ld c, a ld b, $0 add hl, bc ld a, [hl] - ld [$d11e], a + ld [wd11e], a call GetMonName - ld hl, $cd6d - ld de, $cd3f + ld hl, wcd6d + ld de, wTrainerFacingDirection ld bc, $000b call CopyData - ld a, [$cd3e] - ld hl, $d89d + ld a, [wTrainerEngageDistance] + ld hl, wEnemyPartyMons ld c, a ld b, $0 add hl, bc ld a, [hl] - ld [$d11e], a + ld [wd11e], a call GetMonName ld hl, WillBeTradedText - ld bc, $c4b9 + ld bc, wTileMap + $119 call TextCommandProcessor call SaveScreenTilesToBuffer1 - ld hl, $c436 + ld hl, wTileMap + $96 ld bc, $080b ld a, $5 - ld [$d12c], a + ld [wd12c], a ld a, $14 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID call LoadScreenTilesFromBuffer1 - ld a, [$cc26] + ld a, [wCurrentMenuItem] and a jr z, .asm_58d9 ; 0x58b9 $1e ld a, $1 - ld [$cc42], a - ld hl, $c490 + ld [wcc42], a + ld hl, wTileMap + $f0 ld b, $4 ld c, $12 call Func_5ab3 - ld hl, $c4b9 + ld hl, wTileMap + $119 ld de, TradeCanceled call PlaceString call Func_226e jp Func_5a18 .asm_58d9 ld a, $2 - ld [$cc42], a + ld [wcc42], a call Func_226e - ld a, [$cc3d] + ld a, [wcc3d] dec a jr nz, .asm_58fd ; 0x58e5 $16 - ld hl, $c490 + ld hl, wTileMap + $f0 ld b, $4 ld c, $12 call Func_5ab3 - ld hl, $c4b9 + ld hl, wTileMap + $119 ld de, TradeCanceled call PlaceString jp Func_5a18 .asm_58fd - ld a, [$cd3d] - ld hl, W_PARTYMON1OT ; OT names of player + ld a, [wWhichTrade] + ld hl, wPartyMonOT ; OT names of player call SkipFixedLengthTextEntries - ld de, $cd41 + ld de, wTrainerScreenX ld bc, $000b call CopyData - ld hl, $d16b - ld a, [$cd3d] + ld hl, wPartyMon1Species + ld a, [wWhichTrade] ld bc, $002c call AddNTimes ld bc, $000c add hl, bc ld a, [hli] - ld [$cd4c], a + ld [wcd4c], a ld a, [hl] - ld [$cd4d], a - ld a, [$cd3e] - ld hl, W_ENEMYMON1OT ; OT names of other player + ld [wcd4d], a + ld a, [wTrainerEngageDistance] + ld hl, wEnemyMonOT ; OT names of other player call SkipFixedLengthTextEntries - ld de, $cd4e + ld de, wcd4e ld bc, $000b call CopyData ld hl, wEnemyMons - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] ld bc, $002c call AddNTimes ld bc, $000c add hl, bc ld a, [hli] - ld [$cd59], a + ld [wcd59], a ld a, [hl] - ld [$cd5a], a - ld a, [$cd3d] + ld [wcd5a], a + ld a, [wWhichTrade] ld [wWhichPokemon], a - ld hl, $d164 + ld hl, wPartySpecies ld b, $0 ld c, a add hl, bc ld a, [hl] - ld [$cd3d], a + ld [wWhichTrade], a xor a - ld [$cf95], a + ld [wcf95], a call RemovePokemon - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] ld c, a ld [wWhichPokemon], a - ld hl, $d89d + ld hl, wEnemyPartyMons ld d, $0 ld e, a add hl, de ld a, [hl] - ld [$cf91], a + ld [wcf91], a ld hl, wEnemyMons ld a, c ld bc, $002c call AddNTimes - ld de, $cf98 + ld de, wcf98 ld bc, $002c call CopyData call AddEnemyMonToPlayerParty - ld a, [$d163] + ld a, [wPartyCount] dec a ld [wWhichPokemon], a ld a, $1 - ld [$ccd4], a - ld a, [$cd3e] - ld hl, $d89d + ld [wccd4], a + ld a, [wTrainerEngageDistance] + ld hl, wEnemyPartyMons ld b, $0 ld c, a add hl, bc ld a, [hl] - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld a, $a ld [wMusicHeaderPointer], a ld a, $2 - ld [$c0f0], a + ld [wc0f0], a ld a, MUSIC_SAFARI_ZONE - ld [$c0ee], a + ld [wc0ee], a call PlaySound ld c, $64 call DelayFrames call ClearScreen call LoadHpBarAndStatusTilePatterns xor a - ld [$cc5b], a + ld [wcc5b], a ld a, [$ffaa] cp $1 jr z, .asm_59d9 ; 0x59d0 $7 - ld a, $38 - call Predef + predef Func_410e2 jr .asm_59de ; 0x59d7 $5 .asm_59d9 - ld a, $2f - call Predef + predef Func_410f3 .asm_59de callab Func_3ad0e call ClearScreen @@ -840,26 +832,25 @@ TradeCenter_Trade: call Func_226e ld c, $28 call DelayFrames - ld hl, $c490 + ld hl, wTileMap + $f0 ld b, $4 ld c, $12 call Func_5ab3 - ld hl, $c4b9 + ld hl, wTileMap + $119 ld de, TradeCompleted call PlaceString - ld a, $50 - call Predef + predef SaveSAVtoSRAM2 ld c, $32 call DelayFrames xor a - ld [$cc38], a + ld [wcc38], a jp Func_5345 Func_5a18: ld c, $64 call DelayFrames xor a - ld [$cc38], a + ld [wcc38], a jp Func_551c WillBeTradedText: ; 5a24 (1:5a24) @@ -878,48 +869,47 @@ PointerTable_5a5b: ; 5a5b (1:5a5b) dw TradeCenter_Trade Func_5a5f: ; 5a5f (1:5a5f) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $2 jr z, .asm_5a75 cp $3 jr z, .asm_5a75 cp $5 ret nz - ld a, $4d - call Predef ; indirect jump to Func_5aaf (5aaf (1:5aaf)) - jp InitGame + predef Func_5aaf + jp Init .asm_5a75 call Func_5317 ld hl, Club_GFX ld a, h - ld [$d52f], a + ld [W_TILESETGFXPTR + 1], a ld a, l - ld [$d52e], a + ld [W_TILESETGFXPTR], a ld a, Bank(Club_GFX) - ld [$d52b], a + ld [W_TILESETBANK], a ld hl, Club_Coll ld a, h - ld [$d531], a + ld [W_TILESETCOLLISIONPTR + 1], a ld a, l - ld [$d530], a + ld [W_TILESETCOLLISIONPTR], a xor a - ld [W_GRASSRATE], a ; $d887 + ld [W_GRASSRATE], a ; W_GRASSRATE inc a - ld [W_ISLINKBATTLE], a ; $d12b + ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE ld [$ffb5], a ld a, $a ld [wMusicHeaderPointer], a ld a, BANK(Music_Celadon) - ld [$c0f0], a + ld [wc0f0], a ld a, MUSIC_CELADON - ld [$c0ee], a + ld [wc0ee], a jp PlaySound Func_5aaf: ; 5aaf (1:5aaf) ret Func_5ab0: - call Load16BitRegisters + call GetPredefRegisters Func_5ab3: ; 5ab3 (1:5ab3) push hl diff --git a/engine/clear_save.asm b/engine/clear_save.asm index dbb3d3a6..5ef0d475 100755 --- a/engine/clear_save.asm +++ b/engine/clear_save.asm @@ -5,19 +5,18 @@ Func_1c98a: ; 1c98a (7:498a) call LoadTextBoxTilePatterns ld hl, ClearSaveDataText call PrintText - FuncCoord 14, 7 ; $c43a - ld hl, Coord + hlCoord 14, 7 ld bc, $80f ld a, $7 - ld [$d12c], a + ld [wd12c], a ld a, $14 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a - jp z, InitGame + jp z, Init callba Func_73b6a - jp InitGame + jp Init ClearSaveDataText: ; 1c9c1 (7:49c1) TX_FAR _ClearSaveDataText diff --git a/engine/evolution.asm b/engine/evolution.asm index 664aaa5e..07ccdbda 100755 --- a/engine/evolution.asm +++ b/engine/evolution.asm @@ -2,15 +2,15 @@ Func_7bde9: ; 7bde9 (1e:7de9) push hl push de push bc - ld a, [$cf91] + ld a, [wcf91] push af - ld a, [$d0b5] + ld a, [wd0b5] push af xor a - ld [$d083], a - ld [$c02a], a + ld [wd083], a + ld [wc02a], a dec a - ld [$c0ee], a + ld [wc0ee], a call PlaySound ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba @@ -20,25 +20,25 @@ Func_7bde9: ; 7bde9 (1e:7de9) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld [$ffd7], a - ld a, [$cee9] - ld [$cf1d], a + ld a, [wHPBarMaxHP] + ld [wcf1d], a ld c, $0 call Func_7beb4 - ld a, [$ceea] - ld [$cf91], a - ld [$d0b5], a + ld a, [wHPBarMaxHP + 1] + ld [wcf91], a + ld [wd0b5], a call Func_7beb9 - ld de, $9000 - ld hl, $9310 - ld bc, $31 + ld de, vFrontPic + ld hl, vBackPic + ld bc, 7 * 7 call CopyVideoData - ld a, [$cee9] - ld [$cf91], a - ld [$d0b5], a + ld a, [wHPBarMaxHP] + ld [wcf91], a + ld [wd0b5], a call Func_7beb9 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld a, [$cee9] + ld a, [wHPBarMaxHP] call PlayCry call WaitForSoundToFinish ld c, BANK(Music_SafariZone) @@ -60,28 +60,28 @@ Func_7bde9: ; 7bde9 (1e:7de9) dec c jr nz, .asm_7be63 xor a - ld [$ceec], a + ld [wHPBarOldHP + 1], a ld a, $31 - ld [$ceeb], a + ld [wHPBarOldHP], a call Func_7bed6 - ld a, [$ceea] + ld a, [wHPBarMaxHP + 1] .asm_7be81 - ld [$cf1d], a + ld [wcf1d], a ld a, $ff - ld [$c0ee], a + ld [wc0ee], a call PlaySound - ld a, [$cf1d] + ld a, [wcf1d] call PlayCry ld c, $0 call Func_7beb4 pop af - ld [$d0b5], a + ld [wd0b5], a pop af - ld [$cf91], a + ld [wcf91], a pop bc pop de pop hl - ld a, [$ceec] + ld a, [wHPBarOldHP + 1] and a ret z scf @@ -89,8 +89,8 @@ Func_7bde9: ; 7bde9 (1e:7de9) .asm_7bea9 pop bc ld a, $1 - ld [$ceec], a - ld a, [$cee9] + ld [wHPBarOldHP + 1], a + ld a, [wHPBarMaxHP] jr .asm_7be81 Func_7beb4: ; 7beb4 (1e:7eb4) @@ -99,15 +99,14 @@ Func_7beb4: ; 7beb4 (1e:7eb4) Func_7beb9: ; 7beb9 (1e:7eb9) call GetMonHeader - FuncCoord 7, 2 ; $c3cf - ld hl, Coord + hlCoord 7, 2 jp LoadFlippedFrontSpriteByMonIndex asm_7bec2: ; 7bec2 (1e:7ec2) ld a, $31 - ld [$ceeb], a + ld [wHPBarOldHP], a call Func_7bed6 ld a, $cf - ld [$ceeb], a + ld [wHPBarOldHP], a call Func_7bed6 dec b jr nz, asm_7bec2 @@ -117,14 +116,13 @@ Func_7bed6: ; 7bed6 (1e:7ed6) push bc xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - FuncCoord 7, 2 ; $c3cf - ld hl, Coord + hlCoord 7, 2 ld bc, $707 ld de, $d .asm_7bee3 push bc .asm_7bee4 - ld a, [$ceeb] + ld a, [wHPBarOldHP] add [hl] ld [hli], a dec c @@ -141,7 +139,7 @@ Func_7bed6: ; 7bed6 (1e:7ed6) asm_7befa: ; 7befa (1e:7efa) call DelayFrame push bc - call GetJoypadStateLowSensitivity + call JoypadLowSensitivity ld a, [$ffb5] pop bc and $2 @@ -152,7 +150,7 @@ asm_7befa: ; 7befa (1e:7efa) and a ret .asm_7bf0d - ld a, [$ccd4] + ld a, [wccd4] and a jr nz, .asm_7bf08 scf diff --git a/engine/evolve_trade.asm b/engine/evolve_trade.asm index 9758b99f..ffb8a778 100755 --- a/engine/evolve_trade.asm +++ b/engine/evolve_trade.asm @@ -31,14 +31,14 @@ EvolveTradeMon: ; 17d7d (5:7d7d) ret nz .ok - ld a, [W_NUMINPARTY] ; $d163 + ld a, [wPartyCount] ; wPartyCount dec a - ld [wWhichPokemon], a ; $cf92 + ld [wWhichPokemon], a ; wWhichPokemon ld a, $1 - ld [$ccd4], a + ld [wccd4], a ld a, $32 - ld [W_ISLINKBATTLE], a ; $d12b + ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE callab Func_3ad0e xor a - ld [W_ISLINKBATTLE], a ; $d12b + ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE jp Func_2307 diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm index 0892d8de..fd93fa14 100755 --- a/engine/evos_moves.asm +++ b/engine/evos_moves.asm @@ -1,8 +1,8 @@ Func_3ad0e: ; 3ad0e (e:6d0e) - ld hl, $ccd3 + ld hl, wccd3 xor a ld [hl], a - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon ld c, a ld b, $1 call Func_3b057 @@ -11,33 +11,33 @@ Func_3ad1c: ; 3ad1c (e:6d1c) ld a, [$ffd7] push af xor a - ld [$d121], a + ld [wd121], a dec a - ld [wWhichPokemon], a ; $cf92 + ld [wWhichPokemon], a ; wWhichPokemon push hl push bc push de - ld hl, W_NUMINPARTY ; $d163 + ld hl, wPartyCount ; wPartyCount push hl asm_3ad2e: ; 3ad2e (e:6d2e) - ld hl, wWhichPokemon ; $cf92 + ld hl, wWhichPokemon ; wWhichPokemon inc [hl] pop hl inc hl ld a, [hl] cp $ff jp z, Func_3aede - ld [$cee9], a + ld [wHPBarMaxHP], a push hl - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon ld c, a - ld hl, $ccd3 + ld hl, wccd3 ld b, $2 call Func_3b057 ld a, c and a jp z, asm_3ad2e - ld a, [$cee9] + ld a, [wHPBarMaxHP] dec a ld b, $0 ld hl, EvosMovesPointerTable @@ -49,13 +49,13 @@ asm_3ad2e: ; 3ad2e (e:6d2e) ld h, [hl] ld l, a push hl - ld a, [$cf91] + ld a, [wcf91] push af xor a - ld [$cc49], a + ld [wcc49], a call LoadMonData pop af - ld [$cf91], a + ld [wcf91], a pop hl Func_3ad71: ; 3ad71 (e:6d71) @@ -65,49 +65,49 @@ Func_3ad71: ; 3ad71 (e:6d71) ld b, a cp $3 jr z, .asm_3ad91 - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $32 jr z, asm_3ad2e ld a, b cp $2 jr z, .asm_3ada4 - ld a, [$ccd4] + ld a, [wccd4] and a jr nz, asm_3ad2e ld a, b cp $1 jr z, .asm_3adad .asm_3ad91 - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $32 jp nz, Func_3aed9 ld a, [hli] ld b, a - ld a, [$cfb9] + ld a, [wcfb9] cp b jp c, asm_3ad2e jr .asm_3adb6 .asm_3ada4 ld a, [hli] ld b, a - ld a, [$cf91] + ld a, [wcf91] cp b jp nz, Func_3aed9 .asm_3adad ld a, [hli] ld b, a - ld a, [$cfb9] + ld a, [wcfb9] cp b jp c, Func_3aeda .asm_3adb6 - ld [W_CURENEMYLVL], a ; $d127 + ld [W_CURENEMYLVL], a ; W_CURENEMYLVL ld a, $1 - ld [$d121], a + ld [wd121], a push hl ld a, [hl] - ld [$ceea], a - ld a, [wWhichPokemon] ; $cf92 - ld hl, W_PARTYMON1NAME ; $d2b5 + ld [wHPBarMaxHP + 1], a + ld a, [wWhichPokemon] ; wWhichPokemon + ld hl, wPartyMonNicks ; wPartyMonNicks call GetPartyMonName call CopyStringToCF4B ld hl, IsEvolvingText @@ -122,21 +122,21 @@ Func_3ad71: ; 3ad71 (e:6d71) ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld a, $ff - ld [$cfcb], a - call CleanLCD_OAM + ld [wcfcb], a + call ClearSprites callab Func_7bde9 jp c, Func_3af2e ld hl, EvolvedText call PrintText pop hl ld a, [hl] - ld [$d0b5], a - ld [$cf98], a - ld [$ceea], a + ld [wd0b5], a + ld [wcf98], a + ld [wHPBarMaxHP + 1], a ld a, MONSTER_NAME ld [W_LISTTYPE], a ld a, $e - ld [$d0b7], a + ld [wPredefBank], a call GetName push hl ld hl, IntoText @@ -148,29 +148,28 @@ Func_3ad71: ; 3ad71 (e:6d71) call DelayFrames call ClearScreen call Func_3aef7 - ld a, [$d11e] + ld a, [wd11e] push af - ld a, [$d0b5] - ld [$d11e], a - ld a, $3a - call Predef ; indirect jump to IndexToPokedex (41010 (10:5010)) - ld a, [$d11e] + ld a, [wd0b5] + ld [wd11e], a + predef IndexToPokedex + ld a, [wd11e] dec a - ld hl, BulbasaurBaseStats ; $43de + ld hl, BaseStats ld bc, $1c call AddNTimes ld de, W_MONHEADER call CopyData - ld a, [$d0b5] - ld [$d0b8], a + ld a, [wd0b5] + ld [W_MONHDEXNUM], a pop af - ld [$d11e], a - ld hl, $cfa8 - ld de, $cfba + ld [wd11e], a + ld hl, wcfa8 + ld de, wcfba ld b, $1 call CalcStats - ld a, [wWhichPokemon] ; $cf92 - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) + ld a, [wWhichPokemon] ; wWhichPokemon + ld hl, wPartyMon1Species ; wPartyMon1Species (aliases: wPartyMon1) ld bc, $2c call AddNTimes ld e, l @@ -182,14 +181,14 @@ Func_3ad71: ; 3ad71 (e:6d71) ld a, [hli] ld b, a ld c, [hl] - ld hl, $cfbb + ld hl, wcfbb ld a, [hld] sub c ld c, a ld a, [hl] sbc b ld b, a - ld hl, $cf9a + ld hl, wcf9a ld a, [hl] add c ld [hld], a @@ -199,32 +198,30 @@ Func_3ad71: ; 3ad71 (e:6d71) dec hl pop bc call CopyData - ld a, [$d0b5] - ld [$d11e], a + ld a, [wd0b5] + ld [wd11e], a xor a - ld [$cc49], a + ld [wcc49], a call Func_3af5b pop hl - ld a, $42 - call Predef ; indirect jump to SetPartyMonTypes (5db5e (17:5b5e)) - ld a, [W_ISINBATTLE] ; $d057 + predef SetPartyMonTypes + ld a, [W_ISINBATTLE] ; W_ISINBATTLE and a call z, Func_3af52 - ld a, $3a - call Predef ; indirect jump to IndexToPokedex (41010 (10:5010)) - ld a, [$d11e] + predef IndexToPokedex + ld a, [wd11e] dec a ld c, a ld b, $1 - ld hl, wPokedexOwned ; $d2f7 + ld hl, wPokedexOwned ; wPokedexOwned push bc call Func_3b057 pop bc - ld hl, wPokedexSeen ; $d30a + ld hl, wPokedexSeen ; wd30a call Func_3b057 pop de pop hl - ld a, [$cf98] + ld a, [wcf98] ld [hl], a push hl ld l, e @@ -244,27 +241,27 @@ Func_3aede: ; 3aede (e:6ede) pop hl pop af ld [$ffd7], a - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $32 ret z - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE and a ret nz - ld a, [$d121] + ld a, [wd121] and a call nz, Func_2307 ret Func_3aef7: ; 3aef7 (e:6ef7) - ld a, [$d0b5] + ld a, [wd0b5] push af - ld a, [$d0b8] - ld [$d0b5], a + ld a, [W_MONHDEXNUM] + ld [wd0b5], a call GetName pop af - ld [$d0b5], a - ld hl, $cd6d - ld de, $cf4b + ld [wd0b5], a + ld hl, wcd6d + ld de, wcf4b .asm_3af0e ld a, [de] inc de @@ -273,13 +270,13 @@ Func_3aef7: ; 3aef7 (e:6ef7) ret nz cp $50 jr nz, .asm_3af0e - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon ld bc, $b - ld hl, W_PARTYMON1NAME ; $d2b5 + ld hl, wPartyMonNicks ; wPartyMonNicks call AddNTimes push hl call GetName - ld hl, $cd6d + ld hl, wcd6d pop de jp CopyData @@ -308,15 +305,15 @@ IsEvolvingText: ; 3af4d (e:6f4d) db "@" Func_3af52: ; 3af52 (e:6f52) - ld a, [W_ISLINKBATTLE] ; $d12b + ld a, [W_ISLINKBATTLE] ; W_ISLINKBATTLE cp $32 ret z jp ReloadTilesetTilePatterns Func_3af5b: ; 3af5b (e:6f5b) ld hl, EvosMovesPointerTable - ld a, [$d11e] - ld [$cf91], a + ld a, [wd11e] + ld [wcf91], a dec a ld bc, $0 ld hl, EvosMovesPointerTable @@ -336,16 +333,16 @@ Func_3af5b: ; 3af5b (e:6f5b) and a jr z, .asm_3afb1 ld b, a - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL cp b ld a, [hli] jr nz, .asm_3af77 ld d, a - ld a, [$cc49] + ld a, [wcc49] and a jr nz, .asm_3af96 - ld hl, W_PARTYMON1_MOVE1 ; $d173 - ld a, [wWhichPokemon] ; $cf92 + ld hl, wPartyMon1Moves ; wPartyMon1Moves + ld a, [wWhichPokemon] ; wWhichPokemon ld bc, $2c call AddNTimes .asm_3af96 @@ -357,28 +354,27 @@ Func_3af5b: ; 3af5b (e:6f5b) dec b jr nz, .asm_3af98 ld a, d - ld [$d0e0], a - ld [$d11e], a + ld [wd0e0], a + ld [wd11e], a call GetMoveName call CopyStringToCF4B - ld a, $1b - call Predef ; indirect jump to LearnMove (6e43 (1:6e43)) + predef LearnMove .asm_3afb1 - ld a, [$cf91] - ld [$d11e], a + ld a, [wcf91] + ld [wd11e], a ret ; writes the moves a mon has at level [W_CURENEMYLVL] to [de] ; move slots are being filled up sequentially and shifted if all slots are full -; [$cee9]: (?) +; [wHPBarMaxHP]: (?) WriteMonMoves: ; 3afb8 (e:6fb8) - call Load16BitRegisters + call GetPredefRegisters push hl push de push bc ld hl, EvosMovesPointerTable ld b, $0 - ld a, [$cf91] ; cur mon ID + ld a, [wcf91] ; cur mon ID dec a add a rl b @@ -401,13 +397,13 @@ WriteMonMoves: ; 3afb8 (e:6fb8) and a jp z, .done ; end of list ld b, a - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL cp b jp c, .done ; mon level < move level (assumption: learnset is sorted by level) - ld a, [$cee9] + ld a, [wHPBarMaxHP] and a jr z, .skipMinLevelCheck - ld a, [wWhichTrade] ; $cd3d (min move level) + ld a, [wWhichTrade] ; wWhichTrade (min move level) cp b jr nc, .nextMove2 ; min level >= move level .skipMinLevelCheck @@ -436,7 +432,7 @@ WriteMonMoves: ; 3afb8 (e:6fb8) ld h, d ld l, e call WriteMonMoves_ShiftMoveData ; shift all moves one up (deleting move 1) - ld a, [$cee9] + ld a, [wHPBarMaxHP] and a jr z, .writeMoveToSlot push de @@ -451,7 +447,7 @@ WriteMonMoves: ; 3afb8 (e:6fb8) .writeMoveToSlot2 ld a, [hl] ld [de], a - ld a, [$cee9] + ld a, [wHPBarMaxHP] and a jr z, .nextMove push hl ; write move PP value @@ -463,10 +459,10 @@ WriteMonMoves: ; 3afb8 (e:6fb8) ld hl, Moves ld bc, $6 call AddNTimes - ld de, $cee9 + ld de, wHPBarMaxHP ld a, BANK(Moves) call FarCopyData - ld a, [$ceee] + ld a, [wHPBarNewHP + 1] pop hl ld [hl], a pop hl @@ -489,7 +485,6 @@ WriteMonMoves_ShiftMoveData: ; 3b04e (e:704e) ret Func_3b057: ; 3b057 (e:7057) - ld a, $10 - jp Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef_jump FlagActionPredef INCLUDE "data/evos_moves.asm" diff --git a/engine/experience.asm b/engine/experience.asm index 80177b50..07726821 100755 --- a/engine/experience.asm +++ b/engine/experience.asm @@ -1,13 +1,13 @@ Func_58f43: ; 58f43 (16:4f43) - ld a, [$cf98] - ld [$d0b5], a + ld a, [wcf98] + ld [wd0b5], a call GetMonHeader ld d, $1 .asm_58f4e inc d call CalcExperience push hl - ld hl, $cfa8 + ld hl, wcfa8 ld a, [$ff98] ld c, a ld a, [hld] diff --git a/engine/game_corner_slots.asm b/engine/game_corner_slots.asm index f3009b35..0ab74927 100755 --- a/engine/game_corner_slots.asm +++ b/engine/game_corner_slots.asm @@ -10,7 +10,7 @@ StartSlotMachine: ; 37e2d (d:7e2d) ld a, [wTrainerSpriteOffset] and a ret z - ld a, [$cd05] + ld a, [wcd05] ld b, a ld a, [wTrainerFacingDirection] inc a @@ -21,9 +21,9 @@ StartSlotMachine: ; 37e2d (d:7e2d) .asm_37e58 ld a, $fa .asm_37e5a - ld [$cc5b], a + ld [wcc5b], a ld a, [H_LOADEDROMBANK] - ld [$cc5e], a + ld [wcc5e], a call PromptUserToPlaySlots ret .printOutOfOrder diff --git a/engine/game_corner_slots2.asm b/engine/game_corner_slots2.asm index 719c50e7..66e51237 100755 --- a/engine/game_corner_slots2.asm +++ b/engine/game_corner_slots2.asm @@ -1,10 +1,9 @@ AbleToPlaySlotsCheck ; 2ff09 (b:7f09) - ld a, [$c102] + ld a, [wSpriteStateData1 + 2] and $8 jr z, .done ; not able ld b, COIN_CASE - ld a, $1c - call Predef ; IsItemInBag_ + predef IsItemInBag_ ; IsItemInBag_ ld a, b and a ld b, $33 ; GameCornerCoinCaseText @@ -20,7 +19,7 @@ AbleToPlaySlotsCheck ; 2ff09 (b:7f09) call PrintPredefTextID xor a .done - ld [$cd3d], a + ld [wWhichTrade], a ret GameCornerCoinCaseText: ; 2ff32 (b:7f32) diff --git a/engine/gamefreak.asm b/engine/gamefreak.asm index 4837bc18..d0f1bbac 100755 --- a/engine/gamefreak.asm +++ b/engine/gamefreak.asm @@ -4,15 +4,15 @@ LoadShootingStarGraphics: ; 70000 (1c:4000) ld a, $a4 ld [rOBP1], a ; $ff49 ld de, AnimationTileset2 + $30 ; $471e ; star tile (top left quadrant) - ld hl, $8a00 + ld hl, vChars1 + $200 ld bc, (BANK(AnimationTileset2) << 8) + $01 call CopyVideoData ld de, AnimationTileset2 + $130 ; $481e ; star tile (bottom left quadrant) - ld hl, $8a10 + ld hl, vChars1 + $210 ld bc, (BANK(AnimationTileset2) << 8) + $01 call CopyVideoData ld de, FallingStar ; $4190 - ld hl, $8a20 + ld hl, vChars1 + $220 ld bc, (BANK(FallingStar) << 8) + $01 call CopyVideoData ld hl, GameFreakLogoOAMData ; $4140 @@ -85,7 +85,7 @@ AnimateShootingStar: ; 70044 (1c:4044) dec a jr nz, .asm_70098 xor a - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade ld hl, PointerTable_700f2 ; $40f2 ld c, $6 .asm_700af @@ -110,15 +110,15 @@ AnimateShootingStar: ; 70044 (1c:4044) inc hl dec c jr nz, .asm_700ba - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade cp $18 jr z, .asm_700d5 add $6 - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade .asm_700d5 call Func_7011f push af - ld hl, $c310 + ld hl, wOAMBuffer + $10 ld de, wOAMBuffer ld bc, $50 call CopyData @@ -173,8 +173,8 @@ OAMData_7011e: ; 7011e (1c:411e) Func_7011f: ; 7011f (1c:411f) ld b, $8 .asm_70121 - ld hl, $c35c - ld a, [wWhichTrade] ; $cd3d + ld hl, wOAMBuffer + $5c + ld a, [wWhichTrade] ; wWhichTrade ld de, $fffc ld c, a .asm_7012b diff --git a/engine/give_pokemon.asm b/engine/give_pokemon.asm index ba1461c3..9399fb05 100755 --- a/engine/give_pokemon.asm +++ b/engine/give_pokemon.asm @@ -1,22 +1,22 @@ _GivePokemon: ; 4fda5 (13:7da5) call EnableAutoTextBoxDrawing xor a - ld [$ccd3], a - ld a, [W_NUMINPARTY] ; $d163 + ld [wccd3], a + ld a, [wPartyCount] ; wPartyCount cp $6 jr c, .asm_4fe01 - ld a, [W_NUMINBOX] ; $da80 + ld a, [W_NUMINBOX] ; wda80 cp $14 jr nc, .asm_4fdf9 xor a - ld [W_ENEMYBATTSTATUS3], a ; $d069 - ld a, [$cf91] - ld [W_ENEMYMONID], a + ld [W_ENEMYBATTSTATUS3], a ; W_ENEMYBATTSTATUS3 + ld a, [wcf91] + ld [wEnemyMonSpecies2], a callab Func_3eb01 call SetPokedexOwnedFlag callab Func_e7a4 - ld hl, $cf4b - ld a, [$d5a0] + ld hl, wcf4b + ld a, [wd5a0] and $7f cp $9 jr c, .asm_4fdec @@ -41,28 +41,26 @@ _GivePokemon: ; 4fda5 (13:7da5) ret .asm_4fe01 call SetPokedexOwnedFlag - call AddPokemonToParty + call AddPartyMon ld a, $1 - ld [$cc3c], a - ld [$ccd3], a + ld [wcc3c], a + ld [wccd3], a scf ret SetPokedexOwnedFlag: ; 4fe11 (13:7e11) - ld a, [$cf91] + ld a, [wcf91] push af - ld [$d11e], a - ld a, $3a - call Predef ; indirect jump to IndexToPokedex (41010 (10:5010)) - ld a, [$d11e] + ld [wd11e], a + predef IndexToPokedex + ld a, [wd11e] dec a ld c, a - ld hl, wPokedexOwned ; $d2f7 + ld hl, wPokedexOwned ; wPokedexOwned ld b, $1 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef FlagActionPredef pop af - ld [$d11e], a + ld [wd11e], a call GetMonName ld hl, GotMonText jp PrintText diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm index f84053e3..f4384b91 100755 --- a/engine/hall_of_fame.asm +++ b/engine/hall_of_fame.asm @@ -1,12 +1,12 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) call Func_70423 call ClearScreen - ld c, $64 + ld c, 100 call DelayFrames call LoadFontTilePatterns call LoadTextBoxTilePatterns call DisableLCD - ld hl, $9800 + ld hl,vBGMap0 ld bc, $800 ld a, $7f call FillMemory @@ -14,18 +14,18 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) ld hl, rLCDC ; $ff40 set 3, [hl] xor a - ld hl, $cc5b - ld bc, $60 + ld hl, wHallOfFame + ld bc, HOF_TEAM call FillMemory xor a - ld [$cfcb], a + ld [wcfcb], a ld [$ffd7], a ld [W_SPRITEFLIPPED], a - ld [$d358], a - ld [$cd40], a + ld [wd358], a + ld [wTrainerScreenY], a inc a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld hl, $d5a2 + ld hl, wd5a2 ld a, [hl] inc a jr z, .asm_701eb @@ -36,7 +36,7 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) ld c, BANK(Music_HallOfFame) ld a, MUSIC_HALL_OF_FAME call PlayMusic - ld hl, W_PARTYMON1 ; $d164 + ld hl, wPartySpecies ld c, $ff .asm_701fb ld a, [hli] @@ -45,28 +45,26 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) inc c push hl push bc - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade ld a, c - ld [$cd3e], a - ld hl, W_PARTYMON1_LEVEL ; $d18c - ld bc, $2c + ld [wTrainerEngageDistance], a + ld hl, wPartyMon1Level ; wPartyMon1Level + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes ld a, [hl] - ld [$cd3f], a + ld [wTrainerFacingDirection], a call Func_70278 call Func_702e1 ld c, $50 call DelayFrames - FuncCoord 2, 13 ; $c4a6 - ld hl, Coord + hlCoord 2, 13 ld b, $3 ld c, $e call TextBoxBorder - FuncCoord 4, 15 ; $c4d0 - ld hl, Coord + hlCoord 4, 15 ld de, HallOfFameText call PlaceString - ld c, $b4 + ld c, 180 call DelayFrames call GBFadeOut2 pop bc @@ -75,15 +73,15 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) .asm_70241 ld a, c inc a - ld hl, $cc5b - ld bc, $10 + ld hl, wHallOfFame + ld bc, HOF_MON call AddNTimes ld [hl], $ff - call Func_73b0d + call SaveHallOfFameTeams xor a - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade inc a - ld [$cd40], a + ld [wTrainerScreenY], a call Func_70278 call Func_70377 call Func_70423 @@ -102,23 +100,21 @@ Func_70278: ; 70278 (1c:4278) ld [$ffaf], a ld a, $c0 ld [$ffae], a - ld a, [wWhichTrade] ; $cd3d - ld [$cf91], a - ld [$d0b5], a - ld [$cfd9], a - ld [$cf1d], a - ld a, [$cd40] + ld a, [wWhichTrade] ; wWhichTrade + ld [wcf91], a + ld [wd0b5], a + ld [wBattleMonSpecies2], a + ld [wcf1d], a + ld a, [wTrainerScreenY] and a jr z, .asm_7029d call Func_7033e jr .asm_702ab .asm_7029d - FuncCoord 12, 5 ; $c410 - ld hl, Coord + hlCoord 12, 5 call GetMonHeader call LoadFrontSpriteByMonIndex - ld a, $4 - call Predef ; indirect jump to LoadMonBackSprite (3f103 (f:7103)) + predef LoadMonBackPic .asm_702ab ld b, $b ld c, $0 @@ -129,7 +125,7 @@ Func_70278: ; 70278 (1c:4278) call Func_7036d ld d, $a0 ld e, $4 - ld a, [$cf1b] + ld a, [wcf1b] and a jr z, .asm_702c7 sla e @@ -151,37 +147,31 @@ Func_70278: ; 70278 (1c:4278) ret Func_702e1: ; 702e1 (1c:42e1) - ld a, [$cd3e] - ld hl, W_PARTYMON1NAME ; $d2b5 + ld a, [wTrainerEngageDistance] + ld hl, wPartyMonNicks ; wPartyMonNicks call GetPartyMonName call Func_702f0 jp Func_70404 Func_702f0: ; 702f0 (1c:42f0) - FuncCoord 0, 2 ; $c3c8 - ld hl, Coord + hlCoord 0, 2 ld b, $9 ld c, $a call TextBoxBorder - FuncCoord 2, 6 ; $c41a - ld hl, Coord + hlCoord 2, 6 ld de, HoFMonInfoText call PlaceString - FuncCoord 1, 4 ; $c3f1 - ld hl, Coord - ld de, $cd6d + hlCoord 1, 4 + ld de, wcd6d call PlaceString - ld a, [$cd3f] - FuncCoord 8, 7 ; $c434 - ld hl, Coord + ld a, [wTrainerFacingDirection] + hlCoord 8, 7 call PrintLevelCommon - ld a, [wWhichTrade] ; $cd3d - ld [$d0b5], a - FuncCoord 3, 9 ; $c457 - ld hl, Coord - ld a, $4b - call Predef ; indirect jump to Func_27d6b (27d6b (9:7d6b)) - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade + ld [wd0b5], a + hlCoord 3, 9 + predef Func_27d6b + ld a, [wWhichTrade] ; wWhichTrade jp PlayCry HoFMonInfoText: ; 70329 (1c:4329) @@ -197,71 +187,60 @@ Func_7033e: ; 7033e (1c:433e) ld de, $a000 ld bc, $310 call CopyData - ld de, $9000 + ld de, vFrontPic call InterlaceMergeSpriteBuffers ld de, RedPicBack ; $7e0a ld a, BANK(RedPicBack) call UncompressSpriteFromDE - ld a, $3 - call Predef ; indirect jump to ScaleSpriteByTwo (2fe40 (b:7e40)) - ld de, $9310 + predef ScaleSpriteByTwo + ld de, vBackPic call InterlaceMergeSpriteBuffers ld c, $1 Func_7036d: ; 7036d (1c:436d) ld b, $0 - FuncCoord 12, 5 ; $c410 - ld hl, Coord - ld a, $31 - jp Predef ; indirect jump to Func_79dda (79dda (1e:5dda)) + hlCoord 12, 5 + predef_jump Func_79dda Func_70377: ; 70377 (1c:4377) - ld hl, $d747 + ld hl, wd747 set 3, [hl] - ld a, $56 - call Predef ; indirect jump to DisplayDexRating (44169 (11:4169)) - FuncCoord 0, 4 ; $c3f0 - ld hl, Coord + predef DisplayDexRating + hlCoord 0, 4 ld b, $6 ld c, $a call TextBoxBorder - FuncCoord 5, 0 ; $c3a5 - ld hl, Coord + hlCoord 5, 0 ld b, $2 ld c, $9 call TextBoxBorder - FuncCoord 7, 2 ; $c3cf - ld hl, Coord - ld de, W_PLAYERNAME ; $d158 + hlCoord 7, 2 + ld de, wPlayerName ; wd158 call PlaceString - FuncCoord 1, 6 ; $c419 - ld hl, Coord + hlCoord 1, 6 ld de, HoFPlayTimeText call PlaceString - FuncCoord 5, 7 ; $c431 - ld hl, Coord - ld de, $da41 + hlCoord 5, 7 + ld de, W_PLAYTIMEHOURS + 1 ld bc, $103 call PrintNumber ld [hl], $6d inc hl - ld de, $da43 + ld de, W_PLAYTIMEMINUTES + 1 ld bc, $8102 call PrintNumber - FuncCoord 1, 9 ; $c455 - ld hl, Coord + hlCoord 1, 9 ld de, HoFMoneyText call PlaceString - FuncCoord 4, 10 ; $c46c - ld hl, Coord - ld de, wPlayerMoney ; $d347 + hlCoord 4, 10 + ld de, wPlayerMoney ; wPlayerMoney ld c, $a3 call PrintBCDNumber ld hl, DexSeenOwnedText call Func_703e2 ld hl, DexRatingText call Func_703e2 - ld hl, $cc5d + ld hl, wcc5d Func_703e2: ; 703e2 (1c:43e2) call PrintText @@ -283,24 +262,24 @@ DexRatingText: ; 703ff (1c:43ff) db "@" Func_70404: ; 70404 (1c:4404) - ld hl, $cc5b - ld bc, $10 - ld a, [$cd3e] + ld hl, wHallOfFame + ld bc, HOF_MON + ld a, [wTrainerEngageDistance] call AddNTimes - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade ld [hli], a - ld a, [$cd3f] + ld a, [wTrainerFacingDirection] ld [hli], a ld e, l ld d, h - ld hl, $cd6d + ld hl, wcd6d ld bc, $b jp CopyData Func_70423: ; 70423 (1c:4423) ld a, $a - ld [$cfc8], a - ld [$cfc9], a + ld [wcfc8], a + ld [wcfc9], a ld a, $ff ld [wMusicHeaderPointer], a jp GBFadeOut2 diff --git a/engine/hidden_object_functions14.asm b/engine/hidden_object_functions14.asm index b71ffd05..0d3598f2 100755 --- a/engine/hidden_object_functions14.asm +++ b/engine/hidden_object_functions14.asm @@ -1,7 +1,7 @@ PrintNotebookText: ; 52996 (14:6996) call EnableAutoTextBoxDrawing ld a, $1 - ld [$cc3c], a + ld [wcc3c], a ld a, [wTrainerSpriteOffset] jp PrintPredefTextID @@ -92,7 +92,7 @@ FightingDojoText: ; 52a2a (14:6a2a) db "@" PrintIndigoPlateauHQText: ; 52a2f (14:6a2f) - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $4 ret nz call EnableAutoTextBoxDrawing diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm index d0c6699e..f0126b65 100755 --- a/engine/hidden_object_functions17.asm +++ b/engine/hidden_object_functions17.asm @@ -16,14 +16,14 @@ RedBedroomPC: ; 5db8e (17:5b8e) db $fc ; FuncTX_ItemStoragePC Route15GateLeftBinoculars: ; 5db8f (17:5b8f) - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $4 ; i ret nz call EnableAutoTextBoxDrawing ld a, $a ; text id Route15UpstairsBinocularsText call PrintPredefTextID ld a, ARTICUNO - ld [$cf91], a + ld [wcf91], a call PlayCry jp DisplayMonFrontSpriteInBox @@ -33,7 +33,7 @@ Route15UpstairsBinocularsText: ; 5dba8 (17:5ba8) AerodactylFossil: ; 5dbad (17:5bad) ld a, FOSSIL_AERODACTYL - ld [$cf91], a + ld [wcf91], a call DisplayMonFrontSpriteInBox call EnableAutoTextBoxDrawing ld a, $9 @@ -46,7 +46,7 @@ AerodactylFossilText: ; 5dbbe (17:5bbe) KabutopsFossil: ; 5bdc3 (17:5bc3) ld a, FOSSIL_KABUTOPS - ld [$cf91], a + ld [wcf91], a call DisplayMonFrontSpriteInBox call EnableAutoTextBoxDrawing ld a, $b @@ -59,7 +59,7 @@ KabutopsFossilText: ; 5dbd4 (17:5bd4) DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9) ; Displays a pokemon's front sprite in a pop-up window. -; [$cf91] = pokemon interal id number +; [wcf91] = pokemon interal id number ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba call Delay3 @@ -67,20 +67,18 @@ DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9) ld [$ffb0], a call SaveScreenTilesToBuffer1 ld a, $11 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID call UpdateSprites - ld a, [$cf91] - ld [$d0b5], a + ld a, [wcf91] + ld [wd0b5], a call GetMonHeader - ld de, $8b10 + ld de, vChars1 + $310 call LoadMonFrontSprite ld a, $80 ld [$ffe1], a - FuncCoord 10, 11 ; $c486 - ld hl, Coord - ld a, $2 - call Predef ; indirect jump to Func_3f073 (3f073 (f:7073)) + hlCoord 10, 11 + predef Func_3f073 call WaitForTextScrollButtonPress call LoadScreenTilesFromBuffer1 call Delay3 @@ -91,8 +89,8 @@ DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9) PrintBlackboardLinkCableText: ; 5dc1a (17:5c1a) call EnableAutoTextBoxDrawing ld a, $1 - ld [$cc3c], a - ld a, [$cd3d] + ld [wcc3c], a + ld a, [wWhichTrade] call PrintPredefTextID ret @@ -114,13 +112,13 @@ LinkCableHelp: ; 5dc29 (17:5c29) ld a, $1 ld [wTopMenuItemX], a .asm_5c51 - ld hl, $d730 + ld hl, wd730 set 6, [hl] ld hl, wTileMap ld b, $8 ld c, $d call TextBoxBorder - ld hl, $c3ca + ld hl, wTileMap + $2a ld de, HowToLinkText call PlaceString ld hl, LinkCableHelpText2 @@ -131,7 +129,7 @@ LinkCableHelp: ; 5dc29 (17:5c29) ld a, [wCurrentMenuItem] cp $3 jr z, .asm_5dc93 ; 0x5dc7b $16 - ld hl, $d730 + ld hl, wd730 res 6, [hl] ld hl, LinkCableInfoTexts add a @@ -144,7 +142,7 @@ LinkCableHelp: ; 5dc29 (17:5c29) call PrintText jp .asm_5c51 .asm_5dc93 - ld hl, $d730 + ld hl, wd730 res 6, [hl] call LoadScreenTilesFromBuffer1 jp TextScriptEnd @@ -198,15 +196,15 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced) ld a, $1 ld [wTopMenuItemX], a .asm_5dd15 - ld hl, $d730 + ld hl, wd730 set 6, [hl] ld hl, wTileMap ld bc, $060a call TextBoxBorder - ld hl, $c3c9 + ld hl, wTileMap + $29 ld de, StatusAilmentText1 call PlaceString - ld hl, $c3ce + ld hl, wTileMap + $2e ld de, StatusAilmentText2 call PlaceString ld hl, ViridianSchoolBlackboardText2 @@ -244,7 +242,7 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced) add b cp $5 jr z, .exitBlackboard - ld hl, $d730 + ld hl, wd730 res 6, [hl] ld hl, ViridianBlackboardStatusPointers add a @@ -257,7 +255,7 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced) call PrintText jp .asm_5dd15 .exitBlackboard - ld hl, $d730 + ld hl, wd730 res 6, [hl] call LoadScreenTilesFromBuffer1 jp TextScriptEnd @@ -318,11 +316,11 @@ VermilionGymTrashText: ; 5ddf7 (17:5df7) GymTrashScript: ; 5ddfc (17:5dfc) call EnableAutoTextBoxDrawing - ld a, [wWhichTrade] ; $cd3d - ld [$cd5b], a + ld a, [wWhichTrade] ; wWhichTrade + ld [wcd5b], a ; Don't do the trash can puzzle if it's already been done. - ld a, [$d773] + ld a, [wd773] bit 0, a jr z, .ok @@ -333,9 +331,9 @@ GymTrashScript: ; 5ddfc (17:5dfc) bit 1, a jr nz, .trySecondLock - ld a, [$d743] + ld a, [wd743] ld b, a - ld a, [$cd5b] + ld a, [wcd5b] cp b jr z, .openFirstLock @@ -344,11 +342,11 @@ GymTrashScript: ; 5ddfc (17:5dfc) .openFirstLock ; Next can is trying for the second switch. - ld hl, $d773 + ld hl, wd773 set 1, [hl] ld hl, GymTrashCans ; $5e7d - ld a, [$cd5b] + ld a, [wcd5b] ; * 5 ld b, a add a @@ -362,7 +360,7 @@ GymTrashScript: ; 5ddfc (17:5dfc) ld [$ffdb], a push hl - call GenRandom + call Random swap a ld b, a ld a, [$ffdb] @@ -375,34 +373,34 @@ GymTrashScript: ; 5ddfc (17:5dfc) add hl, de ld a, [hl] and $f - ld [$d744], a + ld [wd744], a ld a, $3b ; DisplayTextID $3b = VermilionGymTrashSuccesText1 (first lock opened!) jr .done .trySecondLock - ld a, [$d744] + ld a, [wd744] ld b, a - ld a, [$cd5b] + ld a, [wcd5b] cp b jr z, .openSecondLock ; Reset the cans. - ld hl, $d773 + ld hl, wd773 res 1, [hl] - call GenRandom + call Random and $e - ld [$d743], a + ld [wd743], a ld a, $3e ; DisplayTextID $3e = VermilionGymTrashFailText (locks reset!) jr .done .openSecondLock ; Completed the trash can puzzle. - ld hl, $d773 + ld hl, wd773 set 0, [hl] - ld hl, $d126 + ld hl, wd126 set 6, [hl] ld a, $3d ; DisplayTextID $3d = VermilionGymTrashSuccesText3 (2nd lock opened!) diff --git a/engine/hidden_object_functions18.asm b/engine/hidden_object_functions18.asm index 4bbaaa8a..5ccb43c2 100755 --- a/engine/hidden_object_functions18.asm +++ b/engine/hidden_object_functions18.asm @@ -3,7 +3,7 @@ GymStatues: ; 62419 (18:6419) ; if in a gym and don’t have the corresponding badge, a = $C and jp PrintPredefTextID ; else ret call EnableAutoTextBoxDrawing - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $4 ret nz ld hl, .BadgeFlags @@ -19,7 +19,7 @@ GymStatues: ; 62419 (18:6419) jr .asm_62429 ; 0x62431 $f6 .asm_62433 ld b, [hl] - ld a, [$d72a] + ld a, [wd72a] and b cp b ld a, $d @@ -64,7 +64,7 @@ PrintBenchGuyText: ; 6245d (18:645d) .asm_62472 ld a, [hli] ld b, a - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp b jr nz, .asm_62467 ld a, [hl] @@ -140,7 +140,7 @@ CinnabarIslandPokecenterBenchGuyText: ; 624df (18:64df) SaffronCityPokecenterBenchGuyText: ; 624e4 (18:64e4) db $8 ; asm - ld a, [$d838] + ld a, [wd838] bit 7, a ld hl, SaffronCityPokecenterBenchGuyText2 jr nz, .asm_624f2 ; 0x624ed $3 @@ -176,12 +176,12 @@ BookcaseText: ; 62511 (18:6511) db "@" OpenPokemonCenterPC: ; 62516 (18:6516) - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $4 ; check to see if player is facing up ret nz call EnableAutoTextBoxDrawing ld a, $1 - ld [$cf0c], a + ld [wcf0c], a ld a, $1f ; PredefText1f jp PrintPredefTextID diff --git a/engine/hidden_object_functions3.asm b/engine/hidden_object_functions3.asm index d7f80d3d..e613df2e 100755 --- a/engine/hidden_object_functions3.asm +++ b/engine/hidden_object_functions3.asm @@ -1,12 +1,11 @@ ; prints text for bookshelves in buildings without sign events PrintBookshelfText: ; fb50 (3:7b50) - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $4 jr nz, .asm_fb7f - ld a, [W_CURMAPTILESET] ; $d367 + ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET ld b, a - FuncCoord 8, 7 ; $c434 - ld a, [Coord] + aCoord 8, 7 ld c, a ld hl, BookshelfTileIDs ; $7b8b .asm_fb62 @@ -90,7 +89,7 @@ BookOrSculptureText: ; fbe8 (3:7be8) ld a, [W_CURMAPTILESET] cp MANSION ; Celadon Mansion tileset jr nz, .asm_fbfd - ld a, [$c420] + ld a, [wTileMap + $80] cp $38 jr nz, .asm_fbfd ld hl, DiglettSculptureText @@ -115,8 +114,8 @@ TownMapText: ; fc12 (3:7c12) db $06 db $08 ; asm ld a, $1 - ld [$cc3c], a - ld hl, $d730 + ld [wcc3c], a + ld hl, wd730 set 6, [hl] call GBPalWhiteOutWithDelay3 xor a @@ -125,7 +124,7 @@ TownMapText: ; fc12 (3:7c12) ld [H_AUTOBGTRANSFERENABLED], a call LoadFontTilePatterns callba DisplayTownMap - ld hl, $d730 + ld hl, wd730 res 6, [hl] ld de, TextScriptEnd push de diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm index 858d664f..848f6f3d 100755 --- a/engine/hidden_object_functions7.asm +++ b/engine/hidden_object_functions7.asm @@ -21,7 +21,7 @@ DisplayOakLabRightPoster: ; 1e965 (7:6965) ld hl, wPokedexOwned ld b, wPokedexOwnedEnd - wPokedexOwned call CountSetBits - ld a, [$d11e] + ld a, [wd11e] cp $2 ld a, $6 ; SaveOptionText jr c, .asm_1e97b @@ -38,29 +38,29 @@ StrengthsAndWeaknessesText: ; 1e983 (7:6983) db "@" SafariZoneCheck: ; 1e988 (7:6988) - ld hl, $d790 + ld hl, wd790 bit 7, [hl] jr z, asm_1e9ab - ld a, [W_NUMSAFARIBALLS] ; $da47 + ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS and a jr z, asm_1e9b0 jr asm_1e9ab SafariZoneCheckSteps: ; 1e997 (7:6997) - ld a, [wSafariSteps] ; $d70d + ld a, [wSafariSteps] ; wd70d ld b, a - ld a, [wSafariSteps + 1] ; $d70e + ld a, [wSafariSteps + 1] ; wd70e ld c, a or b jr z, asm_1e9b0 dec bc ld a, b - ld [wSafariSteps], a ; $d70d + ld [wSafariSteps], a ; wd70d ld a, c - ld [wSafariSteps + 1], a ; $d70e + ld [wSafariSteps + 1], a ; wd70e asm_1e9ab: ; 1e9ab (7:69ab) xor a - ld [$da46], a + ld [wda46], a ret asm_1e9b0: ; 1e9b0 (7:69b0) call EnableAutoTextBoxDrawing @@ -72,35 +72,35 @@ asm_1e9b0: ; 1e9b0 (7:69b0) ld a, (SFX_02_5f - SFX_Headers_02) / 3 call PlayMusic .asm_1e9c2 - ld a, [$c02a] + ld a, [wc02a] cp $b9 jr nz, .asm_1e9c2 ld a, $d3 ld [H_DOWNARROWBLINKCNT2], a ; $ff8c call DisplayTextID xor a - ld [$d528], a + ld [wd528], a ld a, $9c ld [H_DOWNARROWBLINKCNT1], a ; $ff8b ld a, $3 - ld [$d42f], a + ld [wd42f], a ld a, $5 ld [W_SAFARIZONEENTRANCECURSCRIPT], a - ld hl, $d790 + ld hl, wd790 set 6, [hl] ld a, $1 - ld [$da46], a + ld [wda46], a ret PrintSafariGameOverText: ; 1e9ed (7:69ed) xor a - ld [wJoypadForbiddenButtonsMask], a + ld [wJoyIgnore], a ld hl, SafariGameOverText jp PrintText SafariGameOverText: ; 1e9f7 (7:69f7) db $08 ; asm - ld a, [W_NUMSAFARIBALLS] ; $da47 + ld a, [W_NUMSAFARIBALLS] ; W_NUMSAFARIBALLS and a jr z, .asm_1ea04 ld hl, TimesUpText @@ -119,7 +119,7 @@ GameOverText: ; 1ea12 (7:6a12) db "@" PrintCinnabarQuiz: ; 1ea17 (7:6a17) - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $4 ret nz call EnableAutoTextBoxDrawing @@ -129,8 +129,8 @@ PrintCinnabarQuiz: ; 1ea17 (7:6a17) CinnabarGymQuiz: ; 1ea25 (7:6a25) db $08 ; asm xor a - ld [$da38], a - ld a, [wWhichTrade] ; $cd3d + ld [wda38], a + ld a, [wWhichTrade] ; wWhichTrade push af and $f ld [$ffdb], a @@ -152,7 +152,7 @@ CinnabarGymQuiz: ; 1ea25 (7:6a25) ld l, a call PrintText ld a, $1 - ld [$cc3c], a + ld [wcc3c], a call CinnabarGymQuiz_1ea92 jp TextScriptEnd @@ -193,18 +193,17 @@ CinnabarQuizQuestionsText6: ; 1ea85 (7:6a85) db "@" CinnabarGymQuiz_1ea8a: ; 1ea8a (7:6a8a) - ld hl, $d79c - ld a, $10 - jp Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + ld hl, wd79c + predef_jump FlagActionPredef CinnabarGymQuiz_1ea92: ; 1ea92 (7:6a92) call YesNoChoice ld a, [$ffdc] ld c, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp c jr nz, .asm_1eab8 - ld hl, $d126 + ld hl, wd126 set 5, [hl] ld a, [$ffdb] ld [$ffe0], a @@ -226,15 +225,14 @@ CinnabarGymQuiz_1ea92: ; 1ea92 (7:6a92) add $2 ld c, a ld b, $2 - ld hl, $d79a - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + ld hl, wd79a + predef FlagActionPredef ld a, c and a ret nz ld a, [$ffdb] add $2 - ld [$da38], a + ld [wda38], a ret CinnabarGymQuizCorrectText: ; 1eae3 (7:6ae3) @@ -276,7 +274,7 @@ CinnabarGymQuiz_1eb0a: ; 1eb0a (7:6b0a) ld c, a inc hl ld a, [hl] - ld [$d12f], a + ld [wd12f], a push bc ld a, [$ffdb] ld [$ffe0], a @@ -286,15 +284,14 @@ CinnabarGymQuiz_1eb0a: ; 1eb0a (7:6b0a) ld a, c and a jr nz, .asm_1eb36 - ld a, [$d12f] + ld a, [wd12f] jr .asm_1eb38 .asm_1eb36 ld a, $e .asm_1eb38 pop bc - ld [$d09f], a - ld a, $17 - call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e)) + ld [wd09f], a + predef Func_ee9e ld hl, $ffdb dec [hl] jr nz, .asm_1eb0e @@ -322,10 +319,10 @@ MagazinesText: ; 1eb69 (7:6b69) BillsHousePC: ; 1eb6e (7:6b6e) call EnableAutoTextBoxDrawing - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $4 ret nz - ld a, [$d7f2] + ld a, [wd7f2] bit 7, a jr nz, .asm_1ebd2 bit 3, a @@ -337,7 +334,7 @@ BillsHousePC: ; 1eb6e (7:6b6e) jp PrintPredefTextID .asm_1eb8b ld a, $1 - ld [$cc3c], a + ld [wcc3c], a ld a, $2e call PrintPredefTextID ld c, $20 @@ -361,12 +358,12 @@ BillsHousePC: ; 1eb6e (7:6b6e) call PlaySound call WaitForSoundToFinish call Func_2307 - ld hl, $d7f2 + ld hl, wd7f2 set 3, [hl] ret .asm_1ebd2 ld a, $1 - ld [$cc3c], a + ld [wcc3c], a ld a, $2f call PrintPredefTextID ret @@ -380,7 +377,7 @@ BillsHouseInitiatedText: ; 1ebe2 (7:6be2) db $06 db $08 ; asm ld a, $ff - ld [$c0ee], a + ld [wc0ee], a call PlaySound ld c, $10 call DelayFrames @@ -397,25 +394,25 @@ BillsHousePokemonList: ; 1ec05 (7:6c05) ld hl, BillsHousePokemonListText1 call PrintText xor a - ld [$d07c], a - ld [$cc26], a - ld [$cc2a], a + ld [W_ANIMATIONID], a + ld [wCurrentMenuItem], a + ld [wLastMenuItem], a ld a, $3 - ld [$cc29], a + ld [wMenuWatchedKeys], a ld a, $4 - ld [$cc28], a + ld [wMaxMenuItem], a ld a, $2 - ld [$cc24], a + ld [wTopMenuItemY], a ld a, $1 - ld [$cc25], a + ld [wTopMenuItemX], a .asm_1ec2d - ld hl, $d730 + ld hl, wd730 set 6, [hl] ld hl, wTileMap ld b, $a ld c, $9 call TextBoxBorder - ld hl, $c3ca + ld hl, wTileMap + $2a ld de, BillsMonListText call PlaceString ld hl, BillsHousePokemonListText2 @@ -424,7 +421,7 @@ BillsHousePokemonList: ; 1ec05 (7:6c05) call HandleMenuInput bit 1, a jr nz, .asm_1ec74 - ld a, [$cc26] + ld a, [wCurrentMenuItem] add EEVEE cp EEVEE jr z, .asm_1ec6c @@ -440,7 +437,7 @@ BillsHousePokemonList: ; 1ec05 (7:6c05) call LoadScreenTilesFromBuffer2 jr .asm_1ec2d .asm_1ec74 - ld hl, $d730 + ld hl, wd730 res 6, [hl] call LoadScreenTilesFromBuffer2 jp TextScriptEnd @@ -461,7 +458,7 @@ BillsHousePokemonListText2: ; 1ecaa (7:6caa) db "@" DisplayOakLabEmailText: ; 1ecaf (7:6caf) - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $4 ret nz call EnableAutoTextBoxDrawing diff --git a/engine/hp_bar.asm b/engine/hp_bar.asm index 8ba52247..9ff9e3cf 100755 --- a/engine/hp_bar.asm +++ b/engine/hp_bar.asm @@ -1,9 +1,9 @@ -UpdateHPBar_LoadRegisters: ; f9dc (3:79dc) - call Load16BitRegisters +HPBarLength: ; f9dc (3:79dc) + call GetPredefRegisters ; calculates bc * 48 / de, the number of pixels the HP bar has ; the result is always at least 1 -UpdateHPBar_CalcNumberOfHPBarPixels: ; f9df (3:79df) +GetHPBarLength: ; f9df (3:79df) push hl xor a ld hl, H_MULTIPLICAND @@ -46,6 +46,7 @@ UpdateHPBar_CalcNumberOfHPBarPixels: ; f9df (3:79df) ; predef $48 UpdateHPBar: ; fa1d (3:7a1d) +UpdateHPBar2: push hl ld hl, wHPBarOldHP ld a, [hli] @@ -72,7 +73,7 @@ UpdateHPBar: ; fa1d (3:7a1d) ld a, $1 .HPdecrease ld [wHPBarDelta], a - call Load16BitRegisters + call GetPredefRegisters ld a, [wHPBarNewHP] ld e, a ld a, [wHPBarNewHP+1] @@ -202,13 +203,13 @@ UpdateHPBar_CalcHPDifference: ; fad7 (3:7ad7) UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5) push af push de - ld a, [wListMenuID] ; $cf94 + ld a, [wListMenuID] ; wListMenuID and a jr z, .asm_fb2d ld a, [wHPBarOldHP] - ld [$cef1], a + ld [wcef1], a ld a, [wHPBarOldHP+1] - ld [$cef0], a + ld [wcef0], a push hl ld a, [$fff6] bit 0, a @@ -225,7 +226,7 @@ UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5) ld [hli], a ld [hli], a pop hl - ld de, $cef0 + ld de, wcef0 ld bc, $203 call PrintNumber call DelayFrame @@ -254,12 +255,12 @@ UpdateHPBar_CalcOldNewHPBarPixels: ; fb30 (3:7b30) ld l, a push hl push de - call UpdateHPBar_CalcNumberOfHPBarPixels ; calc num pixels for old HP + call GetHPBarLength ; calc num pixels for old HP ld a, e pop de pop bc push af - call UpdateHPBar_CalcNumberOfHPBarPixels ; calc num pixels for new HP + call GetHPBarLength ; calc num pixels for new HP pop af ld d, e ld e, a diff --git a/engine/in_game_trades.asm b/engine/in_game_trades.asm index ebde5855..7f0b21c1 100755 --- a/engine/in_game_trades.asm +++ b/engine/in_game_trades.asm @@ -11,12 +11,12 @@ Predef54: ; 71ad9 (1c:5ad9) ld b,$0 add hl,bc ld a,[hli] - ld [$cd0f],a + ld [wcd0f],a ld a,[hli] - ld [$cd34],a + ld [wcd34],a ld a,[hli] push af - ld de,$cd29 + ld de,wcd29 ld bc,$000b call CopyData pop af @@ -26,33 +26,32 @@ Predef54: ; 71ad9 (1c:5ad9) add hl,hl add hl,de ld a,[hli] - ld [$cd10],a + ld [wcd10],a ld a,[hl] - ld [$cd11],a - ld a,[$cd0f] - ld de,$cd13 + ld [wcd11],a + ld a,[wcd0f] + ld de,wcd13 call Func_71b6a - ld a,[$cd34] - ld de,$cd1e + ld a,[wcd34] + ld de,wPlayerMonAccuracyMod call Func_71b6a - ld hl,$d737 + ld hl,wd737 ld a,[wWhichTrade] ld c,a ld b,$2 - ld a,$10 - call Predef + predef FlagActionPredef ld a,c and a ld a,$4 - ld [$cd12],a + ld [wcd12],a jr nz,.asm_99bca ; 0x71b36 $20 xor a - ld [$cd12],a + ld [wcd12],a call .asm_99bca ld a,$1 - ld [$cd12],a + ld [wcd12],a call YesNoChoice - ld a,[$cc26] + ld a,[wCurrentMenuItem] and a jr nz,.asm_99bca ; 0x71b4b $b call Func_71c07 @@ -60,7 +59,7 @@ Predef54: ; 71ad9 (1c:5ad9) ld hl, TradedForText call PrintText .asm_99bca ; 0x71b58 - ld hl,$cd12 + ld hl,wcd12 ld a,[hld] ld e,a ld d,$0 @@ -76,9 +75,9 @@ Predef54: ; 71ad9 (1c:5ad9) Func_71b6a: ; 71b6a (1c:5b6a) push de - ld [$d11e],a + ld [wd11e],a call GetMonName - ld hl,$cd6d + ld hl,wcd6d pop de ld bc,$b jp CopyData @@ -87,56 +86,54 @@ INCLUDE "data/trades.asm" Func_71c07: ; 71c07 (1c:5c07) xor a - ld [$d07d],a + ld [wd07d],a dec a - ld [$cfcb],a + ld [wcfcb],a call DisplayPartyMenu push af call Func_71ca2 pop af ld a,$1 jp c,.asm_c4bc2 - ld a,[$cd0f] + ld a,[wcd0f] ld b,a - ld a,[$cf91] + ld a,[wcf91] cp b ld a,$2 jr nz,.asm_c4bc2 ; 0x71c26 $75 ld a,[wWhichPokemon] - ld hl,$d18c + ld hl,wPartyMon1Level ld bc,$002c call AddNTimes ld a,[hl] - ld [$d127],a - ld hl,$d737 + ld [W_CURENEMYLVL],a + ld hl,wd737 ld a,[wWhichTrade] ld c,a ld b,$1 - ld a,$10 - call Predef + predef FlagActionPredef ld hl, ConnectCableText call PrintText ld a,[wWhichPokemon] push af - ld a,[$d127] + ld a,[W_CURENEMYLVL] push af call LoadHpBarAndStatusTilePatterns call Func_71cc1 - ld a,$38 - call Predef + predef Func_410e2 pop af - ld [$d127],a + ld [W_CURENEMYLVL],a pop af ld [wWhichPokemon],a - ld a,[$cd34] - ld [$cf91],a + ld a,[wcd34] + ld [wcf91],a xor a - ld [$cc49],a - ld [$cf95],a + ld [wcc49],a + ld [wcf95],a call RemovePokemon ld a,$80 - ld [$cc49],a - call AddPokemonToParty + ld [wcc49],a + call AddPartyMon call Func_71d19 callab EvolveTradeMon call ClearScreen @@ -148,7 +145,7 @@ Func_71c07: ; 71c07 (1c:5c07) .asm_c4bc2 ; 0x71c9d scf .asm_ee803 ; 0x71c9e - ld [$cd12],a + ld [wcd12],a ret Func_71ca2: ; 71ca2 (1c:5ca2) @@ -165,33 +162,33 @@ Func_71ca2: ; 71ca2 (1c:5ca2) jp Bankswitch Func_71cc1: ; 71cc1 (1c:5cc1) - ld hl, wWhichTrade ; $cd3d - ld a, [$cd0f] + ld hl, wWhichTrade ; wWhichTrade + ld a, [wcd0f] ld [hli], a - ld a, [$cd34] + ld a, [wcd34] ld [hl], a - ld hl, W_PARTYMON1OT ; $d273 + ld hl, wPartyMonOT ; wd273 ld bc, $b - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon call AddNTimes - ld de, $cd41 + ld de, wTrainerScreenX ld bc, $b call Func_71d11 ld hl, String_71d59 ; $5d59 - ld de, $cd4e + ld de, wcd4e call Func_71d11 - ld de, W_GRASSRATE ; $d887 + ld de, W_GRASSRATE ; W_GRASSRATE call Func_71d11 - ld hl, W_PARTYMON1_OTID ; $d177 + ld hl, wPartyMon1OTID ; wPartyMon1OTID ld bc, $2c - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon call AddNTimes - ld de, $cd4c + ld de, wcd4c ld bc, $2 call Func_71d11 - call GenRandom - ld hl, H_RAND1 ; $ffd3 - ld de, $cd59 + call Random + ld hl, hRandomAdd + ld de, wcd59 jp CopyData Func_71d11: ; 71d11 (1c:5d11) @@ -203,27 +200,27 @@ Func_71d11: ; 71d11 (1c:5d11) ret Func_71d19: ; 71d19 (1c:5d19) - ld hl, W_PARTYMON1NAME ; $d2b5 + ld hl, wPartyMonNicks ; wPartyMonNicks ld bc, $b call Func_71d4f - ld hl, $cd29 + ld hl, wcd29 ld bc, $b call CopyData - ld hl, W_PARTYMON1OT ; $d273 + ld hl, wPartyMonOT ; wd273 ld bc, $b call Func_71d4f ld hl, String_71d59 ; $5d59 ld bc, $b call CopyData - ld hl, W_PARTYMON1_OTID ; $d177 + ld hl, wPartyMon1OTID ; wPartyMon1OTID ld bc, $2c call Func_71d4f - ld hl, $cd59 + ld hl, wcd59 ld bc, $2 jp CopyData Func_71d4f: ; 71d4f (1c:5d4f) - ld a, [W_NUMINPARTY] ; $d163 + ld a, [wPartyCount] ; wPartyCount dec a call AddNTimes ld e, l diff --git a/engine/intro.asm b/engine/intro.asm index 89c344db..801324a5 100755 --- a/engine/intro.asm +++ b/engine/intro.asm @@ -1,6 +1,6 @@ PlayIntro: ; 41682 (10:5682) xor a - ld [H_CURRENTPRESSEDBUTTONS], a + ld [hJoyHeld], a inc a ld [H_AUTOBGTRANSFERENABLED], a call PlayShootingStar @@ -9,7 +9,7 @@ PlayIntro: ; 41682 (10:5682) xor a ld [$ffae], a ld [H_AUTOBGTRANSFERENABLED], a - call CleanLCD_OAM + call ClearSprites call DelayFrame ret @@ -38,7 +38,7 @@ PlayIntroScene: ; 4169d (10:569d) ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 call PlaySound xor a - ld [$d09f], a + ld [wd09f], a ld de, IntroNidorinoAnimation1 call AnimateIntroNidorino ; hop @@ -86,7 +86,7 @@ PlayIntroScene: ; 4169d (10:569d) ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 call PlaySound ld a, $24 - ld [$d09f], a + ld [wd09f], a ld de, IntroNidorinoAnimation3 call AnimateIntroNidorino ld c, $1e @@ -105,7 +105,7 @@ PlayIntroScene: ; 4169d (10:569d) ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 call PlaySound xor a - ld [$d09f], a + ld [wd09f], a ld de, IntroNidorinoAnimation4 ; $5931 call AnimateIntroNidorino ; hop @@ -118,7 +118,7 @@ PlayIntroScene: ; 4169d (10:569d) ret c ld a, $24 - ld [$d09f], a + ld [wd09f], a ld de, IntroNidorinoAnimation6 ; $5947 call AnimateIntroNidorino ld c, $1e @@ -129,7 +129,7 @@ PlayIntroScene: ; 4169d (10:569d) ld a, (SFX_1f_5e - SFX_Headers_1f) / 3 call PlaySound ld a, $48 - ld [$d09f], a + ld [wd09f], a ld de, IntroNidorinoAnimation7 ; $5950 jp AnimateIntroNidorino @@ -137,10 +137,10 @@ AnimateIntroNidorino: ; 41793 (10:5793) ld a, [de] cp $50 ret z - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 inc de ld a, [de] - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 push de ld c, $24 call Func_417ae @@ -152,13 +152,13 @@ AnimateIntroNidorino: ; 41793 (10:5793) Func_417ae: ; 417ae (10:57ae) ld hl, wOAMBuffer - ld a, [$d09f] + ld a, [wd09f] ld d, a .asm_417b5 - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 add [hl] ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 add [hl] ld [hli], a ld a, d @@ -174,14 +174,14 @@ Func_417c7: ; 417c7 (10:57c7) ld d, $0 .asm_417cc push bc - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 ld e, a .asm_417d1 ld a, e add $8 ld e, a ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 ld [hli], a ld a, d ld [hli], a @@ -190,22 +190,21 @@ Func_417c7: ; 417c7 (10:57c7) inc d dec c jr nz, .asm_417d1 - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 add $8 - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 pop bc dec b jr nz, .asm_417cc ret Func_417f0: ; 417f0 (10:57f0) - ld hl, $9c00 + ld hl, vBGMap1 ld bc, $240 jr asm_417fe Func_417f8: ; 417f8 (10:57f8) - FuncCoord 0, 4 ; $c3f0 - ld hl, Coord + hlCoord 0, 4 ld bc, $c8 asm_417fe: ; 417fe (10:57fe) ld [hl], $0 @@ -237,9 +236,9 @@ Func_4180e: ; 4180e (10:580e) .asm_4181d push de ld a, $2 - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 xor a - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 ld c, $24 call Func_417ae pop de @@ -259,38 +258,35 @@ Func_4180e: ; 4180e (10:580e) ret Func_4183f: ; 4183f (10:583f) - FuncCoord 13, 7 ; $c439 - ld hl, Coord + hlCoord 13, 7 Func_41842: ; 41842 (10:5842) ld c, $0 - ld a, $31 - jp Predef ; indirect jump to Func_79dda + predef_jump Func_79dda Func_41849: ; 41849 (10:5849) - ld a, $33 - call Predef ; indirect jump to Func_79869 + predef Func_79869 ld a, b jp PlaySound LoadIntroGraphics: ; 41852 (10:5852) ld hl, FightIntroBackMon ; $5a99 - ld de, $9000 + ld de, vChars2 ld bc, $600 ld a, BANK(FightIntroBackMon) call FarCopyData2 ld hl, GameFreakIntro ; $5959 - ld de, $9600 + ld de, vChars2 + $600 ld bc, $140 ld a, BANK(GameFreakIntro) call FarCopyData2 ld hl, GameFreakIntro ; $5959 - ld de, $8800 + ld de, vChars1 ld bc, $140 ld a, BANK(GameFreakIntro) call FarCopyData2 ld hl, FightIntroFrontMon ; $6099 - ld de, $8000 + ld de, vChars0 ld bc, $6c0 ld a, BANK(FightIntroFrontMon) jp FarCopyData2 @@ -306,7 +302,7 @@ PlayShootingStar: ; 4188a (10:588a) call ClearScreen call DisableLCD xor a - ld [W_CUROPPONENT], a ; $d059 + ld [W_CUROPPONENT], a ; wd059 call Func_418e9 call LoadIntroGraphics call EnableLCD @@ -322,14 +318,14 @@ PlayShootingStar: ; 4188a (10:588a) ld c, $28 call DelayFrames .asm_418d0 - ld a, Bank(Func_7d8ea) - ld [$c0ef], a - ld [$c0f0], a + ld a, BANK(Music_IntroBattle) + ld [wc0ef], a + ld [wc0f0], a ld a, MUSIC_INTRO_BATTLE - ld [$c0ee], a + ld [wc0ee], a call PlaySound call Func_417f8 - call CleanLCD_OAM + call ClearSprites jp Delay3 Func_418e9: ; 418e9 (10:58e9) @@ -337,14 +333,13 @@ Func_418e9: ; 418e9 (10:58e9) ld hl, wTileMap ld c, $50 call Func_41807 - FuncCoord 0, 14 ; $c4b8 - ld hl, Coord + hlCoord 0, 14 ld c, $50 call Func_41807 - ld hl, $9c00 + ld hl, vBGMap1 ld c, $80 call Func_41807 - ld hl, $9dc0 + ld hl, vBGMap1 + $1c0 ld c, $80 jp Func_41807 @@ -425,7 +420,7 @@ IntroNidorinoAnimation7: ; 41950 (10:5950) db $50 ; list terminator GameFreakIntro: ; 41959 (10:5959) - INCBIN "gfx/gamefreak_intro.h8.2bpp" + INCBIN "gfx/gamefreak_intro.2bpp" INCBIN "gfx/gamefreak_logo.2bpp" ds $10 ; blank tile diff --git a/engine/items/itemfinder.asm b/engine/items/itemfinder.asm index 4ec2a23f..d7e5b3ce 100755 --- a/engine/items/itemfinder.asm +++ b/engine/items/itemfinder.asm @@ -4,15 +4,14 @@ HiddenItemNear: ; 7481f (1d:481f) .asm_74824 ld de, $0003 ld a, [W_CURMAP] - call IsInArrayCummulativeCount + call IsInRestOfArray ret nc ; return if current map has no hidden items push bc push hl - ld hl, $d6f0 + ld hl, wd6f0 ld c, b ld b, $2 - ld a, $10 - call Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef FlagActionPredef ld a, c pop hl pop bc diff --git a/engine/items/items.asm b/engine/items/items.asm index e7f9cbe6..830f0dfc 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -1,7 +1,7 @@ UseItem_: ; d5c7 (3:55c7) ld a,1 - ld [$cd6a],a - ld a,[$cf91] ;contains item_ID + ld [wcd6a],a + ld a,[wcf91] ;contains item_ID cp a,HM_01 jp nc,ItemUseTMHM ld hl,ItemUsePtrTable @@ -109,7 +109,7 @@ ItemUseBall: ; d687 (3:5687) ld a,[W_BATTLETYPE] dec a jr z,.UseBall - ld a,[W_NUMINPARTY] ;is Party full? + ld a,[wPartyCount] ;is Party full? cp a,6 jr nz,.UseBall ld a,[W_NUMINBOX] ;is Box full? @@ -118,7 +118,7 @@ ItemUseBall: ; d687 (3:5687) .UseBall ;$56a7 ;ok, you can use a ball xor a - ld [$d11c],a + ld [wd11c],a ld a,[W_BATTLETYPE] cp a,2 ;SafariBattle jr nz,.skipSafariZoneCode @@ -129,7 +129,7 @@ ItemUseBall: ; d687 (3:5687) .skipSafariZoneCode ;$56b6 call GoPAL_SET_CF1C ld a,$43 - ld [$d11e],a + ld [wd11e],a call LoadScreenTilesFromBuffer1 ;restore screenBuffer from Backup ld hl,ItemUseText00 call PrintText @@ -141,7 +141,7 @@ ItemUseBall: ; d687 (3:5687) jr nz,.notOldManBattle .oldManBattle ld hl,W_GRASSRATE - ld de,W_PLAYERNAME + ld de,wPlayerName ld bc,11 call CopyData ; save the player's name in the Wild Monster data (part of the Cinnabar Island Missingno glitch) jp .BallSuccess ;$578b @@ -149,16 +149,16 @@ ItemUseBall: ; d687 (3:5687) ld a,[W_CURMAP] cp a,POKEMONTOWER_6 jr nz,.loop - ld a,[W_ENEMYMONID] + ld a,[wEnemyMonSpecies2] cp a,MAROWAK ld b,$10 jp z,.next12 ; if not fighting ghost Marowak, loop until a random number in the current ; pokeball's allowed range is found .loop ;$56fa - call GenRandom + call Random ld b,a - ld hl,$cf91 + ld hl,wcf91 ld a,[hl] cp a,MASTER_BALL jp z,.BallSuccess ;$578b @@ -178,7 +178,7 @@ ItemUseBall: ; d687 (3:5687) ; Frozen/Asleep pokemon are relatively even easier to catch ; for Frozen/Asleep pokemon, any random number from 0-24 ensures a catch. ; for the others, a random number from 0-11 ensures a catch. - ld a,[W_ENEMYMONSTATUS] ;status ailments + ld a,[wEnemyMonStatus] ;status ailments and a jr z,.noAilments and a, 1 << FRZ | SLP ;is frozen and/or asleep? @@ -194,7 +194,7 @@ ItemUseBall: ; d687 (3:5687) push bc ;save RANDOM number xor a ld [H_MULTIPLICAND],a - ld hl,W_ENEMYMONMAXHP + ld hl,wEnemyMonMaxHP ld a,[hli] ld [H_MULTIPLICAND + 1],a ld a,[hl] @@ -202,7 +202,7 @@ ItemUseBall: ; d687 (3:5687) ld a,255 ld [H_MULTIPLIER],a call Multiply ; MaxHP * 255 - ld a,[$cf91] + ld a,[wcf91] cp a,GREAT_BALL ld a,12 ;any other BallFactor jr nz,.next7 @@ -211,7 +211,7 @@ ItemUseBall: ; d687 (3:5687) ld [H_DIVISOR],a ld b,4 ; number of bytes in dividend call Divide - ld hl,W_ENEMYMONCURHP + ld hl,wEnemyMonHP ld a,[hli] ld b,a ld a,[hl] @@ -237,13 +237,13 @@ ItemUseBall: ; d687 (3:5687) ld [H_QUOTIENT + 3],a .next9 ;$5776 pop bc - ld a,[$d007] ;enemy: Catch Rate + ld a,[wd007] ;enemy: Catch Rate cp b jr c,.next10 ld a,[H_QUOTIENT + 2] and a jr nz,.BallSuccess ; if ((MaxHP * 255) / BallFactor) / (CurHP / 4) > 0x255, automatic success - call GenRandom + call Random ld b,a ld a,[H_QUOTIENT + 3] cp b @@ -252,16 +252,16 @@ ItemUseBall: ; d687 (3:5687) jr .BallSuccess2 .next10 ;$578d ld a,[H_QUOTIENT + 3] - ld [$d11e],a + ld [wd11e],a xor a ld [H_MULTIPLICAND],a ld [H_MULTIPLICAND + 1],a - ld a,[$d007] ;enemy: Catch Rate + ld a,[wd007] ;enemy: Catch Rate ld [H_MULTIPLICAND + 2],a ld a,100 ld [H_MULTIPLIER],a call Multiply ; CatchRate * 100 - ld a,[$cf91] + ld a,[wcf91] ld b,255 cp a,POKE_BALL jr z,.next11 @@ -280,14 +280,14 @@ ItemUseBall: ; d687 (3:5687) and a ld b,$63 jr nz,.next12 - ld a,[$d11e] + ld a,[wd11e] ld [H_MULTIPLIER],a call Multiply ld a,255 ld [H_DIVISOR],a ld b,4 call Divide - ld a,[W_ENEMYMONSTATUS] ;status ailments + ld a,[wEnemyMonStatus] ;status ailments and a jr z,.next13 and a, 1 << FRZ | SLP @@ -312,7 +312,7 @@ ItemUseBall: ; d687 (3:5687) ld b,$63 .next12 ;$5801 ld a,b - ld [$d11e],a + ld [wd11e],a .BallSuccess2 ;$5805 ld c,20 call DelayFrames @@ -320,19 +320,18 @@ ItemUseBall: ; d687 (3:5687) ld [W_ANIMATIONID],a xor a ld [$fff3],a - ld [$cc5b],a - ld [$d05b],a + ld [wcc5b],a + ld [wd05b],a ld a,[wWhichPokemon] push af - ld a,[$cf91] + ld a,[wcf91] push af - ld a,$08 ;probably animations - call Predef + predef MoveAnimation pop af - ld [$cf91],a + ld [wcf91],a pop af ld [wWhichPokemon],a - ld a,[$d11e] + ld a,[wd11e] cp a,$10 ld hl,ItemUseBallText00 jp z,.printText0 @@ -348,7 +347,7 @@ ItemUseBall: ; d687 (3:5687) cp a,$63 ld hl,ItemUseBallText04 jp z,.printText0 - ld hl,$cfe6 ;current HP + ld hl,wEnemyMonHP ;current HP ld a,[hli] push af ld a,[hli] @@ -357,29 +356,29 @@ ItemUseBall: ; d687 (3:5687) ld a,[hl] push af ;...and status ailments push hl - ld hl,$d069 + ld hl,W_ENEMYBATTSTATUS3 bit 3,[hl] jr z,.next15 ld a,$4c - ld [W_ENEMYMONID],a + ld [wEnemyMonSpecies2],a jr .next16 .next15 ;$5871 set 3,[hl] - ld hl,$cceb - ld a,[$cff1] + ld hl,wcceb + ld a,[wEnemyMonDVs] ld [hli],a - ld a,[$cff2] + ld a,[wEnemyMonDVs + 1] ld [hl],a .next16 ;$587e - ld a,[$cf91] + ld a,[wcf91] push af - ld a,[W_ENEMYMONID] - ld [$cf91],a - ld a,[$cff3] - ld [$d127],a + ld a,[wEnemyMonSpecies2] + ld [wcf91],a + ld a,[wEnemyMonLevel] + ld [W_CURENEMYLVL],a callab Func_3eb01 pop af - ld [$cf91],a + ld [wcf91],a pop hl pop af ld [hld],a @@ -388,56 +387,52 @@ ItemUseBall: ; d687 (3:5687) ld [hld],a pop af ld [hl],a - ld a,[$cfe5] ;enemy - ld [$d11c],a - ld [$cf91],a - ld [$d11e],a + ld a,[wEnemyMonSpecies] ;enemy + ld [wd11c],a + ld [wcf91],a + ld [wd11e],a ld a,[W_BATTLETYPE] dec a jr z,.printText1 ld hl,ItemUseBallText05 call PrintText - ld a,$3a ;convert order: Internal->Dex - call Predef - ld a,[$d11e] + predef IndexToPokedex + ld a,[wd11e] dec a ld c,a ld b,2 ld hl,wPokedexOwned ;Dex_own_flags (pokemon) - ld a,$10 - call Predef ;check Dex flag (own already or not) + predef FlagActionPredef ld a,c push af - ld a,[$d11e] + ld a,[wd11e] dec a ld c,a ld b,1 - ld a,$10 ;set Dex_own_flag? - call Predef + predef FlagActionPredef pop af and a jr nz,.checkParty ld hl,ItemUseBallText06 call PrintText - call CleanLCD_OAM - ld a,[$cfe5] ;caught mon_ID - ld [$d11e],a - ld a,$3d - call Predef + call ClearSprites + ld a,[wEnemyMonSpecies] ;caught mon_ID + ld [wd11e],a + predef ShowPokedexData .checkParty ;$58f4 - ld a,[W_NUMINPARTY] + ld a,[wPartyCount] cp a,6 ;is party full? jr z,.sendToBox xor a - ld [$cc49],a - call CleanLCD_OAM - call AddPokemonToParty ;add mon to Party + ld [wcc49],a + call ClearSprites + call AddPartyMon ;add mon to Party jr .End .sendToBox ;$5907 - call CleanLCD_OAM + call ClearSprites call Func_e7a4 ld hl,ItemUseBallText07 - ld a,[$d7f1] + ld a,[wd7f1] bit 0,a ;already met Bill? jr nz,.sendToBox2 ld hl,ItemUseBallText08 @@ -448,14 +443,14 @@ ItemUseBall: ; d687 (3:5687) ld hl,ItemUseBallText05 .printText0 ;$5922 call PrintText - call CleanLCD_OAM + call ClearSprites .End ;$5928 ld a,[W_BATTLETYPE] and a ret nz - ld hl,$d31d + ld hl,wNumBagItems inc a - ld [$cf96],a + ld [wcf96],a jp RemoveItemFromInventory ;remove ITEM (XXX) ItemUseBallText00: ; d937 (3:5937) ;"It dodged the thrown ball!" @@ -512,8 +507,8 @@ ItemUseBicycle: ; d977 (3:5977) ld a,[W_ISINBATTLE] and a jp nz,ItemUseNotTime - ld a,[$d700] - ld [$d11a],a + ld a,[wd700] + ld [wd11a],a cp a,2 ; is the player surfing? jp z,ItemUseNotTime dec a ; is player already bicycling? @@ -521,7 +516,7 @@ ItemUseBicycle: ; d977 (3:5977) .getOffBike call ItemUseReloadOverworldData xor a - ld [$d700],a ; change player state to walking + ld [wd700],a ; change player state to walking call Func_2307 ; play walking music ld hl,GotOffBicycleText jr .printText @@ -530,9 +525,9 @@ ItemUseBicycle: ; d977 (3:5977) jp nc,NoCyclingAllowedHere call ItemUseReloadOverworldData xor a ; no keys pressed - ld [H_CURRENTPRESSEDBUTTONS],a ; current joypad state + ld [hJoyHeld],a ; current joypad state inc a - ld [$d700],a ; change player state to bicycling + ld [wd700],a ; change player state to bicycling ld hl,GotOnBicycleText call Func_2307 ; play bike riding music .printText @@ -540,8 +535,8 @@ ItemUseBicycle: ; d977 (3:5977) ; used for Surf out-of-battle effect ItemUseSurfboard: ; d9b4 (3:59b4) - ld a,[$d700] - ld [$d11a],a + ld a,[wd700] + ld [wd11a],a cp a,2 ; is the player already surfing? jr z,.tryToStopSurfing .tryToSurf @@ -552,10 +547,10 @@ ItemUseSurfboard: ; d9b4 (3:59b4) jp c,SurfingAttemptFailed .surf call .makePlayerMoveForward - ld hl,$d730 + ld hl,wd730 set 7,[hl] ld a,2 - ld [$d700],a ; change player state to surfing + ld [wd700],a ; change player state to surfing call Func_2307 ; play surfing music ld hl,SurfingGotOnText jp PrintText @@ -571,11 +566,11 @@ ItemUseSurfboard: ; d9b4 (3:59b4) ld hl,TilePairCollisionsWater call CheckForTilePairCollisions jr c,.cannotStopSurfing - ld hl,$d530 ; pointer to list of passable tiles + ld hl,W_TILESETCOLLISIONPTR ; pointer to list of passable tiles ld a,[hli] ld h,[hl] ld l,a ; hl now points to passable tiles - ld a,[$cfc6] ; tile in front of the player + ld a,[wcfc6] ; tile in front of the player ld b,a .passableTileLoop ld a,[hli] @@ -588,17 +583,17 @@ ItemUseSurfboard: ; d9b4 (3:59b4) jp PrintText .stopSurfing call .makePlayerMoveForward - ld hl,$d730 + ld hl,wd730 set 7,[hl] xor a - ld [$d700],a ; change player state to walking + ld [wd700],a ; change player state to walking dec a - ld [wJoypadForbiddenButtonsMask],a + ld [wJoyIgnore],a call Func_2307 ; play walking music jp LoadWalkingPlayerSpriteGraphics ; uses a simulated button press to make the player move forward .makePlayerMoveForward - ld a,[$d52a] ; direction the player is going + ld a,[wd52a] ; direction the player is going bit 3,a ld b,%01000000 ; Up key jr nz,.storeSimulatedButtonPress @@ -611,11 +606,11 @@ ItemUseSurfboard: ; d9b4 (3:59b4) ld b,%00010000 ; Right key .storeSimulatedButtonPress ld a,b - ld [$ccd3],a ; base address of simulated button presses + ld [wccd3],a ; base address of simulated button presses xor a - ld [$cd39],a + ld [wcd39],a inc a - ld [$cd38],a ; index of current simulated button press + ld [wcd38],a ; index of current simulated button press ret SurfingGotOnText: ; da4c (3:5a4c) @@ -627,8 +622,7 @@ SurfingNoPlaceToGetOffText: ; da51 (3:5a51) db "@" ItemUsePokedex: ; da56 (3:5a56) - ld a,$29 - jp Predef + predef_jump ShowPokedexMenu ItemUseEvoStone: ; da5b (3:5a5b) ld a,[W_ISINBATTLE] @@ -636,38 +630,38 @@ ItemUseEvoStone: ; da5b (3:5a5b) jp nz,ItemUseNotTime ld a,[wWhichPokemon] push af - ld a,[$cf91] - ld [$d156],a + ld a,[wcf91] + ld [wd156],a push af ld a,$05 ; evolution stone party menu - ld [$d07d],a + ld [wd07d],a ld a,$ff - ld [$cfcb],a + ld [wcfcb],a call DisplayPartyMenu pop bc jr c,.canceledItemUse ld a,b - ld [$cf91],a + ld [wcf91],a ld a,$01 - ld [$ccd4],a + ld [wccd4],a ld a,(SFX_02_3e - SFX_Headers_02) / 3 call PlaySoundWaitForCurrent ; play sound call WaitForSoundToFinish ; wait for sound to end callab Func_3ad0e ; try to evolve pokemon - ld a,[$d121] + ld a,[wd121] and a jr z,.noEffect pop af ld [wWhichPokemon],a ld hl,wNumBagItems ld a,1 ; remove 1 stone - ld [$cf96],a + ld [wcf96],a jp RemoveItemFromInventory .noEffect call ItemUseNoEffect .canceledItemUse xor a - ld [$cd6a],a + ld [wcd6a],a pop af ret @@ -677,18 +671,18 @@ ItemUseVitamin: ; dab4 (3:5ab4) jp nz,ItemUseNotTime ItemUseMedicine: ; dabb (3:5abb) - ld a,[W_NUMINPARTY] + ld a,[wPartyCount] and a jp z,.emptyParty ld a,[wWhichPokemon] push af - ld a,[$cf91] + ld a,[wcf91] push af ld a,$01 - ld [$d07d],a ; item use party menu + ld [wd07d],a ; item use party menu ld a,$ff - ld [$cfcb],a - ld a,[$d152] + ld [wcfcb],a + ld a,[wd152] and a ; using Softboiled? jr z,.notUsingSoftboiled ; if using softboiled @@ -697,7 +691,7 @@ ItemUseMedicine: ; dabb (3:5abb) .emptyParty ld hl,.emptyPartyText xor a - ld [$cd6a],a ; item use failed + ld [wcd6a],a ; item use failed jp PrintText .emptyPartyText text "You don't have" @@ -707,21 +701,21 @@ ItemUseMedicine: ; dabb (3:5abb) call DisplayPartyMenu .getPartyMonDataAddress jp c,.canceledItemUse - ld hl,W_PARTYMON1DATA - ld bc,44 + ld hl,wPartyMons + ld bc,wPartyMon2 - wPartyMon1 ld a,[wWhichPokemon] call AddNTimes ld a,[wWhichPokemon] - ld [$cf06],a + ld [wcf06],a ld d,a - ld a,[$cf91] + ld a,[wcf91] ld e,a - ld [$d0b5],a + ld [wd0b5],a pop af - ld [$cf91],a + ld [wcf91],a pop af ld [wWhichPokemon],a - ld a,[$d152] + ld a,[wd152] and a ; using Softboiled? jr z,.checkItemType ; if using softboiled @@ -729,7 +723,7 @@ ItemUseMedicine: ; dabb (3:5abb) cp d ; is the pokemon trying to use softboiled on itself? jr z,ItemUseMedicine ; if so, force another choice .checkItemType - ld a,[$cf91] + ld a,[wcf91] cp a,REVIVE jr nc,.healHP ; if it's a Revive or Max Revive cp a,FULL_HEAL @@ -742,7 +736,7 @@ ItemUseMedicine: ; dabb (3:5abb) .cureStatusAilment ld bc,4 add hl,bc ; hl now points to status - ld a,[$cf91] + ld a,[wcf91] ld bc,$f008 cp a,ANTIDOTE jr z,.checkMonStatus @@ -767,24 +761,23 @@ ItemUseMedicine: ; dabb (3:5abb) xor a ld [hl],a ; remove the status ailment in the party data ld a,b - ld [$d07d],a ; the message to display for the item used + ld [wd07d],a ; the message to display for the item used ld a,[wPlayerMonNumber] cp d ; is pokemon the item was used on active in battle? jp nz,.doneHealing ; if it is active in battle xor a - ld [W_PLAYERMONSTATUS],a ; remove the status ailment in the in-battle pokemon data + ld [wBattleMonStatus],a ; remove the status ailment in the in-battle pokemon data push hl ld hl,W_PLAYERBATTSTATUS3 res 0,[hl] ; heal Toxic status pop hl ld bc,30 add hl,bc ; hl now points to party stats - ld de,W_PLAYERMONMAXHP + ld de,wBattleMonMaxHP ld bc,10 call CopyData ; copy party stats to in-battle stat data - ld a,$28 - call Predef + predef Func_3ed02 jp .doneHealing .healHP inc hl ; hl = address of current HP @@ -793,11 +786,11 @@ ItemUseMedicine: ; dabb (3:5abb) ld [wHPBarOldHP+1],a ld a,[hl] ld c,a - ld [wHPBarOldHP],a ; current HP stored at $ceeb (2 bytes, big-endian) + ld [wHPBarOldHP],a ; current HP stored at wHPBarOldHP (2 bytes, big-endian) or b jr nz,.notFainted .fainted - ld a,[$cf91] + ld a,[wcf91] cp a,REVIVE jr z,.updateInBattleFaintedData cp a,MAX_REVIVE @@ -810,28 +803,26 @@ ItemUseMedicine: ; dabb (3:5abb) push hl push de push bc - ld a,[$cf06] + ld a,[wcf06] ld c,a - ld hl,$ccf5 + ld hl,wccf5 ld b,$02 - ld a,$10 - call Predef + predef FlagActionPredef ld a,c and a jr z,.next - ld a,[$cf06] + ld a,[wcf06] ld c,a - ld hl,W_PLAYERMONSALIVEFLAGS + ld hl,wPartyAliveFlags ld b,$01 - ld a,$10 - call Predef + predef FlagActionPredef .next pop bc pop de pop hl jr .compareCurrentHPToMaxHP .notFainted - ld a,[$cf91] + ld a,[wcf91] cp a,REVIVE jp z,.healingItemNoEffect cp a,MAX_REVIVE @@ -851,7 +842,7 @@ ItemUseMedicine: ; dabb (3:5abb) pop hl jr nz,.notFullHP .fullHP ; if the pokemon's current HP equals its max HP - ld a,[$cf91] + ld a,[wcf91] cp a,FULL_RESTORE jp nz,.healingItemNoEffect inc hl @@ -860,15 +851,15 @@ ItemUseMedicine: ; dabb (3:5abb) and a ; does the pokemon have a status ailment? jp z,.healingItemNoEffect ld a,FULL_HEAL - ld [$cf91],a + ld [wcf91],a dec hl dec hl dec hl jp .cureStatusAilment .notFullHP ; if the pokemon's current HP doesn't equal its max HP xor a - ld [$d083],a - ld [$c02a],a + ld [wd083],a + ld [wc02a],a push hl push de ld bc,32 @@ -876,8 +867,8 @@ ItemUseMedicine: ; dabb (3:5abb) ld a,[hli] ld [wHPBarMaxHP+1],a ld a,[hl] - ld [wHPBarMaxHP],a ; max HP stored at $cee9 (2 bytes, big-endian) - ld a,[$d152] + ld [wHPBarMaxHP],a ; max HP stored at wHPBarMaxHP (2 bytes, big-endian) + ld a,[wd152] and a ; using Softboiled? jp z,.notUsingSoftboiled2 ; if using softboiled @@ -890,12 +881,12 @@ ItemUseMedicine: ; dabb (3:5abb) push af ld a,[hl] push af - ld hl,W_PARTYMON1_MAXHP + ld hl,wPartyMon1MaxHP ld a,[wWhichPokemon] - ld bc,44 + ld bc,wPartyMon2 - wPartyMon1 call AddNTimes ld a,[hli] - ld [$ceea],a + ld [wHPBarMaxHP + 1],a ld [H_DIVIDEND],a ld a,[hl] ld [wHPBarMaxHP],a @@ -904,7 +895,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld [H_DIVISOR],a ld b,2 ; number of bytes call Divide ; get 1/5 of max HP of pokemon that used Softboiled - ld bc,-33 + ld bc,wPartyMon1HP - wPartyMon1MaxHP add hl,bc ; hl now points to LSB of current HP of pokemon that used Softboiled ; subtract 1/5 of max HP from current HP of pokemon that used Softboiled ld a,[H_QUOTIENT + 3] @@ -922,8 +913,7 @@ ItemUseMedicine: ; dabb (3:5abb) sbc b ld [hl],a ld [wHPBarNewHP+1],a - FuncCoord 4, 1 ; $c3b8 - ld hl,Coord + hlCoord 4, 1 ld a,[wWhichPokemon] ld bc,2 * 20 call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled @@ -933,15 +923,14 @@ ItemUseMedicine: ; dabb (3:5abb) set 0,a ld [$fff6],a ld a,$02 - ld [$cf94],a - ld a,$48 - call Predef ; animate HP bar decrease of pokemon that used Softboiled + ld [wListMenuID],a + predef UpdateHPBar2 ; animate HP bar decrease of pokemon that used Softboiled ld a,[$fff6] res 0,a ld [$fff6],a pop af ld b,a ; store heal amount (1/5 of max HP) - ld hl,$ceec + ld hl,wHPBarOldHP + 1 pop af ld [hld],a pop af @@ -952,7 +941,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld [hl],a jr .addHealAmount .notUsingSoftboiled2 - ld a,[$cf91] + ld a,[wcf91] cp a,SODA_POP ld b,60 ; Soda Pop heal amount jr z,.addHealAmount @@ -979,7 +968,7 @@ ItemUseMedicine: ; dabb (3:5abb) jr nc,.noCarry inc [hl] ld a,[hl] - ld [$ceee],a + ld [wHPBarNewHP + 1],a .noCarry push de inc hl @@ -987,7 +976,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld e,l ; de now points to current HP ld hl,33 add hl,de ; hl now points to max HP - ld a,[$cf91] + ld a,[wcf91] cp a,REVIVE jr z,.setCurrentHPToHalfMaxHP ld a,[hld] @@ -999,7 +988,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld a,[de] sbc b jr nc,.setCurrentHPToMaxHp ; if current HP exceeds max HP after healing - ld a,[$cf91] + ld a,[wcf91] cp a,HYPER_POTION jr c,.setCurrentHPToMaxHp ; if using a Full Restore or Max Potion cp a,MAX_REVIVE @@ -1029,7 +1018,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld [wHPBarNewHP],a dec de .doneHealingPartyHP ; done updating the pokemon's current HP in the party data structure - ld a,[$cf91] + ld a,[wcf91] cp a,FULL_RESTORE jr nz,.updateInBattleData ld bc,-31 @@ -1045,16 +1034,16 @@ ItemUseMedicine: ; dabb (3:5abb) jr nz,.calculateHPBarCoords ; copy party HP to in-battle HP ld a,[hli] - ld [W_PLAYERMONCURHP],a + ld [wBattleMonHP],a ld a,[hld] - ld [W_PLAYERMONCURHP + 1],a - ld a,[$cf91] + ld [wBattleMonHP + 1],a + ld a,[wcf91] cp a,FULL_RESTORE jr nz,.calculateHPBarCoords xor a - ld [W_PLAYERMONSTATUS],a ; remove the status ailment in the in-battle pokemon data + ld [wBattleMonStatus],a ; remove the status ailment in the in-battle pokemon data .calculateHPBarCoords - ld hl,$c390 + ld hl,wOAMBuffer + $90 ld bc,2 * 20 inc d .calculateHPBarCoordsLoop @@ -1066,14 +1055,14 @@ ItemUseMedicine: ; dabb (3:5abb) call ItemUseNoEffect jp .done .doneHealing - ld a,[$d152] + ld a,[wd152] and a ; using Softboiled? jr nz,.skipRemovingItem ; no item to remove if using Softboiled push hl call RemoveUsedItem pop hl .skipRemovingItem - ld a,[$cf91] + ld a,[wcf91] cp a,FULL_RESTORE jr c,.playStatusAilmentCuringSound cp a,FULL_HEAL @@ -1084,21 +1073,20 @@ ItemUseMedicine: ; dabb (3:5abb) set 0,a ld [$fff6],a ld a,$02 - ld [$cf94],a - ld a,$48 - call Predef ; animate the HP bar lengthening + ld [wListMenuID],a + predef UpdateHPBar2 ; animate the HP bar lengthening ld a,[$fff6] res 0,a ld [$fff6],a ld a,$f7 ; revived message - ld [$d07d],a - ld a,[$cf91] + ld [wd07d],a + ld a,[wcf91] cp a,REVIVE jr z,.showHealingItemMessage cp a,MAX_REVIVE jr z,.showHealingItemMessage ld a,$f5 ; standard HP healed message - ld [$d07d],a + ld [wd07d],a jr .showHealingItemMessage .playStatusAilmentCuringSound ld a,(SFX_02_3e - SFX_Headers_02) / 3 ; status ailment curing sound @@ -1108,7 +1096,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld [H_AUTOBGTRANSFERENABLED],a call ClearScreen dec a - ld [$cfcb],a + ld [wcfcb],a call RedrawPartyMenu ; redraws the party menu and displays the message ld a,1 ld [H_AUTOBGTRANSFERENABLED],a @@ -1118,11 +1106,11 @@ ItemUseMedicine: ; dabb (3:5abb) jr .done .canceledItemUse xor a - ld [$cd6a],a ; item use failed + ld [wcd6a],a ; item use failed pop af pop af .done - ld a,[$d152] + ld a,[wd152] and a ; using Softboiled? ret nz ; if so, return call GBPalWhiteOut @@ -1134,20 +1122,20 @@ ItemUseMedicine: ; dabb (3:5abb) .useVitamin push hl ld a,[hl] - ld [$d0b5],a - ld [$d11e],a + ld [wd0b5],a + ld [wd11e],a ld bc,33 add hl,bc ; hl now points to level ld a,[hl] ; a = level - ld [$d127],a ; store level + ld [W_CURENEMYLVL],a ; store level call GetMonHeader push de ld a,d - ld hl,W_PARTYMON1NAME + ld hl,wPartyMonNicks call GetPartyMonName pop de pop hl - ld a,[$cf91] + ld a,[wcf91] cp a,RARE_CANDY jp z,.useRareCandy push hl @@ -1173,7 +1161,7 @@ ItemUseMedicine: ; dabb (3:5abb) pop hl call .recalculateStats ld hl,VitaminText - ld a,[$cf91] + ld a,[wcf91] sub a,HP_UP - 1 ld c,a .statNameLoop ; loop to get the address of the name of the stat the vitamin increases @@ -1187,9 +1175,9 @@ ItemUseMedicine: ; dabb (3:5abb) jr nz,.statNameInnerLoop jr .statNameLoop .gotStatName - ld de,$cf4b + ld de,wcf4b ld bc,10 - call CopyData ; copy the stat's name to $cf4b + call CopyData ; copy the stat's name to wcf4b ld a,(SFX_02_3e - SFX_Headers_02) / 3 call PlaySound ; play sound ld hl,VitaminStatRoseText @@ -1214,11 +1202,11 @@ ItemUseMedicine: ; dabb (3:5abb) ld bc,33 add hl,bc ; hl now points to level ld a,[hl] ; a = level - cp a,100 + cp a, MAX_LEVEL jr z,.vitaminNoEffect ; can't raise level above 100 inc a ld [hl],a ; store incremented level - ld [$d127],a + ld [W_CURENEMYLVL],a push hl push de ld d,a @@ -1237,7 +1225,7 @@ ItemUseMedicine: ; dabb (3:5abb) pop hl ld a,[wWhichPokemon] push af - ld a,[$cf91] + ld a,[wcf91] push af push de push hl @@ -1270,30 +1258,29 @@ ItemUseMedicine: ; dabb (3:5abb) adc b ld [hl],a ld a,$f8 ; level up message - ld [$d07d],a + ld [wd07d],a call RedrawPartyMenu pop de ld a,d ld [wWhichPokemon],a ld a,e - ld [$d11e],a + ld [wd11e],a xor a - ld [$cc49],a ; load from player's party + ld [wcc49],a ; load from player's party call LoadMonData ld d,$01 callab PrintStatsBox ; display new stats text box call WaitForTextScrollButtonPress ; wait for button press xor a - ld [$cc49],a - ld a,$1a - call Predef ; learn level up move, if any + ld [wcc49],a + predef Func_3af5b ; learn level up move, if any xor a - ld [$ccd4],a + ld [wccd4],a callab Func_3ad0e ; evolve pokemon, if appropriate ld a,$01 - ld [$cfcb],a + ld [wcfcb],a pop af - ld [$cf91],a + ld [wcf91],a pop af ld [wWhichPokemon],a jp RemoveUsedItem @@ -1316,17 +1303,17 @@ VitaminText: ; df2e (3:5f2e) ItemUseBait: ; df52 (3:5f52) ld hl,ThrewBaitText call PrintText - ld hl,$d007 ; catch rate + ld hl,wd007 ; catch rate srl [hl] ; halve catch rate ld a,BAIT_ANIM - ld hl,$cce9 ; bait factor - ld de,$cce8 ; escape factor + ld hl,wcce9 ; bait factor + ld de,wcce8 ; escape factor jr BaitRockCommon ItemUseRock: ; df67 (3:5f67) ld hl,ThrewRockText call PrintText - ld hl,$d007 ; catch rate + ld hl,wd007 ; catch rate ld a,[hl] add a ; double catch rate jr nc,.noCarry @@ -1334,17 +1321,17 @@ ItemUseRock: ; df67 (3:5f67) .noCarry ld [hl],a ld a,ROCK_ANIM - ld hl,$cce8 ; escape factor - ld de,$cce9 ; bait factor + ld hl,wcce8 ; escape factor + ld de,wcce9 ; bait factor BaitRockCommon: ; df7f (3:5f7f) ld [W_ANIMATIONID],a xor a - ld [$cc5b],a + ld [wcc5b],a ld [H_WHOSETURN],a ld [de],a ; zero escape factor (for bait), zero bait factor (for rock) .randomLoop ; loop until a random number less than 5 is generated - call GenRandom + call Random and a,7 cp a,5 jr nc,.randomLoop @@ -1356,8 +1343,7 @@ BaitRockCommon: ; df7f (3:5f7f) ld a,$ff .noCarry ld [hl],a - ld a,$08 - call Predef ; do animation + predef MoveAnimation ; do animation ld c,70 jp DelayFrames @@ -1386,20 +1372,20 @@ ItemUseEscapeRope: ; dfaf (3:5faf) jr z,.notUsable cp b jr nz,.loop - ld hl,$d732 + ld hl,wd732 set 3,[hl] set 6,[hl] - ld hl,$d72e + ld hl,wd72e res 4,[hl] - ld hl,$d790 + ld hl,wd790 res 7,[hl] ; unset Safari Zone bit xor a - ld [$da47],a + ld [W_NUMSAFARIBALLS],a ld [W_SAFARIZONEENTRANCECURSCRIPT],a inc a - ld [$d078],a - ld [$cd6a],a ; item used - ld a,[$d152] + ld [wd078],a + ld [wcd6a],a ; item used + ld a,[wd152] and a ; using Dig? ret nz ; if so, return call ItemUseReloadOverworldData @@ -1421,7 +1407,7 @@ ItemUseRepelCommon: ; e005 (3:6005) and a jp nz,ItemUseNotTime ld a,b - ld [$d0db],a + ld [wd0db],a jp PrintItemUseTextAndRemoveItem ; handles X Accuracy item @@ -1437,7 +1423,7 @@ ItemUseXAccuracy: ; e013 (3:6013) ; The Card Key is handled in a different way. ItemUseCardKey: ; e022 (3:6022) xor a - ld [$d71f],a + ld [wd71f],a call Func_c586 ld a,[Func_c586] ; $4586 cp a,$18 @@ -1469,7 +1455,7 @@ ItemUseCardKey: ; e022 (3:6022) cp e jr nz,.nextEntry3 ld a,[hl] - ld [$d71f],a + ld [wd71f],a jr .done .nextEntry1 inc hl @@ -1481,7 +1467,7 @@ ItemUseCardKey: ; e022 (3:6022) .done ld hl,ItemUseText00 call PrintText - ld hl,$d728 + ld hl,wd728 set 7,[hl] ret @@ -1531,7 +1517,7 @@ ItemUsePokedoll: ; e0cd (3:60cd) dec a jp nz,ItemUseNotTime ld a,$01 - ld [$d078],a + ld [wd078],a jp PrintItemUseTextAndRemoveItem ItemUseGuardSpec: ; e0dc (3:60dc) @@ -1564,7 +1550,7 @@ ItemUseXStat: ; e104 (3:6104) jr nz,.inBattle call ItemUseNotTime ld a,2 - ld [$cd6a],a ; item not used + ld [wcd6a],a ; item not used ret .inBattle ld hl,W_PLAYERMOVENUM @@ -1573,7 +1559,7 @@ ItemUseXStat: ; e104 (3:6104) ld a,[hl] push af ; save [W_PLAYERMOVEEFFECT] push hl - ld a,[$cf91] + ld a,[wcf91] sub a,X_ATTACK - ATTACK_UP1_EFFECT ld [hl],a ; store player move effect call PrintItemUseTextAndRemoveItem @@ -1600,7 +1586,7 @@ ItemUsePokeflute: ; e140 (3:6140) ld a,[W_CURMAP] cp a,ROUTE_12 jr nz,.notRoute12 - ld a,[$d7d8] + ld a,[wd7d8] bit 7,a ; has the player beaten Route 12 Snorlax yet? jr nz,.noSnorlaxToWakeUp ; if the player hasn't beaten Route 12 Snorlax @@ -1609,13 +1595,13 @@ ItemUsePokeflute: ; e140 (3:6140) jr nc,.noSnorlaxToWakeUp ld hl,PlayedFluteHadEffectText call PrintText - ld hl,$d7d8 + ld hl,wd7d8 set 6,[hl] ; trigger Snorlax fight (handled by map script) ret .notRoute12 cp a,ROUTE_16 jr nz,.noSnorlaxToWakeUp - ld a,[$d7e0] + ld a,[wd7e0] bit 1,a ; has the player beaten Route 16 Snorlax yet? jr nz,.noSnorlaxToWakeUp ; if the player hasn't beaten Route 16 Snorlax @@ -1624,7 +1610,7 @@ ItemUsePokeflute: ; e140 (3:6140) jr nc,.noSnorlaxToWakeUp ld hl,PlayedFluteHadEffectText call PrintText - ld hl,$d7e0 + ld hl,wd7e0 set 0,[hl] ; trigger Snorlax fight (handled by map script) ret .noSnorlaxToWakeUp @@ -1632,40 +1618,40 @@ ItemUsePokeflute: ; e140 (3:6140) jp PrintText .inBattle xor a - ld [$cd3d],a ; initialize variable that indicates if any pokemon were woken up to zero + ld [wWhichTrade],a ; initialize variable that indicates if any pokemon were woken up to zero ld b,~SLP & $FF - ld hl,W_PARTYMON1_STATUS + ld hl,wPartyMon1Status call WakeUpEntireParty ld a,[W_ISINBATTLE] dec a ; is it a trainer battle? jr z,.skipWakingUpEnemyParty ; if it's a trainer battle - ld hl,$d8a8 ; enemy party pokemon 1 status + ld hl,wEnemyMon1Status call WakeUpEntireParty .skipWakingUpEnemyParty - ld hl,W_PLAYERMONSTATUS + ld hl,wBattleMonStatus ld a,[hl] and b ; remove Sleep status ld [hl],a - ld hl,W_ENEMYMONSTATUS + ld hl,wEnemyMonStatus ld a,[hl] and b ; remove Sleep status ld [hl],a call LoadScreenTilesFromBuffer2 ; restore saved screen - ld a,[$cd3d] + ld a,[wWhichTrade] and a ; were any pokemon asleep before playing the flute? ld hl,PlayedFluteNoEffectText jp z,PrintText ; if no pokemon were asleep ; if some pokemon were asleep ld hl,PlayedFluteHadEffectText call PrintText - ld a,[$d083] + ld a,[wd083] and a,$80 jr nz,.skipMusic call WaitForSoundToFinish ; wait for sound to end callba Music_PokeFluteInBattle ; play in-battle pokeflute music .musicWaitLoop ; wait for music to finish playing - ld a,[$c02c] + ld a,[wc02c] and a ; music off? jr nz,.musicWaitLoop .skipMusic @@ -1676,9 +1662,9 @@ ItemUsePokeflute: ; e140 (3:6140) ; INPUT: ; hl must point to status of first pokemon in party (player's or enemy's) ; b must equal ~SLP -; [$cd3d] should be initialized to 0 +; [wWhichTrade] should be initialized to 0 ; OUTPUT: -; [$cd3d]: set to 1 if any pokemon were asleep +; [wWhichTrade]: set to 1 if any pokemon were asleep WakeUpEntireParty: ; e1e5 (3:61e5) ld de,44 ld c,6 @@ -1688,7 +1674,7 @@ WakeUpEntireParty: ; e1e5 (3:61e5) and a,SLP ; is pokemon asleep? jr z,.notAsleep ld a,1 - ld [$cd3d],a ; indicate that a pokemon had to be woken up + ld [wWhichTrade],a ; indicate that a pokemon had to be woken up .notAsleep pop af and b ; remove Sleep status @@ -1738,7 +1724,7 @@ PlayedFluteHadEffectText: ; e215 (3:6215) ld c, BANK(SFX_02_5e) call PlayMusic ; play music .musicWaitLoop ; wait for music to finish playing - ld a,[$c028] + ld a,[wc028] cp a,$b8 jr z,.musicWaitLoop call Func_2307 ; start playing normal music again @@ -1767,7 +1753,7 @@ GoodRodCode: ; e259 (3:6259) call FishingInit jp c,ItemUseNotTime .RandomLoop - call GenRandom + call Random srl a jr c, .SetBite and %11 @@ -1797,20 +1783,20 @@ SuperRodCode: ; e283 (3:6283) call ReadSuperRodData ; 0xe8ea ld a, e RodResponse: ; e28d (3:628d) - ld [$CD3D], a + ld [wWhichTrade], a dec a ; is there a bite? jr nz, .next ; if yes, store level and species data ld a, 1 - ld [$D05F], a + ld [W_MOVEMISSED], a ld a, b ; level ld [W_CURENEMYLVL], a ld a, c ; species ld [W_CUROPPONENT], a .next - ld hl, $D700 + ld hl, wd700 ld a, [hl] ; store the value in a push af push hl @@ -1832,7 +1818,7 @@ FishingInit: ; e2b4 (3:62b4) .notInBattle call IsNextTileShoreOrWater ret c - ld a,[$d700] + ld a,[wd700] cp a,2 ; Surfing? jr z,.surfing call ItemUseReloadOverworldData @@ -1887,45 +1873,45 @@ ItemUsePPUp: ; e317 (3:6317) ItemUsePPRestore: ; e31e (3:631e) ld a,[wWhichPokemon] push af - ld a,[$cf91] - ld [$cd3d],a + ld a,[wcf91] + ld [wWhichTrade],a .chooseMon xor a - ld [$cfcb],a + ld [wcfcb],a ld a,$01 ; item use party menu - ld [$d07d],a + ld [wd07d],a call DisplayPartyMenu jr nc,.chooseMove jp .itemNotUsed .chooseMove - ld a,[$cd3d] + ld a,[wWhichTrade] cp a,ELIXER jp nc,.useElixir ; if Elixir or Max Elixir ld a,$02 ld [wMoveMenuType],a ld hl,RaisePPWhichTechniqueText - ld a,[$cd3d] + ld a,[wWhichTrade] cp a,ETHER ; is it a PP Up? jr c,.printWhichTechniqueMessage ; if so, print the raise PP message ld hl,RestorePPWhichTechniqueText ; otherwise, print the restore PP message .printWhichTechniqueMessage call PrintText xor a - ld [$cc2e],a + ld [wPlayerMoveListIndex],a callab MoveSelectionMenu ; move selection menu ld a,0 - ld [$cc2e],a + ld [wPlayerMoveListIndex],a jr nz,.chooseMon - ld hl,W_PARTYMON1_MOVE1 + ld hl,wPartyMon1Moves ld bc,44 call GetSelectedMoveOffset push hl ld a,[hl] - ld [$d11e],a + ld [wd11e],a call GetMoveName - call CopyStringToCF4B ; copy name to $cf4b + call CopyStringToCF4B ; copy name to wcf4b pop hl - ld a,[$cd3d] + ld a,[wWhichTrade] cp a,ETHER jr nc,.useEther ; if Ether or Max Ether .usePPUp @@ -1942,7 +1928,7 @@ ItemUsePPRestore: ; e31e (3:631e) add a,1 << 6 ; increase PP Up count by 1 ld [hl],a ld a,1 ; 1 PP Up used - ld [$d11e],a + ld [wd11e],a call RestoreBonusPP ; add the bonus PP to current PP ld hl,PPIncreasedText call PrintText @@ -1958,10 +1944,10 @@ ItemUsePPRestore: ; e31e (3:631e) ld a,[wPlayerMonNumber] cp b ; is the pokemon whose PP was restored active in battle? jr nz,.skipUpdatingInBattleData - ld hl,W_PARTYMON1_MOVE1PP + ld hl,wPartyMon1PP ld bc,44 call AddNTimes - ld de,W_PLAYERMONPP + ld de,wBattleMonPP ld bc,4 call CopyData ; copy party data to in-battle data .skipUpdatingInBattleData @@ -1978,16 +1964,16 @@ ItemUsePPRestore: ; e31e (3:631e) ; however, this is bugged for Max Ethers and Max Elixirs (see below) .restorePP xor a - ld [$cc49],a ; party pokemon + ld [wcc49],a ; party pokemon call GetMaxPP - ld hl,W_PARTYMON1_MOVE1 + ld hl,wPartyMon1Moves ld bc,44 call GetSelectedMoveOffset ld bc,21 add hl,bc ; hl now points to move's PP - ld a,[$d11e] + ld a,[wd11e] ld b,a ; b = max PP - ld a,[$cd3d] + ld a,[wWhichTrade] cp a,MAX_ETHER jr z,.fullyRestorePP ld a,[hl] ; move PP @@ -2019,7 +2005,7 @@ ItemUsePPRestore: ; e31e (3:631e) jr .storeNewAmount .useElixir ; decrement the item ID so that ELIXER becomes ETHER and MAX_ELIXER becomes MAX_ETHER - ld hl,$cd3d + ld hl,wWhichTrade dec [hl] dec [hl] xor a @@ -2030,7 +2016,7 @@ ItemUsePPRestore: ; e31e (3:631e) ; loop through each move and restore PP .elixirLoop push bc - ld hl,W_PARTYMON1_MOVE1 + ld hl,wPartyMon1Moves ld bc,44 call GetSelectedMoveOffset ld a,[hl] @@ -2039,7 +2025,7 @@ ItemUsePPRestore: ; e31e (3:631e) call .restorePP jr z,.nextMove ; if some PP was restored - ld hl,$cc27 ; counter for number of moves that had their PP restored + ld hl,wTileBehindCursor ; counter for number of moves that had their PP restored inc [hl] .nextMove ld hl,wCurrentMenuItem @@ -2047,7 +2033,7 @@ ItemUsePPRestore: ; e31e (3:631e) pop bc dec b jr nz,.elixirLoop - ld a,[$cc27] + ld a,[wTileBehindCursor] and a ; did any moves have their PP restored? jp nz,.afterRestoringPP .noEffect @@ -2057,7 +2043,7 @@ ItemUsePPRestore: ; e31e (3:631e) call GoPAL_SET_CF1C pop af xor a - ld [$cd6a],a ; item use failed + ld [wcd6a],a ; item use failed ret RaisePPWhichTechniqueText: ; e45d (3:645d) @@ -2088,20 +2074,19 @@ ItemUseTMHM: ; e479 (3:6479) ld a,[W_ISINBATTLE] and a jp nz,ItemUseNotTime - ld a,[$cf91] + ld a,[wcf91] sub a,TM_01 push af jr nc,.skipAdding add a,55 ; if item is an HM, add 55 .skipAdding inc a - ld [$d11e],a - ld a,$44 - call Predef ; get move ID from TM/HM ID - ld a,[$d11e] - ld [$d0e0],a + ld [wd11e],a + predef TMToMove ; get move ID from TM/HM ID + ld a,[wd11e] + ld [wd0e0],a call GetMoveName - call CopyStringToCF4B ; copy name to $cf4b + call CopyStringToCF4B ; copy name to wcf4b pop af ld hl,BootedUpTMText jr nc,.printBootedUpMachineText @@ -2110,36 +2095,35 @@ ItemUseTMHM: ; e479 (3:6479) call PrintText ld hl,TeachMachineMoveText call PrintText - FuncCoord 14,7 - ld hl,Coord + hlCoord 14, 7 ld bc,$080f ld a,$14 - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ; yes/no menu ld a,[wCurrentMenuItem] and a jr z,.useMachine ld a,2 - ld [$cd6a],a ; item not used + ld [wcd6a],a ; item not used ret .useMachine ld a,[wWhichPokemon] push af - ld a,[$cf91] + ld a,[wcf91] push af .chooseMon - ld hl,$cf4b - ld de,$d036 + ld hl,wcf4b + ld de,wd036 ld bc,14 call CopyData ld a,$ff - ld [$cfcb],a + ld [wcfcb],a ld a,$03 ; teach TM/HM party menu - ld [$d07d],a + ld [wd07d],a call DisplayPartyMenu push af - ld hl,$d036 - ld de,$cf4b + ld hl,wd036 + ld de,wcf4b ld bc,14 call CopyData pop af @@ -2148,15 +2132,14 @@ ItemUseTMHM: ; e479 (3:6479) pop af pop af call GBPalWhiteOutWithDelay3 - call CleanLCD_OAM + call ClearSprites call GoPAL_SET_CF1C jp LoadScreenTilesFromBuffer1 ; restore saved screen .checkIfAbleToLearnMove - ld a,$43 - call Predef ; check if the pokemon can learn the move + predef CanLearnTM ; check if the pokemon can learn the move push bc ld a,[wWhichPokemon] - ld hl,W_PARTYMON1NAME + ld hl,wPartyMonNicks call GetPartyMonName pop bc ld a,c @@ -2171,16 +2154,15 @@ ItemUseTMHM: ; e479 (3:6479) .checkIfAlreadyLearnedMove callab CheckIfMoveIsKnown ; check if the pokemon already knows the move jr c,.chooseMon - ld a,$1b - call Predef ; teach move + predef LearnMove ; teach move pop af - ld [$cf91],a + ld [wcf91],a pop af ld [wWhichPokemon],a ld a,b and a ret z - ld a,[$cf91] + ld a,[wcf91] call IsItemHM ret c jp RemoveUsedItem @@ -2211,7 +2193,7 @@ PrintItemUseTextAndRemoveItem: ; e563 (3:6563) RemoveUsedItem: ; e571 (3:6571) ld hl,wNumBagItems ld a,1 ; one item - ld [$cf96],a ; store quantity + ld [wcf96],a ; store quantity jp RemoveItemFromInventory ItemUseNoEffect: ; e57c (3:657c) @@ -2232,8 +2214,7 @@ ThrowBallAtTrainerMon: ; e58b (3:658b) call Delay3 ld a,TOSS_ANIM ld [W_ANIMATIONID],a - ld a,$08 - call Predef ; do animation + predef MoveAnimation ; do animation ld hl,ThrowBallAtTrainerMonText1 call PrintText ld hl,ThrowBallAtTrainerMonText2 @@ -2253,7 +2234,7 @@ SurfingAttemptFailed: ; e5b6 (3:65b6) ItemUseFailed: ; e5b9 (3:65b9) xor a - ld [$cd6a],a ; item use failed + ld [wcd6a],a ; item use failed jp PrintText ItemUseNotTimeText: ; e5c0 (3:65c0) @@ -2310,24 +2291,23 @@ GotOffBicycleText: ; e5fc (3:65fc) ; also, when a PP Up is used, it increases the current PP by one PP Up bonus ; INPUT: ; [wWhichPokemon] = index of pokemon in party -; [$d11e] = mode +; [wd11e] = mode ; 0: Pokemon Center healing ; 1: using a PP Up ; [wCurrentMenuItem] = index of move (when using a PP Up) RestoreBonusPP: ; e606 (3:6606) - ld hl,W_PARTYMON1_MOVE1 + ld hl,wPartyMon1Moves ld bc,44 ld a,[wWhichPokemon] call AddNTimes push hl - ld de,$cd78 - 1 - ld a,$5e - call Predef ; loads the normal max PP of each of the pokemon's moves to $cd78 + ld de,wcd78 - 1 + predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wcd78 pop hl ld c,21 ld b,0 add hl,bc ; hl now points to move 1 PP - ld de,$cd78 + ld de,wcd78 ld b,0 ; initialize move counter to zero ; loop through the pokemon's moves .loop @@ -2335,7 +2315,7 @@ RestoreBonusPP: ; e606 (3:6606) ld a,b cp a,5 ; reached the end of the pokemon's moves? ret z ; if so, return - ld a,[$d11e] + ld a,[wd11e] dec a ; using a PP Up? jr nz,.skipMenuItemIDCheck ; if using a PP Up, check if this is the move it's being used on @@ -2357,7 +2337,7 @@ RestoreBonusPP: ; e606 (3:6606) ; INPUT: ; [de] = normal max PP ; [hl] = move PP -; [$d11e] = max number of times to add bonus +; [wd11e] = max number of times to add bonus ; set to 1 when using a PP Up, set to 255 otherwise AddBonusPP: ; e642 (3:6642) push bc @@ -2386,7 +2366,7 @@ AddBonusPP: ; e642 (3:6642) .addAmount add b ld b,a - ld a,[$d11e] + ld a,[wd11e] dec a jr z,.done dec c @@ -2399,7 +2379,7 @@ AddBonusPP: ; e642 (3:6642) ; gets max PP of a pokemon's move (including PP from PP Ups) ; INPUT: ; [wWhichPokemon] = index of pokemon within party/box -; [$cc49] = pokemon source +; [wcc49] = pokemon source ; 00: player's party ; 01: enemy's party ; 02: current box @@ -2407,24 +2387,24 @@ AddBonusPP: ; e642 (3:6642) ; 04: player's in-battle pokemon ; [wCurrentMenuItem] = move index ; OUTPUT: -; [$d11e] = max PP +; [wd11e] = max PP GetMaxPP: ; e677 (3:6677) - ld a,[$cc49] + ld a,[wcc49] and a - ld hl,W_PARTYMON1_MOVE1 - ld bc,44 + ld hl,wPartyMon1Moves + ld bc,wPartyMon2 - wPartyMon1 jr z,.sourceWithMultipleMon - ld hl,$d8ac ; enemy party + ld hl,wEnemyMon1Moves dec a jr z,.sourceWithMultipleMon - ld hl,$da9e ; current box - ld bc,33 + ld hl,wBoxMon1Moves + ld bc,wBoxMon2 - wBoxMon1 dec a jr z,.sourceWithMultipleMon - ld hl,$da67 ; daycare + ld hl,wDayCareMonMoves dec a jr z,.sourceWithOneMon - ld hl,W_PLAYERMONMOVES ; player's in-battle pokemon + ld hl,wBattleMonMoves ; player's in-battle pokemon .sourceWithOneMon call GetSelectedMoveOffset2 jr .next @@ -2437,16 +2417,16 @@ GetMaxPP: ; e677 (3:6677) ld hl,Moves ld bc,6 call AddNTimes - ld de,$cd6d + ld de,wcd6d ld a,BANK(Moves) call FarCopyData - ld de,$cd72 + ld de,wcd72 ld a,[de] ld b,a ; b = normal max PP pop hl push bc ld bc,21 ; PP offset if not player's in-battle pokemon data - ld a,[$cc49] + ld a,[wcc49] cp a,4 ; player's in-battle pokemon? jr nz,.addPPOffset ld bc,17 ; PP offset if player's in-battle pokemon data @@ -2458,14 +2438,14 @@ GetMaxPP: ; e677 (3:6677) or b ; place normal max PP in 6 lower bits of a ld h,d ld l,e - inc hl ; hl = $cd73 + inc hl ; hl = wcd73 ld [hl],a xor a - ld [$d11e],a ; no limit on PP Up amount + ld [wd11e],a ; no limit on PP Up amount call AddBonusPP ; add bonus PP from PP Ups ld a,[hl] and a,%00111111 ; mask out the PP Up count - ld [$d11e],a ; store max PP + ld [wd11e],a ; store max PP ret GetSelectedMoveOffset: ; e6e3 (3:66e3) @@ -2482,37 +2462,36 @@ GetSelectedMoveOffset2: ; e6e9 (3:66e9) ; confirms the item toss and then tosses the item ; INPUT: ; hl = address of inventory (either wNumBagItems or wNumBoxItems) -; [$cf91] = item ID +; [wcf91] = item ID ; [wWhichPokemon] = index of item within inventory -; [$cf96] = quantity to toss +; [wcf96] = quantity to toss ; OUTPUT: ; clears carry flag if the item is tossed, sets carry flag if not TossItem_: ; e6f1 (3:66f1) push hl - ld a,[$cf91] + ld a,[wcf91] call IsItemHM pop hl jr c,.tooImportantToToss push hl call IsKeyItem_ - ld a,[$d124] + ld a,[wd124] pop hl and a jr nz,.tooImportantToToss push hl - ld a,[$cf91] - ld [$d11e],a + ld a,[wcf91] + ld [wd11e],a call GetItemName - call CopyStringToCF4B ; copy name to $cf4b + call CopyStringToCF4B ; copy name to wcf4b ld hl,IsItOKToTossItemText call PrintText - FuncCoord 14,7 - ld hl,Coord + hlCoord 14, 7 ld bc,$080f ld a,$14 - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ; yes/no menu - ld a,[$d12e] + ld a,[wd12e] cp a,2 pop hl scf @@ -2521,10 +2500,10 @@ TossItem_: ; e6f1 (3:66f1) push hl ld a,[wWhichPokemon] call RemoveItemFromInventory - ld a,[$cf91] - ld [$d11e],a + ld a,[wcf91] + ld [wd11e],a call GetItemName - call CopyStringToCF4B ; copy name to $cf4b + call CopyStringToCF4B ; copy name to wcf4b ld hl,ThrewAwayItemText call PrintText pop hl @@ -2552,50 +2531,49 @@ TooImportantToTossText: ; e75f (3:675f) ; checks if an item is a key item ; INPUT: -; [$cf91] = item ID +; [wcf91] = item ID ; OUTPUT: -; [$d124] = result +; [wd124] = result ; 00: item is not key item ; 01: item is key item IsKeyItem_: ; e764 (3:6764) ld a,$01 - ld [$d124],a - ld a,[$cf91] + ld [wd124],a + ld a,[wcf91] cp a,HM_01 ; is the item an HM or TM? jr nc,.checkIfItemIsHM ; if the item is not an HM or TM push af ld hl,KeyItemBitfield - ld de,$cee9 + ld de,wHPBarMaxHP ld bc,15 ; only 11 bytes are actually used call CopyData pop af dec a ld c,a - ld hl,$cee9 + ld hl,wHPBarMaxHP ld b,$02 ; test bit - ld a,$10 - call Predef ; bitfield operation function + predef FlagActionPredef ; bitfield operation function ld a,c and a ret nz .checkIfItemIsHM - ld a,[$cf91] + ld a,[wcf91] call IsItemHM ret c xor a - ld [$d124],a + ld [wd124],a ret INCLUDE "data/key_items.asm" Func_e7a4: ; e7a4 (3:67a4) - ld de, W_NUMINBOX ; $da80 + ld de, W_NUMINBOX ; wda80 ld a, [de] inc a ld [de], a - ld a, [$cf91] - ld [$d0b5], a + ld a, [wcf91] + ld [wd0b5], a ld c, a .asm_e7b1 inc de @@ -2607,9 +2585,9 @@ Func_e7a4: ; e7a4 (3:67a4) cp $ff jr nz, .asm_e7b1 call GetMonHeader - ld hl, W_BOXMON1OT + ld hl, wBoxMonOT ld bc, $b - ld a, [W_NUMINBOX] ; $da80 + ld a, [W_NUMINBOX] ; wda80 dec a jr z, .asm_e7ee dec a @@ -2620,7 +2598,7 @@ Func_e7a4: ; e7a4 (3:67a4) ld d, h ld e, l pop hl - ld a, [W_NUMINBOX] ; $da80 + ld a, [W_NUMINBOX] ; wda80 dec a ld b, a .asm_e7db @@ -2637,14 +2615,14 @@ Func_e7a4: ; e7a4 (3:67a4) dec b jr nz, .asm_e7db .asm_e7ee - ld hl, W_PLAYERNAME ; $d158 - ld de, W_BOXMON1OT + ld hl, wPlayerName ; wd158 + ld de, wBoxMonOT ld bc, $b call CopyData - ld a, [W_NUMINBOX] ; $da80 + ld a, [W_NUMINBOX] ; wda80 dec a jr z, .asm_e82a - ld hl, W_BOXMON1NAME + ld hl, wBoxMonNicks ld bc, $b dec a call AddNTimes @@ -2654,7 +2632,7 @@ Func_e7a4: ; e7a4 (3:67a4) ld d, h ld e, l pop hl - ld a, [W_NUMINBOX] ; $da80 + ld a, [W_NUMINBOX] ; wda80 dec a ld b, a .asm_e817 @@ -2671,31 +2649,30 @@ Func_e7a4: ; e7a4 (3:67a4) dec b jr nz, .asm_e817 .asm_e82a - ld hl, W_BOXMON1NAME + ld hl, wBoxMonNicks ld a, $2 - ld [$d07d], a - ld a, $4e - call Predef ; indirect jump to Func_64eb (64eb (1:64eb)) - ld a, [W_NUMINBOX] ; $da80 + ld [wd07d], a + predef AskName + ld a, [W_NUMINBOX] ; wda80 dec a jr z, .asm_e867 - ld hl, W_BOXMON1DATA - ld bc, $21 + ld hl, wBoxMons + ld bc, wBoxMon2 - wBoxMon1 dec a call AddNTimes push hl - ld bc, $21 + ld bc, wBoxMon2 - wBoxMon1 add hl, bc ld d, h ld e, l pop hl - ld a, [W_NUMINBOX] ; $da80 + ld a, [W_NUMINBOX] ; wda80 dec a ld b, a .asm_e854 push bc push hl - ld bc, $21 + ld bc, wBoxMon2 - wBoxMon1 call CopyData pop hl ld d, h @@ -2706,13 +2683,13 @@ Func_e7a4: ; e7a4 (3:67a4) dec b jr nz, .asm_e854 .asm_e867 - ld a, [W_ENEMYMONLEVEL] ; $cff3 - ld [W_ENEMYMONNUMBER], a ; $cfe8 - ld hl, $cfe5 - ld de, W_BOXMON1DATA + ld a, [wEnemyMonLevel] ; wEnemyMonLevel + ld [wEnemyMonBoxLevel], a + ld hl, wEnemyMon + ld de, wBoxMon1 ld bc, $c call CopyData - ld hl, wPlayerID ; $d359 + ld hl, wPlayerID ; wPlayerID ld a, [hli] ld [de], a inc de @@ -2720,7 +2697,7 @@ Func_e7a4: ; e7a4 (3:67a4) ld [de], a inc de push de - ld a, [W_CURENEMYLVL] ; $d127 + ld a, [W_CURENEMYLVL] ; W_CURENEMYLVL ld d, a callab CalcExperience pop de @@ -2740,13 +2717,13 @@ Func_e7a4: ; e7a4 (3:67a4) inc de dec b jr nz, .asm_e89f - ld hl, $cff1 + ld hl, wEnemyMonDVs ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a - ld hl, W_ENEMYMONPP ; $cffe + ld hl, wEnemyMonPP ; wcffe ld b, $4 .asm_e8b1 ld a, [hli] @@ -2767,7 +2744,7 @@ IsNextTileShoreOrWater: ; e8b8 (3:68b8) jr nc, .notShoreOrWater ld a, [W_CURMAPTILESET] cp SHIP_PORT ; Vermilion Dock tileset - ld a, [$cfc6] ; tile in front of player + ld a, [wcfc6] ; tile in front of player jr z, .skipShoreTiles ; if it's the Vermilion Dock tileset cp $48 ; eastern shore tile in Safari Zone jr z, .shoreOrWater @@ -2814,7 +2791,7 @@ ReadSuperRodData: ; e8ea (3:68ea) ld e, $0 ; no bite yet .RandomLoop ; 0xe90c - call GenRandom + call Random srl a ret c ; 50% chance of no battle @@ -2843,7 +2820,7 @@ ItemUseReloadOverworldData: ; e9c5 (3:69c5) Func_e9cb: ; e9cb (3:69cb) ld hl, WildDataPointers ; $4eeb - ld de, $cee9 + ld de, wHPBarMaxHP ld c, $0 .asm_e9d3 inc hl @@ -2874,7 +2851,7 @@ Func_e9f0: ; e9f0 (3:69f0) inc hl ld b, $a .asm_e9f3 - ld a, [$d11e] + ld a, [wd11e] cp [hl] jr nz, .asm_e9fc ld a, c diff --git a/engine/items/tm_prices.asm b/engine/items/tm_prices.asm index cf74ade2..c55a25b4 100755 --- a/engine/items/tm_prices.asm +++ b/engine/items/tm_prices.asm @@ -1,5 +1,5 @@ GetMachinePrice: ; 7bf86 (1e:7f86) - ld a, [$cf91] + ld a, [wcf91] sub TM_01 ret c ld d, a diff --git a/engine/items/tmhm.asm b/engine/items/tmhm.asm index 5b7b4e8e..01a48ebb 100755 --- a/engine/items/tmhm.asm +++ b/engine/items/tmhm.asm @@ -1,10 +1,10 @@ -; checks if the mon in wWhichPokemon already knows the move in $d0e0 +; checks if the mon in wWhichPokemon already knows the move in wd0e0 CheckIfMoveIsKnown: ; 2fe18 (b:7e18) ld a, [wWhichPokemon] - ld hl, W_PARTYMON1_MOVE1 + ld hl, wPartyMon1Moves ld bc, $2c call AddNTimes - ld a, [$d0e0] + ld a, [wd0e0] ld b, a ld c, $4 ; nubmer of moves .loop diff --git a/engine/items/tms.asm b/engine/items/tms.asm index b0cfd29c..ef427860 100755 --- a/engine/items/tms.asm +++ b/engine/items/tms.asm @@ -1,11 +1,11 @@ -; tests if mon [$cf91] can learn move [$d0e0] -TestMonMoveCompatibility: ; 1373e (4:773e) - ld a, [$cf91] - ld [$d0b5], a +; tests if mon [wcf91] can learn move [wd0e0] +CanLearnTM: ; 1373e (4:773e) + ld a, [wcf91] + ld [wd0b5], a call GetMonHeader ld hl, W_MONHLEARNSET push hl - ld a, [$d0e0] + ld a, [wd0e0] ld b, a ld c, $0 ld hl, TechnicalMachines @@ -18,20 +18,19 @@ TestMonMoveCompatibility: ; 1373e (4:773e) .TMfoundLoop pop hl ld b, $2 ; read corresponding bit from TM compatibility array - ld a, $10 - jp Predef ; indirect jump to HandleBitArray (f666 (3:7666)) + predef_jump FlagActionPredef -; converts TM/HM number in $d11e into move number +; converts TM/HM number in wd11e into move number ; HMs start at 51 TMToMove: ; 13763 (4:7763) - ld a, [$d11e] + ld a, [wd11e] dec a ld hl, TechnicalMachines ld b, $0 ld c, a add hl, bc ld a, [hl] - ld [$d11e], a + ld [wd11e], a ret INCLUDE "data/tms.asm" diff --git a/engine/joypad.asm b/engine/joypad.asm new file mode 100644 index 00000000..d2ad1c31 --- /dev/null +++ b/engine/joypad.asm @@ -0,0 +1,51 @@ +_Joypad:: + ld a, [hJoyInput] + cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset + jp z, TrySoftReset + ld b, a + ld a, [hJoyHeldLast] + ld e, a + xor b + ld d, a + and e + ld [hJoyReleased], a + ld a, d + and b + ld [hJoyPressed], a + ld a, b + ld [hJoyHeldLast], a + ld a, [wd730] + bit 5, a + jr nz, DiscardButtonPresses + ld a, [hJoyHeldLast] + ld [hJoyHeld], a + ld a, [wJoyIgnore] + and a + ret z + cpl + ld b, a + ld a, [hJoyHeld] + and b + ld [hJoyHeld], a + ld a, [hJoyPressed] + and b + ld [hJoyPressed], a + ret + +DiscardButtonPresses: + xor a + ld [hJoyHeld], a + ld [hJoyPressed], a + ld [hJoyReleased], a + ret + +TrySoftReset: + call DelayFrame + ; reset joypad (to make sure the + ; player is really trying to reset) + ld a, $30 + ld [rJOYP], a + ld hl, hSoftReset + dec [hl] + jp z, SoftReset + jp Joypad diff --git a/engine/learn_move.asm b/engine/learn_move.asm index c1f5dee1..bbfb41a3 100755 --- a/engine/learn_move.asm +++ b/engine/learn_move.asm @@ -1,17 +1,17 @@ LearnMove: ; 6e43 (1:6e43) call SaveScreenTilesToBuffer1 - ld a, [wWhichPokemon] ; $cf92 - ld hl, W_PARTYMON1NAME ; $d2b5 + ld a, [wWhichPokemon] ; wWhichPokemon + ld hl, wPartyMonNicks ; wPartyMonNicks call GetPartyMonName - ld hl, $cd6d - ld de, $d036 + ld hl, wcd6d + ld de, wd036 ld bc, $b call CopyData DontAbandonLearning: ; 6e5b (1:6e5b) - ld hl, W_PARTYMON1_MOVE1 ; $d173 + ld hl, wPartyMon1Moves ; wPartyMon1Moves ld bc, $2c - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon call AddNTimes ld d, h ld e, l @@ -29,14 +29,14 @@ DontAbandonLearning: ; 6e5b (1:6e5b) jp c, AbandonLearning push hl push de - ld [$d11e], a + ld [wd11e], a call GetMoveName ld hl, OneTwoAndText call PrintText pop de pop hl .asm_6e8b - ld a, [$d0e0] + ld a, [wd0e0] ld [hl], a ld bc, $15 add hl, bc @@ -46,29 +46,29 @@ DontAbandonLearning: ; 6e5b (1:6e5b) ld hl, Moves ; $4000 ld bc, $6 call AddNTimes - ld de, $cee9 + ld de, wHPBarMaxHP ld a, BANK(Moves) call FarCopyData - ld a, [$ceee] + ld a, [wHPBarNewHP + 1] pop de pop hl ld [hl], a - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE and a jp z, PrintLearnedMove - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon ld b, a - ld a, [wPlayerMonNumber] ; $cc2f + ld a, [wPlayerMonNumber] ; wPlayerMonNumber cp b jp nz, PrintLearnedMove ld h, d ld l, e - ld de, W_PLAYERMONMOVES + ld de, wBattleMonMoves ld bc, $4 call CopyData ld bc, $11 add hl, bc - ld de, W_PLAYERMONPP ; $d02d + ld de, wBattleMonPP ; wBattleMonPP ld bc, $4 call CopyData jp PrintLearnedMove @@ -76,13 +76,12 @@ DontAbandonLearning: ; 6e5b (1:6e5b) AbandonLearning: ; 6eda (1:6eda) ld hl, AbandonLearningText call PrintText - FuncCoord 14, 7 ; $c43a - ld hl, Coord + hlCoord 14, 7 ld bc, $80f ld a, $14 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jp nz, DontAbandonLearning ld hl, DidNotLearnText @@ -100,20 +99,19 @@ TryingToLearn: ; 6f07 (1:6f07) push hl ld hl, TryingToLearnText call PrintText - FuncCoord 14, 7 ; $c43a - ld hl, Coord + hlCoord 14, 7 ld bc, $80f ld a, $14 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID pop hl - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem rra ret c ld bc, $fffc add hl, bc push hl - ld de, $d0dc + ld de, wd0dc ld bc, $4 call CopyData callab Func_39b87 @@ -122,14 +120,12 @@ TryingToLearn: ; 6f07 (1:6f07) push hl ld hl, WhichMoveToForgetText call PrintText - FuncCoord 4, 7 ; $c430 - ld hl, Coord + hlCoord 4, 7 ld b, $4 ld c, $e call TextBoxBorder - FuncCoord 6, 8 ; $c446 - ld hl, Coord - ld de, $d0e1 + hlCoord 6, 8 + ld de, wd0e1 ld a, [$fff6] set 2, a ld [$fff6], a @@ -137,7 +133,7 @@ TryingToLearn: ; 6f07 (1:6f07) ld a, [$fff6] res 2, a ld [$fff6], a - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $8 ld [hli], a ld a, $5 @@ -145,7 +141,7 @@ TryingToLearn: ; 6f07 (1:6f07) xor a ld [hli], a inc hl - ld a, [$cd6c] + ld a, [wcd6c] ld [hli], a ld a, $3 ld [hli], a @@ -162,7 +158,7 @@ TryingToLearn: ; 6f07 (1:6f07) bit 1, a jr nz, .asm_6fab push hl - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld c, a ld b, $0 add hl, bc diff --git a/engine/load_pokedex_tiles.asm b/engine/load_pokedex_tiles.asm index 7a49adaa..e8205ef8 100755 --- a/engine/load_pokedex_tiles.asm +++ b/engine/load_pokedex_tiles.asm @@ -2,10 +2,10 @@ LoadPokedexTilePatterns: ; 17840 (5:7840) call LoadHpBarAndStatusTilePatterns ld de,PokedexTileGraphics ; $6488 - ld hl,$9600 + ld hl,vChars2 + $600 ld bc,(BANK(PokedexTileGraphics) << 8) + $12 call CopyVideoData ld de,PokeballTileGraphics ; $697e - ld hl,$9720 + ld hl,vChars2 + $720 ld bc,(BANK(PokeballTileGraphics) << 8) + $01 jp CopyVideoData ; load pokeball tile for marking caught mons diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm index 0c468a2b..3edaadd8 100644 --- a/engine/menu/bills_pc.asm +++ b/engine/menu/bills_pc.asm @@ -2,13 +2,13 @@ Func_213c8:: ; 213c8 (8:53c8) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba call SaveScreenTilesToBuffer2 - ld a, [$d5a2] + ld a, [wd5a2] and a jr nz, .asm_213f3 - ld a, [$d74b] + ld a, [wd74b] bit 5, a jr z, .asm_213ea - ld a, [$d5a2] + ld a, [wd5a2] and a jr nz, .asm_213f3 ld hl, wTileMap @@ -28,70 +28,62 @@ Func_213c8:: ; 213c8 (8:53c8) call TextBoxBorder call UpdateSprites ld a, $3 - ld [wMaxMenuItem], a ; $cc28 - ld a, [$d7f1] + ld [wMaxMenuItem], a ; wMaxMenuItem + ld a, [wd7f1] bit 0, a jr nz, .asm_21414 - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 ld de, SomeonesPCText ; $548b jr .asm_2141a .asm_21414 - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 ld de, BillsPCText ; $5497 .asm_2141a call PlaceString - FuncCoord 2, 4 ; $c3f2 - ld hl, Coord - ld de, W_PLAYERNAME ; $d158 + hlCoord 2, 4 + ld de, wPlayerName ; wd158 call PlaceString ld l, c ld h, b ld de, PlayersPCText ; $54a0 call PlaceString - ld a, [$d74b] + ld a, [wd74b] bit 5, a jr z, .asm_21462 - FuncCoord 2, 6 ; $c41a - ld hl, Coord + hlCoord 2, 6 ld de, OaksPCText ; $54a5 call PlaceString - ld a, [$d5a2] + ld a, [wd5a2] and a jr z, .asm_2145a ld a, $4 - ld [wMaxMenuItem], a ; $cc28 - FuncCoord 2, 8 ; $c442 - ld hl, Coord + ld [wMaxMenuItem], a ; wMaxMenuItem + hlCoord 2, 8 ld de, PKMNLeaguePCText ; $54b2 call PlaceString - FuncCoord 2, 10 ; $c46a - ld hl, Coord + hlCoord 2, 10 ld de, LogOffPCText ; $54ba jr .asm_2146d .asm_2145a - FuncCoord 2, 8 ; $c442 - ld hl, Coord + hlCoord 2, 8 ld de, LogOffPCText ; $54ba jr .asm_2146d .asm_21462 ld a, $2 - ld [wMaxMenuItem], a ; $cc28 - FuncCoord 2, 6 ; $c41a - ld hl, Coord + ld [wMaxMenuItem], a ; wMaxMenuItem + hlCoord 2, 6 ld de, LogOffPCText ; $54ba .asm_2146d call PlaceString ld a, $3 - ld [wMenuWatchedKeys], a ; $cc29 + ld [wMenuWatchedKeys], a ; wMenuWatchedKeys ld a, $2 - ld [wTopMenuItemY], a ; $cc24 + ld [wTopMenuItemY], a ; wTopMenuItemY ld a, $1 - ld [wTopMenuItemX], a ; $cc25 + ld [wTopMenuItemX], a ; wTopMenuItemX xor a - ld [wCurrentMenuItem], a ; $cc26 - ld [wLastMenuItem], a ; $cc2a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wLastMenuItem], a ; wLastMenuItem ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ret @@ -116,14 +108,14 @@ LogOffPCText: ; 214ba (8:54ba) Func_214c2:: ; 214c2 (8:54c2) BillsPC_:: ; 0x214c2 - ld hl, $d730 + ld hl, wd730 set 6, [hl] xor a - ld [$ccd3], a + ld [wccd3], a inc a ; MONSTER_NAME ld [W_LISTTYPE], a call LoadHpBarAndStatusTilePatterns - ld a, [wListScrollOffset] ; $cc36 + ld a, [wListScrollOffset] ; wcc36 push af ld a, [wFlags_0xcd60] bit 3, a @@ -135,9 +127,9 @@ BillsPC_:: ; 0x214c2 Func_214e8: ; 214e8 (8:54e8) BillsPCMenu: - ld a, [$ccd3] - ld [wCurrentMenuItem], a ; $cc26 - ld hl, $9780 + ld a, [wccd3] + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld hl, vChars2 + $780 ld de, PokeballTileGraphics ; $697e ld bc, (BANK(PokeballTileGraphics) << 8) + $01 call CopyVideoData @@ -146,11 +138,10 @@ BillsPCMenu: ld b, $a ld c, $c call TextBoxBorder - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 ld de, BillsPCMenuText ; $56e1 call PlaceString - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $2 ld [hli], a dec a @@ -164,34 +155,30 @@ BillsPCMenu: xor a ld [hli], a ld [hli], a - ld hl, wListScrollOffset ; $cc36 + ld hl, wListScrollOffset ; wcc36 ld [hli], a ld [hl], a - ld [wPlayerMonNumber], a ; $cc2f + ld [wPlayerMonNumber], a ; wPlayerMonNumber ld hl, WhatText call PrintText - FuncCoord 9, 14 ; $c4c1 - ld hl, Coord + hlCoord 9, 14 ld b, $2 ld c, $9 call TextBoxBorder - ld a, [$d5a0] + ld a, [wd5a0] and $7f cp $9 jr c, .asm_2154f sub $9 - FuncCoord 17, 16 ; $c4f1 - ld hl, Coord + hlCoord 17, 16 ld [hl], $f7 add $f6 jr .asm_21551 .asm_2154f add $f7 .asm_21551 - FuncCoord 18, 16 ; $c4f2 - ld [Coord], a - FuncCoord 10, 16 ; $c4ea - ld hl, Coord + Coorda 18, 16 + hlCoord 10, 16 ld de, BoxNoPCText ; $5713 call PlaceString ld a, $1 @@ -201,8 +188,8 @@ BillsPCMenu: bit 1, a jp nz, Func_21588 ; b button call PlaceUnfilledArrowMenuCursor - ld a, [wCurrentMenuItem] ; $cc26 - ld [$ccd3], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld [wccd3], a and a jp z, Func_21618 ; withdraw cp $1 @@ -225,44 +212,44 @@ Func_21588: ; 21588 (8:5588) res 5, [hl] call LoadScreenTilesFromBuffer2 pop af - ld [wListScrollOffset], a ; $cc36 - ld hl, $d730 + ld [wListScrollOffset], a ; wcc36 + ld hl, wd730 res 6, [hl] ret Func_215ac: ; 215ac (8:55ac) BillsPCDeposit: - ld a, [W_NUMINPARTY] ; $d163 + ld a, [wPartyCount] ; wPartyCount dec a jr nz, .asm_215bb ld hl, CantDepositLastMonText call PrintText jp BillsPCMenu .asm_215bb - ld a, [W_NUMINBOX] ; $da80 + ld a, [W_NUMINBOX] ; wda80 cp $14 jr nz, .asm_215cb ld hl, BoxFullText ; $5802 call PrintText jp BillsPCMenu .asm_215cb - ld hl, W_NUMINPARTY ; $d163 + ld hl, wPartyCount ; wPartyCount call Func_216be jp c, BillsPCMenu call Func_2174b jp nc, BillsPCMenu - ld a, [$cf91] + ld a, [wcf91] call GetCryData call PlaySoundWaitForCurrent ld a, $1 - ld [$cf95], a + ld [wcf95], a call Func_3a68 xor a - ld [$cf95], a + ld [wcf95], a call RemovePokemon call WaitForSoundToFinish - ld hl, wWhichTrade ; $cd3d - ld a, [$d5a0] + ld hl, wWhichTrade ; wWhichTrade + ld a, [wd5a0] and $7f cp $9 jr c, .asm_2160a @@ -281,36 +268,36 @@ BillsPCDeposit: jp BillsPCMenu Func_21618: ; 21618 (8:5618) - ld a, [W_NUMINBOX] ; $da80 + ld a, [W_NUMINBOX] ; wda80 and a jr nz, .asm_21627 ld hl, NoMonText ; $580c call PrintText jp Func_214e8 .asm_21627 - ld a, [W_NUMINPARTY] ; $d163 + ld a, [wPartyCount] ; wPartyCount cp $6 jr nz, .asm_21637 ld hl, CantTakeMonText ; $5811 call PrintText jp Func_214e8 .asm_21637 - ld hl, W_NUMINBOX ; $da80 + ld hl, W_NUMINBOX ; wda80 call Func_216be jp c, Func_214e8 call Func_2174b jp nc, Func_214e8 - ld a, [wWhichPokemon] ; $cf92 - ld hl, $de06 + ld a, [wWhichPokemon] ; wWhichPokemon + ld hl, wBoxMonNicks call GetPartyMonName - ld a, [$cf91] + ld a, [wcf91] call GetCryData call PlaySoundWaitForCurrent xor a - ld [$cf95], a + ld [wcf95], a call Func_3a68 ld a, $1 - ld [$cf95], a + ld [wcf95], a call RemovePokemon call WaitForSoundToFinish ld hl, MonIsTakenOutText ; $5807 @@ -318,27 +305,27 @@ Func_21618: ; 21618 (8:5618) jp Func_214e8 Func_21673: ; 21673 (8:5673) - ld a, [W_NUMINBOX] ; $da80 + ld a, [W_NUMINBOX] ; wda80 and a jr nz, .asm_21682 ld hl, NoMonText ; $580c call PrintText jp Func_214e8 .asm_21682 - ld hl, W_NUMINBOX ; $da80 + ld hl, W_NUMINBOX ; wda80 call Func_216be jp c, Func_214e8 ld hl, OnceReleasedText ; $581b call PrintText call YesNoChoice - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jr nz, .asm_21682 inc a - ld [$cf95], a + ld [wcf95], a call RemovePokemon call WaitForSoundToFinish - ld a, [$cf91] + ld a, [wcf91] call PlayCry ld hl, MonWasReleasedText ; $5820 call PrintText @@ -350,19 +337,19 @@ Func_216b3: ; 216b3 (8:56b3) Func_216be: ; 216be (8:56be) ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a + ld [wcf8c], a xor a - ld [$cf93], a - ld [wListMenuID], a ; $cf94 + ld [wcf93], a + ld [wListMenuID], a ; wListMenuID inc a ; MONSTER_NAME ld [W_LISTTYPE], a - ld a, [$cc2b] - ld [wCurrentMenuItem], a ; $cc26 + ld a, [wcc2b] + ld [wCurrentMenuItem], a ; wCurrentMenuItem call DisplayListMenuID - ld a, [wCurrentMenuItem] ; $cc26 - ld [$cc2b], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld [wcc2b], a ret BillsPCMenuText: ; 216e1 (8:56e1) @@ -372,21 +359,21 @@ BoxNoPCText: ; 21713 (8:5713) db "BOX No.@" Func_2171b:: ; 2171b (8:571b) - ld hl, $d173 - ld bc, $002c + ld hl, wPartyMon1Moves + ld bc, wPartyMon2 - wPartyMon1 jr .asm_21729 ; 0x21721 $6 - ld hl, $da9e - ld bc, $0021 + ld hl, wBoxMon1Moves + ld bc, wBoxMon2 - wBoxMon1 .asm_21729 - ld a, [$cf92] + ld a, [wWhichPokemon] call AddNTimes - ld b, $4 + ld b, NUM_MOVES .asm_21731 ld a, [hli] push hl push bc ld hl, HMMoveArray ; $5745 - ld de, $0001 + ld de, 1 call IsInArray pop bc pop hl @@ -405,25 +392,22 @@ HMMoveArray: ; 21745 (8:5745) db $ff Func_2174b: ; 2174b (8:574b) - FuncCoord 9, 10 ; $c471 - ld hl, Coord + hlCoord 9, 10 ld b, $6 ld c, $9 call TextBoxBorder - ld a, [$ccd3] + ld a, [wccd3] and a ld de, DepositPCText ; $57cb jr nz, .asm_21761 ld de, WithdrawPCText ; $57d3 .asm_21761 - FuncCoord 11, 12 ; $c49b - ld hl, Coord + hlCoord 11, 12 call PlaceString - FuncCoord 11, 14 ; $c4c3 - ld hl, Coord + hlCoord 11, 14 ld de, StatsCancelPCText ; $57dc call PlaceString - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $c ld [hli], a ld a, $a @@ -437,16 +421,16 @@ Func_2174b: ; 2174b (8:574b) ld [hli], a xor a ld [hl], a - ld hl, wListScrollOffset ; $cc36 + ld hl, wListScrollOffset ; wcc36 ld [hli], a ld [hl], a - ld [wPlayerMonNumber], a ; $cc2f - ld [$cc2b], a + ld [wPlayerMonNumber], a ; wPlayerMonNumber + ld [wcc2b], a .asm_2178f call HandleMenuInput bit 1, a jr nz, .asm_2179f - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jr z, .asm_217a1 dec a @@ -459,17 +443,15 @@ Func_2174b: ; 2174b (8:574b) ret .asm_217a3 call SaveScreenTilesToBuffer1 - ld a, [$ccd3] + ld a, [wccd3] and a ld a, $0 jr nz, .asm_217b0 ld a, $2 .asm_217b0 - ld [$cc49], a - ld a, $36 - call Predef ; indirect jump to StatusScreen (12953 (4:6953)) - ld a, $37 - call Predef ; indirect jump to StatusScreen2 (12b57 (4:6b57)) + ld [wcc49], a + predef StatusScreen + predef StatusScreen2 call LoadScreenTilesFromBuffer1 call ReloadTilesetTilePatterns call GoPAL_SET_CF1C @@ -537,16 +519,16 @@ PrintJustAMomentText1:: ; 5824 (8:5825) ld a, [$ffaa] cp $1 ret z - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $c ret nz - ld a, [$d35e] + ld a, [W_CURMAP] cp $ef ld a, $2 jr z, .asm_2183a inc a .asm_2183a - ld [$d12b], a + ld [W_ISLINKBATTLE], a call EnableAutoTextBoxDrawing ld a, $22 jp PrintPredefTextID @@ -555,16 +537,16 @@ PrintJustAMomentText2:: ; 5845 (8:5845) ld a, [$ffaa] cp $2 ret z - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $8 ret nz - ld a, [$d35e] + ld a, [W_CURMAP] cp $ef ld a, $2 jr z, .asm_2185a inc a .asm_2185a - ld [$d12b], a + ld [W_ISLINKBATTLE], a call EnableAutoTextBoxDrawing ld a, $22 jp PrintPredefTextID @@ -573,7 +555,7 @@ JustAMomentText:: ; 21865 (8:5865) TX_FAR _JustAMomentText db "@" - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $4 ret nz call EnableAutoTextBoxDrawing diff --git a/engine/menu/diploma.asm b/engine/menu/diploma.asm index 3b9413a2..023c6177 100755 --- a/engine/menu/diploma.asm +++ b/engine/menu/diploma.asm @@ -3,19 +3,18 @@ DisplayDiploma: ; 566e2 (15:66e2) call GBPalWhiteOutWithDelay3 call ClearScreen xor a - ld [$cfcb], a - ld hl, $d730 + ld [wcfcb], a + ld hl, wd730 set 6, [hl] call DisableLCD ld hl, CircleTile ; $7d88 - ld de, $9700 + ld de, vChars2 + $700 ld bc, $0010 ld a, BANK(CircleTile) call FarCopyData2 ld hl, wTileMap ld bc, $1012 - ld a, $27 - call Predef + predef Func_5ab0 ld hl, DiplomaTextPointersAndCoords ; $6784 ld c, $5 .asm_56715 @@ -34,12 +33,11 @@ DisplayDiploma: ; 566e2 (15:66e2) pop bc dec c jr nz, .asm_56715 ; 0x56725 $ee - FuncCoord 10, 4 ; $c3fa - ld hl, Coord - ld de, W_PLAYERNAME + hlCoord 10, 4 + ld de, wPlayerName call PlaceString callba Func_44dd - ld hl, $c301 + ld hl, wOAMBuffer + $01 ld bc, $8028 .asm_5673e ld a, [hl] @@ -60,7 +58,7 @@ DisplayDiploma: ; 566e2 (15:66e2) ld a, $90 ld [$ff48], a call WaitForTextScrollButtonPress - ld hl, $d730 + ld hl, wd730 res 6, [hl] call GBPalWhiteOutWithDelay3 call Func_3dbe @@ -68,7 +66,7 @@ DisplayDiploma: ; 566e2 (15:66e2) jp GBPalNormal Func_56777: ; 56777 (15:6777) - ld hl, W_PLAYERNAME + ld hl, wPlayerName ld bc, $ff00 .asm_5677d ld a, [hli] @@ -79,15 +77,15 @@ Func_56777: ; 56777 (15:6777) DiplomaTextPointersAndCoords: ; 56784 (15:6784) dw DiplomaText - dw $c3cd + dw wTileMap + $2d dw DiplomaPlayer - dw $c3f3 + dw wTileMap + $53 dw DiplomaEmptyText - dw $c3ff + dw wTileMap + $5f dw DiplomaCongrats - dw $c41a + dw wTileMap + $7a dw DiplomaGameFreak - dw $c4e9 + dw wTileMap + $149 DiplomaText: db $70,"Diploma",$70,"@" diff --git a/engine/menu/league_pc.asm b/engine/menu/league_pc.asm index 5e4e3436..4833e57d 100755 --- a/engine/menu/league_pc.asm +++ b/engine/menu/league_pc.asm @@ -1,37 +1,37 @@ PKMNLeaguePC: ; 0x7657e ld hl, AccessedHoFPCText call PrintText - ld hl, $D730 + ld hl, wd730 set 6, [hl] push hl - ld a, [$CFCB] + ld a, [wcfcb] push af ld a, [$ffD7] push af xor a ld [$ffD7], a ld [W_SPRITEFLIPPED], a - ld [$CFCB], a - ld [$CD41], a - ld [$CD42], a - ld a, [$D5A2] + ld [wcfcb], a + ld [wTrainerScreenX], a + ld [wcd42], a + ld a, [wd5a2] ld b, a - cp a, $33 + cp NUM_HOF_TEAMS + 1 jr c, .first - ld b, $32 + ld b, NUM_HOF_TEAMS sub b - ld [$CD42], a + ld [wcd42], a .first - ld hl, $CD42 + ld hl, wcd42 inc [hl] push bc - ld a, [$CD41] - ld [$CD3D], a - callba Func_73b3f + ld a, [wTrainerScreenX] + ld [wWhichTrade], a + callba LoadHallOfFameTeams call Func_765e5 pop bc jr c, .second - ld hl, $CD41 + ld hl, wTrainerScreenX inc [hl] ld a, [hl] cp b @@ -40,7 +40,7 @@ PKMNLeaguePC: ; 0x7657e pop af ld [$ffD7], a pop af - ld [$CFCB], a + ld [wcfcb], a pop hl res 6, [hl] call GBPalWhiteOutWithDelay3 @@ -49,28 +49,28 @@ PKMNLeaguePC: ; 0x7657e jp GBPalNormal Func_765e5: ; 765e5 (1d:65e5) - ld c, 6 -.third + ld c, PARTY_LENGTH +.loop push bc call Func_76610 call WaitForTextScrollButtonPress - ld a, [H_CURRENTPRESSEDBUTTONS] + ld a, [hJoyHeld] bit 1, a - jr nz, .fifth - ld hl, $CC6B - ld de, $CC5B - ld bc, $0050 + jr nz, .exit + ld hl, wHallOfFame + HOF_MON + ld de, wHallOfFame + ld bc, HOF_TEAM - HOF_MON call CopyData pop bc - ld a, [$CC5B] - cp a, $FF - jr z, .fourth + ld a, [wHallOfFame + 0] + cp $ff + jr z, .done dec c - jr nz, .third -.fourth + jr nz, .loop +.done and a ret -.fifth +.exit pop bc scf ret @@ -78,38 +78,34 @@ Func_765e5: ; 765e5 (1d:65e5) Func_76610: ; 76610 (1d:6610) call GBPalWhiteOutWithDelay3 call ClearScreen - ld hl, $CC5B + ld hl, wHallOfFame ld a, [hli] - ld [$CD3D], a - ld [$CF91], a - ld [$D0B5], a - ld [$CFD9], a - ld [$CF1D], a + ld [wWhichTrade], a + ld [wcf91], a + ld [wd0b5], a + ld [wBattleMonSpecies2], a + ld [wcf1d], a ld a, [hli] - ld [$CD3F], a - ld de, $CD6D + ld [wTrainerFacingDirection], a + ld de, wcd6d ld bc, $000B call CopyData ld b, $0B ld c, 0 call GoPAL_SET - FuncCoord 12, 5 ; $c410 - ld hl, Coord + hlCoord 12, 5 call GetMonHeader call LoadFrontSpriteByMonIndex call GBPalNormal - FuncCoord 0, 13 ; $c4a4 - ld hl, Coord + hlCoord 0, 13 ld b, 2 ld c, $12 call TextBoxBorder - FuncCoord 1, 15 ; $c4cd - ld hl, Coord + hlCoord 1, 15 ld de, HallOfFameNoText call PlaceString - FuncCoord 16, 15 ; $c4dc - ld hl, Coord - ld de, $CD42 + hlCoord 16, 15 + ld de, wcd42 ld bc, $0103 call PrintNumber ld b, BANK(Func_702f0) diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 7e34feca..4044da43 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -2,82 +2,77 @@ MainMenu: ; 5af2 (1:5af2) ; Check save file call Func_5bff xor a - ld [$D08A],a + ld [wd08a],a inc a - ld [$D088],a + ld [wd088],a call Func_609e jr nc,.next0 ; Predef 52 loads the save from SRAM to RAM - ld a,$52 - call Predef + predef LoadSAV .next0 ld c,20 call DelayFrames xor a - ld [$D12B],a - ld hl,$CC2B + ld [W_ISLINKBATTLE],a + ld hl,wcc2b ld [hli],a ld [hli],a ld [hli],a ld [hl],a - ld [$D07C],a - ld hl,$D72E + ld [W_ANIMATIONID],a + ld hl,wd72e res 6,[hl] call ClearScreen call GoPAL_SET_CF1C call LoadTextBoxTilePatterns call LoadFontTilePatterns - ld hl,$D730 + ld hl,wd730 set 6,[hl] - ld a,[$D088] + ld a,[wd088] cp a,1 jr z,.next1 - FuncCoord 0,0 - ld hl,Coord + hlCoord 0, 0 ld b,6 ld c,13 call TextBoxBorder - FuncCoord 2,2 - ld hl,Coord + hlCoord 2, 2 ld de,ContinueText call PlaceString jr .next2 .next1 - FuncCoord 0,0 - ld hl,Coord + hlCoord 0, 0 ld b,4 ld c,13 call TextBoxBorder - FuncCoord 2,2 - ld hl,Coord + hlCoord 2, 2 ld de,NewGameText call PlaceString .next2 - ld hl,$D730 + ld hl,wd730 res 6,[hl] call UpdateSprites ; OAM? xor a - ld [$CC26],a - ld [$CC2A],a - ld [$CC34],a + ld [wCurrentMenuItem],a + ld [wLastMenuItem],a + ld [wMenuJoypadPollCount],a inc a - ld [$CC25],a + ld [wTopMenuItemX],a inc a - ld [$CC24],a + ld [wTopMenuItemY],a ld a,$B - ld [$CC29],a - ld a,[$D088] - ld [$CC28],a + ld [wMenuWatchedKeys],a + ld a,[wd088] + ld [wMaxMenuItem],a call HandleMenuInput bit 1,a jp nz,LoadTitlescreenGraphics ; load title screen (gfx and arrangement) ld c,20 call DelayFrames - ld a,[$CC26] + ld a,[wCurrentMenuItem] ld b,a - ld a,[$D088] + ld a,[wd088] cp a,2 jp z,.next3 inc b ; adjust MenuArrow_Counter @@ -89,19 +84,19 @@ MainMenu: ; 5af2 (1:5af2) jp z,Func_5d52 ; if press_A on NewGame call DisplayOptionMenu ; if press_a on Options ld a,1 - ld [$D08A],a + ld [wd08a],a jp .next0 .next4 call ContinueGame - ld hl,$D126 + ld hl,wd126 set 5,[hl] .next6 xor a - ld [H_NEWLYPRESSEDBUTTONS],a - ld [H_NEWLYRELEASEDBUTTONS],a - ld [H_CURRENTPRESSEDBUTTONS],a - call GetJoypadState - ld a,[H_CURRENTPRESSEDBUTTONS] + ld [hJoyPressed],a + ld [hJoyReleased],a + ld [hJoyHeld],a + call Joypad + ld a,[hJoyHeld] bit 0,a jr nz,.next5 bit 1,a @@ -111,52 +106,50 @@ MainMenu: ; 5af2 (1:5af2) call GBPalWhiteOutWithDelay3 call ClearScreen ld a,4 - ld [$D52A],a + ld [wd52a],a ld c,10 call DelayFrames - ld a,[$D5A2] + ld a,[wd5a2] and a jp z,Func_5d5f ld a,[W_CURMAP] ; map ID cp a,HALL_OF_FAME jp nz,Func_5d5f xor a - ld [$D71A],a - ld hl,$D732 + ld [wd71a],a + ld hl,wd732 set 2,[hl] call Func_62ce jp Func_5d5f Func_5bff: ; 5bff (1:5bff) ld a,1 - ld [$D358],a + ld [wd358],a ld a,3 - ld [$D355],a + ld [W_OPTIONS],a ret LinkMenu: ; 5c0a (1:5c0a) xor a - ld [$d358], a - ld hl, $d72e + ld [wd358], a + ld hl, wd72e set 6, [hl] ld hl, TextTerminator_6b20 ; $6b20 call PrintText call SaveScreenTilesToBuffer1 ld hl, WhereWouldYouLikeText call PrintText - FuncCoord 5, 5 ; $c409 - ld hl, Coord + hlCoord 5, 5 ld b, $6 ld c, $d call TextBoxBorder call UpdateSprites - FuncCoord 7, 7 ; $c433 - ld hl, Coord + hlCoord 7, 7 ld de, TradeCenterText call PlaceString xor a - ld [$cd37], a - ld [$d72d], a - ld hl, wTopMenuItemY ; $cc24 + ld [wcd37], a + ld [wd72d], a + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $7 ld [hli], a ld a, $6 @@ -176,19 +169,19 @@ LinkMenu: ; 5c0a (1:5c0a) add a add a ld b, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem add b add $d0 - ld [$cc42], a - ld [$cc43], a + ld [wcc42], a + ld [wcc43], a .asm_5c66 call Func_2247 - ld a, [$cc3d] + ld a, [wcc3d] ld b, a and $f0 cp $d0 jr z, .asm_5c7d - ld a, [$cc3e] + ld a, [wcc3e] ld b, a and $f0 cp $d0 @@ -197,12 +190,12 @@ LinkMenu: ; 5c0a (1:5c0a) ld a, b and $c jr nz, .asm_5c8b - ld a, [$cc42] + ld a, [wcc42] and $c jr z, .asm_5c52 jr .asm_5ca1 .asm_5c8b - ld a, [$cc42] + ld a, [wcc42] and $c jr z, .asm_5c98 ld a, [$ffaa] @@ -210,9 +203,9 @@ LinkMenu: ; 5c0a (1:5c0a) jr z, .asm_5ca1 .asm_5c98 ld a, b - ld [$cc42], a + ld [wcc42], a and $3 - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem .asm_5ca1 ld a, [$ffaa] cp $2 @@ -225,10 +218,10 @@ LinkMenu: ; 5c0a (1:5c0a) ld b, $7f ld c, $7f ld d, $ec - ld a, [$cc42] + ld a, [wcc42] and $8 jr nz, .asm_5ccc - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $2 jr z, .asm_5ccc ld c, d @@ -239,58 +232,55 @@ LinkMenu: ; 5c0a (1:5c0a) ld c, d .asm_5ccc ld a, b - FuncCoord 6, 7 ; $c432 - ld [Coord], a + Coorda 6, 7 ld a, c - FuncCoord 6, 9 ; $c45a - ld [Coord], a + Coorda 6, 9 ld a, d - FuncCoord 6, 11 ; $c482 - ld [Coord], a + Coorda 6, 11 ld c, $28 call DelayFrames call LoadScreenTilesFromBuffer1 - ld a, [$cc42] + ld a, [wcc42] and $8 jr nz, .asm_5d2d - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $2 jr z, .asm_5d2d xor a - ld [$d700], a - ld a, [wCurrentMenuItem] ; $cc26 + ld [wd700], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a ld a, TRADE_CENTER jr nz, .asm_5cfc ld a, BATTLE_CENTER .asm_5cfc - ld [$d72d], a + ld [wd72d], a ld hl, PleaseWaitText call PrintText ld c, $32 call DelayFrames - ld hl, $d732 + ld hl, wd732 res 1, [hl] - ld a, [W_ANIMATIONID] ; $d07c - ld [$d71a], a + ld a, [W_ANIMATIONID] ; W_ANIMATIONID + ld [wd71a], a call Func_62ce ld c, $14 call DelayFrames xor a - ld [wMenuJoypadPollCount], a ; $cc34 - ld [$cc42], a + ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount + ld [wcc42], a inc a - ld [W_ISLINKBATTLE], a ; $d12b - ld [$cc47], a + ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE + ld [wcc47], a jr Func_5d5f .asm_5d2d xor a - ld [wMenuJoypadPollCount], a ; $cc34 + ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount call Delay3 call Func_72d7 ld hl, LinkCanceledText call PrintText - ld hl, $d72e + ld hl, wd72e res 6, [hl] ret @@ -307,7 +297,7 @@ LinkCanceledText: ; 5d4d (1:5d4d) db "@" Func_5d52: ; 5d52 (1:5d52) - ld hl, $d732 + ld hl, wd732 res 1, [hl] call OakSpeech ld c, $14 @@ -315,16 +305,16 @@ Func_5d52: ; 5d52 (1:5d52) Func_5d5f: ; 5d5f (1:5d5f) xor a - ld [H_NEWLYPRESSEDBUTTONS], a - ld [H_CURRENTPRESSEDBUTTONS], a + ld [hJoyPressed], a + ld [hJoyHeld], a ld [$ffb5], a - ld [$d72d], a - ld hl, $d732 + ld [wd72d], a + ld hl, wd732 set 0, [hl] call ResetPlayerSpriteData ld c, $14 call DelayFrames - ld a, [$cc47] + ld a, [wcc47] and a ret nz jp EnterMap @@ -344,27 +334,21 @@ TradeCenterText: ; 5d97 (1:5d97) ContinueGame: ; 5db5 (1:5db5) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - FuncCoord 4, 7 ; $c430 - ld hl, Coord + hlCoord 4, 7 ld b, $8 ld c, $e call TextBoxBorder - FuncCoord 5, 9 ; $c459 - ld hl, Coord + hlCoord 5, 9 ld de, SaveScreenInfoText call PlaceString - FuncCoord 12, 9 ; $c460 - ld hl, Coord - ld de, W_PLAYERNAME ; $d158 + hlCoord 12, 9 + ld de, wPlayerName ; wd158 call PlaceString - FuncCoord 17, 11 ; $c48d - ld hl, Coord + hlCoord 17, 11 call Func_5e2f - FuncCoord 16, 13 ; $c4b4 - ld hl, Coord + hlCoord 16, 13 call Func_5e42 - FuncCoord 13, 15 ; $c4d9 - ld hl, Coord + hlCoord 13, 15 call Func_5e55 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba @@ -374,23 +358,23 @@ ContinueGame: ; 5db5 (1:5db5) PrintSaveScreenText: ; 5def (1:5def) xor a ld [H_AUTOBGTRANSFERENABLED], a - ld hl, $c3a4 + ld hl, wTileMap + $4 ld b, $8 ld c, $e call TextBoxBorder call LoadTextBoxTilePatterns call UpdateSprites - ld hl, $c3cd + ld hl, wTileMap + $2d ld de, SaveScreenInfoText call PlaceString - ld hl, $c3d4 - ld de, W_PLAYERNAME + ld hl, wTileMap + $34 + ld de, wPlayerName call PlaceString - ld hl, $c401 + ld hl, wTileMap + $61 call Func_5e2f - ld hl, $c428 + ld hl, wTileMap + $88 call Func_5e42 - ld hl, $c44d + ld hl, wTileMap + $ad call Func_5e55 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a @@ -403,27 +387,27 @@ Func_5e2f: ; 5e2f (1:5e2f) ld b, $1 call CountSetBits pop hl - ld de, $d11e + ld de, wd11e ld bc, $102 jp PrintNumber Func_5e42: ; 5e42 (1:5e42) push hl - ld hl, wPokedexOwned ; $d2f7 + ld hl, wPokedexOwned ; wPokedexOwned ld b, wPokedexOwnedEnd - wPokedexOwned call CountSetBits pop hl - ld de, $d11e + ld de, wd11e ld bc, $103 jp PrintNumber Func_5e55: ; 5e55 (1:5e55) - ld de, $da41 + ld de, W_PLAYTIMEHOURS + 1 ld bc, $103 call PrintNumber ld [hl], $6d inc hl - ld de, $da43 + ld de, W_PLAYTIMEMINUTES + 1 ld bc, $8102 jp PrintNumber @@ -434,47 +418,40 @@ SaveScreenInfoText: ; 5e6a (1:5e6a) next "TIME@" DisplayOptionMenu: ; 5e8a (1:5e8a) - FuncCoord 0,0 - ld hl,Coord + hlCoord 0, 0 ld b,3 ld c,18 call TextBoxBorder - FuncCoord 0,5 - ld hl,Coord + hlCoord 0, 5 ld b,3 ld c,18 call TextBoxBorder - FuncCoord 0,10 - ld hl,Coord + hlCoord 0, 10 ld b,3 ld c,18 call TextBoxBorder - FuncCoord 1,1 - ld hl,Coord + hlCoord 1, 1 ld de,TextSpeedOptionText call PlaceString - FuncCoord 1,6 - ld hl,Coord + hlCoord 1, 6 ld de,BattleAnimationOptionText call PlaceString - FuncCoord 1,11 - ld hl,Coord + hlCoord 1, 11 ld de,BattleStyleOptionText call PlaceString - FuncCoord 2,16 - ld hl,Coord + hlCoord 2, 16 ld de,OptionMenuCancelText call PlaceString xor a ld [wCurrentMenuItem],a ld [wLastMenuItem],a inc a - ld [$d358],a - ld [$cd40],a + ld [wd358],a + ld [wTrainerScreenY],a ld a,3 ; text speed cursor Y coordinate ld [wTopMenuItemY],a call SetCursorPositionsFromOptions - ld a,[$cd3d] ; text speed cursor X coordinate + ld a,[wWhichTrade] ; text speed cursor X coordinate ld [wTopMenuItemX],a ld a,$01 ld [H_AUTOBGTRANSFERENABLED],a ; enable auto background transfer @@ -483,7 +460,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) call PlaceMenuCursor call SetOptionsFromCursorPositions .getJoypadStateLoop - call GetJoypadStateLowSensitivity + call JoypadLowSensitivity ld a,[$ffb5] ld b,a and a,%11111011 ; any key besides select pressed? @@ -524,7 +501,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) .downPressed cp a,16 ld b,-13 - ld hl,$cd3d + ld hl,wWhichTrade jr z,.updateMenuVariables ld b,5 cp a,3 @@ -539,7 +516,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) .upPressed cp a,8 ld b,-5 - ld hl,$cd3d + ld hl,wWhichTrade jr z,.updateMenuVariables cp a,13 inc hl @@ -558,17 +535,17 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) call PlaceUnfilledArrowMenuCursor jp .loop .cursorInBattleAnimation - ld a,[$cd3e] ; battle animation cursor X coordinate + ld a,[wTrainerEngageDistance] ; battle animation cursor X coordinate xor a,$0b ; toggle between 1 and 10 - ld [$cd3e],a + ld [wTrainerEngageDistance],a jp .eraseOldMenuCursor .cursorInBattleStyle - ld a,[$cd3f] ; battle style cursor X coordinate + ld a,[wTrainerFacingDirection] ; battle style cursor X coordinate xor a,$0b ; toggle between 1 and 10 - ld [$cd3f],a + ld [wTrainerFacingDirection],a jp .eraseOldMenuCursor .pressedLeftInTextSpeed - ld a,[$cd3d] ; text speed cursor X coordinate + ld a,[wWhichTrade] ; text speed cursor X coordinate cp a,1 jr z,.updateTextSpeedXCoord cp a,7 @@ -579,7 +556,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) sub a,7 jr .updateTextSpeedXCoord .pressedRightInTextSpeed - ld a,[$cd3d] ; text speed cursor X coordinate + ld a,[wWhichTrade] ; text speed cursor X coordinate cp a,14 jr z,.updateTextSpeedXCoord cp a,7 @@ -589,7 +566,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) .fromFastToMedium add a,6 .updateTextSpeedXCoord - ld [$cd3d],a ; text speed cursor X coordinate + ld [wWhichTrade],a ; text speed cursor X coordinate jp .eraseOldMenuCursor TextSpeedOptionText: ; 5fc0 (1:5fc0) @@ -610,7 +587,7 @@ OptionMenuCancelText: ; 6018 (1:6018) ; sets the options variable according to the current placement of the menu cursors in the options menu SetOptionsFromCursorPositions: ; 601f (1:601f) ld hl,TextSpeedOptionData - ld a,[$cd3d] ; text speed cursor X coordinate + ld a,[wWhichTrade] ; text speed cursor X coordinate ld c,a .loop ld a,[hli] @@ -621,7 +598,7 @@ SetOptionsFromCursorPositions: ; 601f (1:601f) .textSpeedMatchFound ld a,[hl] ld d,a - ld a,[$cd3e] ; battle animation cursor X coordinate + ld a,[wTrainerEngageDistance] ; battle animation cursor X coordinate dec a jr z,.battleAnimationOn .battleAnimationOff @@ -630,7 +607,7 @@ SetOptionsFromCursorPositions: ; 601f (1:601f) .battleAnimationOn res 7,d .checkBattleStyle - ld a,[$cd3f] ; battle style cursor X coordinate + ld a,[wTrainerFacingDirection] ; battle style cursor X coordinate dec a jr z,.battleStyleShift .battleStyleSet @@ -655,31 +632,27 @@ SetCursorPositionsFromOptions: ; 604c (1:604c) pop bc dec hl ld a,[hl] - ld [$cd3d],a ; text speed cursor X coordinate - FuncCoord 0,3 - ld hl,Coord + ld [wWhichTrade],a ; text speed cursor X coordinate + hlCoord 0, 3 call .placeUnfilledRightArrow sla c ld a,1 ; On jr nc,.storeBattleAnimationCursorX ld a,10 ; Off .storeBattleAnimationCursorX - ld [$cd3e],a ; battle animation cursor X coordinate - FuncCoord 0,8 - ld hl,Coord + ld [wTrainerEngageDistance],a ; battle animation cursor X coordinate + hlCoord 0, 8 call .placeUnfilledRightArrow sla c ld a,1 jr nc,.storeBattleStyleCursorX ld a,10 .storeBattleStyleCursorX - ld [$cd3f],a ; battle style cursor X coordinate - FuncCoord 0,13 - ld hl,Coord + ld [wTrainerFacingDirection],a ; battle style cursor X coordinate + hlCoord 0, 13 call .placeUnfilledRightArrow ; cursor in front of Cancel - FuncCoord 0,16 - ld hl,Coord + hlCoord 0, 16 ld a,1 .placeUnfilledRightArrow ld e,a diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm index ea6f7de7..17aa96e6 100755 --- a/engine/menu/naming_screen.asm +++ b/engine/menu/naming_screen.asm @@ -1,37 +1,36 @@ -AskForMonNickname: ; 64eb (1:64eb) +AskName: ; 64eb (1:64eb) call SaveScreenTilesToBuffer1 - call Load16BitRegisters + call GetPredefRegisters push hl - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE dec a ld hl, wTileMap ld b, $4 ld c, $b call z, ClearScreenArea ; only if in wild batle - ld a, [$cf91] - ld [$d11e], a + ld a, [wcf91] + ld [wd11e], a call GetMonName ld hl, DoYouWantToNicknameText call PrintText - FuncCoord 14, 7 ; $c43a - ld hl, Coord + hlCoord 14, 7 ld bc, $80f ld a, $14 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID pop hl - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jr nz, .asm_654c - ld a, [$cfcb] + ld a, [wcfcb] push af xor a - ld [$cfcb], a + ld [wcfcb], a push hl ld a, $2 - ld [$d07d], a + ld [wd07d], a call DisplayNamingScreen - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE and a jr nz, .asm_653e call Func_3e08 @@ -39,14 +38,14 @@ AskForMonNickname: ; 64eb (1:64eb) call LoadScreenTilesFromBuffer1 pop hl pop af - ld [$cfcb], a - ld a, [$cf4b] + ld [wcfcb], a + ld a, [wcf4b] cp $50 ret nz .asm_654c ld d, h ld e, l - ld hl, $cd6d + ld hl, wcd6d ld bc, $000b jp CopyData @@ -55,25 +54,25 @@ DoYouWantToNicknameText: ; 0x6557 db "@" Func_655c: ; 655c (1:655c) - ld hl, $cee9 + ld hl, wHPBarMaxHP xor a - ld [$cfcb], a + ld [wcfcb], a ld a, $2 - ld [$d07d], a + ld [wd07d], a call DisplayNamingScreen call GBPalWhiteOutWithDelay3 call Func_3dbe call LoadGBPal - ld a, [$cf4b] + ld a, [wcf4b] cp $50 jr z, .asm_6594 - ld hl, W_PARTYMON1NAME ; $d2b5 + ld hl, wPartyMonNicks ; wPartyMonNicks ld bc, $b - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon call AddNTimes ld e, l ld d, h - ld hl, $cee9 + ld hl, wHPBarMaxHP ld bc, $b call CopyData and a @@ -84,7 +83,7 @@ Func_655c: ; 655c (1:655c) DisplayNamingScreen: ; 6596 (1:6596) push hl - ld hl, $d730 + ld hl, wd730 set 6, [hl] call GBPalWhiteOutWithDelay3 call ClearScreen @@ -94,47 +93,46 @@ DisplayNamingScreen: ; 6596 (1:6596) call LoadHpBarAndStatusTilePatterns call LoadEDTile callba Func_7176c - FuncCoord 0, 4 ; $c3f0 - ld hl, Coord + hlCoord 0, 4 ld b, $9 ld c, $12 call TextBoxBorder call PrintNamingText ld a, $3 - ld [wTopMenuItemY], a ; $cc24 + ld [wTopMenuItemY], a ; wTopMenuItemY ld a, $1 - ld [wTopMenuItemX], a ; $cc25 - ld [wLastMenuItem], a ; $cc2a - ld [wCurrentMenuItem], a ; $cc26 + ld [wTopMenuItemX], a ; wTopMenuItemX + ld [wLastMenuItem], a ; wLastMenuItem + ld [wCurrentMenuItem], a ; wCurrentMenuItem ld a, $ff - ld [wMenuWatchedKeys], a ; $cc29 + ld [wMenuWatchedKeys], a ; wMenuWatchedKeys ld a, $7 - ld [wMaxMenuItem], a ; $cc28 + ld [wMaxMenuItem], a ; wMaxMenuItem ld a, $50 - ld [$cf4b], a + ld [wcf4b], a xor a - ld hl, $ceea + ld hl, wHPBarMaxHP + 1 ld [hli], a ld [hli], a - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM .asm_65ed call PrintAlphabet call GBPalNormal .asm_65f3 - ld a, [$ceea] + ld a, [wHPBarMaxHP + 1] and a jr nz, .asm_662d call Func_680e .asm_65fc call PlaceMenuCursor .asm_65ff - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem push af callba AnimatePartyMon_ForceSpeed1 pop af - ld [wCurrentMenuItem], a ; $cc26 - call GetJoypadStateLowSensitivity - ld a, [H_NEWLYPRESSEDBUTTONS] + ld [wCurrentMenuItem], a ; wCurrentMenuItem + call JoypadLowSensitivity + ld a, [hJoyPressed] and a jr z, .asm_65ff ld hl, .unknownPointerTable_665e ; $665e @@ -158,19 +156,19 @@ DisplayNamingScreen: ; 6596 (1:6596) jp [hl] .asm_662d pop de - ld hl, $cf4b + ld hl, wcf4b ld bc, $b call CopyData call GBPalWhiteOutWithDelay3 call ClearScreen - call CleanLCD_OAM + call ClearSprites call GoPAL_SET_CF1C call GBPalNormal xor a - ld [W_SUBANIMTRANSFORM], a ; $d08b - ld hl, $d730 + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM + ld hl, wd730 res 6, [hl] - ld a, [W_ISINBATTLE] ; $d057 + ld a, [W_ISINBATTLE] ; W_ISINBATTLE and a jp z, LoadTextBoxTilePatterns ld hl, Func_3ee5b @@ -200,52 +198,52 @@ DisplayNamingScreen: ; 6596 (1:6596) ld de, .asm_65ed ; $65ed push de .asm_6683 - ld a, [$ceeb] + ld a, [wHPBarOldHP] xor $1 - ld [$ceeb], a + ld [wHPBarOldHP], a ret .asm_668c ld a, $1 - ld [$ceea], a + ld [wHPBarMaxHP + 1], a ret .asm_6692 - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $5 jr nz, .asm_66a0 - ld a, [wTopMenuItemX] ; $cc25 + ld a, [wTopMenuItemX] ; wTopMenuItemX cp $11 jr z, .asm_668c .asm_66a0 - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $6 jr nz, .asm_66ae - ld a, [wTopMenuItemX] ; $cc25 + ld a, [wTopMenuItemX] ; wTopMenuItemX cp $1 jr z, .asm_667e .asm_66ae - ld hl, wMenuCursorLocation ; $cc30 + ld hl, wMenuCursorLocation ; wMenuCursorLocation ld a, [hli] ld h, [hl] ld l, a inc hl ld a, [hl] - ld [$ceed], a + ld [wHPBarNewHP], a call CalcStringLength - ld a, [$ceed] + ld a, [wHPBarNewHP] cp $e5 ld de, Dakutens ; $6885 jr z, .asm_66e3 cp $e4 ld de, Handakutens ; $68d6 jr z, .asm_66e3 - ld a, [$d07d] + ld a, [wd07d] cp $2 jr nc, .checkMonNameLength - ld a, [$cee9] + ld a, [wHPBarMaxHP] cp $7 ; max length of player/rival names jr .checkNameLength .checkMonNameLength - ld a, [$cee9] + ld a, [wHPBarMaxHP] cp $a ; max length of pokemon nicknames .checkNameLength jr c, .addLetter @@ -257,14 +255,14 @@ DisplayNamingScreen: ; 6596 (1:6596) ret nc dec hl .addLetter - ld a, [$ceed] + ld a, [wHPBarNewHP] ld [hli], a ld [hl], $50 ld a, (SFX_02_40 - SFX_Headers_02) / 3 call PlaySound ret .deleteLetter - ld a, [$cee9] + ld a, [wHPBarMaxHP] and a ret z call CalcStringLength @@ -272,10 +270,10 @@ DisplayNamingScreen: ; 6596 (1:6596) ld [hl], $50 ret .asm_6702 - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $6 ret z - ld a, [wTopMenuItemX] ; $cc25 + ld a, [wTopMenuItemX] ; wTopMenuItemX cp $11 jp z, .asm_6714 inc a @@ -285,10 +283,10 @@ DisplayNamingScreen: ; 6596 (1:6596) ld a, $1 jr .asm_6755 .asm_6718 - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $6 ret z - ld a, [wTopMenuItemX] ; $cc25 + ld a, [wTopMenuItemX] ; wTopMenuItemX dec a jp z, .asm_6728 dec a @@ -297,35 +295,35 @@ DisplayNamingScreen: ; 6596 (1:6596) ld a, $11 jr .asm_6755 .asm_672c - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem dec a - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem and a ret nz ld a, $6 - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem ld a, $1 jr .asm_6755 .asm_673e - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem inc a - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem cp $7 jr nz, .asm_6750 ld a, $1 - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem jr .asm_6755 .asm_6750 cp $6 ret nz ld a, $1 .asm_6755 - ld [wTopMenuItemX], a ; $cc25 + ld [wTopMenuItemX], a ; wTopMenuItemX jp EraseMenuCursor LoadEDTile: ; 675b (1:675b) ld de, ED_Tile - ld hl, $8f00 + ld hl, vFont + $700 ld bc, $1 jp CopyVideoDataDouble @@ -335,14 +333,13 @@ ED_Tile: ; 6767 (1:6767) PrintAlphabet: ; 676f (1:676f) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld a, [$ceeb] + ld a, [wHPBarOldHP] and a ld de, LowerCaseAlphabet ; $679e jr nz, .asm_677e ld de, UpperCaseAlphabet ; $67d6 .asm_677e - FuncCoord 2, 5 ; $c406 - ld hl, Coord + hlCoord 2, 5 ld bc, $509 .asm_6784 push bc @@ -372,18 +369,15 @@ UpperCaseAlphabet: ; 67d6 (1:67d6) Func_680e: ; 680e (1:680e) call CalcStringLength ld a, c - ld [$cee9], a - FuncCoord 10, 2 ; $c3d2 - ld hl, Coord + ld [wHPBarMaxHP], a + hlCoord 10, 2 ld bc, $10a call ClearScreenArea - FuncCoord 10, 2 ; $c3d2 - ld hl, Coord - ld de, $cf4b + hlCoord 10, 2 + ld de, wcf4b call PlaceString - FuncCoord 10, 3 ; $c3e6 - ld hl, Coord - ld a, [$d07d] + hlCoord 10, 3 + ld a, [wd07d] cp $2 jr nc, .asm_6835 ld b, $7 @@ -396,9 +390,9 @@ Func_680e: ; 680e (1:680e) ld [hli], a dec b jr nz, .asm_6839 - ld a, [$d07d] + ld a, [wd07d] cp $2 - ld a, [$cee9] + ld a, [wHPBarMaxHP] jr nc, .asm_684b cp $7 jr .asm_684d @@ -408,10 +402,10 @@ Func_680e: ; 680e (1:680e) jr nz, .asm_6867 call EraseMenuCursor ld a, $11 - ld [wTopMenuItemX], a ; $cc25 + ld [wTopMenuItemX], a ; wTopMenuItemX ld a, $5 - ld [wCurrentMenuItem], a ; $cc26 - ld a, [$d07d] + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld a, [wd07d] cp $2 ld a, $9 jr nc, .asm_6867 @@ -419,8 +413,7 @@ Func_680e: ; 680e (1:680e) .asm_6867 ld c, a ld b, $0 - FuncCoord 10, 3 ; $c3e6 - ld hl, Coord + hlCoord 10, 3 add hl, bc ld [hl], $77 ret @@ -436,7 +429,7 @@ Func_6871: ; 6871 (1:6871) ret nc inc hl ld a, [hl] - ld [$ceed], a + ld [wHPBarNewHP], a ret Dakutens: ; 6885 (1:6885) @@ -455,9 +448,9 @@ Handakutens: ; 68d6 (1:68d6) db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ" db $ff -; calculates the length of the string at $cf4b and stores it in c +; calculates the length of the string at wcf4b and stores it in c CalcStringLength: ; 68eb (1:68eb) - ld hl, $cf4b + ld hl, wcf4b ld c, $0 .asm_68f0 ld a, [hl] @@ -468,30 +461,27 @@ CalcStringLength: ; 68eb (1:68eb) jr .asm_68f0 PrintNamingText: ; 68f8 (1:68f8) - FuncCoord 0, 1 ; $c3b4 - ld hl, Coord - ld a, [$d07d] + hlCoord 0, 1 + ld a, [wd07d] ld de, YourTextString ; $693f and a jr z, .notNickname ld de, RivalsTextString ; $6945 dec a jr z, .notNickname - ld a, [$cf91] - ld [$cd5d], a + ld a, [wcf91] + ld [wcd5d], a push af callba Func_71882 pop af - ld [$d11e], a + ld [wd11e], a call GetMonName - FuncCoord 4, 1 ; $c3b8 - ld hl, Coord + hlCoord 4, 1 call PlaceString ld hl, $1 add hl, bc ld [hl], $c9 - FuncCoord 1, 3 ; $c3dd - ld hl, Coord + hlCoord 1, 3 ld de, NicknameTextString ; $6953 jr .placeString .notNickname diff --git a/engine/menu/oaks_pc.asm b/engine/menu/oaks_pc.asm index 937786c1..6e7edda2 100755 --- a/engine/menu/oaks_pc.asm +++ b/engine/menu/oaks_pc.asm @@ -5,11 +5,10 @@ OpenOaksPC: ; 1e915 (7:6915) ld hl, GetDexRatedText call PrintText call YesNoChoice - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jr nz, .asm_1e932 - ld a, $56 - call Predef ; indirect jump to DisplayDexRating (44169 (11:4169)) + predef DisplayDexRating .asm_1e932 ld hl, ClosedOaksPCText call PrintText diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm index dbb6a40e..4e47361b 100755 --- a/engine/menu/party_menu.asm +++ b/engine/menu/party_menu.asm @@ -1,4 +1,4 @@ -; [$D07D] = menu type / message ID +; [wd07d] = menu type / message ID ; if less than $F0, it is a menu type ; menu types: ; 00: normal pokemon menu (e.g. Start menu) @@ -25,18 +25,17 @@ DrawPartyMenu_: ; 12cd2 (4:6cd2) callba Func_71791 ; load pokemon icon graphics RedrawPartyMenu_: ; 12ce3 (4:6ce3) - ld a,[$D07D] + ld a,[wd07d] cp a,$04 jp z,.printMessage call ErasePartyMenuCursors - callba SendBlkPacket_PartyMenu ; loads some data to $cf2e - FuncCoord 3,0 - ld hl,Coord - ld de,W_PARTYMON1 + callba SendBlkPacket_PartyMenu ; loads some data to wcf2e + hlCoord 3, 0 + ld de,wPartySpecies xor a ld c,a ld [$FF8C],a ; loop counter - ld [$CF2D],a + ld [wcf2d],a .loop ld a,[de] cp a,$FF ; reached the terminator? @@ -46,7 +45,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) push hl ld a,c push hl - ld hl,W_PARTYMON1NAME + ld hl,wPartyMonNicks call GetPartyMonName pop hl call PlaceString ; print the pokemon's name @@ -58,7 +57,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) call LoadMonData pop hl push hl - ld a,[$CC35] + ld a,[wcc35] and a ; is the player swapping pokemon positions? jr z,.skipUnfilledRightArrow ; if the player is swapping pokemon positions @@ -76,7 +75,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) inc hl inc hl .skipUnfilledRightArrow - ld a,[$D07D] ; menu type + ld a,[wd07d] ; menu type cp a,$03 jr z,.teachMoveMenu cp a,$05 @@ -84,7 +83,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) push hl ld bc,14 ; 14 columns to the right add hl,bc - ld de,$CF9C + ld de,wcf9c call PrintStatusCondition pop hl push hl @@ -93,8 +92,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) set 0,a ld [$FFF6],a add hl,bc - ld a,$60 - call Predef ; draw HP bar and prints current / max HP + predef Func_128f6 ; draw HP bar and prints current / max HP ld a,[$FFF6] res 0,a ld [$FFF6],a @@ -103,8 +101,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) jr .printLevel .teachMoveMenu push hl - ld a,$43 - call Predef ; check if the pokemon can learn the move + predef CanLearnTM ; check if the pokemon can learn the move pop hl ld de,.ableToLearnMoveText ld a,c @@ -137,25 +134,25 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) push hl ld hl,EvosMovesPointerTable ld b,0 - ld a,[$CF98] ; pokemon ID + ld a,[wcf98] ; pokemon ID dec a add a rl b ld c,a add hl,bc - ld de,$CD6D + ld de,wcd6d ld a,BANK(EvosMovesPointerTable) ld bc,2 call FarCopyData - ld hl,$CD6D + ld hl,wcd6d ld a,[hli] ld h,[hl] ld l,a - ld de,$CD6D + ld de,wcd6d ld a,BANK(EvosMovesPointerTable) ld bc,13 call FarCopyData - ld hl,$CD6D + ld hl,wcd6d ld de,.notAbleToEvolveText ; loop through the pokemon's evolution entries .checkEvolutionsLoop @@ -170,7 +167,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) dec hl dec hl ld b,[hl] - ld a,[$D156] ; evolution stone item ID + ld a,[wd156] ; evolution stone item ID inc hl inc hl inc hl @@ -194,12 +191,12 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) ld b,$0A call GoPAL_SET .printMessage - ld hl,$D730 + ld hl,wd730 ld a,[hl] push af push hl set 6,[hl] ; turn off letter printing delay - ld a,[$D07D] ; message ID + ld a,[wd07d] ; message ID cp a,$F0 jr nc,.printItemUseMessage add a @@ -230,8 +227,8 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) ld h,[hl] ld l,a push hl - ld a,[$CF06] - ld hl,W_PARTYMON1NAME + ld a,[wcf06] + ld hl,wPartyMonNicks call GetPartyMonName pop hl call PrintText @@ -315,14 +312,14 @@ RareCandyText: ; 12ec0 (4:6ec0) db "@" SetPartyMenuHealthBarColor: ; 12ec7 (4:6ec7) - ld hl, $cf1f - ld a, [$cf2d] + ld hl, wcf1f + ld a, [wcf2d] ld c, a ld b, $0 add hl, bc call GetHealthBarColor ld b, $fc call GoPAL_SET - ld hl, $cf2d + ld hl, wcf2d inc [hl] ret diff --git a/engine/menu/pc.asm b/engine/menu/pc.asm index a860c4b3..4df6c826 100755 --- a/engine/menu/pc.asm +++ b/engine/menu/pc.asm @@ -74,7 +74,7 @@ BillsPC: ; 17ee4 (5:7ee4) ld a, (SFX_02_47 - SFX_Headers_02) / 3 call PlaySound ;XXX: play sound or stop music call WaitForSoundToFinish ;XXX: wait for sound to be done - ld a, [$D7F1] ;has to do with having met Bill + ld a, [wd7f1] ;has to do with having met Bill bit 0, a jr nz, .billsPC ;if you've met bill, use that bill's instead of someone's ld hl, AccessedSomeonesPCText @@ -86,7 +86,7 @@ BillsPC: ; 17ee4 (5:7ee4) callba BillsPC_ ReloadMainMenu: ; 17f06 (5:7f06) xor a - ld [$CC3C], a + ld [wcc3c], a call ReloadMapData call UpdateSprites ;XXX: moves sprites jp PCMainMenu @@ -117,7 +117,7 @@ AccessedMyPCText: ; 17f32 (5:7f32) ; removes one of the specified item ID [$FFdb] from bag (if existent) RemoveItemByID: ; 17f37 (5:7f37) - ld hl, wBagItems ; $d31e + ld hl, wBagItems ; wd31e ld a, [$ffdb] ld b, a xor a @@ -135,8 +135,8 @@ RemoveItemByID: ; 17f37 (5:7f37) jr .asm_17f40 .asm_17f4f ld a, $1 - ld [$cf96], a + ld [wcf96], a ld a, [$ffdc] - ld [wWhichPokemon], a ; $cf92 - ld hl, wNumBagItems ; $d31d + ld [wWhichPokemon], a ; wWhichPokemon + ld hl, wNumBagItems ; wNumBagItems jp RemoveItemFromInventory diff --git a/engine/menu/players_pc.asm b/engine/menu/players_pc.asm index a89b745d..4ff1b16f 100755 --- a/engine/menu/players_pc.asm +++ b/engine/menu/players_pc.asm @@ -1,12 +1,12 @@ PlayerPC: ; 78e6 (1:78e6) - ld hl, $d730 + ld hl, wd730 set 6, [hl] ld a, ITEM_NAME ld [W_LISTTYPE], a call SaveScreenTilesToBuffer1 xor a - ld [$cc2c], a - ld [$ccd3], a + ld [wcc2c], a + ld [wccd3], a ld a, [wFlags_0xcd60] bit 3, a jr nz, Func_790c @@ -16,8 +16,8 @@ PlayerPC: ; 78e6 (1:78e6) call PrintText Func_790c: ; 790c (1:790c) - ld a, [$ccd3] - ld [wCurrentMenuItem], a ; $cc26 + ld a, [wccd3] + ld [wCurrentMenuItem], a ; wCurrentMenuItem ld hl, wFlags_0xcd60 set 5, [hl] call LoadScreenTilesFromBuffer2 @@ -26,11 +26,10 @@ Func_790c: ; 790c (1:790c) ld c, $e call TextBoxBorder call UpdateSprites - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 ld de, PlayersPCMenuEntries ; $7af5 call PlaceString - ld hl, wTopMenuItemY ; $cc24 + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $2 ld [hli], a dec a @@ -43,18 +42,18 @@ Func_790c: ; 790c (1:790c) ld [hli], a xor a ld [hl], a - ld hl, wListScrollOffset ; $cc36 + ld hl, wListScrollOffset ; wcc36 ld [hli], a ld [hl], a - ld [wPlayerMonNumber], a ; $cc2f + ld [wPlayerMonNumber], a ; wPlayerMonNumber ld hl, WhatDoYouWantText call PrintText call HandleMenuInput bit 1, a jp nz, Func_796d call PlaceUnfilledArrowMenuCursor - ld a, [wCurrentMenuItem] ; $cc26 - ld [$ccd3], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld [wccd3], a and a jp z, Func_7a12 dec a @@ -74,19 +73,19 @@ Func_796d: ; 796d (1:796d) res 5, [hl] call LoadScreenTilesFromBuffer2 xor a - ld [wListScrollOffset], a ; $cc36 - ld [$cc2c], a - ld hl, $d730 + ld [wListScrollOffset], a ; wcc36 + ld [wcc2c], a + ld hl, wd730 res 6, [hl] xor a - ld [$cc3c], a + ld [wcc3c], a ret Func_7995: ; 7995 (1:7995) xor a - ld [wCurrentMenuItem], a ; $cc26 - ld [wListScrollOffset], a ; $cc36 - ld a, [wNumBagItems] ; $d31d + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wListScrollOffset], a ; wcc36 + ld a, [wNumBagItems] ; wNumBagItems and a jr nz, Func_79ab ld hl, NothingToDepositText @@ -96,21 +95,21 @@ Func_7995: ; 7995 (1:7995) Func_79ab: ; 79ab (1:79ab) ld hl, WhatToDepositText call PrintText - ld hl, wNumBagItems ; $d31d + ld hl, wNumBagItems ; wNumBagItems ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a + ld [wcf8c], a xor a - ld [$cf93], a + ld [wcf93], a ld a, $3 - ld [wListMenuID], a ; $cf94 + ld [wListMenuID], a ; wListMenuID call DisplayListMenuID jp c, Func_790c call IsKeyItem ld a, $1 - ld [$cf96], a - ld a, [$d124] + ld [wcf96], a + ld a, [wd124] and a jr nz, .asm_79e7 ld hl, DepositHowManyText @@ -119,14 +118,14 @@ Func_79ab: ; 79ab (1:79ab) cp $ff jp z, Func_79ab .asm_79e7 - ld hl, wNumBoxItems ; $d53a + ld hl, wNumBoxItems ; wNumBoxItems call AddItemToInventory jr c, .asm_79f8 ld hl, NoRoomToStoreText call PrintText jp Func_79ab .asm_79f8 - ld hl, wNumBagItems ; $d31d + ld hl, wNumBagItems ; wNumBagItems call RemoveItemFromInventory call WaitForSoundToFinish ld a, (SFX_02_55 - SFX_Headers_02) / 3 @@ -138,9 +137,9 @@ Func_79ab: ; 79ab (1:79ab) Func_7a12: ; 7a12 (1:7a12) xor a - ld [wCurrentMenuItem], a ; $cc26 - ld [wListScrollOffset], a ; $cc36 - ld a, [wNumBoxItems] ; $d53a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wListScrollOffset], a ; wcc36 + ld a, [wNumBoxItems] ; wNumBoxItems and a jr nz, Func_7a28 ld hl, NothingStoredText @@ -150,21 +149,21 @@ Func_7a12: ; 7a12 (1:7a12) Func_7a28: ; 7a28 (1:7a28) ld hl, WhatToWithdrawText call PrintText - ld hl, wNumBoxItems ; $d53a + ld hl, wNumBoxItems ; wNumBoxItems ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a + ld [wcf8c], a xor a - ld [$cf93], a + ld [wcf93], a ld a, $3 - ld [wListMenuID], a ; $cf94 + ld [wListMenuID], a ; wListMenuID call DisplayListMenuID jp c, Func_790c call IsKeyItem ld a, $1 - ld [$cf96], a - ld a, [$d124] + ld [wcf96], a + ld a, [wd124] and a jr nz, .asm_7a64 ld hl, WithdrawHowManyText @@ -173,14 +172,14 @@ Func_7a28: ; 7a28 (1:7a28) cp $ff jp z, Func_7a28 .asm_7a64 - ld hl, wNumBagItems ; $d31d + ld hl, wNumBagItems ; wNumBagItems call AddItemToInventory jr c, .asm_7a75 ld hl, CantCarryMoreText call PrintText jp Func_7a28 .asm_7a75 - ld hl, wNumBoxItems ; $d53a + ld hl, wNumBoxItems ; wNumBoxItems call RemoveItemFromInventory call WaitForSoundToFinish ld a, (SFX_02_55 - SFX_Headers_02) / 3 @@ -192,9 +191,9 @@ Func_7a28: ; 7a28 (1:7a28) Func_7a8f: ; 7a8f (1:7a8f) xor a - ld [wCurrentMenuItem], a ; $cc26 - ld [wListScrollOffset], a ; $cc36 - ld a, [wNumBoxItems] ; $d53a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wListScrollOffset], a ; wcc36 + ld a, [wNumBoxItems] ; wNumBoxItems and a jr nz, Func_7aa5 ld hl, NothingStoredText @@ -204,15 +203,15 @@ Func_7a8f: ; 7a8f (1:7a8f) Func_7aa5: ; 7aa5 (1:7aa5) ld hl, WhatToTossText call PrintText - ld hl, wNumBoxItems ; $d53a + ld hl, wNumBoxItems ; wNumBoxItems ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a + ld [wcf8c], a xor a - ld [$cf93], a + ld [wcf93], a ld a, $3 - ld [wListMenuID], a ; $cf94 + ld [wListMenuID], a ; wListMenuID push hl call DisplayListMenuID pop hl @@ -221,11 +220,11 @@ Func_7aa5: ; 7aa5 (1:7aa5) call IsKeyItem pop hl ld a, $1 - ld [$cf96], a - ld a, [$d124] + ld [wcf96], a + ld a, [wd124] and a jr nz, .asm_7aef - ld a, [$cf91] + ld a, [wcf91] call IsItemHM jr c, .asm_7aef push hl diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm index dbb9f57f..63e440f8 100755 --- a/engine/menu/pokedex.asm +++ b/engine/menu/pokedex.asm @@ -1,4 +1,4 @@ -DisplayPokedexMenu_: ; 40000 (10:4000) +ShowPokedexMenu: ; 40000 (10:4000) call GBPalWhiteOut call ClearScreen call UpdateSprites ; move sprites @@ -9,7 +9,7 @@ DisplayPokedexMenu_: ; 40000 (10:4000) ld [wListScrollOffset],a ld [wLastMenuItem],a inc a - ld [$d11e],a + ld [wd11e],a ld [$ffb7],a .setUpGraphics ld b,$08 @@ -22,7 +22,7 @@ DisplayPokedexMenu_: ; 40000 (10:4000) xor a ld [hli],a ; top menu item X inc a - ld [$cc37],a + ld [wcc37],a inc hl inc hl ld a,6 @@ -32,12 +32,12 @@ DisplayPokedexMenu_: ; 40000 (10:4000) jr c,.goToSideMenu ; if the player chose a pokemon from the list .exitPokedex xor a - ld [$cc37],a + ld [wcc37],a ld [wCurrentMenuItem],a ld [wLastMenuItem],a ld [$ffb7],a - ld [$cd3a],a - ld [$cd3b],a + ld [wcd3a],a + ld [wcd3b],a pop af ld [wListScrollOffset],a call GBPalWhiteOutWithDelay3 @@ -68,10 +68,10 @@ HandlePokedexSideMenu: ; 4006d (10:406d) push af add b inc a - ld [$d11e],a - ld a,[$d11e] + ld [wd11e],a + ld a,[wd11e] push af - ld a,[$cd3d] + ld a,[wWhichTrade] push af ld hl,wPokedexSeen call IsPokemonBitSet @@ -91,7 +91,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d) ld [hli],a ; menu watched keys (A button and B button) xor a ld [hli],a ; old menu item ID - ld [$cc37],a + ld [wcc37],a .handleMenuInput call HandleMenuInput bit 1,a ; was the B button pressed? @@ -108,9 +108,9 @@ HandlePokedexSideMenu: ; 4006d (10:406d) ld b,1 .exitSideMenu pop af - ld [$cd3d],a + ld [wWhichTrade],a pop af - ld [$d11e],a + ld [wd11e],a pop af ld [wListScrollOffset],a pop af @@ -118,8 +118,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d) pop af ld [wCurrentMenuItem],a push bc - FuncCoord 0,3 - ld hl,Coord + hlCoord 0, 3 ld de,20 ld bc,$7f0d ; 13 blank tiles call DrawTileLine ; cover up the menu cursor in the pokemon list @@ -127,8 +126,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d) ret .buttonBPressed push bc - FuncCoord 15,10 - ld hl,Coord + hlCoord 15, 10 ld de,20 ld bc,$7f07 ; 7 blank tiles call DrawTileLine ; cover up the menu cursor in the side menu @@ -140,13 +138,12 @@ HandlePokedexSideMenu: ; 4006d (10:406d) jr .exitSideMenu ; play pokemon cry .choseCry - ld a,[$d11e] + ld a,[wd11e] call GetCryData ; get cry data call PlaySound ; play sound jr .handleMenuInput .choseArea - ld a,$4a - call Predef ; display pokemon areas + predef LoadTownMap_Nest ; display pokemon areas ld b,0 jr .exitSideMenu @@ -156,53 +153,43 @@ HandlePokedexListMenu: ; 40111 (10:4111) xor a ld [H_AUTOBGTRANSFERENABLED],a ; draw the horizontal line separating the seen and owned amounts from the menu - FuncCoord 15,8 - ld hl,Coord + hlCoord 15, 8 ld a,$7a ; horizontal line tile ld [hli],a ld [hli],a ld [hli],a ld [hli],a ld [hli],a - FuncCoord 14,0 - ld hl,Coord + hlCoord 14, 0 ld [hl],$71 ; vertical line tile - FuncCoord 14,1 - ld hl,Coord + hlCoord 14, 1 call DrawPokedexVerticalLine - FuncCoord 14,9 - ld hl,Coord + hlCoord 14, 9 call DrawPokedexVerticalLine ld hl,wPokedexSeen ld b,wPokedexSeenEnd - wPokedexSeen call CountSetBits - ld de,$d11e - FuncCoord 16,3 - ld hl,Coord + ld de,wd11e + hlCoord 16, 3 ld bc,$0103 call PrintNumber ; print number of seen pokemon ld hl,wPokedexOwned ld b,wPokedexOwnedEnd - wPokedexOwned call CountSetBits - ld de,$d11e - FuncCoord 16,6 - ld hl,Coord + ld de,wd11e + hlCoord 16, 6 ld bc,$0103 call PrintNumber ; print number of owned pokemon - FuncCoord 16,2 - ld hl,Coord + hlCoord 16, 2 ld de,PokedexSeenText call PlaceString - FuncCoord 16,5 - ld hl,Coord + hlCoord 16, 5 ld de,PokedexOwnText call PlaceString - FuncCoord 1,1 - ld hl,Coord + hlCoord 1, 1 ld de,PokedexContentsText call PlaceString - FuncCoord 16,10 - ld hl,Coord + hlCoord 16, 10 ld de,PokedexMenuItemsText call PlaceString ; find the highest pokedex number among the pokemon the player has seen @@ -220,20 +207,18 @@ HandlePokedexListMenu: ; 40111 (10:4111) jr .maxSeenPokemonLoop .storeMaxSeenPokemon ld a,b - ld [$cd3d],a ; max seen pokemon + ld [wWhichTrade],a ; max seen pokemon .loop xor a ld [H_AUTOBGTRANSFERENABLED],a - FuncCoord 4,2 - ld hl,Coord + hlCoord 4, 2 ld bc,$0e0a call ClearScreenArea - FuncCoord 1,3 - ld hl,Coord + hlCoord 1, 3 ld a,[wListScrollOffset] - ld [$d11e],a + ld [wd11e],a ld d,7 - ld a,[$cd3d] + ld a,[wWhichTrade] cp a,7 jr nc,.printPokemonLoop ld d,a @@ -242,15 +227,15 @@ HandlePokedexListMenu: ; 40111 (10:4111) ; loop to print pokemon pokedex numbers and names ; if the player has owned the pokemon, it puts a pokeball beside the name .printPokemonLoop - ld a,[$d11e] + ld a,[wd11e] inc a - ld [$d11e],a + ld [wd11e],a push af push de push hl ld de,-20 add hl,de - ld de,$d11e + ld de,wd11e ld bc,$8103 call PrintNumber ; print the pokedex number ld de,20 @@ -285,7 +270,7 @@ HandlePokedexListMenu: ; 40111 (10:4111) add hl,bc pop de pop af - ld [$d11e],a + ld [wd11e],a dec d jr nz,.printPokemonLoop ld a,01 @@ -309,7 +294,7 @@ HandlePokedexListMenu: ; 40111 (10:4111) bit 7,a ; was Down pressed? jr z,.checkIfRightPressed .downPressed ; scroll down one row - ld a,[$cd3d] + ld a,[wWhichTrade] cp a,7 jp c,.loop sub a,7 @@ -324,7 +309,7 @@ HandlePokedexListMenu: ; 40111 (10:4111) bit 4,a ; was Right pressed? jr z,.checkIfLeftPressed .rightPressed ; scroll down 7 rows - ld a,[$cd3d] + ld a,[wWhichTrade] cp a,7 jp c,.loop sub a,6 @@ -385,15 +370,14 @@ PokedexMenuItemsText: ; 402af (10:42af) ; tests if a pokemon's bit is set in the seen or owned pokemon bit fields ; INPUT: -; [$d11e] = pokedex number +; [wd11e] = pokedex number ; hl = address of bit field IsPokemonBitSet: ; 402c2 (10:42c2) - ld a,[$d11e] + ld a,[wd11e] dec a ld c,a ld b,2 - ld a,$10 - call Predef + predef FlagActionPredef ld a,c and a ret @@ -407,67 +391,56 @@ ShowPokedexData: ; 402d1 (10:42d1) ; function to display pokedex data from inside the pokedex ShowPokedexDataInternal: ; 402e2 (10:42e2) - ld hl,$d72c + ld hl,wd72c set 1,[hl] ld a,$33 ; 3/7 volume ld [$ff24],a call GBPalWhiteOut ; zero all palettes call ClearScreen - ld a,[$d11e] ; pokemon ID - ld [$cf91],a + ld a,[wd11e] ; pokemon ID + ld [wcf91],a push af ld b,04 call GoPAL_SET pop af - ld [$d11e],a + ld [wd11e],a ld a,[$ffd7] push af xor a ld [$ffd7],a - FuncCoord 0,0 - ld hl,Coord + hlCoord 0, 0 ld de,1 ld bc,$6414 call DrawTileLine ; draw top border - FuncCoord 0,17 - ld hl,Coord + hlCoord 0, 17 ld b,$6f call DrawTileLine ; draw bottom border - FuncCoord 0,1 - ld hl,Coord + hlCoord 0, 1 ld de,20 ld bc,$6610 call DrawTileLine ; draw left border - FuncCoord 19,1 - ld hl,Coord + hlCoord 19, 1 ld b,$67 call DrawTileLine ; draw right border - FuncCoord 0,0 ld a,$63 ; upper left corner tile - ld [Coord],a - FuncCoord 19,0 + Coorda 0, 0 ld a,$65 ; upper right corner tile - ld [Coord],a - FuncCoord 0,17 + Coorda 19, 0 ld a,$6c ; lower left corner tile - ld [Coord],a - FuncCoord 19,17 + Coorda 0, 17 ld a,$6e ; lower right corner tile - ld [Coord],a - FuncCoord 0,9 - ld hl,Coord + Coorda 19, 17 + hlCoord 0, 9 ld de,PokedexDataDividerLine call PlaceString ; draw horizontal divider line - FuncCoord 9,6 - ld hl,Coord + hlCoord 9, 6 ld de,HeightWeightText call PlaceString call GetMonName - FuncCoord 9,2 - ld hl,Coord + hlCoord 9, 2 call PlaceString ld hl,PokedexEntryPointers - ld a,[$d11e] + ld a,[wd11e] dec a ld e,a ld d,0 @@ -476,30 +449,28 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld a,[hli] ld e,a ld d,[hl] ; de = address of pokedex entry - FuncCoord 9,4 - ld hl,Coord + hlCoord 9, 4 call PlaceString ; print species name ld h,b ld l,c push de - ld a,[$d11e] + ld a,[wd11e] push af call IndexToPokedex - FuncCoord 2,8 - ld hl,Coord + hlCoord 2, 8 ld a, "№" ld [hli],a ld a,$f2 ld [hli],a - ld de,$d11e + ld de,wd11e ld bc,$8103 call PrintNumber ; print pokedex number ld hl,wPokedexOwned call IsPokemonBitSet pop af - ld [$d11e],a - ld a,[$cf91] - ld [$d0b5],a + ld [wd11e],a + ld a,[wcf91] + ld [wd0b5],a pop de push af push bc @@ -508,10 +479,9 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) call Delay3 call GBPalNormal call GetMonHeader ; load pokemon picture location - FuncCoord 1,1 - ld hl,Coord + hlCoord 1, 1 call LoadFlippedFrontSpriteByMonIndex ; draw pokemon picture - ld a,[$cf91] + ld a,[wcf91] call PlayCry ; play pokemon cry pop hl pop de @@ -522,16 +492,14 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) jp z,.waitForButtonPress ; if the pokemon has not been owned, don't print the height, weight, or description inc de ; de = address of feet (height) ld a,[de] ; reads feet, but a is overwritten without being used - FuncCoord 12,6 - ld hl,Coord + hlCoord 12, 6 ld bc,$0102 call PrintNumber ; print feet (height) ld a,$60 ; feet symbol tile (one tick) ld [hl],a inc de inc de ; de = address of inches (height) - FuncCoord 15,6 - ld hl,Coord + hlCoord 15, 6 ld bc,$8102 call PrintNumber ; print inches (height) ld a,$61 ; inches symbol tile (two ticks) @@ -552,13 +520,11 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) dec de ld a,[de] ; a = lower byte of weight ld [hl],a ; store lower byte of weight in [$ff8c] - FuncCoord 11,8 ld de,$ff8b - ld hl,Coord + hlCoord 11, 8 ld bc,$0205 ; no leading zeroes, right-aligned, 2 bytes, 5 digits call PrintNumber ; print weight - FuncCoord 14,8 - ld hl,Coord + hlCoord 14, 8 ld a,[$ff8c] sub a,10 ld a,[$ff8b] @@ -576,15 +542,14 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld [$ff8b],a ; restore original value of [$ff8b] pop hl inc hl ; hl = address of pokedex description text - FuncCoord 1,11 - ld bc,Coord + bcCoord 1, 11 ld a,2 ld [$fff4],a call TextCommandProcessor ; print pokedex description text xor a ld [$fff4],a .waitForButtonPress - call GetJoypadStateLowSensitivity + call JoypadLowSensitivity ld a,[$ffb5] and a,%00000011 ; A button and B button jr z,.waitForButtonPress @@ -595,7 +560,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) call GoPAL_SET_CF1C call LoadTextBoxTilePatterns call GBPalNormal - ld hl,$d72c + ld hl,wd72c res 1,[hl] ld a,$77 ; max volume ld [$ff24],a @@ -637,10 +602,10 @@ DrawTileLine: ; 40474 (10:4474) INCLUDE "data/pokedex_entries.asm" PokedexToIndex: ; 40ff9 (10:4ff9) - ; converts the Pokédex number at $D11E to an index + ; converts the Pokédex number at wd11e to an index push bc push hl - ld a,[$D11E] + ld a,[wd11e] ld b,a ld c,0 ld hl,PokedexOrder @@ -652,23 +617,23 @@ PokedexToIndex: ; 40ff9 (10:4ff9) jr nz,.loop ld a,c - ld [$D11E],a + ld [wd11e],a pop hl pop bc ret IndexToPokedex: ; 41010 (10:5010) - ; converts the indexédex number at $D11E to a Pokédex number + ; converts the indexédex number at wd11e to a Pokédex number push bc push hl - ld a,[$D11E] + ld a,[wd11e] dec a ld hl,PokedexOrder ld b,0 ld c,a add hl,bc ld a,[hl] - ld [$D11E],a + ld [wd11e],a pop hl pop bc ret diff --git a/engine/menu/prize_menu.asm b/engine/menu/prize_menu.asm index 79de7029..141b9beb 100755 --- a/engine/menu/prize_menu.asm +++ b/engine/menu/prize_menu.asm @@ -5,25 +5,24 @@ CeladonPrizeMenu: ; 5271b (14:671b) ld hl,RequireCoinCaseTextPtr jp PrintText .havingCoinCase - ld hl,$D730 + ld hl,wd730 set 6,[hl] ld hl,ExchangeCoinsForPrizesTextPtr call PrintText ; the following are the menu settings xor a - ld [$CC26],a - ld [$CC2A],a + ld [wCurrentMenuItem],a + ld [wLastMenuItem],a ld a,$03 - ld [$CC29],a + ld [wMenuWatchedKeys],a ld a,$03 - ld [$CC28],a + ld [wMaxMenuItem],a ld a,$04 - ld [$CC24],a + ld [wTopMenuItemY],a ld a,$01 - ld [$CC25],a + ld [wTopMenuItemX],a call PrintPrizePrice ; 687A - FuncCoord 0,2 - ld hl,Coord + hlCoord 0, 2 ld b,$08 ld c,$10 call TextBoxBorder @@ -34,12 +33,12 @@ CeladonPrizeMenu: ; 5271b (14:671b) call HandleMenuInput ; menu choice handler bit 1,a ; keypress = B (Cancel) jr nz,.NoChoice - ld a,[$CC26] + ld a,[wCurrentMenuItem] cp a,$03 ; "NO,THANKS" choice jr z,.NoChoice call HandlePrizeChoice ; 14:68C6 .NoChoice - ld hl,$D730 + ld hl,wd730 res 6,[hl] ret @@ -60,14 +59,14 @@ GetPrizeMenuId: ; 5278e (14:678e) ; determine which one among the three ; prize-texts has been selected ; using the text ID (stored in [$FF8C]) -; load the three prizes at $D13D-$D13F -; load the three prices at $D141-$D146 +; load the three prizes at wd13d-wd13f +; load the three prices at wd141-wd146 ; display the three prizes' names ; (distinguishing between Pokemon names ; and Items (specifically TMs) names) ld a,[$FF8C] sub a,$03 ; prize-texts' id are 3, 4 and 5 - ld [$D12F],a ; prize-texts' id (relative, i.e. 0, 1 or 2) + ld [wd12f],a ; prize-texts' id (relative, i.e. 0, 1 or 2) add a add a ld d,$00 @@ -85,59 +84,51 @@ GetPrizeMenuId: ; 5278e (14:678e) ld a,[hli] ld h,[hl] ld l,a - ld de,$D141 + ld de,wd141 ld bc,$0006 call CopyData - ld a,[$D12F] + ld a,[wd12f] cp a,$02 ;is TM_menu? jr nz,.putMonName ld a,[W_PRIZE1] - ld [$D11E],a + ld [wd11e],a call GetItemName - FuncCoord 2,4 - ld hl,Coord + hlCoord 2, 4 call PlaceString ld a,[W_PRIZE2] - ld [$D11E],a + ld [wd11e],a call GetItemName - FuncCoord 2,6 - ld hl,Coord + hlCoord 2, 6 call PlaceString ld a,[W_PRIZE3] - ld [$D11E],a + ld [wd11e],a call GetItemName - FuncCoord 2,8 - ld hl,Coord + hlCoord 2, 8 call PlaceString jr .putNoThanksText .putMonName ; 14:67EC ld a,[W_PRIZE1] - ld [$D11E],a + ld [wd11e],a call GetMonName - FuncCoord 2,4 - ld hl,Coord + hlCoord 2, 4 call PlaceString ld a,[W_PRIZE2] - ld [$D11E],a + ld [wd11e],a call GetMonName - FuncCoord 2,6 - ld hl,Coord + hlCoord 2, 6 call PlaceString ld a,[W_PRIZE3] - ld [$D11E],a + ld [wd11e],a call GetMonName - FuncCoord 2,8 - ld hl,Coord + hlCoord 2, 8 call PlaceString .putNoThanksText ; 14:6819 - FuncCoord 2,10 - ld hl,Coord + hlCoord 2, 10 ld de,NoThanksText call PlaceString ; put prices on the right side of the textbox - ld de,$D141 - FuncCoord 13,5 - ld hl,Coord + ld de,wd141 + hlCoord 13, 5 ; reg. c: ; [low nybble] number of bytes ; [bit 765 = %100] space-padding (not zero-padding) @@ -145,36 +136,30 @@ GetPrizeMenuId: ; 5278e (14:678e) ; Function $15CD displays BCD value (same routine ; used by text-command $02) call PrintBCDNumber ; Print_BCD - ld de,$D143 - FuncCoord 13,7 - ld hl,Coord + ld de,wd143 + hlCoord 13, 7 ld c,(%1 << 7 | 2) call PrintBCDNumber - ld de,$D145 - FuncCoord 13,9 - ld hl,Coord + ld de,wd145 + hlCoord 13, 9 ld c,(1 << 7 | 2) jp PrintBCDNumber INCLUDE "data/prizes.asm" PrintPrizePrice: ; 5287a (14:687a) - FuncCoord 11,0 - ld hl,Coord + hlCoord 11, 0 ld b,$01 ld c,$07 call TextBoxBorder call UpdateSprites ; XXX save OAM? - FuncCoord 12,0 - ld hl,Coord + hlCoord 12, 0 ld de,.CoinText call PlaceString - FuncCoord 13,1 - ld hl,Coord + hlCoord 13, 1 ld de,.SixSpacesText call PlaceString - FuncCoord 13,1 - ld hl,Coord + hlCoord 13, 1 ld de,wPlayerCoins ld c,%10000010 call PrintBCDNumber @@ -187,11 +172,11 @@ PrintPrizePrice: ; 5287a (14:687a) db " @" LoadCoinsToSubtract: ; 528b1 (14:68b1) - ld a,[$D139] ; backup of selected menu_entry + ld a,[wd139] ; backup of selected menu_entry add a ld d,$00 ld e,a - ld hl,$D141 ; first prize's price + ld hl,wd141 ; first prize's price add hl,de ; get selected prize's price xor a ld [$FF9F],a @@ -202,15 +187,15 @@ LoadCoinsToSubtract: ; 528b1 (14:68b1) ret HandlePrizeChoice: ; 528c6 (14:68c6) - ld a,[$CC26] ; selected menu_entry - ld [$D139],a + ld a,[wCurrentMenuItem] ; selected menu_entry + ld [wd139],a ld d,$00 ld e,a ld hl,W_PRIZE1 add hl,de ld a,[hl] - ld [$D11E],a - ld a,[$D12F] + ld [wd11e],a + ld a,[wd12f] cp a,$02 ; is prize a TM? jr nz,.GetMonName call GetItemName @@ -221,16 +206,16 @@ HandlePrizeChoice: ; 528c6 (14:68c6) ld hl,SoYouWantPrizeTextPtr call PrintText call YesNoChoice ; yes/no textbox - ld a,[$CC26] ; yes/no answer (Y=0, N=1) + ld a,[wCurrentMenuItem] ; yes/no answer (Y=0, N=1) and a jr nz,.PrintOhFineThen call LoadCoinsToSubtract call HasEnoughCoins jr c,.NotEnoughCoins - ld a,[$D12F] + ld a,[wd12f] cp a,$02 jr nz,.GiveMon - ld a,[$D11E] + ld a,[wd11e] ld b,a ld a,1 ld c,a @@ -238,8 +223,8 @@ HandlePrizeChoice: ; 528c6 (14:68c6) jr nc,.BagFull jr .SubtractCoins .GiveMon ; 14:6912 - ld a,[$D11E] - ld [$CF91],a + ld a,[wd11e] + ld [wcf91],a push af call GetPrizeMonLevel ; 14:6977 ld c,a @@ -247,7 +232,7 @@ HandlePrizeChoice: ; 528c6 (14:68c6) ld b,a call GivePokemon push af - ld a,[$CCD3] ; XXX is there room? + ld a,[wccd3] ; XXX is there room? and a call z,WaitForTextScrollButtonPress pop af @@ -257,8 +242,7 @@ HandlePrizeChoice: ; 528c6 (14:68c6) ld hl,$FFA1 ld de,wPlayerCoins + 1 ld c,$02 ; how many bytes - ld a,$0C - call Predef ; subtract coins (BCD daa operations) + predef SubBCDPredef ; subtract coins (BCD daa operations) jp PrintPrizePrice .BagFull ld hl,PrizeRoomBagIsFullTextPtr @@ -299,7 +283,7 @@ OhFineThenTextPtr: ; 52971 (14:6971) db "@" GetPrizeMonLevel: ; 52977 (14:6977) - ld a,[$CF91] + ld a,[wcf91] ld b,a ld hl,PrizeMonLevelDictionary .loop ; 14:697E @@ -310,7 +294,7 @@ GetPrizeMonLevel: ; 52977 (14:6977) jr .loop .matchFound ; 14:6985 ld a,[hl] - ld [$D127],a + ld [W_CURENEMYLVL],a ret INCLUDE "data/prize_mon_levels.asm" diff --git a/engine/menu/start_menu.asm b/engine/menu/start_menu.asm index 774f604d..be172a67 100755 --- a/engine/menu/start_menu.asm +++ b/engine/menu/start_menu.asm @@ -2,8 +2,8 @@ DisplayStartMenu:: ; 2acd (0:2acd) ld a,$04 ; hardcoded Bank, not sure what's it refers to ld [H_LOADEDROMBANK],a ld [$2000],a ; ROM bank 4 - ld a,[$d700] ; walking/biking/surfing - ld [$d11a],a + ld a,[wd700] ; walking/biking/surfing + ld [wd11a],a ld a, (SFX_02_3f - SFX_Headers_02) / 3 ; Start menu sound call PlaySound @@ -24,7 +24,7 @@ RedisplayStartMenu:: ; 2adf (0:2adf) and a jr nz,.loop ; if the player pressed tried to go past the top item, wrap around to the bottom - ld a,[$d74b] + ld a,[wd74b] bit 5,a ; does the player have the pokedex? ld a,6 ; there are 7 menu items with the pokedex, so the max index is 6 jr nz,.wrapMenuItemId @@ -37,7 +37,7 @@ RedisplayStartMenu:: ; 2adf (0:2adf) bit 7,a jr z,.buttonPressed ; if the player pressed tried to go past the bottom item, wrap around to the top - ld a,[$d74b] + ld a,[wd74b] bit 5,a ; does the player have the pokedex? ld a,[wCurrentMenuItem] ld c,7 ; there are 7 menu items with the pokedex @@ -54,12 +54,12 @@ RedisplayStartMenu:: ; 2adf (0:2adf) .buttonPressed ; A, B, or Start button pressed call PlaceUnfilledArrowMenuCursor ld a,[wCurrentMenuItem] - ld [$cc2d],a ; save current menu item ID + ld [wcc2d],a ; save current menu item ID ld a,b and a,%00001010 ; was the Start button or B button pressed? jp nz,CloseStartMenu call SaveScreenTilesToBuffer2 ; copy background from wTileMap to wTileMapBackup2 - ld a,[$d74b] + ld a,[wd74b] bit 5,a ; does the player have the pokedex? ld a,[wCurrentMenuItem] jr nz,.displayMenuItem @@ -80,8 +80,8 @@ RedisplayStartMenu:: ; 2adf (0:2adf) ; EXIT falls through to here CloseStartMenu:: ; 2b70 (0:2b70) - call GetJoypadState - ld a,[H_NEWLYPRESSEDBUTTONS] + call Joypad + ld a,[hJoyPressed] bit 0,a ; was A button newly pressed? jr nz,CloseStartMenu call LoadTextBoxTilePatterns diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index 60893d81..7c6fe4d6 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -1,6 +1,5 @@ StartMenu_Pokedex: ; 13095 (4:7095) - ld a,$29 - call Predef + predef ShowPokedexMenu call LoadScreenTilesFromBuffer2 ; restore saved screen call Delay3 call LoadGBPal @@ -8,19 +7,19 @@ StartMenu_Pokedex: ; 13095 (4:7095) jp RedisplayStartMenu StartMenu_Pokemon: ; 130a9 (4:70a9) - ld a,[W_NUMINPARTY] + ld a,[wPartyCount] and a jp z,RedisplayStartMenu xor a - ld [$cc35],a - ld [$d07d],a - ld [$cfcb],a + ld [wcc35],a + ld [wd07d],a + ld [wcfcb],a call DisplayPartyMenu jr .checkIfPokemonChosen .loop xor a - ld [$cc35],a - ld [$d07d],a + ld [wcc35],a + ld [wd07d],a call GoBackToPartyMenu .checkIfPokemonChosen jr nc,.chosePokemon @@ -32,9 +31,9 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) .chosePokemon call SaveScreenTilesToBuffer1 ; save screen ld a,$04 - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ; display pokemon menu options - ld hl,$cd3d + ld hl,wWhichTrade ld bc,$020c ; max menu item ID, top menu item Y ld e,5 .adjustMenuVariablesLoop @@ -82,32 +81,30 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) jp z,.choseStats ld c,a ld b,0 - ld hl,$cd3d + ld hl,wWhichTrade add hl,bc jp .choseOutOfBattleMove .choseSwitch - ld a,[W_NUMINPARTY] + ld a,[wPartyCount] cp a,2 ; is there more than one pokemon in the party? jp c,StartMenu_Pokemon ; if not, no switching call SwitchPartyMon_Stats ld a,$04 ; swap pokemon positions menu - ld [$d07d],a + ld [wd07d],a call GoBackToPartyMenu jp .checkIfPokemonChosen .choseStats - call CleanLCD_OAM + call ClearSprites xor a - ld [$cc49],a - ld a,$36 - call Predef - ld a,$37 - call Predef + ld [wcc49],a + predef StatusScreen + predef StatusScreen2 call ReloadMapData jp StartMenu_Pokemon .choseOutOfBattleMove push hl ld a,[wWhichPokemon] - ld hl,W_PARTYMON1NAME + ld hl,wPartyMonNicks call GetPartyMonName pop hl ld a,[hl] @@ -138,26 +135,25 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) call CheckIfInOutsideMap jr z,.canFly ld a,[wWhichPokemon] - ld hl,W_PARTYMON1NAME + ld hl,wPartyMonNicks call GetPartyMonName ld hl,.cannotFlyHereText call PrintText jp .loop .canFly call ChooseFlyDestination - ld a,[$d732] + ld a,[wd732] bit 3,a ; did the player decide to fly? jp nz,.goBackToMap call LoadFontTilePatterns - ld hl,$d72e + ld hl,wd72e set 1,[hl] jp StartMenu_Pokemon .cut bit 1,a ; does the player have the Cascade Badge? jp z,.newBadgeRequired - ld a,$3c - call Predef - ld a,[$cd6a] + predef UsedCut + ld a,[wcd6a] and a jp z,.loop jp CloseTextDisplay @@ -165,15 +161,15 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) bit 4,a ; does the player have the Soul Badge? jp z,.newBadgeRequired callba CheckForForcedBikeSurf - ld hl,$d728 + ld hl,wd728 bit 1,[hl] res 1,[hl] jp z,.loop ld a,SURFBOARD - ld [$cf91],a - ld [$d152],a + ld [wcf91],a + ld [wd152],a call UseItem - ld a,[$cd6a] + ld a,[wcd6a] and a jp z,.loop call GBPalWhiteOutWithDelay3 @@ -181,15 +177,14 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) .strength bit 3,a ; does the player have the Rainbow Badge? jp z,.newBadgeRequired - ld a,$5b - call Predef + predef PrintStrengthTxt call GBPalWhiteOutWithDelay3 jp .goBackToMap .flash bit 0,a ; does the player have the Boulder Badge? jp z,.newBadgeRequired xor a - ld [$d35d],a + ld [wd35d],a ld hl,.flashLightsAreaText call PrintText call GBPalWhiteOutWithDelay3 @@ -199,10 +194,10 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) db "@" .dig ld a,ESCAPE_ROPE - ld [$cf91],a - ld [$d152],a + ld [wcf91],a + ld [wd152],a call UseItem - ld a,[$cd6a] + ld a,[wcd6a] and a jp z,.loop call GBPalWhiteOutWithDelay3 @@ -211,7 +206,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) call CheckIfInOutsideMap jr z,.canTeleport ld a,[wWhichPokemon] - ld hl,W_PARTYMON1NAME + ld hl,wPartyMonNicks call GetPartyMonName ld hl,.cannotUseTeleportNowText call PrintText @@ -219,10 +214,10 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) .canTeleport ld hl,.warpToLastPokemonCenterText call PrintText - ld hl,$d732 + ld hl,wd732 set 3,[hl] set 6,[hl] - ld hl,$d72e + ld hl,wd72e set 1,[hl] res 4,[hl] ld c,60 @@ -239,9 +234,9 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) TX_FAR _CannotFlyHereText db "@" .softboiled - ld hl,W_PARTYMON1_MAXHP + ld hl,wPartyMon1MaxHP ld a,[wWhichPokemon] - ld bc,44 + ld bc,wPartyMon2 - wPartyMon1 call AddNTimes ld a,[hli] ld [H_DIVIDEND],a @@ -251,7 +246,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) ld [H_DIVISOR],a ld b,2 ; number of bytes call Divide - ld bc,-33 + ld bc,wPartyMon1HP - wPartyMon1MaxHP add hl,bc ld a,[hld] ld b,a @@ -261,14 +256,14 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) ld a,[H_QUOTIENT + 2] sbc b jp nc,.notHealthyEnough - ld a,[$cc2b] + ld a,[wcc2b] push af ld a,POTION - ld [$cf91],a - ld [$d152],a + ld [wcf91],a + ld [wd152],a call UseItem pop af - ld [$cc2b],a + ld [wcc2b],a jp .loop .notHealthyEnough ; if current HP is less than 1/5 of max HP ld hl,.notHealthyEnoughText @@ -290,8 +285,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) ; writes a blank tile to all possible menu cursor positions on the party menu ErasePartyMenuCursors: ; 132ed (4:72ed) - FuncCoord 0,1 - ld hl,Coord + hlCoord 0, 1 ld bc,2 * 20 ; menu cursor positions are 2 rows apart ld a,6 ; 6 menu cursor positions .loop @@ -314,19 +308,19 @@ StartMenu_Item: ; 13302 (4:7302) jr .exitMenu .notInLinkBattle ld bc,wNumBagItems - ld hl,$cf8b + ld hl,wcf8b ld a,c ld [hli],a - ld [hl],b ; store item bag pointer at $cf8b (for DisplayListMenuID) + ld [hl],b ; store item bag pointer at wcf8b (for DisplayListMenuID) xor a - ld [$cf93],a + ld [wcf93],a ld a,ITEMLISTMENU ld [wListMenuID],a - ld a,[$cc2c] + ld a,[wcc2c] ld [wCurrentMenuItem],a call DisplayListMenuID ld a,[wCurrentMenuItem] - ld [$cc2c],a + ld [wcc2c],a jr nc,.choseItem .exitMenu call LoadScreenTilesFromBuffer2 ; restore saved screen @@ -336,23 +330,19 @@ StartMenu_Item: ; 13302 (4:7302) .choseItem ; erase menu cursor (blank each tile in front of an item name) ld a," " - FuncCoord 5,4 - ld [Coord],a - FuncCoord 5,6 - ld [Coord],a - FuncCoord 5,8 - ld [Coord],a - FuncCoord 5,10 - ld [Coord],a + Coorda 5, 4 + Coorda 5, 6 + Coorda 5, 8 + Coorda 5, 10 call PlaceUnfilledArrowMenuCursor xor a - ld [$cc35],a - ld a,[$cf91] + ld [wcc35],a + ld a,[wcf91] cp a,BICYCLE jp z,.useOrTossItem .notBicycle1 ld a,$06 ; use/toss menu - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ld hl,wTopMenuItemY ld a,11 @@ -374,14 +364,14 @@ StartMenu_Item: ; 13302 (4:7302) jr z,.useOrTossItem jp ItemMenuLoop .useOrTossItem ; if the player made the choice to use or toss the item - ld a,[$cf91] - ld [$d11e],a + ld a,[wcf91] + ld [wd11e],a call GetItemName - call CopyStringToCF4B ; copy name to $cf4b - ld a,[$cf91] + call CopyStringToCF4B ; copy name to wcf4b + ld a,[wcf91] cp a,BICYCLE jr nz,.notBicycle2 - ld a,[$d732] + ld a,[wd732] bit 5,a jr z,.useItem_closeMenu ld hl,CannotGetOffHereText @@ -392,15 +382,15 @@ StartMenu_Item: ; 13302 (4:7302) and a jr nz,.tossItem .useItem - ld [$d152],a - ld a,[$cf91] + ld [wd152],a + ld a,[wcf91] cp a,HM_01 jr nc,.useItem_partyMenu ld hl,UsableItems_CloseMenu ld de,1 call IsInArray jr c,.useItem_closeMenu - ld a,[$cf91] + ld a,[wcf91] ld hl,UsableItems_PartyMenu ld de,1 call IsInArray @@ -409,34 +399,34 @@ StartMenu_Item: ; 13302 (4:7302) jp ItemMenuLoop .useItem_closeMenu xor a - ld [$d152],a + ld [wd152],a call UseItem - ld a,[$cd6a] + ld a,[wcd6a] and a jp z,ItemMenuLoop jp CloseStartMenu .useItem_partyMenu - ld a,[$cfcb] + ld a,[wcfcb] push af call UseItem - ld a,[$cd6a] + ld a,[wcd6a] cp a,$02 jp z,.partyMenuNotDisplayed call GBPalWhiteOutWithDelay3 call Func_3dbe pop af - ld [$cfcb],a + ld [wcfcb],a jp StartMenu_Item .partyMenuNotDisplayed pop af - ld [$cfcb],a + ld [wcfcb],a jp ItemMenuLoop .tossItem call IsKeyItem - ld a,[$d124] + ld a,[wd124] and a jr nz,.skipAskingQuantity - ld a,[$cf91] + ld a,[wcf91] call IsItemHM jr c,.skipAskingQuantity call DisplayChooseQuantityMenu @@ -515,8 +505,7 @@ StartMenu_TrainerInfo: ; 13460 (4:7460) xor a ld [$ffd7],a call DrawTrainerInfo - ld a,$2e - call Predef ; draw badges + predef DrawBadges ; draw badges ld b,$0d call GoPAL_SET call GBPalNormal @@ -535,101 +524,89 @@ StartMenu_TrainerInfo: ; 13460 (4:7460) DrawTrainerInfo: ; 1349a (4:749a) ld de,RedPicFront ld bc,(BANK(RedPicFront) << 8) | $01 - ld a,$3b - call Predef + predef Predef3B call DisableLCD - FuncCoord 0,2 - ld hl,Coord + hlCoord 0, 2 ld a," " call TrainerInfo_DrawVerticalLine - FuncCoord 1,2 - ld hl,Coord + hlCoord 1, 2 call TrainerInfo_DrawVerticalLine - ld hl,$9070 - ld de,$9000 - ld bc,$01c0 + ld hl,vChars2 + $70 + ld de,vChars2 + ld bc,$70 * 4 call CopyData ld hl,TrainerInfoTextBoxTileGraphics ; $7b98 ; trainer info text box tile patterns - ld de,$9770 + ld de,vChars2 + $770 ld bc,$0080 push bc call TrainerInfo_FarCopyData ld hl,BlankLeaderNames ; $7c28 - ld de,$9600 + ld de,vChars2 + $600 ld bc,$0170 call TrainerInfo_FarCopyData pop bc ld hl,BadgeNumbersTileGraphics ; $7d98 ; badge number tile patterns - ld de,$8d80 + ld de,vChars1 + $580 call TrainerInfo_FarCopyData ld hl,GymLeaderFaceAndBadgeTileGraphics ; $6a9e ; gym leader face and badge tile patterns - ld de,$9200 + ld de,vChars2 + $200 ld bc,$0400 ld a,$03 call FarCopyData2 ld hl,TextBoxGraphics ; $6288 ld de,$00d0 add hl,de ; hl = colon tile pattern - ld de,$8d60 + ld de,vChars1 + $560 ld bc,$0010 ld a,$04 push bc call FarCopyData2 pop bc ld hl,TrainerInfoTextBoxTileGraphics + $80 ; $7c18 ; background tile pattern - ld de,$8d70 + ld de,vChars1 + $570 call TrainerInfo_FarCopyData call EnableLCD - ld hl,$cd3d + ld hl,wWhichTrade ld a,18 + 1 ld [hli],a dec a ld [hli],a ld [hl],1 - FuncCoord 0,0 - ld hl,Coord + hlCoord 0, 0 call TrainerInfo_DrawTextBox - ld hl,$cd3d + ld hl,wWhichTrade ld a,16 + 1 ld [hli],a dec a ld [hli],a ld [hl],3 - FuncCoord 1,10 - ld hl,Coord + hlCoord 1, 10 call TrainerInfo_DrawTextBox - FuncCoord 0,10 - ld hl,Coord + hlCoord 0, 10 ld a,$d7 call TrainerInfo_DrawVerticalLine - FuncCoord 19,10 - ld hl,Coord + hlCoord 19, 10 call TrainerInfo_DrawVerticalLine - FuncCoord 6,9 - ld hl,Coord + hlCoord 6, 9 ld de,TrainerInfo_BadgesText call PlaceString - FuncCoord 2,2 - ld hl,Coord + hlCoord 2, 2 ld de,TrainerInfo_NameMoneyTimeText call PlaceString - FuncCoord 7,2 - ld hl,Coord - ld de,W_PLAYERNAME + hlCoord 7, 2 + ld de,wPlayerName call PlaceString - FuncCoord 8,4 - ld hl,Coord + hlCoord 8, 4 ld de,wPlayerMoney ld c,$e3 call PrintBCDNumber - FuncCoord 9,6 - ld hl,Coord - ld de,$da41 ; hours + hlCoord 9, 6 + ld de,W_PLAYTIMEHOURS + 1 ; hours ld bc,$4103 call PrintNumber ld [hl],$d6 ; colon tile ID inc hl - ld de,$da43 ; minutes + ld de,W_PLAYTIMEMINUTES + 1 ; minutes ld bc,$8102 jp PrintNumber @@ -650,15 +627,15 @@ TrainerInfo_BadgesText: ; 13597 (4:7597) ; height is always 6 ; INPUT: ; hl = destination address -; [$cd3d] = width + 1 -; [$cd3e] = width -; [$cd3f] = distance from the end of a text box row to the start of the next +; [wWhichTrade] = width + 1 +; [wTrainerEngageDistance] = width +; [wTrainerFacingDirection] = distance from the end of a text box row to the start of the next TrainerInfo_DrawTextBox: ; 135a0 (4:75a0) ld a,$79 ; upper left corner tile ID ld de,$7a7b ; top edge and upper right corner tile ID's call TrainerInfo_DrawHorizontalEdge ; draw top edge call TrainerInfo_NextTextBoxRow - ld a,[$cd3d] ; width of the text box plus one + ld a,[wWhichTrade] ; width of the text box plus one ld e,a ld d,0 ld c,6 ; height of the text box @@ -674,7 +651,7 @@ TrainerInfo_DrawTextBox: ; 135a0 (4:75a0) TrainerInfo_DrawHorizontalEdge: ; 135c3 (4:75c3) ld [hli],a ; place left corner tile - ld a,[$cd3e] ; width of the text box + ld a,[wTrainerEngageDistance] ; width of the text box ld c,a ld a,d .loop @@ -686,7 +663,7 @@ TrainerInfo_DrawHorizontalEdge: ; 135c3 (4:75c3) ret TrainerInfo_NextTextBoxRow: ; 135d0 (4:75d0) - ld a,[$cd3f] ; distance to the start of the next row + ld a,[wTrainerFacingDirection] ; distance to the start of the next row .loop inc hl dec a @@ -708,11 +685,10 @@ TrainerInfo_DrawVerticalLine: ; 135d8 (4:75d8) ret StartMenu_SaveReset: ; 135e3 (4:75e3) - ld a,[$d72e] + ld a,[wd72e] bit 6,a ; is the player using the link feature? - jp nz,InitGame - ld a,$3f - call Predef ; save the game + jp nz,Init + predef SaveSAV ; save the game call LoadScreenTilesFromBuffer2 ; restore saved screen jp HoldTextDisplayOpen @@ -729,9 +705,9 @@ StartMenu_Option: ; 135f6 (4:75f6) SwitchPartyMon: ; 13613 (4:7613) call SwitchPartyMon_Stats - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade call SwitchPartyMon_OAM - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem call SwitchPartyMon_OAM jp RedrawPartyMenu_ @@ -762,42 +738,42 @@ SwitchPartyMon_OAM: ; 13625 (4:7625) jp PlaySound SwitchPartyMon_Stats: ; 13653 (4:7653) - ld a, [$cc35] + ld a, [wcc35] and a jr nz, .asm_13661 - ld a, [wWhichPokemon] ; $cf92 + ld a, [wWhichPokemon] ; wWhichPokemon inc a - ld [$cc35], a + ld [wcc35], a ret .asm_13661 xor a - ld [$d07d], a - ld a, [$cc35] + ld [wd07d], a + ld a, [wcc35] dec a ld b, a - ld a, [wCurrentMenuItem] ; $cc26 - ld [wWhichTrade], a ; $cd3d + ld a, [wCurrentMenuItem] ; wCurrentMenuItem + ld [wWhichTrade], a ; wWhichTrade cp b jr nz, .asm_1367b xor a - ld [$cc35], a - ld [$d07d], a + ld [wcc35], a + ld [wd07d], a ret .asm_1367b ld a, b - ld [$cc35], a + ld [wcc35], a push hl push de - ld hl, W_PARTYMON1 ; $d164 + ld hl, wPartySpecies ld d, h ld e, l - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem add l ld l, a jr nc, .asm_1368e inc h .asm_1368e - ld a, [$cc35] + ld a, [wcc35] add e ld e, a jr nc, .asm_13696 @@ -809,67 +785,67 @@ SwitchPartyMon_Stats: ; 13653 (4:7653) ld [hl], a ld a, [H_DIVIDEND] ; $ff95 (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT) ld [de], a - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) - ld bc, $2c - ld a, [wCurrentMenuItem] ; $cc26 + ld hl, wPartyMons + ld bc, wPartyMon2 - wPartyMon1 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem call AddNTimes push hl - ld de, $cc97 + ld de, wcc97 ld bc, $2c call CopyData - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) + ld hl, wPartyMons ld bc, $2c - ld a, [$cc35] + ld a, [wcc35] call AddNTimes pop de push hl ld bc, $2c call CopyData pop de - ld hl, $cc97 + ld hl, wcc97 ld bc, $2c call CopyData - ld hl, W_PARTYMON1OT ; $d273 - ld a, [wCurrentMenuItem] ; $cc26 + ld hl, wPartyMonOT ; wd273 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem call SkipFixedLengthTextEntries push hl - ld de, $cc97 + ld de, wcc97 ld bc, $b call CopyData - ld hl, W_PARTYMON1OT ; $d273 - ld a, [$cc35] + ld hl, wPartyMonOT ; wd273 + ld a, [wcc35] call SkipFixedLengthTextEntries pop de push hl ld bc, $b call CopyData pop de - ld hl, $cc97 + ld hl, wcc97 ld bc, $b call CopyData - ld hl, W_PARTYMON1NAME ; $d2b5 - ld a, [wCurrentMenuItem] ; $cc26 + ld hl, wPartyMonNicks ; wPartyMonNicks + ld a, [wCurrentMenuItem] ; wCurrentMenuItem call SkipFixedLengthTextEntries push hl - ld de, $cc97 + ld de, wcc97 ld bc, $b call CopyData - ld hl, W_PARTYMON1NAME ; $d2b5 - ld a, [$cc35] + ld hl, wPartyMonNicks ; wPartyMonNicks + ld a, [wcc35] call SkipFixedLengthTextEntries pop de push hl ld bc, $b call CopyData pop de - ld hl, $cc97 + ld hl, wcc97 ld bc, $b call CopyData - ld a, [$cc35] - ld [wWhichTrade], a ; $cd3d + ld a, [wcc35] + ld [wWhichTrade], a ; wWhichTrade xor a - ld [$cc35], a - ld [$d07d], a + ld [wcc35], a + ld [wd07d], a pop de pop hl ret diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm index cfce493e..65b06e9d 100755 --- a/engine/menu/status_screen.asm +++ b/engine/menu/status_screen.asm @@ -1,18 +1,18 @@ ; Predef 0x37 StatusScreen: ; 12953 (4:6953) call LoadMonData - ld a, [$cc49] + ld a, [wcc49] cp $2 ; 2 means we're in a PC box jr c, .DontRecalculate ; 0x1295b $14 - ld a, [$cf9b] - ld [$cfb9], a - ld [$d127], a - ld hl, $cfa8 - ld de, $cfba + ld a, [wcf9b] + ld [wcfb9], a + ld [W_CURENEMYLVL], a + ld hl, wcfa8 + ld de, wcfba ld b, $1 call CalcStats ; Recalculate stats .DontRecalculate - ld hl, $d72c + ld hl, wd72c set 1, [hl] ld a, $33 ld [$ff24], a ; Reduce the volume @@ -21,27 +21,26 @@ StatusScreen: ; 12953 (4:6953) call UpdateSprites ; move sprites (?) call LoadHpBarAndStatusTilePatterns ld de, BattleHudTiles1 ; $6080 ; source - ld hl, $96d0 ; dest + ld hl, vChars2 + $6d0 ; dest ld bc, (BANK(BattleHudTiles1) << 8) + $03 ; bank bytes/8 call CopyVideoDataDouble ; ·│ :L and halfarrow line end ld de, BattleHudTiles2 ; $6098 - ld hl, $9780 + ld hl, vChars2 + $780 ld bc, (BANK(BattleHudTiles2) << 8) + $01 call CopyVideoDataDouble ; │ ld de, BattleHudTiles3 ; $60b0 - ld hl, $9760 + ld hl, vChars2 + $760 ld bc, (BANK(BattleHudTiles3) << 8) + $02 call CopyVideoDataDouble ; ─┘ ld de, PTile - ld hl, $9720 + ld hl, vChars2 + $720 ld bc,(BANK(PTile) << 8 | $01) call CopyVideoDataDouble ; P (for PP), inline ld a, [$ffd7] push af xor a ld [$ffd7], a - FuncCoord 19,1 - ld hl, Coord + hlCoord 19, 1 ld bc, $060a call DrawLineBox ; Draws the box around name, HP and status ld de, $fffa @@ -49,86 +48,71 @@ StatusScreen: ; 12953 (4:6953) ld [hl], $f2 ; . after No ("." is a different one) dec hl ld [hl], "№" - FuncCoord 19,9 - ld hl, Coord + hlCoord 19, 9 ld bc, $0806 call DrawLineBox ; Draws the box around types, ID No. and OT - FuncCoord 10,9 - ld hl, Coord + hlCoord 10, 9 ld de, Type1Text call PlaceString ; "TYPE1/" - FuncCoord 11,3 - ld hl, Coord - PREDEF DrawHPBarPredef ; predef $5f - ld hl, $cf25 + hlCoord 11, 3 + predef DrawHP ; predef $5f + ld hl, wcf25 call GetHealthBarColor ld b, $3 call GoPAL_SET ; SGB palette - FuncCoord 16,6 - ld hl, Coord - ld de, $cf9c + hlCoord 16, 6 + ld de, wcf9c call PrintStatusCondition jr nz, .StatusWritten ; 0x129fc $9 - FuncCoord 16,6 - ld hl, Coord + hlCoord 16, 6 ld de, OKText call PlaceString ; "OK" .StatusWritten - FuncCoord 9,6 - ld hl, Coord + hlCoord 9, 6 ld de, StatusText call PlaceString ; "STATUS/" - FuncCoord 14,2 - ld hl, Coord + hlCoord 14, 2 call PrintLevel ; Pokémon level - ld a, [$d0b8] - ld [$d11e], a - ld [$d0b5], a - ld a, $3a - call Predef - FuncCoord 3,7 - ld hl, Coord - ld de, $d11e + ld a, [W_MONHDEXNUM] + ld [wd11e], a + ld [wd0b5], a + predef IndexToPokedex + hlCoord 3, 7 + ld de, wd11e ld bc, $8103 ; Zero-padded, 3 call PrintNumber ; Pokémon no. - FuncCoord 11,10 - ld hl, Coord - ld a, $4b - call Predef ; Prints the type (?) + hlCoord 11, 10 + predef Func_27d6b ; Prints the type (?) ld hl, NamePointers2 ; $6a9d call .unk_12a7e ld d, h ld e, l - FuncCoord 9,1 - ld hl, Coord + hlCoord 9, 1 call PlaceString ; Pokémon name ld hl, OTPointers ; $6a95 call .unk_12a7e ld d, h ld e, l - FuncCoord 12,16 - ld hl, Coord + hlCoord 12, 16 call PlaceString ; OT - FuncCoord 12,14 - ld hl, Coord - ld de, $cfa4 + hlCoord 12, 14 + ld de, wcfa4 ld bc, $8205 ; 5 call PrintNumber ; ID Number ld d, $0 call PrintStatsBox call Delay3 call GBPalNormal - FuncCoord 1, 0 ; $c3a1 - ld hl, Coord + hlCoord 1, 0 call LoadFlippedFrontSpriteByMonIndex ; draw Pokémon picture - ld a, [$cf91] + ld a, [wcf91] call PlayCry ; play Pokémon cry call WaitForTextScrollButtonPress ; wait for button pop af ld [$ffd7], a ret .unk_12a7e ; 0x12a7e ; I don't know what this does, iterates over pointers? - ld a, [$cc49] + ld a, [wcc49] add a ld c, a ld b, $0 @@ -136,22 +120,22 @@ StatusScreen: ; 12953 (4:6953) ld a, [hli] ld h, [hl] ld l, a - ld a, [$cc49] + ld a, [wcc49] cp $3 ret z ld a, [wWhichPokemon] jp SkipFixedLengthTextEntries OTPointers: ; 12a95 (4:6a95) - dw W_PARTYMON1OT - dw W_ENEMYMON1OT - dw W_BOXMON1OT + dw wPartyMonOT + dw wEnemyMonOT + dw wBoxMonOT dw W_DAYCAREMONOT NamePointers2: ; 12a9d (4:6a9d) - dw W_PARTYMON1NAME - dw W_ENEMYMON1NAME - dw W_BOXMON1NAME + dw wPartyMonNicks + dw wEnemyMonNicks + dw wBoxMonNicks dw W_DAYCAREMONNAME Type1Text: ; 12aa5 (4:6aa5) @@ -197,23 +181,19 @@ PrintStatsBox: ; 12ae4 (4:6ae4) ld a, d and a ; a is 0 from the status screen jr nz, .DifferentBox ; 0x12ae6 $12 - FuncCoord 0,8 - ld hl, Coord + hlCoord 0, 8 ld b, $8 ld c, $8 call TextBoxBorder ; Draws the box - FuncCoord 1,9 ; Start printing stats from here - ld hl, Coord + hlCoord 1, 9 ; Start printing stats from here ld bc, $0019 ; Number offset jr .PrintStats ; 0x12af8 $10 .DifferentBox - FuncCoord 9,2 - ld hl, Coord + hlCoord 9, 2 ld b, $8 ld c, $9 call TextBoxBorder - FuncCoord 11, 3 ; $c3e7 - ld hl, Coord + hlCoord 11, 3 ld bc, $0018 .PrintStats push bc @@ -223,14 +203,14 @@ PrintStatsBox: ; 12ae4 (4:6ae4) pop hl pop bc add hl, bc - ld de, $cfbc + ld de, wcfbc ld bc, $0203 ; three digits call PrintStat - ld de, $cfbe + ld de, wcfbe call PrintStat - ld de, $cfc0 + ld de, wcfc0 call PrintStat - ld de, $cfc2 + ld de, wcfc2 jp PrintNumber PrintStat push hl @@ -253,37 +233,32 @@ StatusScreen2: ; 12b57 (4:6b57) ld [$ffd7], a ld [$ffba], a ld bc, $0005 - ld hl, $d0dc + ld hl, wd0dc call FillMemory - ld hl, $cfa0 - ld de, $d0dc + ld hl, wcfa0 + ld de, wd0dc ld bc, $0004 call CopyData callab Func_39b87 - FuncCoord 9,2 - ld hl, Coord + hlCoord 9, 2 ld bc, $050a call ClearScreenArea ; Clear under name - FuncCoord 19, 3 ; $c3ef - ld hl, Coord + hlCoord 19, 3 ld [hl], $78 - FuncCoord 0,8 - ld hl, Coord + hlCoord 0, 8 ld b, $8 ld c, $12 call TextBoxBorder ; Draw move container - FuncCoord 2,9 - ld hl, Coord - ld de, $d0e1 + hlCoord 2, 9 + ld de, wd0e1 call PlaceString ; Print moves - ld a, [$cd6c] + ld a, [wcd6c] inc a ld c, a ld a, $4 sub c ld b, a ; Number of moves ? - FuncCoord 11,10 - ld hl, Coord + hlCoord 11, 10 ld de, $0028 ld a, $72 call Func_12ccb ; Print "PP" @@ -294,9 +269,8 @@ StatusScreen2: ; 12b57 (4:6b57) ld a, "-" call Func_12ccb ; Fill the rest with -- .InitPP ; 12bbb - ld hl, $cfa0 - FuncCoord 14,10 - ld de, Coord + ld hl, wcfa0 + deCoord 14, 10 ld b, $0 .PrintPP ; 12bc3 ld a, [hli] @@ -322,16 +296,16 @@ StatusScreen2: ; 12b57 (4:6b57) add hl, bc ld a, [hl] and $3f - ld [$cd71], a + ld [wcd71], a ld h, d ld l, e push hl - ld de, $cd71 + ld de, wcd71 ld bc, $0102 call PrintNumber ld a, "/" ld [hli], a - ld de, $d11e + ld de, wd11e ld bc, $0102 call PrintNumber pop hl @@ -346,47 +320,40 @@ StatusScreen2: ; 12b57 (4:6b57) cp $4 jr nz, .PrintPP ; 0x12c0f $b2 .PPDone - FuncCoord 9,3 - ld hl, Coord + hlCoord 9, 3 ld de, EXPPointsText call PlaceString - ld a, [$cfb9] ; level + ld a, [wcfb9] ; level push af - cp 100 + cp MAX_LEVEL jr z, .Level100 ; 0x12c20 $4 inc a - ld [$cfb9], a ; Increase temporarily if not 100 + ld [wcfb9], a ; Increase temporarily if not 100 .Level100 - FuncCoord 14,6 - ld hl, Coord + hlCoord 14, 6 ld [hl], $70 ; 1-tile "to" inc hl inc hl call PrintLevel pop af - ld [$cfb9], a - ld de, $cfa6 - FuncCoord 12,4 - ld hl, Coord + ld [wcfb9], a + ld de, wcfa6 + hlCoord 12, 4 ld bc, $0307 call PrintNumber ; exp call .asm_12c86 - ld de, $cfa6 - FuncCoord 7,6 - ld hl, Coord + ld de, wcfa6 + hlCoord 7, 6 ld bc, $0307 call PrintNumber - FuncCoord 9,0 - ld hl, Coord + hlCoord 9, 0 call Func_12cc3 - FuncCoord 9,1 - ld hl, Coord + hlCoord 9, 1 call Func_12cc3 - ld a, [$d0b8] - ld [$d11e], a + ld a, [W_MONHDEXNUM] + ld [wd11e], a call GetMonName - FuncCoord 9,1 - ld hl, Coord + hlCoord 9, 1 call PlaceString ld a, $1 ld [$ffba], a @@ -394,20 +361,20 @@ StatusScreen2: ; 12b57 (4:6b57) call WaitForTextScrollButtonPress ; wait for button pop af ld [$ffd7], a - ld hl, $d72c + ld hl, wd72c res 1, [hl] ld a, $77 ld [$ff24], a call GBPalWhiteOut jp ClearScreen .asm_12c86 ; This does some magic with lvl/exp? - ld a, [$cfb9] ; Load level - cp $64 + ld a, [wcfb9] ; Load level + cp MAX_LEVEL jr z, .asm_12ca7 ; 0x12c8b $1a ; If 100 inc a ld d, a callab CalcExperience - ld hl, $cfa8 + ld hl, wcfa8 ld a, [$ff98] sub [hl] ld [hld], a @@ -419,7 +386,7 @@ StatusScreen2: ; 12b57 (4:6b57) ld [hld], a ret .asm_12ca7 - ld hl, $cfa6 + ld hl, wcfa6 xor a ld [hli], a ld [hli], a diff --git a/engine/menu/vending_machine.asm b/engine/menu/vending_machine.asm index 1f0ed084..c2968e2f 100755 --- a/engine/menu/vending_machine.asm +++ b/engine/menu/vending_machine.asm @@ -2,41 +2,38 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0) ld hl, VendingMachineText1 call PrintText ld a, $13 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID xor a - ld [wCurrentMenuItem], a ; $cc26 - ld [wLastMenuItem], a ; $cc2a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wLastMenuItem], a ; wLastMenuItem ld a, $3 - ld [wMenuWatchedKeys], a ; $cc29 + ld [wMenuWatchedKeys], a ; wMenuWatchedKeys ld a, $3 - ld [wMaxMenuItem], a ; $cc28 + ld [wMaxMenuItem], a ; wMaxMenuItem ld a, $5 - ld [wTopMenuItemY], a ; $cc24 + ld [wTopMenuItemY], a ; wTopMenuItemY ld a, $1 - ld [wTopMenuItemX], a ; $cc25 - ld hl, $d730 + ld [wTopMenuItemX], a ; wTopMenuItemX + ld hl, wd730 set 6, [hl] - FuncCoord 0, 3 ; $c3dc - ld hl, Coord + hlCoord 0, 3 ld b, $8 ld c, $c call TextBoxBorder call UpdateSprites - FuncCoord 2, 5 ; $c406 - ld hl, Coord + hlCoord 2, 5 ld de, DrinkText call PlaceString - FuncCoord 9, 6 ; $c421 - ld hl, Coord + hlCoord 9, 6 ld de, DrinkPriceText call PlaceString - ld hl, $d730 + ld hl, wd730 res 6, [hl] call HandleMenuInput bit 1, a jr nz, .asm_74f93 - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $3 jr z, .asm_74f93 xor a @@ -69,12 +66,11 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0) ld hl, VendingMachineText5 call PrintText ld hl, $ffde - ld de, wPlayerMoney + 2 ; $d349 + ld de, wPlayerMoney + 2 ; wd349 ld c, $3 - ld a, $c - call Predef ; indirect jump to Func_f836 (f836 (3:7836)) + predef SubBCDPredef ld a, $13 - ld [$d125], a + ld [wd125], a jp DisplayTextBoxID .BagFull ld hl, VendingMachineText6 @@ -116,7 +112,7 @@ VendingMachineText7: ; 74fe2 (1d:4fe2) Func_74fe7: ; 74fe7 (1d:4fe7) ld hl, VendingPrices - ld a, [$cc26] + ld a, [wCurrentMenuItem] add a add a ld d, $0 diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm index eb95d9bd..e05bdd55 100755 --- a/engine/mon_party_sprites.asm +++ b/engine/mon_party_sprites.asm @@ -1,16 +1,16 @@ AnimatePartyMon_ForceSpeed1: ; 716f7 (1c:56f7) xor a - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem ld b, a inc a jr GetAnimationSpeed -; $cf1f contains the party mon's health bar colors +; wcf1f contains the party mon's health bar colors ; 0: green ; 1: yellow ; 2: red AnimatePartyMon: ; 716ff (1c:56ff) - ld hl, $cf1f + ld hl, wcf1f ld a, [wCurrentMenuItem] ld c, a ld b, $0 @@ -21,13 +21,13 @@ GetAnimationSpeed: ; 7170a (1c:570a) ld c, a ld hl, PartyMonSpeeds add hl, bc - ld a, [$cf1b] + ld a, [wcf1b] xor $1 add [hl] ld c, a add a ld b, a - ld a, [W_SUBANIMTRANSFORM] ; $d08b + ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM and a jr z, .resetSprites cp c @@ -38,11 +38,11 @@ GetAnimationSpeed: ; 7170a (1c:570a) jr nz, .resetTimer xor a .resetTimer - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM jp DelayFrame .resetSprites push bc - ld hl, $cc5b + ld hl, wcc5b ld de, wOAMBuffer ld bc, $60 call CopyData @@ -51,7 +51,7 @@ GetAnimationSpeed: ; 7170a (1c:570a) jr .incTimer .animateSprite push bc - ld hl, $c302 ; OAM tile id + ld hl, wOAMBuffer + $02 ; OAM tile id ld bc, $10 ld a, [wCurrentMenuItem] call AddNTimes @@ -156,155 +156,155 @@ MonPartySpritePointers: ; 717c0 (1c:57c0) dw SlowbroSprite + $c0 db $40 / $10 ; 40 bytes db BANK(SlowbroSprite) - dw $8000 + dw vSprites dw BallSprite db $80 / $10 ; $80 bytes db BANK(BallSprite) - dw $8040 + dw vSprites + $40 dw ClefairySprite + $c0 db $40 / $10 ; $40 bytes db BANK(ClefairySprite) - dw $80C0 + dw vSprites + $c0 dw BirdSprite + $c0 db $40 / $10 ; $40 bytes db BANK(BirdSprite) - dw $8100 + dw vSprites + $100 dw SeelSprite db $40 / $10 ; $40 bytes db BANK(SeelSprite) - dw $8140 + dw vSprites + $140 dw MonPartySprites + $40 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $8180 + dw vSprites + $180 dw MonPartySprites + $50 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $81A0 + dw vSprites + $1a0 dw MonPartySprites + $60 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $81C0 + dw vSprites + $1c0 dw MonPartySprites + $70 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $81E0 + dw vSprites + $1e0 dw MonPartySprites + $80 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $8200 + dw vSprites + $200 dw MonPartySprites + $90 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $8220 + dw vSprites + $220 dw MonPartySprites + $A0 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $8240 + dw vSprites + $240 dw MonPartySprites + $B0 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $8260 + dw vSprites + $260 dw MonPartySprites + $100 db $40 / $10 ; $40 bytes db BANK(MonPartySprites) - dw $8380 + dw vSprites + $380 dw SlowbroSprite db $40 / $10 ; $40 bytes db BANK(SlowbroSprite) - dw $8400 + dw vSprites + $400 dw BallSprite db $80 / $10 ; $80 bytes db BANK(BallSprite) - dw $8440 + dw vSprites + $440 dw ClefairySprite db $40 / $10 ; $40 bytes db BANK(ClefairySprite) - dw $84C0 + dw vSprites + $4c0 dw BirdSprite db $40 / $10 ; $40 bytes db BANK(BirdSprite) - dw $8500 + dw vSprites + $500 dw SeelSprite + $C0 db $40 / $10 ; $40 bytes db BANK(SeelSprite) - dw $8540 + dw vSprites + $540 dw MonPartySprites db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $8580 + dw vSprites + $580 dw MonPartySprites + $10 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $85A0 + dw vSprites + $5a0 dw MonPartySprites + $20 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $85C0 + dw vSprites + $5c0 dw MonPartySprites + $30 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $85E0 + dw vSprites + $5E0 dw MonPartySprites + $C0 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $8600 + dw vSprites + $600 dw MonPartySprites + $D0 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $8620 + dw vSprites + $620 dw MonPartySprites + $E0 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $8640 + dw vSprites + $640 dw MonPartySprites + $F0 db $10 / $10 ; $10 bytes db BANK(MonPartySprites) - dw $8660 + dw vSprites + $660 dw MonPartySprites + $140 db $40 / $10 ; $40 bytes db BANK(MonPartySprites) - dw $8780 + dw vSprites + $780 Func_71868: ; 71868 (1c:5868) push hl push de push bc ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c - ld hl, W_PARTYMON1 ; $d164 + ld hl, wPartySpecies ld e, a ld d, $0 add hl, de ld a, [hl] call GetPartyMonSpriteID - ld [$cd5b], a + ld [wcd5b], a call Func_718c3 pop bc pop de @@ -314,23 +314,23 @@ Func_71868: ; 71868 (1c:5868) Func_71882: ; 71882 (1c:5882) xor a ld [H_DOWNARROWBLINKCNT2], a ; $ff8c - ld a, [$cd5d] + ld a, [wcd5d] call GetPartyMonSpriteID - ld [$cd5b], a + ld [wcd5b], a jr Func_718c3 Func_71890: ; 71890 (1c:5890) - ld a, [$cf91] + ld a, [wcf91] call GetPartyMonSpriteID push af - ld hl, $8000 + ld hl, vSprites call Func_718ac pop af add $54 - ld hl, $8040 + ld hl, vSprites + $40 call Func_718ac xor a - ld [$cd5d], a + ld [wcd5d], a jr Func_71882 Func_718ac: ; 718ac (1c:58ac) @@ -356,7 +356,7 @@ Func_718ac: ; 718ac (1c:58ac) Func_718c3: ; 718c3 (1c:58c3) push af ld c, $10 - ld h, $c3 + ld h, wOAMBuffer / $100 ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c swap a ld l, a @@ -371,15 +371,14 @@ Func_718c3: ; 718c3 (1c:58c3) call Func_71281 .asm_718dd ld hl, wOAMBuffer - ld de, $cc5b + ld de, wcc5b ld bc, $60 jp CopyData GetPartyMonSpriteID: ; 718e9 (1c:58e9) - ld [$d11e], a - ld a, $3a - call Predef ; indirect jump to IndexToPokedex (41010 (10:5010)) - ld a, [$d11e] + ld [wd11e], a + predef IndexToPokedex + ld a, [wd11e] ld c, a dec a srl a diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index a671c553..e54741f2 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -1,11 +1,11 @@ SetDefaultNames: ; 60ca (1:60ca) - ld a, [$d358] + ld a, [wd358] push af - ld a, [W_OPTIONS] ; $d355 + ld a, [W_OPTIONS] ; W_OPTIONS push af - ld a, [$d732] + ld a, [wd732] push af - ld hl, W_PLAYERNAME ; $d158 + ld hl, wPlayerName ; wd158 ld bc, $d8a xor a call FillMemory @@ -14,20 +14,20 @@ SetDefaultNames: ; 60ca (1:60ca) xor a call FillMemory pop af - ld [$d732], a + ld [wd732], a pop af - ld [W_OPTIONS], a ; $d355 + ld [W_OPTIONS], a ; W_OPTIONS pop af - ld [$d358], a - ld a, [$d08a] + ld [wd358], a + ld a, [wd08a] and a call z, Func_5bff ld hl, NintenText - ld de, W_PLAYERNAME ; $d158 + ld de, wPlayerName ; wd158 ld bc, $b call CopyData ld hl, SonyText - ld de, W_RIVALNAME ; $d34a + ld de, W_RIVALNAME ; wd34a ld bc, $b jp CopyData @@ -41,20 +41,19 @@ OakSpeech: ; 6115 (1:6115) call ClearScreen call LoadTextBoxTilePatterns call SetDefaultNames - ld a,$18 - call Predef ; indirect jump to InitializePlayerData - ld hl,$D53A + predef InitPlayerData2 + ld hl,wNumBoxItems ld a,POTION - ld [$CF91],a + ld [wcf91],a ld a,1 - ld [$CF96],a + ld [wcf96],a call AddItemToInventory ; give one potion - ld a,[$D07C] - ld [$D71A],a + ld a,[W_ANIMATIONID] + ld [wd71a],a call Func_62ce xor a ld [$FFD7],a - ld a,[$D732] + ld a,[wd732] bit 1,a ; XXX when is bit 1 set? jp nz,Func_61bc ; easter egg: skip the intro ld de,ProfOakPic @@ -66,11 +65,10 @@ OakSpeech: ; 6115 (1:6115) call GBFadeOut2 call ClearScreen ld a,NIDORINO - ld [$D0B5],a ; pic displayed is stored at this location - ld [$CF91],a + ld [wd0b5],a ; pic displayed is stored at this location + ld [wcf91],a call GetMonHeader ; this is also related to the pic - FuncCoord 6, 4 ; $c3f6 - ld hl,Coord ; position on tilemap the pic is displayed + hlCoord 6, 4 ; position on tilemap the pic is displayed call LoadFlippedFrontSpriteByMonIndex ; displays pic? call MovePicLeft ld hl,OakSpeechText2 @@ -101,7 +99,7 @@ Func_61bc: ; 61bc (1:61bc) ld bc,(Bank(RedPicFront) << 8) | $00 call IntroPredef3B call GBFadeIn2 - ld a,[$D72D] + ld a,[wd72d] and a jr nz,.next ld hl,OakSpeechText3 @@ -117,7 +115,7 @@ Func_61bc: ; 61bc (1:61bc) ld c,4 call DelayFrames ld de,RedSprite ; $4180 - ld hl,$8000 + ld hl,vSprites ld bc,(BANK(RedSprite) << 8) | $0C call CopyVideoData ld de,ShrinkPic1 @@ -131,27 +129,26 @@ Func_61bc: ; 61bc (1:61bc) call ResetPlayerSpriteData ld a,[H_LOADEDROMBANK] push af - ld a,2 - ld [$C0EF],a - ld [$C0F0],a + ld a, BANK(Music_PalletTown) + ld [wc0ef],a + ld [wc0f0],a ld a,$A ld [wMusicHeaderPointer],a ld a,$FF - ld [$C0EE],a + ld [wc0ee],a call PlaySound ; stop music pop af ld [H_LOADEDROMBANK],a ld [$2000],a ld c,$14 call DelayFrames - FuncCoord 6, 5 ; $c40a - ld hl,Coord + hlCoord 6, 5 ld b,7 ld c,7 call ClearScreenArea call LoadTextBoxTilePatterns ld a,1 - ld [$CFCB],a + ld [wcfcb],a ld c,$32 call DelayFrames call GBFadeOut2 @@ -211,28 +208,25 @@ MovePicLeft: ; 6288 (1:6288) jr .next Predef3B: ; 62a1 (1:62a1) - call Load16BitRegisters + call GetPredefRegisters IntroPredef3B: ; 62a4 (1:62a4) ; bank of sprite given in b push bc ld a,b call UncompressSpriteFromDE ld hl,S_SPRITEBUFFER1 - ld de,$A000 - ld bc,$0310 + ld de,S_SPRITEBUFFER0 + ld bc,$310 call CopyData - ld de,$9000 + ld de,vFrontPic call InterlaceMergeSpriteBuffers pop bc ld a,c and a - FuncCoord 15, 1 ; $c3c3 - ld hl,Coord + hlCoord 15, 1 jr nz,.next - FuncCoord 6, 4 ; $c3f6 - ld hl,Coord + hlCoord 6, 4 .next xor a ld [$FFE1],a - ld a,1 - jp Predef + predef_jump Func_3f0c6 diff --git a/engine/oak_speech2.asm b/engine/oak_speech2.asm index 697a268d..9d994047 100755 --- a/engine/oak_speech2.asm +++ b/engine/oak_speech2.asm @@ -2,20 +2,20 @@ LoadDefaultNamesPlayer: ; 695d (1:695d) call Func_6a12 ld de, DefaultNamesPlayer ; $6aa8 call DisplayIntroNameTextBox - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jr z, .asm_697a ld hl, DefaultNamesPlayerList ; $6af2 call Func_6ad6 - ld de, W_PLAYERNAME ; $d158 + ld de, wPlayerName ; wd158 call Func_69ec jr .asm_6999 .asm_697a - ld hl, W_PLAYERNAME ; $d158 + ld hl, wPlayerName ; wd158 xor a - ld [$d07d], a + ld [wd07d], a call DisplayNamingScreen - ld a, [$cf4b] + ld a, [wcf4b] cp $50 jr z, .asm_697a call ClearScreen @@ -35,20 +35,20 @@ LoadDefaultNamesRival: ; 69a4 (1:69a4) call Func_6a12 ; 0x69a4 call 0x6a12 ld de, DefaultNamesRival call DisplayIntroNameTextBox - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jr z, .asm_69c1 ld hl, DefaultNamesRivalList call Func_6ad6 - ld de, W_RIVALNAME ; $d34a + ld de, W_RIVALNAME ; wd34a call Func_69ec jr .asm_69e1 .asm_69c1 - ld hl, W_RIVALNAME ; $d34a + ld hl, W_RIVALNAME ; wd34a ld a, $1 - ld [$d07d], a + ld [wd07d], a call DisplayNamingScreen - ld a, [$cf4b] + ld a, [wcf4b] cp $50 jr z, .asm_69c1 call ClearScreen @@ -72,19 +72,17 @@ Func_69ec: ; 69ec (1:69ec) ld c, $a call DelayFrames pop de - ld hl, $cd6d + ld hl, wcd6d ld bc, $b call CopyData call Delay3 - FuncCoord 12, 4 ; $c3fc - ld hl, Coord + hlCoord 12, 4 ld de, $67d ld a, $ff jr asm_6a19 Func_6a12: ; 6a12 (1:6a12) - FuncCoord 5, 4 ; $c3f5 - ld hl, Coord + hlCoord 5, 4 ld de, $67d xor a asm_6a19: ; 6a19 (1:6a19) @@ -161,25 +159,23 @@ DisplayIntroNameTextBox: ; 6a6c (1:6a6c) ld b, $a ld c, $9 call TextBoxBorder - FuncCoord 3, 0 ; $c3a3 - ld hl, Coord + hlCoord 3, 0 ld de, .namestring ; $6aa3 call PlaceString pop de - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 call PlaceString call UpdateSprites xor a - ld [wCurrentMenuItem], a ; $cc26 - ld [wLastMenuItem], a ; $cc2a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wLastMenuItem], a ; wLastMenuItem inc a - ld [wTopMenuItemX], a ; $cc25 - ld [wMenuWatchedKeys], a ; $cc29 + ld [wTopMenuItemX], a ; wTopMenuItemX + ld [wMenuWatchedKeys], a ; wMenuWatchedKeys inc a - ld [wTopMenuItemY], a ; $cc24 + ld [wTopMenuItemY], a ; wTopMenuItemY inc a - ld [wMaxMenuItem], a ; $cc28 + ld [wMaxMenuItem], a ; wMaxMenuItem jp HandleMenuInput .namestring ; 6aa3 (1:6aa3) @@ -235,7 +231,7 @@ Func_6ad6: ; 6ad6 (1:6ad6) .asm_6ae7 ld h, d ld l, e - ld de, $cd6d + ld de, wcd6d ld bc, $14 jp CopyData IF _RED diff --git a/engine/oam_dma.asm b/engine/oam_dma.asm new file mode 100644 index 00000000..3de4d773 --- /dev/null +++ b/engine/oam_dma.asm @@ -0,0 +1,25 @@ +WriteDMACodeToHRAM: +; Since no other memory is available during OAM DMA, +; DMARoutine is copied to HRAM and executed there. + ld c, $ff80 % $100 + ld b, DMARoutineEnd - DMARoutine + ld hl, DMARoutine +.copy + ld a, [hli] + ld [$ff00+c], a + inc c + dec b + jr nz, .copy + ret + +DMARoutine: + ; initiate DMA + ld a, wOAMBuffer / $100 + ld [$ff46], a + + ; wait for DMA to finish + ld a, $28 +.wait dec a + jr nz, .wait + ret +DMARoutineEnd: diff --git a/engine/overworld/cable_club_npc.asm b/engine/overworld/cable_club_npc.asm index 88bf177f..9ae5b508 100755 --- a/engine/overworld/cable_club_npc.asm +++ b/engine/overworld/cable_club_npc.asm @@ -1,7 +1,7 @@ CableClubNPC: ; 71c5 (1:71c5) ld hl, CableClubNPCText1 call PrintText - ld a, [$d74b] + ld a, [wd74b] bit 5, a jp nz, Func_71e1 ld c, $3c @@ -12,9 +12,9 @@ CableClubNPC: ; 71c5 (1:71c5) Func_71e1: ; 71e1 (1:71e1) ld a, $1 - ld [$cc34], a + ld [wMenuJoypadPollCount], a ld a, $5a - ld [$cc47], a + ld [wcc47], a .asm_71eb ld a, [$ffaa] cp $2 @@ -29,9 +29,9 @@ Func_71e1: ; 71e1 (1:71e1) ld [$ffad], a ld a, $80 ld [$ff02], a - ld a, [$cc47] + ld a, [wcc47] dec a - ld [$cc47], a + ld [wcc47], a jr z, .asm_7287 ; 0x720b $7a ld a, $1 ld [$ff01], a @@ -48,11 +48,11 @@ Func_71e1: ; 71e1 (1:71e1) ld hl, CableClubNPCText2 call PrintText xor a - ld [$cc34], a + ld [wMenuJoypadPollCount], a call YesNoChoice ld a, $1 - ld [$cc34], a - ld a, [$cc26] + ld [wMenuJoypadPollCount], a + ld a, [wCurrentMenuItem] and a jr nz, .asm_728f ; 0x723e $4f callab SaveSAVtoSRAM @@ -61,15 +61,15 @@ Func_71e1: ; 71e1 (1:71e1) call PlaySoundWaitForCurrent ld hl, CableClubNPCText3 call PrintText - ld hl, $cc47 + ld hl, wcc47 ld a, $3 ld [hli], a xor a ld [hl], a ld [$ffa9], a - ld [$cc42], a + ld [wcc42], a call Func_227f - ld hl, $cc47 + ld hl, wcc47 ld a, [hli] inc a jr nz, Func_72a8 ; 0x726b $3b @@ -98,13 +98,13 @@ Func_71e1: ; 71e1 (1:71e1) Func_7298: ; 7298 (1:7298) xor a - ld hl, $cc47 + ld hl, wcc47 ld [hli], a ld [hl], a - ld hl, $d72e + ld hl, wd72e res 6, [hl] xor a - ld [$cc34], a + ld [wMenuJoypadPollCount], a ret Func_72a8: ; 72a8 (1:72a8) diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm index 658f4712..f48c26f4 100755 --- a/engine/overworld/card_key.asm +++ b/engine/overworld/card_key.asm @@ -8,9 +8,8 @@ PrintCardKeyText: ; 52673 (14:6673) ret z cp b jr nz, .asm_5267a - ld a, $35 - call Predef ; indirect jump to Func_c586 (c586 (3:4586)) - ld a, [$cfc6] + predef Func_c586 + ld a, [wcfc6] cp $18 jr z, .asm_5269c cp $24 @@ -35,12 +34,12 @@ PrintCardKeyText: ; 52673 (14:6673) srl d ld a, d ld b, a - ld [$d73f], a + ld [wd73f], a srl e ld a, e ld c, a - ld [$d740], a - ld a, [W_CURMAP] ; $d35e + ld [wd740], a + ld a, [W_CURMAP] ; W_CURMAP cp SILPH_CO_11F jr nz, .asm_526c8 ld a, $3 @@ -48,10 +47,9 @@ PrintCardKeyText: ; 52673 (14:6673) .asm_526c8 ld a, $e .asm_526ca - ld [$d09f], a - ld a, $17 - call Predef ; indirect jump to Func_ee9e - ld hl, $d126 + ld [wd09f], a + predef Func_ee9e + ld hl, wd126 set 5, [hl] ld a, (SFX_1f_57 - SFX_Headers_1f) / 3 jp PlaySound @@ -84,11 +82,11 @@ CardKeyFailText: ; 526f8 (14:66f8) db "@" Func_526fd: ; 526fd (14:66fd) - ld a, [W_YCOORD] ; $d361 + ld a, [W_YCOORD] ; wd361 ld d, a - ld a, [W_XCOORD] ; $d362 + ld a, [W_XCOORD] ; wd362 ld e, a - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] and a jr nz, .asm_5270d inc d diff --git a/engine/overworld/cinnabar_lab.asm b/engine/overworld/cinnabar_lab.asm index 4087b334..eefa2176 100755 --- a/engine/overworld/cinnabar_lab.asm +++ b/engine/overworld/cinnabar_lab.asm @@ -1,18 +1,18 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006) - ld hl, $d730 + ld hl, wd730 set 6, [hl] xor a - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem ld a, $3 - ld [wMenuWatchedKeys], a ; $cc29 - ld a, [$cd37] + ld [wMenuWatchedKeys], a ; wMenuWatchedKeys + ld a, [wcd37] dec a - ld [wMaxMenuItem], a ; $cc28 + ld [wMaxMenuItem], a ; wMaxMenuItem ld a, $2 - ld [wTopMenuItemY], a ; $cc24 + ld [wTopMenuItemY], a ; wTopMenuItemY ld a, $1 - ld [wTopMenuItemX], a ; $cc25 - ld a, [$cd37] + ld [wTopMenuItemX], a ; wTopMenuItemX + ld a, [wcd37] dec a ld bc, $2 ld hl, $3 @@ -24,13 +24,13 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006) call TextBoxBorder call UpdateSprites call Func_610c2 - ld hl, $d730 + ld hl, wd730 res 6, [hl] call HandleMenuInput bit 1, a jr nz, .asm_610a7 - ld hl, $cc5b - ld a, [wCurrentMenuItem] ; $cc26 + ld hl, wcc5b + ld a, [wCurrentMenuItem] ; wCurrentMenuItem ld d, $0 ld e, a add hl, de @@ -55,7 +55,7 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006) ld hl, LabFossil_610ae call PrintText call YesNoChoice - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jr nz, .asm_610a7 ld hl, LabFossil_610b3 @@ -65,7 +65,7 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006) callba RemoveItemByID ld hl, LabFossil_610b8 call PrintText - ld hl, $d7a3 + ld hl, wd7a3 set 0, [hl] set 1, [hl] ret @@ -91,7 +91,7 @@ LabFossil_610bd: ; 610bd (18:50bd) db "@" Func_610c2: ; 610c2 (18:50c2) - ld hl, $cc5b + ld hl, wcc5b xor a ld [$ffdb], a .asm_610c8 @@ -99,14 +99,13 @@ Func_610c2: ; 610c2 (18:50c2) cp $ff ret z push hl - ld [$d11e], a + ld [wd11e], a call GetItemName - FuncCoord 2, 2 ; $c3ca - ld hl, Coord + hlCoord 2, 2 ld a, [$ffdb] ld bc, $28 call AddNTimes - ld de, $cd6d + ld de, wcd6d call PlaceString ld hl, $ffdb inc [hl] @@ -116,10 +115,10 @@ Func_610c2: ; 610c2 (18:50c2) ; loads the names of the fossil item and the resulting mon LoadFossilItemAndMonName: ; 610eb (18:50eb) ld a, [W_FOSSILMON] - ld [$d11e], a + ld [wd11e], a call GetMonName call CopyStringToCF4B ld a, [W_FOSSILITEM] - ld [$d11e], a + ld [wd11e], a call GetItemName ret diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm index 6c888e7f..29b52eb9 100755 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -1,18 +1,18 @@ UsedCut: ; ef54 (3:6f54) xor a - ld [$cd6a], a - ld a, [W_CURMAPTILESET] ; $d367 + ld [wcd6a], a + ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET and a ; OVERWORLD jr z, .asm_ef6b cp GYM jr nz, .asm_ef77 - ld a, [$cfc6] + ld a, [wcfc6] cp $50 ; gym cut tree jr nz, .asm_ef77 jr asm_ef82 .asm_ef6b dec a - ld a, [$cfc6] + ld a, [wcfc6] cp $3d ; cut tree jr z, asm_ef82 cp $52 ; grass @@ -26,16 +26,16 @@ NothingToCutText: ; ef7d (3:6f7d) db "@" asm_ef82: ; ef82 (3:6f82) - ld [$cd4d], a + ld [wcd4d], a ld a, $1 - ld [$cd6a], a - ld a, [wWhichPokemon] ; $cf92 - ld hl, W_PARTYMON1NAME ; $d2b5 + ld [wcd6a], a + ld a, [wWhichPokemon] ; wWhichPokemon + ld hl, wPartyMonNicks ; wPartyMonNicks call GetPartyMonName - ld hl, $d730 + ld hl, wd730 set 6, [hl] call GBPalWhiteOutWithDelay3 - call CleanLCD_OAM + call ClearSprites call Func_3dbe ld a, $90 ld [$ffb0], a @@ -49,17 +49,17 @@ asm_ef82: ; ef82 (3:6f82) ld hl, UsedCutText call PrintText call LoadScreenTilesFromBuffer2 - ld hl, $d730 + ld hl, wd730 res 6, [hl] ld a, $ff - ld [$cfcb], a + ld [wcfcb], a call AnimateCutTree ld de, CutTreeBlockSwaps ; $7100 call Func_f09f call Func_eedc callba Func_79e96 ld a, $1 - ld [$cfcb], a + ld [wcfcb], a ld a, (SFX_02_56 - SFX_Headers_02) / 3 call PlaySound ld a, $90 @@ -73,32 +73,32 @@ UsedCutText: ; eff2 (3:6ff2) AnimateCutTree: ; eff7 (3:6ff7) xor a - ld [$cd50], a + ld [wcd50], a ld a, $e4 ld [rOBP1], a ; $ff49 - ld a, [$cd4d] + ld a, [wcd4d] cp $52 jr z, .asm_f020 ld de, Overworld_GFX + $2d0 ; $42d0 ; cuttable tree sprite top row - ld hl, $8fc0 + ld hl, vChars1 + $7c0 ld bc, (BANK(Overworld_GFX) << 8) + $02 call CopyVideoData ld de, Overworld_GFX + $3d0 ; $43d0 ; cuttable tree sprite bottom row - ld hl, $8fe0 + ld hl, vChars1 + $7e0 ld bc, (BANK(Overworld_GFX) << 8) + $02 call CopyVideoData jr asm_f055 .asm_f020 - ld hl, $8fc0 + ld hl, vChars1 + $7c0 call LoadCutTreeOAM - ld hl, $8fd0 + ld hl, vChars1 + $7d0 call LoadCutTreeOAM - ld hl, $8fe0 + ld hl, vChars1 + $7e0 call LoadCutTreeOAM - ld hl, $8ff0 + ld hl, vChars1 + $7f0 call LoadCutTreeOAM call asm_f055 - ld hl, $c393 + ld hl, wOAMBuffer + $93 ld de, $4 ld a, $30 ld c, e @@ -125,7 +125,7 @@ CutTreeOAM: ; f060 (3:7060) db $FE,$10,$FF,$10 Func_f068: ; f068 (3:7068) - ld hl, $c104 + ld hl, wSpriteStateData1 + 4 ld a, [hli] ld b, a inc hl @@ -137,7 +137,7 @@ Func_f068: ; f068 (3:7068) srl a ld e, a ld d, $0 ; de holds direction (00: down, 02: up, 04: left, 06: right) - ld a, [$cd50] + ld a, [wcd50] and a ld hl, CutTreeAnimationOffsets ; $708f jr z, .asm_f084 @@ -173,39 +173,39 @@ CutTreeAnimationOffsets2: ; f097 (3:7097) Func_f09f: ; f09f (3:709f) push de - ld a, [W_CURMAPWIDTH] ; $d369 + ld a, [W_CURMAPWIDTH] ; wd369 add $6 ld c, a ld b, $0 ld d, $0 - ld hl, $d35f + ld hl, wd35f ld a, [hli] ld h, [hl] ld l, a add hl, bc - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] and a jr z, .asm_f0c7 cp $4 jr z, .asm_f0cf cp $8 jr z, .asm_f0d7 - ld a, [W_XBLOCKCOORD] ; $d364 + ld a, [W_XBLOCKCOORD] ; wd364 and a jr z, .asm_f0e0 jr .asm_f0ec .asm_f0c7 - ld a, [W_YBLOCKCOORD] ; $d363 + ld a, [W_YBLOCKCOORD] ; wd363 and a jr z, .asm_f0e0 jr .asm_f0df .asm_f0cf - ld a, [W_YBLOCKCOORD] ; $d363 + ld a, [W_YBLOCKCOORD] ; wd363 and a jr z, .asm_f0e1 jr .asm_f0e0 .asm_f0d7 - ld a, [W_XBLOCKCOORD] ; $d364 + ld a, [W_XBLOCKCOORD] ; wd364 and a jr z, .asm_f0e6 jr .asm_f0e0 diff --git a/engine/overworld/cut2.asm b/engine/overworld/cut2.asm index c83e571b..08f6d651 100755 --- a/engine/overworld/cut2.asm +++ b/engine/overworld/cut2.asm @@ -1,18 +1,18 @@ Func_79e96: ; 79e96 (1e:5e96) - ld a, [$cd4d] + ld a, [wcd4d] cp $52 jr z, .asm_79ec8 ld c, $8 .asm_79e9f push bc - ld hl, $c391 + ld hl, wOAMBuffer + $91 ld a, $1 - ld [$d08a], a + ld [wd08a], a ld c, $2 call Func_79339 - ld hl, $c399 + ld hl, wOAMBuffer + $99 ld a, $ff - ld [$d08a], a + ld [wd08a], a ld c, $2 call Func_79339 ld a, [rOBP1] ; $ff49 @@ -33,9 +33,9 @@ Func_79e96: ; 79e96 (1e:5e96) ld c, $8 call Func_79eed call Func_79f30 - ld hl, $c390 + ld hl, wOAMBuffer + $90 ld a, $2 - ld [$d08a], a + ld [wd08a], a ld c, $4 call Func_79352 pop bc @@ -45,24 +45,24 @@ Func_79e96: ; 79e96 (1e:5e96) Func_79eed: ; 79eed (1e:5eed) push bc - ld hl, $c391 + ld hl, wOAMBuffer + $91 ld a, $1 - ld [$d08a], a + ld [wd08a], a ld c, $1 call Func_79339 - ld hl, $c395 + ld hl, wOAMBuffer + $95 ld a, $2 - ld [$d08a], a + ld [wd08a], a ld c, $1 call Func_79339 - ld hl, $c399 + ld hl, wOAMBuffer + $99 ld a, $fe - ld [$d08a], a + ld [wd08a], a ld c, $1 call Func_79339 - ld hl, $c39d + ld hl, wOAMBuffer + $9d ld a, $ff - ld [$d08a], a + ld [wd08a], a ld c, $1 call Func_79339 ld a, [rOBP1] ; $ff49 @@ -75,15 +75,15 @@ Func_79eed: ; 79eed (1e:5eed) ret Func_79f30: ; 79f30 (1e:5f30) - ld hl, $c390 - ld de, $cee9 + ld hl, wOAMBuffer + $90 + ld de, wHPBarMaxHP ld bc, $8 call CopyData - ld hl, $c398 - ld de, $c390 + ld hl, wOAMBuffer + $98 + ld de, wOAMBuffer + $90 ld bc, $8 call CopyData - ld hl, $cee9 - ld de, $c398 + ld hl, wHPBarMaxHP + ld de, wOAMBuffer + $98 ld bc, $8 jp CopyData diff --git a/engine/overworld/doors.asm b/engine/overworld/doors.asm index ff58b752..42ebb174 100755 --- a/engine/overworld/doors.asm +++ b/engine/overworld/doors.asm @@ -1,7 +1,7 @@ HandleDoors: ; 1a609 (6:6609) push de ld hl, DoorTileIDPointers ; $662c - ld a, [W_CURMAPTILESET] ; $d367 + ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET ld de, $3 call IsInArray pop de @@ -10,8 +10,7 @@ HandleDoors: ; 1a609 (6:6609) ld a, [hli] ld h, [hl] ld l, a - FuncCoord 8, 9 ; $c45c - ld a, [Coord] + aCoord 8, 9 ld b, a .asm_1a621 ld a, [hli] diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm index e483e0c3..10b3b003 100755 --- a/engine/overworld/elevator.asm +++ b/engine/overworld/elevator.asm @@ -34,14 +34,14 @@ ShakeElevator: ; 7bf15 (1e:7f15) ld a, (SFX_02_5f - SFX_Headers_02) / 3 call PlayMusic .asm_7bf57 - ld a, [$c02a] + ld a, [wc02a] cp $b9 jr z, .asm_7bf57 call UpdateSprites jp Func_2307 Func_7bf64: ; 7bf64 (1e:7f64) - ld hl, $d527 + ld hl, wd527 ld a, [hld] push af ld a, [hl] diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm index b480c06d..ae7702b4 100755 --- a/engine/overworld/emotion_bubbles.asm +++ b/engine/overworld/emotion_bubbles.asm @@ -1,5 +1,5 @@ -PrintEmotionBubble: ; 17c47 (5:7c47) - ld a, [$cd50] +EmotionBubble: ; 17c47 (5:7c47) + ld a, [wcd50] ld c, a ld b, $0 ld hl, EmotionBubblesPointerTable ; $7caf @@ -8,20 +8,20 @@ PrintEmotionBubble: ; 17c47 (5:7c47) ld e, [hl] inc hl ld d, [hl] - ld hl, $8f80 + ld hl, vChars1 + $780 ld bc, (BANK(EmotionBubblesPointerTable) << 8) + $04 call CopyVideoData - ld a, [$cfcb] + ld a, [wcfcb] push af ld a, $ff - ld [$cfcb], a - ld a, [$d736] + ld [wcfcb], a + ld a, [wd736] bit 6, a - ld hl, $c38f - ld de, $c39f + ld hl, wOAMBuffer + $8f + ld de, wOAMBuffer + $9f jr z, .asm_17c7a - ld hl, $c37f - ld de, $c38f + ld hl, wOAMBuffer + $7f + ld de, wOAMBuffer + $8f .asm_17c7a ld bc, $90 .asm_17c7d @@ -33,8 +33,8 @@ PrintEmotionBubble: ; 17c47 (5:7c47) ld a, c or b jr nz, .asm_17c7d - ld hl, $c104 - ld a, [$cd4f] + ld hl, wSpriteStateData1 + 4 + ld a, [wcd4f] swap a ld c, a ld b, $0 @@ -51,7 +51,7 @@ PrintEmotionBubble: ; 17c47 (5:7c47) ld c, $3c call DelayFrames pop af - ld [$cfcb], a + ld [wcfcb], a call DelayFrame jp UpdateSprites @@ -65,4 +65,4 @@ EmotionBubblesOAM: ; 17cb5 (5:7cb5) db $FA,$00,$FB,$00 EmotionBubbles: ; 17cbd (5:7cbd) - INCBIN "gfx/emotion_bubbles.w16.2bpp" + INCBIN "gfx/emotion_bubbles.2bpp" diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm index 77ff4ccc..9c93583d 100755 --- a/engine/overworld/healing_machine.asm +++ b/engine/overworld/healing_machine.asm @@ -1,9 +1,9 @@ AnimateHealingMachine: ; 70433 (1c:4433) ld de, PokeCenterFlashingMonitorAndHealBall ; $44b7 - ld hl, $87c0 + ld hl, vChars0 + $7c0 ld bc, (BANK(PokeCenterFlashingMonitorAndHealBall) << 8) + $03 call CopyVideoData - ld hl, $cfcb + ld hl, wcfcb ld a, [hl] push af ld [hl], $ff @@ -12,19 +12,19 @@ AnimateHealingMachine: ; 70433 (1c:4433) push af ld a, $e0 ld [rOBP1], a ; $ff49 - ld hl, $c384 + ld hl, wOAMBuffer + $84 ld de, PokeCenterOAMData ; $44d7 call Func_70503 ld a, $4 ld [wMusicHeaderPointer], a ld a, $ff - ld [$c0ee], a + ld [wc0ee], a call PlaySound .asm_70464 ld a, [wMusicHeaderPointer] and a jr nz, .asm_70464 - ld a, [W_NUMINPARTY] ; $d163 + ld a, [wPartyCount] ; wPartyCount ld b, a .asm_7046e call Func_70503 @@ -34,23 +34,23 @@ AnimateHealingMachine: ; 70433 (1c:4433) call DelayFrames dec b jr nz, .asm_7046e - ld a, [$c0ef] + ld a, [wc0ef] cp $1f - ld [$c0f0], a + ld [wc0f0], a jr nz, .asm_70495 ld a, $ff - ld [$c0ee], a + ld [wc0ee], a call PlaySound - ld a, Bank(Func_9876) - ld [$c0ef], a + ld a, BANK(Music_PkmnHealed) + ld [wc0ef], a .asm_70495 ld a, MUSIC_PKMN_HEALED - ld [$c0ee], a + ld [wc0ee], a call PlaySound ld d, $28 call Func_704f3 .asm_704a2 - ld a, [$c026] + ld a, [wc026] cp MUSIC_PKMN_HEALED jr z, .asm_704a2 ld c, $20 diff --git a/engine/overworld/hidden_items.asm b/engine/overworld/hidden_items.asm index db6bf1cd..77bd8fe6 100755 --- a/engine/overworld/hidden_items.asm +++ b/engine/overworld/hidden_items.asm @@ -1,21 +1,20 @@ HiddenItems: ; 76688 (1d:6688) ld hl, HiddenItemCoords call Func_76857 - ld [$cd41], a - ld hl, $d6f0 - ld a, [$cd41] + ld [wTrainerScreenX], a + ld hl, wd6f0 + ld a, [wTrainerScreenX] ld c, a ld b, $2 - ld a, $10 - call Predef + predef FlagActionPredef ld a, c and a ret nz call EnableAutoTextBoxDrawing ld a, $1 - ld [$cc3c], a - ld a, [$cd3d] ; item ID - ld [$d11e], a + ld [wcc3c], a + ld a, [wWhichTrade] ; item ID + ld [wd11e], a call GetItemName ld a, $24 jp PrintPredefTextID @@ -26,17 +25,16 @@ FoundHiddenItemText: ; 7675b (1d:675b) ; XXX where is the pointer to this? TX_FAR _FoundHiddenItemText db $8 - ld a, [$cd3d] ; item ID + ld a, [wWhichTrade] ; item ID ld b, a ld c, 1 call GiveItem jr nc, .BagFull - ld hl, $d6f0 - ld a, [$cd41] + ld hl, wd6f0 + ld a, [wTrainerScreenX] ld c, a ld b, $1 - ld a, $10 - call Predef + predef FlagActionPredef ld a, (SFX_02_3b - SFX_Headers_02) / 3 call PlaySoundWaitForCurrent ; play sound call WaitForSoundToFinish ; wait for sound to finish playing @@ -44,7 +42,7 @@ FoundHiddenItemText: ; 7675b (1d:675b) .BagFull call WaitForTextScrollButtonPress ; wait for button press xor a - ld [$cc3c], a + ld [wcc3c], a ld hl, HiddenItemBagFullText call PrintText jp TextScriptEnd @@ -55,20 +53,18 @@ HiddenItemBagFullText: ; 76794 (1d:6794) HiddenCoins: ; 76799 (1d:6799) ld b, COIN_CASE - ld a, $1c - call Predef + predef IsItemInBag_ ld a, b and a ret z ld hl, HiddenCoinCoords call Func_76857 - ld [$cd41], a - ld hl, $d6fe - ld a, [$cd41] + ld [wTrainerScreenX], a + ld hl, wd6fe + ld a, [wTrainerScreenX] ld c, a ld b, $2 - ld a, $10 - call Predef + predef FlagActionPredef ld a, c and a ret nz @@ -76,7 +72,7 @@ HiddenCoins: ; 76799 (1d:6799) ld [$ff9f], a ld [$ffa0], a ld [$ffa1], a - ld a, [$cd3d] + ld a, [wWhichTrade] sub COIN cp 10 jr z, .bcd10 @@ -101,17 +97,15 @@ HiddenCoins: ; 76799 (1d:6799) ld a, $1 ld [$ffa0], a .bcddone - ld de, $d5a5 + ld de, wPlayerCoins + 1 ld hl, $ffa1 ld c, $2 - ld a, $b - call Predef - ld hl, $d6fe - ld a, [$cd41] + predef AddBCDPredef + ld hl, wd6fe + ld a, [wTrainerScreenX] ld c, a ld b, $1 - ld a, $10 - call Predef + predef FlagActionPredef call EnableAutoTextBoxDrawing ld a, [wPlayerCoins] cp $99 @@ -139,9 +133,9 @@ DroppedHiddenCoinsText: ; 7684d (1d:684d) db "@" Func_76857: ; 76857 (1d:6857) - ld a, [$cd40] + ld a, [wTrainerScreenY] ld d, a - ld a, [$cd41] + ld a, [wTrainerScreenX] ld e, a ld a, [W_CURMAP] ld b, a diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm index e4777a84..d2114293 100755 --- a/engine/overworld/hidden_objects.asm +++ b/engine/overworld/hidden_objects.asm @@ -1,16 +1,16 @@ Func_46981: ; 46981 (11:6981) xor a - ld [$d71e], a - ld a, [$d72d] + ld [wd71e], a + ld a, [wd72d] bit 4, a ret nz call ArePlayerCoordsInArray ret nc - ld a, [wWhichTrade] ; $cd3d - ld [$d71e], a - ld hl, $d72d + ld a, [wWhichTrade] ; wWhichTrade + ld [wd71e], a + ld hl, wd72d set 4, [hl] - ld hl, $d732 + ld hl, wd732 set 4, [hl] ret @@ -28,7 +28,7 @@ Func_469a0: ; 469a0 (11:69a0) ld b, a cp $ff jr z, .asm_469fc - ld a, [W_CURMAP] ; $d35e + ld a, [W_CURMAP] ; W_CURMAP cp b jr z, .asm_469be inc de @@ -41,7 +41,7 @@ Func_469a0: ; 469a0 (11:69a0) ld h, [hl] ld l, a push hl - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade xor a ld [hli], a ld [hli], a @@ -51,10 +51,10 @@ Func_469a0: ; 469a0 (11:69a0) ld a, [hli] cp $ff jr z, .asm_469fc - ld [$cd40], a + ld [wTrainerScreenY], a ld b, a ld a, [hli] - ld [$cd41], a + ld [wTrainerScreenX], a ld c, a call Func_46a01 ld a, [$ffea] @@ -65,15 +65,15 @@ Func_469a0: ; 469a0 (11:69a0) inc hl inc hl push hl - ld hl, $cd3f + ld hl, wTrainerFacingDirection inc [hl] pop hl jr .asm_469ce .asm_469f0 ld a, [hli] - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade ld a, [hli] - ld [$cd3e], a + ld [wTrainerEngageDistance], a ld a, [hli] ld h, [hl] ld l, a @@ -84,37 +84,37 @@ Func_469a0: ; 469a0 (11:69a0) ret Func_46a01: ; 46a01 (11:6a01) - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] cp $4 jr z, .asm_46a16 cp $8 jr z, .asm_46a25 cp $c jr z, .asm_46a2b - ld a, [W_YCOORD] ; $d361 + ld a, [W_YCOORD] ; wd361 inc a jr .asm_46a1a .asm_46a16 - ld a, [W_YCOORD] ; $d361 + ld a, [W_YCOORD] ; wd361 dec a .asm_46a1a cp b jr nz, .asm_46a3b - ld a, [W_XCOORD] ; $d362 + ld a, [W_XCOORD] ; wd362 cp c jr nz, .asm_46a3b jr .asm_46a38 .asm_46a25 - ld a, [W_XCOORD] ; $d362 + ld a, [W_XCOORD] ; wd362 dec a jr .asm_46a2f .asm_46a2b - ld a, [W_XCOORD] ; $d362 + ld a, [W_XCOORD] ; wd362 inc a .asm_46a2f cp c jr nz, .asm_46a3b - ld a, [W_YCOORD] ; $d361 + ld a, [W_YCOORD] ; wd361 cp b jr nz, .asm_46a3b .asm_46a38 diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm new file mode 100644 index 00000000..a69ec106 --- /dev/null +++ b/engine/overworld/item.asm @@ -0,0 +1,54 @@ +PickupItem: + call EnableAutoTextBoxDrawing + + ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c + ld b, a + ld hl, W_MISSABLEOBJECTLIST +.missableObjectsListLoop + ld a, [hli] + cp $ff + ret z + cp b + jr z, .isMissable + inc hl + jr .missableObjectsListLoop + +.isMissable + ld a, [hl] + ld [$ffdb], a + + ld hl, W_MAPSPRITEEXTRADATA + ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c + dec a + add a + ld d, 0 + ld e, a + add hl, de + ld a, [hl] + ld b, a ; item + ld c, 1 ; quantity + call GiveItem + jr nc, .BagFull + + ld a, [$ffdb] + ld [wcc4d], a + predef HideObject + ld a, 1 + ld [wcc3c], a + ld hl, FoundItemText + jr .print + +.BagFull + ld hl, NoMoreRoomForItemText +.print + call PrintText + ret + +FoundItemText: + TX_FAR _FoundItemText + db $0B + db "@" + +NoMoreRoomForItemText: + TX_FAR _NoMoreRoomForItemText + db "@" diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm index d2f248cd..43df82e2 100755 --- a/engine/overworld/ledges.asm +++ b/engine/overworld/ledges.asm @@ -1,18 +1,16 @@ HandleLedges: ; 1a672 (6:6672) - ld a, [$d736] + ld a, [wd736] bit 6, a ret nz - ld a, [W_CURMAPTILESET] ; $d367 + ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET and a ; OVERWORLD ret nz - ld a, $35 - call Predef ; indirect jump to Func_c586 (c586 (3:4586)) - ld a, [$c109] + predef Func_c586 + ld a, [wSpriteStateData1 + 9] ld b, a - FuncCoord 8, 9 ; $c45c - ld a, [Coord] + aCoord 8, 9 ld c, a - ld a, [$cfc6] + ld a, [wcfc6] ld d, a ld hl, LedgeTiles ; $66cf .asm_1a691 @@ -38,19 +36,19 @@ HandleLedges: ; 1a672 (6:6672) inc hl jr .asm_1a691 .asm_1a6a9 - ld a, [H_CURRENTPRESSEDBUTTONS] + ld a, [hJoyHeld] and e ret z ld a, $ff - ld [wJoypadForbiddenButtonsMask], a - ld hl, $d736 + ld [wJoyIgnore], a + ld hl, wd736 set 6, [hl] call Func_3486 ld a, e - ld [$ccd3], a - ld [$ccd4], a + ld [wccd3], a + ld [wccd4], a ld a, $2 - ld [$cd38], a + ld [wcd38], a call LoadHoppingShadowOAM ld a, (SFX_02_4e - SFX_Headers_02) / 3 call PlaySound @@ -69,7 +67,7 @@ LedgeTiles: ; 1a6cf (6:66cf) db $FF LoadHoppingShadowOAM: ; 1a6f0 (6:66f0) - ld hl, $8ff0 + ld hl, vChars1 + $7f0 ld de, LedgeHoppingShadow ; $6708 ld bc, (BANK(LedgeHoppingShadow) << 8) + $01 call CopyVideoDataDouble diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm index a734319d..81443c9f 100755 --- a/engine/overworld/map_sprites.asm +++ b/engine/overworld/map_sprites.asm @@ -4,7 +4,7 @@ ; This is also called after displaying text because loading ; text tile patterns overwrites half of the sprite tile pattern data. ; Note on notation: -; $C1X* and $C2X* are used to denote $C100-$C1FF and $C200-$C2FF sprite slot +; $C1X* and $C2X* are used to denote wSpriteStateData1-wSpriteStateData1 + $ff and wSpriteStateData2 + $00-wSpriteStateData2 + $ff sprite slot ; fields, respectively, within loops. The X is the loop index. ; If there is an inner loop, Y is the inner loop index, i.e. $C1Y* and $C2Y* ; denote fields of the sprite slots interated over in the inner loop. @@ -13,7 +13,7 @@ InitMapSprites: ; 1785b (5:785b) ret c ; return if the map is an outside map (already handled by above call) ; if the map is an inside map (i.e. mapID >= $25) ld hl,wSpriteStateData1 - ld de,$c20d + ld de,wSpriteStateData2 + $0d ; Loop to copy picture ID's from $C1X0 to $C2XD for LoadMapSpriteTilePatterns. .copyPictureIDLoop ld a,[hl] ; $C1X0 (picture ID) @@ -37,7 +37,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) .spritesExist ld c,a ; c = [W_NUMSPRITES] ld b,$10 ; number of sprite slots - ld hl,$c20d + ld hl,wSpriteStateData2 + $0d xor a ld [$ff8e],a ; 4-tile sprite counter .copyPictureIDLoop ; loop to copy picture ID from $C2XD to $C2XE @@ -48,9 +48,9 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) ld l,a dec b jr nz,.copyPictureIDLoop - ld hl,$c21e + ld hl,wSpriteStateData2 + $1e .loadTilePatternLoop - ld de,$c21d + ld de,wSpriteStateData2 + $1d ; Check if the current picture ID has already had its tile patterns loaded. ; This done by looping through the previous sprite slots and seeing if any of ; their picture ID's match that of the current sprite slot. @@ -70,7 +70,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) ld e,a jr .checkIfAlreadyLoadedLoop .notAlreadyLoaded - ld de,$c20e + ld de,wSpriteStateData2 + $0e ld b,$01 ; loop to find the highest tile pattern VRAM slot (among the first 10 slots) used by a previous sprite slot ; this is done in order to find the first free VRAM slot available @@ -126,7 +126,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) push af push de push bc - ld hl,$8000 ; VRAM base address + ld hl,vNPCSprites ; VRAM base address ld bc,$c0 ; number of bytes per VRAM slot ld a,[$ff8d] cp a,11 ; is it a 4-tile sprite? @@ -141,12 +141,12 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) jr nz,.calculateVRAMAddrLoop jr .loadStillTilePattern .fourTileSpriteVRAMAddr - ld hl,$87c0 ; address for second 4-tile sprite + ld hl,vSprites + $7c0 ; address for second 4-tile sprite ld a,[$ff8e] ; 4-tile sprite counter and a ; is it the first 4-tile sprite? jr nz,.loadStillTilePattern ; if it's the first 4-tile sprite - ld hl,$8780 ; address for first 4-tile sprite + ld hl,vSprites + $780 ; address for first 4-tile sprite inc a ld [$ff8e],a ; 4-tile sprite counter .loadStillTilePattern @@ -159,7 +159,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) ld l,e pop de ld b,a - ld a,[$cfc4] + ld a,[wcfc4] bit 0,a ; reloading upper half of tile patterns after displaying text? jr nz,.skipFirstLoad ; if so, skip loading data into the lower half ld a,b @@ -180,7 +180,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) jr nc,.noCarry3 inc d .noCarry3 - ld a,[$cfc4] + ld a,[wcfc4] bit 0,a ; reloading upper half of tile patterns after displaying text? jr nz,.loadWhileLCDOn pop af @@ -216,7 +216,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) ld l,a dec c jp nz,.loadTilePatternLoop - ld hl,$c20d + ld hl,wSpriteStateData2 + $0d ld b,$10 ; the pictures ID's stored at $C2XD are no longer needed, so zero them .zeroStoredPictureIDLoop @@ -264,7 +264,7 @@ InitOutsideMapSprites: ; 1797b (5:797b) cp a,$f0 ; does the map have 2 sprite sets? call nc,GetSplitMapSpriteSetID ; if so, choose the appropriate one ld b,a ; b = spriteSetID - ld a,[$cfc4] + ld a,[wcfc4] bit 0,a ; reloading upper half of tile patterns after displaying text? jr nz,.loadSpriteSet ; if so, forcibly reload the sprite set ld a,[W_SPRITESETID] @@ -288,7 +288,7 @@ InitOutsideMapSprites: ; 1797b (5:797b) jr nc,.noCarry2 inc d .noCarry2 - ld hl,$c20d + ld hl,wSpriteStateData2 + $0d ld a,SPRITE_RED ld [hl],a ld bc,W_SPRITESET @@ -324,7 +324,7 @@ InitOutsideMapSprites: ; 1797b (5:797b) call LoadMapSpriteTilePatterns pop af ld [W_NUMSPRITES],a ; restore number of sprites - ld hl,$c21e + ld hl,wSpriteStateData2 + $1e ld b,$0f ; The VRAM tile pattern slots that LoadMapSpriteTilePatterns set are in the ; order of the map's sprite set, not the order of the actual sprites loaded @@ -338,7 +338,7 @@ InitOutsideMapSprites: ; 1797b (5:797b) dec b jr nz,.zeroVRAMSlotsLoop .skipLoadingSpriteSet - ld hl,$c110 + ld hl,wSpriteStateData1 + $10 ; This loop stores the correct VRAM tile pattern slots according the sprite ; data from the map's header. Since the VRAM tile pattern slots are filled in ; the order of the sprite set, in order to find the VRAM tile pattern slot diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm new file mode 100644 index 00000000..f08a20cb --- /dev/null +++ b/engine/overworld/movement.asm @@ -0,0 +1,856 @@ +UpdatePlayerSprite: ; 4e31 (1:4e31) + ld a, [wSpriteStateData2] + and a + jr z, .asm_4e41 + cp $ff + jr z, .asm_4e4a + dec a + ld [wSpriteStateData2], a + jr .asm_4e4a +.asm_4e41 + aCoord 8, 9 + ld [$ff93], a + cp $60 + jr c, .asm_4e50 +.asm_4e4a + ld a, $ff + ld [wSpriteStateData1 + 2], a + ret +.asm_4e50 + call Func_4c70 + ld h, $c1 + ld a, [wWalkCounter] ; wcfc5 + and a + jr nz, .asm_4e90 + ld a, [wd528] + bit 2, a + jr z, .asm_4e65 + xor a + jr .asm_4e86 +.asm_4e65 + bit 3, a + jr z, .asm_4e6d + ld a, $4 + jr .asm_4e86 +.asm_4e6d + bit 1, a + jr z, .asm_4e75 + ld a, $8 + jr .asm_4e86 +.asm_4e75 + bit 0, a + jr z, .asm_4e7d + ld a, $c + jr .asm_4e86 +.asm_4e7d + xor a + ld [wSpriteStateData1 + 7], a + ld [wSpriteStateData1 + 8], a + jr .asm_4eab +.asm_4e86 + ld [wSpriteStateData1 + 9], a + ld a, [wcfc4] + bit 0, a + jr nz, .asm_4e7d +.asm_4e90 + ld a, [wd736] + bit 7, a + jr nz, .asm_4eb6 + ld a, [H_CURRENTSPRITEOFFSET] + add $7 + ld l, a + ld a, [hl] + inc a + ld [hl], a + cp $4 + jr nz, .asm_4eab + xor a + ld [hl], a + inc hl + ld a, [hl] + inc a + and $3 + ld [hl], a +.asm_4eab + ld a, [wSpriteStateData1 + 8] + ld b, a + ld a, [wSpriteStateData1 + 9] + add b + ld [wSpriteStateData1 + 2], a +.asm_4eb6 + ld a, [$ff93] + ld c, a + ld a, [W_GRASSTILE] + cp c + ld a, $0 + jr nz, .asm_4ec3 + ld a, $80 +.asm_4ec3 + ld [wSpriteStateData2 + $07], a + ret + +Func_4ec7: ; 4ec7 (1:4ec7) + push bc + push af + ld a, [$ffda] + ld c, a + pop af + add c + ld l, a + pop bc + ret + +Func_4ed1: ; 4ed1 (1:4ed1) + ld a, [H_CURRENTSPRITEOFFSET] + swap a + dec a + add a + ld hl, W_MAPSPRITEDATA ; wd4e4 + add l + ld l, a + ld a, [hl] ; read movement byte 2 + ld [wCurSpriteMovement2], a + ld h, $c1 + ld a, [H_CURRENTSPRITEOFFSET] + ld l, a + inc l + ld a, [hl] ; c1x1 + and a + jp z, InitializeSpriteStatus + call CheckSpriteAvailability + ret c ; if sprite is invisible, on tile >=$60, in grass or player is currently walking + ld h, $c1 + ld a, [H_CURRENTSPRITEOFFSET] + ld l, a + inc l + ld a, [hl] ; c1x1 + bit 7, a + jp nz, InitializeSpriteFacingDirection ; c1x1 >= $80 + ld b, a + ld a, [wcfc4] + bit 0, a + jp nz, notYetMoving + ld a, b + cp $2 + jp z, UpdateSpriteMovementDelay ; c1x1 == 2 + cp $3 + jp z, UpdateSpriteInWalkingAnimation ; c1x1 == 3 + ld a, [wWalkCounter] ; wcfc5 + and a + ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability) + call InitializeSpriteScreenPosition + ld h, $c2 + ld a, [H_CURRENTSPRITEOFFSET] + add $6 + ld l, a + ld a, [hl] ; c2x6: movement byte 1 + inc a + jr z, .asm_4f59 ; value $FF + inc a + jr z, .asm_4f59 ; value $FE + dec a + ld [hl], a ; (temporarily) increment movement byte 1 + dec a + push hl + ld hl, wcf0f + dec [hl] ; decrement wcf0f + pop hl + ld de, wcc5b + call LoadDEPlusA ; a = [wcc5b + movement byte 1] + cp $e0 + jp z, ChangeFacingDirection + cp $ff + jr nz, .asm_4f4b + ld [hl], a ; reset movement byte 1 to initial value + ld hl, wd730 + res 0, [hl] + xor a + ld [wcd38], a + ld [wcd3a], a + ret +.asm_4f4b + cp $fe + jr nz, .asm_4f5f + ld [hl], $1 ; set movement byte 1 to $1 + ld de, wcc5b + call LoadDEPlusA ; a = [wcc5b + $fe] (?) + jr .asm_4f5f +.asm_4f59 + call getTileSpriteStandsOn + call Random +.asm_4f5f + ld b, a + ld a, [wCurSpriteMovement2] + cp $d0 + jr z, .moveDown ; movement byte 2 = $d0 forces down + cp $d1 + jr z, .moveUp ; movement byte 2 = $d1 forces up + cp $d2 + jr z, .moveLeft ; movement byte 2 = $d2 forces left + cp $d3 + jr z, .moveRight ; movement byte 2 = $d3 forces right + ld a, b + cp $40 ; a < $40: down (or left) + jr nc, .notDown + ld a, [wCurSpriteMovement2] + cp $2 + jr z, .moveLeft ; movement byte 2 = $2 only allows left or right +.moveDown + ld de, 2*20 + add hl, de ; move tile pointer two rows down + ld de, $100 + + ld bc, $400 + jr TryWalking +.notDown + cp $80 ; $40 <= a < $80: up (or right) + jr nc, .notUp + ld a, [wCurSpriteMovement2] + cp $2 + jr z, .moveRight ; movement byte 2 = $2 only allows left or right +.moveUp + ld de, -2*20 ; $ffd8 + add hl, de ; move tile pointer two rows up + ld de, $ff00 + ld bc, $804 + jr TryWalking +.notUp + cp $c0 ; $80 <= a < $c0: left (or up) + jr nc, .notLeft + ld a, [wCurSpriteMovement2] + cp $1 + jr z, .moveUp ; movement byte 2 = $1 only allows up or down +.moveLeft + dec hl + dec hl ; move tile pointer two columns left + ld de, $ff + ld bc, $208 + jr TryWalking +.notLeft ; $c0 <= a: right (or down) + ld a, [wCurSpriteMovement2] + cp $1 + jr z, .moveDown ; movement byte 2 = $1 only allows up or down +.moveRight + inc hl + inc hl ; move tile pointer two columns right + ld de, $1 + ld bc, $10c + jr TryWalking + +; changes facing direction by zeroing the movement delta and calling TryWalking +ChangeFacingDirection: ; 4fc8 (1:4fc8) + ld de, $0 + ; fall through + +; b: direction (1,2,4 or 8) +; c: new facing direction (0,4,8 or $c) +; d: Y movement delta (-1, 0 or 1) +; e: X movement delta (-1, 0 or 1) +; hl: pointer to tile the sprite would wlak onto +; set carry on failure, clears carry on success +TryWalking: ; 4fcb (1:4fcb) + push hl + ld h, $c1 + ld a, [H_CURRENTSPRITEOFFSET] + add $9 + ld l, a + ld [hl], c ; c1x9 (update facing direction) + ld a, [H_CURRENTSPRITEOFFSET] + add $3 + ld l, a + ld [hl], d ; c1x3 (update Y movement delta) + inc l + inc l + ld [hl], e ; c1x5 (update X movement delta) + pop hl + push de + ld c, [hl] ; read tile to walk onto + call CanWalkOntoTile + pop de + ret c ; cannot walk there (reinitialization of delay values already done) + ld h, $c2 + ld a, [H_CURRENTSPRITEOFFSET] + add $4 + ld l, a + ld a, [hl] ; c2x4: Y position + add d + ld [hli], a ; update Y position + ld a, [hl] ; c2x5: X position + add e + ld [hl], a ; update X position + ld a, [H_CURRENTSPRITEOFFSET] + ld l, a + ld [hl], $10 ; c2x0=16: walk animation counter + dec h + inc l + ld [hl], $3 ; c1x1: set movement status to walking + jp UpdateSpriteImage + +; update the walking animation parameters for a sprite that is currently walking +UpdateSpriteInWalkingAnimation: ; 4ffe (1:4ffe) + ld a, [H_CURRENTSPRITEOFFSET] + add $7 + ld l, a + ld a, [hl] ; c1x7 (counter until next walk animation frame) + inc a + ld [hl], a ; c1x7 += 1 + cp $4 + jr nz, .noNextAnimationFrame + xor a + ld [hl], a ; c1x7 = 0 + inc l + ld a, [hl] ; c1x8 (walk animation frame) + inc a + and $3 + ld [hl], a ; advance to next animation frame every 4 ticks (16 ticks total for one step) +.noNextAnimationFrame + ld a, [H_CURRENTSPRITEOFFSET] + add $3 + ld l, a + ld a, [hli] ; c1x3 (movement Y delta) + ld b, a + ld a, [hl] ; c1x4 (screen Y position) + add b + ld [hli], a ; update screen Y position + ld a, [hli] ; c1x5 (movement X delta) + ld b, a + ld a, [hl] ; c1x6 (screen X position) + add b + ld [hl], a ; update screen X position + ld a, [H_CURRENTSPRITEOFFSET] + ld l, a + inc h + ld a, [hl] ; c2x0 (walk animantion counter) + dec a + ld [hl], a ; update walk animantion counter + ret nz + ld a, $6 ; walking finished, update state + add l + ld l, a + ld a, [hl] ; c2x6 (movement byte 1) + cp $fe + jr nc, .initNextMovementCounter ; values $fe and $ff + ld a, [H_CURRENTSPRITEOFFSET] + inc a + ld l, a + dec h + ld [hl], $1 ; c1x1 = 1 (movement status ready) + ret +.initNextMovementCounter + call Random + ld a, [H_CURRENTSPRITEOFFSET] + add $8 + ld l, a + ld a, [hRandomAdd] + and $7f + ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f] + dec h ; note that value 0 actually makes the delay $100 (bug?) + ld a, [H_CURRENTSPRITEOFFSET] + inc a + ld l, a + ld [hl], $2 ; c1x1 = 2 (movement status) + inc l + inc l + xor a + ld b, [hl] ; c1x3 (movement Y delta) + ld [hli], a ; reset movement Y delta + inc l + ld c, [hl] ; c1x5 (movement X delta) + ld [hl], a ; reset movement X delta + ret + +; update delay value (c2x8) for sprites in the delayed state (c1x1) +UpdateSpriteMovementDelay: ; 5057 (1:5057) + ld h, $c2 + ld a, [H_CURRENTSPRITEOFFSET] + add $6 + ld l, a + ld a, [hl] ; c2x6: movement byte 1 + inc l + inc l + cp $fe + jr nc, .tickMoveCounter ; values $fe or $ff + ld [hl], $0 + jr .moving +.tickMoveCounter + dec [hl] ; c2x8: frame counter until next movement + jr nz, notYetMoving +.moving + dec h + ld a, [H_CURRENTSPRITEOFFSET] + inc a + ld l, a + ld [hl], $1 ; c1x1 = 1 (mark as ready to move) +notYetMoving: ; 5073 (1:5073) + ld h, $c1 + ld a, [H_CURRENTSPRITEOFFSET] + add $8 + ld l, a + ld [hl], $0 ; c1x8 = 0 (walk animation frame) + jp UpdateSpriteImage + +InitializeSpriteFacingDirection: ; 507f (1:507f) + ld a, [wd72d] + bit 5, a + jr nz, notYetMoving + res 7, [hl] + ld a, [wd52a] + bit 3, a + jr z, .notFacingDown + ld c, $0 ; make sprite face down + jr .facingDirectionDetermined +.notFacingDown + bit 2, a + jr z, .notFacingUp + ld c, $4 ; make sprite face up + jr .facingDirectionDetermined +.notFacingUp + bit 1, a + jr z, .notFacingRight + ld c, $c ; make sprite face right + jr .facingDirectionDetermined +.notFacingRight + ld c, $8 ; make sprite face left +.facingDirectionDetermined + ld a, [H_CURRENTSPRITEOFFSET] + add $9 + ld l, a + ld [hl], c ; c1x9: set facing direction + jr notYetMoving + +InitializeSpriteStatus: ; 50ad (1:50ad) + ld [hl], $1 ; $c1x1: set movement status to ready + inc l + ld [hl], $ff ; $c1x2: set sprite image to $ff (invisible/off screen) + inc h + ld a, [H_CURRENTSPRITEOFFSET] + add $2 + ld l, a + ld a, $8 + ld [hli], a ; $c2x2: set Y displacement to 8 + ld [hl], a ; $c2x3: set X displacement to 8 + ret + +; calculates the spprite's scrren position form its map position and the player position +InitializeSpriteScreenPosition: ; 50bd (1:50bd) + ld h, $c2 + ld a, [H_CURRENTSPRITEOFFSET] + add $4 + ld l, a + ld a, [W_YCOORD] ; wd361 + ld b, a + ld a, [hl] ; c2x4 (Y position + 4) + sub b ; relative to player position + swap a ; * 16 + sub $4 ; - 4 + dec h + ld [hli], a ; c1x4 (screen Y position) + inc h + ld a, [W_XCOORD] ; wd362 + ld b, a + ld a, [hli] ; c2x6 (X position + 4) + sub b ; relative to player position + swap a ; * 16 + dec h + ld [hl], a ; c1x6 (screen X position) + ret + +; tests if sprite is off screen or otherwise unable to do anything +CheckSpriteAvailability: ; 50dc (1:50dc) + predef IsObjectHidden + ld a, [$ffe5] + and a + jp nz, .spriteInvisible + ld h, $c2 + ld a, [H_CURRENTSPRITEOFFSET] + add $6 + ld l, a + ld a, [hl] ; c2x6: movement byte 1 + cp $fe + jr c, .skipXVisibilityTest ; movement byte 1 < $fe + ld a, [H_CURRENTSPRITEOFFSET] + add $4 + ld l, a + ld b, [hl] ; c2x4: Y pos (+4) + ld a, [W_YCOORD] ; wd361 + cp b + jr z, .skipYVisibilityTest + jr nc, .spriteInvisible ; above screen region + add $8 ; screen is 9 tiles high + cp b + jr c, .spriteInvisible ; below screen region +.skipYVisibilityTest + inc l + ld b, [hl] ; c2x5: X pos (+4) + ld a, [W_XCOORD] ; wd362 + cp b + jr z, .skipXVisibilityTest + jr nc, .spriteInvisible ; left of screen region + add $9 ; screen is 10 tiles wide + cp b + jr c, .spriteInvisible ; right of screen region +.skipXVisibilityTest + call getTileSpriteStandsOn + ld d, $60 + ld a, [hli] + cp d + jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom left tile) + ld a, [hld] + cp d + jr nc, .spriteInvisible ; standing on tile with ID >=$60 (bottom right tile) + ld bc, -20 ; $ffec + add hl, bc ; go back one row of tiles + ld a, [hli] + cp d + jr nc, .spriteInvisible ; standing on tile with ID >=$60 (top left tile) + ld a, [hl] + cp d + jr c, .spriteVisible ; standing on tile with ID >=$60 (top right tile) +.spriteInvisible + ld h, $c1 + ld a, [H_CURRENTSPRITEOFFSET] + add $2 + ld l, a + ld [hl], $ff ; c1x2 + scf + jr .done +.spriteVisible + ld c, a + ld a, [wWalkCounter] ; wcfc5 + and a + jr nz, .done ; if player is currently walking, we're done + call UpdateSpriteImage + inc h + ld a, [H_CURRENTSPRITEOFFSET] + add $7 + ld l, a + ld a, [W_GRASSTILE] + cp c + ld a, $0 + jr nz, .notInGrass + ld a, $80 +.notInGrass + ld [hl], a ; c2x7 + and a +.done + ret + +UpdateSpriteImage: ; 5157 (1:5157) + ld h, $c1 + ld a, [H_CURRENTSPRITEOFFSET] + add $8 + ld l, a + ld a, [hli] ; c1x8: walk animation frame + ld b, a + ld a, [hl] ; c1x9: facing direction + add b + ld b, a + ld a, [$ff93] ; current sprite offset + add b + ld b, a + ld a, [H_CURRENTSPRITEOFFSET] + add $2 + ld l, a + ld [hl], b ; c1x2: sprite to display + ret + +; tests if sprite can walk the specified direction +; b: direction (1,2,4 or 8) +; c: ID of tile the sprite would walk onto +; d: Y movement delta (-1, 0 or 1) +; e: X movement delta (-1, 0 or 1) +; set carry on failure, clears carry on success +CanWalkOntoTile: ; 516e (1:516e) + ld h, $c2 + ld a, [H_CURRENTSPRITEOFFSET] + add $6 + ld l, a + ld a, [hl] ; c2x6 (movement byte 1) + cp $fe + jr nc, .canMove ; values $fe and $ff + and a + ret +.canMove + ld a, [W_TILESETCOLLISIONPTR] + ld l, a + ld a, [W_TILESETCOLLISIONPTR+1] + ld h, a +.tilePassableLoop + ld a, [hli] + cp $ff + jr z, .impassable + cp c + jr nz, .tilePassableLoop + ld h, $c2 + ld a, [H_CURRENTSPRITEOFFSET] + add $6 + ld l, a + ld a, [hl] ; $c2x6 (movement byte 1) + inc a + jr z, .impassable ; if $ff, no movement allowed (however, changing direction is) + ld h, $c1 + ld a, [H_CURRENTSPRITEOFFSET] + add $4 + ld l, a + ld a, [hli] ; c1x4 (screen Y pos) + add $4 ; align to blocks (Y pos is always 4 pixels off) + add d ; add Y delta + cp $80 ; if value is >$80, the destination is off screen (either $81 or $FF underflow) + jr nc, .impassable ; don't walk off screen + inc l + ld a, [hl] ; c1x6 (screen X pos) + add e ; add X delta + cp $90 ; if value is >$90, the destination is off screen (either $91 or $FF underflow) + jr nc, .impassable ; don't walk off screen + push de + push bc + call Func_4c70 + pop bc + pop de + ld h, $c1 + ld a, [H_CURRENTSPRITEOFFSET] + add $c + ld l, a + ld a, [hl] ; c1xc (forbidden directions flags(?)) + and b ; check against chosen direction (1,2,4 or 8) + jr nz, .impassable ; direction forbidden, don't go there + ld h, $c2 + ld a, [H_CURRENTSPRITEOFFSET] + add $2 + ld l, a + ld a, [hli] ; c2x2 (sprite Y displacement, initialized at $8, keep track of where a sprite did go) + bit 7, d ; check if going upwards (d=$ff) + jr nz, .upwards + add d + cp $5 + jr c, .impassable ; if c2x2+d < 5, don't go ;bug: this tests probably were supposed to prevent sprites + jr .checkHorizontal ; from walking out too far, but this line makes sprites get stuck +.upwards ; whenever they walked upwards 5 steps + sub $1 ; on the other hand, the amount a sprite can walk out to the + jr c, .impassable ; if d2x2 == 0, don't go ; right of bottom is not limited (until the counter overflows) +.checkHorizontal + ld d, a + ld a, [hl] ; c2x3 (sprite X displacement, initialized at $8, keep track of where a sprite did go) + bit 7, e ; check if going left (e=$ff) + jr nz, .left + add e + cp $5 ; compare, but no conditional jump like in the vertical check above (bug?) + jr .passable +.left + sub $1 + jr c, .impassable ; if d2x3 == 0, don't go +.passable + ld [hld], a ; update c2x3 + ld [hl], d ; update c2x2 + and a ; clear carry (marking success) + ret +.impassable + ld h, $c1 + ld a, [H_CURRENTSPRITEOFFSET] + inc a + ld l, a + ld [hl], $2 ; c1x1 = 2 (set movement status to delayed) + inc l + inc l + xor a + ld [hli], a ; c1x3 = 0 (clear Y movement delta) + inc l + ld [hl], a ; c1x5 = 0 (clear X movement delta) + inc h + ld a, [H_CURRENTSPRITEOFFSET] + add $8 + ld l, a + call Random + ld a, [hRandomAdd] + and $7f + ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f] (again with delay $100 if value is 0) + scf ; set carry (marking failure to walk) + ret + +; calculates the tile pointer pointing to the tile the current sprite stancs on +; this is always the lower left tile of the 2x2 tile blocks all sprites are snapped to +; hl: output pointer +getTileSpriteStandsOn: ; 5207 (1:5207) + ld h, $c1 + ld a, [H_CURRENTSPRITEOFFSET] + add $4 + ld l, a + ld a, [hli] ; c1x4: screen Y position + add $4 ; align to 2*2 tile blocks (Y position is always off 4 pixels to the top) + and $f0 ; in case object is currently moving + srl a ; screen Y tile * 4 + ld c, a + ld b, $0 + inc l + ld a, [hl] ; c1x6: screen Y position + srl a + srl a + srl a ; screen X tile + add $14 ; screen X tile + 20 + ld d, $0 + ld e, a + ld hl, wTileMap + add hl, bc + add hl, bc + add hl, bc + add hl, bc + add hl, bc + add hl, de ; wTileMap + 20*(screen Y tile + 1) + screen X tile + ret + +; loads [de+a] into a +LoadDEPlusA: ; 522f (1:522f) + add e + ld e, a + jr nc, .noCarry + inc d +.noCarry + ld a, [de] + ret + +Func_5236: ; 5236 (1:5236) + ld a, [wd730] + bit 7, a + ret z + ld hl, wd72e + bit 7, [hl] + set 7, [hl] + jp z, Func_52a6 + ld hl, wcc97 + ld a, [wcd37] + add l + ld l, a + jr nc, .asm_5251 + inc h +.asm_5251 + ld a, [hl] + cp $40 + jr nz, .asm_525f + call Func_52b2 + ld c, $4 + ld a, $fe + jr .asm_5289 +.asm_525f + cp $0 + jr nz, .asm_526c + call Func_52b2 + ld c, $0 + ld a, $2 + jr .asm_5289 +.asm_526c + cp $80 + jr nz, .asm_5279 + call Func_52b7 + ld c, $8 + ld a, $fe + jr .asm_5289 +.asm_5279 + cp $c0 + jr nz, .asm_5286 + call Func_52b7 + ld c, $c + ld a, $2 + jr .asm_5289 +.asm_5286 + cp $ff + ret +.asm_5289 + ld b, a + ld a, [hl] + add b + ld [hl], a + ld a, [H_CURRENTSPRITEOFFSET] + add $9 + ld l, a + ld a, c + ld [hl], a + call Func_52c3 + ld hl, wcf18 + dec [hl] + ret nz + ld a, $8 + ld [wcf18], a + ld hl, wcd37 + inc [hl] + ret + +Func_52a6: ; 52a6 (1:52a6) + xor a + ld [wcd37], a + ld a, $8 + ld [wcf18], a + jp Func_52c3 + +Func_52b2: ; 52b2 (1:52b2) + ld a, $4 + ld b, a + jr asm_52ba + +Func_52b7: ; 52b7 (1:52b7) + ld a, $6 + ld b, a +asm_52ba: ; 52ba (1:52ba) + ld hl, wSpriteStateData1 + ld a, [H_CURRENTSPRITEOFFSET] + add l + add b + ld l, a + ret + +Func_52c3: ; 52c3 (1:52c3) + ld hl, wSpriteStateData2 + ld a, [H_CURRENTSPRITEOFFSET] + add $e + ld l, a + ld a, [hl] + dec a + swap a + ld b, a + ld hl, wSpriteStateData1 + ld a, [H_CURRENTSPRITEOFFSET] + add $9 + ld l, a + ld a, [hl] + cp $0 + jr z, .asm_52ea + cp $4 + jr z, .asm_52ea + cp $8 + jr z, .asm_52ea + cp $c + jr z, .asm_52ea + ret +.asm_52ea + add b + ld b, a + ld [$ffe9], a + call Func_5301 + ld hl, wSpriteStateData1 + ld a, [H_CURRENTSPRITEOFFSET] + add $2 + ld l, a + ld a, [$ffe9] + ld b, a + ld a, [$ffea] + add b + ld [hl], a + ret + +Func_5301: ; 5301 (1:5301) + ld a, [H_CURRENTSPRITEOFFSET] + add $7 + ld l, a + ld a, [hl] + inc a + ld [hl], a + cp $4 + ret nz + xor a + ld [hl], a + inc l + ld a, [hl] + inc a + and $3 + ld [hl], a + ld [$ffea], a + ret diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index 54d7321b..2cf6fea9 100755 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -1,47 +1,47 @@ Func_1a3e0: ; 1a3e0 (6:63e0) - ld hl, $d730 + ld hl, wd730 res 1, [hl] call HandleDoors jr nc, .asm_1a406 ld a, $fc - ld [wJoypadForbiddenButtonsMask], a - ld hl, $d736 + ld [wJoyIgnore], a + ld hl, wd736 set 1, [hl] ld a, $1 - ld [$cd38], a + ld [wcd38], a ld a, $80 - ld [$ccd3], a + ld [wccd3], a xor a - ld [$c102], a + ld [wSpriteStateData1 + 2], a call Func_3486 ret .asm_1a406 xor a - ld [$cd3a], a - ld [$cd38], a - ld [$ccd3], a - ld hl, $d736 + ld [wcd3a], a + ld [wcd38], a + ld [wccd3], a + ld hl, wd736 res 0, [hl] res 1, [hl] - ld hl, $d730 + ld hl, wd730 res 7, [hl] ret Func_1a41d: ; 1a41d (6:641d) - ld hl, $d730 + ld hl, wd730 res 7, [hl] - ld hl, $d72e + ld hl, wd72e res 7, [hl] - ld hl, $d736 + ld hl, wd736 res 0, [hl] res 1, [hl] xor a - ld [$cf17], a - ld [$cc57], a - ld [$cf10], a - ld [$cd3a], a - ld [$cd38], a - ld [$ccd3], a + ld [wcf17], a + ld [wcc57], a + ld [wcf10], a + ld [wcd3a], a + ld [wcd38], a + ld [wccd3], a ret PointerTable_1a442: ; 1a442 (6:6442) @@ -52,74 +52,73 @@ PointerTable_1a442: ; 1a442 (6:6442) dw Func_1a4f4 Func_1a44c: ; 1a44c (6:644c) - ld a, [W_XCOORD] ; $d362 + ld a, [W_XCOORD] ; wd362 sub $a - ld [$cca1], a + ld [wcca1], a jr z, .asm_1a475 ld b, $0 ld c, a - ld hl, $cc97 + ld hl, wcc97 ld a, $80 call FillMemory ld [hl], $ff - ld a, [$cf13] + ld a, [wcf13] ld [H_DOWNARROWBLINKCNT2], a ; $ff8c - ld de, $cc97 + ld de, wcc97 call MoveSprite ld a, $1 - ld [$cf10], a + ld [wcf10], a jr .asm_1a47a .asm_1a475 ld a, $3 - ld [$cf10], a + ld [wcf10], a .asm_1a47a ld hl, W_FLAGS_D733 set 1, [hl] ld a, $fc - ld [wJoypadForbiddenButtonsMask], a + ld [wJoyIgnore], a ret Func_1a485: ; 1a485 (6:6485) - ld a, [$d730] + ld a, [wd730] bit 0, a ret nz - ld a, [$cca1] - ld [$cd38], a + ld a, [wcca1] + ld [wcd38], a ld [$ff95], a - ld a, $23 - call Predef + predef Func_f9a0 call Func_3486 ld a, $2 - ld [$cf10], a + ld [wcf10], a ret Func_1a4a1: ; 1a4a1 (6:64a1) - ld a, [$cd38] + ld a, [wcd38] and a ret nz Func_1a4a6: ; 1a4a6 (6:64a6) xor a - ld [$cd3b], a - ld a, [$cf13] + ld [wcd3b], a + ld a, [wcf13] swap a - ld [$cf17], a + ld [wcf17], a xor a - ld [$c206], a - ld hl, $ccd3 + ld [wSpriteStateData2 + $06], a + ld hl, wccd3 ld de, RLEList_1a4e9 call DecodeRLEList dec a - ld [$cd38], a - ld hl, $cc97 + ld [wcd38], a + ld hl, wcc97 ld de, RLEList_1a4dc call DecodeRLEList - ld hl, $d72e + ld hl, wd72e res 7, [hl] - ld hl, $d730 + ld hl, wd730 set 7, [hl] ld a, $4 - ld [$cf10], a + ld [wcf10], a ret RLEList_1a4dc: ; 1a4dc (6:64dc) @@ -140,16 +139,15 @@ RLEList_1a4e9: ; 1a4e9 (6:64e9) db $FF Func_1a4f4: ; 1a4f4 (6:64f4) - ld a, [$cd38] + ld a, [wcd38] and a ret nz ld a, $0 - ld [$cc4d], a - ld a, $11 - call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) - ld hl, $d730 + ld [wcc4d], a + predef HideObject + ld hl, wd730 res 7, [hl] - ld hl, $d72e + ld hl, wd72e res 7, [hl] jp Func_314e @@ -158,32 +156,31 @@ PointerTable_1a510: ; 1a510 (6:6510) dw Func_1a56b Func_1a514: ; 1a514 (6:6514) - ld a, Bank(Func_9876) - ld [$c0ef], a - ld [$c0f0], a + ld a, BANK(Music_MuseumGuy) + ld [wc0ef], a + ld [wc0f0], a ld a, MUSIC_MUSEUM_GUY - ld [$c0ee], a + ld [wc0ee], a call PlaySound - ld a, [$cf13] + ld a, [wcf13] swap a - ld [$cf17], a + ld [wcf17], a call Func_3486 - ld hl, $ccd3 + ld hl, wccd3 ld de, RLEList_PewterMuseumPlayer call DecodeRLEList dec a - ld [$cd38], a + ld [wcd38], a xor a - ld [$d12f], a - ld a, $4f - call Predef - ld hl, $cc97 + ld [wd12f], a + predef PewterGuys + ld hl, wcc97 ld de, RLEList_PewterMuseumGuy call DecodeRLEList - ld hl, $d72e + ld hl, wd72e res 7, [hl] ld a, $1 - ld [$cf10], a + ld [wcf10], a ret RLEList_PewterMuseumPlayer: ; 1a559 (6:6559) @@ -201,12 +198,12 @@ RLEList_PewterMuseumGuy: ; 1a562 (6:6562) db $FF Func_1a56b: ; 1a56b (6:656b) - ld a, [$cd38] + ld a, [wcd38] and a ret nz - ld hl, $d730 + ld hl, wd730 res 7, [hl] - ld hl, $d72e + ld hl, wd72e res 7, [hl] jp Func_314e @@ -215,35 +212,34 @@ PointerTable_1a57d: ; 1a57d (6:657d) dw Func_1a56b Func_1a581: ; 1a581 (6:6581) - ld a, Bank(Func_9876) - ld [$c0ef], a - ld [$c0f0], a + ld a, BANK(Music_MuseumGuy) + ld [wc0ef], a + ld [wc0f0], a ld a, MUSIC_MUSEUM_GUY - ld [$c0ee], a + ld [wc0ee], a call PlaySound - ld a, [$cf13] + ld a, [wcf13] swap a - ld [$cf17], a + ld [wcf17], a xor a - ld [$c206], a - ld hl, $ccd3 + ld [wSpriteStateData2 + $06], a + ld hl, wccd3 ld de, RLEList_PewterGymPlayer call DecodeRLEList dec a - ld [$cd38], a + ld [wcd38], a ld a, $1 - ld [$d12f], a - ld a, $4f - call Predef - ld hl, $cc97 + ld [wd12f], a + predef PewterGuys + ld hl, wcc97 ld de, RLEList_PewterGymGuy call DecodeRLEList - ld hl, $d72e + ld hl, wd72e res 7, [hl] - ld hl, $d730 + ld hl, wd730 set 7, [hl] ld a, $1 - ld [$cf10], a + ld [wcf10], a ret RLEList_PewterGymPlayer: ; 1a5cd (6:65cd) @@ -266,7 +262,7 @@ RLEList_PewterGymGuy: ; 1a5da (6:65da) ; XXX why would this function want to return on POKEMONTOWER_7? Func_1a5e7: ; 1a5e7 (6:65e7) - ld a, [W_CURMAP] ; $d35e + ld a, [W_CURMAP] ; W_CURMAP cp POKEMONTOWER_7 ret z ld hl, RivalIDs ; $6605 @@ -280,7 +276,7 @@ Func_1a5e7: ; 1a5e7 (6:65e7) ret z jr .loop .notRival - ld a, [$cf13] + ld a, [wcf13] ld [H_DOWNARROWBLINKCNT2], a ; $ff8c jp SetSpriteMovementBytesToFF diff --git a/engine/overworld/oaks_aide.asm b/engine/overworld/oaks_aide.asm index ca2c6726..68135287 100755 --- a/engine/overworld/oaks_aide.asm +++ b/engine/overworld/oaks_aide.asm @@ -2,13 +2,13 @@ OaksAideScript ; 0x59035 ld hl, OaksAideHiText call PrintText call YesNoChoice - ld a, [$cc26] + ld a, [wCurrentMenuItem] and a jr nz, .asm_59086 ; 0x59042 $42 ld hl, wPokedexOwned ld b, wPokedexOwnedEnd - wPokedexOwned call CountSetBits - ld a, [$d11e] + ld a, [wd11e] ld [$ffdd], a ld b, a ld a, [$ffdb] diff --git a/engine/overworld/oam.asm b/engine/overworld/oam.asm new file mode 100644 index 00000000..63495d22 --- /dev/null +++ b/engine/overworld/oam.asm @@ -0,0 +1,178 @@ +PrepareOAMData: +; Determine OAM data for currently visible +; sprites and write it to wOAMBuffer. + + ld a, [wcfcb] + dec a + jr z, .asm_4b1e + + cp 0 - 1 + ret nz + ld [wcfcb], a + jp HideSprites + +.asm_4b1e + xor a + ld [$ff90], a +.asm_4b21 + ld [$ff8f], a + + ld d, wSpriteStateData1 / $100 + ld a, [$ff8f] + ld e, a + ld a, [de] ; c1x0 + and a + jp z, .asm_4bad + + inc e + inc e + ld a, [de] ; c1x2 (facing/anim) + ld [wd5cd], a + cp $ff ; off-screen (don't draw) + jr nz, .visible + + call Func_4bd1 + jr .asm_4bad + +.visible + cp $a0 + jr c, .usefacing + and $f + add $10 + jr .asm_4b48 + +.usefacing + and $f +.asm_4b48 + ld l, a + + push de + inc d + ld a, e + add $5 + ld e, a + ld a, [de] ; c2x7 + and $80 + ld [$ff94], a ; temp store sprite priority + pop de + + ld h, 0 + ld bc, SpriteFacingAndAnimationTable + add hl, hl + add hl, hl + add hl, bc + + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld h, [hl] + ld l, a + + call Func_4bd1 + + ld a, [$ff90] + ld e, a + ld d, wOAMBuffer / $100 +.tile + ld a, [$ff92] ; temp for sprite Y position + add $10 ; Y=16 is top of screen (Y=0 is invisible) + add [hl] ; add Y offset from table + ld [de], a ; write new sprite OAM Y position + inc hl + ld a, [$ff91] ; temp for sprite X position + add $8 ; X=8 is left of screen (X=0 is invisible) + add [hl] ; add X offset from table + inc e + ld [de], a ; write new sprite OAM X position + inc e + ld a, [bc] ; read pattern number offset (accomodates orientation (offset 0,4 or 8) and animation (offset 0 or $80)) + inc bc + push bc + ld b, a + + ld a, [wd5cd] ; temp copy of c1x2 + swap a ; high nybble determines sprite used (0 is always player sprite, next are some npcs) + and $f + + ; Sprites $a and $b have one face (and therefore 4 tiles instead of 12). + ; As a result, sprite $b's tile offset is less than normal. + cp $b + jr nz, .offset + ld a, $a * 12 + 4 + jr .gotoffset + +.offset + ; a *= 12 + sla a + sla a + ld c, a + sla a + add c +.gotoffset + add b ; which frame + pop bc + ld [de], a ; tile id + inc hl + inc e + ld a, [hl] + bit 1, a ; sprite priority + jr z, .fg + ld a, [$ff94] ; facing priority + or [hl] +.fg + inc hl + ld [de], a + inc e + bit 0, a ; OAMFLAG_ENDOFDATA + jr z, .tile + + ld a, e + ld [$ff90], a + +.asm_4bad + ld a, [$ff8f] + add $10 + cp $100 % $100 + jp nz, .asm_4b21 + + ; Clear unused OAM. + ld a, [$ff90] + ld l, a + ld h, wOAMBuffer / $100 + ld de, $4 + ld b, $a0 + ld a, [wd736] + bit 6, a + ld a, $a0 + jr z, .clear + ld a, $90 +.clear + cp l + ret z + ld [hl], b + add hl, de + jr .clear + +Func_4bd1: ; 4bd1 (1:4bd1) + inc e + inc e + ld a, [de] ; c1x4 + ld [$ff92], a + inc e + inc e + ld a, [de] ; c1x6 + ld [$ff91], a + ld a, $4 + add e + ld e, a + ld a, [$ff92] + add $4 + and $f0 + ld [de], a ; c1xa (y) + inc e + ld a, [$ff91] + and $f0 + ld [de], a ; c1xb (x) + ret diff --git a/engine/overworld/pewter_guys.asm b/engine/overworld/pewter_guys.asm index 7c5779a2..2f3001fb 100755 --- a/engine/overworld/pewter_guys.asm +++ b/engine/overworld/pewter_guys.asm @@ -1,15 +1,15 @@ PewterGuys: ; 37ca1 (d:7ca1) - ld hl, $ccd3 - ld a, [$cd38] + ld hl, wccd3 + ld a, [wcd38] dec a - ld [$cd38], a + ld [wcd38], a ld d, 0 ld e, a add hl, de ld d, h ld e, l ld hl, PointerTable_37ce6 - ld a, [$d12f] + ld a, [wd12f] add a ld b, 0 ld c, a @@ -37,9 +37,9 @@ PewterGuys: ; 37ca1 (d:7ca1) ret z ld [de], a inc de - ld a, [$cd38] + ld a, [wcd38] inc a - ld [$cd38], a + ld [wcd38], a jr .asm_37cd2 .asm_37ce1 inc hl diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm index 1af178c7..a0d8175f 100755 --- a/engine/overworld/player_animations.asm +++ b/engine/overworld/player_animations.asm @@ -1,7 +1,7 @@ Func_70510: ; 70510 (1c:4510) call Func_706ef ld a, $ec - ld [$c104], a + ld [wSpriteStateData1 + 4], a call Delay3 push hl call GBFadeIn2 @@ -11,7 +11,7 @@ Func_70510: ; 70510 (1c:4510) jr nz, .asm_70568 ld a, (SFX_02_4c - SFX_Headers_02) / 3 call PlaySound - ld hl, $d732 + ld hl, wd732 bit 4, [hl] res 4, [hl] pop hl @@ -23,7 +23,7 @@ Func_70510: ; 70510 (1c:4510) ld a, b and a jr nz, .asm_7055b - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade xor a ld [hli], a inc a @@ -31,7 +31,7 @@ Func_70510: ; 70510 (1c:4510) ld a, $8 ld [hli], a ld [hl], $ff - ld hl, $cd48 + ld hl, wcd48 call Func_70730 .asm_70558 call Func_2307 @@ -45,13 +45,13 @@ Func_70510: ; 70510 (1c:4510) .asm_70568 pop hl ld de, BirdSprite ; $4d80 - ld hl, $8000 + ld hl, vNPCSprites ld bc, (BANK(BirdSprite) << 8) + $0c call CopyVideoData call Func_706d7 ld a, (SFX_02_50 - SFX_Headers_02) / 3 call PlaySound - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade xor a ld [hli], a ld a, $c @@ -80,7 +80,7 @@ FlyAnimationEnterScreenCoords: ; 70592 (1c:4592) db $3C, $40 Func_705aa: ; 705aa (1c:45aa) - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade ld a, $10 ld [hli], a ld a, $3c @@ -89,7 +89,7 @@ Func_705aa: ; 705aa (1c:45aa) ld [hl], a jp Func_70755 -_DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba) +_LeaveMapAnim: ; 705ba (1c:45ba) call Func_706ef call Func_70787 ld a, b @@ -100,7 +100,7 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba) .asm_705c8 ld a, (SFX_02_4b - SFX_Headers_02) / 3 call PlaySound - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade ld a, $f0 ld [hli], a ld a, $ec @@ -120,10 +120,10 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba) .asm_705ef ld a, $4 call StopMusic - ld a, [$d732] + ld a, [wd732] bit 6, a jr z, .asm_70610 - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade ld a, $10 ld [hli], a ld a, $ff @@ -131,12 +131,12 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba) xor a ld [hli], a ld [hl], $a1 - ld hl, $cd48 + ld hl, wcd48 call Func_70730 jr .asm_705c8 .asm_70610 call Func_706d7 - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade ld a, $ff ld [hli], a ld a, $8 @@ -145,7 +145,7 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba) call Func_706ae ld a, (SFX_02_50 - SFX_Headers_02) / 3 call PlaySound - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade xor a ld [hli], a ld a, $c @@ -155,7 +155,7 @@ _DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba) call Func_706ae ld c, $28 call DelayFrames - ld hl, $cd3e + ld hl, wTrainerEngageDistance ld a, $b ld [hli], a ld [hl], $8 @@ -200,34 +200,34 @@ FlyAnimationScreenCoords2: ; 70667 (1c:4667) Func_7067d: ; 7067d (1c:467d) ld a, $ff - ld [$cfcb], a - ld a, [$c302] - ld [$c30a], a - ld a, [$c306] - ld [$c30e], a + ld [wcfcb], a + ld a, [wOAMBuffer + $02] + ld [wOAMBuffer + $0a], a + ld a, [wOAMBuffer + $06] + ld [wOAMBuffer + $0e], a ld a, $a0 ld [wOAMBuffer], a - ld [$c304], a + ld [wOAMBuffer + $04], a ld c, $2 call DelayFrames ld a, $a0 - ld [$c308], a - ld [$c30c], a + ld [wOAMBuffer + $08], a + ld [wOAMBuffer + $0c], a call GBFadeOut2 ld a, $1 - ld [$cfcb], a + ld [wcfcb], a jp Func_70772 Func_706ae: ; 706ae (1c:46ae) - ld a, [$cd3f] + ld a, [wTrainerFacingDirection] xor $1 - ld [$cd3f], a - ld [$c102], a + ld [wTrainerFacingDirection], a + ld [wSpriteStateData1 + 2], a call Delay3 - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade cp $ff jr z, .asm_706cd - ld hl, $c104 + ld hl, wSpriteStateData1 + 4 ld a, [de] inc de ld [hli], a @@ -236,33 +236,33 @@ Func_706ae: ; 706ae (1c:46ae) inc de ld [hl], a .asm_706cd - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] dec a - ld [$cd3e], a + ld [wTrainerEngageDistance], a jr nz, Func_706ae ret Func_706d7: ; 706d7 (1c:46d7) ld de, BirdSprite ; $4d80 - ld hl, $8000 + ld hl, vNPCSprites ld bc, (BANK(BirdSprite) << 8) + $0c call CopyVideoData ld de, BirdSprite + $c0 ; $4e40 ; moving amination sprite - ld hl, $8800 + ld hl, vNPCSprites2 ld bc, (BANK(BirdSprite) << 8) + $0c jp CopyVideoData Func_706ef: ; 706ef (1c:46ef) - ld a, [$c102] - ld [$cd50], a - ld a, [$c104] - ld [$cd4f], a + ld a, [wSpriteStateData1 + 2] + ld [wcd50], a + ld a, [wSpriteStateData1 + 4] + ld [wcd4f], a ld hl, PlayerSpinningFacingOrder ; $4713 - ld de, $cd48 + ld de, wcd48 ld bc, $4 call CopyData - ld a, [$c102] - ld hl, $cd48 + ld a, [wSpriteStateData1 + 2] + ld hl, wcd48 .asm_7070d cp [hl] inc hl @@ -277,32 +277,32 @@ PlayerSpinningFacingOrder: ; 70713 (1c:4713) Func_70717: ; 70717 (1c:4717) ld a, [hl] - ld [$c102], a + ld [wSpriteStateData1 + 2], a push hl - ld hl, $cd48 - ld de, $cd47 + ld hl, wcd48 + ld de, wcd47 ld bc, $4 call CopyData - ld a, [$cd47] - ld [$cd4b], a + ld a, [wcd47] + ld [wcd4b], a pop hl ret Func_70730: ; 70730 (1c:4730) call Func_70717 - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade ld c, a and $3 jr nz, .asm_70743 - ld a, [$cd40] + ld a, [wTrainerScreenY] cp $ff call nz, PlaySound .asm_70743 - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] add c - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade ld c, a - ld a, [$cd3f] + ld a, [wTrainerFacingDirection] cp c ret z call DelayFrames @@ -310,29 +310,29 @@ Func_70730: ; 70730 (1c:4730) Func_70755: ; 70755 (1c:4755) call Func_70717 - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade ld c, a - ld a, [$c104] + ld a, [wSpriteStateData1 + 4] add c - ld [$c104], a + ld [wSpriteStateData1 + 4], a ld c, a - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] cp c ret z - ld a, [$cd3f] + ld a, [wTrainerFacingDirection] ld c, a call DelayFrames jr Func_70755 Func_70772: ; 70772 (1c:4772) - ld a, [$cd4f] - ld [$c104], a - ld a, [$cd50] - ld [$c102], a + ld a, [wcd4f] + ld [wSpriteStateData1 + 4], a + ld a, [wcd50] + ld [wSpriteStateData1 + 2], a ret Func_7077f: ; 7077f (1c:477f) - ld a, [$cf1b] + ld a, [wcf1b] xor $1 inc a inc a @@ -341,7 +341,7 @@ Func_7077f: ; 7077f (1c:477f) Func_70787: ; 70787 (1c:4787) ld b, 0 ld hl, DataTable_707a9 ; $47a9 - ld a, [W_CURMAPTILESET] ; $d367 + ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET ld c, a .asm_70790 ld a, [hli] @@ -349,8 +349,7 @@ Func_70787: ; 70787 (1c:4787) jr z, .asm_707a4 cp c jr nz, .asm_7079e - FuncCoord 8, 9 ; $c45c - ld a, [Coord] + aCoord 8, 9 cp [hl] jr z, .asm_707a2 .asm_7079e @@ -362,10 +361,10 @@ Func_70787: ; 70787 (1c:4787) ld b, [hl] .asm_707a4 ld a, b - ld [$cd5b], a + ld [wcd5b], a ret -; format: db tileset id, tile id, value to be put in $cd5b +; format: db tileset id, tile id, value to be put in wcd5b DataTable_707a9: ; 707a9 (1c:47a9) db FACILITY, $20, 1 ; warp pad db FACILITY, $11, 2 ; hole @@ -376,26 +375,26 @@ DataTable_707a9: ; 707a9 (1c:47a9) Func_707b6: ; 707b6 (1c:47b6) ld c, $a call DelayFrames - ld hl, $d736 + ld hl, wd736 set 6, [hl] ld de, RedSprite ; $4180 - ld hl, $8000 + ld hl, vNPCSprites ld bc, (BANK(RedSprite) << 8) + $0c call CopyVideoData ld a, $4 ld hl, RedFishingTiles ; $4866 call Func_71771 - ld a, [$c102] + ld a, [wSpriteStateData1 + 2] ld c, a ld b, $0 ld hl, FishingRodGfxProperties ; $4856 add hl, bc - ld de, $c39c + ld de, wOAMBuffer + $9c ld bc, $4 call CopyData ld c, $64 call DelayFrames - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade and a ld hl, NoNibbleText jr z, .asm_70836 @@ -404,35 +403,34 @@ Func_707b6: ; 707b6 (1c:47b6) jr z, .asm_70836 ld b, $a .asm_707fe - ld hl, $c104 + ld hl, wSpriteStateData1 + 4 call Func_70842 - ld hl, $c39c + ld hl, wOAMBuffer + $9c call Func_70842 call Delay3 dec b jr nz, .asm_707fe - ld a, [$c102] + ld a, [wSpriteStateData1 + 2] cp $4 jr nz, .asm_7081c ld a, $a0 - ld [$c39c], a + ld [wOAMBuffer + $9c], a .asm_7081c - ld hl, $cd4f + ld hl, wcd4f xor a ld [hli], a ld [hl], a - ld a, $4c - call Predef ; indirect jump to PrintEmotionBubble (17c47 (5:7c47)) - ld a, [$c102] + predef EmotionBubble + ld a, [wSpriteStateData1 + 2] cp $4 jr nz, .asm_70833 ld a, $44 - ld [$c39c], a + ld [wOAMBuffer + $9c], a .asm_70833 ld hl, ItsABiteText .asm_70836 call PrintText - ld hl, $d736 + ld hl, wd736 res 6, [hl] call LoadFontTilePatterns ret @@ -468,51 +466,51 @@ FishingRodGfxProperties: ; 70856 (1c:4856) RedFishingTiles: ; 70866 (1c:4866) dw RedFishingTilesFront - db $02, $1E - dw $8020 + db 2, BANK(RedFishingTilesFront) + dw vNPCSprites + $20 dw RedFishingTilesBack - db $02, $1E - dw $8060 + db 2, BANK(RedFishingTilesBack) + dw vNPCSprites + $60 dw RedFishingTilesSide - db $02, $1E - dw $80A0 + db 2, BANK(RedFishingTilesSide) + dw vNPCSprites + $a0 dw RedFishingRodTiles - db $03, $1E - dw $8FD0 + db 3, BANK(RedFishingRodTiles) + dw vNPCSprites2 + $7d0 _HandleMidJump: ; 7087e (1c:487e) - ld a, [$d714] + ld a, [wd714] ld c, a inc a cp $10 jr nc, .asm_70895 - ld [$d714], a + ld [wd714], a ld b, $0 ld hl, PlayerJumpingYScreenCoords ; $48ba add hl, bc ld a, [hl] - ld [$c104], a ; player's sprite y coordinate + ld [wSpriteStateData1 + 4], a ; player's sprite y coordinate ret .asm_70895 - ld a, [wWalkCounter] ; $cfc5 + ld a, [wWalkCounter] ; wcfc5 cp $0 ret nz call UpdateSprites call Delay3 xor a - ld [H_CURRENTPRESSEDBUTTONS], a - ld [H_NEWLYPRESSEDBUTTONS], a - ld [H_NEWLYRELEASEDBUTTONS], a - ld [$d714], a - ld hl, $d736 + ld [hJoyHeld], a + ld [hJoyPressed], a + ld [hJoyReleased], a + ld [wd714], a + ld hl, wd736 res 6, [hl] - ld hl, $d730 + ld hl, wd730 res 7, [hl] xor a - ld [wJoypadForbiddenButtonsMask], a + ld [wJoyIgnore], a ret PlayerJumpingYScreenCoords: ; 708ba (1c:48ba) diff --git a/engine/overworld/pokecenter.asm b/engine/overworld/pokecenter.asm index 45599498..3c640d8e 100755 --- a/engine/overworld/pokecenter.asm +++ b/engine/overworld/pokecenter.asm @@ -2,7 +2,7 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6) call SaveScreenTilesToBuffer1 ; save screen ld hl, PokemonCenterWelcomeText call PrintText - ld hl, $d72e + ld hl, wd72e bit 2, [hl] set 1, [hl] set 2, [hl] @@ -19,22 +19,22 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6) ld hl, NeedYourPokemonText call PrintText ld a, $18 - ld [$c112], a ; make the nurse turn to face the machine + ld [wSpriteStateData1 + $12], a ; make the nurse turn to face the machine call Delay3 - PREDEF HealPartyPredef + predef HealParty callba AnimateHealingMachine ; do the healing machine animation xor a ld [wMusicHeaderPointer], a - ld a, [$c0f0] - ld [$c0ef], a - ld a, [$d35b] - ld [$cfca], a - ld [$c0ee], a + ld a, [wc0f0] + ld [wc0ef], a + ld a, [wd35b] + ld [wcfca], a + ld [wc0ee], a call PlaySound ld hl, PokemonFightingFitText call PrintText ld a, $14 - ld [$c112], a ; make the nurse bow + ld [wSpriteStateData1 + $12], a ; make the nurse bow ld c, a call DelayFrames jr .done diff --git a/engine/overworld/pokemart.asm b/engine/overworld/pokemart.asm index 6e6f5ee2..3b06bd2c 100755 --- a/engine/overworld/pokemart.asm +++ b/engine/overworld/pokemart.asm @@ -1,30 +1,30 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) ld a,[wListScrollOffset] - ld [$d07e],a + ld [wd07e],a call UpdateSprites ; move sprites xor a - ld [$cf0a],a ; flag that is set if something is sold or bought + ld [wcf0a],a ; flag that is set if something is sold or bought .loop xor a ld [wListScrollOffset],a ld [wCurrentMenuItem],a - ld [$cc2f],a + ld [wPlayerMonNumber],a inc a - ld [$cf93],a + ld [wcf93],a ld a,$13 - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ; draw money text box ld a,$15 - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ; do buy/sell/quit menu - ld hl,$d128 ; pointer to this pokemart's inventory + ld hl,wd128 ; pointer to this pokemart's inventory ld a,[hli] ld l,[hl] ld h,a ; hl = address of inventory - ld a,[$d12e] + ld a,[wd12e] cp a,$02 jp z,.done - ld a,[$d12d] ; ID of the chosen menu item + ld a,[wd12d] ; ID of the chosen menu item and a ; buying? jp z,.buyMenu dec a ; selling? @@ -33,9 +33,9 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) jp z,.done .sellMenu xor a - ld [$cf93],a + ld [wcf93],a ld a,$02 - ld [$d11b],a + ld [wd11b],a callab Func_39bd5 ld a,[wNumBagItems] and a @@ -46,15 +46,15 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) .sellMenuLoop call LoadScreenTilesFromBuffer1 ; restore saved screen ld a,$13 - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ; draw money text box ld hl,wNumBagItems ld a,l - ld [$cf8b],a + ld [wcf8b],a ld a,h - ld [$cf8c],a + ld [wcf8c],a xor a - ld [$cf93],a + ld [wcf93],a ld [wCurrentMenuItem],a ld a,ITEMLISTMENU ld [wListMenuID],a @@ -62,10 +62,10 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) jp c,.returnToMainPokemartMenu ; if the player closed the menu .confirmItemSale ; if the player is trying to sell a specific item call IsKeyItem ; check if item is unsellable - ld a,[$d124] + ld a,[wd124] and a jr nz,.unsellableItem - ld a,[$cf91] + ld a,[wcf91] call IsItemHM jr c,.unsellableItem ld a,PRICEDITEMLISTMENU @@ -77,24 +77,23 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) ld hl,PokemartTellSellPriceText ld bc,$0e01 call PrintText - FuncCoord 14,7 - ld hl,Coord + hlCoord 14, 7 ld bc,$080f ld a,$14 - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ; yes/no menu - ld a,[$d12e] + ld a,[wd12e] cp a,$02 jr z,.sellMenuLoop ; if the player pressed the B button - ld a,[$d12d] ; ID of the chosen menu item + ld a,[wd12d] ; ID of the chosen menu item dec a jr z,.sellMenuLoop ; if the player chose No .sellItem - ld a,[$cf0a] ; flag that is set if something is sold or bought + ld a,[wcf0a] ; flag that is set if something is sold or bought and a jr nz,.skipSettingFlag1 inc a - ld [$cf0a],a + ld [wcf0a],a .skipSettingFlag1 call AddAmountSoldToMoney ld hl,wNumBagItems @@ -111,9 +110,9 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) jp .returnToMainPokemartMenu .buyMenu ld a,$01 - ld [$cf93],a + ld [wcf93],a ld a,$03 - ld [$d11b],a + ld [wd11b],a callab Func_39bd5 ld hl,PokemartBuyingGreetingText call PrintText @@ -121,44 +120,43 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) .buyMenuLoop call LoadScreenTilesFromBuffer1 ; restore saved screen ld a,$13 - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ; draw money text box - ld hl,$cf7b + ld hl,wStringBuffer2 + 11 ld a,l - ld [$cf8b],a + ld [wcf8b],a ld a,h - ld [$cf8c],a + ld [wcf8c],a xor a ld [wCurrentMenuItem],a inc a - ld [$cf93],a + ld [wcf93],a inc a ; a = 2 (PRICEDITEMLISTMENU) ld [wListMenuID],a call DisplayListMenuID jr c,.returnToMainPokemartMenu ; if the player closed the menu ld a,$63 - ld [$cf97],a + ld [wcf97],a xor a ld [$ff8e],a call DisplayChooseQuantityMenu inc a jr z,.buyMenuLoop ; if the player closed the choose quantity menu with the B button - ld a,[$cf91] ; item ID - ld [$d11e],a ; store item ID for GetItemName + ld a,[wcf91] ; item ID + ld [wd11e],a ; store item ID for GetItemName call GetItemName - call CopyStringToCF4B ; copy name to $cf4b + call CopyStringToCF4B ; copy name to wcf4b ld hl,PokemartTellBuyPriceText call PrintText - FuncCoord 14,7 - ld hl,Coord + hlCoord 14, 7 ld bc,$080f ld a,$14 - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ; yes/no menu - ld a,[$d12e] + ld a,[wd12e] cp a,$02 jp z,.buyMenuLoop ; if the player pressed the B button - ld a,[$d12d] ; ID of the chosen menu item + ld a,[wd12d] ; ID of the chosen menu item dec a jr z,.buyMenuLoop ; if the player chose No .buyItem @@ -168,11 +166,11 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) call AddItemToInventory jr nc,.bagFull call SubtractAmountPaidFromMoney - ld a,[$cf0a] ; flag that is set if something is sold or bought + ld a,[wcf0a] ; flag that is set if something is sold or bought and a jr nz,.skipSettingFlag2 ld a,$01 - ld [$cf0a],a + ld [wcf0a],a .skipSettingFlag2 ld a,(SFX_02_5a - SFX_Headers_02) / 3 call PlaySoundWaitForCurrent ; play sound @@ -183,7 +181,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) .returnToMainPokemartMenu call LoadScreenTilesFromBuffer1 ; restore save screen ld a,$13 - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ; draw money text box ld hl,PokemartAnythingElseText call PrintText @@ -205,9 +203,9 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) ld hl,PokemartThankYouText call PrintText ld a,$01 - ld [$cfcb],a + ld [wcfcb],a call UpdateSprites ; move sprites - ld a,[$d07e] + ld a,[wd07e] ld [wListScrollOffset],a ret diff --git a/engine/overworld/ssanne.asm b/engine/overworld/ssanne.asm index e8060810..8fd8f99a 100755 --- a/engine/overworld/ssanne.asm +++ b/engine/overworld/ssanne.asm @@ -1,10 +1,10 @@ Func_79f54: ; 79f54 (1e:5f54) ld a, $1 - ld [$cd50], a - ld a, [$cfcb] + ld [wcd50], a + ld a, [wcfcb] push af ld a, $ff - ld [$cfcb], a + ld [wcfcb], a ld a, $e4 ld [rOBP1], a ; $ff49 call LoadSmokeTileFourTimes @@ -26,24 +26,24 @@ Func_79f54: ; 79f54 (1e:5f54) dec c jr nz, .asm_79f73 pop af - ld [$cfcb], a + ld [wcfcb], a jp LoadPlayerSpriteGraphics Func_79f92: ; 79f92 (1e:5f92) - ld a, [$c109] + ld a, [wSpriteStateData1 + 9] ld hl, PointerTable_79fb0 ; $5fb0 ld c, a ld b, $0 add hl, bc ld a, [hli] - ld [$d08a], a + ld [wd08a], a ld a, [hli] ld e, a ld a, [hli] ld h, [hl] ld l, a push hl - ld hl, $c390 + ld hl, wOAMBuffer + $90 ld d, $0 add hl, de ld e, l @@ -65,7 +65,7 @@ PointerTable_79fb0: ; 79fb0 (1e:5fb0) dw Func_79337 LoadSmokeTileFourTimes: ; 79fc0 (1e:5fc0) - ld hl, $8fc0 + ld hl, vChars1 + $7c0 ld c, $4 .loop push bc diff --git a/engine/overworld/trainers.asm b/engine/overworld/trainers.asm index 8968332a..b05ddbf1 100755 --- a/engine/overworld/trainers.asm +++ b/engine/overworld/trainers.asm @@ -1,7 +1,7 @@ Func_567f9: ; 567f9 (15:67f9) ld hl, wSpriteStateData1 ld de, $4 - ld a, [$cf13] + ld a, [wcf13] ld [H_DOWNARROWBLINKCNT2], a ; $ff8c call Func_56903 ld a, [hli] @@ -20,26 +20,26 @@ Func_567f9: ; 567f9 (15:67f9) Func_56819: ; 56819 (15:6819) ld hl, wSpriteStateData1 ld de, $0004 - ld a, [$cf13] + ld a, [wcf13] ld [H_DOWNARROWBLINKCNT2], a ; $ff8c call Func_56903 ld a, [hli] - ld [$d130], a + ld [wd130], a inc hl ld a, [hl] - ld [$d131], a + ld [wd131], a ld de, $00fe add hl, de ld a, [hli] - ld [$d132], a + ld [wd132], a ld a, [hl] - ld [$d133], a + ld [wd133], a ret Func_5683d: ; 5683d (15:683d) ld hl, wSpriteStateData1 ld de, $4 - ld a, [$cf13] + ld a, [wcf13] ld [H_DOWNARROWBLINKCNT2], a ; $ff8c call Func_56903 ld a, [$ffeb] @@ -58,26 +58,26 @@ Func_5683d: ; 5683d (15:683d) Func_5685d: ; 5685d (15:685d) ld hl, wSpriteStateData1 ld de, $0004 - ld a, [$cf13] + ld a, [wcf13] ld [H_DOWNARROWBLINKCNT2], a ; $ff8c call Func_56903 - ld a, [$d130] + ld a, [wd130] ld [hli], a inc hl - ld a, [$d131] + ld a, [wd131] ld [hl], a ld de, $00fe add hl, de - ld a, [$d132] + ld a, [wd132] ld [hli], a - ld a, [$d133] + ld a, [wd133] ld [hl], a ret TrainerWalkUpToPlayer: ; 56881 (15:6881) - ld a, [$cf13] + ld a, [wcf13] swap a - ld [wTrainerSpriteOffset], a ; $cd3d + ld [wTrainerSpriteOffset], a ; wWhichTrade call ReadTrainerScreenPosition ld a, [wTrainerFacingDirection] and a @@ -127,7 +127,7 @@ TrainerWalkUpToPlayer: ; 56881 (15:6881) ld a, $c0 ; a = direction to go to jr .writeWalkScript .facingLeft - ld a, [$cd41] + ld a, [wTrainerScreenX] ld b, a ld a, $40 ; (fixed) player screen X pos call CalcDifference @@ -139,11 +139,11 @@ TrainerWalkUpToPlayer: ; 56881 (15:6881) ld b, $0 ld a, $80 ; a = direction to go to .writeWalkScript - ld hl, $cc97 - ld de, $cc97 + ld hl, wcc97 + ld de, wcc97 call FillMemory ; write the necessary steps to reach player ld [hl], $ff ; write end of list sentinel - ld a, [$cf13] + ld a, [wcf13] ld [H_DOWNARROWBLINKCNT2], a ; $ff8c jp MoveSprite_ @@ -159,10 +159,10 @@ Func_56903: ; 56903 (15:6903) ret ; tests if this trainer is in the right position to engage the player and do so if she is. -CheckEngagePlayer: ; 5690f (15:690f) +TrainerEngage: ; 5690f (15:690f) push hl push de - ld a, [wTrainerSpriteOffset] ; $cd3d + ld a, [wTrainerSpriteOffset] ; wWhichTrade add $2 ld d, $0 ld e, a @@ -173,21 +173,21 @@ CheckEngagePlayer: ; 5690f (15:690f) jr nz, .spriteOnScreen ; test if sprite is on screen jp .noEngage .spriteOnScreen - ld a, [wTrainerSpriteOffset] ; $cd3d + ld a, [wTrainerSpriteOffset] ; wWhichTrade add $9 ld d, $0 ld e, a ld hl, wSpriteStateData1 add hl, de ld a, [hl] ; c1x9: facing direction - ld [$cd3f], a + ld [wTrainerFacingDirection], a call ReadTrainerScreenPosition - ld a, [$cd40] ; sprite screen Y pos + ld a, [wTrainerScreenY] ; sprite screen Y pos ld b, a ld a, $3c cp b jr z, .linedUpY - ld a, [$cd41] ; sprite screen X pos + ld a, [wTrainerScreenX] ; sprite screen X pos ld b, a ld a, $40 cp b @@ -195,7 +195,7 @@ CheckEngagePlayer: ; 5690f (15:690f) xor a jp .noEngage .linedUpY - ld a, [$cd41] ; sprite screen X pos + ld a, [wTrainerScreenX] ; sprite screen X pos ld b, a ld a, $40 ; (fixed) player X position call CalcDifference ; calc distance @@ -205,7 +205,7 @@ CheckEngagePlayer: ; 5690f (15:690f) xor a jr .noEngage .linedUpX - ld a, [$cd40] ; sprite screen Y pos + ld a, [wTrainerScreenY] ; sprite screen Y pos ld b, a ld a, $3c ; (fixed) player Y position call CalcDifference ; calc distance @@ -216,7 +216,7 @@ CheckEngagePlayer: ; 5690f (15:690f) jp .noEngage .engage call CheckPlayerIsInFrontOfSprite - ld a, [wTrainerSpriteOffset] ; $cd3d + ld a, [wTrainerSpriteOffset] ; wWhichTrade and a jr z, .noEngage ld hl, wFlags_0xcd60 @@ -224,29 +224,29 @@ CheckEngagePlayer: ; 5690f (15:690f) call EngageMapTrainer ld a, $ff .noEngage: ; 56988 (15:6988) - ld [wTrainerSpriteOffset], a ; $cd3d + ld [wTrainerSpriteOffset], a ; wWhichTrade pop de pop hl ret -; reads trainer's Y position to $cd40 and X position to $cd41 +; reads trainer's Y position to wTrainerScreenY and X position to wTrainerScreenX ReadTrainerScreenPosition: ; 5698e (15:698e) - ld a, [wTrainerSpriteOffset] ; $cd3d + ld a, [wTrainerSpriteOffset] ; wWhichTrade add $4 ld d, $0 ld e, a ld hl, wSpriteStateData1 add hl, de ld a, [hl] - ld [$cd40], a - ld a, [wTrainerSpriteOffset] ; $cd3d + ld [wTrainerScreenY], a + ld a, [wTrainerSpriteOffset] ; wWhichTrade add $6 ld d, $0 ld e, a ld hl, wSpriteStateData1 add hl, de ld a, [hl] - ld [$cd41], a + ld [wTrainerScreenX], a ret ; checks if the sprite is properly lined up with the player with respect to the direction it's looking. Also checks the distance between player and sprite @@ -259,7 +259,7 @@ CheckSpriteCanSeePlayer: ; 569af (15:69af) jr nc, .checkIfLinedUp jr .notInLine ; player too far away .checkIfLinedUp - ld a, [$cd3f] ; sprite facing direction + ld a, [wTrainerFacingDirection] ; sprite facing direction cp $0 ; down jr z, .checkXCoord cp $4 ; up @@ -270,13 +270,13 @@ CheckSpriteCanSeePlayer: ; 569af (15:69af) jr z, .checkYCoord jr .notInLine .checkXCoord - ld a, [$cd41] ; sprite screen X position + ld a, [wTrainerScreenX] ; sprite screen X position ld b, a cp $40 jr z, .inLine jr .notInLine .checkYCoord - ld a, [$cd40] ; sprite screen Y position + ld a, [wTrainerScreenY] ; sprite screen Y position ld b, a cp $3c jr nz, .notInLine @@ -289,10 +289,10 @@ CheckSpriteCanSeePlayer: ; 569af (15:69af) ; tests if the player is in front of the sprite (rather than behind it) CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3) - ld a, [W_CURMAP] ; $d35e + ld a, [W_CURMAP] ; W_CURMAP cp POWER_PLANT jp z, .engage ; XXX not sure why bypass this for power plant (maybe to get voltorb fake items to work?) - ld a, [wTrainerSpriteOffset] ; $cd3d + ld a, [wTrainerSpriteOffset] ; wWhichTrade add $4 ld d, $0 ld e, a @@ -303,38 +303,38 @@ CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3) jr nz, .notOnTopmostTile ; special case if sprite is on topmost tile (Y = $fc (-4)), make it come down a block ld a, $c .notOnTopmostTile - ld [$cd40], a - ld a, [wTrainerSpriteOffset] ; $cd3d + ld [wTrainerScreenY], a + ld a, [wTrainerSpriteOffset] ; wWhichTrade add $6 ld d, $0 ld e, a ld hl, wSpriteStateData1 add hl, de ld a, [hl] ; c1x6 (sprite screen X pos) - ld [$cd41], a - ld a, [$cd3f] ; facing direction + ld [wTrainerScreenX], a + ld a, [wTrainerFacingDirection] ; facing direction cp $0 jr nz, .notFacingDown - ld a, [$cd40] ; sprite screen Y pos + ld a, [wTrainerScreenY] ; sprite screen Y pos cp $3c jr c, .engage ; sprite above player jr .noEngage ; sprite below player .notFacingDown cp $4 jr nz, .notFacingUp - ld a, [$cd40] ; sprite screen Y pos + ld a, [wTrainerScreenY] ; sprite screen Y pos cp $3c jr nc, .engage ; sprite below player jr .noEngage ; sprite above player .notFacingUp cp $8 jr nz, .notFacingLeft - ld a, [$cd41] ; sprite screen X pos + ld a, [wTrainerScreenX] ; sprite screen X pos cp $40 jr nc, .engage ; sprite right of player jr .noEngage ; sprite left of player .notFacingLeft - ld a, [$cd41] ; sprite screen X pos + ld a, [wTrainerScreenX] ; sprite screen X pos cp $40 jr nc, .noEngage ; sprite right of player .engage @@ -343,5 +343,5 @@ CheckPlayerIsInFrontOfSprite: ; 569e3 (15:69e3) .noEngage xor a .done - ld [wTrainerSpriteOffset], a ; $cd3d + ld [wTrainerSpriteOffset], a ; wWhichTrade ret diff --git a/engine/palettes.asm b/engine/palettes.asm index 71f01a97..eafd8ef6 100755 --- a/engine/palettes.asm +++ b/engine/palettes.asm @@ -1,9 +1,9 @@ Func_71ddf: ; 71ddf (1c:5ddf) - call Load16BitRegisters + call GetPredefRegisters ld a, b cp $ff jr nz, .asm_71dea - ld a, [$cf1c] + ld a, [wcf1c] .asm_71dea cp $fc jp z, Func_71fc2 @@ -27,23 +27,23 @@ SendPalPacket_Black: ; 71dff (1c:5dff) ; uses PalPacket_Empty to build a packet based on mon IDs and health color BuildBattlePalPacket: ; 71e06 (1c:5e06) ld hl, PalPacket_Empty - ld de, $cf2d + ld de, wcf2d ld bc, $10 call CopyData ld a, [W_PLAYERBATTSTATUS3] - ld hl, W_PLAYERMONID + ld hl, wBattleMonSpecies call DeterminePaletteID ld b, a ld a, [W_ENEMYBATTSTATUS3] - ld hl, W_ENEMYMONID + ld hl, wEnemyMonSpecies2 call DeterminePaletteID ld c, a - ld hl, $cf2e - ld a, [$cf1d] + ld hl, wcf2e + ld a, [wcf1d] add PAL_GREENBAR ld [hli], a inc hl - ld a, [$cf1e] + ld a, [wcf1e] add PAL_GREENBAR ld [hli], a inc hl @@ -52,10 +52,10 @@ BuildBattlePalPacket: ; 71e06 (1c:5e06) inc hl ld a, c ld [hl], a - ld hl, $cf2d + ld hl, wcf2d ld de, BlkPacket_Battle ld a, $1 - ld [$cf1c], a + ld [wcf1c], a ret SendPalPacket_TownMap: ; 71e48 (1c:5e48) @@ -66,42 +66,42 @@ SendPalPacket_TownMap: ; 71e48 (1c:5e48) ; uses PalPacket_Empty to build a packet based the mon ID BuildStatusScreenPalPacket: ; 71e4f (1c:5e4f) ld hl, PalPacket_Empty - ld de, $cf2d + ld de, wcf2d ld bc, $10 call CopyData - ld a, [$cf91] + ld a, [wcf91] cp VICTREEBEL + 1 jr c, .pokemon ld a, $1 ; not pokemon .pokemon call DeterminePaletteIDOutOfBattle push af - ld hl, $cf2e - ld a, [$cf25] + ld hl, wcf2e + ld a, [wcf25] add $1f ld [hli], a inc hl pop af ld [hl], a - ld hl, $cf2d + ld hl, wcf2d ld de, BlkPacket_StatusScreen ret SendPalPacket_PartyMenu: ; 71e7b (1c:5e7b) ld hl, PalPacket_PartyMenu - ld de, $cf2e + ld de, wcf2e ret SendPalPacket_Pokedex: ; 71e82 (1c:5e82) ld hl, PalPacket_Pokedex - ld de, $cf2d + ld de, wcf2d ld bc, $10 call CopyData - ld a, [$cf91] + ld a, [wcf91] call DeterminePaletteIDOutOfBattle - ld hl, $cf30 + ld hl, wcf30 ld [hl], a - ld hl, $cf2d + ld hl, wcf2d ld de, BlkPacket_Pokedex ret @@ -130,13 +130,13 @@ SendPalPacket_GameFreakIntro: ; 71ebb (1c:5ebb) ld hl, PalPacket_GameFreakIntro ld de, BlkPacket_GameFreakIntro ld a, $8 - ld [$cf1c], a + ld [wcf1c], a ret ; uses PalPacket_Empty to build a packet based on the current map BuildOverworldPalPacket: ; 71ec7 (1c:5ec7) ld hl, PalPacket_Empty - ld de, $cf2d + ld de, wcf2d ld bc, $10 call CopyData ld a, [W_CURMAPTILESET] @@ -163,11 +163,11 @@ BuildOverworldPalPacket: ; 71ec7 (1c:5ec7) ld a, PAL_ROUTE - 1 .town inc a ; a town's pallete ID is its map ID + 1 - ld hl, $cf2e + ld hl, wcf2e ld [hld], a ld de, BlkPacket_WholeScreen ld a, $9 - ld [$cf1c], a + ld [wcf1c], a ret .PokemonTowerOrAgatha ld a, PAL_GREYMON - 1 @@ -184,7 +184,7 @@ BuildOverworldPalPacket: ; 71ec7 (1c:5ec7) SendPokemonPalette_WholeScreen: ; 71f17 (1c:5f17) push bc ld hl, PalPacket_Empty - ld de, $cf2d + ld de, wcf2d ld bc, $10 call CopyData pop bc @@ -192,21 +192,21 @@ SendPokemonPalette_WholeScreen: ; 71f17 (1c:5f17) and a ld a, $1e jr nz, .asm_71f31 - ld a, [$cf1d] + ld a, [wcf1d] call DeterminePaletteIDOutOfBattle .asm_71f31 - ld [$cf2e], a - ld hl, $cf2d + ld [wcf2e], a + ld hl, wcf2d ld de, BlkPacket_WholeScreen ret BuildTrainerCardPalPacket: ; 71f3b (1c:5f3b) ld hl, BlkPacket_TrainerCard - ld de, $cc5b + ld de, wcc5b ld bc, $40 call CopyData ld de, LoopCounts_71f8f - ld hl, $cc5d + ld hl, wcc5d ld a, [W_OBTAINEDBADGES] ld c, $8 .asm_71f52 @@ -235,7 +235,7 @@ BuildTrainerCardPalPacket: ; 71f3b (1c:5f3b) dec c jr nz, .asm_71f52 ld hl, PalPacket_TrainerCard - ld de, $cc5b + ld de, wcc5b ret PointerTable_71f73: ; 71f73 (1c:5f73) @@ -264,14 +264,13 @@ DeterminePaletteID: ; 71f97 (1c:5f97) ret nz ld a, [hl] DeterminePaletteIDOutOfBattle: ; 71f9d (1c:5f9d) - ld [$D11E], a + ld [wd11e], a and a jr z, .idZero push bc - ld a, $3A - call Predef ; turn Pokemon ID number into Pokedex number + predef IndexToPokedex ; turn Pokemon ID number into Pokedex number pop bc - ld a, [$D11E] + ld a, [wd11e] .idZero ld e, a ld d, $00 @@ -282,13 +281,13 @@ DeterminePaletteIDOutOfBattle: ; 71f9d (1c:5f9d) SendBlkPacket_PartyMenu: ; 71fb6 (1c:5fb6) ld hl, BlkPacket_PartyMenu ; $62f4 - ld de, $cf2e + ld de, wcf2e ld bc, $30 jp CopyData Func_71fc2: ; 71fc2 (1c:5fc2) - ld hl, $cf1f - ld a, [$cf2d] + ld hl, wcf1f + ld a, [wcf2d] ld e, a ld d, $0 add hl, de @@ -304,9 +303,9 @@ Func_71fc2: ; 71fc2 (1c:5fc2) ld e, $f .asm_71fdb push de - ld hl, $cf37 + ld hl, wcf37 ld bc, $6 - ld a, [$cf2d] + ld a, [wcf2d] call AddNTimes pop de ld [hl], e @@ -379,14 +378,14 @@ SendSGBPacket: ; 71feb (1c:5feb) ; else send 16 more bytes jr .loop2 -LoadSGBBorderAndPalettes: ; 7202b (1c:602b) +LoadSGB: ; 7202b (1c:602b) xor a - ld [$cf1b], a + ld [wcf1b], a call Func_7209b ret nc ld a, $1 - ld [$cf1b], a - ld a, [$cf1a] + ld [wcf1b], a + ld a, [wGBC] and a jr z, .asm_7203f ret @@ -395,22 +394,22 @@ LoadSGBBorderAndPalettes: ; 7202b (1c:602b) call Func_72075 ei ld a, $1 - ld [$cf2d], a - ld de, PalPacket_72508 + ld [wcf2d], a + ld de, ChrTrnPacket ld hl, SGBBorderGraphics call Func_7210b xor a - ld [$cf2d], a - ld de, PalPacket_72518 + ld [wcf2d], a + ld de, PctTrnPacket ld hl, BorderPalettes call Func_7210b xor a - ld [$cf2d], a - ld de, PalPacket_724d8 + ld [wcf2d], a + ld de, PalTrnPacket ld hl, SuperPalettes call Func_7210b - call ZeroVram - ld hl, PalPacket_72538 + call ClearVram + ld hl, MaskEnCancelPacket jp SendSGBPacket Func_72075: ; 72075 (1c:6075) @@ -431,18 +430,18 @@ Func_72075: ; 72075 (1c:6075) ret PointerTable_72089: ; 72089 (1c:6089) - dw PalPacket_72528 - dw PalPacket_72548 - dw PalPacket_72558 - dw PalPacket_72568 - dw PalPacket_72578 - dw PalPacket_72588 - dw PalPacket_72598 - dw PalPacket_725a8 - dw PalPacket_725b8 + dw MaskEnFreezePacket + dw DataSnd_72548 + dw DataSnd_72558 + dw DataSnd_72568 + dw DataSnd_72578 + dw DataSnd_72588 + dw DataSnd_72598 + dw DataSnd_725a8 + dw DataSnd_725b8 Func_7209b: ; 7209b (1c:609b) - ld hl, PalPacket_724f8 + ld hl, MltReq2Packet di call SendSGBPacket ld a, $1 @@ -493,7 +492,7 @@ Func_7209b: ; 7209b (1c:609b) ret Func_72102: ; 72102 (1c:6102) - ld hl, PalPacket_724e8 + ld hl, MltReq1Packet call SendSGBPacket jp Wait7000 @@ -503,8 +502,8 @@ Func_7210b: ; 7210b (1c:610b) call DisableLCD ld a, $e4 ld [rBGP], a ; $ff47 - ld de, $8800 - ld a, [$cf2d] + ld de, vChars1 + ld a, [wcf2d] and a jr z, .asm_72122 call Func_72188 @@ -513,7 +512,7 @@ Func_7210b: ; 7210b (1c:610b) ld bc, $1000 call CopyData .asm_72128 - ld hl, $9800 + ld hl, vBGMap0 ld de, $c ld a, $80 ld c, $d @@ -551,7 +550,7 @@ Wait7000: ; 7214a (1c:614a) ret Func_72156: ; 72156 (1c:6156) - ld a, [$cf1a] + ld a, [wGBC] and a jr z, .asm_72165 push de diff --git a/engine/play_time.asm b/engine/play_time.asm index 6eb8bc17..db7d6f67 100755 --- a/engine/play_time.asm +++ b/engine/play_time.asm @@ -1,43 +1,43 @@ Func_18dee: ; 18dee (6:4dee) call Func_18e36 - ld a, [$d732] + ld a, [wd732] bit 0, a ret z - ld a, [W_PLAYTIMEMINUTES] ; $da42 + ld a, [W_PLAYTIMEMINUTES] ; wda42 and a ret nz - ld a, [W_PLAYTIMEFRAMES] ; $da45 + ld a, [W_PLAYTIMEFRAMES] ; wda45 inc a - ld [W_PLAYTIMEFRAMES], a ; $da45 + ld [W_PLAYTIMEFRAMES], a ; wda45 cp 60 ret nz xor a - ld [W_PLAYTIMEFRAMES], a ; $da45 - ld a, [W_PLAYTIMESECONDS] ; $da44 + ld [W_PLAYTIMEFRAMES], a ; wda45 + ld a, [W_PLAYTIMESECONDS] ; wda44 inc a - ld [W_PLAYTIMESECONDS], a ; $da44 + ld [W_PLAYTIMESECONDS], a ; wda44 cp 60 ret nz xor a - ld [W_PLAYTIMESECONDS], a ; $da44 - ld a, [$da43] + ld [W_PLAYTIMESECONDS], a ; wda44 + ld a, [W_PLAYTIMEMINUTES + 1] inc a - ld [$da43], a + ld [W_PLAYTIMEMINUTES + 1], a cp 60 ret nz xor a - ld [$da43], a - ld a, [$da41] + ld [W_PLAYTIMEMINUTES + 1], a + ld a, [W_PLAYTIMEHOURS + 1] inc a - ld [$da41], a + ld [W_PLAYTIMEHOURS + 1], a cp $ff ret nz ld a, $ff - ld [W_PLAYTIMEMINUTES], a ; $da42 + ld [W_PLAYTIMEMINUTES], a ; wda42 ret Func_18e36: ; 18e36 (6:4e36) - ld a, [$d13a] + ld a, [wd13a] and a jr nz, .asm_18e40 ld a, $ff @@ -45,17 +45,17 @@ Func_18e36: ; 18e36 (6:4e36) .asm_18e40 dec a .asm_18e41 - ld [$d13a], a + ld [wd13a], a and a ret nz - ld a, [$d730] + ld a, [wd730] res 1, a res 2, a bit 5, a res 5, a - ld [$d730], a + ld [wd730], a ret z xor a - ld [H_NEWLYPRESSEDBUTTONS], a - ld [H_CURRENTPRESSEDBUTTONS], a + ld [hJoyPressed], a + ld [hJoyHeld], a ret diff --git a/engine/pokedex_rating.asm b/engine/pokedex_rating.asm index f3aeeb42..080025c6 100755 --- a/engine/pokedex_rating.asm +++ b/engine/pokedex_rating.asm @@ -2,12 +2,12 @@ DisplayDexRating: ; 44169 (11:4169) ld hl, wPokedexSeen ld b, wPokedexSeenEnd - wPokedexSeen call CountSetBits - ld a, [$D11E] ; result of CountSetBits (seen count) + ld a, [wd11e] ; result of CountSetBits (seen count) ld [$FFDB], a ld hl, wPokedexOwned ld b, wPokedexOwnedEnd - wPokedexOwned call CountSetBits - ld a, [$D11E] ; result of CountSetBits (own count) + ld a, [wd11e] ; result of CountSetBits (own count) ld [$FFDC], a ld hl, DexRatingsTable .findRating @@ -23,10 +23,10 @@ DisplayDexRating: ; 44169 (11:4169) ld a, [hli] ld h, [hl] ld l, a ; load text pointer into hl - ld a, [$D747] + ld a, [wd747] bit 3, a res 3, a - ld [$D747], a + ld [wd747], a jr nz, .label3 push hl ld hl, PokedexRatingText_441cc @@ -36,7 +36,7 @@ DisplayDexRating: ; 44169 (11:4169) callba Func_7d13b jp WaitForTextScrollButtonPress ; wait for button press .label3 - ld de, $CC5B + ld de, wcc5b ld a, [$FFDB] ld [de], a inc de diff --git a/engine/predefs.asm b/engine/predefs.asm index 4550a562..3ac99585 100755 --- a/engine/predefs.asm +++ b/engine/predefs.asm @@ -1,25 +1,20 @@ -GetPredefPointer: ; 4fe49 (13:7e49) -; stores hl in $CC4F,$CC50 -; stores de in $CC51,$CC52 -; stores bc in $CC53,$CC54 -; grabs a byte "n" from $CC4E, -; and gets the nth (3-byte) pointer in PredefPointers -; stores the bank of said pointer in [$D0B7] -; stores the pointer in hl and returns - ; ld $CC4F,hl +GetPredefPointer: +; Store the contents of the register +; pairs (hl, de, bc) at wPredefRegisters. +; Then put the bank and address of predef +; wPredefID in [wPredefBank] and hl. + ld a,h - ld [$CC4F],a + ld [wPredefRegisters],a ld a,l - ld [$CC50],a + ld [wPredefRegisters + 1],a - ; ld $CC51,de - ld hl,$CC51 + ld hl,wPredefRegisters + 2 ld a,d ld [hli],a ld a,e ld [hli],a - ; ld $CC53,bc ld a,b ld [hli],a ld [hl],c @@ -27,11 +22,10 @@ GetPredefPointer: ; 4fe49 (13:7e49) ld hl,PredefPointers ld de,0 - ; de = 3 * [$CC4E] - ld a,[$CC4E] + ld a,[wPredefID] ld e,a - add a,a - add a,e + add a + add e ld e,a jr nc,.next inc d @@ -43,7 +37,7 @@ GetPredefPointer: ; 4fe49 (13:7e49) ; get bank of predef routine ld a,[de] - ld [$D0B7],a + ld [wPredefBank],a ; get pointer inc de @@ -55,129 +49,105 @@ GetPredefPointer: ; 4fe49 (13:7e49) ret -PredefPointers: ; 4fe79 (13:7e79) +PredefPointers:: ; 4fe79 (13:7e79) ; these are pointers to ASM routines. ; they appear to be used in overworld map scripts. - dbw BANK(Func_3cd60),Func_3cd60 - dbw BANK(Func_3f0c6),Func_3f0c6 - dbw BANK(Func_3f073),Func_3f073 - dbw BANK(ScaleSpriteByTwo), ScaleSpriteByTwo - db BANK(LoadMonBackSprite) ; dbw macro gives an error for some reason - dw LoadMonBackSprite - dbw BANK(Func_79aba),Func_79aba - dbw BANK(Func_f132),Func_f132 -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 - db BANK(InitializePlayerData) - dw InitializePlayerData - dbw BANK(HandleBitArray),HandleBitArray - db BANK(RemoveMissableObject) - dw RemoveMissableObject - db BANK(IsMissableObjectHidden) - dw IsMissableObjectHidden - dbw BANK(Func_c69c),Func_c69c - db BANK(AnyPlayerPokemonAliveCheck) - dw AnyPlayerPokemonAliveCheck - db BANK(AddMissableObject) - dw AddMissableObject - db BANK(AddMissableObject) - dw AddMissableObject - dbw BANK(Func_ee9e),Func_ee9e - db BANK(InitializePlayerData) - dw InitializePlayerData - dbw BANK(Func_c754),Func_c754 - dbw BANK(Func_3af5b),Func_3af5b - dbw BANK(LearnMove),LearnMove - dbw BANK(IsItemInBag_),IsItemInBag_; 1C, used in Pokémon Tower + add_predef Func_3cd60 + add_predef Func_3f0c6 + add_predef Func_3f073 + add_predef ScaleSpriteByTwo + add_predef LoadMonBackPic + add_predef Func_79aba + add_predef Func_f132 + add_predef HealParty + add_predef MoveAnimation; 08 play move animation + add_predef DivideBCDPredef + add_predef DivideBCDPredef2 + add_predef AddBCDPredef + add_predef SubBCDPredef + add_predef DivideBCDPredef3 + add_predef DivideBCDPredef4 + add_predef InitPlayerData + add_predef FlagActionPredef + add_predef HideObject + add_predef IsObjectHidden + add_predef Func_c69c + add_predef AnyPartyAlive + add_predef ShowObject + add_predef ShowObject2 + add_predef Func_ee9e + add_predef InitPlayerData2 + add_predef Func_c754 + add_predef Func_3af5b + add_predef LearnMove + add_predef IsItemInBag_ ; 1C, used in Pokémon Tower dbw $03,Func_3eb5 ; for these two, the bank number is actually 0 dbw $03,GiveItem - dbw BANK(Func_480eb),Func_480eb - dbw BANK(Func_f8ba),Func_f8ba - dbw BANK(Func_480ff),Func_480ff - dbw BANK(Func_f929),Func_f929 - dbw BANK(Func_f9a0),Func_f9a0 - dbw BANK(Func_48125),Func_48125 - dbw BANK(UpdateHPBar),UpdateHPBar - db BANK(UpdateHPBar_LoadRegisters) - dw UpdateHPBar_LoadRegisters - dbw BANK(Func_5ab0),Func_5ab0 - dbw BANK(Func_3ed02),Func_3ed02 - db BANK(DisplayPokedexMenu_) - dw DisplayPokedexMenu_ - dbw BANK(Func_3ad1c),Func_3ad1c - dbw BANK(SaveSAVtoSRAM0),SaveSAVtoSRAM0 - dbw BANK(InitOpponent),InitOpponent - dbw BANK(Func_5a5f),Func_5a5f - dbw BANK(DrawBadges), DrawBadges - dbw BANK(Func_410f3),Func_410f3 - dbw BANK(Func_7096d),Func_7096d - dbw BANK(Func_79dda),Func_79dda - dbw BANK(PlayIntro),PlayIntro - dbw BANK(Func_79869),Func_79869 - dbw BANK(Func_70b5d),Func_70b5d - dbw BANK(Func_c586),Func_c586 - dbw BANK(StatusScreen),StatusScreen ; 37 0x12953 - dbw BANK(StatusScreen2),StatusScreen2 ; 38 - dbw BANK(Func_410e2),Func_410e2 - db BANK(CheckEngagePlayer) - dw CheckEngagePlayer - dbw BANK(IndexToPokedex),IndexToPokedex - dbw BANK(Predef3B),Predef3B; 3B display pic? - dbw BANK(UsedCut),UsedCut - dbw BANK(ShowPokedexData),ShowPokedexData - dbw BANK(WriteMonMoves),WriteMonMoves - dbw BANK(SaveSAV),SaveSAV - db BANK(LoadSGBBorderAndPalettes) - dw LoadSGBBorderAndPalettes - dbw BANK(Func_f113),Func_f113 - dbw BANK(SetPartyMonTypes),SetPartyMonTypes - db BANK(TestMonMoveCompatibility) - dw TestMonMoveCompatibility - dbw BANK(TMToMove),TMToMove - dbw BANK(Func_71ddf),Func_71ddf - db BANK(DisplayStarterMonDex) - dw DisplayStarterMonDex; 46 load dex screen - db BANK(_AddPokemonToParty) - dw _AddPokemonToParty - dbw BANK(UpdateHPBar),UpdateHPBar - dbw BANK(Func_3cdec),Func_3cdec - dbw BANK(LoadTownMap_Nest),LoadTownMap_Nest - dbw BANK(Func_27d6b),Func_27d6b - db BANK(PrintEmotionBubble) - dw PrintEmotionBubble; 4C player exclamation - dbw BANK(Func_5aaf),Func_5aaf; return immediately - db BANK(AskForMonNickname) - dw AskForMonNickname - dbw BANK(PewterGuys),PewterGuys - dbw BANK(SaveSAVtoSRAM2),SaveSAVtoSRAM2 - dbw BANK(LoadSAVCheckSum2),LoadSAVCheckSum2 - dbw BANK(LoadSAV),LoadSAV - dbw BANK(SaveSAVtoSRAM1),SaveSAVtoSRAM1 - dbw BANK(Predef54),Predef54 ; 54 initiate trade - db BANK(HallOfFameComputer) - dw HallOfFameComputer - dbw BANK(DisplayDexRating),DisplayDexRating - db $1E ; uses wrong bank number - dw _DoFlyOrTeleportAwayGraphics - db $1E ; uses wrong bank number - dw Func_70510 - dbw BANK(Func_c5be),Func_c5be - dbw BANK(Func_c60b),Func_c60b - db BANK(PrintUsedStrengthText) - dw PrintUsedStrengthText - dbw BANK(PickupItem),PickupItem - dbw BANK(Func_27d98),Func_27d98 - dbw BANK(LoadMovePPs),LoadMovePPs -DrawHPBarPredef: ; 4ff96 (13:7f96) - dbw BANK(Func_128ef),Func_128ef ; 5F draw HP bar - dbw BANK(Func_128f6),Func_128f6 - dbw BANK(Func_1c9c6),Func_1c9c6 - dbw BANK(OaksAideScript),OaksAideScript + add_predef Func_480eb + add_predef Func_f8ba + add_predef Func_480ff + add_predef Func_f929 + add_predef Func_f9a0 + add_predef Func_48125 + add_predef UpdateHPBar + add_predef HPBarLength + add_predef Func_5ab0 + add_predef Func_3ed02 + add_predef ShowPokedexMenu + add_predef Func_3ad1c + add_predef SaveSAVtoSRAM0 + add_predef InitOpponent + add_predef Func_5a5f + add_predef DrawBadges + add_predef Func_410f3 + add_predef BattleTransition + add_predef Func_79dda + add_predef PlayIntro + add_predef Func_79869 + add_predef FlashScreen + add_predef Func_c586 + add_predef StatusScreen + add_predef StatusScreen2 + add_predef Func_410e2 + add_predef TrainerEngage + add_predef IndexToPokedex + add_predef Predef3B; 3B display pic? + add_predef UsedCut + add_predef ShowPokedexData + add_predef WriteMonMoves + add_predef SaveSAV + add_predef LoadSGB + add_predef Func_f113 + add_predef SetPartyMonTypes + add_predef CanLearnTM + add_predef TMToMove + add_predef Func_71ddf + add_predef StarterDex ; 46 + add_predef _AddPartyMon + add_predef UpdateHPBar2 + add_predef Func_3cdec + add_predef LoadTownMap_Nest + add_predef Func_27d6b + add_predef EmotionBubble; 4C player exclamation + add_predef Func_5aaf; return immediately + add_predef AskName + add_predef PewterGuys + add_predef SaveSAVtoSRAM2 + add_predef LoadSAVCheckSum2 + add_predef LoadSAV + add_predef SaveSAVtoSRAM1 + add_predef Predef54 ; 54 initiate trade + add_predef HallOfFamePC + add_predef DisplayDexRating + dbw $1E, _LeaveMapAnim ; wrong bank + dbw $1E, Func_70510 ; wrong bank + add_predef Func_c5be + add_predef Func_c60b + add_predef PrintStrengthTxt + add_predef PickupItem + add_predef Func_27d98 + add_predef LoadMovePPs + add_predef DrawHP ; 5F + add_predef Func_128f6 + add_predef Func_1c9c6 + add_predef OaksAideScript diff --git a/engine/predefs12.asm b/engine/predefs12.asm index ac305c04..380cfc1c 100755 --- a/engine/predefs12.asm +++ b/engine/predefs12.asm @@ -1,5 +1,5 @@ Func_480eb: ; 480eb (12:40eb) - call Load16BitRegisters + call GetPredefRegisters ld a, [rBGP] ; $ff47 or b ld [rBGP], a ; $ff47 @@ -11,9 +11,9 @@ Func_480eb: ; 480eb (12:40eb) ret Func_480ff: ; 480ff (12:40ff) - call Load16BitRegisters + call GetPredefRegisters ld a, $1 - ld [$d0a0], a + ld [wd0a0], a xor a .asm_48108 ld [H_NUMTOPRINT], a ; $ff96 (aliases: H_MULTIPLICAND) @@ -23,7 +23,7 @@ Func_480ff: ; 480ff (12:40ff) ld a, b jr nz, .asm_48108 xor a - ld [$d0a0], a + ld [wd0a0], a ret Func_48119: ; 48119 (12:4119) @@ -35,7 +35,7 @@ Func_48119: ; 48119 (12:4119) jp DelayFrames Func_48125: ; 48125 (12:4125) - call Load16BitRegisters + call GetPredefRegisters xor a .asm_48129 ld [$ff97], a diff --git a/engine/predefs17.asm b/engine/predefs17.asm index d261804a..74977ee8 100755 --- a/engine/predefs17.asm +++ b/engine/predefs17.asm @@ -1,10 +1,9 @@ ; this function temporarily makes the starters (and Ivysaur) seen ; so that the full Pokedex information gets displayed in Oak's lab -DisplayStarterMonDex: ; 5c0dc (17:40dc) +StarterDex: ; 5c0dc (17:40dc) ld a, %01001011 ; set starter flags - ld [wPokedexOwned], a ; $d2f7 - ld a, $3d - call Predef ; indirect jump to ShowPokedexData (402d1 (10:42d1)) + ld [wPokedexOwned], a ; wPokedexOwned + predef ShowPokedexData xor a ; unset starter flags - ld [wPokedexOwned], a ; $d2f7 + ld [wPokedexOwned], a ; wPokedexOwned ret diff --git a/engine/predefs17_2.asm b/engine/predefs17_2.asm index a1c4ff30..a2dac120 100755 --- a/engine/predefs17_2.asm +++ b/engine/predefs17_2.asm @@ -1,10 +1,10 @@ -; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in $d11e +; updates the types of a party mon (pointed to in hl) to the ones of the mon specified in wd11e SetPartyMonTypes: ; 5db5e (17:5b5e) - call Load16BitRegisters - ld bc, W_PARTYMON1_TYPE1 - W_PARTYMON1DATA ; $5 + call GetPredefRegisters + ld bc, wPartyMon1Type - wPartyMon1 ; $5 add hl, bc - ld a, [$d11e] - ld [$d0b5], a + ld a, [wd11e] + ld [wd0b5], a push hl call GetMonHeader pop hl diff --git a/engine/predefs7.asm b/engine/predefs7.asm index a52a71cc..469fe0c4 100755 --- a/engine/predefs7.asm +++ b/engine/predefs7.asm @@ -1,28 +1,28 @@ Func_1c9c6: ; 1c9c6 (7:49c6) ld hl, WhichFloorText call PrintText - ld hl, $cf7b + ld hl, wStringBuffer2 + 11 ld a, l - ld [$cf8b], a + ld [wcf8b], a ld a, h - ld [$cf8c], a - ld a, [wListScrollOffset] ; $cc36 + ld [wcf8c], a + ld a, [wListScrollOffset] ; wcc36 push af xor a - ld [wCurrentMenuItem], a ; $cc26 - ld [wListScrollOffset], a ; $cc36 - ld [$cf93], a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wListScrollOffset], a ; wcc36 + ld [wcf93], a ld a, $4 - ld [wListMenuID], a ; $cf94 + ld [wListMenuID], a ; wListMenuID call DisplayListMenuID pop bc ld a, b - ld [wListScrollOffset], a ; $cc36 + ld [wListScrollOffset], a ; wcc36 ret c - ld hl, $d126 + ld hl, wd126 set 7, [hl] - ld hl, $cc5b - ld a, [wWhichPokemon] ; $cf92 + ld hl, wcc5b + ld a, [wWhichPokemon] ; wWhichPokemon add a ld d, $0 ld e, a @@ -31,7 +31,7 @@ Func_1c9c6: ; 1c9c6 (7:49c6) ld b, a ld a, [hl] ld c, a - ld hl, $d3af + ld hl, wd3af call Func_1ca0d Func_1ca0d: ; 1ca0d (7:4a0d) diff --git a/engine/random.asm b/engine/random.asm new file mode 100755 index 00000000..2fc83f6f --- /dev/null +++ b/engine/random.asm @@ -0,0 +1,13 @@ +Random_:: +; Generate a random 16-bit value. + ld a, [rDIV] + ld b, a + ld a, [hRandomAdd] + adc b + ld [hRandomAdd], a + ld a, [rDIV] + ld b, a + ld a, [hRandomSub] + sbc b + ld [hRandomSub], a + ret diff --git a/engine/rng.asm b/engine/rng.asm deleted file mode 100755 index a0e0daa7..00000000 --- a/engine/rng.asm +++ /dev/null @@ -1,13 +0,0 @@ -GenRandom_: ; 13a8f (4:7a8f) -; generate a random 16-bit integer and store it at $FFD3,$FFD4 - ld a,[rDIV] - ld b,a - ld a,[H_RAND1] - adc b - ld [H_RAND1],a - ld a,[rDIV] - ld b,a - ld a,[H_RAND2] - sbc b - ld [H_RAND2],a - ret diff --git a/engine/save.asm b/engine/save.asm index bf2ec037..fcfbd133 100755 --- a/engine/save.asm +++ b/engine/save.asm @@ -13,7 +13,7 @@ LoadSAV: ; 735e8 (1c:75e8) ld a, $2 ; good checksum jr .goodsum .badsum - ld hl, $d730 + ld hl, wd730 push hl set 6, [hl] ld hl, FileDataDestroyedText @@ -24,7 +24,7 @@ LoadSAV: ; 735e8 (1c:75e8) res 6, [hl] ld a, $1 ; bad checksum .goodsum - ld [$d088], a ; checksum flag + ld [wd088], a ; checksum flag ret FileDataDestroyedText: ; 7361e (1c:761e) @@ -54,14 +54,14 @@ LoadSAVCheckSum: ; 73623 (1c:7623) .Func_73652 ; 73652 (1c:7652) ld hl, $a598 - ld de, W_PLAYERNAME ; $d158 + ld de, wPlayerName ; wd158 ld bc, $b call CopyData ld hl, $a5a3 - ld de, wPokedexOwned ; $d2f7 + ld de, wPokedexOwned ; wPokedexOwned ld bc, $789 call CopyData - ld hl, W_CURMAPTILESET ; $d367 + ld hl, W_CURMAPTILESET ; W_CURMAPTILESET set 7, [hl] ld hl, $ad2c ld de, wSpriteStateData1 @@ -70,7 +70,7 @@ LoadSAVCheckSum: ; 73623 (1c:7623) ld a, [$b522] ld [$ffd7], a ld hl, $b0c0 - ld de, W_NUMINBOX ; $da80 + ld de, W_NUMINBOX ; wda80 ld bc, $462 call CopyData and a @@ -90,7 +90,7 @@ LoadSAVCheckSum1: ; 73690 (1c:7690) cp c jr nz, SAVBadCheckSum ld hl, $b0c0 - ld de, W_NUMINBOX ; $da80 + ld de, W_NUMINBOX ; wda80 ld bc, $462 call CopyData and a @@ -110,11 +110,11 @@ LoadSAVCheckSum2: ; 736bd (1c:76bd) cp c jp nz, SAVBadCheckSum ld hl, $af2c - ld de, W_NUMINPARTY ; $d163 + ld de, wPartyCount ; wPartyCount ld bc, $194 call CopyData ld hl, $a5a3 - ld de, wPokedexOwned ; $d2f7 + ld de, wPokedexOwned ; wPokedexOwned ld bc, wPokedexSeenEnd - wPokedexOwned call CopyData and a @@ -140,7 +140,7 @@ SaveSAV: ;$770a call SaveSAVConfirm and a ;|0 = Yes|1 = No| ret nz - ld a,[$d088] + ld a,[wd088] dec a jr z,.save call SAVCheckRandomID @@ -151,12 +151,10 @@ SaveSAV: ;$770a ret nz .save ;$772d call SaveSAVtoSRAM ;$7848 - FuncCoord 1,13 - ld hl,Coord + hlCoord 1, 13 ld bc,$0412 call ClearScreenArea ; clear area 4x12 starting at 13,1 - FuncCoord 1,14 - ld hl,Coord + hlCoord 1, 14 ld de,NowSavingString call PlaceString ld c,$78 @@ -174,13 +172,12 @@ NowSavingString: SaveSAVConfirm: ; 73768 (1c:7768) call PrintText - FuncCoord 0, 7 - ld hl,Coord + hlCoord 0, 7 ld bc,$0801 ;arrow's coordinates |b = Y|c = X| ld a,$14 ;one line shifting ($28 = 2 lines) - ld [$d125],a + ld [wd125],a call DisplayTextBoxID ;handle Yes/No KeyPress - ld a,[$cc26] + ld a,[wCurrentMenuItem] ret WouldYouLikeToSaveText: ; 0x7377d @@ -201,11 +198,11 @@ SaveSAVtoSRAM0: ; 7378c (1c:778c) ld a, $1 ld [$6000], a ld [$4000], a - ld hl, W_PLAYERNAME ; $d158 + ld hl, wPlayerName ; wd158 ld de, $a598 ld bc, $b call CopyData - ld hl, wPokedexOwned ; $d2f7 + ld hl, wPokedexOwned ; wPokedexOwned ld de, $a5a3 ld bc, $789 call CopyData @@ -213,7 +210,7 @@ SaveSAVtoSRAM0: ; 7378c (1c:778c) ld de, $ad2c ld bc, $200 call CopyData - ld hl, W_NUMINBOX ; $da80 + ld hl, W_NUMINBOX ; wda80 ld de, $b0c0 ld bc, $462 call CopyData @@ -235,7 +232,7 @@ SaveSAVtoSRAM1: ; 737e2 (1c:77e2) ld a, $1 ld [$6000], a ld [$4000], a - ld hl, W_NUMINBOX ; $da80 + ld hl, W_NUMINBOX ; wda80 ld de, $b0c0 ld bc, $462 call CopyData @@ -254,7 +251,7 @@ SaveSAVtoSRAM2: ; 7380f (1c:780f) ld a, $1 ld [$6000], a ld [$4000], a - ld hl, W_NUMINPARTY ; $d163 + ld hl, wPartyCount ; wPartyCount ld de, $af2c ld bc, $194 call CopyData @@ -273,7 +270,7 @@ SaveSAVtoSRAM2: ; 7380f (1c:780f) SaveSAVtoSRAM: ; 73848 (1c:7848) ld a, $2 - ld [$d088], a + ld [wd088], a call SaveSAVtoSRAM0 call SaveSAVtoSRAM1 jp SaveSAVtoSRAM2 @@ -312,7 +309,7 @@ Func_73863: ; 73863 (1c:7863) Func_7387b: ; 7387b (1c:787b) ld hl, PointerTable_73895 ; $7895 - ld a, [$d5a0] + ld a, [wd5a0] and $7f cp $6 ld b, $2 @@ -341,10 +338,10 @@ Func_738a1:: ; 738a1 (1c:78a1) ld hl, WhenYouChangeBoxText call PrintText call YesNoChoice - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a ret nz - ld hl, $d5a0 + ld hl, wd5a0 bit 7, [hl] call z, Func_73a29 call Func_7393f @@ -359,16 +356,16 @@ Func_738a1:: ; 738a1 (1c:78a1) call Func_7387b ld e, l ld d, h - ld hl, W_NUMINBOX ; $da80 + ld hl, W_NUMINBOX ; wda80 call Func_7390e - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem set 7, a - ld [$d5a0], a + ld [wd5a0], a call Func_7387b - ld de, W_NUMINBOX ; $da80 + ld de, W_NUMINBOX ; wda80 call Func_7390e - ld hl, W_MAPTEXTPTR ; $d36c - ld de, wWhichTrade ; $cd3d + ld hl, W_MAPTEXTPTR ; wd36c + ld de, wWhichTrade ; wWhichTrade ld a, [hli] ld [de], a inc de @@ -376,7 +373,7 @@ Func_738a1:: ; 738a1 (1c:78a1) ld [de], a call Func_3f05 call SaveSAVtoSRAM - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade call Func_3f0f ld a, (SFX_02_5d - SFX_Headers_02) / 3 call PlaySoundWaitForCurrent @@ -416,61 +413,55 @@ Func_7393f: ; 7393f (1c:793f) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld a, $3 - ld [wMenuWatchedKeys], a ; $cc29 + ld [wMenuWatchedKeys], a ; wMenuWatchedKeys ld a, $b - ld [wMaxMenuItem], a ; $cc28 + ld [wMaxMenuItem], a ; wMaxMenuItem ld a, $1 - ld [wTopMenuItemY], a ; $cc24 + ld [wTopMenuItemY], a ; wTopMenuItemY ld a, $c - ld [wTopMenuItemX], a ; $cc25 + ld [wTopMenuItemX], a ; wTopMenuItemX xor a - ld [$cc37], a - ld a, [$d5a0] + ld [wcc37], a + ld a, [wd5a0] and $7f - ld [wCurrentMenuItem], a ; $cc26 - ld [wLastMenuItem], a ; $cc2a + ld [wCurrentMenuItem], a ; wCurrentMenuItem + ld [wLastMenuItem], a ; wLastMenuItem ld hl, wTileMap ld b, $2 ld c, $9 call TextBoxBorder ld hl, ChooseABoxText call PrintText - FuncCoord 11, 0 ; $c3ab - ld hl, Coord + hlCoord 11, 0 ld b, $c ld c, $7 call TextBoxBorder ld hl, $fff6 set 2, [hl] ld de, BoxNames ; $79d9 - FuncCoord 13, 1 ; $c3c1 - ld hl, Coord + hlCoord 13, 1 call PlaceString ld hl, $fff6 res 2, [hl] - ld a, [$d5a0] + ld a, [wd5a0] and $7f cp $9 jr c, .asm_739a6 sub $9 - FuncCoord 8, 2 ; $c3d0 - ld hl, Coord + hlCoord 8, 2 ld [hl], $f7 add $f6 jr .asm_739a8 .asm_739a6 add $f7 .asm_739a8 - FuncCoord 9, 2 ; $c3d1 - ld [Coord], a - FuncCoord 1, 2 ; $c3c9 - ld hl, Coord + Coorda 9, 2 + hlCoord 1, 2 ld de, BoxNoText call PlaceString call Func_73a84 - FuncCoord 18, 1 ; $c3c6 - ld hl, Coord - ld de, wWhichTrade ; $cd3d + hlCoord 18, 1 + ld de, wWhichTrade ; wWhichTrade ld bc, $14 ld a, $c .asm_739c2 @@ -554,7 +545,7 @@ Func_73a7f: ; 73a7f (1c:7a7f) ret Func_73a84: ; 73a84 (1c:7a84) - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade push hl ld a, $a ld [$0], a @@ -570,12 +561,12 @@ Func_73a84: ; 73a84 (1c:7a84) ld [$6000], a ld [$0], a pop hl - ld a, [$d5a0] + ld a, [wd5a0] and $7f ld c, a ld b, $0 add hl, bc - ld a, [W_NUMINBOX] ; $da80 + ld a, [W_NUMINBOX] ; wda80 ld [hl], a ret @@ -597,7 +588,7 @@ Func_73ab8: ; 73ab8 (1c:7ab8) 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 -;(which are stored at $d359-d35a) +;(which are stored at wPlayerID) ld a,$0a ld [$0000],a ld a,$01 @@ -617,10 +608,10 @@ SAVCheckRandomID: ;$7ad1 ld a,[hli] ld h,[hl] ld l,a - ld a,[$d359] + ld a,[wPlayerID] cp l jr nz,.next - ld a,[$d35a] + ld a,[wPlayerID + 1] cp h .next ld a,$00 @@ -628,38 +619,40 @@ SAVCheckRandomID: ;$7ad1 ld [$0000],a ret -Func_73b0d: ; 73b0d (1c:7b0d) - ld a, [$d5a2] +SaveHallOfFameTeams: ; 73b0d (1c:7b0d) + ld a, [wd5a2] dec a - cp $32 + cp NUM_HOF_TEAMS jr nc, .asm_73b28 - ld hl, $a598 - ld bc, $60 + ld hl, sHallOfFame + ld bc, HOF_TEAM call AddNTimes ld e, l ld d, h - ld hl, $cc5b - ld bc, $60 - jr CopyToSRAM0 + ld hl, wcc5b + ld bc, HOF_TEAM + jr HallOfFame_Copy + .asm_73b28 - ld hl, $a5f8 - ld de, $a598 - ld bc, $1260 - call CopyToSRAM0 - ld hl, $cc5b - ld de, $b7f8 - ld bc, $60 - jr CopyToSRAM0 - -Func_73b3f: ; 73b3f (1c:7b3f) - ld hl, $a598 - ld bc, $60 - ld a, [wWhichTrade] ; $cd3d + ld hl, sHallOfFame + HOF_TEAM + ld de, sHallOfFame + ld bc, HOF_TEAM * (NUM_HOF_TEAMS - 1) + call HallOfFame_Copy + ld hl, wcc5b + ld de, sHallOfFame + HOF_TEAM * (NUM_HOF_TEAMS - 1) + ld bc, HOF_TEAM + jr HallOfFame_Copy + +LoadHallOfFameTeams: ; 73b3f (1c:7b3f) + ld hl, sHallOfFame + ld bc, HOF_TEAM + ld a, [wWhichTrade] ; wWhichTrade call AddNTimes - ld de, $cc5b - ld bc, $60 + ld de, wcc5b + ld bc, HOF_TEAM ; fallthrough -CopyToSRAM0: ; 73b51 (1c:7b51) + +HallOfFame_Copy: ; 73b51 (1c:7b51) ld a, $a ld [$0], a ld a, $1 diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index a3c83e64..e43cc9ab 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -1,7 +1,7 @@ PromptUserToPlaySlots: ; 3730e (d:730e) call SaveScreenTilesToBuffer2 ld a, BANK(DisplayTextIDInit) - ld [$cf0c], a + ld [wcf0c], a ld b, a ld hl, DisplayTextIDInit call Bankswitch @@ -12,13 +12,12 @@ PromptUserToPlaySlots: ; 3730e (d:730e) and a jr nz, .skip dec a - ld [$cfcb], a - ld hl, $cd4f + ld [wcfcb], a + ld hl, wcd4f xor a ld [hli], a ld [hl], $2 - ld a, $4c - call Predef + predef EmotionBubble call GBPalWhiteOutWithDelay3 call LoadSlotMachineTiles call LoadFontTilePatterns @@ -27,7 +26,7 @@ PromptUserToPlaySlots: ; 3730e (d:730e) call GBPalNormal ld a, $e4 ld [$ff48], a - ld hl, $d730 + ld hl, wd730 set 6, [hl] xor a ld [W_SUBANIMSUBENTRYADDR], a @@ -35,13 +34,13 @@ PromptUserToPlaySlots: ; 3730e (d:730e) ld bc, $0014 call FillMemory call MainSlotMachineLoop - ld hl, $d730 + ld hl, wd730 res 6, [hl] xor a ld [W_SUBANIMSUBENTRYADDR], a call GBPalWhiteOutWithDelay3 ld a, $1 - ld [$cfcb], a + ld [wcfcb], a call GoPAL_SET_CF1C call Func_3e08 call ReloadTilesetTilePatterns @@ -49,7 +48,7 @@ PromptUserToPlaySlots: ; 3730e (d:730e) call LoadScreenTilesFromBuffer2 call Delay3 call GBPalNormal - ld a, [$cc5e] + ld a, [wcc5e] push af jp CloseTextDisplay @@ -60,7 +59,7 @@ PlaySlotMachineText: ; 37390 (d:7390) MainSlotMachineLoop: ; 37395 (d:7395) call SlotMachine_37754 xor a - ld hl, $cd4a + ld hl, wcd4a ld [hli], a ld [hl], a call SlotMachine_3775f @@ -79,12 +78,12 @@ MainSlotMachineLoop: ; 37395 (d:7395) xor a ld [wCurrentMenuItem], a ld [wLastMenuItem], a - ld [$cc37], a - ld hl, $c48a + ld [wcc37], a + ld hl, wTileMap + $ea ld b, $5 ld c, $4 call TextBoxBorder - ld hl, $c4a0 + ld hl, wTileMap + $100 ld de, CoinMultiplierSlotMachineText call PlaceString call HandleMenuInput @@ -94,7 +93,7 @@ MainSlotMachineLoop: ; 37395 (d:7395) ld b, a ld a, $3 sub b - ld [$cd50], a + ld [wcd50], a ld hl, wPlayerCoins ld c, a ld a, [hli] @@ -112,7 +111,7 @@ MainSlotMachineLoop: ; 37395 (d:7395) call SlotMachine_377d5 call SlotMachine_37480 ld a, $4 - ld hl, $cd4d + ld hl, wcd4d ld [hli], a ld [hli], a ld [hl], a @@ -134,12 +133,12 @@ MainSlotMachineLoop: ; 37395 (d:7395) .skip2 ld hl, OneMoreGoSlotMachineText call PrintText - ld hl, $c49e + ld hl, wTileMap + $fe ld bc, $0d0f xor a - ld [$d12c], a + ld [wd12c], a ld a, $14 - ld [$d125], a + ld [wd125], a call DisplayTextBoxID ld a, [wCurrentMenuItem] and a @@ -173,17 +172,17 @@ OneMoreGoSlotMachineText: ; 3747b (d:747b) db "@" SlotMachine_37480: ; 37480 (d:7480) - ld hl, $cd4c + ld hl, wcd4c bit 7, [hl] ret nz ld a, [W_SUBANIMSUBENTRYADDR] and a jr nz, .skip1 - call GenRandom + call Random and a jr z, .skip2 ld b, a - ld a, [$cc5b] + ld a, [wcc5b] cp b jr c, .skip3 ld a, $d2 @@ -222,7 +221,7 @@ SlotMachine_374ad: ; 374ad (d:74ad) call SlotMachine_374fb call SlotMachine_37517 ret c - ld a, [$cf1b] + ld a, [wcf1b] xor $1 inc a ld c, a @@ -237,7 +236,7 @@ SlotMachine_374df: ; 374df (d:74df) ld a, [de] rra jr nc, .skip - ld hl, $cd4d + ld hl, wcd4d ld a, [hl] and a ret z @@ -255,7 +254,7 @@ SlotMachine_374fb: ; 374fb (d:74fb) ld a, [de] rra jr nc, .skip - ld hl, $cd4e + ld hl, wcd4e ld a, [hl] and a ret z @@ -283,7 +282,7 @@ SlotMachine_37517: ; 37517 (d:7517) SlotMachine_3752c: ; 3752c (d:752c) call SlotMachine_GetWheelOneTile ld hl, wTrainerScreenX - ld a, [$cd4c] + ld a, [wcd4c] and $80 jr nz, .skip1 inc hl @@ -302,13 +301,13 @@ SlotMachine_3752c: ; 3752c (d:752c) ret .skip2 inc a - ld hl, $cd4d + ld hl, wcd4d ld [hl], $0 ret SlotMachine_37552: ; 37552 (d:7552) call SlotMachine_GetWheelTwoTile - ld a, [$cd4c] + ld a, [wcd4c] and $80 jr nz, .skip1 call SlotMachine_3756e @@ -321,12 +320,12 @@ SlotMachine_37552: ; 37552 (d:7552) ret nc .skip2 xor a - ld [$cd4e], a + ld [wcd4e], a ret SlotMachine_3756e: ; 3756e (d:756e) ld hl, wTrainerScreenX - ld de, $cd44 + ld de, wcd44 ld a, [de] cp [hl] ret z @@ -350,42 +349,42 @@ SlotMachine_3756e: ; 3756e (d:756e) SlotMachine_37588: ; 37588 (d:7588) call SlotMachine_GetWheelThreeTile - ld a, [$cd50] + ld a, [wcd50] cp $2 jr z, .skip1 cp $1 jr z, .skip2 ld hl, wTrainerScreenX - ld de, $cd45 - ld bc, $cd49 + ld de, wcd45 + ld bc, wcd49 call SlotMachine_CheckForMatch jp z, .skip5 - ld hl, $cd43 - ld de, $cd45 - ld bc, $cd47 + ld hl, wcd43 + ld de, wcd45 + ld bc, wcd47 call SlotMachine_CheckForMatch jr z, .skip5 .skip1 - ld hl, $cd43 - ld de, $cd46 - ld bc, $cd49 + ld hl, wcd43 + ld de, wcd46 + ld bc, wcd49 call SlotMachine_CheckForMatch jr z, .skip5 ld hl, wTrainerScreenX - ld de, $cd44 - ld bc, $cd47 + ld de, wcd44 + ld bc, wcd47 call SlotMachine_CheckForMatch jr z, .skip5 .skip2 - ld hl, $cd42 - ld de, $cd45 - ld bc, $cd48 + ld hl, wcd42 + ld de, wcd45 + ld bc, wcd48 call SlotMachine_CheckForMatch jr z, .skip5 - ld a, [$cd4c] + ld a, [wcd4c] and $c0 jr z, .skip3 - ld hl, $cd4f + ld hl, wcd4f dec [hl] jr nz, .skip4 .skip3 @@ -393,7 +392,7 @@ SlotMachine_37588: ; 37588 (d:7588) call PrintText .loop xor a - ld [$c002], a + ld [wc002], a ret .skip4 call SlotMachine_37833 @@ -402,7 +401,7 @@ SlotMachine_37588: ; 37588 (d:7588) call DelayFrame jp SlotMachine_37588 .skip5 - ld a, [$cd4c] + ld a, [wcd4c] and $c0 jr z, .skip4 and $80 @@ -426,7 +425,7 @@ SlotMachine_37588: ; 37588 (d:7588) ld a, [hli] ld h, [hl] ld l, a - ld de, $cf4b + ld de, wcf4b ld bc, $0004 call CopyData pop hl @@ -442,7 +441,7 @@ SlotMachine_37588: ; 37588 (d:7588) call DelayFrames dec b jr nz, .asm_37638 - ld hl, $cd4a + ld hl, wcd4a ld [hl], d inc hl ld [hl], e @@ -512,13 +511,13 @@ SlotMachine_CheckForMatch: ; 376a2 (d:76a2) ret SlotMachine_GetWheelThreeTile: ; 376a8 (d:76a8) - ld de, $cd47 + ld de, wcd47 ld hl, SlotMachineWheel3 ld a, [wTrainerScreenY] call SlotMachine_GetWheelTile SlotMachine_GetWheelTwoTile: ; 376b4 (d:76b4) - ld de, $cd44 + ld de, wcd44 ld hl, SlotMachineWheel2 ld a, [wTrainerFacingDirection] call SlotMachine_GetWheelTile @@ -568,7 +567,7 @@ SlotReward100Func: ; 376f3 (d:76f3) ld a, (SFX_1f_42 - SFX_Headers_1f) / 3 call PlaySound xor a - ld [$cd4c], a + ld [wcd4c], a ld b, $8 ld de, 100 ret @@ -578,11 +577,11 @@ SlotReward300Func: ; 37702 (d:7702) call PrintText ld a, (SFX_1f_3b - SFX_Headers_1f) / 3 call PlaySound - call GenRandom + call Random cp $80 ld a, $0 jr c, .skip - ld [$cd4c], a + ld [wcd4c], a .skip ld [W_SUBANIMSUBENTRYADDR], a ld b, $14 @@ -594,7 +593,7 @@ YeahText: ; 37722 (d:7722) db $0a, "@" SlotMachine_37728: ; 37728 (d:7728) - ld hl, $c4ba + ld hl, wTileMap + $11a ld a, [wTrainerScreenX] add $25 ld [hli], a @@ -606,38 +605,37 @@ SlotMachine_37728: ; 37728 (d:7728) ld [hli], a inc a ld [hl], a - ld hl, $c4f2 + ld hl, wTileMap + $152 ld [hl], $ee ret SlotMachine_37741: ; 37741 (d:7741) - ld hl, $cd4b - ld a, [$cd50] + ld hl, wcd4b + ld a, [wcd50] ld [hld], a xor a ld [hli], a - ld de, $d5a5 + ld de, wPlayerCoins + 1 ld c, $2 - ld a, $c - call Predef + predef SubBCDPredef SlotMachine_37754: ; 37754 (d:7754) - ld hl, $c3b9 + ld hl, wTileMap + $19 ld de, wPlayerCoins ld c, $2 jp PrintBCDNumber SlotMachine_3775f: ; 3775f (d:775f) - ld hl, $c3bf - ld de, $cd4a + ld hl, wTileMap + $1f + ld de, wcd4a ld bc, $8204 jp PrintNumber SlotMachine_3776b: ; 3776b (d:776b) ld a, $1 - ld [$c002], a + ld [wc002], a call WaitForSoundToFinish - ld hl, $cd46 + ld hl, wcd46 xor a ld [hli], a inc a @@ -645,23 +643,22 @@ SlotMachine_3776b: ; 3776b (d:776b) ld a, $5 ld [W_SUBANIMTRANSFORM], a .loop - ld a, [$cd4b] + ld a, [wcd4b] ld l, a - ld a, [$cd4a] + ld a, [wcd4a] ld h, a or l ret z ld de, $ffff add hl, de ld a, l - ld [$cd4b], a + ld [wcd4b], a ld a, h - ld [$cd4a], a - ld hl, $cd47 - ld de, $d5a5 + ld [wcd4a], a + ld hl, wcd47 + ld de, wPlayerCoins + 1 ld c, $2 - ld a, $b - call Predef + predef AddBCDPredef call SlotMachine_37754 call SlotMachine_3775f ld a, (SFX_1f_65 - SFX_Headers_1f) / 3 @@ -686,35 +683,35 @@ SlotMachine_3776b: ; 3776b (d:776b) SlotMachine_377ce: ; 377ce (d:77ce) ld a, $23 - ld [$d08a], a + ld [wd08a], a jr SlotMachine_377e3 SlotMachine_377d5: ; 377d5 (d:77d5) ld a, $14 - ld [$d08a], a - ld a, [$cd50] + ld [wd08a], a + ld a, [wcd50] dec a jr z, SlotMachine_377fb dec a jr z, SlotMachine_377ef SlotMachine_377e3: ; 377e3 (d:77e3) - ld hl, $c3cb + ld hl, wTileMap + $2b call SlotMachine_377fe - ld hl, $c46b + ld hl, wTileMap + $cb call SlotMachine_377fe SlotMachine_377ef: ; 377ef (d:77ef) - ld hl, $c3f3 + ld hl, wTileMap + $53 call SlotMachine_377fe - ld hl, $c443 + ld hl, wTileMap + $a3 call SlotMachine_377fe SlotMachine_377fb: ; 377fb (d:77fb) - ld hl, $c41b + ld hl, wTileMap + $7b SlotMachine_377fe: ; 377fe (d:77fe) - ld a, [$d08a] + ld a, [wd08a] ld [hl], a ld bc, $000d add hl, bc @@ -739,7 +736,7 @@ SlotMachine_37813: ; 37813 (d:7813) SlotMachine_37823: ; 37823 (d:7823) ld bc, SlotMachineWheel2 ld de, wTrainerFacingDirection - ld hl, $c330 + ld hl, wOAMBuffer + $30 ld a, $50 ld [W_BASECOORDX], a jr SlotMachine_37841 @@ -747,7 +744,7 @@ SlotMachine_37823: ; 37823 (d:7823) SlotMachine_37833: ; 37833 (d:7833) ld bc, SlotMachineWheel3 ld de, wTrainerScreenY - ld hl, $c360 + ld hl, wOAMBuffer + $60 ld a, $70 ld [W_BASECOORDX], a @@ -799,17 +796,17 @@ SlotMachine_3784e: ; 3784e (d:784e) SlotMachine_37882: ; 37882 (d:7882) call DelayFrame - call GetJoypadStateLowSensitivity + call JoypadLowSensitivity ld a, [$ffb5] and $1 ret z ld hl, wTrainerSpriteOffset ld a, [hl] dec a - ld de, $cd4d + ld de, wcd4d jr z, .skip dec a - ld de, $cd4e + ld de, wcd4e jr z, .skip .loop inc [hl] @@ -824,18 +821,18 @@ SlotMachine_37882: ; 37882 (d:7882) LoadSlotMachineTiles: ; 378a8 (d:78a8) call DisableLCD ld hl, SlotMachineTiles2 - ld de, $8000 - ld bc, $01c0 + ld de, vChars0 + ld bc, $1c0 ld a, BANK(SlotMachineTiles2) call FarCopyData2 ld hl, SlotMachineTiles1 - ld de, $9000 - ld bc, $0250 + ld de, vChars2 + ld bc, $250 ld a, BANK(SlotMachineTiles1) call FarCopyData2 ld hl, SlotMachineTiles2 - ld de, $9250 - ld bc, $01c0 + ld de, vChars2 + $250 + ld bc, $1c0 ld a, BANK(SlotMachineTiles2) call FarCopyData2 ld hl, SlotMachineMap diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm index 113a55a8..10c5fad4 100755 --- a/engine/titlescreen.asm +++ b/engine/titlescreen.asm @@ -5,21 +5,21 @@ CopyFixedLengthText: ; 42b1 (1:42b1) SetDefaultNamesBeforeTitlescreen: ; 42b7 (1:42b7) ld hl, NintenText - ld de, W_PLAYERNAME ; $d158 + ld de, wPlayerName ; wd158 call CopyFixedLengthText ld hl, SonyText - ld de, W_RIVALNAME ; $d34a + ld de, W_RIVALNAME ; wd34a call CopyFixedLengthText xor a ld [$ffb0], a - ld [$d358], a - ld hl, $d732 + ld [wd358], a + ld hl, wd732 ld [hli], a ld [hli], a ld [hl], a - ld a, Bank(Func_7d8ea) - ld [$c0ef], a - ld [$c0f0], a + ld a, BANK(Music_TitleScreen) + ld [wc0ef], a + ld [wc0f0], a LoadTitlescreenGraphics: ; 42dd (1:42dd) call GBPalWhiteOut @@ -36,40 +36,39 @@ LoadTitlescreenGraphics: ; 42dd (1:42dd) call DisableLCD call LoadFontTilePatterns ld hl, NintendoCopyrightLogoGraphics ; $60c8 - ld de, $9410 + ld de, vTitleLogo2 + $100 ld bc, $50 ld a, BANK(NintendoCopyrightLogoGraphics) call FarCopyData2 ld hl, GamefreakLogoGraphics ; $61f8 - ld de, $9460 + ld de, vTitleLogo2 + $100 + $50 ld bc, $90 ld a, BANK(GamefreakLogoGraphics) call FarCopyData2 ld hl, PokemonLogoGraphics ; $5380 - ld de, $8800 + ld de, vTitleLogo ld bc, $600 ld a, BANK(PokemonLogoGraphics) call FarCopyData2 ; first chunk ld hl, PokemonLogoGraphics+$600 ; $5980 - ld de, $9310 + ld de, vTitleLogo2 ld bc, $100 ld a, BANK(PokemonLogoGraphics) call FarCopyData2 ; second chunk ld hl, Version_GFX ; $402f IF _RED - ld de,$9600 ; where to put redgreenversion.2bpp in the VRAM - ld bc,$50 ; how big that file is + ld de,vChars2 + $600 + ld bc,$50 ENDC IF _BLUE - ld de,$9610 ; where to put blueversion.2bpp in the VRAM - ld bc,$40 ; how big that file is + ld de,vChars2 + $600 + $10 + ld bc,$50 - $10 ENDC ld a, BANK(Version_GFX) call FarCopyDataDouble call Func_4519 - FuncCoord 2, 1 ; $c3b6 - ld hl, Coord + hlCoord 2, 1 ld a, $80 ld de, $14 ld c, $6 @@ -85,8 +84,7 @@ ENDC add hl, de dec c jr nz, .asm_434d - FuncCoord 2, 7 ; $c42e - ld hl, Coord + hlCoord 2, 7 ld a, $31 ld b, $10 .asm_4361 @@ -95,11 +93,10 @@ ENDC dec b jr nz, .asm_4361 call Func_44dd - ld hl, $c328 + ld hl, wOAMBuffer + $28 ld a, $74 ld [hl], a - FuncCoord 2, 17 ; $c4f6 - ld hl, Coord + hlCoord 2, 17 ld de, .titlescreenTilemap ; $437f ld b, $10 .asm_4377 @@ -124,7 +121,7 @@ IF _BLUE ld a,SQUIRTLE ; which Pokemon to show first on the title screen ENDC - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade call Func_4524 ld a, $9b call Func_4533 @@ -206,10 +203,10 @@ ENDC call Delay3 call WaitForSoundToFinish ld a, MUSIC_TITLE_SCREEN - ld [$c0ee], a + ld [wc0ee], a call PlaySound xor a - ld [$cc5b], a + ld [wcc5b], a .asm_443b ld c, $c8 call CheckForUserInterruption @@ -222,11 +219,11 @@ ENDC call Func_4496 jr .asm_443b .asm_4459 - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade call PlayCry call WaitForSoundToFinish call GBPalWhiteOutWithDelay3 - call CleanLCD_OAM + call ClearSprites xor a ld [$ffb0], a inc a @@ -238,7 +235,7 @@ ENDC call Func_4533 call Delay3 call LoadGBPal - ld a, [H_CURRENTPRESSEDBUTTONS] + ld a, [hJoyHeld] ld b, a and $46 cp $46 @@ -256,14 +253,14 @@ Func_4496: ; 4496 (1:4496) .new ; Generate a new TitleMon. - call GenRandom + call Random and $f ld c, a ld b, 0 ld hl, TitleMons add hl, bc ld a, [hl] - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade ; Can't be the same as before. cp [hl] @@ -275,12 +272,12 @@ Func_4496: ; 4496 (1:4496) ld a, $90 ld [$ffb0], a ld d, 1 ; scroll out - callba TitleScroll ; indirect jump to TitleScroll (37258 (d:7258)) + callba TitleScroll ret Func_44c1: ; 44c1 (1:44c1) ld d, 0 ; scroll in - callba TitleScroll ; indirect jump to TitleScroll (37258 (d:7258)) + callba TitleScroll xor a ld [$ffb0], a ret @@ -302,13 +299,13 @@ Func_44cf: ; 44cf (1:44cf) Func_44dd: ; 44dd (1:44dd) ld hl, PlayerCharacterTitleGraphics ; $66a8 - ld de, $8000 + ld de, vSprites ld bc, $230 ld a, BANK(PlayerCharacterTitleGraphics) call FarCopyData2 - call CleanLCD_OAM + call ClearSprites xor a - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade ld hl, wOAMBuffer ld de, $605a ld b, $7 @@ -322,10 +319,10 @@ Func_44dd: ; 44dd (1:44dd) ld [hli], a add $8 ld e, a - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade ld [hli], a inc a - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade inc hl dec c jr nz, .asm_44fd @@ -338,16 +335,15 @@ Func_44dd: ; 44dd (1:44dd) ret Func_4519: ; 4519 (1:4519) - ld hl, $9800 + ld hl, vBGMap0 ld bc, $800 ld a, $7f jp FillMemory Func_4524: ; 4524 (1:4524) - ld [$cf91], a - ld [$d0b5], a - FuncCoord 5, 10 ; $c46d - ld hl, Coord + ld [wcf91], a + ld [wd0b5], a + hlCoord 5, 10 call GetMonHeader jp LoadFrontSpriteByMonIndex @@ -363,11 +359,10 @@ LoadCopyrightAndTextBoxTiles: ; 4538 (1:4538) LoadCopyrightTiles: ; 4541 (1:4541) ld de, NintendoCopyrightLogoGraphics ; $60c8 - ld hl, $9600 + ld hl, vChars2 + $600 ld bc, (BANK(NintendoCopyrightLogoGraphics) << 8) + $1c call CopyVideoData - FuncCoord 2, 7 ; $c42e - ld hl, Coord + hlCoord 2, 7 ld de, CopyrightTextString ; $4556 jp PlaceString @@ -381,8 +376,7 @@ INCLUDE "data/title_mons.asm" ; prints version text (red, blue) PrintGameVersionOnTitleScreen: ; 4598 (1:4598) - FuncCoord 7, 8 ; $c447 - ld hl, Coord + hlCoord 7, 8 ld de, VersionOnTitleScreenText jp PlaceString diff --git a/engine/titlescreen2.asm b/engine/titlescreen2.asm index f81d8bb8..dc1c633a 100755 --- a/engine/titlescreen2.asm +++ b/engine/titlescreen2.asm @@ -89,7 +89,7 @@ TitleBallYTable: ; 372a0 (d:72a0) Func_372ac: ; 372ac (d:72ac) ; Animate the TitleBall if a starter just got scrolled out. - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade cp STARTER1 jr z, .ok cp STARTER2 @@ -115,6 +115,6 @@ GetTitleBallY: ; 372c4 (d:72c4) pop de and a ret z - ld [$c328], a + ld [wOAMBuffer + $28], a inc e ret diff --git a/engine/town_map.asm b/engine/town_map.asm index db12c18f..2cd37284 100755 --- a/engine/town_map.asm +++ b/engine/town_map.asm @@ -1,30 +1,29 @@ DisplayTownMap: ; 70e3e (1c:4e3e) call LoadTownMap - ld hl, $cfcb + ld hl, wcfcb ld a, [hl] push af ld [hl], $ff push hl ld a, $1 ld [$ffb7], a - ld a, [W_CURMAP] ; $d35e + ld a, [W_CURMAP] ; W_CURMAP push af ld b, $0 call Func_711c4 - FuncCoord 1, 0 ; $c3a1 - ld hl, Coord - ld de, $cd6d + hlCoord 1, 0 + ld de, wcd6d call PlaceString ld hl, wOAMBuffer ld de, wTileMapBackup ld bc, $10 call CopyData - ld hl, $8040 + ld hl, vSprites + $40 ld de, TownMapCursor ; $4f40 ld bc, (BANK(TownMapCursor) << 8) + $04 call CopyVideoDataDouble xor a - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade pop af jr Func_70e92 @@ -33,41 +32,40 @@ Func_70e7e: ; 70e7e (1c:4e7e) ld bc, $114 call ClearScreenArea ld hl, TownMapOrder ; $4f11 - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade ld c, a ld b, $0 add hl, bc ld a, [hl] Func_70e92: ; 70e92 (1c:4e92) - ld de, $cee9 + ld de, wHPBarMaxHP call Func_712f1 ld a, [de] push hl call Func_71258 ld a, $4 - ld [$cd5b], a - ld hl, $c310 + ld [wcd5b], a + ld hl, wOAMBuffer + $10 call Func_71279 pop hl - ld de, $cd6d + ld de, wcd6d .asm_70eac ld a, [hli] ld [de], a inc de cp $50 jr nz, .asm_70eac - FuncCoord 1, 0 ; $c3a1 - ld hl, Coord - ld de, $cd6d + hlCoord 1, 0 + ld de, wcd6d call PlaceString - ld hl, $c310 - ld de, $c518 + ld hl, wOAMBuffer + $10 + ld de, wTileMapBackup + 16 ld bc, $10 call CopyData .asm_70ec8 call Func_716c6 - call GetJoypadStateLowSensitivity + call JoypadLowSensitivity ld a, [$ffb5] ld b, a and $c3 @@ -79,31 +77,31 @@ Func_70e92: ; 70e92 (1c:4e92) bit 7, b jr nz, .asm_70f01 xor a - ld [$d09b], a + ld [wd09b], a ld [$ffb7], a - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM call Func_711ab pop hl pop af ld [hl], a ret .asm_70ef2 - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade inc a cp $2f jr nz, .asm_70efb xor a .asm_70efb - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade jp Func_70e7e .asm_70f01 - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade dec a cp $ff jr nz, .asm_70f0b ld a, $2e .asm_70f0b - ld [wWhichTrade], a ; $cd3d + ld [wWhichTrade], a ; wWhichTrade jp Func_70e7e INCLUDE "data/town_map_order.asm" @@ -113,15 +111,14 @@ TownMapCursor: ; 70f40 (1c:4f40) LoadTownMap_Nest: ; 70f60 (1c:4f60) call LoadTownMap - ld hl, $cfcb + ld hl, wcfcb ld a, [hl] push af ld [hl], $ff push hl call Func_711ef call GetMonName - FuncCoord 1, 0 ; $c3a1 - ld hl, Coord + hlCoord 1, 0 call PlaceString ld h, b ld l, c @@ -138,20 +135,20 @@ MonsNestText: ; 70f89 (1c:4f89) db "'s NEST@" LoadTownMap_Fly: ; 70f90 (1c:4f90) - call CleanLCD_OAM + call ClearSprites call LoadTownMap call LoadPlayerSpriteGraphics call LoadFontTilePatterns ld de, BirdSprite ; $4d80 - ld hl, $8040 + ld hl, vSprites + $40 ld bc, (BANK(BirdSprite) << 8) + $0c call CopyVideoData ld de, TownMapUpArrow ; $5093 - ld hl, $8ed0 + ld hl, vChars1 + $6d0 ld bc, (BANK(TownMapUpArrow) << 8) + $01 call CopyVideoDataDouble call Func_71070 - ld hl, $cfcb + ld hl, wcfcb ld a, [hl] push af ld [hl], $ff @@ -159,43 +156,38 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) ld hl, wTileMap ld de, ToText call PlaceString - ld a, [W_CURMAP] ; $d35e + ld a, [W_CURMAP] ; W_CURMAP ld b, $0 call Func_711c4 - ld hl, $cd3e - FuncCoord 18, 0 ; $c3b2 - ld de, Coord + ld hl, wTrainerEngageDistance + deCoord 18, 0 .townMapFlyLoop ld a, $7f ld [de], a push hl push hl - FuncCoord 3, 0 ; $c3a3 - ld hl, Coord + hlCoord 3, 0 ld bc, $10f call ClearScreenArea pop hl ld a, [hl] ld b, $4 call Func_711c4 - FuncCoord 3, 0 ; $c3a3 - ld hl, Coord - ld de, $cd6d + hlCoord 3, 0 + ld de, wcd6d call PlaceString ld c, $f call DelayFrames - FuncCoord 18, 0 ; $c3b2 - ld hl, Coord + hlCoord 18, 0 ld [hl], $ed - FuncCoord 19, 0 ; $c3b3 - ld hl, Coord + hlCoord 19, 0 ld [hl], $ee pop hl .asm_71004 push hl call DelayFrame - call GetJoypadStateLowSensitivity + call JoypadLowSensitivity ld a, [$ffb5] ld b, a pop hl @@ -214,22 +206,21 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) ld a, (SFX_02_3e - SFX_Headers_02) / 3 call PlaySound ld a, [hl] - ld [$d71a], a - ld hl, $d732 + ld [wd71a], a + ld hl, wd732 set 3, [hl] inc hl set 7, [hl] .asm_71037 xor a - ld [$d09b], a + ld [wd09b], a call GBPalWhiteOutWithDelay3 pop hl pop af ld [hl], a ret .asm_71042 - FuncCoord 18, 0 ; $c3b2 - ld de, Coord + deCoord 18, 0 inc hl ld a, [hl] cp $ff @@ -238,11 +229,10 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) jr z, .asm_71042 jp .townMapFlyLoop .asm_71052 - ld hl, $cd3e + ld hl, wTrainerEngageDistance jp .townMapFlyLoop .asm_71058 - FuncCoord 19, 0 ; $c3b3 - ld de, Coord + deCoord 19, 0 dec hl ld a, [hl] cp $ff @@ -251,19 +241,19 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) jr z, .asm_71058 jp .townMapFlyLoop .asm_71068 - ld hl, $cd49 + ld hl, wcd49 jr .asm_71058 ToText: ; 7106d (1c:506d) db "To@" Func_71070: ; 71070 (1c:5070) - ld hl, wWhichTrade ; $cd3d + ld hl, wWhichTrade ; wWhichTrade ld [hl], $ff inc hl - ld a, [$d70b] + ld a, [W_TOWNVISITEDFLAG] ld e, a - ld a, [$d70c] + ld a, [W_TOWNVISITEDFLAG + 1] ld d, a ld bc, $b .asm_71081 @@ -294,12 +284,12 @@ LoadTownMap: ; 7109b (1c:509b) call TextBoxBorder call DisableLCD ld hl, WorldMapTileGraphics ; $65a8 - ld de, $9600 + ld de, vChars2 + $600 ld bc, $100 ld a, BANK(WorldMapTileGraphics) call FarCopyData2 ld hl, MonNestIcon ; $56be - ld de, $8040 + ld de, vSprites + $40 ld bc, $8 ld a, BANK(MonNestIcon) call FarCopyDataDouble @@ -329,9 +319,9 @@ LoadTownMap: ; 7109b (1c:509b) call Delay3 call GBPalNormal xor a - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM inc a - ld [$d09b], a + ld [wd09b], a ret CompressedMap: ; 71100 (1c:5100) @@ -340,10 +330,10 @@ CompressedMap: ; 71100 (1c:5100) Func_711ab: ; 711ab (1c:51ab) xor a - ld [$d09b], a + ld [wd09b], a call GBPalWhiteOut call ClearScreen - call CleanLCD_OAM + call ClearSprites call LoadPlayerSpriteGraphics call LoadFontTilePatterns call UpdateSprites @@ -352,16 +342,16 @@ Func_711ab: ; 711ab (1c:51ab) Func_711c4: ; 711c4 (1c:51c4) push af ld a, b - ld [$cd5b], a + ld [wcd5b], a pop af - ld de, $cee9 + ld de, wHPBarMaxHP call Func_712f1 ld a, [de] push hl call Func_71258 call Func_7126d pop hl - ld de, $cd6d + ld de, wcd6d .asm_711dc ld a, [hli] ld [de], a @@ -377,7 +367,7 @@ Func_711ef: ; 711ef (1c:51ef) callba Func_e9cb call Func_712d9 ld hl, wOAMBuffer - ld de, $cee9 + ld de, wHPBarMaxHP .asm_71200 ld a, [de] cp $ff @@ -402,18 +392,16 @@ Func_711ef: ; 711ef (1c:51ef) ld a, l and a jr nz, .asm_71236 - FuncCoord 1, 7 ; $c42d - ld hl, Coord + hlCoord 1, 7 ld b, $2 ld c, $f call TextBoxBorder - FuncCoord 2, 9 ; $c456 - ld hl, Coord + hlCoord 2, 9 ld de, AreaUnknownText call PlaceString jr .asm_7123e .asm_71236 - ld a, [W_CURMAP] ; $d35e + ld a, [W_CURMAP] ; W_CURMAP ld b, $0 call Func_711c4 .asm_7123e @@ -442,11 +430,11 @@ Func_71258: ; 71258 (1c:5258) ret Func_7126d: ; 7126d (1c:526d) - ld a, [$cd5b] + ld a, [wcd5b] and a - ld hl, $c390 + ld hl, wOAMBuffer + $90 jr z, Func_71279 - ld hl, $c380 + ld hl, wOAMBuffer + $80 Func_71279: ; 71279 (1c:5279) push hl @@ -466,10 +454,10 @@ Func_71281: ; 71281 (1c:5281) ld [hli], a ld a, c ld [hli], a - ld a, [$cd5b] + ld a, [wcd5b] ld [hli], a inc a - ld [$cd5b], a + ld [wcd5b], a xor a ld [hli], a inc d @@ -489,7 +477,7 @@ Func_71281: ; 71281 (1c:5281) Func_712a6: ; 712a6 (1c:52a6) xor a - ld [$cd5c], a + ld [wcd5c], a ld de, $202 .asm_712ad push de @@ -499,12 +487,12 @@ Func_712a6: ; 712a6 (1c:52a6) ld [hli], a ld a, c ld [hli], a - ld a, [$cd5b] + ld a, [wcd5b] ld [hli], a - ld a, [$cd5c] + ld a, [wcd5c] ld [hli], a xor $20 - ld [$cd5c], a + ld [wcd5c], a inc d ld a, $8 add c @@ -514,7 +502,7 @@ Func_712a6: ; 712a6 (1c:52a6) pop bc pop de push hl - ld hl, $cd5b + ld hl, wcd5b inc [hl] inc [hl] pop hl @@ -526,7 +514,7 @@ Func_712a6: ; 712a6 (1c:52a6) ret Func_712d9: ; 712d9 (1c:52d9) - ld de, $cee9 + ld de, wHPBarMaxHP .asm_712dc ld a, [de] inc de @@ -583,7 +571,7 @@ MonNestIcon: ; 716be (1c:56be) INCBIN "gfx/mon_nest_icon.1bpp" Func_716c6: ; 716c6 (1c:56c6) - ld a, [W_SUBANIMTRANSFORM] ; $d08b + ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM inc a cp $19 jr z, .asm_716e1 @@ -606,5 +594,5 @@ Func_716c6: ; 716c6 (1c:56c6) jr nz, .asm_716e9 ld a, $19 .asm_716f1 - ld [W_SUBANIMTRANSFORM], a ; $d08b + ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM jp DelayFrame diff --git a/engine/trade.asm b/engine/trade.asm index fa579cc7..54abdab6 100755 --- a/engine/trade.asm +++ b/engine/trade.asm @@ -1,27 +1,27 @@ Func_410e2: ; 410e2 (10:50e2) - ld a, [wWhichTrade] ; $cd3d - ld [$cd5e], a + ld a, [wWhichTrade] ; wWhichTrade + ld [wcd5e], a ld a, [wTrainerEngageDistance] - ld [$cd5f], a + ld [wcd5f], a ld de, PointerIDs_41138 ; $5138 jr Func_41102 Func_410f3: ; 410f3 (10:50f3) ld a, [wTrainerEngageDistance] - ld [$cd5e], a + ld [wcd5e], a ld a, [wTrainerSpriteOffset] - ld [$cd5f], a + ld [wcd5f], a ld de, PointerIDs_41149 Func_41102: ; 41102 (10:5102) - ld a, [W_OPTIONS] ; $d355 + ld a, [W_OPTIONS] ; W_OPTIONS push af ld a, [$ffaf] push af ld a, [$ffae] push af xor a - ld [W_OPTIONS], a ; $d355 + ld [W_OPTIONS], a ; W_OPTIONS ld [$ffaf], a ld [$ffae], a push de @@ -49,7 +49,7 @@ Func_41102: ; 41102 (10:5102) pop af ld [$ffaf], a pop af - ld [W_OPTIONS], a ; $d355 + ld [W_OPTIONS], a ; W_OPTIONS ret ; these bytes refer to the $00th through $10th pointer of PointerTable_4115f @@ -104,25 +104,25 @@ LoadTradingGFXAndMonNames: ; 411a1 (10:51a1) call Func_41196 call DisableLCD ld hl, TradingAnimationGraphics ; $69be - ld de, $9310 + ld de, vChars2 + $310 ld bc, $310 ld a, BANK(TradingAnimationGraphics) call FarCopyData2 ld hl, TradingAnimationGraphics2 ; $6cce - ld de, $87c0 + ld de, vSprites + $7c0 ld bc, $40 ld a, BANK(TradingAnimationGraphics2) call FarCopyData2 - ld hl, $9800 + ld hl, vBGMap0 ld bc, $800 ld a, $7f call FillMemory - call CleanLCD_OAM + call ClearSprites ld a, $ff - ld [$cfcb], a - ld hl, $d730 + ld [wcfcb], a + ld hl, wd730 set 6, [hl] - ld a, [$cf1b] + ld a, [wcf1b] and a ld a, $e4 jr z, .asm_411e5 @@ -132,15 +132,15 @@ LoadTradingGFXAndMonNames: ; 411a1 (10:51a1) call EnableLCD xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld a, [wWhichTrade] ; $cd3d - ld [$d11e], a + ld a, [wWhichTrade] ; wWhichTrade + ld [wd11e], a call GetMonName - ld hl, $cd6d - ld de, $cf4b + ld hl, wcd6d + ld de, wcf4b ld bc, $b call CopyData - ld a, [$cd3e] - ld [$d11e], a + ld a, [wTrainerEngageDistance] + ld [wd11e], a jp GetMonName Func_4120b: ; 4120b (10:520b) @@ -151,12 +151,12 @@ Func_4120b: ; 4120b (10:520b) jp Bankswitch Func_41217: ; 41217 (10:5217) - ld hl, W_PLAYERNAME + ld hl, wPlayerName ld de, wHPBarMaxHP ld bc, $000b call CopyData ld hl, W_GRASSRATE - ld de, W_PLAYERNAME + ld de, wPlayerName ld bc, $000b call CopyData ld hl, wHPBarMaxHP @@ -167,7 +167,7 @@ Func_41217: ; 41217 (10:5217) Func_4123b: ; 4123b (10:523b) xor a call LoadGBPal - ld hl, $d730 + ld hl, wd730 res 6, [hl] ret @@ -181,8 +181,7 @@ Func_41245: ; 41245 (10:5245) ld [$ffae], a xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - FuncCoord 4, 0 ; $c3a4 - ld hl, Coord + hlCoord 4, 0 ld b, $6 ld c, $a call TextBoxBorder @@ -190,7 +189,7 @@ Func_41245: ; 41245 (10:5245) ld b, $98 call CopyScreenTileBufferToVRAM call ClearScreen - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade call Func_415a4 ld a, $7e .asm_41273 @@ -208,7 +207,7 @@ Func_41245: ; 41245 (10:5245) call Func_41676 ld a, $aa call Func_41676 - ld a, [wWhichTrade] ; $cd3d + ld a, [wWhichTrade] ; wWhichTrade call PlayCry xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba @@ -220,15 +219,14 @@ Func_41298: ; 41298 (10:5298) call CopyScreenTileBufferToVRAM ld b, $8 call GoPAL_SET - ld hl, $9c8c + ld hl, vBGMap1 + $8c call Func_414ae ld a, $a0 ld [$ffae], a call DelayFrame ld a, $8b ld [rLCDC], a ; $ff40 - FuncCoord 6, 2 ; $c3ce - ld hl, Coord + hlCoord 6, 2 ld b, $7 call Func_41842 call Func_41186 @@ -251,18 +249,18 @@ Func_412d2: ; 412d2 (10:52d2) ld a, $e4 ld [rOBP0], a ; $ff48 xor a - ld [$d09f], a + ld [wd09f], a ld bc, $2060 .asm_412e7 push bc xor a ld de, UnknownOAM_4132e ; $532e call WriteOAMBlock - ld a, [$d09f] + ld a, [wd09f] xor $1 - ld [$d09f], a + ld [wd09f], a add $7e - ld hl, $c302 + ld hl, wOAMBuffer + $02 ld de, $4 ld c, e .asm_41300 @@ -281,7 +279,7 @@ Func_412d2: ; 412d2 (10:52d2) call PlaySound jr .asm_412e7 .asm_41318 - call CleanLCD_OAM + call ClearSprites ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba call ClearScreen @@ -300,8 +298,7 @@ Func_41336: ; 41336 (10:5336) ld a, $ac call Func_41676 call Func_415c8 - FuncCoord 4, 10 ; $c46c - ld hl, Coord + hlCoord 4, 10 ld b, $6 ld c, $a call TextBoxBorder @@ -309,17 +306,16 @@ Func_41336: ; 41336 (10:5336) call Func_41186 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] call Func_415a4 ld a, $ad call Func_41676 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld a, [$cd3e] + ld a, [wTrainerEngageDistance] call PlayCry call Func_41181 - FuncCoord 4, 10 ; $c46c - ld hl, Coord + hlCoord 4, 10 ld bc, $80c call ClearScreenArea jp PrintTradeTakeCareText @@ -327,20 +323,20 @@ Func_41336: ; 41336 (10:5336) Func_41376: ; 41376 (10:5376) call Func_41411 ld a, $1 - ld [$d08a], a + ld [wd08a], a ld a, $e4 ld [rOBP0], a ; $ff48 ld a, $54 - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld a, $1c - ld [W_BASECOORDY], a ; $d082 - ld a, [$cd5e] - ld [$cd5d], a + ld [W_BASECOORDY], a ; wd082 + ld a, [wcd5e] + ld [wcd5d], a call Func_41505 call Func_4142d call Func_41186 call Func_4149f - ld hl, $9c8c + ld hl, vBGMap1 + $8c call Func_414ae ld b, $6 call Func_414c5 @@ -355,23 +351,23 @@ Func_41376: ; 41376 (10:5376) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba call Func_41525 - jp CleanLCD_OAM + jp ClearSprites Func_413c6: ; 413c6 (10:53c6) call Func_41411 xor a - ld [$d08a], a + ld [wd08a], a ld a, $64 - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld a, $44 - ld [W_BASECOORDY], a ; $d082 - ld a, [$cd5f] - ld [$cd5d], a + ld [W_BASECOORDY], a ; wd082 + ld a, [wcd5f] + ld [wcd5d], a call Func_41505 call Func_4145c call Func_41186 call Func_4149f - ld hl, $9c94 + ld hl, vBGMap1 + $94 call Func_414ae call Func_41525 ld b, $6 @@ -386,7 +382,7 @@ Func_413c6: ; 413c6 (10:53c6) call Func_414c5 xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - jp CleanLCD_OAM + jp ClearSprites Func_41411: ; 41411 (10:5411) ld a, $1 @@ -406,8 +402,7 @@ Func_41411: ; 41411 (10:5411) Func_4142d: ; 4142d (10:542d) call Func_41196 - FuncCoord 11, 4 ; $c3fb - ld hl, Coord + hlCoord 11, 4 ld a, $5d ld [hli], a ld a, $5e @@ -416,25 +411,21 @@ Func_4142d: ; 4142d (10:542d) ld [hli], a dec c jr nz, .asm_4143a - FuncCoord 5, 3 ; $c3e1 - ld hl, Coord + hlCoord 5, 3 ld b, $6 call Func_41842 - FuncCoord 4, 12 ; $c494 - ld hl, Coord + hlCoord 4, 12 ld b, $2 ld c, $7 call TextBoxBorder - FuncCoord 5, 14 ; $c4bd - ld hl, Coord - ld de, W_PLAYERNAME ; $d158 + hlCoord 5, 14 + ld de, wPlayerName ; wd158 call PlaceString jp DelayFrame Func_4145c: ; 4145c (10:545c) call Func_41196 - FuncCoord 0, 4 ; $c3f0 - ld hl, Coord + hlCoord 0, 4 ld a, $5e ld c, $e .asm_41466 @@ -458,25 +449,21 @@ Func_4145c: ; 4145c (10:545c) ld [hld], a ld a, $5d ld [hl], a - FuncCoord 7, 8 ; $c447 - ld hl, Coord + hlCoord 7, 8 ld b, $6 call Func_41842 - FuncCoord 6, 0 ; $c3a6 - ld hl, Coord + hlCoord 6, 0 ld b, $2 ld c, $7 call TextBoxBorder - FuncCoord 7, 2 ; $c3cf - ld hl, Coord - ld de, W_GRASSRATE ; $d887 + hlCoord 7, 2 + ld de, W_GRASSRATE ; W_GRASSRATE call PlaceString jp DelayFrame Func_4149f: ; 4149f (10:549f) call Func_41196 - FuncCoord 0, 4 ; $c3f0 - ld hl, Coord + hlCoord 0, 4 ld a, $5e ld c, $14 .asm_414a9 @@ -487,12 +474,11 @@ Func_4149f: ; 4149f (10:549f) Func_414ae: ; 414ae (10:54ae) push hl - FuncCoord 0, 4 ; $c3f0 - ld hl, Coord + hlCoord 0, 4 call ScheduleRowRedrawHelper pop hl ld a, h - ld [$ffd2], a + ld [H_SCREENEDGEREDRAWADDR + 1], a ld a, l ld [H_SCREENEDGEREDRAWADDR], a ; $ffd1 ld a, $2 @@ -501,7 +487,7 @@ Func_414ae: ; 414ae (10:54ae) jp DelayFrames Func_414c5: ; 414c5 (10:54c5) - ld a, [$d08a] + ld a, [wd08a] ld e, a ld d, $8 .asm_414cb @@ -531,7 +517,7 @@ Func_414e8: ; 414e8 (10:54e8) ld a, [rBGP] ; $ff47 xor $3c ld [rBGP], a ; $ff47 - ld hl, $c302 + ld hl, wOAMBuffer + $02 ld de, $4 ld c, $14 .asm_414f9 @@ -554,10 +540,10 @@ Func_41510: ; 41510 (10:5510) ld hl, wOAMBuffer ld c, $14 .asm_41515 - ld a, [W_BASECOORDY] ; $d082 + ld a, [W_BASECOORDY] ; wd082 add [hl] ld [hli], a - ld a, [W_BASECOORDX] ; $d081 + ld a, [W_BASECOORDX] ; wd081 add [hl] ld [hli], a inc hl @@ -567,7 +553,7 @@ Func_41510: ; 41510 (10:5510) ret Func_41525: ; 41525 (10:5525) - ld a, [$d08a] + ld a, [wd08a] and a jr z, .asm_41536 ld bc, $400 @@ -580,9 +566,9 @@ Func_41525: ; 41525 (10:5525) ld bc, $fc00 .asm_4153f ld a, b - ld [W_BASECOORDX], a ; $d081 + ld [W_BASECOORDX], a ; wd081 ld a, c - ld [W_BASECOORDY], a ; $d082 + ld [W_BASECOORDY], a ; wd082 ld d, $4 .asm_41549 call Func_41510 @@ -645,9 +631,9 @@ UnknownOAM_4159c: ; 4159c (10:559c) db $39,$70,$38,$70 Func_415a4: ; 415a4 (10:55a4) - ld [$cf91], a - ld [$d0b5], a - ld [$cf1d], a + ld [wcf91], a + ld [wd0b5], a + ld [wcf1d], a ld b, $b ld c, $0 call GoPAL_SET @@ -655,8 +641,7 @@ Func_415a4: ; 415a4 (10:55a4) xor $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba call GetMonHeader - FuncCoord 7, 2 ; $c3cf - ld hl, Coord + hlCoord 7, 2 call LoadFlippedFrontSpriteByMonIndex ld c, $a jp DelayFrames @@ -763,8 +748,7 @@ TradeforText: ; 41671 (10:5671) db "@" Func_41676: ; 41676 (10:5676) - ld [W_ANIMATIONID], a ; $d07c + ld [W_ANIMATIONID], a ; W_ANIMATIONID xor a - ld [$cc5b], a - ld a, $8 - jp Predef ; indirect jump to MoveAnimation (78d5e (1e:4d5e)) + ld [wcc5b], a + predef_jump MoveAnimation diff --git a/engine/trade2.asm b/engine/trade2.asm index 9f793fac..b13a18b6 100755 --- a/engine/trade2.asm +++ b/engine/trade2.asm @@ -1,56 +1,44 @@ Func_42769: ; 42769 (10:6769) - FuncCoord 5,0 - ld hl,Coord + hlCoord 5, 0 ld de,OTString67E5 call PlaceString - ld a,[$CD3D] - ld [$D11E],a - ld a,$3A - call Predef - FuncCoord 9, 0 ; $c3a9 - ld hl,Coord - ld de,$D11E + ld a,[wWhichTrade] + ld [wd11e],a + predef IndexToPokedex + hlCoord 9, 0 + ld de,wd11e ld bc,$8103 call PrintNumber - FuncCoord 5,2 - ld hl,Coord - ld de,$CF4B + hlCoord 5, 2 + ld de,wcf4b call PlaceString - FuncCoord 8,4 - ld hl,Coord - ld de,$CD41 + hlCoord 8, 4 + ld de,wTrainerScreenX call PlaceString - FuncCoord 8, 6 ; $c420 - ld hl,Coord - ld de,$CD4C + hlCoord 8, 6 + ld de,wcd4c ld bc,$8205 jp PrintNumber Func_427a7: ; 427a7 (10:67a7) - FuncCoord 5,10 - ld hl,Coord + hlCoord 5, 10 ld de,OTString67E5 call PlaceString - ld a,[$CD3E] - ld [$D11E],a - ld a,$3A - call Predef - FuncCoord 9, 10 ; $c471 - ld hl,Coord - ld de,$D11E + ld a,[wTrainerEngageDistance] + ld [wd11e],a + predef IndexToPokedex + hlCoord 9, 10 + ld de,wd11e ld bc,$8103 call PrintNumber - FuncCoord 5,12 - ld hl,Coord - ld de,$CD6D + hlCoord 5, 12 + ld de,wcd6d call PlaceString - FuncCoord 8,14 - ld hl,Coord - ld de,$CD4E + hlCoord 8, 14 + ld de,wcd4e call PlaceString - FuncCoord 8, 16 ; $c4e8 - ld hl,Coord - ld de,$CD59 + hlCoord 8, 16 + ld de,wcd59 ld bc,$8205 jp PrintNumber |