From cd649184f556db777d592671a7274bfa4a8423d7 Mon Sep 17 00:00:00 2001 From: "U-Daniel-PC\\Daniel" Date: Fri, 3 Jul 2015 14:37:53 -0500 Subject: Rename/organize part 1 of 4 rename functions, clean up address/wram comments, other misc only broken up so that all changes are viewable on github --- engine/battle/animations.asm | 269 ++++++++++++++++++++++--------------------- 1 file changed, 135 insertions(+), 134 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index dc08e0e1..cdd28422 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -170,7 +170,7 @@ PlayAnimation: ; 780f1 (1e:40f1) ld l,a ld h,0 add hl,hl - ld de,AttackAnimationPointers ; $607d ; animation command stream pointers + ld de,AttackAnimationPointers ; animation command stream pointers add hl,de ld a,[hli] ld h,[hl] @@ -199,7 +199,7 @@ PlayAnimation: ; 780f1 (1e:40f1) ld [wAnimSoundID],a ; store sound push hl push de - call Func_7986f + call GetMoveSound call PlaySound pop de pop hl @@ -383,7 +383,7 @@ MoveAnimation: ; 78d5e (1e:4d5e) push bc push af call WaitForSoundToFinish - call Func_78e23 + call SetAnimationPalette ld a,[W_ANIMATIONID] and a jr z,.AnimationFinished @@ -500,19 +500,19 @@ AnimationShakeScreenHorizontallySlow: ; 78e01 (1e:4e01) push bc push bc .asm_78e03 - ld a, [rWX] ; $ff4b + ld a, [rWX] inc a - ld [rWX], a ; $ff4b - ld c, $2 + ld [rWX], a + ld c, 2 call DelayFrames dec b jr nz, .asm_78e03 pop bc .asm_78e11 - ld a, [rWX] ; $ff4b + ld a, [rWX] dec a - ld [rWX], a ; $ff4b - ld c, $2 + ld [rWX], a + ld c, 2 call DelayFrames dec b jr nz, .asm_78e11 @@ -521,7 +521,7 @@ AnimationShakeScreenHorizontallySlow: ; 78e01 (1e:4e01) jr nz, AnimationShakeScreenHorizontallySlow ret -Func_78e23: ; 78e23 (1e:4e23) +SetAnimationPalette: ; 78e23 (1e:4e23) ld a, [wOnSGB] and a ld a, $e4 @@ -529,7 +529,7 @@ Func_78e23: ; 78e23 (1e:4e23) ld a, $f0 ld [wcc79], a ld b, $e4 - ld a, [W_ANIMATIONID] ; W_ANIMATIONID + ld a, [W_ANIMATIONID] cp TRADE_BALL_DROP_ANIM jr c, .asm_78e3f cp TRADE_BALL_POOF_ANIM + 1 @@ -537,24 +537,24 @@ Func_78e23: ; 78e23 (1e:4e23) ld b, $f0 .asm_78e3f ld a, b - ld [rOBP0], a ; $ff48 + ld [rOBP0], a ld a, $6c - ld [rOBP1], a ; $ff49 + ld [rOBP1], a ret .asm_78e47 ld a, $e4 ld [wcc79], a - ld [rOBP0], a ; $ff48 + ld [rOBP0], a ld a, $6c - ld [rOBP1], a ; $ff49 + ld [rOBP1], a ret PlaySubanimation: ; 78e53 (1e:4e53) ld a,[wAnimSoundID] cp a,$FF jr z,.skipPlayingSound - call Func_7986f - call PlaySound ; play sound effect + call GetMoveSound + call PlaySound .skipPlayingSound ld hl,wOAMBuffer ; base address of OAM buffer ld a,l @@ -581,7 +581,7 @@ PlaySubanimation: ; 78e53 (1e:4e53) push hl ld e,[hl] ; base coordinate ID ld d,0 - ld hl,FrameBlockBaseCoords ; $7c85 ; base coordinate table + ld hl,FrameBlockBaseCoords ; base coordinate table add hl,de add hl,de ld a,[hli] @@ -667,7 +667,7 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5) dw AnimationFlashScreen db TAIL_WHIP - dw Func_790d0 + dw TailWhipAnimationUnused db GROWL dw DoGrowlSpecialEffects @@ -703,13 +703,13 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5) dw DoRockSlideSpecialEffects db TRADE_BALL_DROP_ANIM - dw Func_79041 + dw TradeHidePokemon db TRADE_BALL_SHAKE_ANIM - dw Func_7904c + dw TradeShakePokeball db TRADE_BALL_TILT_ANIM - dw Func_7907c + dw TradeJumpPokeball db TOSS_ANIM dw DoBallTossSpecialEffects @@ -742,7 +742,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) jr nz,.skipPlayingSound ; if it is the beginning of the subanimation, play a sound ld a,(SFX_08_41 - SFX_Headers_08) / 3 - call PlaySound ; play sound + call PlaySound .skipPlayingSound ld a,[W_ISINBATTLE] cp a,02 ; is it a trainer battle? @@ -788,7 +788,7 @@ DoBallShakeSpecialEffects: ; 78f96 (1e:4f96) jr nz,.skipPlayingSound ; if it is the beginning of a shake, play a sound and wait 2/3 of a second ld a,(SFX_08_3c - SFX_Headers_08) / 3 - call PlaySound ; play sound + call PlaySound ld c,40 call DelayFrames .skipPlayingSound @@ -875,8 +875,8 @@ DoBlizzardSpecialEffects: ; 79016 (1e:5016) ret ; flashes the screen at 3 points in the subanimation -; XXX is this unused? -Func_7902e: ; 7902e (1e:502e) +; unused +FlashScreenUnused: ; 7902e (1e:502e) ld a,[W_SUBANIMCOUNTER] cp a,14 jp z,AnimationFlashScreen @@ -887,8 +887,7 @@ Func_7902e: ; 7902e (1e:502e) ret ; function to make the pokemon disappear at the beginning of the animation -; XXX probably a trade-related animation -Func_79041: ; 79041 (1e:5041) +TradeHidePokemon: ; 79041 (1e:5041) ld a,[W_SUBANIMCOUNTER] cp a,6 ret nz @@ -896,8 +895,7 @@ Func_79041: ; 79041 (1e:5041) jp Func_7980c ; make pokemon disappear ; function to make a shaking pokeball jump up at the end of the animation -; XXX probably a trade-related animation -Func_7904c: ; 7904c (1e:504c) +TradeShakePokeball: ; 7904c (1e:504c) ld a,[W_SUBANIMCOUNTER] cp a,1 ret nz @@ -924,15 +922,14 @@ Func_7904c: ; 7904c (1e:504c) .done call AnimationCleanOAM ld a,(SFX_02_44 - SFX_Headers_02) / 3 - jp PlaySound ; play sound + jp PlaySound BallMoveDistances1: ; 79078 (1e:5078) db -12,-12,-8 db $ff ; terminator ; function to make the pokeball jump up -; XXX probably a trade-related animation -Func_7907c ; 507C +TradeJumpPokeball: ; 507C ld de,BallMoveDistances2 .loop ld hl,wOAMBuffer ; OAM buffer @@ -985,7 +982,7 @@ DoGrowlSpecialEffects: ; 790bc (1e:50bc) ret ; this is associated with Tail Whip, but Tail Whip doesn't use any subanimations -Func_790d0: ; 790d0 (1e:50d0) +TailWhipAnimationUnused: ; 790d0 (1e:50d0) ld a,1 ld [W_SUBANIMCOUNTER],a ld c,20 @@ -1183,46 +1180,46 @@ AnimationFlashScreen: ; 791be (1e:51be) AnimationDarkScreenPalette: ; 791d6 (1e:51d6) ; Changes the screen's palette to a dark palette. ld bc, $6f6f - jr Func_791fc + jr SetAnimationBGPalette AnimationDarkenMonPalette: ; 791db (1e:51db) ; Darkens the mon sprite's palette. ld bc, $f9f4 - jr Func_791fc + jr SetAnimationBGPalette -Func_791e0: ; 791e0 (1e:51e0) +AnimationUnusedPalette1: ; 791e0 (1e:51e0) ld bc, $fef8 - jr Func_791fc + jr SetAnimationBGPalette -Func_791e5: ; 791e5 (1e:51e5) +AnimationUnusedPalette2: ; 791e5 (1e:51e5) ld bc, $ffff - jr Func_791fc + jr SetAnimationBGPalette AnimationResetScreenPalette: ; 791ea (1e:51ea) ; Restores the screen's palette to the normal palette. ld bc, $e4e4 - jr Func_791fc + jr SetAnimationBGPalette -Func_791ef: ; 791ef (1e:51ef) +AnimationUnusedPalette3: ; 791ef (1e:51ef) ld bc, $0000 - jr Func_791fc + jr SetAnimationBGPalette AnimationLightScreenPalette: ; 791f4 (1e:51f4) ; Changes the screen to use a palette with light colors. ld bc, $9090 - jr Func_791fc + jr SetAnimationBGPalette -Func_791f9: ; 791f9 (1e:51f9) +AnimationUnusedPalette4: ; 791f9 (1e:51f9) ld bc, $4040 -Func_791fc: ; 791fc (1e:51fc) +SetAnimationBGPalette: ; 791fc (1e:51fc) ld a, [wOnSGB] and a ld a, b jr z, .asm_79204 ld a, c .asm_79204 - ld [rBGP], a ; $ff47 + ld [rBGP], a ret ld b, $5 @@ -1246,45 +1243,45 @@ AnimationWaterDropletsEverywhere: ; 79215 (1e:5215) call LoadAnimationTileset ld d, $20 ld a, $f0 - ld [W_BASECOORDX], a ; wd081 + ld [W_BASECOORDX], a ld a, $71 ld [wd09f], a .asm_79228 ld a, $10 - ld [W_BASECOORDY], a ; wd082 + ld [W_BASECOORDY], a ld a, $0 ld [wd08a], a - call Func_79246 + call _AnimationWaterDroplets ld a, $18 - ld [W_BASECOORDY], a ; wd082 + ld [W_BASECOORDY], a ld a, $20 ld [wd08a], a - call Func_79246 + call _AnimationWaterDroplets dec d jr nz, .asm_79228 ret -Func_79246: ; 79246 (1e:5246) +_AnimationWaterDroplets: ; 79246 (1e:5246) ld hl, wOAMBuffer .asm_79249 - ld a, [W_BASECOORDY] ; wd082 + ld a, [W_BASECOORDY] ld [hli], a - ld a, [W_BASECOORDX] ; wd081 + ld a, [W_BASECOORDX] add $1b - ld [W_BASECOORDX], a ; wd081 + ld [W_BASECOORDX], a ld [hli], a ld a, [wd09f] ld [hli], a xor a ld [hli], a - ld a, [W_BASECOORDX] ; wd081 + ld a, [W_BASECOORDX] cp $90 jr c, .asm_79249 sub $a8 - ld [W_BASECOORDX], a ; wd081 - ld a, [W_BASECOORDY] ; wd082 + ld [W_BASECOORDX], a + ld a, [W_BASECOORDY] add $10 - ld [W_BASECOORDY], a ; wd082 + ld [W_BASECOORDY], a cp $70 jr c, .asm_79249 call AnimationCleanOAM @@ -1304,7 +1301,7 @@ AnimationSlideMonUp: ; 7927a (1e:527a) ld a, $ff .asm_79291 ld [wd09f], a - jp Func_792bf + jp _AnimationSlideMonUp AnimationSlideMonDown: ; 79297 (1e:5297) ; Slides the mon's sprite down out of the screen. @@ -1314,7 +1311,7 @@ AnimationSlideMonDown: ; 79297 (1e:5297) call GetMonSpriteTileMapPointerFromRowCount push bc push de - call Func_79aae + call CopyPicTiles call Delay3 call AnimationHideMonPic pop de @@ -1327,15 +1324,15 @@ AnimationSlideMonOut: ; 792af (1e:52af) ; Slides the mon's sprite out of the screen horizontally. ld e, $8 ld a, $3 - ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM - jp Func_795f8 + ld [W_SUBANIMTRANSFORM], a + jp AnimationSlideMonLeft AnimationSlideEnemyMonOut: ; 792b9 (1e:52b9) ; Slides the enemy mon out of the screen horizontally. - ld hl, AnimationSlideMonOut ; $52af + ld hl, AnimationSlideMonOut jp CallWithTurnFlipped -Func_792bf: ; 792bf (1e:52bf) +_AnimationSlideMonUp: ; 792bf (1e:52bf) push de push hl push bc @@ -1368,16 +1365,16 @@ Func_792bf: ; 792bf (1e:52bf) add $7 dec c jr nz, .asm_792eb - ld c, $2 + ld c, 2 call DelayFrames pop bc pop hl pop de dec c - jr nz, Func_792bf + jr nz, _AnimationSlideMonUp ret -Func_792fd: ; 792fd (1e:52fd) +_AnimationShakeEnemyHUD: ; 792fd (1e:52fd) ld a, $10 ld [W_BASECOORDX], a ld a, $30 @@ -1390,7 +1387,7 @@ Func_792fd: ; 792fd (1e:52fd) ld e, a ld b, $5 .asm_79314 - call Func_79329 + call Animations_79329 inc d dec b jr nz, .asm_79314 @@ -1403,12 +1400,12 @@ Func_792fd: ; 792fd (1e:52fd) ld [W_BASECOORDX], a jr .asm_7930e -Func_79329: ; 79329 (1e:5329) +Animations_79329: ; 79329 (1e:5329) ld a, e add $8 ld e, a ld [hli], a - ld a, [W_BASECOORDX] ; wd081 + ld a, [W_BASECOORDX] ld [hli], a ld a, d ld [hli], a @@ -1464,7 +1461,7 @@ AdjustOAMBlockYPos2: ; 79352 (1e:5352) AnimationBlinkEnemyMon: ; 79369 (1e:5369) ; Make the enemy mon's sprite blink on and off for a second or two - ld hl, AnimationBlinkMon ; $536f + ld hl, AnimationBlinkMon jp CallWithTurnFlipped AnimationBlinkMon: ; 7936f (1e:536f) @@ -1474,10 +1471,10 @@ AnimationBlinkMon: ; 7936f (1e:536f) .asm_79372 push bc call AnimationHideMonPic - ld c, $5 + ld c, 5 call DelayFrames call AnimationShowMonPic - ld c, $5 + ld c, 5 call DelayFrames pop bc dec c @@ -1502,7 +1499,7 @@ AnimationShowMonPic: ; 7939e (1e:539e) xor a call GetTileIDList call GetMonSpriteTileMapPointerFromRowCount - call Func_79aae + call CopyPicTiles jp Delay3 AnimationShowEnemyMonPic: ; 793ab (1e:53ab) @@ -1537,7 +1534,7 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1) push hl call GetTileIDList pop hl - call Func_79aae + call CopyPicTiles call Delay3 pop hl ld bc, $0709 @@ -1545,7 +1542,7 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1) pop af call GetTileIDList pop hl - call Func_79aae + call CopyPicTiles call Delay3 pop hl ld bc, $0709 @@ -1562,7 +1559,7 @@ AnimationMoveMonHorizontally: ; 793f9 (1e:53f9) ; Shifts the mon's sprite horizontally to a fixed location. Used by lots of ; animations like Tackle/Body Slam. call AnimationHideMonPic - ld a, [H_WHOSETURN] ; $fff3 + ld a, [H_WHOSETURN] and a hlCoord 2, 5 jr z, .asm_79407 @@ -1572,13 +1569,13 @@ AnimationMoveMonHorizontally: ; 793f9 (1e:53f9) push hl call GetTileIDList pop hl - call Func_79aae - ld c, $3 + call CopyPicTiles + ld c, 3 jp DelayFrames AnimationResetMonPosition: ; 79415 (1e:5415) ; Resets the mon's sprites to be located at the normal coordinates. - ld a, [H_WHOSETURN] ; $fff3 + ld a, [H_WHOSETURN] and a ld a, $66 jr z, .asm_7941e @@ -1590,24 +1587,24 @@ AnimationResetMonPosition: ; 79415 (1e:5415) AnimationSpiralBallsInward: ; 79424 (1e:5424) ; Creates an effect that looks like energy balls sprialing into the ; player mon's sprite. Used in Focus Energy, for example. - ld a, [H_WHOSETURN] ; $fff3 + ld a, [H_WHOSETURN] and a jr z, .asm_79435 ld a, $d8 ld [wd08a], a ld a, $50 - ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM + ld [W_SUBANIMTRANSFORM], a jr .asm_7943c .asm_79435 xor a ld [wd08a], a - ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM + ld [W_SUBANIMTRANSFORM], a .asm_7943c ld d, $7a ld c, $3 xor a call Func_797e8 - ld hl, SpiralBallAnimationCoordinates ; $5476 + ld hl, SpiralBallAnimationCoordinates .asm_79447 push hl ld c, $3 @@ -1621,7 +1618,7 @@ AnimationSpiralBallsInward: ; 79424 (1e:5424) ld [de], a inc de inc hl - ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM + ld a, [W_SUBANIMTRANSFORM] add [hl] ld [de], a inc hl @@ -1630,7 +1627,7 @@ AnimationSpiralBallsInward: ; 79424 (1e:5424) inc de dec c jr nz, .asm_7944d - ld c, $5 + ld c, 5 call DelayFrames pop hl inc hl @@ -1674,7 +1671,7 @@ AnimationSquishMonPic: ; 794a1 (1e:54a1) ld c, $4 .asm_794a3 push bc - ld a, [H_WHOSETURN] ; $fff3 + ld a, [H_WHOSETURN] and a jr z, .asm_794b1 hlCoord 16, 0 @@ -1687,11 +1684,11 @@ AnimationSquishMonPic: ; 794a1 (1e:54a1) push de xor a ld [wd09f], a - call Func_794d4 + call _AnimationSquishMonPic pop hl ld a, $1 ld [wd09f], a - call Func_794d4 + call _AnimationSquishMonPic pop bc dec c jr nz, .asm_794a3 @@ -1699,7 +1696,7 @@ AnimationSquishMonPic: ; 794a1 (1e:54a1) ld c, $2 jp DelayFrame -Func_794d4: ; 794d4 (1e:54d4) +_AnimationSquishMonPic: ; 794d4 (1e:54d4) ld c, $7 .asm_794d6 push bc @@ -1727,7 +1724,7 @@ Func_794d4: ; 794d4 (1e:54d4) AnimationShootBallsUpward: ; 794f9 (1e:54f9) ; Shoots one pillar of "energy" balls upwards. Used in Teleport/Sky Attack ; animations. - ld a, [H_WHOSETURN] ; $fff3 + ld a, [H_WHOSETURN] and a jr z, .asm_79503 ld bc, $80 @@ -1736,14 +1733,14 @@ AnimationShootBallsUpward: ; 794f9 (1e:54f9) ld bc, $3028 .asm_79506 ld a, b - ld [W_BASECOORDY], a ; wd082 + ld [W_BASECOORDY], a ld a, c - ld [W_BASECOORDX], a ; wd081 + ld [W_BASECOORDX], a ld bc, $501 - call Func_79517 + call _AnimationShootBallsUpward jp AnimationCleanOAM -Func_79517: ; 79517 (1e:5517) +_AnimationShootBallsUpward: ; 79517 (1e:5517) push bc xor a ld [wd09f], a @@ -1752,10 +1749,10 @@ Func_79517: ; 79517 (1e:5517) ld d, $7a ld hl, wOAMBuffer push bc - ld a, [W_BASECOORDY] ; wd082 + ld a, [W_BASECOORDY] ld e, a .asm_7952a - call Func_79329 + call Animations_79329 dec b jr nz, .asm_7952a call DelayFrame @@ -1766,7 +1763,7 @@ Func_79517: ; 79517 (1e:5517) push bc ld hl, wOAMBuffer .asm_7953c - ld a, [W_BASECOORDY] ; wd082 + ld a, [W_BASECOORDY] add $8 ld e, a ld a, [hl] @@ -1812,7 +1809,7 @@ AnimationShootManyBallsUpward: ; 79566 (1e:5566) ld [W_BASECOORDX], a ld bc, $0401 push hl - call Func_79517 + call _AnimationShootBallsUpward pop hl jr .loop @@ -1839,7 +1836,7 @@ AnimationMinimizeMon: ; 7959f (1e:559f) pop hl ld de, $194 add hl, de - ld de, MinimizedMonSprite ; $55c4 + ld de, MinimizedMonSprite ld c, $5 .asm_795b4 ld a, [de] @@ -1867,8 +1864,8 @@ AnimationSlideMonDownAndHide: ; 795c9 (1e:55c9) push af call GetTileIDList call GetMonSpriteTileMapPointerFromRowCount - call Func_79aae - ld c, $8 + call CopyPicTiles + ld c, 8 call DelayFrames pop af inc a @@ -1882,8 +1879,8 @@ AnimationSlideMonDownAndHide: ; 795c9 (1e:55c9) call FillMemory jp Func_79652 -Func_795f8: ; 795f8 (1e:55f8) - ld a, [H_WHOSETURN] ; $fff3 +AnimationSlideMonLeft: ; 795f8 (1e:55f8) + ld a, [H_WHOSETURN] and a jr z, .asm_79602 hlCoord 12, 0 @@ -1898,7 +1895,7 @@ Func_795f8: ; 795f8 (1e:55f8) .asm_7960a ld c, $8 .asm_7960c - ld a, [H_WHOSETURN] ; $fff3 + ld a, [H_WHOSETURN] and a jr z, .asm_79616 call Func_7963c @@ -1915,7 +1912,7 @@ Func_795f8: ; 795f8 (1e:55f8) pop de dec b jr nz, .asm_7960a - ld a, [W_SUBANIMTRANSFORM] ; W_SUBANIMTRANSFORM + ld a, [W_SUBANIMTRANSFORM] ld c, a call DelayFrames pop hl @@ -1945,11 +1942,11 @@ AnimationSlideMonHalfLeft: ; 79645 (1e:5645) ld e, $4 ld a, $4 ld [W_SUBANIMTRANSFORM], a - call Func_795f8 + call AnimationSlideMonLeft jp Delay3 Func_79652: ; 79652 (1e:5652) - ld a, [H_WHOSETURN] ; $fff3 + ld a, [H_WHOSETURN] and a ld hl, vBackPic jr z, .asm_7965d @@ -2028,7 +2025,7 @@ AnimationSubstitute: ; 796e0 (1e:56e0) call FillMemory ld a, [$fff3] and a - jr z, .asm_79715 ; 0x796ed $26 + jr z, .asm_79715 ld hl, SlowbroSprite ; facing down sprite ld de, wTempPic + $120 call CopySlowbroSpriteData @@ -2065,13 +2062,13 @@ CopySlowbroSpriteData: ; 7973f (1e:573f) jp FarCopyData2 Func_79747: ; 79747 (1e:5747) - ld a, [H_WHOSETURN] ; $fff3 + ld a, [H_WHOSETURN] and a ld hl, wccf7 - ld a, [W_PLAYERBATTSTATUS2] ; W_PLAYERBATTSTATUS2 + ld a, [W_PLAYERBATTSTATUS2] jr z, .asm_79758 ld hl, wccf3 - ld a, [W_ENEMYBATTSTATUS2] ; W_ENEMYBATTSTATUS2 + ld a, [W_ENEMYBATTSTATUS2] .asm_79758 push hl bit 4, a @@ -2102,7 +2099,7 @@ AnimationBoundUpAndDown: ; 7977a (1e:577a) call AnimationSlideMonDown pop bc dec c - jr nz, .asm_7977c ; 0x79782 $f8 + jr nz, .asm_7977c jp AnimationShowMonPic AnimationTransformMon: ; 79787 (1e:5787) @@ -2114,7 +2111,7 @@ AnimationTransformMon: ; 79787 (1e:5787) ld [wHPBarMaxHP], a Func_79793: ; 79793 (1e:5793) - ld a, [H_WHOSETURN] ; $fff3 + ld a, [H_WHOSETURN] and a jr z, .asm_797b0 ld a, [wHPBarMaxHP] @@ -2137,7 +2134,7 @@ Func_79793: ; 79793 (1e:5793) xor a call GetTileIDList call GetMonSpriteTileMapPointerFromRowCount - call Func_79aae + call CopyPicTiles pop af ld [wBattleMonSpecies2], a .asm_797d3 @@ -2147,11 +2144,11 @@ Func_79793: ; 79793 (1e:5793) AnimationHideEnemyMonPic: ; 797d8 (1e:57d8) ; Hides the enemy mon's sprite xor a - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - ld hl, AnimationHideMonPic ; $5801 + ld [H_AUTOBGTRANSFERENABLED], a + ld hl, AnimationHideMonPic call CallWithTurnFlipped ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a ; $ffba + ld [H_AUTOBGTRANSFERENABLED], a jp Delay3 Func_797e8: ; 797e8 (1e:57e8) @@ -2163,17 +2160,17 @@ Func_797e8: ; 797e8 (1e:57e8) pop bc xor a ld e, a - ld [W_BASECOORDX], a ; wd081 + ld [W_BASECOORDX], a ld hl, wOAMBuffer .asm_797fa - call Func_79329 + call Animations_79329 dec c jr nz, .asm_797fa ret AnimationHideMonPic: ; 79801 (1e:5801) ; Hides the mon's sprite. - ld a, [H_WHOSETURN] ; $fff3 + ld a, [H_WHOSETURN] and a jr z, .asm_7980a ld a, $c @@ -2269,13 +2266,15 @@ Func_79862: ; 79862 (1e:5862) jr nz, Func_79862 ret -Func_79869: ; 79869 (1e:5869) +; get the sound of the move id in b +GetMoveSoundB: ; 79869 (1e:5869) ld a, b - call Func_7986f + call GetMoveSound ld b, a ret -Func_7986f: ; 7986f (1e:586f) +; get the sound of the move id in a +GetMoveSound: ; 7986f (1e:586f) ld hl,MoveSoundTable ld e,a ld d,0 @@ -2496,7 +2495,7 @@ MoveSoundTable: ; 798bc (1e:58bc) db (SFX_08_4b - SFX_Headers_08) / 3,$00,$80 db (SFX_08_4b - SFX_Headers_08) / 3,$00,$80 -Func_79aae: ; 79aae (1e:5aae) +CopyPicTiles: ; 79aae (1e:5aae) ld a, [H_WHOSETURN] and a ld a, $31 ; base tile ID of player mon sprite @@ -2507,15 +2506,17 @@ Func_79aae: ; 79aae (1e:5aae) ld [hBaseTileID], a jr asm_79acb -Func_79aba: ; 79aba (1e:5aba) +; copy the tiles used when a mon is being sent out +; and "growing" out of the pokeball +CopyGrowingMonTiles: ; 79aba (1e:5aba) call GetPredefRegisters ld a, [wcd6c] and a jr nz, .asm_79ac8 - ld de, Unknown_79b02 ; $5b02 + ld de, Unknown_79b02 ; 5x5 jr asm_79acb .asm_79ac8 - ld de, Unknown_79b1b ; $5b1b + ld de, Unknown_79b1b ; 3x3 asm_79acb: ; 79acb (1e:5acb) xor a ld [H_AUTOBGTRANSFERENABLED], a @@ -2811,7 +2812,7 @@ AnimationShakeEnemyHUD: ; 79d77 (1e:5d77) call Func_79e0d ld a, $38 ld [hWY], a - call Func_792fd + call _AnimationShakeEnemyHUD ld hl, vBGMap0 call Func_79e0d call AnimationHideMonPic @@ -2854,12 +2855,12 @@ Func_79de9: ; 79de9 (1e:5de9) ld a, [wTrainerSpriteOffset] add d ld [hSCX], a - ld c, $2 + ld c, 2 call DelayFrames ld a, [wTrainerSpriteOffset] sub d ld [hSCX], a - ld c, $2 + ld c, 2 call DelayFrames dec e jr nz, .asm_79dee @@ -2926,7 +2927,7 @@ TossBallAnimation: ; 79e16 (1e:5e16) ld [W_ANIMATIONID],a call PlayAnimation ld a,(SFX_08_43 - SFX_Headers_08) / 3 - call PlaySound ; play sound effect + call PlaySound ld a,BLOCKBALL_ANIM ld [W_ANIMATIONID],a jp PlayAnimation -- cgit v1.3.1-sl0p From a957bb154046427966d6e00de526adab13388938 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sun, 12 Jul 2015 15:51:04 -0700 Subject: some battle animation stuff --- engine/battle/animations.asm | 45 ++++++++++++------------ engine/battle/core.asm | 48 ++++++++++++++------------ engine/battle/moveEffects/transform_effect.asm | 8 ++--- wram.asm | 6 ++-- 4 files changed, 56 insertions(+), 51 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index cdd28422..939c8db0 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -1292,12 +1292,12 @@ AnimationSlideMonUp: ; 7927a (1e:527a) ld c, $7 ld a, [H_WHOSETURN] and a - ld hl, wTileMap + $79 - ld de, wTileMap + $65 + hlCoord 1, 6 + deCoord 1, 5 ld a, $30 jr z, .asm_79291 - ld hl, wTileMap + $20 - ld de, wTileMap + $c + hlCoord 12, 1 + deCoord 12, 0 ld a, $ff .asm_79291 ld [wd09f], a @@ -1345,16 +1345,16 @@ _AnimationSlideMonUp: ; 792bf (1e:52bf) call CopyData pop de pop hl - ld bc, $0028 + ld bc, SCREEN_WIDTH * 2 add hl, bc pop bc dec b jr nz, .asm_792c4 ld a, [H_WHOSETURN] and a - ld hl, wTileMap + $dd + hlCoord 1, 11 jr z, .asm_792e2 - ld hl, wTileMap + $84 + hlCoord 12, 6 .asm_792e2 ld a, [wd09f] inc a @@ -1513,11 +1513,11 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1) ; The mon's sprite disappears after this animation. ld a, [H_WHOSETURN] and a - ld hl, wTileMap + $64 - ld de, wTileMap + $66 + hlCoord 0, 5 + deCoord 2, 5 jr z, .asm_793c2 - ld hl, wTileMap + $b - ld de, wTileMap + $d + hlCoord 11, 0 + deCoord 13, 0 .asm_793c2 xor a @@ -2061,23 +2061,24 @@ CopySlowbroSpriteData: ; 7973f (1e:573f) ld a, BANK(SlowbroSprite) jp FarCopyData2 -Func_79747: ; 79747 (1e:5747) +HideSubstituteShowMonAnim: ; 79747 (1e:5747) ld a, [H_WHOSETURN] and a - ld hl, wccf7 + ld hl, wPlayerMonMinimized ld a, [W_PLAYERBATTSTATUS2] - jr z, .asm_79758 - ld hl, wccf3 + jr z, .next1 + ld hl, wEnemyMonMinimized ld a, [W_ENEMYBATTSTATUS2] -.asm_79758 +.next1 push hl - bit 4, a - jr nz, .asm_79762 +; if the substitute broke, slide it down, else slide it offscreen horizontally + bit HasSubstituteUp, a + jr nz, .substituteStillUp call AnimationSlideMonDown - jr .asm_79765 -.asm_79762 + jr .next2 +.substituteStillUp call AnimationSlideMonOut -.asm_79765 +.next2 pop hl ld a, [hl] and a @@ -2085,7 +2086,7 @@ Func_79747: ; 79747 (1e:5747) call AnimationFlashMonPic jp AnimationShowMonPic -Func_79771: ; 79771 (1e:5771) +ReshowSubstituteAnim: ; 79771 (1e:5771) call AnimationSlideMonOut call AnimationSubstitute jp AnimationShowMonPic diff --git a/engine/battle/core.asm b/engine/battle/core.asm index ec67d094..db1ebd32 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -848,7 +848,7 @@ FaintEnemyPokemon: ; 0x3c567 ld [hl], a ld [W_ENEMYDISABLEDMOVE], a ld [wEnemyDisabledMoveNumber], a - ld [wccf3], a + ld [wEnemyMonMinimized], a ld hl, wPlayerUsedMove ld [hli], a ld [hl], a @@ -1376,7 +1376,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a) ld [hl],a ld [W_ENEMYDISABLEDMOVE],a ld [wEnemyDisabledMoveNumber],a - ld [wccf3],a + ld [wEnemyMonMinimized],a ld hl,wPlayerUsedMove ld [hli],a ld [hl],a @@ -1826,7 +1826,7 @@ SendOutMon: ; 3cc91 (f:4c91) ld [hl], a ld [W_PLAYERDISABLEDMOVE], a ld [wPlayerDisabledMoveNumber], a - ld [wccf7], a + ld [wPlayerMonMinimized], a ld b, $1 call GoPAL_SET ld hl, W_ENEMYBATTSTATUS1 @@ -2448,7 +2448,7 @@ PartyMenuOrRockOrRun: ld hl, AnimationSubstitute jr nz, .doEnemyMonAnimation ; enemy mon doesn't have substitute - ld a, [wccf3] + ld a, [wEnemyMonMinimized] and a ; has the enemy mon used Minimise? ld hl, AnimationMinimizeMon jr nz, .doEnemyMonAnimation @@ -3215,9 +3215,9 @@ getPlayerAnimationType playPlayerMoveAnimation push af ld a,[W_PLAYERBATTSTATUS2] - bit 4,a - ld hl,Func_79747 - ld b,BANK(Func_79747) + bit HasSubstituteUp,a + ld hl,HideSubstituteShowMonAnim + ld b,BANK(HideSubstituteShowMonAnim) call nz,Bankswitch pop af ld [wAnimationType],a @@ -3226,9 +3226,9 @@ playPlayerMoveAnimation call HandleExplodingAnimation call DrawPlayerHUDAndHPBar ld a,[W_PLAYERBATTSTATUS2] - bit 4,a - ld hl,Func_79771 - ld b,BANK(Func_79771) + bit HasSubstituteUp,a + ld hl,ReshowSubstituteAnim + ld b,BANK(ReshowSubstituteAnim) call nz,Bankswitch jr MirrorMoveCheck playerCheckIfFlyOrChargeEffect @@ -5089,7 +5089,7 @@ AttackSubstitute: ; 3e25e (f:625e) ld a,[H_WHOSETURN] xor a,$01 ld [H_WHOSETURN],a - callab Func_79747 ; animate the substitute breaking + callab HideSubstituteShowMonAnim ; animate the substitute breaking ; flip the turn back to the way it was ld a,[H_WHOSETURN] xor a,$01 @@ -5767,8 +5767,8 @@ playEnemyMoveAnimation: ; 3e7a4 (f:67a4) push af ld a, [W_ENEMYBATTSTATUS2] bit HasSubstituteUp, a ; does mon have a substitute? - ld hl, Func_79747 - ld b, BANK(Func_79747) + ld hl, HideSubstituteShowMonAnim + ld b, BANK(HideSubstituteShowMonAnim) call nz, Bankswitch pop af ld [wAnimationType], a @@ -5778,8 +5778,8 @@ playEnemyMoveAnimation: ; 3e7a4 (f:67a4) call DrawEnemyHUDAndHPBar ld a, [W_ENEMYBATTSTATUS2] bit HasSubstituteUp, a ; does mon have a substitute? - ld hl, Func_79771 - ld b, BANK(Func_79771) + ld hl, ReshowSubstituteAnim + ld b, BANK(ReshowSubstituteAnim) call nz, Bankswitch ; slide the substitute's sprite out jr EnemyCheckIfMirrorMoveEffect @@ -7657,24 +7657,26 @@ UpdateStatDone: ; 3f4ca (f:74ca) call PrintStatText ld hl, W_PLAYERBATTSTATUS2 ld de, W_PLAYERMOVENUM - ld bc, wccf7 + ld bc, wPlayerMonMinimized ld a, [H_WHOSETURN] and a jr z, .asm_3f4e6 ld hl, W_ENEMYBATTSTATUS2 ld de, W_ENEMYMOVENUM - ld bc, wccf3 + ld bc, wEnemyMonMinimized .asm_3f4e6 ld a, [de] cp MINIMIZE jr nz, .asm_3f4f9 - bit HasSubstituteUp, [hl] ; substitute + ; if a substitute is up, slide off the substitute and show the mon pic before + ; playing the minimize animation + bit HasSubstituteUp, [hl] push af push bc - ld hl, Func_79747 - ld b, BANK(Func_79747) + ld hl, HideSubstituteShowMonAnim + ld b, BANK(HideSubstituteShowMonAnim) push de - call nz, Bankswitch ; play Minimize animation unless there's Substitute involved + call nz, Bankswitch pop de .asm_3f4f9 call PlayCurrentMoveAnimation @@ -7684,8 +7686,8 @@ UpdateStatDone: ; 3f4ca (f:74ca) pop bc ld a, $1 ld [bc], a - ld hl, Func_79771 - ld b, BANK(Func_79771) + ld hl, ReshowSubstituteAnim + ld b, BANK(ReshowSubstituteAnim) pop af call nz, Bankswitch .applyBadgeBoostsAndStatusPenalties diff --git a/engine/battle/moveEffects/transform_effect.asm b/engine/battle/moveEffects/transform_effect.asm index 1b992df6..185d47af 100644 --- a/engine/battle/moveEffects/transform_effect.asm +++ b/engine/battle/moveEffects/transform_effect.asm @@ -26,8 +26,8 @@ TransformEffect_: ; 3bab1 (e:7ab1) ; animation(s) played are different if target has Substitute up bit HasSubstituteUp, [hl] push af - ld hl, Func_79747 - ld b, BANK(Func_79747) + ld hl, HideSubstituteShowMonAnim + ld b, BANK(HideSubstituteShowMonAnim) call nz, Bankswitch ld a, [W_OPTIONS] add a @@ -38,8 +38,8 @@ TransformEffect_: ; 3bab1 (e:7ab1) ld b, BANK(AnimationTransformMon) .gotAnimToPlay call Bankswitch - ld hl, Func_79771 - ld b, BANK(Func_79771) + ld hl, ReshowSubstituteAnim + ld b, BANK(ReshowSubstituteAnim) pop af call nz, Bankswitch pop bc diff --git a/wram.asm b/wram.asm index 6d201fc8..2fbbd7ec 100755 --- a/wram.asm +++ b/wram.asm @@ -445,7 +445,7 @@ wccf0:: ds 1 ; used as a check if a mon fainted wPlayerUsedMove:: ds 1 ; ccf1 wEnemyUsedMove:: ds 1 ; ccf2 -wccf3:: ds 1 ; used with the move minimize +wEnemyMonMinimized:: ds 1 ; ccf3 wMoveDidntMiss:: ds 1 ; ccf4 @@ -454,7 +454,9 @@ wPartyFoughtCurrentEnemyFlags:: ; ccf5 flag_array 6 wccf6:: ds 1 ; used in some hp bar thing -wccf7:: ds 14 ; used with substitute move sliding thing? (not sure) +wPlayerMonMinimized:: ds 1 ; ccf7 + +ds 13 wUnknownSlotVar:: ; cd05 -- cgit v1.3.1-sl0p From 849b53623b2ace56ef40b7bbdefe29a86e10162e Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sun, 12 Jul 2015 16:24:03 -0700 Subject: shake screen functions --- engine/battle/animations.asm | 8 +++---- engine/battle/core.asm | 2 +- engine/predefs.asm | 4 ++-- engine/predefs12.asm | 54 ++++++++++++++++++++++++-------------------- home/vblank.asm | 2 +- wram.asm | 2 +- 6 files changed, 39 insertions(+), 33 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 939c8db0..8b3b9147 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -835,9 +835,9 @@ DoRockSlideSpecialEffects: ; 78fd9 (1e:4fd9) ; if the subaninmation counter is between 8 and 11, shake the screen horizontally and vertically .shakeScreen ld b,1 - predef Func_48125 ; shake horizontally + predef PredefShakeScreenHorizontally ; shake horizontally ld b,1 - predef_jump Func_480ff ; shake vertically + predef_jump PredefShakeScreenVertically ; shake vertically FlashScreenEveryEightFrameBlocks: ; 78ff7 (1e:4ff7) ld a,[W_SUBANIMCOUNTER] @@ -1225,14 +1225,14 @@ SetAnimationBGPalette: ; 791fc (1e:51fc) ld b, $5 AnimationShakeScreenVertically: ; 79209 (1e:5209) - predef_jump Func_480ff + predef_jump PredefShakeScreenVertically AnimationShakeScreen: ; 7920e (1e:520e) ; Shakes the screen for a while. Used in Earthquake/Fissure/etc. animations. ld b, $8 AnimationShakeScreenHorizontallyFast: ; 79210 (1e:5210) - predef_jump Func_48125 + predef_jump PredefShakeScreenHorizontally AnimationWaterDropletsEverywhere: ; 79215 (1e:5215) ; Draws water droplets all over the screen and makes them diff --git a/engine/battle/core.asm b/engine/battle/core.asm index db1ebd32..364b184b 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -3958,7 +3958,7 @@ PrintMoveFailureText: ; 3dbe2 (f:5be2) ld hl, KeptGoingAndCrashedText call PrintText ld b, $4 - predef Func_48125 + predef PredefShakeScreenHorizontally ld a, [H_WHOSETURN] and a jr nz, .enemyTurn diff --git a/engine/predefs.asm b/engine/predefs.asm index 90065d51..a8aba971 100755 --- a/engine/predefs.asm +++ b/engine/predefs.asm @@ -85,10 +85,10 @@ PredefPointers:: ; 4fe79 (13:7e79) dbw $03,GiveItem add_predef ChangeBGPalColor0_4Frames add_predef FindPathToPlayer - add_predef Func_480ff + add_predef PredefShakeScreenVertically add_predef CalcPositionOfPlayerRelativeToNPC add_predef ConvertNPCMovementDirectionsToJoypadMasks - add_predef Func_48125 + add_predef PredefShakeScreenHorizontally add_predef UpdateHPBar add_predef HPBarLength add_predef Diploma_TextBoxBorder diff --git a/engine/predefs12.asm b/engine/predefs12.asm index f318447e..9731134f 100755 --- a/engine/predefs12.asm +++ b/engine/predefs12.asm @@ -4,62 +4,68 @@ ChangeBGPalColor0_4Frames: ; 480eb (12:40eb) ld a, [rBGP] or b ld [rBGP], a - ld c, 4 + ld c, $4 call DelayFrames ld a, [rBGP] and %11111100 ld [rBGP], a ret -Func_480ff: ; 480ff (12:40ff) +PredefShakeScreenVertically: ; 480ff (12:40ff) +; Moves the window down and then back in a sequence of progressively smaller +; numbers of pixels, starting at b. call GetPredefRegisters - ld a, $1 - ld [wd0a0], a + ld a, 1 + ld [wDisableVBlankWYUpdate], a xor a -.asm_48108 - ld [H_NUMTOPRINT], a ; (aliases: H_MULTIPLICAND) - call Func_48119 - call Func_48119 +.loop + ld [$ff96], a + call .MutateWY + call .MutateWY dec b ld a, b - jr nz, .asm_48108 + jr nz, .loop xor a - ld [wd0a0], a + ld [wDisableVBlankWYUpdate], a ret -Func_48119: ; 48119 (12:4119) - ld a, [H_NUMTOPRINT] ; (aliases: H_MULTIPLICAND) +.MutateWY ; 48119 (12:4119) + ld a, [$ff96] xor b - ld [H_NUMTOPRINT], a ; (aliases: H_MULTIPLICAND) + ld [$ff96], a ld [rWY], a ld c, 3 jp DelayFrames -Func_48125: ; 48125 (12:4125) +PredefShakeScreenHorizontally: ; 48125 (12:4125) +; Moves the window right and then back in a sequence of progressively smaller +; numbers of pixels, starting at b. call GetPredefRegisters xor a -.asm_48129 +.loop ld [$ff97], a - call Func_4813f + call .MutateWX ld c, 1 call DelayFrames - call Func_4813f + call .MutateWX dec b ld a, b - jr nz, .asm_48129 - ld a, $7 + jr nz, .loop + +; restore normal WX + ld a, 7 ld [rWX], a ret -Func_4813f: ; 4813f (12:413f) +.MutateWX ; 4813f (12:413f) ld a, [$ff97] xor b ld [$ff97], a bit 7, a - jr z, .asm_48149 - xor a -.asm_48149 - add $7 + jr z, .skipZeroing + xor a ; zero a if it's negative +.skipZeroing + add 7 ld [rWX], a ld c, 4 jp DelayFrames diff --git a/home/vblank.asm b/home/vblank.asm index d8288187..9adf537c 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -13,7 +13,7 @@ VBlank:: ld a, [hSCY] ld [rSCY], a - ld a, [wd0a0] + ld a, [wDisableVBlankWYUpdate] and a jr nz, .ok ld a, [hWY] diff --git a/wram.asm b/wram.asm index 2fbbd7ec..83aa4e60 100755 --- a/wram.asm +++ b/wram.asm @@ -1223,7 +1223,7 @@ W_FBMODE:: ; d09e wNewTileBlockID:: ; d09f wd09f:: ds 1 ; used with predef ReplaceTileBlock -wd0a0:: ds 1 ; used in VBlank and ChangeBGPalColor0_4Frames +wDisableVBlankWYUpdate:: ds 1 ; if non-zero, don't update WY during V-blank W_SPRITECURPOSX:: ; d0a1 ds 1 -- cgit v1.3.1-sl0p From 99df5f0fd79f063ee4c7ec364eadd175a3d83c42 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sun, 12 Jul 2015 16:37:06 -0700 Subject: use constant for bg transfer dest hram var --- engine/HoF_room_pc.asm | 2 +- engine/battle/animations.asm | 2 +- engine/battle/core.asm | 4 ++-- engine/titlescreen.asm | 2 +- home/init.asm | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index c33e9141..14382288 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -130,7 +130,7 @@ Func_74164: ; 74164 (1d:4164) ld a, l ld [H_AUTOBGTRANSFERDEST], a ld a, h - ld [$ffbd], a + ld [H_AUTOBGTRANSFERDEST + 1], a ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a jp Delay3 diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 8b3b9147..a54233d0 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -2871,7 +2871,7 @@ Func_79de9: ; 79de9 (1e:5de9) Func_79e0d: ; 79e0d (1e:5e0d) ld a, h - ld [$ffbd], a + ld [H_AUTOBGTRANSFERDEST + 1], a ld a, l ld [H_AUTOBGTRANSFERDEST], a jp Delay3 diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 364b184b..bb7c4990 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -6943,12 +6943,12 @@ InitBattle_Common: ; 3efeb (f:6feb) call SaveScreenTilesToBuffer1 call ClearScreen ld a, $98 - ld [$ffbd], a + ld [H_AUTOBGTRANSFERDEST + 1], a ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a call Delay3 ld a, $9c - ld [$ffbd], a + ld [H_AUTOBGTRANSFERDEST + 1], a call LoadScreenTilesFromBuffer1 hlCoord 9, 7 ld bc, $50a diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm index e582d1be..1d640909 100755 --- a/engine/titlescreen.asm +++ b/engine/titlescreen.asm @@ -348,7 +348,7 @@ Func_4524: ; 4524 (1:4524) jp LoadFrontSpriteByMonIndex Func_4533: ; 4533 (1:4533) - ld [$ffbd], a + ld [H_AUTOBGTRANSFERDEST + 1], a jp Delay3 LoadCopyrightAndTextBoxTiles: ; 4538 (1:4538) diff --git a/home/init.asm b/home/init.asm index 4ac2a4eb..5a74dca9 100644 --- a/home/init.asm +++ b/home/init.asm @@ -101,9 +101,9 @@ rLCDC_DEFAULT EQU %11100011 ld [wc0ef], a ld [wc0f0], a ld a, $9c - ld [$ffbd], a + ld [H_AUTOBGTRANSFERDEST + 1], a xor a - ld [$ffbc], a + ld [H_AUTOBGTRANSFERDEST], a dec a ld [wUpdateSpritesEnabled], a -- cgit v1.3.1-sl0p From f66a74b9fcb762d693e89415836386bcad2475b5 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Mon, 13 Jul 2015 13:35:35 -0700 Subject: comment slot machine --- constants/misc_constants.asm | 13 + engine/HoF_room_pc.asm | 4 +- engine/battle/animations.asm | 6 +- engine/game_corner_slots.asm | 24 +- engine/menu/diploma.asm | 2 +- engine/menu/naming_screen.asm | 2 +- engine/mon_party_sprites.asm | 4 +- engine/slot_machine.asm | 596 ++++++++++++++++++++++-------------------- engine/town_map.asm | 8 +- home.asm | 2 +- home/init.asm | 4 +- scripts/celadongamecorner.asm | 4 +- wram.asm | 109 +++++++- 13 files changed, 449 insertions(+), 329 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 8aac849e..323e2ab6 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -72,6 +72,19 @@ PARTY_TO_BOX EQU 1 DAYCARE_TO_PARTY EQU 2 PARTY_TO_DAYCARE EQU 3 +; emotion bubbles +EXCLAMATION_BUBBLE EQU 0 +QUESTION_BUBBLE EQU 1 +SMILE_BUBBLE EQU 2 + +; slot symbols +SLOTS7 EQU $0200 +SLOTSBAR EQU $0604 +SLOTSCHERRY EQU $0A08 +SLOTSFISH EQU $0E0C +SLOTSBIRD EQU $1210 +SLOTSMOUSE EQU $1614 + ; serial ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01 diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index 14382288..7a2226be 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -77,7 +77,7 @@ DisplayCreditsMon: ; 740cb (1d:40cb) call Func_74164 call FillMiddleOfScreenWithWhite ld a,$FC - ld [$FF47],a + ld [rBGP],a ld bc,7 .next call Func_74140 @@ -94,7 +94,7 @@ DisplayCreditsMon: ; 740cb (1d:40cb) xor a ld [hWY],a ld a,$C0 - ld [$FF47],a + ld [rBGP],a ret INCLUDE "data/credit_mons.asm" diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index a54233d0..ea879e53 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -2645,16 +2645,16 @@ Unknown_79c50: ; 79c50 (1e:5c50) AnimationLeavesFalling: ; 79c74 (1e:5c74) ; Makes leaves float down from the top of the screen. This is used ; in Razor Leaf's animation. - ld a, [$ff48] + ld a, [rOBP0] push af ld a, [wcc79] - ld [$ff48], a + ld [rOBP0], a ld d, $37 ld a, $3 ld [W_SUBANIMTRANSFORM], a call Func_79c97 pop af - ld [$ff48], a + ld [rOBP0], a ret AnimationPetalsFalling: ; 79c8a (1e:5c8a) diff --git a/engine/game_corner_slots.asm b/engine/game_corner_slots.asm index 01d42d21..b3b2490c 100755 --- a/engine/game_corner_slots.asm +++ b/engine/game_corner_slots.asm @@ -1,5 +1,5 @@ StartSlotMachine: ; 37e2d (d:7e2d) - ld a, [wTrainerSpriteOffset] + ld a, [wHiddenObjectFunctionArgument] cp $fd jr z, .printOutOfOrder cp $fe @@ -7,23 +7,23 @@ StartSlotMachine: ; 37e2d (d:7e2d) cp $ff jr z, .printSomeonesKeys callba AbleToPlaySlotsCheck - ld a, [wTrainerSpriteOffset] + ld a, [wHiddenObjectFunctionArgument] and a ret z - ld a, [wUnknownSlotVar] + ld a, [wLuckySlotHiddenObjectIndex] ld b, a - ld a, [wTrainerFacingDirection] + ld a, [wHiddenObjectIndex] inc a cp b - jr z, .asm_37e58 - ld a, $fd - jr .asm_37e5a -.asm_37e58 - ld a, $fa -.asm_37e5a - ld [wcc5b], a + jr z, .match + ld a, 253 + jr .next +.match + ld a, 250 +.next + ld [wSlotMachineSevenAndBarModeChance], a ld a, [H_LOADEDROMBANK] - ld [wcc5e], a + ld [wSlotMachineSavedROMBank], a call PromptUserToPlaySlots ret .printOutOfOrder diff --git a/engine/menu/diploma.asm b/engine/menu/diploma.asm index 067cd7d2..9305bb0c 100755 --- a/engine/menu/diploma.asm +++ b/engine/menu/diploma.asm @@ -56,7 +56,7 @@ DisplayDiploma: ; 566e2 (15:66e2) call Delay3 call GBPalNormal ld a, $90 - ld [$ff48], a + ld [rOBP0], a call WaitForTextScrollButtonPress ld hl, wd730 res 6, [hl] diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm index bd1c39dd..f77f7331 100755 --- a/engine/menu/naming_screen.asm +++ b/engine/menu/naming_screen.asm @@ -114,7 +114,7 @@ DisplayNamingScreen: ; 6596 (1:6596) ld hl, wHPBarMaxHP + 1 ld [hli], a ld [hli], a - ld [wPartyMonAnimCounter], a + ld [wAnimCounter], a .asm_65ed call PrintAlphabet call GBPalNormal diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm index e3323cfc..e3ccde57 100755 --- a/engine/mon_party_sprites.asm +++ b/engine/mon_party_sprites.asm @@ -27,7 +27,7 @@ GetAnimationSpeed: ; 7170a (1c:570a) ld c, a add a ld b, a - ld a, [wPartyMonAnimCounter] + ld a, [wAnimCounter] and a jr z, .resetSprites cp c @@ -38,7 +38,7 @@ GetAnimationSpeed: ; 7170a (1c:570a) jr nz, .skipResetTimer xor a ; reset timer .skipResetTimer - ld [wPartyMonAnimCounter], a + ld [wAnimCounter], a jp DelayFrame .resetSprites push bc diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 6dae7293..f30a361c 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -10,13 +10,13 @@ PromptUserToPlaySlots: ; 3730e (d:730e) call YesNoChoice ld a, [wCurrentMenuItem] and a - jr nz, .skip + jr nz, .done ; if player chose No dec a ld [wUpdateSpritesEnabled], a - ld hl, wcd4f + ld hl, wSlotMachineRerollCounter xor a ld [hli], a - ld [hl], $2 + ld [hl], SMILE_BUBBLE predef EmotionBubble call GBPalWhiteOutWithDelay3 call LoadSlotMachineTiles @@ -25,30 +25,30 @@ PromptUserToPlaySlots: ; 3730e (d:730e) call GoPAL_SET call GBPalNormal ld a, $e4 - ld [$ff48], a + ld [rOBP0], a ld hl, wd730 set 6, [hl] xor a - ld [W_SUBANIMSUBENTRYADDR], a - ld hl, wTrainerSpriteOffset + ld [wSlotMachineAllowMatchesCounter], a + ld hl, wStoppingWhichSlotMachineWheel ld bc, $0014 call FillMemory call MainSlotMachineLoop ld hl, wd730 res 6, [hl] xor a - ld [W_SUBANIMSUBENTRYADDR], a + ld [wSlotMachineAllowMatchesCounter], a call GBPalWhiteOutWithDelay3 ld a, $1 ld [wUpdateSpritesEnabled], a call GoPAL_SET_CF1C call ReloadMapSpriteTilePatterns call ReloadTilesetTilePatterns -.skip +.done call LoadScreenTilesFromBuffer2 call Delay3 call GBPalNormal - ld a, [wcc5e] + ld a, [wSlotMachineSavedROMBank] push af jp CloseTextDisplay @@ -57,43 +57,43 @@ PlaySlotMachineText: ; 37390 (d:7390) db "@" MainSlotMachineLoop: ; 37395 (d:7395) - call SlotMachine_37754 + call SlotMachine_PrintCreditCoins xor a - ld hl, wcd4a + ld hl, wPayoutCoins ld [hli], a ld [hl], a - call SlotMachine_3775f + call SlotMachine_PrintPayoutCoins ld hl, BetHowManySlotMachineText call PrintText call SaveScreenTilesToBuffer1 .loop - ld a, $3 + ld a, A_BUTTON | B_BUTTON ld [wMenuWatchedKeys], a - ld a, $2 + ld a, 2 ld [wMaxMenuItem], a - ld a, $c + ld a, 12 ld [wTopMenuItemY], a - ld a, $f + ld a, 15 ld [wTopMenuItemX], a xor a ld [wCurrentMenuItem], a ld [wLastMenuItem], a ld [wMenuWatchMovingOutOfBounds], a - ld hl, wTileMap + $ea - ld b, $5 - ld c, $4 + hlCoord 14, 11 + ld b, 5 + ld c, 4 call TextBoxBorder - ld hl, wTileMap + $100 + hlCoord 16, 12 ld de, CoinMultiplierSlotMachineText call PlaceString call HandleMenuInput - and $2 + and B_BUTTON jp nz, LoadScreenTilesFromBuffer1 ld a, [wCurrentMenuItem] ld b, a - ld a, $3 + ld a, 3 sub b - ld [wcd50], a + ld [wSlotMachineBet], a ld hl, wPlayerCoins ld c, a ld a, [hli] @@ -107,11 +107,11 @@ MainSlotMachineLoop: ; 37395 (d:7395) jr .loop .skip1 call LoadScreenTilesFromBuffer1 - call SlotMachine_37741 - call SlotMachine_377d5 - call SlotMachine_37480 - ld a, $4 - ld hl, wcd4d + call SlotMachine_SubtractBetFromPlayerCoins + call SlotMachine_LightBalls + call SlotMachine_SetFlags + ld a, 4 + ld hl, wSlotMachineWheel1SlipCounter ld [hli], a ld [hli], a ld [hl], a @@ -120,8 +120,8 @@ MainSlotMachineLoop: ; 37395 (d:7395) call PlaySound ld hl, StartSlotMachineText call PrintText - call SlotMachine_374ad - call SlotMachine_37588 + call SlotMachine_SpinWheels + call SlotMachine_CheckForMatches ld hl, wPlayerCoins ld a, [hli] or [hl] @@ -143,7 +143,7 @@ MainSlotMachineLoop: ; 37395 (d:7395) ld a, [wCurrentMenuItem] and a ret nz - call SlotMachine_377ce + call SlotMachine_PutOutLitBalls jp MainSlotMachineLoop CoinMultiplierSlotMachineText: ; 3745e (d:745e) @@ -171,55 +171,55 @@ OneMoreGoSlotMachineText: ; 3747b (d:747b) TX_FAR _OneMoreGoSlotMachineText db "@" -SlotMachine_37480: ; 37480 (d:7480) - ld hl, wcd4c +SlotMachine_SetFlags: ; 37480 (d:7480) + ld hl, wSlotMachineFlags bit 7, [hl] ret nz - ld a, [W_SUBANIMSUBENTRYADDR] + ld a, [wSlotMachineAllowMatchesCounter] and a - jr nz, .skip1 + jr nz, .allowMatches call Random and a - jr z, .skip2 + jr z, .setAllowMatchesCounter ; 1/256 (~0.4%) chance ld b, a - ld a, [wcc5b] + ld a, [wSlotMachineSevenAndBarModeChance] cp b - jr c, .skip3 - ld a, $d2 + jr c, .allowSevenAndBarMatches + ld a, 210 cp b - jr c, .skip1 - ld [hl], $0 + jr c, .allowMatches ; 55/256 (~21.5%) chance + ld [hl], 0 ret -.skip1 +.allowMatches set 6, [hl] ret -.skip2 - ld a, $3c - ld [W_SUBANIMSUBENTRYADDR], a +.setAllowMatchesCounter + ld a, 60 + ld [wSlotMachineAllowMatchesCounter], a ret -.skip3 +.allowSevenAndBarMatches set 7, [hl] ret -SlotMachine_374ad: ; 374ad (d:74ad) +SlotMachine_SpinWheels: ; 374ad (d:74ad) ld c, 20 .loop1 push bc - call SlotMachine_37813 - call SlotMachine_37823 - call SlotMachine_37833 + call SlotMachine_AnimWheel1 + call SlotMachine_AnimWheel2 + call SlotMachine_AnimWheel3 ld c, 2 call DelayFrames pop bc dec c jr nz, .loop1 xor a - ld [wTrainerSpriteOffset], a + ld [wStoppingWhichSlotMachineWheel], a .loop2 - call SlotMachine_37882 - call SlotMachine_374df - call SlotMachine_374fb - call SlotMachine_37517 + call SlotMachine_HandleInputWhileWheelsSpin + call SlotMachine_StopOrAnimWheel1 + call SlotMachine_StopOrAnimWheel2 + call SlotMachine_StopOrAnimWheel3 ret c ld a, [wOnSGB] xor $1 @@ -228,194 +228,214 @@ SlotMachine_374ad: ; 374ad (d:74ad) call DelayFrames jr .loop2 -SlotMachine_374df: ; 374df (d:74df) - ld a, [wTrainerSpriteOffset] - cp $1 - jr c, .skip - ld de, wTrainerEngageDistance +; Note that the wheels can only stop when a symbol is centred in the wheel +; and thus 3 full symbols rather than 2 full symbols and 2 half symbols are +; visible. The 3 functions below ensure this by checking if the wheel offset +; is even before stopping the wheel. + +SlotMachine_StopOrAnimWheel1: ; 374df (d:74df) + ld a, [wStoppingWhichSlotMachineWheel] + cp 1 + jr c, .animWheel + ld de, wSlotMachineWheel1Offset ld a, [de] rra - jr nc, .skip - ld hl, wcd4d + jr nc, .animWheel ; check that a symbol is centred in the wheel + ld hl, wSlotMachineWheel1SlipCounter ld a, [hl] and a ret z dec [hl] - call SlotMachine_3752c + call SlotMachine_StopWheel1Early ret nz -.skip - jp SlotMachine_37813 - -SlotMachine_374fb: ; 374fb (d:74fb) - ld a, [wTrainerSpriteOffset] - cp $2 - jr c, .skip - ld de, wTrainerFacingDirection +.animWheel + jp SlotMachine_AnimWheel1 + +SlotMachine_StopOrAnimWheel2: ; 374fb (d:74fb) + ld a, [wStoppingWhichSlotMachineWheel] + cp 2 + jr c, .animWheel + ld de, wSlotMachineWheel2Offset ld a, [de] rra - jr nc, .skip - ld hl, wcd4e + jr nc, .animWheel ; check that a symbol is centred in the wheel + ld hl, wSlotMachineWheel2SlipCounter ld a, [hl] and a ret z dec [hl] - call SlotMachine_37552 + call SlotMachine_StopWheel2Early ret z -.skip - jp SlotMachine_37823 - -SlotMachine_37517: ; 37517 (d:7517) - ld a, [wTrainerSpriteOffset] - cp $3 - jr c, .skip - ld de, wTrainerScreenY +.animWheel + jp SlotMachine_AnimWheel2 + +SlotMachine_StopOrAnimWheel3: ; 37517 (d:7517) + ld a, [wStoppingWhichSlotMachineWheel] + cp 3 + jr c, .animWheel + ld de, wSlotMachineWheel3Offset ld a, [de] rra - jr nc, .skip + jr nc, .animWheel ; check that a symbol is centred in the wheel +; wheel 3 stops as soon as possible scf ret -.skip - call SlotMachine_37833 +.animWheel + call SlotMachine_AnimWheel3 and a ret -SlotMachine_3752c: ; 3752c (d:752c) - call SlotMachine_GetWheelOneTile - ld hl, wTrainerScreenX - ld a, [wcd4c] +SlotMachine_StopWheel1Early: ; 3752c (d:752c) + call SlotMachine_GetWheel1Tiles + ld hl, wSlotMachineWheel1BottomTile + ld a, [wSlotMachineFlags] and $80 - jr nz, .skip1 + jr nz, .sevenAndBarMode +; Stop early if the middle symbol is not a cherry. inc hl ld a, [hl] - cp $a - jr nz, .skip2 + cp SLOTSCHERRY >> 8 + jr nz, .stopWheel ret -.skip1 +; It looks like this was intended to make the wheel stop when a 7 symbol was +; visible, but it has a bug and so the wheel stops randomly. +.sevenAndBarMode ld c, $3 .loop ld a, [hli] - cp $2 - jr c, .skip2 + cp SLOTS7 >> 8 + jr c, .stopWheel ; condition never true dec c jr nz, .loop ret -.skip2 +.stopWheel inc a - ld hl, wcd4d - ld [hl], $0 + ld hl, wSlotMachineWheel1SlipCounter + ld [hl], 0 ret -SlotMachine_37552: ; 37552 (d:7552) - call SlotMachine_GetWheelTwoTile - ld a, [wcd4c] +SlotMachine_StopWheel2Early: ; 37552 (d:7552) + call SlotMachine_GetWheel2Tiles + ld a, [wSlotMachineFlags] and $80 - jr nz, .skip1 - call SlotMachine_3756e + jr nz, .sevenAndBarMode +; Stop early if any symbols are lined up in the first two wheels. + call SlotMachine_FindWheel1Wheel2Matches ret nz - jr .skip2 -.skip1 - call SlotMachine_3756e + jr .stopWheel +; Stop early if two 7 symbols or two bar symbols are lined up in the first two +; wheels OR if no symbols are lined up and the bottom symbol in wheel 2 is a +; 7 symbol or bar symbol. The second part could be a bug or a way to reduce the +; player's odds. +.sevenAndBarMode + call SlotMachine_FindWheel1Wheel2Matches ld a, [de] - cp $7 + cp (SLOTSBAR >> 8) + 1 ret nc -.skip2 +.stopWheel xor a - ld [wcd4e], a + ld [wSlotMachineWheel2SlipCounter], a ret -SlotMachine_3756e: ; 3756e (d:756e) - ld hl, wTrainerScreenX - ld de, wcd44 +SlotMachine_FindWheel1Wheel2Matches: ; 3756e (d:756e) +; return whether wheel 1 and wheel 2's current positions allow a match (given +; that wheel 3 stops in a good position) in Z + ld hl, wSlotMachineWheel1BottomTile + ld de, wSlotMachineWheel2BottomTile ld a, [de] - cp [hl] + cp [hl] ; wheel 1 bottom, wheel 2 bottom ret z inc de ld a, [de] - cp [hl] + cp [hl] ; wheel 1 bottom, wheel 2 middle ret z inc hl - cp [hl] + cp [hl] ; wheel 1 middle, wheel 2 middle ret z inc hl - cp [hl] + cp [hl] ; wheel 1 top, wheel 2 middle ret z inc de ld a, [de] - cp [hl] + cp [hl] ; wheel 1 top, wheel 2 top ret z dec de dec de ret -SlotMachine_37588: ; 37588 (d:7588) - call SlotMachine_GetWheelThreeTile - ld a, [wcd50] - cp $2 - jr z, .skip1 - cp $1 - jr z, .skip2 - ld hl, wTrainerScreenX - ld de, wcd45 - ld bc, wcd49 +SlotMachine_CheckForMatches: ; 37588 (d:7588) + call SlotMachine_GetWheel3Tiles + ld a, [wSlotMachineBet] + cp 2 + jr z, .checkMatchesFor2CoinBet + cp 1 + jr z, .checkMatchFor1CoinBet +; 3 coin bet allows diagonal matches (plus the matches for 1/2 coin bets) + ld hl, wSlotMachineWheel1BottomTile + ld de, wSlotMachineWheel2MiddleTile + ld bc, wSlotMachineWheel3TopTile call SlotMachine_CheckForMatch - jp z, .skip5 - ld hl, wcd43 - ld de, wcd45 - ld bc, wcd47 + jp z, .foundMatch + ld hl, wSlotMachineWheel1TopTile + ld de, wSlotMachineWheel2MiddleTile + ld bc, wSlotMachineWheel3BottomTile call SlotMachine_CheckForMatch - jr z, .skip5 -.skip1 - ld hl, wcd43 - ld de, wcd46 - ld bc, wcd49 + jr z, .foundMatch +; 2 coin bet allows top/bottom horizontal matches (plus the match for a 1 coin bet) +.checkMatchesFor2CoinBet + ld hl, wSlotMachineWheel1TopTile + ld de, wSlotMachineWheel2TopTile + ld bc, wSlotMachineWheel3TopTile call SlotMachine_CheckForMatch - jr z, .skip5 - ld hl, wTrainerScreenX - ld de, wcd44 - ld bc, wcd47 + jr z, .foundMatch + ld hl, wSlotMachineWheel1BottomTile + ld de, wSlotMachineWheel2BottomTile + ld bc, wSlotMachineWheel3BottomTile call SlotMachine_CheckForMatch - jr z, .skip5 -.skip2 - ld hl, wcd42 - ld de, wcd45 - ld bc, wcd48 + jr z, .foundMatch +; 1 coin bet only allows a middle horizontal match +.checkMatchFor1CoinBet + ld hl, wSlotMachineWheel1MiddleTile + ld de, wSlotMachineWheel2MiddleTile + ld bc, wSlotMachineWheel3MiddleTile call SlotMachine_CheckForMatch - jr z, .skip5 - ld a, [wcd4c] + jr z, .foundMatch + ld a, [wSlotMachineFlags] and $c0 - jr z, .skip3 - ld hl, wcd4f + jr z, .noMatch + ld hl, wSlotMachineRerollCounter dec [hl] - jr nz, .skip4 -.skip3 + jr nz, .rollWheel3DownByOneSymbol +.noMatch ld hl, NotThisTimeText call PrintText -.loop +.done xor a ld [wc002], a ret -.skip4 - call SlotMachine_37833 +.rollWheel3DownByOneSymbol + call SlotMachine_AnimWheel3 call DelayFrame - call SlotMachine_37833 + call SlotMachine_AnimWheel3 call DelayFrame - jp SlotMachine_37588 -.skip5 - ld a, [wcd4c] + jp SlotMachine_CheckForMatches +.foundMatch + ld a, [wSlotMachineFlags] and $c0 - jr z, .skip4 + jr z, .rollWheel3DownByOneSymbol ; roll wheel if player isn't allowed to win and $80 - jr nz, .skip6 + jr nz, .acceptMatch +; if 7/bar matches aren't enabled and the match was a 7/bar symbol, roll wheel ld a, [hl] - cp $7 - jr c, .skip4 -.skip6 + cp (SLOTSBAR >> 8) + 1 + jr c, .rollWheel3DownByOneSymbol +.acceptMatch ld a, [hl] sub $2 - ld [wTrainerScreenX], a + ld [wSlotMachineWinningSymbol], a ld hl, SlotRewardPointers ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hli] ld e, a @@ -426,39 +446,39 @@ SlotMachine_37588: ; 37588 (d:7588) ld h, [hl] ld l, a ld de, wcf4b - ld bc, $0004 + ld bc, 4 call CopyData pop hl - ld de, .asm_37638 + ld de, .flashScreenLoop push de jp [hl] -.asm_37638 - ld a, [$ff47] +.flashScreenLoop + ld a, [rBGP] xor $40 - ld [$ff47], a + ld [rBGP], a ld c, 5 call DelayFrames dec b - jr nz, .asm_37638 - ld hl, wcd4a + jr nz, .flashScreenLoop + ld hl, wPayoutCoins ld [hl], d inc hl ld [hl], e - call SlotMachine_3775f - ld hl, SlotsMachineText_37665 + call SlotMachine_PrintPayoutCoins + ld hl, SymbolLinedUpSlotMachineText call PrintText call WaitForTextScrollButtonPress - call SlotMachine_3776b - call SlotMachine_3775f + call SlotMachine_PayCoinsToPlayer + call SlotMachine_PrintPayoutCoins ld a, $e4 - ld [$ff48], a - jp .loop + ld [rOBP0], a + jp .done -SlotsMachineText_37665: ; 37665 (d:7665) +SymbolLinedUpSlotMachineText: ; 37665 (d:7665) TX_ASM push bc - call SlotMachine_37728 + call SlotMachine_PrintWinningSymbol ld hl, LinedUpText pop bc inc bc @@ -510,28 +530,28 @@ SlotMachine_CheckForMatch: ; 376a2 (d:76a2) cp [hl] ret -SlotMachine_GetWheelThreeTile: ; 376a8 (d:76a8) - ld de, wcd47 +SlotMachine_GetWheel3Tiles: ; 376a8 (d:76a8) + ld de, wSlotMachineWheel3BottomTile ld hl, SlotMachineWheel3 - ld a, [wTrainerScreenY] - call SlotMachine_GetWheelTile + ld a, [wSlotMachineWheel3Offset] + call SlotMachine_GetWheelTiles -SlotMachine_GetWheelTwoTile: ; 376b4 (d:76b4) - ld de, wcd44 +SlotMachine_GetWheel2Tiles: ; 376b4 (d:76b4) + ld de, wSlotMachineWheel2BottomTile ld hl, SlotMachineWheel2 - ld a, [wTrainerFacingDirection] - call SlotMachine_GetWheelTile + ld a, [wSlotMachineWheel2Offset] + call SlotMachine_GetWheelTiles -SlotMachine_GetWheelOneTile: ; 376c0 (d:76c0) - ld de, wTrainerScreenX +SlotMachine_GetWheel1Tiles: ; 376c0 (d:76c0) + ld de, wSlotMachineWheel1BottomTile ld hl, SlotMachineWheel1 - ld a, [wTrainerEngageDistance] + ld a, [wSlotMachineWheel1Offset] -SlotMachine_GetWheelTile: ; 376c9 (d:76c9) +SlotMachine_GetWheelTiles: ; 376c9 (d:76c9) ld c, a - ld b, $0 + ld b, 0 add hl, bc - ld c, $3 + ld c, 3 .loop ld a, [hli] ld [de], a @@ -542,7 +562,7 @@ SlotMachine_GetWheelTile: ; 376c9 (d:76c9) ret SlotReward8Func: ; 376d7 (d:76d7) - ld hl, W_SUBANIMSUBENTRYADDR + ld hl, wSlotMachineAllowMatchesCounter ld a, [hl] and a jr z, .skip @@ -553,7 +573,7 @@ SlotReward8Func: ; 376d7 (d:76d7) ret SlotReward15Func: ; 376e5 (d:76e5) - ld hl, W_SUBANIMSUBENTRYADDR + ld hl, wSlotMachineAllowMatchesCounter ld a, [hl] and a jr z, .skip @@ -567,7 +587,7 @@ SlotReward100Func: ; 376f3 (d:76f3) ld a, (SFX_1f_42 - SFX_Headers_1f) / 3 call PlaySound xor a - ld [wcd4c], a + ld [wSlotMachineFlags], a ld b, $8 ld de, 100 ret @@ -581,9 +601,9 @@ SlotReward300Func: ; 37702 (d:7702) cp $80 ld a, $0 jr c, .skip - ld [wcd4c], a + ld [wSlotMachineFlags], a .skip - ld [W_SUBANIMSUBENTRYADDR], a + ld [wSlotMachineAllowMatchesCounter], a ld b, $14 ld de, 300 ret @@ -592,26 +612,27 @@ YeahText: ; 37722 (d:7722) TX_FAR _YeahText db $0a, "@" -SlotMachine_37728: ; 37728 (d:7728) - ld hl, wTileMap + $11a - ld a, [wTrainerScreenX] +SlotMachine_PrintWinningSymbol: ; 37728 (d:7728) +; prints winning symbol and down arrow in text box + hlCoord 2, 14 + ld a, [wSlotMachineWinningSymbol] add $25 ld [hli], a inc a ld [hld], a inc a - ld de, $ffec + ld de, -SCREEN_WIDTH add hl, de ld [hli], a inc a ld [hl], a - ld hl, wTileMap + $152 - ld [hl], $ee + hlCoord 18, 16 + ld [hl], $ee ; down arrow ret -SlotMachine_37741: ; 37741 (d:7741) - ld hl, wcd4b - ld a, [wcd50] +SlotMachine_SubtractBetFromPlayerCoins: ; 37741 (d:7741) + ld hl, wTempCoins2 + 1 + ld a, [wSlotMachineBet] ld [hld], a xor a ld [hli], a @@ -619,136 +640,143 @@ SlotMachine_37741: ; 37741 (d:7741) ld c, $2 predef SubBCDPredef -SlotMachine_37754: ; 37754 (d:7754) - ld hl, wTileMap + $19 +SlotMachine_PrintCreditCoins: ; 37754 (d:7754) + hlCoord 5, 1 ld de, wPlayerCoins ld c, $2 jp PrintBCDNumber -SlotMachine_3775f: ; 3775f (d:775f) - ld hl, wTileMap + $1f - ld de, wcd4a - ld bc, $8204 +SlotMachine_PrintPayoutCoins: ; 3775f (d:775f) + hlCoord 11, 1 + ld de, wPayoutCoins + ld bc, $8204 ; 2 bytes, 4 digits, leading zeroes jp PrintNumber -SlotMachine_3776b: ; 3776b (d:776b) +SlotMachine_PayCoinsToPlayer: ; 3776b (d:776b) ld a, $1 ld [wc002], a call WaitForSoundToFinish - ld hl, wcd46 + +; Put 1 in the temp coins variable. This value is added to the player's coins +; repeatedly so the player can watch the value go up 1 coin at a time. + ld hl, wTempCoins1 xor a ld [hli], a inc a ld [hl], a - ld a, $5 - ld [W_SUBANIMTRANSFORM], a + + ld a, 5 + ld [wAnimCounter], a + +; Subtract 1 from the payout amount and add 1 to the player's coins each +; iteration until the payout amount reaches 0. .loop - ld a, [wcd4b] + ld a, [wPayoutCoins + 1] ld l, a - ld a, [wcd4a] + ld a, [wPayoutCoins] ld h, a or l ret z - ld de, $ffff + ld de, -1 add hl, de ld a, l - ld [wcd4b], a + ld [wPayoutCoins + 1], a ld a, h - ld [wcd4a], a - ld hl, wcd47 + ld [wPayoutCoins], a + ld hl, wTempCoins1 + 1 ld de, wPlayerCoins + 1 ld c, $2 predef AddBCDPredef - call SlotMachine_37754 - call SlotMachine_3775f + call SlotMachine_PrintCreditCoins + call SlotMachine_PrintPayoutCoins ld a, (SFX_1f_65 - SFX_Headers_1f) / 3 call PlaySound - ld a, [W_SUBANIMTRANSFORM] + ld a, [wAnimCounter] dec a jr nz, .skip1 - ld a, [$ff48] - xor $40 - ld [$ff48], a - ld a, $5 + ld a, [rOBP0] + xor $40 ; make the slot wheel symbols flash + ld [rOBP0], a + ld a, 5 .skip1 - ld [W_SUBANIMTRANSFORM], a - ld a, [wTrainerScreenX] - cp $7 + ld [wAnimCounter], a + ld a, [wSlotMachineWinningSymbol] + cp (SLOTSBAR >> 8) + 1 ld c, 8 jr nc, .skip2 - srl c + srl c ; c = 4 (make the the coins transfer faster if the symbol was 7 or bar) .skip2 call DelayFrames jr .loop -SlotMachine_377ce: ; 377ce (d:77ce) +SlotMachine_PutOutLitBalls: ; 377ce (d:77ce) ld a, $23 ld [wd08a], a - jr SlotMachine_377e3 + jr SlotMachine_UpdateThreeCoinBallTiles -SlotMachine_377d5: ; 377d5 (d:77d5) +SlotMachine_LightBalls: ; 377d5 (d:77d5) ld a, $14 ld [wd08a], a - ld a, [wcd50] + ld a, [wSlotMachineBet] dec a - jr z, SlotMachine_377fb + jr z, SlotMachine_UpdateOneCoinBallTiles dec a - jr z, SlotMachine_377ef + jr z, SlotMachine_UpdateTwoCoinBallTiles -SlotMachine_377e3: ; 377e3 (d:77e3) - ld hl, wTileMap + $2b - call SlotMachine_377fe - ld hl, wTileMap + $cb - call SlotMachine_377fe +SlotMachine_UpdateThreeCoinBallTiles: ; 377e3 (d:77e3) + hlCoord 3, 2 + call SlotMachine_UpdateBallTiles + hlCoord 3, 10 + call SlotMachine_UpdateBallTiles -SlotMachine_377ef: ; 377ef (d:77ef) - ld hl, wTileMap + $53 - call SlotMachine_377fe - ld hl, wTileMap + $a3 - call SlotMachine_377fe +SlotMachine_UpdateTwoCoinBallTiles: ; 377ef (d:77ef) + hlCoord 3, 4 + call SlotMachine_UpdateBallTiles + hlCoord 3, 8 + call SlotMachine_UpdateBallTiles -SlotMachine_377fb: ; 377fb (d:77fb) - ld hl, wTileMap + $7b +SlotMachine_UpdateOneCoinBallTiles: ; 377fb (d:77fb) + hlCoord 3, 6 -SlotMachine_377fe: ; 377fe (d:77fe) +SlotMachine_UpdateBallTiles: ; 377fe (d:77fe) ld a, [wd08a] ld [hl], a - ld bc, $000d + ld bc, 13 add hl, bc ld [hl], a - ld bc, $0007 + ld bc, 7 add hl, bc inc a ld [hl], a - ld bc, $000d + ld bc, 13 add hl, bc ld [hl], a ret -SlotMachine_37813: ; 37813 (d:7813) +SlotMachine_AnimWheel1: ; 37813 (d:7813) ld bc, SlotMachineWheel1 - ld de, wTrainerEngageDistance + ld de, wSlotMachineWheel1Offset ld hl, wOAMBuffer ld a, $30 ld [W_BASECOORDX], a - jr SlotMachine_37841 + jr SlotMachine_AnimWheel -SlotMachine_37823: ; 37823 (d:7823) +SlotMachine_AnimWheel2: ; 37823 (d:7823) ld bc, SlotMachineWheel2 - ld de, wTrainerFacingDirection + ld de, wSlotMachineWheel2Offset ld hl, wOAMBuffer + $30 ld a, $50 ld [W_BASECOORDX], a - jr SlotMachine_37841 + jr SlotMachine_AnimWheel -SlotMachine_37833: ; 37833 (d:7833) +SlotMachine_AnimWheel3: ; 37833 (d:7833) ld bc, SlotMachineWheel3 - ld de, wTrainerScreenY + ld de, wSlotMachineWheel3Offset ld hl, wOAMBuffer + $60 ld a, $70 ld [W_BASECOORDX], a -SlotMachine_37841: ; 37841 (d:7841) +SlotMachine_AnimWheel: ; 37841 (d:7841) ld a, $58 ld [W_BASECOORDY], a push de @@ -756,10 +784,9 @@ SlotMachine_37841: ; 37841 (d:7841) ld d, b add c ld e, a - jr nc, SlotMachine_3784e + jr nc, .loop inc d - -SlotMachine_3784e: ; 3784e (d:784e) +.loop ld a, [W_BASECOORDY] ld [hli], a ld a, [W_BASECOORDX] @@ -783,30 +810,30 @@ SlotMachine_3784e: ; 3784e (d:784e) sub $8 ld [W_BASECOORDY], a cp $28 - jr nz, SlotMachine_3784e + jr nz, .loop pop de ld a, [de] - inc a - cp $1e + inc a ; advance the offset so that the wheel animates + cp 30 jr nz, .skip - xor a + xor a ; wrap around to 0 when the offset reaches 30 .skip ld [de], a ret -SlotMachine_37882: ; 37882 (d:7882) +SlotMachine_HandleInputWhileWheelsSpin: ; 37882 (d:7882) call DelayFrame call JoypadLowSensitivity ld a, [hJoy5] - and $1 + and A_BUTTON ret z - ld hl, wTrainerSpriteOffset + ld hl, wStoppingWhichSlotMachineWheel ld a, [hl] dec a - ld de, wcd4d + ld de, wSlotMachineWheel1SlipCounter jr z, .skip dec a - ld de, wcd4e + ld de, wSlotMachineWheel2SlipCounter jr z, .skip .loop inc [hl] @@ -845,20 +872,13 @@ LoadSlotMachineTiles: ; 378a8 (d:78a8) ld [hli], a ld [hli], a ld [hl], a - call SlotMachine_37813 - call SlotMachine_37823 - jp SlotMachine_37833 + call SlotMachine_AnimWheel1 + call SlotMachine_AnimWheel2 + jp SlotMachine_AnimWheel3 SlotMachineMap: ; 378f5 (d:78f5) INCBIN "gfx/tilemaps/slotmachine.map" -SLOTS7 EQU $0200 -SLOTSBAR EQU $0604 -SLOTSCHERRY EQU $0A08 -SLOTSFISH EQU $0E0C -SLOTSBIRD EQU $1210 -SLOTSMOUSE EQU $1614 - INCLUDE "data/slot_machine_wheels.asm" SlotMachineTiles1: ; 37a51 (d:7a51) diff --git a/engine/town_map.asm b/engine/town_map.asm index 0dd84226..d90dab95 100755 --- a/engine/town_map.asm +++ b/engine/town_map.asm @@ -79,7 +79,7 @@ Func_70e92: ; 70e92 (1c:4e92) xor a ld [wTownMapSpriteBlinkingEnabled], a ld [hJoy7], a - ld [wTownMapSpriteBlinkingCounter], a + ld [wAnimCounter], a call Func_711ab pop hl pop af @@ -319,7 +319,7 @@ LoadTownMap: ; 7109b (1c:509b) call Delay3 call GBPalNormal xor a - ld [wTownMapSpriteBlinkingCounter], a + ld [wAnimCounter], a inc a ld [wTownMapSpriteBlinkingEnabled], a ret @@ -577,7 +577,7 @@ MonNestIcon: ; 716be (1c:56be) INCBIN "gfx/mon_nest_icon.1bpp" TownMapSpriteBlinkingAnimation: ; 716c6 (1c:56c6) - ld a, [wTownMapSpriteBlinkingCounter] + ld a, [wAnimCounter] inc a cp 25 jr z, .hideSprites @@ -601,5 +601,5 @@ TownMapSpriteBlinkingAnimation: ; 716c6 (1c:56c6) jr nz, .hideSpritesLoop ld a, 25 .done - ld [wTownMapSpriteBlinkingCounter], a + ld [wAnimCounter], a jp DelayFrame diff --git a/home.asm b/home.asm index f6a1c914..f7da6e3a 100644 --- a/home.asm +++ b/home.asm @@ -3928,7 +3928,7 @@ HandleMenuInputPokemonSelection:: ; 3ac2 (0:3ac2) ld [H_DOWNARROWBLINKCNT2],a ; blinking down arrow timing value 2 .loop1 xor a - ld [wPartyMonAnimCounter],a ; counter for pokemon shaking animation + ld [wAnimCounter],a ; counter for pokemon shaking animation call PlaceMenuCursor call Delay3 .loop2 diff --git a/home/init.asm b/home/init.asm index 5a74dca9..b3f31944 100644 --- a/home/init.asm +++ b/home/init.asm @@ -31,8 +31,8 @@ rLCDC_DEFAULT EQU %11100011 ld [$ff4a], a ld [$ff06], a ld [$ff07], a - ld [$ff47], a - ld [$ff48], a + ld [rBGP], a + ld [rOBP0], a ld [$ff49], a ld a, rLCDC_ENABLE_MASK diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm index 6887c9c4..64701f08 100755 --- a/scripts/celadongamecorner.asm +++ b/scripts/celadongamecorner.asm @@ -12,7 +12,7 @@ CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf) res 6, [hl] ret z call Random - ld a, [$ffd3] + ld a, [hRandomAdd] cp $7 jr nc, .asm_48be2 ld a, $8 @@ -20,7 +20,7 @@ CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf) srl a srl a srl a - ld [wUnknownSlotVar], a + ld [wLuckySlotHiddenObjectIndex], a ret CeladonGameCornerScript_48bec: ; 48bec (12:4bec) diff --git a/wram.asm b/wram.asm index a1b9f1d3..c1002fcd 100755 --- a/wram.asm +++ b/wram.asm @@ -357,6 +357,13 @@ wNPCMovementScriptBank:: ; cc58 ds 2 +wSlotMachineSevenAndBarModeChance:: ; cc5b +; If a random number greater than this value is generated, then the player is +; allowed to have three 7 symbols or bar symbols line up. +; So, this value is actually the chance of NOT entering that mode. +; If the slot is lucky, it equals 250, giving a 5/256 (~2%) chance. +; Otherwise, it equals 253, giving a 2/256 (~0.8%) chance. + wHallOfFame:: ; cc5b wBoostExpByExpAll:: ; cc5b wAnimationType:: ; cc5b @@ -365,7 +372,12 @@ wAnimationType:: ; cc5b wcc5b:: ds 1 ; these upcoming values below are miscellaneous storage values wcc5c:: ds 1 ; used in pokedex evaluation as well wcc5d:: ds 1 ; used in pokedex evaluation -wcc5e:: ds 13 ; as well as used as miscellaneous storage value, this is also used for the game corner slots + +wSlotMachineSavedROMBank:: ; cc5e +; ROM back to return to when the player is done with the slot machine + ds 1 + + ds 12 wcc6b:: ds 14 ; doesn't seem to be used for anything, probably just more storage wcc79:: ds 30 ; used in battle animations @@ -463,7 +475,7 @@ wPlayerMonMinimized:: ds 1 ; ccf7 ds 13 -wUnknownSlotVar:: ; cd05 +wLuckySlotHiddenObjectIndex:: ; cd05 wEnemyNumHits:: ; cd05 ; number of hits by enemy in attacks like Double Slap, etc. @@ -588,6 +600,10 @@ wOverrideSimulatedJoypadStatesMask:: ; cd3b ds 1 +wStoppingWhichSlotMachineWheel:: ; cd3d +; which wheel the player is trying to stop +; 0 = none, 1 = wheel 1, 2 = wheel 2, 3 or greater = wheel 3 + wTradedPlayerMonSpecies:: ; cd3d wTradingWhichPlayerMon:: ; cd3d @@ -611,6 +627,8 @@ wWhichTrade:: ; cd3d wTrainerSpriteOffset:: ; cd3d ds 1 +wSlotMachineWheel1Offset:: ; cd3e + wTradedEnemyMonSpecies:: ; cd3e wTradingWhichEnemyMon:: ; cd3e @@ -626,6 +644,8 @@ wHiddenObjectFunctionRomBank:: ; cd3e wTrainerEngageDistance:: ; cd3e ds 1 +wSlotMachineWheel2Offset:: ; cd3f + wNameOfPlayerMonToBeTraded:: ; cd3f wFlyAnimBirdSpriteImageIndex:: ; cd3f @@ -640,6 +660,8 @@ wTrainerFacingDirection:: ; cd3f wcd3f:: ; used with daycare text for money amount ds 1 +wSlotMachineWheel3Offset:: ; cd40 + wPlayerSpinInPlaceAnimSoundID:: ; cd40 wHiddenObjectY:: ; cd40 @@ -651,30 +673,89 @@ wTradedPlayerMonOT:: ; cd41 wHiddenObjectX:: ; cd41 +wSlotMachineWinningSymbol:: ; cd42 +; the OAM tile number of the upper left corner of the winning symbol minus 2 + +wSlotMachineWheel1BottomTile:: ; cd41 + wTrainerScreenX:: ; cd41 ds 1 ; a lot of the uses for these values use more than the said address +wSlotMachineWheel1MiddleTile:: ; cd42 + wcd42:: ds 1 ; used in pewter center script, printing field mon moves, slot machines and HoF PC + +wSlotMachineWheel1TopTile:: ; cd43 + wcd43:: ds 1 ; slot machine stuff and GetMonFieldMoves -wcd44:: ds 1 ; just slot machine -wcd45:: ds 1 ; slot machine... -wcd46:: ds 1 ; slot machine... + +wSlotMachineWheel2BottomTile:: ; cd44 + ds 1 + +wSlotMachineWheel2MiddleTile:: ; cd45 + ds 1 + +wTempCoins1:: ; cd46 +; 2 bytes +; temporary variable used to add payout amount to the player's coins + +wSlotMachineWheel2TopTile:: ; cd46 + ds 1 + +wSlotMachineWheel3BottomTile:: ; cd47 + wcd47:: ds 1 ; used in slot machine and spinning player sprite + +wSlotMachineWheel3MiddleTile:: ; cd48 + wcd48:: ds 1 ; same as above + +wSlotMachineWheel3TopTile:: ; cd49 + wcd49:: ds 1 ; used in slot machine, displaying the gym leaders/badges on the trainer card, and displaying the town map -wcd4a:: ds 1 ; probably used in one of the above mentioned functions -wcd4b:: ds 1 ; same as above + +wTempCoins2:: ; cd4a +; 2 bytes +; temporary variable used to subtract the bet amount from the player's coins + +wPayoutCoins:: ; cd4a +; 2 bytes + ds 1 + +wcd4b:: ; cd4b +; used in player animations + ds 1 wTradedPlayerMonOTID:: ; cd4c -wcd4c:: ds 1 ; slot machine and probably other above stuff +wSlotMachineFlags:: ; cd4c +; These flags are set randomly and control when the wheels stop. +; bit 6: allow the player to win in general +; bit 7: allow the player to win with 7 or bar (plus the effect of bit 6) + ds 1 + +wSlotMachineWheel1SlipCounter:: ; cd4d +; wheel 1 can "slip" while this is non-zero + wcd4d:: ds 1 ; used with cut and slot machine +wSlotMachineWheel2SlipCounter:: ; cd4e +; wheel 2 can "slip" while this is non-zero + wTradedEnemyMonOT:: ; cd4e wcd4e:: ds 1 ; used with in-game trades and slot machine + +wSlotMachineRerollCounter:: ; cd4f +; The remaining number of times wheel 3 will roll down a symbol until a match is +; found, when winning is enabled. It's initialized to 4 each bet. + wcd4f:: ds 1 ; used with in-game trades, emotion bubbles, and player animations + +wSlotMachineBet:: ; cd50 +; how many coins the player bet on the slot machine (1 to 3) + wcd50:: ds 9 ; used with in-game trades, emotion bubbles, and player and miscellaneous sprite animations wTradedEnemyMonOTID:: ; cd59 @@ -1194,9 +1275,8 @@ wTradedMonMovingRight:: ; d08a wd08a:: ds 1 ; used with sprites and displaying the option menu on the main menu screen? -wTownMapSpriteBlinkingCounter:: ; d08b - -wPartyMonAnimCounter:: ; d08b +wAnimCounter:: ; d08b +; generic counter variable for various animations W_SUBANIMTRANSFORM:: ; d08b ; controls what transformations are applied to the subanimation @@ -1222,6 +1302,13 @@ wEndBattleTextRomBank:: ; d092 W_SUBANIMADDRPTR:: ; d094 ; the address _of the address_ of the current subanimation entry ds 2 + +wSlotMachineAllowMatchesCounter:: ; d096 +; If non-zero, the allow matches flag is always set. +; There is a 1/256 (~0.4%) chance that this value will be set to 60, which is +; the only way it can increase. Winning certain payout amounts will decrement it +; or zero it. + W_SUBANIMSUBENTRYADDR:: ; d096 ; the address of the current subentry of the current subanimation ds 2 -- cgit v1.3.1-sl0p From 0066e09828265cc1cc83eca27e6be76911f187ec Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Mon, 13 Jul 2015 15:40:33 -0700 Subject: named party menu/naming screen wram variables --- constants/misc_constants.asm | 24 +++++++++++++++++++++ engine/battle/animations.asm | 4 ++-- engine/battle/core.asm | 16 +++++++------- engine/in_game_trades.asm | 4 ++-- engine/items/items.asm | 46 ++++++++++++++++++++--------------------- engine/menu/naming_screen.asm | 28 ++++++++++++------------- engine/menu/party_menu.asm | 16 +++++++------- engine/menu/start_sub_menus.asm | 14 ++++++------- engine/oak_speech2.asm | 8 +++---- home.asm | 2 +- main.asm | 4 ++-- scripts/daycarem.asm | 2 +- scripts/namerater.asm | 4 ++-- wram.asm | 8 ++++++- 14 files changed, 105 insertions(+), 75 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 323e2ab6..eca97408 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -85,6 +85,30 @@ SLOTSFISH EQU $0E0C SLOTSBIRD EQU $1210 SLOTSMOUSE EQU $1614 +; party menu types +NORMAL_PARTY_MENU EQU 0 +USE_ITEM_PARTY_MENU EQU 1 +BATTLE_PARTY_MENU EQU 2 +TMHM_PARTY_MENU EQU 3 +SWAP_MONS_PARTY_MENU EQU 4 +EVO_STONE_PARTY_MENU EQU 5 + +; party memu message IDs +ANTIDOTE_MSG EQU $F0 +BURN_HEAL_MSG EQU $F1 +ICE_HEAL_MSG EQU $F2 +AWAKENING_MSG EQU $F3 +PARALYZ_HEAL_MSG EQU $F4 +POTION_MSG EQU $F5 +FULL_HEAL_MSG EQU $F6 +REVIVE_MSG EQU $F7 +RARE_CANDY_MSG EQU $F8 + +; naming screen types +NAME_PLAYER_SCREEN EQU 0 +NAME_RIVAL_SCREEN EQU 1 +NAME_MON_SCREEN EQU 2 + ; serial ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01 diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index ea879e53..83590d4c 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -336,14 +336,14 @@ LoadAnimationTileset: ; 781d2 (1e:41d2) ld d,0 add hl,de ld a,[hli] - ld [wd07d],a ; number of tiles + ld [wTempTilesetNumTiles],a ; number of tiles ld a,[hli] ld e,a ld a,[hl] ld d,a ; de = address of tileset ld hl,vSprites + $310 ld b, BANK(AnimationTileset1) ; ROM bank - ld a,[wd07d] + ld a,[wTempTilesetNumTiles] ld c,a ; number of tiles jp CopyVideoData ; load tileset diff --git a/engine/battle/core.asm b/engine/battle/core.asm index f37da950..a611864d 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -1162,8 +1162,8 @@ UseNextMonText: ; 3c7d3 (f:47d3) ; choose next player mon to send out ; stores whether enemy mon has no HP left in Z flag ChooseNextMon: ; 3c7d8 (f:47d8) - ld a, $2 - ld [wd07d], a + ld a, BATTLE_PARTY_MENU + ld [wPartyMenuTypeOrMessageID], a call DisplayPartyMenu .checkIfMonChosen jr nc, .monChosen @@ -1462,8 +1462,8 @@ EnemySendOutFirstMon: ; 3c92a (f:492a) ld a,[wCurrentMenuItem] and a jr nz,.next4 - ld a,2 - ld [wd07d],a + ld a,BATTLE_PARTY_MENU + ld [wPartyMenuTypeOrMessageID],a call DisplayPartyMenu .next9 ld a,1 @@ -2384,8 +2384,8 @@ PartyMenuOrRockOrRun: jp UseBagItem .partyMenuWasSelected call LoadScreenTilesFromBuffer1 - xor a - ld [wd07d], a + xor a ; NORMAL_PARTY_MENU + ld [wPartyMenuTypeOrMessageID], a ld [wMenuItemToSwap], a call DisplayPartyMenu .checkIfPartyMonWasSelected @@ -2403,8 +2403,8 @@ PartyMenuOrRockOrRun: ld bc, $81 ld a, $7f call FillMemory - xor a - ld [wd07d], a + xor a ; NORMAL_PARTY_MENU + ld [wPartyMenuTypeOrMessageID], a call GoBackToPartyMenu jr .checkIfPartyMonWasSelected .partyMonWasSelected diff --git a/engine/in_game_trades.asm b/engine/in_game_trades.asm index 3594a26e..7366996c 100755 --- a/engine/in_game_trades.asm +++ b/engine/in_game_trades.asm @@ -87,8 +87,8 @@ InGameTrade_GetMonName: ; 71b6a (1c:5b6a) INCLUDE "data/trades.asm" InGameTrade_DoTrade: ; 71c07 (1c:5c07) - xor a - ld [wd07d],a + xor a ; NORMAL_PARTY_MENU + ld [wPartyMenuTypeOrMessageID],a dec a ld [wUpdateSpritesEnabled],a call DisplayPartyMenu diff --git a/engine/items/items.asm b/engine/items/items.asm index 24ff544e..fae2a871 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -633,8 +633,8 @@ ItemUseEvoStone: ; da5b (3:5a5b) ld a,[wcf91] ld [wd156],a push af - ld a,$05 ; evolution stone party menu - ld [wd07d],a + ld a,EVO_STONE_PARTY_MENU + ld [wPartyMenuTypeOrMessageID],a ld a,$ff ld [wUpdateSpritesEnabled],a call DisplayPartyMenu @@ -678,8 +678,8 @@ ItemUseMedicine: ; dabb (3:5abb) push af ld a,[wcf91] push af - ld a,$01 - ld [wd07d],a ; item use party menu + ld a,USE_ITEM_PARTY_MENU + ld [wPartyMenuTypeOrMessageID],a ld a,$ff ld [wUpdateSpritesEnabled],a ld a,[wd152] @@ -737,22 +737,22 @@ ItemUseMedicine: ; dabb (3:5abb) ld bc,4 add hl,bc ; hl now points to status ld a,[wcf91] - ld bc,$f008 + ld bc, (ANTIDOTE_MSG << 8) | (1 << PSN) cp a,ANTIDOTE jr z,.checkMonStatus - ld bc,$f110 + ld bc, (BURN_HEAL_MSG << 8) | (1 << BRN) cp a,BURN_HEAL jr z,.checkMonStatus - ld bc,$f220 + ld bc, (ICE_HEAL_MSG << 8) | (1 << FRZ) cp a,ICE_HEAL jr z,.checkMonStatus - ld bc,$f307 + ld bc, (AWAKENING_MSG << 8) | SLP cp a,AWAKENING jr z,.checkMonStatus - ld bc,$f440 + ld bc, (PARALYZ_HEAL_MSG << 8) | (1 << PAR) cp a,PARLYZ_HEAL jr z,.checkMonStatus - ld bc,$f6ff ; Full Heal + ld bc, (FULL_HEAL_MSG << 8) | $ff ; Full Heal .checkMonStatus ld a,[hl] ; pokemon's status and c ; does the pokemon have a status ailment the item can cure? @@ -761,7 +761,7 @@ ItemUseMedicine: ; dabb (3:5abb) xor a ld [hl],a ; remove the status ailment in the party data ld a,b - ld [wd07d],a ; the message to display for the item used + ld [wPartyMenuTypeOrMessageID],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 @@ -1078,15 +1078,15 @@ ItemUseMedicine: ; dabb (3:5abb) ld a,[hFlags_0xFFF6] res 0,a ld [hFlags_0xFFF6],a - ld a,$f7 ; revived message - ld [wd07d],a + ld a,REVIVE_MSG + ld [wPartyMenuTypeOrMessageID],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 [wd07d],a + ld a,POTION_MSG + ld [wPartyMenuTypeOrMessageID],a jr .showHealingItemMessage .playStatusAilmentCuringSound ld a,(SFX_02_3e - SFX_Headers_02) / 3 ; status ailment curing sound @@ -1257,8 +1257,8 @@ ItemUseMedicine: ; dabb (3:5abb) ld a,[hl] adc b ld [hl],a - ld a,$f8 ; level up message - ld [wd07d],a + ld a,RARE_CANDY_MSG + ld [wPartyMenuTypeOrMessageID],a call RedrawPartyMenu pop de ld a,d @@ -1878,8 +1878,8 @@ ItemUsePPRestore: ; e31e (3:631e) .chooseMon xor a ld [wUpdateSpritesEnabled],a - ld a,$01 ; item use party menu - ld [wd07d],a + ld a,USE_ITEM_PARTY_MENU + ld [wPartyMenuTypeOrMessageID],a call DisplayPartyMenu jr nc,.chooseMove jp .itemNotUsed @@ -2118,8 +2118,8 @@ ItemUseTMHM: ; e479 (3:6479) call CopyData ld a,$ff ld [wUpdateSpritesEnabled],a - ld a,$03 ; teach TM/HM party menu - ld [wd07d],a + ld a,TMHM_PARTY_MENU + ld [wPartyMenuTypeOrMessageID],a call DisplayPartyMenu push af ld hl,wd036 @@ -2650,8 +2650,8 @@ SendNewMonToBox: ; e7a4 (3:67a4) jr nz, .asm_e817 .asm_e82a ld hl, wBoxMonNicks - ld a, $2 - ld [wd07d], a + ld a, NAME_MON_SCREEN + ld [wNamingScreenType], a predef AskName ld a, [W_NUMINBOX] dec a diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm index f77f7331..9bdfbee2 100755 --- a/engine/menu/naming_screen.asm +++ b/engine/menu/naming_screen.asm @@ -27,8 +27,8 @@ AskName: ; 64eb (1:64eb) xor a ld [wUpdateSpritesEnabled], a push hl - ld a, $2 - ld [wd07d], a + ld a, NAME_MON_SCREEN + ld [wNamingScreenType], a call DisplayNamingScreen ld a, [W_ISINBATTLE] and a @@ -53,12 +53,12 @@ DoYouWantToNicknameText: ; 0x6557 TX_FAR _DoYouWantToNicknameText db "@" -Func_655c: ; 655c (1:655c) +DisplayNameRaterScreen: ; 655c (1:655c) ld hl, wHPBarMaxHP xor a ld [wUpdateSpritesEnabled], a - ld a, $2 - ld [wd07d], a + ld a, NAME_MON_SCREEN + ld [wNamingScreenType], a call DisplayNamingScreen call GBPalWhiteOutWithDelay3 call RestoreScreenTilesAndReloadTilePatterns @@ -236,8 +236,8 @@ DisplayNamingScreen: ; 6596 (1:6596) cp $e4 ld de, Handakutens jr z, .asm_66e3 - ld a, [wd07d] - cp $2 + ld a, [wNamingScreenType] + cp NAME_MON_SCREEN jr nc, .checkMonNameLength ld a, [wHPBarMaxHP] cp $7 ; max length of player/rival names @@ -377,8 +377,8 @@ Func_680e: ; 680e (1:680e) ld de, wcf4b call PlaceString hlCoord 10, 3 - ld a, [wd07d] - cp $2 + ld a, [wNamingScreenType] + cp NAME_MON_SCREEN jr nc, .asm_6835 ld b, $7 jr .asm_6837 @@ -390,8 +390,8 @@ Func_680e: ; 680e (1:680e) ld [hli], a dec b jr nz, .asm_6839 - ld a, [wd07d] - cp $2 + ld a, [wNamingScreenType] + cp NAME_MON_SCREEN ld a, [wHPBarMaxHP] jr nc, .asm_684b cp $7 @@ -405,8 +405,8 @@ Func_680e: ; 680e (1:680e) ld [wTopMenuItemX], a ld a, $5 ld [wCurrentMenuItem], a - ld a, [wd07d] - cp $2 + ld a, [wNamingScreenType] + cp NAME_MON_SCREEN ld a, $9 jr nc, .asm_6867 ld a, $6 @@ -462,7 +462,7 @@ CalcStringLength: ; 68eb (1:68eb) PrintNamingText: ; 68f8 (1:68f8) hlCoord 0, 1 - ld a, [wd07d] + ld a, [wNamingScreenType] ld de, YourTextString and a jr z, .notNickname diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm index 6b365e2b..edd65a81 100755 --- a/engine/menu/party_menu.asm +++ b/engine/menu/party_menu.asm @@ -1,4 +1,4 @@ -; [wd07d] = menu type / message ID +; [wPartyMenuTypeOrMessageID] = menu type / message ID ; if less than $F0, it is a menu type ; menu types: ; 00: normal pokemon menu (e.g. Start menu) @@ -25,11 +25,11 @@ DrawPartyMenu_: ; 12cd2 (4:6cd2) callba LoadMonPartySpriteGfxWithLCDDisabled ; load pokemon icon graphics RedrawPartyMenu_: ; 12ce3 (4:6ce3) - ld a,[wd07d] - cp a,$04 + ld a,[wPartyMenuTypeOrMessageID] + cp a,SWAP_MONS_PARTY_MENU jp z,.printMessage call ErasePartyMenuCursors - callba SendBlkPacket_PartyMenu ; loads some data to wcf2e + callba SendBlkPacket_PartyMenu hlCoord 3, 0 ld de,wPartySpecies xor a @@ -75,10 +75,10 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) inc hl inc hl .skipUnfilledRightArrow - ld a,[wd07d] ; menu type - cp a,$03 + ld a,[wPartyMenuTypeOrMessageID] ; menu type + cp a,TMHM_PARTY_MENU jr z,.teachMoveMenu - cp a,$05 + cp a,EVO_STONE_PARTY_MENU jr z,.evolutionStoneMenu push hl ld bc,14 ; 14 columns to the right @@ -196,7 +196,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) push af push hl set 6,[hl] ; turn off letter printing delay - ld a,[wd07d] ; message ID + ld a,[wPartyMenuTypeOrMessageID] ; message ID cp a,$F0 jr nc,.printItemUseMessage add a diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index 0a940356..d97c3d99 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -12,14 +12,14 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) jp z,RedisplayStartMenu xor a ld [wMenuItemToSwap],a - ld [wd07d],a + ld [wPartyMenuTypeOrMessageID],a ld [wUpdateSpritesEnabled],a call DisplayPartyMenu jr .checkIfPokemonChosen .loop xor a ld [wMenuItemToSwap],a - ld [wd07d],a + ld [wPartyMenuTypeOrMessageID],a call GoBackToPartyMenu .checkIfPokemonChosen jr nc,.chosePokemon @@ -89,8 +89,8 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) 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 [wd07d],a + ld a,SWAP_MONS_PARTY_MENU + ld [wPartyMenuTypeOrMessageID],a call GoBackToPartyMenu jp .checkIfPokemonChosen .choseStats @@ -747,7 +747,7 @@ SwitchPartyMon_Stats: ; 13653 (4:7653) ret .asm_13661 xor a - ld [wd07d], a + ld [wPartyMenuTypeOrMessageID], a ld a, [wMenuItemToSwap] dec a ld b, a @@ -757,7 +757,7 @@ SwitchPartyMon_Stats: ; 13653 (4:7653) jr nz, .asm_1367b xor a ld [wMenuItemToSwap], a - ld [wd07d], a + ld [wPartyMenuTypeOrMessageID], a ret .asm_1367b ld a, b @@ -845,7 +845,7 @@ SwitchPartyMon_Stats: ; 13653 (4:7653) ld [wWhichTrade], a xor a ld [wMenuItemToSwap], a - ld [wd07d], a + ld [wPartyMenuTypeOrMessageID], a pop de pop hl ret diff --git a/engine/oak_speech2.asm b/engine/oak_speech2.asm index d8043484..49154d13 100755 --- a/engine/oak_speech2.asm +++ b/engine/oak_speech2.asm @@ -12,8 +12,8 @@ LoadDefaultNamesPlayer: ; 695d (1:695d) jr .asm_6999 .asm_697a ld hl, wPlayerName - xor a - ld [wd07d], a + xor a ; NAME_PLAYER_SCREEN + ld [wNamingScreenType], a call DisplayNamingScreen ld a, [wcf4b] cp $50 @@ -45,8 +45,8 @@ LoadDefaultNamesRival: ; 69a4 (1:69a4) jr .asm_69e1 .asm_69c1 ld hl, W_RIVALNAME - ld a, $1 - ld [wd07d], a + ld a, NAME_RIVAL_SCREEN + ld [wNamingScreenType], a call DisplayNamingScreen ld a, [wcf4b] cp $50 diff --git a/home.asm b/home.asm index f7da6e3a..b76713bf 100644 --- a/home.asm +++ b/home.asm @@ -456,7 +456,7 @@ HandlePartyMenuInput:: ; 145a (0:145a) callba ErasePartyMenuCursors xor a ld [wMenuItemToSwap],a - ld [wd07d],a + ld [wPartyMenuTypeOrMessageID],a call RedrawPartyMenu jr HandlePartyMenuInput .handleSwap diff --git a/main.asm b/main.asm index 3a1e0621..d3e2f404 100755 --- a/main.asm +++ b/main.asm @@ -3582,8 +3582,8 @@ _AddPartyMon: ; f2e5 (3:72e5) ld a, [$ffe4] dec a call SkipFixedLengthTextEntries - ld a, $2 - ld [wd07d], a + ld a, NAME_MON_SCREEN + ld [wNamingScreenType], a predef AskName .asm_f33f ld hl, wPartyMons diff --git a/scripts/daycarem.asm b/scripts/daycarem.asm index f48584dc..5e80a10f 100755 --- a/scripts/daycarem.asm +++ b/scripts/daycarem.asm @@ -25,7 +25,7 @@ DayCareMText1: ; 56254 (15:6254) call PrintText xor a ld [wUpdateSpritesEnabled], a - ld [wd07d], a + ld [wPartyMenuTypeOrMessageID], a ld [wMenuItemToSwap], a call DisplayPartyMenu push af diff --git a/scripts/namerater.asm b/scripts/namerater.asm index 010dc0cd..c2d028ef 100755 --- a/scripts/namerater.asm +++ b/scripts/namerater.asm @@ -49,7 +49,7 @@ NameRaterText1: ; 1da56 (7:5a56) ld hl, NameRaterText_1dab8 call PrintText xor a - ld [wd07d], a + ld [wPartyMenuTypeOrMessageID], a ld [wUpdateSpritesEnabled], a ld [wMenuItemToSwap], a call DisplayPartyMenu @@ -68,7 +68,7 @@ NameRaterText1: ; 1da56 (7:5a56) jr nz, .asm_1daae ld hl, NameRaterText_1dac2 call PrintText - callba Func_655c + callba DisplayNameRaterScreen jr c, .asm_1daae ld hl, NameRaterText_1dac7 .asm_1daa8 diff --git a/wram.asm b/wram.asm index c1002fcd..13853b55 100755 --- a/wram.asm +++ b/wram.asm @@ -1232,7 +1232,13 @@ W_ANIMATIONID:: ; d07c ; ID number of the current battle animation ds 1 -wd07d:: ds 1 ; used with naming functions and party display type +wNamingScreenType:: ; d07d + +wPartyMenuTypeOrMessageID:: ; d07d + +wTempTilesetNumTiles:: ; d07d +; temporary storage for the number of tiles in a tileset + ds 1 wSavedListScrollOffset:: ; d07e ; used by the pokemart code to save the existing value of wListScrollOffset -- cgit v1.3.1-sl0p From b509b48a7f5a9a80225b9c030d7334b26b521c62 Mon Sep 17 00:00:00 2001 From: dannye Date: Tue, 14 Jul 2015 00:21:03 -0500 Subject: Use more *Coord also town map code relabelling YamaArashi just did town map relabelling but oh well I aleady made the changes and don't feel like redoing it --- data/town_map_order.asm | 1 + engine/HoF_room_pc.asm | 23 ++--- engine/battle/animations.asm | 4 +- engine/battle/battle_transitions.asm | 10 +-- engine/battle/core.asm | 10 +-- engine/evos_moves.asm | 2 +- engine/hidden_object_functions17.asm | 10 +-- engine/hidden_object_functions3.asm | 2 +- engine/hidden_object_functions7.asm | 4 +- engine/intro.asm | 2 +- engine/menu/bills_pc.asm | 8 +- engine/menu/diploma.asm | 12 +-- engine/menu/main_menu.asm | 12 +-- engine/menu/naming_screen.asm | 2 +- engine/menu/players_pc.asm | 2 +- engine/menu/prize_menu.asm | 36 ++++---- engine/menu/start_sub_menus.asm | 2 +- engine/oak_speech2.asm | 4 +- engine/overworld/cinnabar_lab.asm | 2 +- engine/overworld/movement.asm | 2 +- engine/save.asm | 2 +- engine/slot_machine.asm | 4 +- engine/town_map.asm | 165 +++++++++++++++++------------------ engine/trade.asm | 2 +- home.asm | 10 +-- home/copy2.asm | 8 +- home/overworld.asm | 8 +- home/text.asm | 2 +- main.asm | 4 +- scripts/bikeshop.asm | 2 +- scripts/celadonmartroof.asm | 2 +- scripts/redshouse1f.asm | 2 +- 32 files changed, 182 insertions(+), 179 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/data/town_map_order.asm b/data/town_map_order.asm index 3bd8c223..4fb4f33b 100755 --- a/data/town_map_order.asm +++ b/data/town_map_order.asm @@ -46,3 +46,4 @@ TownMapOrder: ; 70f11 (1c:4f11) db VICTORY_ROAD_3 db INDIGO_PLATEAU db POWER_PLANT +TownMapOrderEnd: diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index c33e9141..de048ffe 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -14,10 +14,10 @@ HallOfFamePC: ; 7405c (1d:405c) ld bc, $10 ld a, $ff call FillMemory - ld hl, wTileMap - call Func_7417b + hlCoord 0, 0 + call FillFourRowsWithBlack hlCoord 0, 14 - call Func_7417b + call FillFourRowsWithBlack ld a, $c0 ld [rBGP], a call EnableLCD @@ -34,7 +34,7 @@ HallOfFamePC: ; 7405c (1d:405c) jp Credits Func_740ba: ; 740ba (1d:40ba) - ld hl, DataTable_74160 + ld hl, HoFGBPalettes ld b, $4 .asm_740bf ld a, [hli] @@ -123,8 +123,11 @@ Func_74152: ; 74152 (1d:4152) jr z, .asm_7415a ret -DataTable_74160: ; 74160 (1d:4160) - db $C0,$D0,$E0,$F0 +HoFGBPalettes: ; 74160 (1d:4160) + db %11000000 + db %11010000 + db %11100000 + db %11110000 Func_74164: ; 74164 (1d:4164) ld a, l @@ -145,14 +148,14 @@ Func_74171: ; 74171 (1d:4171) jr nz, Func_74171 ret -Func_7417b: ; 7417b (1d:417b) - ld bc, $50 +FillFourRowsWithBlack: ; 7417b (1d:417b) + ld bc, SCREEN_WIDTH * 4 ld a, $7e jp FillMemory FillMiddleOfScreenWithWhite: ; 74183 (1d:4183) hlCoord 0, 4 - ld bc, $c8 ; 10 rows of 20 tiles each + ld bc, SCREEN_WIDTH * 10 ld a, $7f ; blank white tile jp FillMemory @@ -254,5 +257,5 @@ INCLUDE "data/credits_order.asm" INCLUDE "text/credits_text.asm" -TheEndGfx: ; 7473e (1d:473e) ; 473E (473F on blue) +TheEndGfx: ; 7473e (1d:473e) (7473f on blue) INCBIN "gfx/theend.interleave.2bpp" diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index cdd28422..3321b738 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -2184,7 +2184,7 @@ Func_7980c: ; 7980c (1e:580c) push bc ld e, a ld d, $0 - ld hl, wTileMap + hlCoord 0, 0 add hl, de ld bc, $707 call ClearScreenArea @@ -2206,7 +2206,7 @@ GetMonSpriteTileMapPointerFromRowCount: ; 79820 (1e:5820) .enemyTurn ld a, 12 .next - ld hl, wTileMap + hlCoord 0, 0 ld e, a ld d, 0 add hl, de diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm index b231459d..3315b36a 100644 --- a/engine/battle/battle_transitions.asm +++ b/engine/battle/battle_transitions.asm @@ -231,7 +231,7 @@ BattleTransition_Spiral: ; 70a72 (1c:4a72) BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa) ld a, $7 ld [wWhichTrade], a - ld hl, wTileMap + hlCoord 0, 0 ld c, $11 ld de, $14 call BattleTransition_InwardSpiral_ @@ -410,7 +410,7 @@ BattleTransition_Split: ; 70bca (1c:4bca) ld bc, $ffd8 call BattleTransition_CopyTiles1 hlCoord 0, 1 - ld de, wTileMap + deCoord 0, 0 ld bc, $28 call BattleTransition_CopyTiles1 hlCoord 18, 0 @@ -418,7 +418,7 @@ BattleTransition_Split: ; 70bca (1c:4bca) ld bc, $fffe call BattleTransition_CopyTiles2 hlCoord 1, 0 - ld de, wTileMap + deCoord 0, 0 ld bc, $2 call BattleTransition_CopyTiles2 call BattleTransition_TransferDelay3 @@ -514,7 +514,7 @@ BattleTransition_CopyTiles2: ; 70c3f (1c:4c3f) ; used for high level wild dungeon battles BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e) ld c, $12 - ld hl, wTileMap + hlCoord 0, 0 deCoord 1, 17 xor a ld [H_AUTOBGTRANSFERENABLED], a @@ -553,7 +553,7 @@ BattleTransition_VerticalStripes_: ; 70caa (1c:4caa) ; used for low level wild dungeon battles BattleTransition_HorizontalStripes: ; 70cb4 (1c:4cb4) ld c, $14 - ld hl, wTileMap + hlCoord 0, 0 deCoord 19, 1 xor a ld [H_AUTOBGTRANSFERENABLED], a diff --git a/engine/battle/core.asm b/engine/battle/core.asm index ec67d094..52beca1a 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -117,7 +117,7 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c) or c jr nz, .clearBackgroundLoop ; copy the work RAM tile map to VRAM - ld hl, wTileMap + hlCoord 0, 0 ld de, vBGMap0 ld b, 18 ; number of rows .copyRowLoop @@ -855,7 +855,7 @@ FaintEnemyPokemon: ; 0x3c567 hlCoord 12, 5 deCoord 12, 6 call SlideDownFaintedMonPic - ld hl, wTileMap + hlCoord 0, 0 ld bc, $40b call ClearScreenArea ld a, [W_ISINBATTLE] @@ -1214,7 +1214,7 @@ HandlePlayerBlackOut: ; 3c837 (f:4837) ld a, [W_CUROPPONENT] cp $c8 + SONY1 jr nz, .notSony1Battle - ld hl, wTileMap ; sony 1 battle + hlCoord 0, 0 ; sony 1 battle ld bc, $815 call ClearScreenArea call ScrollTrainerPicAfterBattle @@ -1489,7 +1489,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a) call LoadScreenTilesFromBuffer1 .next4 call ClearSprites - ld hl,wTileMap + hlCoord 0, 0 ld bc,$040B call ClearScreenArea ld b,1 @@ -1952,7 +1952,7 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60) DrawEnemyHUDAndHPBar: ; 3cdec (f:4dec) xor a ld [H_AUTOBGTRANSFERENABLED], a - ld hl, wTileMap + hlCoord 0, 0 ld bc, $40c call ClearScreenArea callab PlaceEnemyHUDTiles diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm index bddaffe5..c4af3951 100755 --- a/engine/evos_moves.asm +++ b/engine/evos_moves.asm @@ -121,7 +121,7 @@ Evolution_PartyMonLoop: ; loop over party mons call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a - ld hl, wTileMap + hlCoord 0, 0 ld bc, $c14 call ClearScreenArea ld a, $1 diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm index 46140927..a8b4f812 100755 --- a/engine/hidden_object_functions17.asm +++ b/engine/hidden_object_functions17.asm @@ -109,11 +109,11 @@ LinkCableHelp: ; 5dc29 (17:5c29) .asm_5c51 ld hl, wd730 set 6, [hl] - ld hl, wTileMap + hlCoord 0, 0 ld b, $8 ld c, $d call TextBoxBorder - ld hl, wTileMap + $2a + hlCoord 2, 2 ld de, HowToLinkText call PlaceString ld hl, LinkCableHelpText2 @@ -193,13 +193,13 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced) .asm_5dd15 ld hl, wd730 set 6, [hl] - ld hl, wTileMap + hlCoord 0, 0 ld bc, $060a call TextBoxBorder - ld hl, wTileMap + $29 + hlCoord 1, 2 ld de, StatusAilmentText1 call PlaceString - ld hl, wTileMap + $2e + hlCoord 6, 2 ld de, StatusAilmentText2 call PlaceString ld hl, ViridianSchoolBlackboardText2 diff --git a/engine/hidden_object_functions3.asm b/engine/hidden_object_functions3.asm index c40073cb..8502cea8 100755 --- a/engine/hidden_object_functions3.asm +++ b/engine/hidden_object_functions3.asm @@ -107,7 +107,7 @@ BookOrSculptureText: ; fbe8 (3:7be8) ld a, [W_CURMAPTILESET] cp MANSION ; Celadon Mansion tileset jr nz, .asm_fbfd - ld a, [wTileMap + $80] + aCoord 8, 6 cp $38 jr nz, .asm_fbfd ld hl, DiglettSculptureText diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm index f29b0925..3c3b2fb0 100755 --- a/engine/hidden_object_functions7.asm +++ b/engine/hidden_object_functions7.asm @@ -401,11 +401,11 @@ BillsHousePokemonList: ; 1ec05 (7:6c05) .asm_1ec2d ld hl, wd730 set 6, [hl] - ld hl, wTileMap + hlCoord 0, 0 ld b, $a ld c, $9 call TextBoxBorder - ld hl, wTileMap + $2a + hlCoord 2, 2 ld de, BillsMonListText call PlaceString ld hl, BillsHousePokemonListText2 diff --git a/engine/intro.asm b/engine/intro.asm index 2043771d..c306555d 100755 --- a/engine/intro.asm +++ b/engine/intro.asm @@ -330,7 +330,7 @@ PlayShootingStar: ; 4188a (10:588a) Func_418e9: ; 418e9 (10:58e9) call Func_417f0 - ld hl, wTileMap + hlCoord 0, 0 ld c, $50 call Func_41807 hlCoord 0, 14 diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm index c9dd41b1..b42a34f0 100644 --- a/engine/menu/bills_pc.asm +++ b/engine/menu/bills_pc.asm @@ -11,17 +11,17 @@ Func_213c8:: ; 213c8 (8:53c8) ld a, [wd5a2] and a jr nz, .asm_213f3 - ld hl, wTileMap + hlCoord 0, 0 ld b, $8 ld c, $e jr .asm_213fa .asm_213ea - ld hl, wTileMap + hlCoord 0, 0 ld b, $6 ld c, $e jr .asm_213fa .asm_213f3 - ld hl, wTileMap + hlCoord 0, 0 ld b, $a ld c, $e .asm_213fa @@ -122,7 +122,7 @@ BillsPCMenu: ld bc, (BANK(PokeballTileGraphics) << 8) + $01 call CopyVideoData call LoadScreenTilesFromBuffer2DisableBGTransfer - ld hl, wTileMap + hlCoord 0, 0 ld b, $a ld c, $c call TextBoxBorder diff --git a/engine/menu/diploma.asm b/engine/menu/diploma.asm index 067cd7d2..a1a0e526 100755 --- a/engine/menu/diploma.asm +++ b/engine/menu/diploma.asm @@ -12,7 +12,7 @@ DisplayDiploma: ; 566e2 (15:66e2) ld bc, $0010 ld a, BANK(CircleTile) call FarCopyData2 - ld hl, wTileMap + hlCoord 0, 0 ld bc, $1012 predef Diploma_TextBoxBorder ld hl, DiplomaTextPointersAndCoords @@ -77,15 +77,15 @@ Func_56777: ; 56777 (15:6777) DiplomaTextPointersAndCoords: ; 56784 (15:6784) dw DiplomaText - dw wTileMap + $2d + dwCoord 5, 2 dw DiplomaPlayer - dw wTileMap + $53 + dwCoord 3, 4 dw DiplomaEmptyText - dw wTileMap + $5f + dwCoord 15, 4 dw DiplomaCongrats - dw wTileMap + $7a + dwCoord 2, 6 dw DiplomaGameFreak - dw wTileMap + $149 + dwCoord 9, 16 DiplomaText: db $70,"Diploma",$70,"@" diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index f0628367..f6d3e127 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -363,23 +363,23 @@ ContinueGame: ; 5db5 (1:5db5) PrintSaveScreenText: ; 5def (1:5def) xor a ld [H_AUTOBGTRANSFERENABLED], a - ld hl, wTileMap + $4 + hlCoord 4, 0 ld b, $8 ld c, $e call TextBoxBorder call LoadTextBoxTilePatterns call UpdateSprites - ld hl, wTileMap + $2d + hlCoord 5, 2 ld de, SaveScreenInfoText call PlaceString - ld hl, wTileMap + $34 + hlCoord 12, 2 ld de, wPlayerName call PlaceString - ld hl, wTileMap + $61 + hlCoord 17, 4 call Func_5e2f - ld hl, wTileMap + $88 + hlCoord 16, 6 call Func_5e42 - ld hl, wTileMap + $ad + hlCoord 13, 8 call Func_5e55 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm index bd1c39dd..a5a71b73 100755 --- a/engine/menu/naming_screen.asm +++ b/engine/menu/naming_screen.asm @@ -4,7 +4,7 @@ AskName: ; 64eb (1:64eb) push hl ld a, [W_ISINBATTLE] dec a - ld hl, wTileMap + hlCoord 0, 0 ld b, $4 ld c, $b call z, ClearScreenArea ; only if in wild batle diff --git a/engine/menu/players_pc.asm b/engine/menu/players_pc.asm index 147a27a4..e4973dd4 100755 --- a/engine/menu/players_pc.asm +++ b/engine/menu/players_pc.asm @@ -21,7 +21,7 @@ Func_790c: ; 790c (1:790c) ld hl, wFlags_0xcd60 set 5, [hl] call LoadScreenTilesFromBuffer2 - ld hl, wTileMap + hlCoord 0, 0 ld b, $8 ld c, $e call TextBoxBorder diff --git a/engine/menu/prize_menu.asm b/engine/menu/prize_menu.asm index d12308f8..acc18633 100755 --- a/engine/menu/prize_menu.asm +++ b/engine/menu/prize_menu.asm @@ -21,12 +21,12 @@ CeladonPrizeMenu: ; 5271b (14:671b) ld [wTopMenuItemY],a ld a,$01 ld [wTopMenuItemX],a - call PrintPrizePrice ; 687A + call PrintPrizePrice hlCoord 0, 2 ld b,$08 ld c,$10 call TextBoxBorder - call GetPrizeMenuId ;678E + call GetPrizeMenuId call UpdateSprites ld hl,WhichPrizeTextPtr call PrintText @@ -36,7 +36,7 @@ CeladonPrizeMenu: ; 5271b (14:671b) ld a,[wCurrentMenuItem] cp a,$03 ; "NO,THANKS" choice jr z,.NoChoice - call HandlePrizeChoice ; 14:68C6 + call HandlePrizeChoice .NoChoice ld hl,wd730 res 6,[hl] @@ -106,7 +106,7 @@ GetPrizeMenuId: ; 5278e (14:678e) hlCoord 2, 8 call PlaceString jr .putNoThanksText -.putMonName ; 14:67EC +.putMonName ld a,[W_PRIZE1] ld [wd11e],a call GetMonName @@ -122,7 +122,7 @@ GetPrizeMenuId: ; 5278e (14:678e) call GetMonName hlCoord 2, 8 call PlaceString -.putNoThanksText ; 14:6819 +.putNoThanksText hlCoord 2, 10 ld de,NoThanksText call PlaceString @@ -135,7 +135,7 @@ GetPrizeMenuId: ; 5278e (14:678e) ld c,(1 << 7 | 2) ; Function $15CD displays BCD value (same routine ; used by text-command $02) - call PrintBCDNumber ; Print_BCD + call PrintBCDNumber ld de,wd143 hlCoord 13, 7 ld c,(%1 << 7 | 2) @@ -165,10 +165,10 @@ PrintPrizePrice: ; 5287a (14:687a) call PrintBCDNumber ret -.CoinText ; 14:68A5 +.CoinText db "COIN@" -.SixSpacesText ; 14:68AA +.SixSpacesText db " @" LoadCoinsToSubtract: ; 528b1 (14:68b1) @@ -200,9 +200,9 @@ HandlePrizeChoice: ; 528c6 (14:68c6) jr nz,.GetMonName call GetItemName jr .GivePrize -.GetMonName ; 14:68E3 +.GetMonName call GetMonName -.GivePrize ; 14:68E6 +.GivePrize ld hl,SoYouWantPrizeTextPtr call PrintText call YesNoChoice ; yes/no textbox @@ -219,14 +219,14 @@ HandlePrizeChoice: ; 528c6 (14:68c6) ld b,a ld a,1 ld c,a - call GiveItem ; GiveItem + call GiveItem jr nc,.BagFull jr .SubtractCoins -.GiveMon ; 14:6912 +.GiveMon ld a,[wd11e] ld [wcf91],a push af - call GetPrizeMonLevel ; 14:6977 + call GetPrizeMonLevel ld c,a pop af ld b,a @@ -237,7 +237,7 @@ HandlePrizeChoice: ; 528c6 (14:68c6) call z,WaitForTextScrollButtonPress pop af ret nc -.SubtractCoins ; 14:692C +.SubtractCoins call LoadCoinsToSubtract ld hl,$FFA1 ld de,wPlayerCoins + 1 @@ -247,10 +247,10 @@ HandlePrizeChoice: ; 528c6 (14:68c6) .BagFull ld hl,PrizeRoomBagIsFullTextPtr jp PrintText -.NotEnoughCoins ; 14:6945 +.NotEnoughCoins ld hl,SorryNeedMoreCoinsText jp PrintText -.PrintOhFineThen ; 14:694B +.PrintOhFineThen ld hl,OhFineThenTextPtr jp PrintText @@ -286,13 +286,13 @@ GetPrizeMonLevel: ; 52977 (14:6977) ld a,[wcf91] ld b,a ld hl,PrizeMonLevelDictionary -.loop ; 14:697E +.loop ld a,[hli] cp b jr z,.matchFound inc hl jr .loop -.matchFound ; 14:6985 +.matchFound ld a,[hl] ld [W_CURENEMYLVL],a ret diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index b84657d5..487daa2d 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -713,7 +713,7 @@ SwitchPartyMon: ; 13613 (4:7613) SwitchPartyMon_OAM: ; 13625 (4:7625) push af - ld hl, wTileMap + hlCoord 0, 0 ld bc, $28 call AddNTimes ld c, $28 diff --git a/engine/oak_speech2.asm b/engine/oak_speech2.asm index d8043484..179de389 100755 --- a/engine/oak_speech2.asm +++ b/engine/oak_speech2.asm @@ -66,7 +66,7 @@ HisNameIsText: ; 69e7 (1:69e7) Func_69ec: ; 69ec (1:69ec) push de - ld hl, wTileMap + hlCoord 0, 0 ld bc, $c0b call ClearScreenArea ld c, 10 @@ -155,7 +155,7 @@ asm_6a19: ; 6a19 (1:6a19) DisplayIntroNameTextBox: ; 6a6c (1:6a6c) push de - ld hl, wTileMap + hlCoord 0, 0 ld b, $a ld c, $9 call TextBoxBorder diff --git a/engine/overworld/cinnabar_lab.asm b/engine/overworld/cinnabar_lab.asm index a23348db..e9bde496 100755 --- a/engine/overworld/cinnabar_lab.asm +++ b/engine/overworld/cinnabar_lab.asm @@ -20,7 +20,7 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006) dec l ld b, l ld c, $d - ld hl, wTileMap + hlCoord 0, 0 call TextBoxBorder call UpdateSprites call Func_610c2 diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index dac03f3a..9854df61 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -694,7 +694,7 @@ getTileSpriteStandsOn: ; 5207 (1:5207) add $14 ; screen X tile + 20 ld d, $0 ld e, a - ld hl, wTileMap + hlCoord 0, 0 add hl, bc add hl, bc add hl, bc diff --git a/engine/save.asm b/engine/save.asm index cc5e6c4a..b4e343e3 100755 --- a/engine/save.asm +++ b/engine/save.asm @@ -426,7 +426,7 @@ Func_7393f: ; 7393f (1c:793f) and $7f ld [wCurrentMenuItem], a ld [wLastMenuItem], a - ld hl, wTileMap + hlCoord 0, 0 ld b, $2 ld c, $9 call TextBoxBorder diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 0b9f8bc9..c95e9d20 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -133,7 +133,7 @@ MainSlotMachineLoop: ; 37395 (d:7395) .skip2 ld hl, OneMoreGoSlotMachineText call PrintText - ld hl, wTileMap + $fe + hlCoord 14, 12 ld bc, $0d0f xor a ; YES_NO_MENU ld [wTwoOptionMenuID], a @@ -836,7 +836,7 @@ LoadSlotMachineTiles: ; 378a8 (d:78a8) ld a, BANK(SlotMachineTiles2) call FarCopyData2 ld hl, SlotMachineMap - ld de, wTileMap + deCoord 0, 0 ld bc, $00f0 call CopyData call EnableLCD diff --git a/engine/town_map.asm b/engine/town_map.asm index 0dd84226..2e0921a8 100755 --- a/engine/town_map.asm +++ b/engine/town_map.asm @@ -25,10 +25,10 @@ DisplayTownMap: ; 70e3e (1c:4e3e) xor a ld [wWhichTrade], a pop af - jr Func_70e92 + jr .enterLoop -Func_70e7e: ; 70e7e (1c:4e7e) - ld hl, wTileMap +.townMapLoop + hlCoord 0, 0 ld bc, $114 call ClearScreenArea ld hl, TownMapOrder @@ -37,13 +37,12 @@ Func_70e7e: ; 70e7e (1c:4e7e) ld b, $0 add hl, bc ld a, [hl] - -Func_70e92: ; 70e92 (1c:4e92) +.enterLoop ld de, wHPBarMaxHP - call Func_712f1 + call FindTownMapCoords ld a, [de] push hl - call Func_71258 + call SetTownMapOAMCoords ld a, $4 ld [wcd5b], a ld hl, wOAMBuffer + $10 @@ -63,46 +62,46 @@ Func_70e92: ; 70e92 (1c:4e92) ld de, wTileMapBackup + 16 ld bc, $10 call CopyData -.asm_70ec8 +.inputLoop call TownMapSpriteBlinkingAnimation call JoypadLowSensitivity ld a, [hJoy5] ld b, a - and $c3 - jr z, .asm_70ec8 + and A_BUTTON | B_BUTTON | D_UP | D_DOWN + jr z, .inputLoop ld a, (SFX_02_3c - SFX_Headers_02) / 3 call PlaySound bit 6, b - jr nz, .asm_70ef2 + jr nz, .upPressed bit 7, b - jr nz, .asm_70f01 + jr nz, .downPressed xor a ld [wTownMapSpriteBlinkingEnabled], a ld [hJoy7], a ld [wTownMapSpriteBlinkingCounter], a - call Func_711ab + call ExitTownMap pop hl pop af ld [hl], a ret -.asm_70ef2 +.upPressed ld a, [wWhichTrade] inc a - cp $2f - jr nz, .asm_70efb + cp TownMapOrderEnd - TownMapOrder ; number of list items + 1 + jr nz, .noOverflow xor a -.asm_70efb +.noOverflow ld [wWhichTrade], a - jp Func_70e7e -.asm_70f01 + jp .townMapLoop +.downPressed ld a, [wWhichTrade] dec a cp $ff - jr nz, .asm_70f0b - ld a, $2e -.asm_70f0b + jr nz, .noUnderflow + ld a, TownMapOrderEnd - TownMapOrder - 1 ; number of list items +.noUnderflow ld [wWhichTrade], a - jp Func_70e7e + jp .townMapLoop INCLUDE "data/town_map_order.asm" @@ -116,7 +115,7 @@ LoadTownMap_Nest: ; 70f60 (1c:4f60) push af ld [hl], $ff push hl - call Func_711ef + call DisplayWildLocations call GetMonName hlCoord 1, 0 call PlaceString @@ -125,7 +124,7 @@ LoadTownMap_Nest: ; 70f60 (1c:4f60) ld de, MonsNestText call PlaceString call WaitForTextScrollButtonPress - call Func_711ab + call ExitTownMap pop hl pop af ld [hl], a @@ -147,13 +146,13 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) ld hl, vChars1 + $6d0 ld bc, (BANK(TownMapUpArrow) << 8) + $01 call CopyVideoDataDouble - call Func_71070 + call SetupVisitedTownsList ld hl, wUpdateSpritesEnabled ld a, [hl] push af ld [hl], $ff push hl - ld hl, wTileMap + hlCoord 0, 0 ld de, ToText call PlaceString ld a, [W_CURMAP] @@ -184,25 +183,25 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) hlCoord 19, 0 ld [hl], $ee pop hl -.asm_71004 +.inputLoop push hl call DelayFrame call JoypadLowSensitivity ld a, [hJoy5] ld b, a pop hl - and $c3 - jr z, .asm_71004 + and A_BUTTON | B_BUTTON | D_UP | D_DOWN + jr z, .inputLoop bit 0, b - jr nz, .asm_71026 + jr nz, .aButtonPressed ld a, (SFX_02_3c - SFX_Headers_02) / 3 call PlaySound bit 6, b - jr nz, .asm_71042 + jr nz, .upPressed bit 7, b - jr nz, .asm_71058 - jr .asm_71037 -.asm_71026 + jr nz, .downPressed + jr .bButtonPressed +.aButtonPressed ld a, (SFX_02_3e - SFX_Headers_02) / 3 call PlaySound ld a, [hl] @@ -211,7 +210,7 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) set 3, [hl] inc hl set 7, [hl] -.asm_71037 +.bButtonPressed xor a ld [wTownMapSpriteBlinkingEnabled], a call GBPalWhiteOutWithDelay3 @@ -219,35 +218,35 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) pop af ld [hl], a ret -.asm_71042 +.upPressed deCoord 18, 0 inc hl ld a, [hl] cp $ff jr z, .asm_71052 cp $fe - jr z, .asm_71042 + jr z, .upPressed jp .townMapFlyLoop .asm_71052 ld hl, wTrainerEngageDistance jp .townMapFlyLoop -.asm_71058 +.downPressed deCoord 19, 0 dec hl ld a, [hl] cp $ff jr z, .asm_71068 cp $fe - jr z, .asm_71058 + jr z, .downPressed jp .townMapFlyLoop .asm_71068 ld hl, wcd49 - jr .asm_71058 + jr .downPressed ToText: ; 7106d (1c:506d) db "To@" -Func_71070: ; 71070 (1c:5070) +SetupVisitedTownsList: ; 71070 (1c:5070) ld hl, wWhichTrade ld [hl], $ff inc hl @@ -255,19 +254,19 @@ Func_71070: ; 71070 (1c:5070) ld e, a ld a, [W_TOWNVISITEDFLAG + 1] ld d, a - ld bc, $b -.asm_71081 + ld bc, SAFFRON_CITY + 1 +.loop srl d rr e ld a, $fe - jr nc, .asm_7108a + jr nc, .notVisited ld a, b -.asm_7108a +.notVisited ld [hl], a inc hl inc b dec c - jr nz, .asm_71081 + jr nz, .loop ld [hl], $ff ret @@ -278,7 +277,7 @@ LoadTownMap: ; 7109b (1c:509b) call GBPalWhiteOutWithDelay3 call ClearScreen call UpdateSprites - ld hl, wTileMap + hlCoord 0, 0 ld b, $12 ld c, $12 call TextBoxBorder @@ -293,12 +292,12 @@ LoadTownMap: ; 7109b (1c:509b) ld bc, $8 ld a, BANK(MonNestIcon) call FarCopyDataDouble - ld hl, wTileMap + hlCoord 0, 0 ld de, CompressedMap -.asm_710d3 +.nextTile ld a, [de] and a - jr z, .asm_710e9 + jr z, .done ld b, a and $f ld c, a @@ -306,13 +305,13 @@ LoadTownMap: ; 7109b (1c:509b) swap a and $f add $60 -.asm_710e2 +.uncompressTile ld [hli], a dec c - jr nz, .asm_710e2 + jr nz, .uncompressTile inc de - jr .asm_710d3 -.asm_710e9 + jr .nextTile +.done call EnableLCD ld b, $2 call GoPAL_SET @@ -328,7 +327,7 @@ CompressedMap: ; 71100 (1c:5100) ; you can decompress this file with the redrle program in the extras/ dir INCBIN "gfx/town_map.rle" -Func_711ab: ; 711ab (1c:51ab) +ExitTownMap: ; 711ab (1c:51ab) xor a ld [wTownMapSpriteBlinkingEnabled], a call GBPalWhiteOut @@ -345,10 +344,10 @@ Func_711c4: ; 711c4 (1c:51c4) ld [wcd5b], a pop af ld de, wHPBarMaxHP - call Func_712f1 + call FindTownMapCoords ld a, [de] push hl - call Func_71258 + call SetTownMapOAMCoords call Func_7126d pop hl ld de, wcd6d @@ -363,35 +362,35 @@ Func_711c4: ; 711c4 (1c:51c4) ld bc, $a0 jp CopyData -Func_711ef: ; 711ef (1c:51ef) +DisplayWildLocations: ; 711ef (1c:51ef) callba FindWildLocationsOfMon call Func_712d9 ld hl, wOAMBuffer ld de, wBuffer -.asm_71200 +.loop ld a, [de] cp $ff - jr z, .asm_7121d + jr z, .exitLoop and a - jr z, .asm_7121a + jr z, .next push hl - call Func_712f1 + call FindTownMapCoords pop hl ld a, [de] cp $19 - jr z, .asm_7121a - call Func_71258 - ld a, $4 + jr z, .next + call SetTownMapOAMCoords + ld a, $4 ; nest icon tile no. ld [hli], a xor a ld [hli], a -.asm_7121a +.next inc de - jr .asm_71200 -.asm_7121d + jr .loop +.exitLoop ld a, l and a - jr nz, .asm_71236 + jr nz, .locationKnown hlCoord 1, 7 ld b, $2 ld c, $f @@ -399,12 +398,12 @@ Func_711ef: ; 711ef (1c:51ef) hlCoord 2, 9 ld de, AreaUnknownText call PlaceString - jr .asm_7123e -.asm_71236 + jr .done +.locationKnown ld a, [W_CURMAP] ld b, $0 call Func_711c4 -.asm_7123e +.done ld hl, wOAMBuffer ld de, wTileMapBackup ld bc, $a0 @@ -413,7 +412,7 @@ Func_711ef: ; 711ef (1c:51ef) AreaUnknownText: ; 7124a (1c:524a) db " AREA UNKNOWN@" -Func_71258: ; 71258 (1c:5258) +SetTownMapOAMCoords: ; 71258 (1c:5258) push af and $f0 srl a @@ -541,27 +540,27 @@ Func_712d9: ; 712d9 (1c:52d9) inc hl jr .asm_712e4 -Func_712f1: ; 712f1 (1c:52f1) +FindTownMapCoords: ; 712f1 (1c:52f1) cp REDS_HOUSE_1F - jr c, .asm_71304 + jr c, .townOrRoute ld bc, $4 ld hl, InternalMapEntries -.asm_712fb +.loop cp [hl] - jr c, .asm_71301 + jr c, .match add hl, bc - jr .asm_712fb -.asm_71301 + jr .loop +.match inc hl - jr .asm_7130d -.asm_71304 + jr .done +.townOrRoute ld hl, ExternalMapEntries ld c, a ld b, $0 add hl, bc add hl, bc add hl, bc -.asm_7130d +.done ld a, [hli] ld [de], a ld a, [hli] diff --git a/engine/trade.asm b/engine/trade.asm index 6309e8d5..adf3d417 100755 --- a/engine/trade.asm +++ b/engine/trade.asm @@ -148,7 +148,7 @@ Trade_Delay80: ; 41191 (10:5191) jp DelayFrames Trade_ClearTileMap: ; 41196 (10:5196) - ld hl, wTileMap + hlCoord 0, 0 ld bc, 20 * 18 ld a, " " jp FillMemory diff --git a/home.asm b/home.asm index 06a0aec3..03e3842f 100644 --- a/home.asm +++ b/home.asm @@ -3171,7 +3171,7 @@ UncompressSpriteFromDE:: ; 36eb (0:36eb) SaveScreenTilesToBuffer2:: ; 36f4 (0:36f4) - ld hl, wTileMap + hlCoord 0, 0 ld de, wTileMapBackup2 ld bc, $168 call CopyData @@ -3188,13 +3188,13 @@ LoadScreenTilesFromBuffer2DisableBGTransfer:: ; 3709 (0:3709) xor a ld [H_AUTOBGTRANSFERENABLED], a ld hl, wTileMapBackup2 - ld de, wTileMap + deCoord 0, 0 ld bc, $168 call CopyData ret SaveScreenTilesToBuffer1:: ; 3719 (0:3719) - ld hl, wTileMap + hlCoord 0, 0 ld de, wTileMapBackup ld bc, $168 jp CopyData @@ -3203,7 +3203,7 @@ LoadScreenTilesFromBuffer1:: ; 3725 (0:3725) xor a ld [H_AUTOBGTRANSFERENABLED], a ld hl, wTileMapBackup - ld de, wTileMap + deCoord 0, 0 ld bc, $168 call CopyData ld a, $1 @@ -4032,7 +4032,7 @@ PlaceMenuCursor:: ; 3b7c (0:3b7c) ld a,[wTopMenuItemY] and a ; is the y coordinate 0? jr z,.adjustForXCoord - ld hl,wTileMap + hlCoord 0, 0 ld bc,SCREEN_WIDTH .topMenuItemLoop add hl,bc diff --git a/home/copy2.asm b/home/copy2.asm index 7b407cdc..e5f28383 100644 --- a/home/copy2.asm +++ b/home/copy2.asm @@ -184,17 +184,17 @@ CopyScreenTileBufferToVRAM:: ld c, 6 ld hl, $600 * 0 - ld de, wTileMap + 20 * 6 * 0 + deCoord 0, 6 * 0 call .setup call DelayFrame ld hl, $600 * 1 - ld de, wTileMap + 20 * 6 * 1 + deCoord 0, 6 * 1 call .setup call DelayFrame ld hl, $600 * 2 - ld de, wTileMap + 20 * 6 * 2 + deCoord 0, 6 * 2 call .setup jp DelayFrame @@ -217,7 +217,7 @@ ClearScreen:: ; for the bg map to update. ld bc, 20 * 18 inc b - ld hl, wTileMap + hlCoord 0, 0 ld a, $7f .loop ld [hli], a diff --git a/home/overworld.asm b/home/overworld.asm index 0e62a932..4197e2a3 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -1420,10 +1420,10 @@ LoadCurrentMapView:: ; 0caa (0:0caa) ld bc,$0002 add hl,bc .copyToVisibleAreaBuffer - ld de,wTileMap ; base address for the tiles that are directly transfered to VRAM during V-blank - ld b,$12 + deCoord 0, 0 ; base address for the tiles that are directly transfered to VRAM during V-blank + ld b, SCREEN_HEIGHT .rowLoop2 - ld c,$14 + ld c, SCREEN_WIDTH .rowInnerLoop2 ld a,[hli] ld [de],a @@ -2323,7 +2323,7 @@ LoadMapData:: ; 1241 (0:1241) call LoadTilesetTilePatternData call LoadCurrentMapView ; copy current map view to VRAM - ld hl,wTileMap + hlCoord 0, 0 ld de,vBGMap0 ld b,18 .vramCopyLoop diff --git a/home/text.asm b/home/text.asm index fabcd843..172a4eb2 100644 --- a/home/text.asm +++ b/home/text.asm @@ -207,7 +207,7 @@ MonsterNameCharsCommon:: ; 1a37 (0:1a37) ld de,wBattleMonNick ; player active monster name jr FinishDTE -.Enemy ; 1A40 +.Enemy ; print “Enemy ” ld de,Char5AText call PlaceString diff --git a/main.asm b/main.asm index 7372381a..c7a21243 100755 --- a/main.asm +++ b/main.asm @@ -1276,7 +1276,7 @@ GetTextBoxIDText: ; 7367 (1:7367) ; hl = address of upper left corner of text box GetAddressOfScreenCoords: ; 7375 (1:7375) push bc - ld hl,wTileMap + hlCoord 0, 0 ld bc,20 .loop ; loop to add d rows to the base address ld a,d @@ -2298,7 +2298,7 @@ PrintSafariZoneSteps: ; c52f (3:452f) ret c cp UNKNOWN_DUNGEON_2 ret nc - ld hl, wTileMap + hlCoord 0, 0 ld b, $3 ld c, $7 call TextBoxBorder diff --git a/scripts/bikeshop.asm b/scripts/bikeshop.asm index 4a8183ec..55ceb5cc 100755 --- a/scripts/bikeshop.asm +++ b/scripts/bikeshop.asm @@ -51,7 +51,7 @@ BikeShopText1: ; 1d745 (7:5745) ld [wTopMenuItemX], a ld hl, wd730 set 6, [hl] - ld hl, wTileMap + hlCoord 0, 0 ld b, $4 ld c, $f call TextBoxBorder diff --git a/scripts/celadonmartroof.asm b/scripts/celadonmartroof.asm index 07b26788..953b1583 100755 --- a/scripts/celadonmartroof.asm +++ b/scripts/celadonmartroof.asm @@ -63,7 +63,7 @@ CeladonMartRoofScript_4840c: ; 4840c (12:440c) dec l ld b, l ld c, $c - ld hl, wTileMap + hlCoord 0, 0 call TextBoxBorder call UpdateSprites call CeladonMartRoofScript_48532 diff --git a/scripts/redshouse1f.asm b/scripts/redshouse1f.asm index 0f5251b8..09ce97dc 100755 --- a/scripts/redshouse1f.asm +++ b/scripts/redshouse1f.asm @@ -5,7 +5,7 @@ RedsHouse1FTextPointers: ; 4816b (12:416b) dw RedsHouse1FText1 dw RedsHouse1FText2 -RedsHouse1FText1: ; 4816f (12:416f) ; 416F Mom +RedsHouse1FText1: ; 4816f (12:416f) Mom TX_ASM ld a, [wd72e] bit 3, a -- cgit v1.3.1-sl0p From ef9e59101e10aed82184bd2fd063b1109e2e4f6a Mon Sep 17 00:00:00 2001 From: dannye Date: Tue, 14 Jul 2015 02:16:19 -0500 Subject: Use more screen dimension constants --- engine/HoF_room_pc.asm | 2 +- engine/battle/animations.asm | 4 +- engine/battle/battle_transitions.asm | 68 ++++++++++++++++----------------- engine/battle/core.asm | 2 +- engine/battle/draw_hud_pokeball_gfx.asm | 2 +- engine/menu/start_sub_menus.asm | 6 +-- engine/menu/status_screen.asm | 27 ++++++------- engine/oak_speech2.asm | 1 + engine/oam_dma.asm | 3 +- engine/overworld/cinnabar_lab.asm | 2 +- engine/overworld/movement.asm | 4 +- engine/save.asm | 2 +- engine/titlescreen.asm | 2 +- home.asm | 6 +-- home/overworld.asm | 2 +- home/text.asm | 26 ++++++------- main.asm | 12 +++--- scripts/celadonmartroof.asm | 2 +- 18 files changed, 88 insertions(+), 85 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index a3459f9d..98c77903 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -202,7 +202,7 @@ Credits: ; 7418e (1d:418e) add hl, bc call PlaceString pop hl - ld bc, $28 + ld bc, SCREEN_WIDTH * 2 add hl, bc pop de jr .asm_7419b diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 6c98cc91..32f98f19 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -1712,9 +1712,9 @@ _AnimationSquishMonPic: ; 794d4 (1e:54d4) call Func_79862 inc hl .asm_794eb - ld [hl], $7f + ld [hl], " " pop hl - ld de, $14 + ld de, SCREEN_WIDTH add hl, de pop bc dec c diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm index 3315b36a..8613560a 100644 --- a/engine/battle/battle_transitions.asm +++ b/engine/battle/battle_transitions.asm @@ -233,12 +233,12 @@ BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa) ld [wWhichTrade], a hlCoord 0, 0 ld c, $11 - ld de, $14 + ld de, SCREEN_WIDTH call BattleTransition_InwardSpiral_ inc c jr .skip .loop - ld de, $14 + ld de, SCREEN_WIDTH call BattleTransition_InwardSpiral_ .skip inc c @@ -246,10 +246,10 @@ BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa) call BattleTransition_InwardSpiral_ dec c dec c - ld de, $ffec + ld de, -SCREEN_WIDTH call BattleTransition_InwardSpiral_ inc c - ld de, rIE + ld de, -1 call BattleTransition_InwardSpiral_ dec c dec c @@ -278,8 +278,8 @@ BattleTransition_InwardSpiral_: ; 70ae0 (1c:4ae0) ret BattleTransition_OutwardSpiral_: ; 70af9 (1c:4af9) - ld bc, $ffec - ld de, $14 + ld bc, -SCREEN_WIDTH + ld de, SCREEN_WIDTH ld a, [wd09b] ld l, a ld a, [wd09a] @@ -366,22 +366,22 @@ BattleTransition_FlashScreenPalettes: ; 70b72 (1c:4b72) ; used for low level trainer dungeon battles BattleTransition_Shrink: ; 70b7f (1c:4b7f) - ld c, $9 + ld c, SCREEN_HEIGHT / 2 .loop push bc xor a ld [H_AUTOBGTRANSFERENABLED], a hlCoord 0, 7 deCoord 0, 8 - ld bc, $ffd8 + ld bc, -SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 hlCoord 0, 10 deCoord 0, 9 - ld bc, $28 + ld bc, SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 hlCoord 8, 0 deCoord 9, 0 - ld bc, $fffe + ld bc, -2 call BattleTransition_CopyTiles2 hlCoord 11, 0 deCoord 10, 0 @@ -400,22 +400,22 @@ BattleTransition_Shrink: ; 70b7f (1c:4b7f) ; used for high level trainer dungeon battles BattleTransition_Split: ; 70bca (1c:4bca) - ld c, $9 + ld c, SCREEN_HEIGHT / 2 xor a ld [H_AUTOBGTRANSFERENABLED], a .loop push bc hlCoord 0, 16 deCoord 0, 17 - ld bc, $ffd8 + ld bc, -SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 hlCoord 0, 1 deCoord 0, 0 - ld bc, $28 + ld bc, SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 hlCoord 18, 0 deCoord 19, 0 - ld bc, $fffe + ld bc, -2 call BattleTransition_CopyTiles2 hlCoord 1, 0 deCoord 0, 0 @@ -440,7 +440,7 @@ BattleTransition_CopyTiles1: ; 70c12 (1c:4c12) push bc push hl push de - ld bc, $14 + ld bc, SCREEN_WIDTH call CopyData pop hl pop de @@ -455,7 +455,7 @@ BattleTransition_CopyTiles1: ; 70c12 (1c:4c12) ld l, e ld h, d ld a, $ff - ld c, $14 + ld c, SCREEN_WIDTH .loop2 ld [hli], a dec c @@ -467,23 +467,23 @@ BattleTransition_CopyTiles2: ; 70c3f (1c:4c3f) ld [wWhichTrade], a ld a, b ld [wTrainerEngageDistance], a - ld c, $9 + ld c, SCREEN_HEIGHT / 2 .loop1 push bc push hl push de - ld c, $12 + ld c, SCREEN_HEIGHT .loop2 ld a, [hl] ld [de], a ld a, e - add $14 + add SCREEN_WIDTH jr nc, .noCarry1 inc d .noCarry1 ld e, a ld a, l - add $14 + add SCREEN_WIDTH jr nc, .noCarry2 inc h .noCarry2 @@ -502,8 +502,8 @@ BattleTransition_CopyTiles2: ; 70c3f (1c:4c3f) jr nz, .loop1 ld l, e ld h, d - ld de, $14 - ld c, $12 + ld de, SCREEN_WIDTH + ld c, SCREEN_HEIGHT .loop3 ld [hl], $ff add hl, de @@ -513,7 +513,7 @@ BattleTransition_CopyTiles2: ; 70c3f (1c:4c3f) ; used for high level wild dungeon battles BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e) - ld c, $12 + ld c, SCREEN_HEIGHT hlCoord 0, 0 deCoord 1, 17 xor a @@ -528,12 +528,12 @@ BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e) call BattleTransition_VerticalStripes_ call BattleTransition_TransferDelay3 pop hl - ld bc, $ffec + ld bc, -SCREEN_WIDTH add hl, bc ld e, l ld d, h pop hl - ld bc, $14 + ld bc, SCREEN_WIDTH add hl, bc pop bc dec c @@ -541,7 +541,7 @@ BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e) jp BattleTransition_BlackScreen BattleTransition_VerticalStripes_: ; 70caa (1c:4caa) - ld c, $a + ld c, SCREEN_WIDTH / 2 .loop ld [hl], $ff inc hl @@ -552,7 +552,7 @@ BattleTransition_VerticalStripes_: ; 70caa (1c:4caa) ; used for low level wild dungeon battles BattleTransition_HorizontalStripes: ; 70cb4 (1c:4cb4) - ld c, $14 + ld c, SCREEN_WIDTH hlCoord 0, 0 deCoord 19, 1 xor a @@ -576,8 +576,8 @@ BattleTransition_HorizontalStripes: ; 70cb4 (1c:4cb4) jp BattleTransition_BlackScreen BattleTransition_HorizontalStripes_: ; 70cd8 (1c:4cd8) - ld c, $9 - ld de, $28 + ld c, SCREEN_HEIGHT / 2 + ld de, SCREEN_WIDTH * 2 .loop ld [hl], $ff add hl, de @@ -590,10 +590,10 @@ BattleTransition_HorizontalStripes_: ; 70cd8 (1c:4cd8) ; by animating each half circle one at a time BattleTransition_Circle: ; 70ce4 (1c:4ce4) call BattleTransition_FlashScreen - ld bc, $000a + ld bc, SCREEN_WIDTH / 2 ld hl, BattleTransition_HalfCircle1 call BattleTransition_Circle_Sub1 - ld c, $a + ld c, SCREEN_WIDTH / 2 ld b, $1 ld hl, BattleTransition_HalfCircle2 call BattleTransition_Circle_Sub1 @@ -633,7 +633,7 @@ BattleTransition_TransferDelay3: ; 70d19 (1c:4d19) ; by animating both half circles at the same time BattleTransition_DoubleCircle: ; 70d24 (1c:4d24) call BattleTransition_FlashScreen - ld c, $a + ld c, SCREEN_WIDTH / 2 ld hl, BattleTransition_HalfCircle1 ld de, BattleTransition_HalfCircle2 .loop @@ -774,9 +774,9 @@ BattleTransition_Circle_Sub3: ; 70dc5 (1c:4dc5) pop hl ld a, [wWhichTrade] and a - ld bc, $14 + ld bc, SCREEN_WIDTH jr z, .skip3 - ld bc, $ffec + ld bc, -SCREEN_WIDTH .skip3 add hl, bc ld a, [de] diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 1825e61e..5ef94998 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -7047,7 +7047,7 @@ CopyUncompressedPicToTilemap: ; 3f0c6 (f:70c6) ld a, [$ffe1] CopyUncompressedPicToHL: ; 3f0d0 (f:70d0) ld bc, $707 - ld de, $14 + ld de, SCREEN_WIDTH push af ld a, [W_SPRITEFLIPPED] and a diff --git a/engine/battle/draw_hud_pokeball_gfx.asm b/engine/battle/draw_hud_pokeball_gfx.asm index ba47d8f3..06280a15 100644 --- a/engine/battle/draw_hud_pokeball_gfx.asm +++ b/engine/battle/draw_hud_pokeball_gfx.asm @@ -148,7 +148,7 @@ EnemyBattleHUDGraphicsTiles: ; 3a92d (e:692d) PlaceHUDTiles: ; 3a930 (e:6930) ld [hl], $73 - ld bc, $14 + ld bc, SCREEN_WIDTH add hl, bc ld a, [wTrainerScreenY] ld [hl], a diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index 48a85081..825360a6 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -714,10 +714,10 @@ SwitchPartyMon: ; 13613 (4:7613) SwitchPartyMon_OAM: ; 13625 (4:7625) push af hlCoord 0, 0 - ld bc, $28 + ld bc, SCREEN_WIDTH * 2 call AddNTimes - ld c, $28 - ld a, $7f + ld c, SCREEN_WIDTH * 2 + ld a, " " .asm_13633 ld [hli], a dec c diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm index c9261804..7b3674e6 100755 --- a/engine/menu/status_screen.asm +++ b/engine/menu/status_screen.asm @@ -280,7 +280,7 @@ PrintStat push hl call PrintNumber pop hl - ld de, $0028 + ld de, SCREEN_WIDTH * 2 add hl, de ret @@ -323,15 +323,15 @@ StatusScreen2: ; 12b57 (4:6b57) sub c ld b, a ; Number of moves ? hlCoord 11, 10 - ld de, $0028 - ld a, $72 - call Func_12ccb ; Print "PP" + ld de, SCREEN_WIDTH * 2 + ld a, $72 ; special P tile id + call StatusScreen_PrintPP ; Print "PP" ld a, b and a jr z, .InitPP ld c, a ld a, "-" - call Func_12ccb ; Fill the rest with -- + call StatusScreen_PrintPP ; Fill the rest with -- .InitPP ; 12bbb ld hl, wLoadedMonMoves deCoord 14, 10 @@ -373,7 +373,7 @@ StatusScreen2: ; 12b57 (4:6b57) ld bc, $0102 call PrintNumber pop hl - ld de, $0028 + ld de, SCREEN_WIDTH * 2 add hl, de ld d, h ld e, l @@ -411,9 +411,9 @@ StatusScreen2: ; 12b57 (4:6b57) ld bc, $0307 call PrintNumber hlCoord 9, 0 - call Func_12cc3 + call StatusScreen_ClearName hlCoord 9, 1 - call Func_12cc3 + call StatusScreen_ClearName ld a, [W_MONHDEXNUM] ld [wd11e], a call GetMonName @@ -463,15 +463,16 @@ EXPPointsText: ; 12caf (4:6caf) LevelUpText: ; 12cba (4:6cba) db "LEVEL UP@" -Func_12cc3: ; 12cc3 (4:6cc3) - ld bc, $a - ld a, $7f +StatusScreen_ClearName: ; 12cc3 (4:6cc3) + ld bc, 10 + ld a, " " jp FillMemory -Func_12ccb: ; 12ccb (4:6ccb) +StatusScreen_PrintPP: ; 12ccb (4:6ccb) +; print PP or -- c times, going down two rows each time ld [hli], a ld [hld], a add hl, de dec c - jr nz, Func_12ccb + jr nz, StatusScreen_PrintPP ret diff --git a/engine/oak_speech2.asm b/engine/oak_speech2.asm index dcf0b6c5..b27a6987 100755 --- a/engine/oak_speech2.asm +++ b/engine/oak_speech2.asm @@ -250,6 +250,7 @@ Func_6ad6: ; 6ad6 (1:6ad6) ld de, wcd6d ld bc, $14 jp CopyData + IF DEF(_RED) DefaultNamesPlayerList: ; 6af2 (1:6af2) db "NEW NAME@RED@ASH@JACK@" diff --git a/engine/oam_dma.asm b/engine/oam_dma.asm index 3de4d773..bd89677a 100644 --- a/engine/oam_dma.asm +++ b/engine/oam_dma.asm @@ -19,7 +19,8 @@ DMARoutine: ; wait for DMA to finish ld a, $28 -.wait dec a +.wait + dec a jr nz, .wait ret DMARoutineEnd: diff --git a/engine/overworld/cinnabar_lab.asm b/engine/overworld/cinnabar_lab.asm index e9bde496..3d39ad6b 100755 --- a/engine/overworld/cinnabar_lab.asm +++ b/engine/overworld/cinnabar_lab.asm @@ -103,7 +103,7 @@ Func_610c2: ; 610c2 (18:50c2) call GetItemName hlCoord 2, 2 ld a, [$ffdb] - ld bc, $28 + ld bc, SCREEN_WIDTH * 2 call AddNTimes ld de, wcd6d call PlaceString diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index 9854df61..0cbb7f1c 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -690,8 +690,8 @@ getTileSpriteStandsOn: ; 5207 (1:5207) ld a, [hl] ; c1x6: screen Y position srl a srl a - srl a ; screen X tile - add $14 ; screen X tile + 20 + srl a ; screen X tile + add SCREEN_WIDTH ; screen X tile + 20 ld d, $0 ld e, a hlCoord 0, 0 diff --git a/engine/save.asm b/engine/save.asm index 60fc800a..4849c53e 100755 --- a/engine/save.asm +++ b/engine/save.asm @@ -462,7 +462,7 @@ Func_7393f: ; 7393f (1c:793f) call Func_73a84 hlCoord 18, 1 ld de, wWhichTrade - ld bc, $14 + ld bc, SCREEN_WIDTH ld a, $c .asm_739c2 push af diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm index 1d640909..69a3a20e 100755 --- a/engine/titlescreen.asm +++ b/engine/titlescreen.asm @@ -70,7 +70,7 @@ ENDC call Func_4519 hlCoord 2, 1 ld a, $80 - ld de, $14 + ld de, SCREEN_WIDTH ld c, $6 .asm_434d ld b, $10 diff --git a/home.asm b/home.asm index 04c65290..b00881e1 100644 --- a/home.asm +++ b/home.asm @@ -3176,7 +3176,7 @@ UncompressSpriteFromDE:: ; 36eb (0:36eb) SaveScreenTilesToBuffer2:: ; 36f4 (0:36f4) hlCoord 0, 0 ld de, wTileMapBackup2 - ld bc, $168 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call CopyData ret @@ -3199,7 +3199,7 @@ LoadScreenTilesFromBuffer2DisableBGTransfer:: ; 3709 (0:3709) SaveScreenTilesToBuffer1:: ; 3719 (0:3719) hlCoord 0, 0 ld de, wTileMapBackup - ld bc, $168 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT jp CopyData LoadScreenTilesFromBuffer1:: ; 3725 (0:3725) @@ -3207,7 +3207,7 @@ LoadScreenTilesFromBuffer1:: ; 3725 (0:3725) ld [H_AUTOBGTRANSFERENABLED], a ld hl, wTileMapBackup deCoord 0, 0 - ld bc, $168 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call CopyData ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a diff --git a/home/overworld.asm b/home/overworld.asm index f0cde773..bb5ae234 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -1753,7 +1753,7 @@ ScheduleEastColumnRedraw:: ; 0ed3 (0:0ed3) ScheduleColumnRedrawHelper:: ; 0ef2 (0:0ef2) ld de,wScreenEdgeTiles - ld c,$12 + ld c,SCREEN_HEIGHT .loop ld a,[hli] ld [de],a diff --git a/home/text.asm b/home/text.asm index 172a4eb2..11303659 100644 --- a/home/text.asm +++ b/home/text.asm @@ -61,16 +61,16 @@ PlaceNextChar:: ; 1956 (0:1956) .PlaceText cp $4E jr nz,.next - ld bc,$0028 + ld bc,SCREEN_WIDTH * 2 ld a,[hFlags_0xFFF6] bit 2,a jr z,.next2 - ld bc,$14 + ld bc,SCREEN_WIDTH .next2 pop hl add hl,bc push hl - jp Next19E8 + jp PlaceNextChar_inc .next cp $4F @@ -78,7 +78,7 @@ PlaceNextChar:: ; 1956 (0:1956) pop hl hlCoord 1, 16 push hl - jp Next19E8 + jp PlaceNextChar_inc .next3 ; Check against a dictionary and a @@ -123,7 +123,7 @@ PlaceNextChar:: ; 1956 (0:1956) jp z,Char5A ld [hli],a call PrintLetterDelay -Next19E8:: ; 19e8 (0:19e8) +PlaceNextChar_inc:: ; 19e8 (0:19e8) inc de jp PlaceNextChar @@ -273,7 +273,7 @@ Char58:: ; 1a95 (0:1a95) Next1AA2:: ; 1aa2 (0:1aa2) call ProtectedDelay3 call ManualTextScroll - ld a,$7F + ld a, " " Coorda 18, 16 Char57:: ; 1aad (0:1aad) pop hl @@ -297,7 +297,7 @@ Char51:: ; 1ab4 (0:1ab4) call DelayFrames pop de hlCoord 1, 14 - jp Next19E8 + jp PlaceNextChar_inc Char49:: ; 1ad5 (0:1ad5) push de @@ -314,7 +314,7 @@ Char49:: ; 1ad5 (0:1ad5) pop hl hlCoord 1, 11 push hl - jp Next19E8 + jp PlaceNextChar_inc Char4B:: ; 1af8 (0:1af8) ld a,$EE @@ -323,7 +323,7 @@ Char4B:: ; 1af8 (0:1af8) push de call ManualTextScroll pop de - ld a,$7F + ld a, " " Coorda 18, 16 ;fall through Char4C:: ; 1b0a (0:1b0a) @@ -332,12 +332,12 @@ Char4C:: ; 1b0a (0:1b0a) call Next1B18 hlCoord 1, 16 pop de - jp Next19E8 + jp PlaceNextChar_inc Next1B18:: ; 1b18 (0:1b18) hlCoord 0, 14 deCoord 0, 13 - ld b,$3C + ld b,60 .next ld a,[hli] ld [de],a @@ -345,8 +345,8 @@ Next1B18:: ; 1b18 (0:1b18) dec b jr nz,.next hlCoord 1, 16 - ld a,$7F - ld b,$12 + ld a, " " + ld b,SCREEN_WIDTH - 2 .next2 ld [hli],a dec b diff --git a/main.asm b/main.asm index 29cf2496..ac45994b 100755 --- a/main.asm +++ b/main.asm @@ -1157,7 +1157,7 @@ PrintStartMenuItem: ; 71bb (1:71bb) push hl call PlaceString pop hl - ld de,$28 + ld de,SCREEN_WIDTH * 2 add hl,de ret @@ -1755,14 +1755,14 @@ DisplayFieldMoveMonMenu: ; 76e1 (1:36e1) sub e ld c, a pop af - ld de, $ffd8 + ld de, -SCREEN_WIDTH * 2 .asm_7725 add hl, de inc b inc b dec a jr nz, .asm_7725 - ld de, $ffec + ld de, -SCREEN_WIDTH add hl, de inc b call TextBoxBorder @@ -1773,7 +1773,7 @@ DisplayFieldMoveMonMenu: ; 76e1 (1:36e1) ld e, a ld d, $0 add hl, de - ld de, $ffd8 + ld de, -SCREEN_WIDTH * 2 ld a, [wTrainerScreenX] .asm_7747 add hl, de @@ -1806,7 +1806,7 @@ DisplayFieldMoveMonMenu: ; 76e1 (1:36e1) ld d, b ld e, c call PlaceString - ld bc, $28 + ld bc, SCREEN_WIDTH * 2 add hl, bc pop de jr .asm_7752 @@ -4031,7 +4031,7 @@ _MoveMon: ; f51e (3:751e) ld [hli], a ld d, h ld e, l - ld bc, $ffee + ld bc, -18 add hl, bc ld b, $1 call CalcStats diff --git a/scripts/celadonmartroof.asm b/scripts/celadonmartroof.asm index 953b1583..8b6ff60f 100755 --- a/scripts/celadonmartroof.asm +++ b/scripts/celadonmartroof.asm @@ -202,7 +202,7 @@ CeladonMartRoofScript_48532: ; 48532 (12:4532) call GetItemName hlCoord 2, 2 ld a, [$ffdb] - ld bc, $28 + ld bc, SCREEN_WIDTH * 2 call AddNTimes ld de, wcd6d call PlaceString -- cgit v1.3.1-sl0p From 07dd7056372288de7bb5b64f9416d741adb3b499 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Tue, 14 Jul 2015 19:46:52 -0700 Subject: hall of fame / credits --- constants/misc_constants.asm | 2 +- engine/HoF_room_pc.asm | 124 +++++++++++++++++++++++-------------------- engine/battle/animations.asm | 2 +- engine/battle/core.asm | 4 +- engine/hall_of_fame.asm | 118 ++++++++++++++++++++-------------------- engine/menu/bills_pc.asm | 6 +-- engine/menu/league_pc.asm | 44 +++++++-------- engine/menu/main_menu.asm | 8 +-- engine/oak_speech.asm | 10 ++-- engine/overworld/cut.asm | 4 +- engine/overworld/cut2.asm | 2 +- engine/save.asm | 8 +-- engine/titlescreen.asm | 6 +-- engine/titlescreen2.asm | 4 +- home.asm | 6 +-- home/init.asm | 2 +- home/text.asm | 6 +-- scripts/halloffameroom.asm | 4 +- scripts/vermiliondock.asm | 4 +- sram.asm | 2 +- wram.asm | 34 ++++++++++-- 21 files changed, 221 insertions(+), 179 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index eca97408..2495f17f 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -8,7 +8,7 @@ NUM_BOXES EQU 12 HOF_MON EQU $10 HOF_TEAM EQU PARTY_LENGTH * HOF_MON -NUM_HOF_TEAMS EQU 50 +HOF_TEAM_CAPACITY EQU 50 A_BUTTON EQU %00000001 diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index 98c77903..77a07ea3 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -6,10 +6,10 @@ HallOfFamePC: ; 7405c (1d:405c) call DisableLCD ld hl, vFont ld bc, $800 / 2 - call Func_74171 + call ZeroMemory ld hl, vChars2 + $600 ld bc, $200 / 2 - call Func_74171 + call ZeroMemory ld hl, vChars2 + $7e0 ld bc, $10 ld a, $ff @@ -30,12 +30,12 @@ HallOfFamePC: ; 7405c (1d:405c) call DelayFrames xor a ld [wWhichTrade], a - ld [wTrainerEngageDistance], a + ld [wNumCreditsMonsDisplayed], a jp Credits -Func_740ba: ; 740ba (1d:40ba) +FadeInCreditsText: ; 740ba (1d:40ba) ld hl, HoFGBPalettes - ld b, $4 + ld b, 4 .asm_740bf ld a, [hli] ld [rBGP], a @@ -52,7 +52,7 @@ DisplayCreditsMon: ; 740cb (1d:40cb) call FillMiddleOfScreenWithWhite ; display the next monster from CreditsMons - ld hl,wTrainerEngageDistance + ld hl,wNumCreditsMonsDisplayed ld c,[hl] ; how many monsters have we displayed so far? inc [hl] ld b,0 @@ -65,62 +65,69 @@ DisplayCreditsMon: ; 740cb (1d:40cb) call GetMonHeader call LoadFrontSpriteByMonIndex ld hl,vBGMap0 + $c - call Func_74164 + call CopyTileMapToVRAM xor a ld [H_AUTOBGTRANSFERENABLED],a call LoadScreenTilesFromBuffer1 ld hl,vBGMap0 - call Func_74164 + call CopyTileMapToVRAM ld a,$A7 - ld [$FF4B],a + ld [rWX],a ld hl,vBGMap1 - call Func_74164 + call CopyTileMapToVRAM call FillMiddleOfScreenWithWhite - ld a,$FC + ld a,%11111100 ; make the mon a black silhouette ld [rBGP],a + +; scroll the mon left by one tile 7 times ld bc,7 -.next - call Func_74140 +.scrollLoop1 + call ScrollCreditsMonLeft dec c - jr nz,.next - ld c,$14 -.next2 - call Func_74140 - ld a,[$FF4B] + jr nz,.scrollLoop1 + +; scroll the mon left by one tile 20 times +; This time, we have to move the window left too in order to hide the text that +; is wrapping around to the right side of the screen. + ld c,20 +.scrollLoop2 + call ScrollCreditsMonLeft + ld a,[rWX] sub 8 - ld [$FF4B],a + ld [rWX],a dec c - jr nz,.next2 + jr nz,.scrollLoop2 + xor a ld [hWY],a - ld a,$C0 + ld a,%11000000 ld [rBGP],a ret INCLUDE "data/credit_mons.asm" -Func_74140: ; 74140 (1d:4140) +ScrollCreditsMonLeft: ; 74140 (1d:4140) ld h, b ld l, $20 - call Func_74152 + call ScrollCreditsMonLeft_SetSCX ld h, $0 ld l, $70 - call Func_74152 + call ScrollCreditsMonLeft_SetSCX ld a, b add $8 ld b, a ret -Func_74152: ; 74152 (1d:4152) - ld a, [$ff44] +ScrollCreditsMonLeft_SetSCX: ; 74152 (1d:4152) + ld a, [rLY] cp l - jr nz, Func_74152 + jr nz, ScrollCreditsMonLeft_SetSCX ld a, h ld [rSCX], a -.asm_7415a - ld a, [$ff44] +.loop + ld a, [rLY] cp h - jr z, .asm_7415a + jr z, .loop ret HoFGBPalettes: ; 74160 (1d:4160) @@ -129,7 +136,7 @@ HoFGBPalettes: ; 74160 (1d:4160) db %11100000 db %11110000 -Func_74164: ; 74164 (1d:4164) +CopyTileMapToVRAM: ; 74164 (1d:4164) ld a, l ld [H_AUTOBGTRANSFERDEST], a ld a, h @@ -138,14 +145,15 @@ Func_74164: ; 74164 (1d:4164) ld [H_AUTOBGTRANSFERENABLED], a jp Delay3 -Func_74171: ; 74171 (1d:4171) - ld [hl], $0 +ZeroMemory: ; 74171 (1d:4171) +; zero bc bytes at hl + ld [hl], 0 inc hl inc hl dec bc ld a, b or c - jr nz, Func_74171 + jr nz, ZeroMemory ret FillFourRowsWithBlack: ; 7417b (1d:417b) @@ -162,26 +170,26 @@ FillMiddleOfScreenWithWhite: ; 74183 (1d:4183) Credits: ; 7418e (1d:418e) ld de, CreditsOrder push de -.asm_74192 +.nextCreditsScreen pop de hlCoord 9, 6 push hl call FillMiddleOfScreenWithWhite pop hl -.asm_7419b +.nextCreditsCommand ld a, [de] inc de push de cp $ff - jr z, .asm_741d5 + jr z, .fadeInTextAndShowMon cp $fe - jr z, .asm_741dc + jr z, .showTextAndShowMon cp $fd - jr z, .asm_741e6 + jr z, .fadeInText cp $fc - jr z, .asm_741ed + jr z, .showText cp $fb - jr z, .asm_741f4 + jr z, .showCopyrightText cp $fa jr z, .showTheEnd push hl @@ -189,7 +197,7 @@ Credits: ; 7418e (1d:418e) ld hl, CreditsTextPointers add a ld c, a - ld b, $0 + ld b, 0 add hl, bc ld e, [hl] inc hl @@ -205,32 +213,32 @@ Credits: ; 7418e (1d:418e) ld bc, SCREEN_WIDTH * 2 add hl, bc pop de - jr .asm_7419b -.asm_741d5 - call Func_740ba + jr .nextCreditsCommand +.fadeInTextAndShowMon + call FadeInCreditsText ld c, 90 - jr .asm_741de -.asm_741dc + jr .next1 +.showTextAndShowMon ld c, 110 -.asm_741de +.next1 call DelayFrames call DisplayCreditsMon - jr .asm_74192 -.asm_741e6 - call Func_740ba + jr .nextCreditsScreen +.fadeInText + call FadeInCreditsText ld c, 120 - jr .asm_741ef -.asm_741ed + jr .next2 +.showText ld c, 140 -.asm_741ef +.next2 call DelayFrames - jr .asm_74192 -.asm_741f4 + jr .nextCreditsScreen +.showCopyrightText push de callba LoadCopyrightTiles pop de pop de - jr .asm_7419b + jr .nextCreditsCommand .showTheEnd ld c, 16 call DelayFrames @@ -246,7 +254,7 @@ Credits: ; 7418e (1d:418e) hlCoord 4, 9 inc de call PlaceString - jp Func_740ba + jp FadeInCreditsText TheEndTextString: ; 74229 (1d:4229) ; "T H E E N D" diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 32f98f19..9f725cc9 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -1973,7 +1973,7 @@ AnimationWavyScreen: ; 79666 (1e:5666) push hl .asm_79680 call Func_796ae - ld a, [$ff44] + ld a, [rLY] cp e jr nz, .asm_79680 pop hl diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 5ef94998..9535a8c5 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -6856,7 +6856,7 @@ DetermineWildOpponent: ; 3ef23 (f:6f23) InitBattleCommon: ; 3ef3d (f:6f3d) ld a, [wMapPalOffset] push af - ld hl, wd358 + ld hl, wLetterPrintingDelayFlags ld a, [hl] push af res 1, [hl] @@ -6963,7 +6963,7 @@ InitBattle_Common: ; 3efeb (f:6feb) call StartBattle callab EndOfBattle pop af - ld [wd358], a + ld [wLetterPrintingDelayFlags], a pop af ld [wMapPalOffset], a ld a, [wd0d4] diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm index 7882a226..81ccffdc 100755 --- a/engine/hall_of_fame.asm +++ b/engine/hall_of_fame.asm @@ -1,5 +1,5 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) - call Func_70423 + call HoFFadeOutScreenAndMusic call ClearScreen ld c, 100 call DelayFrames @@ -21,16 +21,16 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) ld [wUpdateSpritesEnabled], a ld [hTilesetType], a ld [W_SPRITEFLIPPED], a - ld [wd358], a - ld [wTrainerScreenY], a + ld [wLetterPrintingDelayFlags], a ; no delay + ld [wHoFMonOrPlayer], a ; mon inc a ld [H_AUTOBGTRANSFERENABLED], a - ld hl, wd5a2 + ld hl, wNumHoFTeams ld a, [hl] inc a - jr z, .asm_701eb + jr z, .skipInc ; don't wrap around to 0 inc [hl] -.asm_701eb +.skipInc ld a, $90 ld [hWY], a ld c, BANK(Music_HallOfFame) @@ -38,23 +38,23 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) call PlayMusic ld hl, wPartySpecies ld c, $ff -.asm_701fb +.partyMonLoop ld a, [hli] cp $ff - jr z, .asm_70241 + jr z, .doneShowingParty inc c push hl push bc - ld [wWhichTrade], a + ld [wHoFMonSpecies], a ld a, c - ld [wTrainerEngageDistance], a + ld [wHoFPartyMonIndex], a ld hl, wPartyMon1Level ld bc, wPartyMon2 - wPartyMon1 call AddNTimes ld a, [hl] - ld [wTrainerFacingDirection], a - call Func_70278 - call Func_702e1 + ld [wHoFMonLevel], a + call HoFShowMonOrPlayer + call HoFDisplayAndRecordMonInfo ld c, 80 call DelayFrames hlCoord 2, 13 @@ -69,8 +69,8 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) call GBFadeOutToWhite pop bc pop hl - jr .asm_701fb -.asm_70241 + jr .partyMonLoop +.doneShowingParty ld a, c inc a ld hl, wHallOfFame @@ -79,12 +79,12 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) ld [hl], $ff call SaveHallOfFameTeams xor a - ld [wWhichTrade], a + ld [wHoFMonSpecies], a inc a - ld [wTrainerScreenY], a - call Func_70278 + ld [wHoFMonOrPlayer], a ; player + call HoFShowMonOrPlayer call HoFDisplayPlayerStats - call Func_70423 + call HoFFadeOutScreenAndMusic xor a ld [hWY], a ld hl, rLCDC @@ -94,69 +94,72 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) HallOfFameText: ; 7026b (1c:426b) db "HALL OF FAME@" -Func_70278: ; 70278 (1c:4278) +HoFShowMonOrPlayer: ; 70278 (1c:4278) call ClearScreen ld a, $d0 ld [hSCY], a ld a, $c0 ld [hSCX], a - ld a, [wWhichTrade] + ld a, [wHoFMonSpecies] ld [wcf91], a ld [wd0b5], a ld [wBattleMonSpecies2], a ld [wcf1d], a - ld a, [wTrainerScreenY] + ld a, [wHoFMonOrPlayer] and a - jr z, .asm_7029d + jr z, .showMon +; show player call HoFLoadPlayerPics - jr .asm_702ab -.asm_7029d + jr .next1 +.showMon hlCoord 12, 5 call GetMonHeader call LoadFrontSpriteByMonIndex predef LoadMonBackPic -.asm_702ab +.next1 ld b, $b ld c, $0 call GoPAL_SET - ld a, $e4 + ld a, %11100100 ld [rBGP], a - ld c, $31 - call Func_7036d + ld c, $31 ; back pic + call HoFLoadMonPlayerPicTileIDs ld d, $a0 - ld e, $4 + ld e, 4 ld a, [wOnSGB] and a - jr z, .asm_702c7 - sla e -.asm_702c7 - call .asm_702d5 + jr z, .next2 + sla e ; scroll more slowly on SGB +.next2 + call .ScrollPic ; scroll back pic left xor a ld [hSCY], a - ld c, a - call Func_7036d - ld d, $0 - ld e, $fc -.asm_702d5 + ld c, a ; front pic + call HoFLoadMonPlayerPicTileIDs + ld d, 0 + ld e, -4 +; scroll front pic right + +.ScrollPic call DelayFrame ld a, [hSCX] add e ld [hSCX], a cp d - jr nz, .asm_702d5 + jr nz, .ScrollPic ret -Func_702e1: ; 702e1 (1c:42e1) - ld a, [wTrainerEngageDistance] +HoFDisplayAndRecordMonInfo: ; 702e1 (1c:42e1) + ld a, [wHoFPartyMonIndex] ld hl, wPartyMonNicks call GetPartyMonName - call Func_702f0 - jp Func_70404 + call HoFDisplayMonInfo + jp HoFRecordMonInfo -Func_702f0: ; 702f0 (1c:42f0) +HoFDisplayMonInfo: ; 702f0 (1c:42f0) hlCoord 0, 2 - ld b, $9 - ld c, $a + ld b, 9 + ld c, 10 call TextBoxBorder hlCoord 2, 6 ld de, HoFMonInfoText @@ -164,14 +167,14 @@ Func_702f0: ; 702f0 (1c:42f0) hlCoord 1, 4 ld de, wcd6d call PlaceString - ld a, [wTrainerFacingDirection] + ld a, [wHoFMonLevel] hlCoord 8, 7 call PrintLevelCommon - ld a, [wWhichTrade] + ld a, [wHoFMonSpecies] ld [wd0b5], a hlCoord 3, 9 predef PrintMonType - ld a, [wWhichTrade] + ld a, [wHoFMonSpecies] jp PlayCry HoFMonInfoText: ; 70329 (1c:4329) @@ -197,8 +200,9 @@ HoFLoadPlayerPics: ; 7033e (1c:433e) call InterlaceMergeSpriteBuffers ld c, $1 -Func_7036d: ; 7036d (1c:436d) - ld b, $0 +HoFLoadMonPlayerPicTileIDs: ; 7036d (1c:436d) +; c = base tile ID + ld b, 0 hlCoord 12, 5 predef_jump CopyTileIDsFromList @@ -261,14 +265,14 @@ DexRatingText: ; 703ff (1c:43ff) TX_FAR _DexRatingText db "@" -Func_70404: ; 70404 (1c:4404) +HoFRecordMonInfo: ; 70404 (1c:4404) ld hl, wHallOfFame ld bc, HOF_MON - ld a, [wTrainerEngageDistance] + ld a, [wHoFPartyMonIndex] call AddNTimes - ld a, [wWhichTrade] + ld a, [wHoFMonSpecies] ld [hli], a - ld a, [wTrainerFacingDirection] + ld a, [wHoFMonLevel] ld [hli], a ld e, l ld d, h @@ -276,7 +280,7 @@ Func_70404: ; 70404 (1c:4404) ld bc, $b jp CopyData -Func_70423: ; 70423 (1c:4423) +HoFFadeOutScreenAndMusic: ; 70423 (1c:4423) ld a, $a ld [wcfc8], a ld [wcfc9], a diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm index fcc51af1..ec7d728a 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 call SaveScreenTilesToBuffer2 - ld a, [wd5a2] + ld a, [wNumHoFTeams] and a jr nz, .asm_213f3 ld a, [wd74b] bit 5, a jr z, .asm_213ea - ld a, [wd5a2] + ld a, [wNumHoFTeams] and a jr nz, .asm_213f3 hlCoord 0, 0 @@ -53,7 +53,7 @@ Func_213c8:: ; 213c8 (8:53c8) hlCoord 2, 6 ld de, OaksPCText call PlaceString - ld a, [wd5a2] + ld a, [wNumHoFTeams] and a jr z, .asm_2145a ld a, $4 diff --git a/engine/menu/league_pc.asm b/engine/menu/league_pc.asm index a6dd7021..c38ab86b 100755 --- a/engine/menu/league_pc.asm +++ b/engine/menu/league_pc.asm @@ -13,30 +13,32 @@ PKMNLeaguePC: ; 0x7657e ld [W_SPRITEFLIPPED], a ld [wUpdateSpritesEnabled], a ld [wTrainerScreenX], a - ld [wcd42], a - ld a, [wd5a2] + ld [wHoFTeamNo], a + ld a, [wNumHoFTeams] ld b, a - cp NUM_HOF_TEAMS + 1 - jr c, .first - ld b, NUM_HOF_TEAMS + cp HOF_TEAM_CAPACITY + 1 + jr c, .loop +; If the total number of hall of fame teams is greater than the storage +; capacity, then calculate the number of the first team that is still recorded. + ld b, HOF_TEAM_CAPACITY sub b - ld [wcd42], a -.first - ld hl, wcd42 + ld [wHoFTeamNo], a +.loop + ld hl, wHoFTeamNo inc [hl] push bc ld a, [wTrainerScreenX] - ld [wWhichTrade], a + ld [wHoFMonSpecies], a callba LoadHallOfFameTeams - call Func_765e5 + call LeaguePCShowTeam pop bc - jr c, .second + jr c, .doneShowingTeams ld hl, wTrainerScreenX inc [hl] ld a, [hl] cp b - jr nz, .first -.second + jr nz, .loop +.doneShowingTeams pop af ld [hTilesetType], a pop af @@ -48,11 +50,11 @@ PKMNLeaguePC: ; 0x7657e call GoPAL_SET_CF1C jp GBPalNormal -Func_765e5: ; 765e5 (1d:65e5) +LeaguePCShowTeam: ; 765e5 (1d:65e5) ld c, PARTY_LENGTH .loop push bc - call Func_76610 + call LeaguePCShowMon call WaitForTextScrollButtonPress ld a, [hJoyHeld] bit 1, a @@ -75,18 +77,18 @@ Func_765e5: ; 765e5 (1d:65e5) scf ret -Func_76610: ; 76610 (1d:6610) +LeaguePCShowMon: ; 76610 (1d:6610) call GBPalWhiteOutWithDelay3 call ClearScreen ld hl, wHallOfFame ld a, [hli] - ld [wWhichTrade], a + ld [wHoFMonSpecies], a ld [wcf91], a ld [wd0b5], a ld [wBattleMonSpecies2], a ld [wcf1d], a ld a, [hli] - ld [wTrainerFacingDirection], a + ld [wHoFMonLevel], a ld de, wcd6d ld bc, $000B call CopyData @@ -105,11 +107,11 @@ Func_76610: ; 76610 (1d:6610) ld de, HallOfFameNoText call PlaceString hlCoord 16, 15 - ld de, wcd42 + ld de, wHoFTeamNo ld bc, $0103 call PrintNumber - ld b, BANK(Func_702f0) - ld hl, Func_702f0 + ld b, BANK(HoFDisplayMonInfo) + ld hl, HoFDisplayMonInfo jp Bankswitch HallOfFameNoText: ; 76670 (1d:6670) diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 0856352c..55c559f5 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -109,7 +109,7 @@ MainMenu: ; 5af2 (1:5af2) ld [wd52a],a ld c,10 call DelayFrames - ld a,[wd5a2] + ld a,[wNumHoFTeams] and a jp z,SpecialEnterMap ld a,[W_CURMAP] ; map ID @@ -124,14 +124,14 @@ MainMenu: ; 5af2 (1:5af2) Func_5bff: ; 5bff (1:5bff) ld a,1 - ld [wd358],a + ld [wLetterPrintingDelayFlags],a ld a,3 ld [W_OPTIONS],a ret LinkMenu: ; 5c0a (1:5c0a) xor a - ld [wd358], a + ld [wLetterPrintingDelayFlags], a ld hl, wd72e set 6, [hl] ld hl, TextTerminator_6b20 @@ -452,7 +452,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) ld [wCurrentMenuItem],a ld [wLastMenuItem],a inc a - ld [wd358],a + ld [wLetterPrintingDelayFlags],a ld [wTrainerScreenY],a ld a,3 ; text speed cursor Y coordinate ld [wTopMenuItemY],a diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index f333586d..df092d4c 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -1,5 +1,5 @@ SetDefaultNames: ; 60ca (1:60ca) - ld a, [wd358] + ld a, [wLetterPrintingDelayFlags] push af ld a, [W_OPTIONS] push af @@ -18,7 +18,7 @@ SetDefaultNames: ; 60ca (1:60ca) pop af ld [W_OPTIONS], a pop af - ld [wd358], a + ld [wLetterPrintingDelayFlags], a ld a, [wd08a] and a call z, Func_5bff @@ -193,18 +193,18 @@ IntroFadePalettes: ; 6282 (1:6282) MovePicLeft: ; 6288 (1:6288) ld a,119 - ld [$FF4B],a + ld [rWX],a call DelayFrame ld a,$E4 ld [rBGP],a .next call DelayFrame - ld a,[$FF4B] + ld a,[rWX] sub 8 cp $FF ret z - ld [$FF4B],a + ld [rWX],a jr .next Predef3B: ; 62a1 (1:62a1) diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm index 163b32e7..8f171545 100755 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -26,7 +26,7 @@ UsedCut: ; ef54 (3:6f54) db "@" .asm_ef82 - ld [wcd4d], a + ld [wCutTile], a ld a, $1 ld [wcd6a], a ld a, [wWhichPokemon] @@ -76,7 +76,7 @@ AnimateCutTree: ; eff7 (3:6ff7) ld [wWhichAnimationOffsets], a ld a, $e4 ld [rOBP1], a - ld a, [wcd4d] + ld a, [wCutTile] cp $52 jr z, .asm_f020 ld de, Overworld_GFX + $2d0 ; cuttable tree sprite top row diff --git a/engine/overworld/cut2.asm b/engine/overworld/cut2.asm index 9cb011b4..3194b39b 100755 --- a/engine/overworld/cut2.asm +++ b/engine/overworld/cut2.asm @@ -1,5 +1,5 @@ Func_79e96: ; 79e96 (1e:5e96) - ld a, [wcd4d] + ld a, [wCutTile] cp $52 jr z, .asm_79ec8 ld c, $8 diff --git a/engine/save.asm b/engine/save.asm index 4849c53e..ac97e6ba 100755 --- a/engine/save.asm +++ b/engine/save.asm @@ -620,9 +620,9 @@ SAVCheckRandomID: ; 73ad1 (1c:7ad1) ret SaveHallOfFameTeams: ; 73b0d (1c:7b0d) - ld a, [wd5a2] + ld a, [wNumHoFTeams] dec a - cp NUM_HOF_TEAMS + cp HOF_TEAM_CAPACITY jr nc, .asm_73b28 ld hl, sHallOfFame ld bc, HOF_TEAM @@ -636,10 +636,10 @@ SaveHallOfFameTeams: ; 73b0d (1c:7b0d) .asm_73b28 ld hl, sHallOfFame + HOF_TEAM ld de, sHallOfFame - ld bc, HOF_TEAM * (NUM_HOF_TEAMS - 1) + ld bc, HOF_TEAM * (HOF_TEAM_CAPACITY - 1) call HallOfFame_Copy ld hl, wcc5b - ld de, sHallOfFame + HOF_TEAM * (NUM_HOF_TEAMS - 1) + ld de, sHallOfFame + HOF_TEAM * (HOF_TEAM_CAPACITY - 1) ld bc, HOF_TEAM jr HallOfFame_Copy diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm index 69a3a20e..7230f08f 100755 --- a/engine/titlescreen.asm +++ b/engine/titlescreen.asm @@ -12,7 +12,7 @@ SetDefaultNamesBeforeTitlescreen: ; 42b7 (1:42b7) call CopyFixedLengthText xor a ld [hWY], a - ld [wd358], a + ld [wLetterPrintingDelayFlags], a ld hl, wd732 ld [hli], a ld [hli], a @@ -284,7 +284,7 @@ Func_44c1: ; 44c1 (1:44c1) Func_44cf: ; 44cf (1:44cf) .wait - ld a, [$ff44] ; rLY + ld a, [rLY] cp l jr nz, .wait @@ -292,7 +292,7 @@ Func_44cf: ; 44cf (1:44cf) ld [rSCX], a .wait2 - ld a, [$ff44] ; rLY + ld a, [rLY] cp h jr z, .wait2 ret diff --git a/engine/titlescreen2.asm b/engine/titlescreen2.asm index 57e5c3d5..61b97edc 100755 --- a/engine/titlescreen2.asm +++ b/engine/titlescreen2.asm @@ -69,7 +69,7 @@ _TitleScroll: ; 3726a (d:726a) .ScrollBetween ; 37292 (d:7292) .wait - ld a, [$ff44] ; rLY + ld a, [rLY] ; rLY cp l jr nz, .wait @@ -77,7 +77,7 @@ _TitleScroll: ; 3726a (d:726a) ld [rSCX], a .wait2 - ld a, [$ff44] ; rLY + ld a, [rLY] ; rLY cp h jr z, .wait2 ret diff --git a/home.asm b/home.asm index bf5ed9c3..7f1a790e 100644 --- a/home.asm +++ b/home.asm @@ -3538,18 +3538,18 @@ Divide:: ; 38b9 (0:38b9) ; This function is used to wait a short period after printing a letter to the ; screen unless the player presses the A/B button or the delay is turned off -; through the [wd730] or [wd358] flags. +; through the [wd730] or [wLetterPrintingDelayFlags] flags. PrintLetterDelay:: ; 38d3 (0:38d3) ld a,[wd730] bit 6,a ret nz - ld a,[wd358] + ld a,[wLetterPrintingDelayFlags] bit 1,a ret z push hl push de push bc - ld a,[wd358] + ld a,[wLetterPrintingDelayFlags] bit 0,a jr z,.waitOneFrame ld a,[W_OPTIONS] diff --git a/home/init.asm b/home/init.asm index b3f31944..932797ac 100644 --- a/home/init.asm +++ b/home/init.asm @@ -27,7 +27,7 @@ rLCDC_DEFAULT EQU %11100011 ld [$ff42], a ld [rSB], a ld [rSC], a - ld [$ff4b], a + ld [rWX], a ld [$ff4a], a ld [$ff06], a ld [$ff07], a diff --git a/home/text.asm b/home/text.asm index b77e1930..ebdc83f4 100644 --- a/home/text.asm +++ b/home/text.asm @@ -368,13 +368,13 @@ ProtectedDelay3:: ; 1b3a (0:1b3a) ret TextCommandProcessor:: ; 1b40 (0:1b40) - ld a,[wd358] + ld a,[wLetterPrintingDelayFlags] push af set 1,a ld e,a ld a,[$fff4] xor e - ld [wd358],a + ld [wLetterPrintingDelayFlags],a ld a,c ld [wcc3a],a ld a,b @@ -385,7 +385,7 @@ NextTextCommand:: ; 1b55 (0:1b55) cp a, "@" ; terminator jr nz,.doTextCommand pop af - ld [wd358],a + ld [wLetterPrintingDelayFlags],a ret .doTextCommand push hl diff --git a/scripts/halloffameroom.asm b/scripts/halloffameroom.asm index 1d522e60..afdd4e0c 100755 --- a/scripts/halloffameroom.asm +++ b/scripts/halloffameroom.asm @@ -21,13 +21,13 @@ HallofFameRoomScript3: ; 5a4ba (16:64ba) HallofFameRoomScript2: ; 5a4bb (16:64bb) call Delay3 - ld a, [wd358] + ld a, [wLetterPrintingDelayFlags] push af xor a ld [wJoyIgnore], a predef HallOfFamePC pop af - ld [wd358], a + ld [wLetterPrintingDelayFlags], a ld hl, W_FLAGS_D733 res 1, [hl] inc hl diff --git a/scripts/vermiliondock.asm b/scripts/vermiliondock.asm index f070d377..361f4997 100755 --- a/scripts/vermiliondock.asm +++ b/scripts/vermiliondock.asm @@ -167,13 +167,13 @@ VermilionDock_1dc7c: ; 1dc7c (7:5c7c) ld h, $0 ld l, $80 .asm_1dc86 - ld a, [$ff44] + ld a, [rLY] cp l jr nz, .asm_1dc86 ld a, h ld [$ff43], a .asm_1dc8e - ld a, [$ff44] + ld a, [rLY] cp h jr z, .asm_1dc8e ret diff --git a/sram.asm b/sram.asm index f20f8adf..9d498df9 100644 --- a/sram.asm +++ b/sram.asm @@ -6,7 +6,7 @@ S_SPRITEBUFFER2:: ds SPRITEBUFFERSIZE ; a310 ds $100 -sHallOfFame:: ds HOF_TEAM * NUM_HOF_TEAMS ; a598 +sHallOfFame:: ds HOF_TEAM * HOF_TEAM_CAPACITY ; a598 SECTION "Save Data", SRAM, BANK[1] diff --git a/wram.asm b/wram.asm index c150b6c6..61dba700 100755 --- a/wram.asm +++ b/wram.asm @@ -601,6 +601,8 @@ wOverrideSimulatedJoypadStatesMask:: ; cd3b ds 1 +wHoFMonSpecies:: ; cd3d + wFieldMoves:: ; cd3d ; 4 bytes ; the current mon's field moves @@ -642,6 +644,11 @@ wWhichTrade:: ; cd3d wTrainerSpriteOffset:: ; cd3d ds 1 +wHoFPartyMonIndex:: ; cd3e + +wNumCreditsMonsDisplayed:: ; cd3e +; the number of credits mons that have been displayed so far + wBadgeNameTile:: ; cd3e ; first tile ID of the name being drawn @@ -665,6 +672,8 @@ wHiddenObjectFunctionRomBank:: ; cd3e wTrainerEngageDistance:: ; cd3e ds 1 +wHoFMonLevel:: ; cd3f + wBadgeOrFaceTiles:: ; cd3f ; 8 bytes ; a list of the first tile IDs of each badge or face (depending on whether the @@ -686,6 +695,11 @@ wTrainerFacingDirection:: ; cd3f wcd3f:: ; used with daycare text for money amount ds 1 +wHoFMonOrPlayer:: ; cd40 +; show mon or show player? +; 0 = mon +; 1 = player + wSlotMachineWheel3Offset:: ; cd40 wPlayerSpinInPlaceAnimSoundID:: ; cd40 @@ -710,6 +724,8 @@ wTrainerScreenX:: ; cd41 ds 1 ; a lot of the uses for these values use more than the said address +wHoFTeamNo:: ; cd42 + wSlotMachineWheel1MiddleTile:: ; cd42 wFieldMovesLeftmostXCoord:: ; cd42 @@ -776,7 +792,10 @@ wSlotMachineFlags:: ; cd4c wSlotMachineWheel1SlipCounter:: ; cd4d ; wheel 1 can "slip" while this is non-zero -wcd4d:: ds 1 ; used with cut and slot machine +wCutTile:: ; cd4d +; $3d = tree tile +; $52 = grass tile + ds 1 wSlotMachineWheel2SlipCounter:: ; cd4e ; wheel 2 can "slip" while this is non-zero @@ -1695,7 +1714,12 @@ W_OBTAINEDBADGES:: ; d356 ds 1 -wd358:: ds 1 ; bit 0 set = no delay when printing text (W_OPTIONS is still checked though) +wLetterPrintingDelayFlags:: ; d358 +; bit 0: If 0, limit the delay to 1 frame. Note that this has no effect if +; the delay has been disabled entirely through bit 1 of this variable +; or bit 6 of wd730. +; bit 1: If 0, no delay. + ds 1 wPlayerID:: ; d359 ds 2 @@ -1904,7 +1928,11 @@ wBoxItems:: ; d53b ds 1 ; end wd5a0:: ds 2 ; current box number -wd5a2:: ds 1 ; number of HOF teams + +wNumHoFTeams:: ; d5a2 +; number of HOF teams + ds 1 + wd5a3:: ds 1 ; unused? (written to when loading map data) wPlayerCoins:: ; d5a4 -- cgit v1.3.1-sl0p From 994c2cbf289efa2e23eabf1af96ba62e4f066005 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Tue, 14 Jul 2015 23:16:06 -0700 Subject: named wram variables --- engine/battle/animations.asm | 32 ++++---- engine/battle/bank_e_misc.asm | 10 +-- engine/battle/core.asm | 131 ++++++++++++++++---------------- engine/battle/init_battle_variables.asm | 2 +- engine/battle/trainer_ai.asm | 12 +-- engine/items/items.asm | 32 ++++---- engine/learn_move.asm | 20 ++--- engine/menu/bills_pc.asm | 4 +- engine/menu/party_menu.asm | 2 +- engine/menu/players_pc.asm | 12 +-- engine/menu/start_sub_menus.asm | 14 ++-- engine/menu/status_screen.asm | 10 +-- engine/overworld/cut.asm | 4 +- engine/overworld/pokemart.asm | 10 +-- engine/predefs.asm | 2 +- engine/predefs7.asm | 6 +- home.asm | 38 ++++----- home/overworld.asm | 6 +- main.asm | 14 ++-- scripts/ceruleanhouse2.asm | 6 +- wram.asm | 81 +++++++++++++++----- 21 files changed, 245 insertions(+), 203 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 9f725cc9..63ea170d 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -2500,27 +2500,29 @@ CopyPicTiles: ; 79aae (1e:5aae) ld a, [H_WHOSETURN] and a ld a, $31 ; base tile ID of player mon sprite - jr z, .asm_79ab6 + jr z, .next ; enemy turn xor a ; base tile ID of enemy mon sprite -.asm_79ab6 +.next ld [hBaseTileID], a - jr asm_79acb + jr CopyTileIDs_NoBGTransfer -; copy the tiles used when a mon is being sent out -; and "growing" out of the pokeball -CopyGrowingMonTiles: ; 79aba (1e:5aba) +; copy the tiles used when a mon is being sent out of or into a pokeball +CopyDownscaledMonTiles: ; 79aba (1e:5aba) call GetPredefRegisters - ld a, [wcd6c] + ld a, [wDownscaledMonSize] and a - jr nz, .asm_79ac8 - ld de, Unknown_79b02 ; 5x5 - jr asm_79acb -.asm_79ac8 - ld de, Unknown_79b1b ; 3x3 -asm_79acb: ; 79acb (1e:5acb) + jr nz, .smallerSize + ld de, DownscaledMonTiles_5x5 + jr CopyTileIDs_NoBGTransfer +.smallerSize + ld de, DownscaledMonTiles_3x3 +; fall through + +CopyTileIDs_NoBGTransfer: ; 79acb (1e:5acb) xor a ld [H_AUTOBGTRANSFERENABLED], a +; fall through ; b = number of rows ; c = number of columns @@ -2567,14 +2569,14 @@ TileIDListPointerTable: ; 79aea (1e:5aea) dw Unknown_79c50 db $3C -Unknown_79b02: ; 79b02 (1e:5b02) +DownscaledMonTiles_5x5: ; 79b02 (1e:5b02) db $31,$38,$46,$54,$5B db $32,$39,$47,$55,$5C db $34,$3B,$49,$57,$5E db $36,$3D,$4B,$59,$60 db $37,$3E,$4C,$5A,$61 -Unknown_79b1b: ; 79b1b (1e:5b1b) +DownscaledMonTiles_3x3: ; 79b1b (1e:5b1b) db $31,$46,$5B db $34,$49,$5E db $37,$4C,$61 diff --git a/engine/battle/bank_e_misc.asm b/engine/battle/bank_e_misc.asm index 2f3944e9..47242057 100755 --- a/engine/battle/bank_e_misc.asm +++ b/engine/battle/bank_e_misc.asm @@ -24,7 +24,7 @@ FormatMovesString: ; 39b87 (e:5b87) jr .copyNameLoop .doneCopyingName ld a, b - ld [wcd6c], a + ld [wNumMovesMinusOne], a inc b ld a, $4e ; line break ld [de], a @@ -70,7 +70,7 @@ InitList: ; 39bd5 (e:5bd5) .notPlayer cp INIT_MON_LIST jr nz, .notMonster - ld hl, wStringBuffer2 + 11 + ld hl, wItemList ld de, MonsterNames ld a, MONSTER_NAME jr .done @@ -82,15 +82,15 @@ InitList: ; 39bd5 (e:5bd5) ld a, ITEM_NAME jr .done .notBag - ld hl, wStringBuffer2 + 11 + ld hl, wItemList ld de, ItemNames ld a, ITEM_NAME .done ld [wNameListType], a ld a, l - ld [wList], a + ld [wListPointer], a ld a, h - ld [wList + 1], a + ld [wListPointer + 1], a ld a, e ld [wcf8d], a ld a, d diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 9535a8c5..7b87be0e 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -225,7 +225,7 @@ StartBattle: ; 3c11e (f:411e) xor a ld [wPartyGainExpFlags], a ld [wPartyFoughtCurrentEnemyFlags], a - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a inc a ld [wd11d], a ld hl, wEnemyMon1HP @@ -260,7 +260,7 @@ StartBattle: ; 3c11e (f:411e) .displaySafariZoneBattleMenu call DisplayBattleMenu ret c ; return if the player ran from battle - ld a, [wcd6a] + ld a, [wActionResultOrTookBattleTurn] and a ; was the item used successfully? jr z, .displaySafariZoneBattleMenu ; if not, display the menu again; XXX does this ever jump? ld a, [W_NUMSAFARIBALLS] @@ -415,8 +415,8 @@ MainInBattleLoop: ; 3c233 (f:4233) ld [wPlayerSelectedMove], a jr .selectEnemyMove .selectPlayerMove - ld a, [wcd6a] - and a + ld a, [wActionResultOrTookBattleTurn] + and a ; has the player already used the turn (e.g. by using an item, trying to run or switching pokemon) jr nz, .selectEnemyMove ld [wMoveMenuType], a inc a @@ -816,11 +816,11 @@ HandleEnemyMonFainted: ; 3c525 (f:4525) call ChooseNextMon .skipReplacingBattleMon ld a, $1 - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a call ReplaceFaintedEnemyMon jp z, EnemyRan xor a - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a jp MainInBattleLoop FaintEnemyPokemon: ; 0x3c567 @@ -990,7 +990,7 @@ ReplaceFaintedEnemyMon: ; 3c664 (f:4664) call EnemySendOut xor a ld [W_ENEMYMOVENUM], a - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a ld [wAILayer2Encouragement], a inc a ; reset Z flag ret @@ -1075,11 +1075,11 @@ HandlePlayerMonFainted: ; 3c700 (f:4700) jp nz, MainInBattleLoop ; if the enemy mon has more than 0 HP, go back to battle loop ; the enemy mon has 0 HP ld a, $1 - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a call ReplaceFaintedEnemyMon jp z, EnemyRan ; if enemy ran from battle rather than sending out another mon, jump xor a - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a jp MainInBattleLoop ; resets flags, slides mon's pic down, plays cry, and prints fainted message @@ -1177,11 +1177,11 @@ ChooseNextMon: ; 3c7d8 (f:47d8) cp LINK_STATE_BATTLING jr nz, .notLinkBattle inc a - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a call LinkBattleExchangeData .notLinkBattle xor a - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a call ClearSprites ld a, [wWhichPokemon] ld [wPlayerMonNumber], a @@ -1646,7 +1646,7 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9) ; plus 30 times the number of attempts, the player can escape ; can't escape ld a, $1 - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a ; you lose your turn when you can't escape ld hl, CantEscapeText jr .printCantEscapeOrNoRunningText .trainerBattle @@ -1666,7 +1666,7 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9) ; link battle call SaveScreenTilesToBuffer1 xor a - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a ld a, $f ld [wPlayerMoveListIndex], a call LinkBattleExchangeData @@ -1842,7 +1842,7 @@ SendOutMon: ; 3cc91 (f:4c91) call PrintEmptyString jp SaveScreenTilesToBuffer1 -; show 2 stages of the player getting smaller before disappearing +; show 2 stages of the player mon getting smaller before disappearing AnimateRetreatingPlayerMon: ; 3ccfa (f:4cfa) hlCoord 1, 5 ld bc, $707 @@ -1850,19 +1850,19 @@ AnimateRetreatingPlayerMon: ; 3ccfa (f:4cfa) hlCoord 3, 7 ld bc, $505 xor a - ld [wcd6c], a + ld [wDownscaledMonSize], a ld [H_DOWNARROWBLINKCNT1], a - predef CopyGrowingMonTiles + predef CopyDownscaledMonTiles ld c, 4 call DelayFrames call .clearScreenArea hlCoord 4, 9 ld bc, $303 ld a, $1 - ld [wcd6c], a + ld [wDownscaledMonSize], a xor a ld [H_DOWNARROWBLINKCNT1], a - predef CopyGrowingMonTiles + predef CopyDownscaledMonTiles call Delay3 call .clearScreenArea ld a, $4c @@ -2276,9 +2276,9 @@ BagWasSelected: jr nz, DisplayPlayerBag ; no, it is a normal battle ld hl, OldManItemList ld a, l - ld [wList], a + ld [wListPointer], a ld a, h - ld [wList + 1], a + ld [wListPointer + 1], a jr DisplayBagMenu OldManItemList: @@ -2290,9 +2290,9 @@ DisplayPlayerBag: ; get the pointer to player's bag when in a normal battle ld hl, wNumBagItems ld a, l - ld [wList], a + ld [wListPointer], a ld a, h - ld [wList + 1], a + ld [wListPointer + 1], a DisplayBagMenu: xor a @@ -2326,7 +2326,7 @@ UseBagItem: cp $2 ; is it a safari battle? jr z, .checkIfMonCaptured - ld a, [wcd6a] + ld a, [wActionResultOrTookBattleTurn] and a ; was the item used successfully? jp z, BagWasSelected ; if not, go back to the bag menu @@ -2479,7 +2479,7 @@ PartyMenuOrRockOrRun: call HasMonFainted jp z, .partyMonDeselected ; can't switch to fainted mon ld a, $1 - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a call GBPalWhiteOut call ClearSprites call LoadHudTilePatterns @@ -2525,9 +2525,9 @@ BattleMenu_RunWasSelected: ; 3d1fa (f:51fa) ld a, $0 ld [wd11f], a ret c - ld a, [wcd6a] + ld a, [wActionResultOrTookBattleTurn] and a - ret nz + ret nz ; return if the player couldn't escape jp DisplayBattleMenu MoveSelectionMenu: ; 3d219 (f:5219) @@ -2604,9 +2604,9 @@ MoveSelectionMenu: ; 3d219 (f:5219) ld a, $7 .menuset ld hl, wTopMenuItemY - ld [hli], a + ld [hli], a ; wTopMenuItemY ld a, b - ld [hli], a + ld [hli], a ; wTopMenuItemX ld a, [wMoveMenuType] cp $1 jr z, .selectedmoveknown @@ -2615,30 +2615,30 @@ MoveSelectionMenu: ; 3d219 (f:5219) ld a, [wPlayerMoveListIndex] inc a .selectedmoveknown - ld [hli], a + ld [hli], a ; wCurrentMenuItem inc hl ; wTileBehindCursor untouched - ld a, [wcd6c] + ld a, [wNumMovesMinusOne] inc a inc a - ld [hli], a + ld [hli], a ; wMaxMenuItem ld a, [wMoveMenuType] dec a - ld b, $c1 ; can't use B + ld b, D_UP | D_DOWN | A_BUTTON jr z, .matchedkeyspicked dec a - ld b, $c3 + ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON jr z, .matchedkeyspicked ld a, [wLinkState] cp LINK_STATE_BATTLING jr z, .matchedkeyspicked ld a, [W_FLAGS_D733] bit 0, a - ld b, $c7 + ld b, D_UP | D_DOWN | A_BUTTON | B_BUTTON | SELECT jr z, .matchedkeyspicked ld b, $ff .matchedkeyspicked ld a, b - ld [hli], a + ld [hli], a ; wMenuWatchedKeys ld a, [wMoveMenuType] cp $1 jr z, .movelistindex1 @@ -2759,7 +2759,7 @@ CursorUp: ; 3d3c9 (f:53c9) and a jp nz, SelectMenuItem call EraseMenuCursor - ld a, [wcd6c] + ld a, [wNumMovesMinusOne] inc a ld [wCurrentMenuItem], a jp SelectMenuItem @@ -2767,7 +2767,7 @@ CursorUp: ; 3d3c9 (f:53c9) CursorDown: ; 3d3dd (f:53dd) ld a, [wCurrentMenuItem] ld b, a - ld a, [wcd6c] + ld a, [wNumMovesMinusOne] inc a inc a cp b @@ -2983,7 +2983,7 @@ TypeText: ; 3d55f (f:555f) SelectEnemyMove: ; 3d564 (f:5564) ld a, [wLinkState] - sub $4 + sub LINK_STATE_BATTLING jr nz, .noLinkBattle ; link battle call SaveScreenTilesToBuffer1 @@ -3079,46 +3079,47 @@ LinkBattleExchangeData: ; 3d605 (f:5605) ld [wSerialExchangeNybbleReceiveData], a ld a, [wPlayerMoveListIndex] cp $f ; is the player running from battle? - jr z, .asm_3d630 - ld a, [wcd6a] - and a - jr nz, .asm_3d629 + jr z, .doExchange + ld a, [wActionResultOrTookBattleTurn] + and a ; is the player switching in another mon? + jr nz, .switching +; the player used a move ld a, [wPlayerSelectedMove] cp STRUGGLE ld b, $e - jr z, .asm_3d62f + jr z, .next dec b inc a - jr z, .asm_3d62f + jr z, .next ld a, [wPlayerMoveListIndex] - jr .asm_3d630 -.asm_3d629 + jr .doExchange +.switching ld a, [wWhichPokemon] - add $4 + add 4 ld b, a -.asm_3d62f +.next ld a, b -.asm_3d630 +.doExchange ld [wSerialExchangeNybbleSendData], a callab PrintWaitingText -.asm_3d63b +.syncLoop1 call Serial_ExchangeNybble call DelayFrame ld a, [wSerialExchangeNybbleReceiveData] inc a - jr z, .asm_3d63b - ld b, $a -.asm_3d649 + jr z, .syncLoop1 + ld b, 10 +.syncLoop2 call DelayFrame call Serial_ExchangeNybble dec b - jr nz, .asm_3d649 - ld b, $a -.asm_3d654 + jr nz, .syncLoop2 + ld b, 10 +.syncLoop3 call DelayFrame call Serial_SendZeroByte dec b - jr nz, .asm_3d654 + jr nz, .syncLoop3 ret ExecutePlayerMove: ; 3d65e (f:565e) @@ -3133,8 +3134,8 @@ ExecutePlayerMove: ; 3d65e (f:565e) ld [wMoveDidntMiss], a ld a, $a ld [wDamageMultipliers], a - ld a, [wcd6a] - and a + ld a, [wActionResultOrTookBattleTurn] + and a ; has the player already used the turn (e.g. by using an item, trying to run or switching pokemon) jp nz, ExecutePlayerMoveDone call PrintGhostText jp z, ExecutePlayerMoveDone @@ -3324,7 +3325,7 @@ MultiHitText: ; 3d805 (f:5805) ExecutePlayerMoveDone: ; 3d80a (f:580a) xor a - ld [wcd6a],a + ld [wActionResultOrTookBattleTurn],a ld b,1 ret @@ -6998,7 +6999,7 @@ ResetCryModifiers: ; 3f069 (f:7069) ld [wc0f2], a jp PlaySound -; animtes the mon "growing" out of the pokeball +; animates the mon "growing" out of the pokeball AnimateSendingOutMon: ; 3f073 (f:7073) ld a, [wPredefRegisters] ld h, a @@ -7016,17 +7017,17 @@ AnimateSendingOutMon: ; 3f073 (f:7073) ld bc, -41 add hl, bc ld a, $1 - ld [wcd6c], a + ld [wDownscaledMonSize], a ld bc, $303 - predef CopyGrowingMonTiles + predef CopyDownscaledMonTiles ld c, 4 call DelayFrames ld bc, -41 add hl, bc xor a - ld [wcd6c], a + ld [wDownscaledMonSize], a ld bc, $505 - predef CopyGrowingMonTiles + predef CopyDownscaledMonTiles ld c, 5 call DelayFrames ld bc, -41 diff --git a/engine/battle/init_battle_variables.asm b/engine/battle/init_battle_variables.asm index edb1f13e..5f953046 100644 --- a/engine/battle/init_battle_variables.asm +++ b/engine/battle/init_battle_variables.asm @@ -2,7 +2,7 @@ InitBattleVariables: ; 525af (14:65af) ld a, [hTilesetType] ld [wd0d4], a xor a - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a ld [wBattleResult], a ld hl, wcc2b ld [hli], a diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm index 59611ef1..55314ea9 100644 --- a/engine/battle/trainer_ai.asm +++ b/engine/battle/trainer_ai.asm @@ -559,7 +559,7 @@ AIPlayRestoringSFX: ; 3a69b (e:669b) AIUseFullRestore: ; 3a6a0 (e:66a0) call AICureStatus ld a,FULL_RESTORE - ld [wcf05],a + ld [wAIItem],a ld de,wHPBarOldHP ld hl,wEnemyMonHP + 1 ld a,[hld] @@ -600,7 +600,7 @@ AIUseHyperPotion: ; 3a6d6 (e:66d6) AIRecoverHP: ; 3a6da (e:66da) ; heal b HP and print "trainer used $(a) on pokemon!" - ld [wcf05],a + ld [wAIItem],a ld hl,wEnemyMonHP + 1 ld a,[hl] ld [wHPBarOldHP],a @@ -797,7 +797,7 @@ AIUseXSpecial: ; 3a804 (e:6804) ; fallthrough AIIncreaseStat: ; 3a808 (e:6808) - ld [wcf05],a + ld [wAIItem],a push bc call AIPrintItemUse_ pop bc @@ -819,13 +819,13 @@ AIIncreaseStat: ; 3a808 (e:6808) jp DecrementAICount AIPrintItemUse: ; 3a82c (e:682c) - ld [wcf05],a + ld [wAIItem],a call AIPrintItemUse_ jp DecrementAICount AIPrintItemUse_: ; 3a835 (e:6835) -; print "x used [wcf05] on z!" - ld a,[wcf05] +; print "x used [wAIItem] on z!" + ld a,[wAIItem] ld [wd11e],a call GetItemName ld hl, AIBattleUseItemText diff --git a/engine/items/items.asm b/engine/items/items.asm index c632f57d..6ae4e228 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -1,6 +1,6 @@ UseItem_: ; d5c7 (3:55c7) ld a,1 - ld [wcd6a],a + ld [wActionResultOrTookBattleTurn],a ; initialise to success value ld a,[wcf91] ;contains item_ID cp a,HM_01 jp nc,ItemUseTMHM @@ -661,7 +661,7 @@ ItemUseEvoStone: ; da5b (3:5a5b) call ItemUseNoEffect .canceledItemUse xor a - ld [wcd6a],a + ld [wActionResultOrTookBattleTurn],a ; item not used pop af ret @@ -691,7 +691,7 @@ ItemUseMedicine: ; dabb (3:5abb) .emptyParty ld hl,.emptyPartyText xor a - ld [wcd6a],a ; item use failed + ld [wActionResultOrTookBattleTurn],a ; item use failed jp PrintText .emptyPartyText text "You don't have" @@ -706,7 +706,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld a,[wWhichPokemon] call AddNTimes ld a,[wWhichPokemon] - ld [wcf06],a + ld [wUsedItemOnWhichPokemon],a ld d,a ld a,[wcf91] ld e,a @@ -803,7 +803,7 @@ ItemUseMedicine: ; dabb (3:5abb) push hl push de push bc - ld a,[wcf06] + ld a,[wUsedItemOnWhichPokemon] ld c,a ld hl,wPartyFoughtCurrentEnemyFlags ld b,$02 @@ -811,7 +811,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld a,c and a jr z,.next - ld a,[wcf06] + ld a,[wUsedItemOnWhichPokemon] ld c,a ld hl,wPartyGainExpFlags ld b,$01 @@ -1106,7 +1106,7 @@ ItemUseMedicine: ; dabb (3:5abb) jr .done .canceledItemUse xor a - ld [wcd6a],a ; item use failed + ld [wActionResultOrTookBattleTurn],a ; item use failed pop af pop af .done @@ -1384,7 +1384,7 @@ ItemUseEscapeRope: ; dfaf (3:5faf) ld [W_SAFARIZONEENTRANCECURSCRIPT],a inc a ld [wEscapedFromBattle],a - ld [wcd6a],a ; item used + ld [wActionResultOrTookBattleTurn],a ; item used ld a,[wd152] and a ; using Dig? ret nz ; if so, return @@ -1550,7 +1550,7 @@ ItemUseXStat: ; e104 (3:6104) jr nz,.inBattle call ItemUseNotTime ld a,2 - ld [wcd6a],a ; item not used + ld [wActionResultOrTookBattleTurn],a ; item not used ret .inBattle ld hl,W_PLAYERMOVENUM @@ -2043,7 +2043,7 @@ ItemUsePPRestore: ; e31e (3:631e) call GoPAL_SET_CF1C pop af xor a - ld [wcd6a],a ; item use failed + ld [wActionResultOrTookBattleTurn],a ; item use failed ret RaisePPWhichTechniqueText: ; e45d (3:645d) @@ -2104,7 +2104,7 @@ ItemUseTMHM: ; e479 (3:6479) and a jr z,.useMachine ld a,2 - ld [wcd6a],a ; item not used + ld [wActionResultOrTookBattleTurn],a ; item not used ret .useMachine ld a,[wWhichPokemon] @@ -2234,7 +2234,7 @@ SurfingAttemptFailed: ; e5b6 (3:65b6) ItemUseFailed: ; e5b9 (3:65b9) xor a - ld [wcd6a],a ; item use failed + ld [wActionResultOrTookBattleTurn],a ; item use failed jp PrintText ItemUseNotTimeText: ; e5c0 (3:65c0) @@ -2301,13 +2301,13 @@ RestoreBonusPP: ; e606 (3:6606) ld a,[wWhichPokemon] call AddNTimes push hl - ld de,wcd78 - 1 - predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wcd78 + ld de,wNormalMaxPPList - 1 + predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wNormalMaxPPList pop hl ld c,21 ld b,0 add hl,bc ; hl now points to move 1 PP - ld de,wcd78 + ld de,wNormalMaxPPList ld b,0 ; initialize move counter to zero ; loop through the pokemon's moves .loop @@ -2420,7 +2420,7 @@ GetMaxPP: ; e677 (3:6677) ld de,wcd6d ld a,BANK(Moves) call FarCopyData - ld de,wcd72 + ld de,wcd6d + 5 ; PP is byte 5 of move data ld a,[de] ld b,a ; b = normal max PP pop hl diff --git a/engine/learn_move.asm b/engine/learn_move.asm index 3c7663b2..cb5bdbd7 100755 --- a/engine/learn_move.asm +++ b/engine/learn_move.asm @@ -134,18 +134,18 @@ TryingToLearn: ; 6f07 (1:6f07) res 2, a ld [hFlags_0xFFF6], a ld hl, wTopMenuItemY - ld a, $8 - ld [hli], a - ld a, $5 - ld [hli], a + ld a, 8 + ld [hli], a ; wTopMenuItemY + ld a, 5 + ld [hli], a ; wTopMenuItemX xor a - ld [hli], a + ld [hli], a ; wCurrentMenuItem inc hl - ld a, [wcd6c] - ld [hli], a - ld a, $3 - ld [hli], a - ld [hl], $0 + ld a, [wNumMovesMinusOne] + ld [hli], a ; wMaxMenuItem + ld a, A_BUTTON | B_BUTTON + ld [hli], a ; wMenuWatchedKeys + ld [hl], 0 ; wLastMenuItem ld hl, hFlags_0xFFF6 set 1, [hl] call HandleMenuInput diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm index ec7d728a..74d2fa82 100644 --- a/engine/menu/bills_pc.asm +++ b/engine/menu/bills_pc.asm @@ -325,9 +325,9 @@ Func_216b3: ; 216b3 (8:56b3) Func_216be: ; 216be (8:56be) ld a, l - ld [wList], a + ld [wListPointer], a ld a, h - ld [wList + 1], a + ld [wListPointer + 1], a xor a ld [wPrintItemPrices], a ld [wListMenuID], a diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm index edd65a81..fcdd5c50 100755 --- a/engine/menu/party_menu.asm +++ b/engine/menu/party_menu.asm @@ -227,7 +227,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) ld h,[hl] ld l,a push hl - ld a,[wcf06] + ld a,[wUsedItemOnWhichPokemon] ld hl,wPartyMonNicks call GetPartyMonName pop hl diff --git a/engine/menu/players_pc.asm b/engine/menu/players_pc.asm index 8b433027..b78ba5fb 100755 --- a/engine/menu/players_pc.asm +++ b/engine/menu/players_pc.asm @@ -97,9 +97,9 @@ Func_79ab: ; 79ab (1:79ab) call PrintText ld hl, wNumBagItems ld a, l - ld [wList], a + ld [wListPointer], a ld a, h - ld [wList + 1], a + ld [wListPointer + 1], a xor a ld [wPrintItemPrices], a ld a, $3 @@ -151,9 +151,9 @@ Func_7a28: ; 7a28 (1:7a28) call PrintText ld hl, wNumBoxItems ld a, l - ld [wList], a + ld [wListPointer], a ld a, h - ld [wList + 1], a + ld [wListPointer + 1], a xor a ld [wPrintItemPrices], a ld a, $3 @@ -205,9 +205,9 @@ Func_7aa5: ; 7aa5 (1:7aa5) call PrintText ld hl, wNumBoxItems ld a, l - ld [wList], a + ld [wListPointer], a ld a, h - ld [wList + 1], a + ld [wListPointer + 1], a xor a ld [wPrintItemPrices], a ld a, $3 diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index 0fbc0735..762a3de1 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -153,7 +153,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) bit 1,a ; does the player have the Cascade Badge? jp z,.newBadgeRequired predef UsedCut - ld a,[wcd6a] + ld a,[wActionResultOrTookBattleTurn] and a jp z,.loop jp CloseTextDisplay @@ -169,7 +169,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) ld [wcf91],a ld [wd152],a call UseItem - ld a,[wcd6a] + ld a,[wActionResultOrTookBattleTurn] and a jp z,.loop call GBPalWhiteOutWithDelay3 @@ -197,7 +197,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) ld [wcf91],a ld [wd152],a call UseItem - ld a,[wcd6a] + ld a,[wActionResultOrTookBattleTurn] and a jp z,.loop call GBPalWhiteOutWithDelay3 @@ -308,10 +308,10 @@ StartMenu_Item: ; 13302 (4:7302) jr .exitMenu .notInCableClubRoom ld bc,wNumBagItems - ld hl,wList + ld hl,wListPointer ld a,c ld [hli],a - ld [hl],b ; store item bag pointer at wList (for DisplayListMenuID) + ld [hl],b ; store item bag pointer in wListPointer (for DisplayListMenuID) xor a ld [wPrintItemPrices],a ld a,ITEMLISTMENU @@ -401,7 +401,7 @@ StartMenu_Item: ; 13302 (4:7302) xor a ld [wd152],a call UseItem - ld a,[wcd6a] + ld a,[wActionResultOrTookBattleTurn] and a jp z,ItemMenuLoop jp CloseStartMenu @@ -409,7 +409,7 @@ StartMenu_Item: ; 13302 (4:7302) ld a,[wUpdateSpritesEnabled] push af call UseItem - ld a,[wcd6a] + ld a,[wActionResultOrTookBattleTurn] cp a,$02 jp z,.partyMenuNotDisplayed call GBPalWhiteOutWithDelay3 diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm index 7b3674e6..32cbf519 100755 --- a/engine/menu/status_screen.asm +++ b/engine/menu/status_screen.asm @@ -316,7 +316,7 @@ StatusScreen2: ; 12b57 (4:6b57) hlCoord 2, 9 ld de, wMovesString call PlaceString ; Print moves - ld a, [wcd6c] + ld a, [wNumMovesMinusOne] inc a ld c, a ld a, $4 @@ -335,7 +335,7 @@ StatusScreen2: ; 12b57 (4:6b57) .InitPP ; 12bbb ld hl, wLoadedMonMoves deCoord 14, 10 - ld b, $0 + ld b, 0 .PrintPP ; 12bc3 ld a, [hli] and a @@ -356,15 +356,15 @@ StatusScreen2: ; 12b57 (4:6b57) pop de pop hl push hl - ld bc, $0014 + ld bc, wPartyMon1PP - wPartyMon1Moves - 1 add hl, bc ld a, [hl] and $3f - ld [wcd71], a + ld [wStatusScreenCurrentPP], a ld h, d ld l, e push hl - ld de, wcd71 + ld de, wStatusScreenCurrentPP ld bc, $0102 call PrintNumber ld a, "/" diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm index 8f171545..f7be269c 100755 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -1,6 +1,6 @@ UsedCut: ; ef54 (3:6f54) xor a - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a ; initialise to failure value ld a, [W_CURMAPTILESET] and a ; OVERWORLD jr z, .asm_ef6b @@ -28,7 +28,7 @@ UsedCut: ; ef54 (3:6f54) .asm_ef82 ld [wCutTile], a ld a, $1 - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a ; used cut ld a, [wWhichPokemon] ld hl, wPartyMonNicks call GetPartyMonName diff --git a/engine/overworld/pokemart.asm b/engine/overworld/pokemart.asm index de18a1ab..2caada1d 100755 --- a/engine/overworld/pokemart.asm +++ b/engine/overworld/pokemart.asm @@ -57,9 +57,9 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) call DisplayTextBoxID ; draw money text box ld hl,wNumBagItems ld a,l - ld [wList],a + ld [wListPointer],a ld a,h - ld [wList + 1],a + ld [wListPointer + 1],a xor a ld [wPrintItemPrices],a ld [wCurrentMenuItem],a @@ -136,11 +136,11 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) ld a,MONEY_BOX ld [wTextBoxID],a call DisplayTextBoxID - ld hl,wStringBuffer2 + 11 + ld hl,wItemList ld a,l - ld [wList],a + ld [wListPointer],a ld a,h - ld [wList + 1],a + ld [wListPointer + 1],a xor a ld [wCurrentMenuItem],a inc a diff --git a/engine/predefs.asm b/engine/predefs.asm index a8aba971..1af240ce 100755 --- a/engine/predefs.asm +++ b/engine/predefs.asm @@ -57,7 +57,7 @@ PredefPointers:: ; 4fe79 (13:7e79) add_predef AnimateSendingOutMon add_predef ScaleSpriteByTwo add_predef LoadMonBackPic - add_predef CopyGrowingMonTiles + add_predef CopyDownscaledMonTiles add_predef LoadMissableObjects add_predef HealParty add_predef MoveAnimation; 08 play move animation diff --git a/engine/predefs7.asm b/engine/predefs7.asm index 82a073dc..af013733 100755 --- a/engine/predefs7.asm +++ b/engine/predefs7.asm @@ -1,11 +1,11 @@ Func_1c9c6: ; 1c9c6 (7:49c6) ld hl, WhichFloorText call PrintText - ld hl, wStringBuffer2 + 11 + ld hl, wItemList ld a, l - ld [wList], a + ld [wListPointer], a ld a, h - ld [wList + 1], a + ld [wListPointer + 1], a ld a, [wListScrollOffset] push af xor a diff --git a/home.asm b/home.asm index 7f1a790e..608fb8a6 100644 --- a/home.asm +++ b/home.asm @@ -1055,7 +1055,7 @@ DisplayTextID:: ; 2920 (0:2920) ld a,[H_LOADEDROMBANK] push af callba DisplayTextIDInit ; initialization - ld hl,wcf11 + ld hl,wTextPredefFlag bit 0,[hl] res 0,[hl] jr nz,.skipSwitchToMapBank @@ -1225,7 +1225,7 @@ LoadItemList:: ; 2a5a (0:2a5a) ld [wItemListPointer],a ld a,l ld [wItemListPointer + 1],a - ld de,wStringBuffer2 + 11 + ld de,wItemList .loop ld a,[hli] ld [de],a @@ -1372,7 +1372,7 @@ AddItemToInventory:: ; 2bcf (0:2bcf) ; INPUT: ; [wListMenuID] = list menu ID -; [wList] = address of the list (2 bytes) +; [wListPointer] = address of the list (2 bytes) DisplayListMenuID:: ; 2be6 (0:2be6) xor a ld [H_AUTOBGTRANSFERENABLED],a ; disable auto-transfer @@ -1392,9 +1392,9 @@ DisplayListMenuID:: ; 2be6 (0:2be6) xor a ld [wMenuItemToSwap],a ; 0 means no item is currently being swapped ld [wListCount],a - ld a,[wList] + ld a,[wListPointer] ld l,a - ld a,[wList + 1] + ld a,[wListPointer + 1] ld h,a ; hl = address of the list ld a,[hl] ; the first byte is the number of entries in the list ld [wListCount],a @@ -1488,9 +1488,9 @@ DisplayListMenuIDLoop:: ; 2c53 (0:2c53) ; if it's an item menu sla c ; item entries are 2 bytes long, so multiply by 2 .skipMultiplying - ld a,[wList] + ld a,[wListPointer] ld l,a - ld a,[wList + 1] + ld a,[wListPointer + 1] ld h,a inc hl ; hl = beginning of list entries ld b,0 @@ -1519,7 +1519,7 @@ DisplayListMenuIDLoop:: ; 2c53 (0:2c53) jr .storeChosenEntry .pokemonList ld hl,wPartyCount - ld a,[wList] + ld a,[wListPointer] cp l ; is it a list of party pokemon or box pokemon? ld hl,wPartyMonNicks jr z,.getPokemonName @@ -1710,9 +1710,9 @@ PrintListMenuEntries:: ; 2e5a (0:2e5a) ld b,$09 ld c,$0e call ClearScreenArea - ld a,[wList] + ld a,[wListPointer] ld e,a - ld a,[wList + 1] + ld a,[wListPointer + 1] ld d,a inc de ; de = beginning of list entries ld a,[wListScrollOffset] @@ -1756,7 +1756,7 @@ PrintListMenuEntries:: ; 2e5a (0:2e5a) .pokemonPCMenu push hl ld hl,wPartyCount - ld a,[wList] + ld a,[wListPointer] cp l ; is it a list of party pokemon or box pokemon? ld hl,wPartyMonNicks jr z,.getPokemonName @@ -1801,7 +1801,7 @@ PrintListMenuEntries:: ; 2e5a (0:2e5a) push af push hl ld hl,wPartyCount - ld a,[wList] + ld a,[wListPointer] cp l ; is it a list of party pokemon or box pokemon? ld a,$00 jr z,.next @@ -1914,7 +1914,7 @@ GetMonName:: ; 2f9e (0:2f9e) push de ld bc,10 call CopyData - ld hl,wcd77 + ld hl,wcd6d + 10 ld [hl], "@" pop de pop af @@ -2090,7 +2090,7 @@ DisableWaitingAfterTextDisplay:: ; 30b6 (0:30b6) ; INPUT: ; [wcf91] = item ID ; OUTPUT: -; [wcd6a] = success +; [wActionResultOrTookBattleTurn] = success ; 00: unsucessful ; 01: successful ; 02: not able to be used right now, no extra menu displayed (only certain items use this) @@ -2960,17 +2960,17 @@ HasEnoughCoins:: BankswitchHome:: ; 35bc (0:35bc) ; switches to bank # in a ; Only use this when in the home bank! - ld [wcf09],a + ld [wBankswitchHomeTemp],a ld a,[H_LOADEDROMBANK] - ld [wcf08],a - ld a,[wcf09] + ld [wBankswitchHomeSavedROMBank],a + ld a,[wBankswitchHomeTemp] ld [H_LOADEDROMBANK],a ld [MBC1RomBank],a ret BankswitchBack:: ; 35cd (0:35cd) ; returns from BankswitchHome - ld a,[wcf08] + ld a,[wBankswitchHomeSavedROMBank] ld [H_LOADEDROMBANK],a ld [MBC1RomBank],a ret @@ -4656,7 +4656,7 @@ PrintPredefTextID:: ; 3ef5 (0:3ef5) ld [H_DOWNARROWBLINKCNT2], a ld hl, TextPredefs call SetMapTextPointer - ld hl, wcf11 + ld hl, wTextPredefFlag set 0, [hl] call DisplayTextID diff --git a/home/overworld.asm b/home/overworld.asm index bb5ae234..f4d6d695 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -106,7 +106,7 @@ OverworldLoopLessDelay:: bit 0,a jr nz,.checkForOpponent aCoord 8, 9 - ld [wcf0e],a + ld [wTilePlayerStandingOn],a ; unused? call DisplayTextID ; display either the start menu or the NPC/sign text ld a,[wcc47] and a @@ -1280,7 +1280,7 @@ CheckForJumpingAndTilePairCollisions:: ; 0c2a (0:0c2a) CheckForTilePairCollisions2:: ; 0c44 (0:0c44) aCoord 8, 9 ; tile the player is on - ld [wcf0e],a + ld [wTilePlayerStandingOn],a CheckForTilePairCollisions:: ; 0c4a (0:0c4a) ld a,[wTileInFrontOfPlayer] @@ -1298,7 +1298,7 @@ CheckForTilePairCollisions:: ; 0c4a (0:0c4a) inc hl jr .tilePairCollisionLoop .tilesetMatches - ld a,[wcf0e] ; tile the player is on + ld a,[wTilePlayerStandingOn] ; tile the player is on ld b,a ld a,[hl] cp b diff --git a/main.asm b/main.asm index f012cda9..c8907c72 100755 --- a/main.asm +++ b/main.asm @@ -808,7 +808,7 @@ HandleItemListSwapping: ; 6b44 (1:6b44) cp a,ITEMLISTMENU jp nz,DisplayListMenuIDLoop ; only rearrange item list menus push hl - ld hl,wList + ld hl,wListPointer ld a,[hli] ld h,[hl] ld l,a @@ -854,7 +854,7 @@ HandleItemListSwapping: ; 6b44 (1:6b44) call DelayFrames push hl push de - ld hl,wList + ld hl,wListPointer ld a,[hli] ld h,[hl] ld l,a @@ -916,7 +916,7 @@ HandleItemListSwapping: ; 6b44 (1:6b44) jr .done .combineItemSlots ld [hl],a ; put the sum in the second item slot - ld hl,wList + ld hl,wListPointer ld a,[hli] ld h,[hl] ld l,a @@ -2065,7 +2065,7 @@ ClearVariablesAfterLoadingMapData: ; c335 (3:4335) ld [hJoyPressed], a ld [hJoyReleased], a ld [hJoyHeld], a - ld [wcd6a], a + ld [wActionResultOrTookBattleTurn], a ld [wd5a3], a ld hl, wCardKeyDoorY ld [hli], a @@ -3810,7 +3810,7 @@ AddPartyMon_WriteMovePP: ; f476 (3:7476) pop bc pop de pop hl - ld a, [wcd72] ; sixth move byte = pp + ld a, [wcd6d + 5] ; PP is byte 5 of move data .empty inc de ld [de], a @@ -4167,12 +4167,12 @@ HealParty: push bc ld hl, Moves - ld bc, $0006 + ld bc, 6 call AddNTimes ld de, wcd6d ld a, BANK(Moves) call FarCopyData - ld a, [wcd72] ; default pp + ld a, [wcd6d + 5] ; PP is byte 5 of move data pop bc pop de diff --git a/scripts/ceruleanhouse2.asm b/scripts/ceruleanhouse2.asm index 2d012d70..278f3bcf 100755 --- a/scripts/ceruleanhouse2.asm +++ b/scripts/ceruleanhouse2.asm @@ -20,11 +20,11 @@ CeruleanHouse2Text1: ; 74e15 (1d:4e15) call PrintText ld hl, BadgeItemList call LoadItemList - ld hl, wStringBuffer2 + 11 + ld hl, wItemList ld a, l - ld [wList], a + ld [wListPointer], a ld a, h - ld [wList + 1], a + ld [wListPointer + 1], a xor a ld [wPrintItemPrices], a ld [wMenuItemToSwap], a diff --git a/wram.asm b/wram.asm index 61dba700..2cc8d676 100755 --- a/wram.asm +++ b/wram.asm @@ -852,19 +852,42 @@ wFlags_0xcd60:: ; cd60 ds 9 -wcd6a:: ds 1 ; used as the output of the outcome of an item (successful, unsuccessful, can't be used now, etc.) +wActionResultOrTookBattleTurn:: ; cd6a +; This has overlapping related uses. +; When the player tries to use an item or use certain field moves, 0 is stored +; when the attempt fails and 1 is stored when the attempt succeeds. +; In addition, some items store 2 for certain types of failures, but this +; cannot happen in battle. +; In battle, a non-zero value indicates the player has taken their turn using +; something other than a move (e.g. using an item or switching pokemon). +; So, when an item is successfully used in battle, this value becomes non-zero +; and the player is not allowed to make a move and the two uses are compatible. + ds 1 wJoyIgnore:: ; cd6b ; Set buttons are ignored. ds 1 -; as well as the said function, these values are used as a buffer for PlaceString -wcd6c:: ds 1 ; used in pokemon status screen and battle stuff -wcd6d:: ds 4 ; used solely for PlaceString -wcd71:: ds 1 ; used with pokemon status screen -wcd72:: ds 5 ; used with restoring PP -wcd77:: ds 1 ; used as an end terminator for GetMonName: (@ is written to this location) -wcd78:: ds 9 ; also used with restoring PP +wDownscaledMonSize:: ; cd6c +; size of downscaled mon pic used in pokeball entering/exiting animation +; $00 = 5×5 +; $01 = 3×3 + +wNumMovesMinusOne:: ; cd6c +; FormatMovesString stores the number of moves minus one here + ds 1 + +wcd6d:: ds 4 ; buffer for various data + +wStatusScreenCurrentPP:: ; cd71 +; temp variable used to print a move's current PP on the status screen + ds 1 + + ds 6 + +wNormalMaxPPList:: ; cd78 +; list of normal max PP (without PP up) values + ds 9 wSerialOtherGameboyRandomNumberListBlock:: ; cd81 ; buffer for transferring the random number list generated by the other gameboy @@ -895,15 +918,24 @@ wHPBarHPDifference:: ; cefd ds 1 ds 7 -wcf05:: ds 1 ; used with enemy using healing moves -wcf06:: ds 1 ; used with healing items as a storage value to store wWhichPokemon +wAIItem:: ; cf05 +; the item that the AI used + ds 1 + +wUsedItemOnWhichPokemon:: ; cf05 + ds 1 wAnimSoundID:: ; cf07 ; sound ID during battle animations ds 1 -wcf08:: ds 1 ; used as a storage value for the bank to return to after a BankswitchHome (bankswitch in homebank) -wcf09:: ds 1 ; used as a temp storage value for the bank to switch to +wBankswitchHomeSavedROMBank:: ; cf08 +; used as a storage value for the bank to return to after a BankswitchHome (bankswitch in homebank) + ds 1 + +wBankswitchHomeTemp:: ; cf09 +; used as a temp storage value for the bank to switch to + ds 1 wBoughtOrSoldItemInMart:: ; cf0a ; 0 = nothing bought or sold in pokemart @@ -922,7 +954,11 @@ wAutoTextBoxDrawingControl:: ; cf0c ds 1 wcf0d:: ds 1 ; used with some overworld scripts (not exactly sure what it's used for) -wcf0e:: ds 1 ; used with some overworld collison check + +wTilePlayerStandingOn:: ; cf0e +; used in CheckForTilePairCollisions2 to store the tile the player is on + ds 1 + wcf0f:: ds 1 ; used with moving overworld sprites wNPCMovementScriptFunctionNum:: ; cf10 @@ -930,7 +966,10 @@ wNPCMovementScriptFunctionNum:: ; cf10 ; wNPCMovementScriptPointerTableNum ds 1 -wcf11:: ds 1 ; used as a flag if the game needs to switch to the bank which the map is in when displaying a text id (flag is set during predefs) +wTextPredefFlag:: ; cf11 +; bit 0: set when printing a text predef so that DisplayTextID doesn't switch +; to the current map's bank + ds 1 wPredefParentBank:: ; cf12 ds 1 @@ -972,15 +1011,15 @@ wGainBoostedExp:: ; cf4d ds 17 wGymCityName:: ; cf5f -wStringBuffer1:: ; cf5f - ds 16 + 1 + ds 17 + wGymLeaderName:: ; cf70 -wStringBuffer2:: ; cf70 - ds 16 + 1 -wStringBuffer3:: ; cf81 - ds 9 + 1 + ds 11 + +wItemList:: ; cf7b + ds 16 -wList:: ; cf8b +wListPointer:: ; cf8b ds 2 wcf8d:: ds 1 ; used in GetMonName -- cgit v1.3.1-sl0p From fc9af362ae65d24c66b39ea7759637cc9c1f9b0a Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sat, 18 Jul 2015 08:17:29 -0700 Subject: fix variable naming --- engine/battle/animations.asm | 2 +- engine/battle/core.asm | 28 +++---- engine/battle/wild_encounters.asm | 2 +- engine/items/items.asm | 4 +- engine/items/tm_prices.asm | 9 +-- engine/menu/pokedex.asm | 22 +++--- engine/menu/prize_menu.asm | 4 +- engine/menu/start_sub_menus.asm | 2 +- engine/oak_speech.asm | 47 ++++++------ engine/oak_speech2.asm | 140 ++++++++++++++++++---------------- engine/overworld/item.asm | 6 +- engine/overworld/map_sprites.asm | 16 ++-- engine/predefs.asm | 4 +- home.asm | 36 ++++----- home/copy2.asm | 22 +++--- home/overworld.asm | 154 +++++++++++++++++++------------------- hram.asm | 55 ++++++++++++-- macros.asm | 6 +- main.asm | 16 ++-- scripts/agatha.asm | 4 +- scripts/billshouse.asm | 6 +- scripts/bruno.asm | 4 +- scripts/celadongamecorner.asm | 6 +- scripts/celadongym.asm | 6 +- scripts/ceruleancity.asm | 24 +++--- scripts/ceruleangym.asm | 6 +- scripts/cinnabargym.asm | 14 ++-- scripts/cinnabarisland.asm | 2 +- scripts/fightingdojo.asm | 14 ++-- scripts/fuchsiagym.asm | 6 +- scripts/fuchsiahouse2.asm | 2 +- scripts/gary.asm | 42 +++++------ scripts/halloffameroom.asm | 8 +- scripts/lance.asm | 4 +- scripts/lorelei.asm | 4 +- scripts/mansion1.asm | 6 +- scripts/mansion2.asm | 4 +- scripts/mansion3.asm | 6 +- scripts/mansion4.asm | 12 +-- scripts/mtmoon1.asm | 12 +-- scripts/mtmoon3.asm | 12 +-- scripts/museum1f.asm | 14 ++-- scripts/oakslab.asm | 68 ++++++++--------- scripts/pallettown.asm | 2 +- scripts/pewtercity.asm | 20 ++--- scripts/pewtergym.asm | 6 +- scripts/pokemontower2.asm | 12 +-- scripts/pokemontower3.asm | 2 +- scripts/pokemontower4.asm | 6 +- scripts/pokemontower5.asm | 4 +- scripts/pokemontower6.asm | 8 +- scripts/pokemontower7.asm | 6 +- scripts/powerplant.asm | 10 +-- scripts/rockethideout1.asm | 4 +- scripts/rockethideout2.asm | 8 +- scripts/rockethideout3.asm | 4 +- scripts/rockethideout4.asm | 12 +-- scripts/route12.asm | 8 +- scripts/route15.asm | 2 +- scripts/route16.asm | 4 +- scripts/route16gate.asm | 8 +- scripts/route18gate.asm | 10 +-- scripts/route2.asm | 4 +- scripts/route22.asm | 50 ++++++------- scripts/route22gate.asm | 2 +- scripts/route23.asm | 20 ++--- scripts/route24.asm | 8 +- scripts/route25.asm | 2 +- scripts/route4.asm | 2 +- scripts/route5gate.asm | 4 +- scripts/route6gate.asm | 4 +- scripts/route7gate.asm | 4 +- scripts/route8gate.asm | 4 +- scripts/route9.asm | 2 +- scripts/safarizonecenter.asm | 2 +- scripts/safarizoneeast.asm | 8 +- scripts/safarizoneentrance.asm | 8 +- scripts/safarizonenorth.asm | 4 +- scripts/safarizonewest.asm | 8 +- scripts/saffrongym.asm | 6 +- scripts/silphco10.asm | 6 +- scripts/silphco11.asm | 24 +++--- scripts/silphco3.asm | 2 +- scripts/silphco4.asm | 6 +- scripts/silphco5.asm | 6 +- scripts/silphco6.asm | 4 +- scripts/silphco7.asm | 24 +++--- scripts/ssanne10.asm | 6 +- scripts/ssanne2.asm | 18 ++--- scripts/ssanne8.asm | 2 +- scripts/ssanne9.asm | 4 +- scripts/tradecenter.asm | 12 +-- scripts/unknowndungeon1.asm | 6 +- scripts/unknowndungeon2.asm | 6 +- scripts/unknowndungeon3.asm | 4 +- scripts/vermilioncity.asm | 2 +- scripts/vermiliongym.asm | 6 +- scripts/victoryroad1.asm | 4 +- scripts/victoryroad2.asm | 8 +- scripts/victoryroad3.asm | 4 +- scripts/viridiancity.asm | 6 +- scripts/viridianforest.asm | 6 +- scripts/viridiangym.asm | 8 +- scripts/viridianmart.asm | 4 +- text.asm | 2 +- wram.asm | 125 +++++++++++++++++++++---------- 106 files changed, 773 insertions(+), 671 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 63ea170d..7764603d 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -163,7 +163,7 @@ DrawFrameBlock: ; 78000 (1e:4000) PlayAnimation: ; 780f1 (1e:40f1) xor a - ld [$FF8B],a + ld [$FF8B],a ; it looks like nothing reads this ld [W_SUBANIMTRANSFORM],a ld a,[W_ANIMATIONID] ; get animation number dec a diff --git a/engine/battle/core.asm b/engine/battle/core.asm index bdb20bb0..2f407290 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -1310,7 +1310,7 @@ SevenSpacesText: ; 3c8d7 (f:48d7) ; if a is 8, the slide is to the right, else it is to the left ; bug: when this is called, [H_AUTOBGTRANSFERENABLED] is non-zero, so there is screen tearing SlideTrainerPicOffScreen: ; 3c8df (f:48df) - ld [$FF8B], a + ld [hSlideAmount], a ld c, a .slideStepLoop ; each iteration, the trainer pic is slid one tile left/right push bc @@ -1318,10 +1318,10 @@ SlideTrainerPicOffScreen: ; 3c8df (f:48df) ld b, 7 ; number of rows .rowLoop push hl - ld a, [$FF8B] + ld a, [hSlideAmount] ld c, a .columnLoop - ld a, [$FF8B] + ld a, [hSlideAmount] cp 8 jr z, .slideRight .slideLeft ; slide player sprite off screen @@ -1590,14 +1590,14 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9) ld a, [hl] ld [H_MULTIPLICAND + 2], a ld a, [de] - ld [$ff8d], a + ld [hEnemySpeed], a inc de ld a, [de] - ld [$ff8e], a + ld [hEnemySpeed + 1], a call LoadScreenTilesFromBuffer1 ld de, H_MULTIPLICAND + 1 - ld hl, $ff8d - ld c, $2 + ld hl, hEnemySpeed + ld c, 2 call StringCmp jr nc, .canEscape ; jump if player speed greater than enemy speed xor a @@ -1609,9 +1609,9 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9) ld [H_DIVIDEND], a ld a, [H_PRODUCT + 3] ld [H_DIVIDEND + 1], a - ld a, [$ff8d] + ld a, [hEnemySpeed] ld b, a - ld a, [$ff8e] + ld a, [hEnemySpeed + 1] ; divide enemy speed by 4 srl b rr a @@ -6411,7 +6411,7 @@ LoadPlayerBackPic: ; 3ec92 (f:6c92) predef ScaleSpriteByTwo ld hl, wOAMBuffer xor a - ld [$FF8B], a ; initial tile number + ld [hOAMTile], a ; initial tile number ld b, $7 ; 7 columns ld e, $a0 ; X for the left-most column .loop ; each loop iteration writes 3 OAM entries in a vertical column @@ -6425,16 +6425,16 @@ LoadPlayerBackPic: ; 3ec92 (f:6c92) add d ; increase Y by height of tile ld d, a inc hl - ld a, [$FF8B] + ld a, [hOAMTile] ld [hli], a ; OAM tile number inc a ; increment tile number - ld [$FF8B], a + ld [hOAMTile], a inc hl dec c jr nz, .innerLoop - ld a, [$FF8B] + ld a, [hOAMTile] add $4 ; increase tile number by 4 - ld [$FF8B], a + ld [hOAMTile], a ld a, $8 ; width of tile add e ; increase X by width of tile ld e, a diff --git a/engine/battle/wild_encounters.asm b/engine/battle/wild_encounters.asm index 87512583..03dc6fb6 100644 --- a/engine/battle/wild_encounters.asm +++ b/engine/battle/wild_encounters.asm @@ -89,7 +89,7 @@ TryDoWildEncounter: ; 13870 (4:7870) jr .willEncounter .lastRepelStep ld [wRepelRemainingSteps], a - ld a, $d2 + ld a, 210 ld [H_DOWNARROWBLINKCNT2], a call EnableAutoTextBoxDrawing call DisplayTextID diff --git a/engine/items/items.asm b/engine/items/items.asm index b65e8f1e..7617ba6c 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -556,11 +556,11 @@ ItemUseSurfboard: ; d9b4 (3:59b4) jp PrintText .tryToStopSurfing xor a - ld [$ff8c],a + ld [hSpriteIndexOrTextID],a ld d,16 ; talking range in pixels (normal range) call IsSpriteInFrontOfPlayer2 res 7,[hl] - ld a,[$ff8c] + ld a,[hSpriteIndexOrTextID] and a ; is there a sprite in the way? jr nz,.cannotStopSurfing ld hl,TilePairCollisionsWater diff --git a/engine/items/tm_prices.asm b/engine/items/tm_prices.asm index 4decc82d..6bb7f711 100755 --- a/engine/items/tm_prices.asm +++ b/engine/items/tm_prices.asm @@ -1,7 +1,6 @@ GetMachinePrice: ; 7bf86 (1e:7f86) ; Input: [wcf91] = Item Id of a TM -; Output: Stores the 2-byte TM price in [H_DOWNARROWBLINKCNT1] and [H_DOWNARROWBLINKCNT2] -; as a BCD +; Output: Stores the TM price at hItemPrice ld a, [wcf91] ; a contains TM item id sub TM_01 ret c @@ -17,10 +16,10 @@ GetMachinePrice: ; 7bf86 (1e:7f86) swap a .highNybbleIsPrice and $f0 - ld [H_DOWNARROWBLINKCNT2], a + ld [hItemPrice + 1], a xor a - ld [H_DOWNARROWBLINKCNT1], a - ld [$ff8d], a + ld [hItemPrice], a + ld [hItemPrice + 2], a ret INCLUDE "data/tm_prices.asm" diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm index 56543c91..80eedecd 100755 --- a/engine/menu/pokedex.asm +++ b/engine/menu/pokedex.asm @@ -512,25 +512,25 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) inc de inc de ; de = address of upper byte of weight push de -; put weight in big-endian order at $ff8b - ld hl,$ff8b - ld a,[hl] ; save existing value of [$ff8b] +; put weight in big-endian order at hDexWeight + ld hl,hDexWeight + ld a,[hl] ; save existing value of [hDexWeight] push af ld a,[de] ; a = upper byte of weight - ld [hli],a ; store upper byte of weight in [$ff8b] - ld a,[hl] ; save existing value of [$ff8c] + ld [hli],a ; store upper byte of weight in [hDexWeight] + ld a,[hl] ; save existing value of [hDexWeight + 1] push af dec de ld a,[de] ; a = lower byte of weight - ld [hl],a ; store lower byte of weight in [$ff8c] - ld de,$ff8b + ld [hl],a ; store lower byte of weight in [hDexWeight + 1] + ld de,hDexWeight hlCoord 11, 8 ld bc,$0205 ; no leading zeroes, right-aligned, 2 bytes, 5 digits call PrintNumber ; print weight hlCoord 14, 8 - ld a,[$ff8c] + ld a,[hDexWeight + 1] sub a,10 - ld a,[$ff8b] + ld a,[hDexWeight] sbc a,0 jr nc,.next ld [hl],"0" ; if the weight is less than 10, put a 0 before the decimal point @@ -540,9 +540,9 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld [hld],a ; make space for the decimal point by moving the last digit forward one tile ld [hl],$f2 ; decimal point tile pop af - ld [$ff8c],a ; restore original value of [$ff8c] + ld [hDexWeight + 1],a ; restore original value of [hDexWeight + 1] pop af - ld [$ff8b],a ; restore original value of [$ff8b] + ld [hDexWeight],a ; restore original value of [hDexWeight] pop hl inc hl ; hl = address of pokedex description text bcCoord 1, 11 diff --git a/engine/menu/prize_menu.asm b/engine/menu/prize_menu.asm index fff8e4c4..f7206a7f 100755 --- a/engine/menu/prize_menu.asm +++ b/engine/menu/prize_menu.asm @@ -58,13 +58,13 @@ WhichPrizeTextPtr: ; 52789 (14:6789) GetPrizeMenuId: ; 5278e (14:678e) ; determine which one among the three ; prize-texts has been selected -; using the text ID (stored in [$FF8C]) +; using the text ID (stored in [hSpriteIndexOrTextID]) ; 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] + ld a,[hSpriteIndexOrTextID] sub a,$03 ; prize-texts' id are 3, 4 and 5 ld [wd12f],a ; prize-texts' id (relative, i.e. 0, 1 or 2) add a diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index 11b7fa90..2804ef7b 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -524,7 +524,7 @@ StartMenu_TrainerInfo: ; 13460 (4:7460) DrawTrainerInfo: ; 1349a (4:749a) ld de,RedPicFront ld bc,(BANK(RedPicFront) << 8) | $01 - predef Predef3B + predef DisplayPicCenteredOrUpperRight call DisableLCD hlCoord 0, 2 ld a," " diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index df092d4c..bd7f672e 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -34,9 +34,9 @@ SetDefaultNames: ; 60ca (1:60ca) OakSpeech: ; 6115 (1:6115) ld a,$FF call PlaySound ; stop music - ld a, BANK(Music_Routes2) ; bank of song + ld a, BANK(Music_Routes2) ld c,a - ld a, MUSIC_ROUTES2 ; song # + ld a, MUSIC_ROUTES2 call PlayMusic call ClearScreen call LoadTextBoxTilePatterns @@ -54,50 +54,49 @@ OakSpeech: ; 6115 (1:6115) xor a ld [hTilesetType],a ld a,[wd732] - bit 1,a ; XXX when is bit 1 set? - jp nz,Func_61bc ; easter egg: skip the intro + bit 1,a ; possibly a debug mode bit + jp nz,.skipChoosingNames ld de,ProfOakPic ld bc, (Bank(ProfOakPic) << 8) | $00 - call IntroPredef3B ; displays Oak pic? + call IntroDisplayPicCenteredOrUpperRight call FadeInIntroPic ld hl,OakSpeechText1 - call PrintText ; prints text box + call PrintText call GBFadeOutToWhite call ClearScreen ld a,NIDORINO - ld [wd0b5],a ; pic displayed is stored at this location + ld [wd0b5],a ld [wcf91],a - call GetMonHeader ; this is also related to the pic - hlCoord 6, 4 ; position on tilemap the pic is displayed - call LoadFlippedFrontSpriteByMonIndex ; displays pic? + call GetMonHeader + hlCoord 6, 4 + call LoadFlippedFrontSpriteByMonIndex call MovePicLeft ld hl,OakSpeechText2 - call PrintText ; Prints text box + call PrintText call GBFadeOutToWhite call ClearScreen ld de,RedPicFront ld bc,(Bank(RedPicFront) << 8) | $00 - call IntroPredef3B ; displays player pic? + call IntroDisplayPicCenteredOrUpperRight call MovePicLeft ld hl,IntroducePlayerText call PrintText - call LoadDefaultNamesPlayer ; brings up NewName/Red/etc menu + call ChoosePlayerName call GBFadeOutToWhite call ClearScreen ld de,Rival1Pic ld bc,(Bank(Rival1Pic) << 8) | $00 - call IntroPredef3B ; displays rival pic + call IntroDisplayPicCenteredOrUpperRight call FadeInIntroPic ld hl,IntroduceRivalText call PrintText - call LoadDefaultNamesRival - -Func_61bc: ; 61bc (1:61bc) + call ChooseRivalName +.skipChoosingNames call GBFadeOutToWhite call ClearScreen ld de,RedPicFront ld bc,(Bank(RedPicFront) << 8) | $00 - call IntroPredef3B + call IntroDisplayPicCenteredOrUpperRight call GBFadeInFromWhite ld a,[wd72d] and a @@ -120,12 +119,12 @@ Func_61bc: ; 61bc (1:61bc) call CopyVideoData ld de,ShrinkPic1 ld bc,(BANK(ShrinkPic1) << 8) | $00 - call IntroPredef3B + call IntroDisplayPicCenteredOrUpperRight ld c,4 call DelayFrames ld de,ShrinkPic2 ld bc,(BANK(ShrinkPic2) << 8) | $00 - call IntroPredef3B + call IntroDisplayPicCenteredOrUpperRight call ResetPlayerSpriteData ld a,[H_LOADEDROMBANK] push af @@ -207,10 +206,12 @@ MovePicLeft: ; 6288 (1:6288) ld [rWX],a jr .next -Predef3B: ; 62a1 (1:62a1) +DisplayPicCenteredOrUpperRight: ; 62a1 (1:62a1) call GetPredefRegisters -IntroPredef3B: ; 62a4 (1:62a4) -; bank of sprite given in b +IntroDisplayPicCenteredOrUpperRight: ; 62a4 (1:62a4) +; b = bank +; de = address of compressed pic +; c: 0 = centred, non-zero = upper-right push bc ld a,b call UncompressSpriteFromDE diff --git a/engine/oak_speech2.asm b/engine/oak_speech2.asm index b27a6987..f881b43b 100755 --- a/engine/oak_speech2.asm +++ b/engine/oak_speech2.asm @@ -1,29 +1,29 @@ -LoadDefaultNamesPlayer: ; 695d (1:695d) - call Func_6a12 +ChoosePlayerName: ; 695d (1:695d) + call OakSpeechSlidePicRight ld de, DefaultNamesPlayer call DisplayIntroNameTextBox ld a, [wCurrentMenuItem] and a - jr z, .asm_697a + jr z, .customName ld hl, DefaultNamesPlayerList - call Func_6ad6 + call GetDefaultName ld de, wPlayerName - call Func_69ec - jr .asm_6999 -.asm_697a + call OakSpeechSlidePicLeft + jr .done +.customName ld hl, wPlayerName xor a ; NAME_PLAYER_SCREEN ld [wNamingScreenType], a call DisplayNamingScreen ld a, [wcf4b] - cp $50 - jr z, .asm_697a + cp "@" + jr z, .customName call ClearScreen call Delay3 ld de, RedPicFront ld b, BANK(RedPicFront) - call IntroPredef3B -.asm_6999 + call IntroDisplayPicCenteredOrUpperRight +.done ld hl, YourNameIsText jp PrintText @@ -31,32 +31,32 @@ YourNameIsText: ; 699f (1:699f) TX_FAR _YourNameIsText db "@" -LoadDefaultNamesRival: ; 69a4 (1:69a4) - call Func_6a12 +ChooseRivalName: ; 69a4 (1:69a4) + call OakSpeechSlidePicRight ld de, DefaultNamesRival call DisplayIntroNameTextBox ld a, [wCurrentMenuItem] and a - jr z, .asm_69c1 + jr z, .customName ld hl, DefaultNamesRivalList - call Func_6ad6 + call GetDefaultName ld de, W_RIVALNAME - call Func_69ec - jr .asm_69e1 -.asm_69c1 + call OakSpeechSlidePicLeft + jr .done +.customName ld hl, W_RIVALNAME ld a, NAME_RIVAL_SCREEN ld [wNamingScreenType], a call DisplayNamingScreen ld a, [wcf4b] - cp $50 - jr z, .asm_69c1 + cp "@" + jr z, .customName call ClearScreen call Delay3 ld de, Rival1Pic ld b, $13 - call IntroPredef3B -.asm_69e1 + call IntroDisplayPicCenteredOrUpperRight +.done ld hl, HisNameIsText jp PrintText @@ -64,11 +64,11 @@ HisNameIsText: ; 69e7 (1:69e7) TX_FAR _HisNameIsText db "@" -Func_69ec: ; 69ec (1:69ec) +OakSpeechSlidePicLeft: ; 69ec (1:69ec) push de hlCoord 0, 0 - ld bc, $c0b - call ClearScreenArea + lb bc, 12, 11 + call ClearScreenArea ; clear the name list text box ld c, 10 call DelayFrames pop de @@ -77,77 +77,83 @@ Func_69ec: ; 69ec (1:69ec) call CopyData call Delay3 hlCoord 12, 4 - ld de, $67d + lb de, 6, 6 * SCREEN_WIDTH + 5 ld a, $ff - jr asm_6a19 + jr OakSpeechSlidePicCommon -Func_6a12: ; 6a12 (1:6a12) +OakSpeechSlidePicRight: ; 6a12 (1:6a12) hlCoord 5, 4 - ld de, $67d + lb de, 6, 6 * SCREEN_WIDTH + 5 xor a -asm_6a19: ; 6a19 (1:6a19) + +OakSpeechSlidePicCommon: ; 6a19 (1:6a19) push hl push de push bc - ld [$ff8d], a + ld [hSlideDirection], a ld a, d - ld [H_DOWNARROWBLINKCNT1], a + ld [hSlideAmount], a ld a, e - ld [H_DOWNARROWBLINKCNT2], a + ld [hSlidingRegionSize], a ld c, a - ld a, [$ff8d] + ld a, [hSlideDirection] and a - jr nz, .asm_6a2d - ld d, $0 + jr nz, .next +; If sliding right, point hl to the end of the pic's tiles. + ld d, 0 add hl, de -.asm_6a2d +.next ld d, h ld e, l -.asm_6a2f +.loop xor a ld [H_AUTOBGTRANSFERENABLED], a - ld a, [$ff8d] + ld a, [hSlideDirection] and a - jr nz, .asm_6a3c + jr nz, .slideLeft +; sliding right ld a, [hli] ld [hld], a dec hl - jr .asm_6a3f -.asm_6a3c + jr .next2 +.slideLeft ld a, [hld] ld [hli], a inc hl -.asm_6a3f +.next2 dec c - jr nz, .asm_6a2f - ld a, [$ff8d] + jr nz, .loop + ld a, [hSlideDirection] and a - jr z, .asm_6a4a + jr z, .next3 +; If sliding left, we need to zero the last tile in the pic (there is no need +; to take a corresponding action when sliding right because hl initially points +; to a 0 tile in that case). xor a dec hl ld [hl], a -.asm_6a4a - ld a, $1 +.next3 + ld a, 1 ld [H_AUTOBGTRANSFERENABLED], a call Delay3 - ld a, [H_DOWNARROWBLINKCNT2] + ld a, [hSlidingRegionSize] ld c, a ld h, d ld l, e - ld a, [$ff8d] + ld a, [hSlideDirection] and a - jr nz, .asm_6a5e + jr nz, .slideLeft2 inc hl - jr .asm_6a5f -.asm_6a5e + jr .next4 +.slideLeft2 dec hl -.asm_6a5f +.next4 ld d, h ld e, l - ld a, [H_DOWNARROWBLINKCNT1] + ld a, [hSlideAmount] dec a - ld [H_DOWNARROWBLINKCNT1], a - jr nz, .asm_6a2f + ld [hSlideAmount], a + jr nz, .loop pop bc pop de pop hl @@ -229,22 +235,24 @@ DefaultNamesRival: db "@" ENDC -Func_6ad6: ; 6ad6 (1:6ad6) +GetDefaultName: ; 6ad6 (1:6ad6) +; a = name index +; hl = name list ld b, a - ld c, $0 -.asm_6ad9 + ld c, 0 +.loop ld d, h ld e, l -.asm_6adb +.innerLoop ld a, [hli] - cp $50 - jr nz, .asm_6adb + cp "@" + jr nz, .innerLoop ld a, b cp c - jr z, .asm_6ae7 + jr z, .foundName inc c - jr .asm_6ad9 -.asm_6ae7 + jr .loop +.foundName ld h, d ld l, e ld de, wcd6d diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm index b00405bf..eb6d743a 100644 --- a/engine/overworld/item.asm +++ b/engine/overworld/item.asm @@ -1,7 +1,7 @@ -PickupItem: +PickUpItem: call EnableAutoTextBoxDrawing - ld a, [H_DOWNARROWBLINKCNT2] + ld a, [hSpriteIndexOrTextID] ld b, a ld hl, W_MISSABLEOBJECTLIST .missableObjectsListLoop @@ -18,7 +18,7 @@ PickupItem: ld [$ffdb], a ld hl, W_MAPSPRITEEXTRADATA - ld a, [H_DOWNARROWBLINKCNT2] + ld a, [hSpriteIndexOrTextID] dec a add a ld d, 0 diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm index df39d112..33411dfc 100755 --- a/engine/overworld/map_sprites.asm +++ b/engine/overworld/map_sprites.asm @@ -39,7 +39,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) ld b,$10 ; number of sprite slots ld hl,wSpriteStateData2 + $0d xor a - ld [$ff8e],a ; 4-tile sprite counter + ld [hFourTileSpriteCount],a .copyPictureIDLoop ; loop to copy picture ID from $C2XD to $C2XE ld a,[hli] ; $C2XD (sprite picture ID) ld [hld],a ; $C2XE @@ -98,14 +98,14 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) cp a,SPRITE_BALL ; is it a 4-tile sprite? jr c,.notFourTileSprite pop af - ld a,[$ff8e] ; 4-tile sprite counter + ld a,[hFourTileSpriteCount] add a,11 jr .storeVRAMSlot .notFourTileSprite pop af .storeVRAMSlot ld [hl],a ; store VRAM slot at $C2XE - ld [$ff8d],a ; used to determine if it's 4-tile sprite later + ld [hVRAMSlot],a ; used to determine if it's 4-tile sprite later ld a,b ; a = current sprite picture ID dec a add a @@ -128,7 +128,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) push bc ld hl,vNPCSprites ; VRAM base address ld bc,$c0 ; number of bytes per VRAM slot - ld a,[$ff8d] + ld a,[hVRAMSlot] cp a,11 ; is it a 4-tile sprite? jr nc,.fourTileSpriteVRAMAddr ld d,a @@ -142,13 +142,13 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) jr .loadStillTilePattern .fourTileSpriteVRAMAddr 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? + ld a,[hFourTileSpriteCount] + and a jr nz,.loadStillTilePattern ; if it's the first 4-tile sprite ld hl,vSprites + $780 ; address for first 4-tile sprite inc a - ld [$ff8e],a ; 4-tile sprite counter + ld [hFourTileSpriteCount],a .loadStillTilePattern pop bc pop de @@ -168,7 +168,7 @@ LoadMapSpriteTilePatterns: ; 17871 (5:7871) .skipFirstLoad pop de pop hl - ld a,[$ff8d] + ld a,[hVRAMSlot] cp a,11 ; is it a 4-tile sprite? jr nc,.skipSecondLoad ; if so, there is no second block push de diff --git a/engine/predefs.asm b/engine/predefs.asm index 1af240ce..17f94b73 100755 --- a/engine/predefs.asm +++ b/engine/predefs.asm @@ -111,7 +111,7 @@ PredefPointers:: ; 4fe79 (13:7e79) add_predef InternalClockTradeAnim add_predef TrainerEngage add_predef IndexToPokedex - add_predef Predef3B; 3B display pic? + add_predef DisplayPicCenteredOrUpperRight; 3B display pic? add_predef UsedCut add_predef ShowPokedexData add_predef WriteMonMoves @@ -144,7 +144,7 @@ PredefPointers:: ; 4fe79 (13:7e79) add_predef GetTileTwoStepsInFrontOfPlayer add_predef CheckForCollisionWhenPushingBoulder add_predef PrintStrengthTxt - add_predef PickupItem + add_predef PickUpItem add_predef PrintMoveType add_predef LoadMovePPs add_predef DrawHP ; 5F diff --git a/home.asm b/home.asm index 38a95742..f9004e7e 100644 --- a/home.asm +++ b/home.asm @@ -969,10 +969,10 @@ PokeCenterSignText:: ; 24ef (0:24ef) TX_FAR _PokeCenterSignText db "@" -Predef5CText:: ; 24f4 (0:24f4) +PickUpItemText:: ; 24f4 (0:24f4) ; XXX better label (what does predef $5C do?) TX_ASM - predef PickupItem + predef PickUpItem jp TextScriptEnd @@ -1050,7 +1050,7 @@ Func_28cb:: ; 28cb (0:28cb) jp PlaySound ; this function is used to display sign messages, sprite dialog, etc. -; INPUT: [$ff8c] = sprite ID or text ID +; INPUT: [hSpriteIndexOrTextID] = sprite ID or text ID DisplayTextID:: ; 2920 (0:2920) ld a,[H_LOADEDROMBANK] push af @@ -1069,7 +1069,7 @@ DisplayTextID:: ; 2920 (0:2920) ld h,[hl] ld l,a ; hl = map text pointer ld d,$00 - ld a,[$ff8c] ; text ID + ld a,[hSpriteIndexOrTextID] ; text ID ld [wSpriteIndex],a and a jp z,DisplayStartMenu @@ -1083,7 +1083,7 @@ DisplayTextID:: ; 2920 (0:2920) jp z,DisplayRepelWoreOffText ld a,[W_NUMSPRITES] ld e,a - ld a,[$ff8c] ; sprite ID + ld a,[hSpriteIndexOrTextID] ; sprite ID cp e jr z,.spriteHandling jr nc,.skipSpriteHandling @@ -1096,7 +1096,7 @@ DisplayTextID:: ; 2920 (0:2920) pop bc pop de ld hl,W_MAPSPRITEDATA ; NPC text entries - ld a,[$ff8c] + ld a,[hSpriteIndexOrTextID] dec a add a add l @@ -1235,10 +1235,12 @@ LoadItemList:: ; 2a5a (0:2a5a) ret DisplayPokemonCenterDialogue:: ; 2a72 (0:2a72) +; zeroing these doesn't appear to serve any purpose xor a ld [$ff8b],a ld [$ff8c],a ld [$ff8d],a + inc hl ld a,[H_LOADEDROMBANK] push af @@ -2487,8 +2489,8 @@ CheckForEngagingTrainers:: ; 3306 (0:3306) ld c, a call TrainerFlagAction ; read trainer flag ld a, c - and a - jr nz, .trainerAlreadyFought + and a ; has the trainer already been defeated? + jr nz, .continue push hl push de push hl @@ -2507,7 +2509,7 @@ CheckForEngagingTrainers:: ; 3306 (0:3306) ld a, [wTrainerSpriteOffset] and a ret nz ; break if the trainer is engaging -.trainerAlreadyFought +.continue ld hl, $c add hl, de ld d, h @@ -2737,7 +2739,7 @@ SetSpriteFacingDirection:: ; 34ae (0:34ae) ld a, $9 ld [H_SPRITEDATAOFFSET], a call GetPointerWithinSpriteStateData1 - ld a, [$ff8d] + ld a, [hSpriteFacingDirection] ld [hl], a ret @@ -2858,18 +2860,18 @@ DecodeRLEList:: ; 350c (0:350c) inc a ; include sentinel in counting ret -; sets movement byte 1 for sprite [$FF8C] to $FE and byte 2 to [$FF8D] +; sets movement byte 1 for sprite [H_SPRITEINDEX] to $FE and byte 2 to [hSpriteMovementByte2] SetSpriteMovementBytesToFE:: ; 3533 (0:3533) push hl call GetSpriteMovementByte1Pointer ld [hl], $fe call GetSpriteMovementByte2Pointer - ld a, [$ff8d] + ld a, [hSpriteMovementByte2] ld [hl], a pop hl ret -; sets both movement bytes for sprite [$FF8C] to $FF +; sets both movement bytes for sprite [H_SPRITEINDEX] to $FF SetSpriteMovementBytesToFF:: ; 3541 (0:3541) push hl call GetSpriteMovementByte1Pointer @@ -2879,20 +2881,20 @@ SetSpriteMovementBytesToFF:: ; 3541 (0:3541) pop hl ret -; returns the sprite movement byte 1 pointer for sprite [$FF8C] in hl +; returns the sprite movement byte 1 pointer for sprite [H_SPRITEINDEX] in hl GetSpriteMovementByte1Pointer:: ; 354e (0:354e) ld h,$C2 - ld a,[H_SPRITEINDEX] ; the sprite to move + ld a,[H_SPRITEINDEX] swap a add a,6 ld l,a ret -; returns the sprite movement byte 2 pointer for sprite [$FF8C] in hl +; returns the sprite movement byte 2 pointer for sprite [H_SPRITEINDEX] in hl GetSpriteMovementByte2Pointer:: ; 3558 (0:3558) push de ld hl,W_MAPSPRITEDATA - ld a,[$FF8C] ; the sprite to move + ld a,[H_SPRITEINDEX] dec a add a ld d,0 diff --git a/home/copy2.asm b/home/copy2.asm index e5f28383..f872ebbc 100644 --- a/home/copy2.asm +++ b/home/copy2.asm @@ -1,10 +1,10 @@ FarCopyData2:: -; Identical to FarCopyData, but uses $ff8b +; Identical to FarCopyData, but uses hROMBankTemp ; as temp space instead of wBuffer. - ld [$ff8b],a + ld [hROMBankTemp],a ld a,[H_LOADEDROMBANK] push af - ld a,[$ff8b] + ld a,[hROMBankTemp] ld [H_LOADEDROMBANK],a ld [MBC1RomBank],a call CopyData @@ -15,10 +15,10 @@ FarCopyData2:: FarCopyData3:: ; Copy bc bytes from a:de to hl. - ld [$ff8b],a + ld [hROMBankTemp],a ld a,[H_LOADEDROMBANK] push af - ld a,[$ff8b] + ld a,[hROMBankTemp] ld [H_LOADEDROMBANK],a ld [MBC1RomBank],a push hl @@ -38,10 +38,10 @@ FarCopyData3:: FarCopyDataDouble:: ; Expand bc bytes of 1bpp image data ; from a:hl to 2bpp data at de. - ld [$ff8b],a + ld [hROMBankTemp],a ld a,[H_LOADEDROMBANK] push af - ld a,[$ff8b] + ld a,[hROMBankTemp] ld [H_LOADEDROMBANK],a ld [MBC1RomBank],a .loop @@ -70,7 +70,7 @@ CopyVideoData:: ld [H_AUTOBGTRANSFERENABLED], a ld a, [H_LOADEDROMBANK] - ld [$ff8b], a + ld [hROMBankTemp], a ld a, b ld [H_LOADEDROMBANK], a @@ -94,7 +94,7 @@ CopyVideoData:: .done ld [H_VBCOPYSIZE], a call DelayFrame - ld a, [$ff8b] + ld a, [hROMBankTemp] ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a pop af @@ -119,7 +119,7 @@ CopyVideoDataDouble:: xor a ; disable auto-transfer while copying ld [H_AUTOBGTRANSFERENABLED], a ld a, [H_LOADEDROMBANK] - ld [$ff8b], a + ld [hROMBankTemp], a ld a, b ld [H_LOADEDROMBANK], a @@ -143,7 +143,7 @@ CopyVideoDataDouble:: .done ld [H_VBCOPYDOUBLESIZE], a call DelayFrame - ld a, [$ff8b] + ld a, [hROMBankTemp] ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a pop af diff --git a/home/overworld.asm b/home/overworld.asm index f4d6d695..da514763 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -444,7 +444,7 @@ CheckWarpsCollision:: ; 0706 (0:0706) ld a,[hli] ld [wDestinationWarpID],a ld a,[hl] - ld [$ff8b],a ; save target map + ld [hWarpDestinationMap],a jr WarpFound2 .retry1 inc hl @@ -466,7 +466,7 @@ WarpFound1:: ; 0735 (0:0735) ld a,[hli] ld [wDestinationWarpID],a ld a,[hli] - ld [$ff8b],a ; save target map + ld [hWarpDestinationMap],a WarpFound2:: ; 073c (0:073c) ld a,[wNumberOfWarps] @@ -481,8 +481,8 @@ WarpFound2:: ; 073c (0:073c) ld [wLastMap],a ld a,[W_CURMAPWIDTH] ld [wd366],a - ld a,[$ff8b] ; destination map number - ld [W_CURMAP],a ; change current map to destination map + ld a,[hWarpDestinationMap] + ld [W_CURMAP],a cp a,ROCK_TUNNEL_1 jr nz,.notRockTunnel ld a,$06 @@ -493,11 +493,11 @@ WarpFound2:: ; 073c (0:073c) jr .done ; for maps that can have the 0xFF destination map, which means to return to the outside map; not all these maps are necessarily indoors, though .indoorMaps - ld a,[$ff8b] ; destination map + ld a,[hWarpDestinationMap] ; destination map cp a,$ff jr z,.goBackOutside ; if not going back to the previous map - ld [W_CURMAP],a ; current map number + ld [W_CURMAP],a callba IsPlayerStandingOnWarpPadOrHole ld a,[wcd5b] dec a ; is the player on a warp pad? @@ -539,22 +539,22 @@ CheckMapConnections:: ; 07ba (0:07ba) jr nz,.checkEastMap ld a,[W_MAPCONN3PTR] ld [W_CURMAP],a - ld a,[wd38f] ; new X coordinate upon entering west map + ld a,[wWestConnectedMapXAlignment] ; new X coordinate upon entering west map ld [W_XCOORD],a ld a,[W_YCOORD] ld c,a - ld a,[wd38e] ; Y adjustment upon entering west map + ld a,[wWestConnectedMapYAlignment] ; Y adjustment upon entering west map add c ld c,a ld [W_YCOORD],a - ld a,[wd390] ; pointer to upper left corner of map without adjustment for Y position + ld a,[wWestConnectedMapViewPointer] ; pointer to upper left corner of map without adjustment for Y position ld l,a - ld a,[wd391] + ld a,[wWestConnectedMapViewPointer + 1] ld h,a srl c jr z,.savePointer1 .pointerAdjustmentLoop1 - ld a,[wd38d] ; width of connected map + ld a,[wWestConnectedMapWidth] ; width of connected map add a,$06 ld e,a ld d,$00 @@ -575,22 +575,22 @@ CheckMapConnections:: ; 07ba (0:07ba) jr nz,.checkNorthMap ld a,[W_MAPCONN4PTR] ld [W_CURMAP],a - ld a,[wd39a] ; new X coordinate upon entering east map + ld a,[wEastConnectedMapXAlignment] ; new X coordinate upon entering east map ld [W_XCOORD],a ld a,[W_YCOORD] ld c,a - ld a,[wd399] ; Y adjustment upon entering east map + ld a,[wEastConnectedMapYAlignment] ; Y adjustment upon entering east map add c ld c,a ld [W_YCOORD],a - ld a,[wd39b] ; pointer to upper left corner of map without adjustment for Y position + ld a,[wEastConnectedMapViewPointer] ; pointer to upper left corner of map without adjustment for Y position ld l,a - ld a,[wd39c] + ld a,[wEastConnectedMapViewPointer + 1] ld h,a srl c jr z,.savePointer2 .pointerAdjustmentLoop2 - ld a,[wd398] + ld a,[wEastConnectedMapWidth] add a,$06 ld e,a ld d,$00 @@ -610,19 +610,19 @@ CheckMapConnections:: ; 07ba (0:07ba) jr nz,.checkSouthMap ld a,[W_MAPCONN1PTR] ld [W_CURMAP],a - ld a,[wd378] ; new Y coordinate upon entering north map + ld a,[wNorthConnectedMapYAlignment] ; new Y coordinate upon entering north map ld [W_YCOORD],a ld a,[W_XCOORD] ld c,a - ld a,[wd379] ; X adjustment upon entering north map + ld a,[wNorthConnectedMapXAlignment] ; X adjustment upon entering north map add c ld c,a ld [W_XCOORD],a - ld a,[wd37a] ; pointer to upper left corner of map without adjustment for X position + ld a,[wNorthConnectedMapViewPointer] ; pointer to upper left corner of map without adjustment for X position ld l,a - ld a,[wd37b] + ld a,[wNorthConnectedMapViewPointer + 1] ld h,a - ld b,$00 + ld b,0 srl c add hl,bc ld a,l @@ -637,19 +637,19 @@ CheckMapConnections:: ; 07ba (0:07ba) jr nz,.didNotEnterConnectedMap ld a,[W_MAPCONN2PTR] ld [W_CURMAP],a - ld a,[wd383] ; new Y coordinate upon entering south map + ld a,[wSouthConnectedMapYAlignment] ; new Y coordinate upon entering south map ld [W_YCOORD],a ld a,[W_XCOORD] ld c,a - ld a,[wd384] ; X adjustment upon entering south map + ld a,[wSouthConnectedMapXAlignment] ; X adjustment upon entering south map add c ld c,a ld [W_XCOORD],a - ld a,[wd385] ; pointer to upper left corner of map without adjustment for X position + ld a,[wSouthConnectedMapViewPointer] ; pointer to upper left corner of map without adjustment for X position ld l,a - ld a,[wd386] + ld a,[wSouthConnectedMapViewPointer + 1] ld h,a - ld b,$00 + ld b,0 srl c add hl,bc ld a,l @@ -884,9 +884,9 @@ LoadTileBlockMap:: ; 09fc (0:09fc) ; a 3-byte border at the edges of the map is kept so that there is space for map connections ld hl,wOverworldMap ld a,[W_CURMAPWIDTH] - ld [$ff8c],a + ld [hMapWidth],a add a,$06 ; border (east and west) - ld [$ff8b],a ; map width + border + ld [hMapStride],a ; map width + border ld b,$00 ld c,a ; make space for north border (next 3 lines) @@ -903,7 +903,7 @@ LoadTileBlockMap:: ; 09fc (0:09fc) ld b,a .rowLoop ; copy one row each iteration push hl - ld a,[$ff8c] ; map width (without border) + ld a,[hMapWidth] ; map width (without border) ld c,a .rowInnerLoop ld a,[de] @@ -913,7 +913,7 @@ LoadTileBlockMap:: ; 09fc (0:09fc) jr nz,.rowInnerLoop ; add the map width plus the border to the base address of the current row to get the next row's address pop hl - ld a,[$ff8b] ; map width + border + ld a,[hMapStride] ; map width + border add l ld l,a jr nc,.noCarry @@ -926,72 +926,72 @@ LoadTileBlockMap:: ; 09fc (0:09fc) cp a,$ff jr z,.southConnection call SwitchToMapRomBank - ld a,[wd372] + ld a,[wNorthConnectionStripSrc] ld l,a - ld a,[wd373] + ld a,[wNorthConnectionStripSrc + 1] ld h,a - ld a,[wd374] + ld a,[wNorthConnectionStripDest] ld e,a - ld a,[wd375] + ld a,[wNorthConnectionStripDest + 1] ld d,a - ld a,[wd376] - ld [$ff8b],a - ld a,[wd377] - ld [$ff8c],a + ld a,[wNorthConnectionStripWidth] + ld [hNorthSouthConnectionStripWidth],a + ld a,[wNorthConnectedMapWidth] + ld [hNorthSouthConnectedMapWidth],a call LoadNorthSouthConnectionsTileMap .southConnection ld a,[W_MAPCONN2PTR] cp a,$ff jr z,.westConnection call SwitchToMapRomBank - ld a,[wd37d] + ld a,[wSouthConnectionStripSrc] ld l,a - ld a,[wd37e] + ld a,[wSouthConnectionStripSrc + 1] ld h,a - ld a,[wd37f] + ld a,[wSouthConnectionStripDest] ld e,a - ld a,[wd380] + ld a,[wSouthConnectionStripDest + 1] ld d,a - ld a,[wd381] - ld [$ff8b],a - ld a,[wd382] - ld [$ff8c],a + ld a,[wSouthConnectionStripWidth] + ld [hNorthSouthConnectionStripWidth],a + ld a,[wSouthConnectedMapWidth] + ld [hNorthSouthConnectedMapWidth],a call LoadNorthSouthConnectionsTileMap .westConnection ld a,[W_MAPCONN3PTR] cp a,$ff jr z,.eastConnection call SwitchToMapRomBank - ld a,[wd388] + ld a,[wWestConnectionStripSrc] ld l,a - ld a,[wd389] + ld a,[wWestConnectionStripSrc + 1] ld h,a - ld a,[wd38a] + ld a,[wWestConnectionStripDest] ld e,a - ld a,[wd38b] + ld a,[wWestConnectionStripDest + 1] ld d,a - ld a,[wd38c] + ld a,[wWestConnectionStripHeight] ld b,a - ld a,[wd38d] - ld [$ff8b],a + ld a,[wWestConnectedMapWidth] + ld [hEastWestConnectedMapWidth],a call LoadEastWestConnectionsTileMap .eastConnection ld a,[W_MAPCONN4PTR] cp a,$ff jr z,.done call SwitchToMapRomBank - ld a,[wd393] + ld a,[wEastConnectionStripSrc] ld l,a - ld a,[wd394] + ld a,[wEastConnectionStripSrc + 1] ld h,a - ld a,[wd395] + ld a,[wEastConnectionStripDest] ld e,a - ld a,[wd396] + ld a,[wEastConnectionStripDest + 1] ld d,a - ld a,[wd397] + ld a,[wEastConnectionStripHeight] ld b,a - ld a,[wd398] - ld [$ff8b],a + ld a,[wEastConnectedMapWidth] + ld [hEastWestConnectedMapWidth],a call LoadEastWestConnectionsTileMap .done ret @@ -1001,7 +1001,7 @@ LoadNorthSouthConnectionsTileMap:: ; 0ade (0:0ade) .loop push de push hl - ld a,[$ff8b] ; width of connection + ld a,[hNorthSouthConnectionStripWidth] ld b,a .innerLoop ld a,[hli] @@ -1011,7 +1011,7 @@ LoadNorthSouthConnectionsTileMap:: ; 0ade (0:0ade) jr nz,.innerLoop pop hl pop de - ld a,[$ff8c] ; width of connected map + ld a,[hNorthSouthConnectedMapWidth] add l ld l,a jr nc,.noCarry1 @@ -1040,7 +1040,7 @@ LoadEastWestConnectionsTileMap:: ; 0b02 (0:0b02) jr nz,.innerLoop pop de pop hl - ld a,[$ff8b] ; width of connected map + ld a,[hEastWestConnectedMapWidth] add l ld l,a jr nc,.noCarry1 @@ -2022,7 +2022,7 @@ LoadMapHeader:: ; 107c (0:107c) ld b,a res 7,a ld [W_CURMAPTILESET],a - ld [$ff8b],a + ld [hPreviousTileset],a bit 7,b ret nz ld hl,MapHeaderPointers @@ -2191,24 +2191,24 @@ LoadMapHeader:: ; 107c (0:107c) ld a,[hli] ld [de],a ; store movement byte 1 at C2X6 ld a,[hli] - ld [$ff8d],a ; save movement byte 2 + ld [hLoadSpriteTemp1],a ; save movement byte 2 ld a,[hli] - ld [$ff8e],a ; save text ID and flags byte + ld [hLoadSpriteTemp2],a ; save text ID and flags byte push bc push hl ld b,$00 ld hl,W_MAPSPRITEDATA add hl,bc - ld a,[$ff8d] + ld a,[hLoadSpriteTemp1] ld [hli],a ; store movement byte 2 in byte 0 of sprite entry - ld a,[$ff8e] + ld a,[hLoadSpriteTemp2] ld [hl],a ; this appears pointless, since the value is overwritten immediately after - ld a,[$ff8e] - ld [$ff8d],a + ld a,[hLoadSpriteTemp2] + ld [hLoadSpriteTemp1],a and a,$3f ld [hl],a ; store text ID in byte 1 of sprite entry pop hl - ld a,[$ff8d] + ld a,[hLoadSpriteTemp1] bit 6,a jr nz,.trainerSprite bit 7,a @@ -2216,25 +2216,25 @@ LoadMapHeader:: ; 107c (0:107c) jr .regularSprite .trainerSprite ld a,[hli] - ld [$ff8d],a ; save trainer class + ld [hLoadSpriteTemp1],a ; save trainer class ld a,[hli] - ld [$ff8e],a ; save trainer number (within class) + ld [hLoadSpriteTemp2],a ; save trainer number (within class) push hl ld hl,W_MAPSPRITEEXTRADATA add hl,bc - ld a,[$ff8d] + ld a,[hLoadSpriteTemp1] ld [hli],a ; store trainer class in byte 0 of the entry - ld a,[$ff8e] + ld a,[hLoadSpriteTemp2] ld [hl],a ; store trainer number in byte 1 of the entry pop hl jr .nextSprite .itemBallSprite ld a,[hli] - ld [$ff8d],a ; save item number + ld [hLoadSpriteTemp1],a ; save item number push hl ld hl,W_MAPSPRITEEXTRADATA add hl,bc - ld a,[$ff8d] + ld a,[hLoadSpriteTemp1] ld [hli],a ; store item number in byte 0 of the entry xor a ld [hl],a ; zero byte 1, since it is not used diff --git a/hram.asm b/hram.asm index b0d5a942..a05f3d18 100644 --- a/hram.asm +++ b/hram.asm @@ -1,9 +1,3 @@ - -H_SPRITEWIDTH EQU $FF8B ; in tiles -H_SPRITEINTERLACECOUNTER EQU $FF8B -H_SPRITEHEIGHT EQU $FF8C ; in tiles -H_SPRITEOFFSET EQU $FF8D - hSoftReset EQU $FF8A ; Initialized to 16. ; Decremented each input iteration if the player @@ -12,8 +6,28 @@ hSoftReset EQU $FF8A hBaseTileID EQU $FF8B +; 3-byte BCD number hItemPrice EQU $FF8B +hDexWeight EQU $FF8B + +hWarpDestinationMap EQU $FF8B + +hOAMTile EQU $FF8B + +hROMBankTemp EQU $FF8B + +hPreviousTileset EQU $FF8B + +hEastWestConnectedMapWidth EQU $FF8B + +hSlideAmount EQU $FF8B + +H_SPRITEWIDTH EQU $FF8B ; in tiles +H_SPRITEINTERLACECOUNTER EQU $FF8B +H_SPRITEHEIGHT EQU $FF8C ; in tiles +H_SPRITEOFFSET EQU $FF8D + ; counters for blinking down arrow H_DOWNARROWBLINKCNT1 EQU $FF8B H_DOWNARROWBLINKCNT2 EQU $FF8C @@ -21,11 +35,40 @@ H_DOWNARROWBLINKCNT2 EQU $FF8C H_SPRITEDATAOFFSET EQU $FF8B H_SPRITEINDEX EQU $FF8C +hMapStride EQU $FF8B +hMapWidth EQU $FF8C + +hNorthSouthConnectionStripWidth EQU $FF8B +hNorthSouthConnectedMapWidth EQU $FF8C + ; DisplayTextID's argument hSpriteIndexOrTextID EQU $FF8C hPartyMonIndex EQU $FF8C +; the total number of tiles being shifted each time the pic slides by one tile +hSlidingRegionSize EQU $FF8C + +; 2 bytes +hEnemySpeed EQU $FF8D + +hVRAMSlot EQU $FF8D + +hFourTileSpriteCount EQU $FF8E + +; -1 = left +; 0 = right +hSlideDirection EQU $FF8D + +hSpriteFacingDirection EQU $FF8D + +hSpriteMovementByte2 EQU $FF8D + +hSpriteImageIndex EQU $FF8D + +hLoadSpriteTemp1 EQU $FF8D +hLoadSpriteTemp2 EQU $FF8E + hHalveItemPrices EQU $FF8E hSpriteOffset2 EQU $FF8F diff --git a/macros.asm b/macros.asm index 6a693a0b..9899ec29 100644 --- a/macros.asm +++ b/macros.asm @@ -13,6 +13,10 @@ dex EQUS "db $5f, $50" ; End a Pokedex entry. percent EQUS "* $ff / 100" +lb: MACRO ; r, hi, lo + ld \1, (\2) << 8 + (\3) + ENDM + ; Constant enumeration is useful for monsters, items, moves, etc. const_def: MACRO @@ -530,7 +534,7 @@ ENDM SOUTH_MAP_CONNECTION: MACRO db \1 ; map id dw \6 + \4 ; "Conection Strip" location - dw wOverworldMap + 3 + (\8 + 3) * (\7 + 6) + \3 ; current map positoin + dw wOverworldMap + 3 + (\8 + 3) * (\7 + 6) + \3 ; current map position db \5 ; width of connection strip db \2 ; map width db 0 ; y alignment (y coordinate of player when entering map) diff --git a/main.asm b/main.asm index 3bc5989a..9ceb5f81 100755 --- a/main.asm +++ b/main.asm @@ -996,7 +996,7 @@ DisplayTextIDInit: ; 7096 (1:7096) ld a,[wAutoTextBoxDrawingControl] bit 0,a jr nz,.skipDrawingTextBoxBorder - ld a,[$ff8c] ; text ID (or sprite ID) + ld a,[hSpriteIndexOrTextID] ; text ID (or sprite ID) and a jr nz,.notStartMenu ; if text ID is 0 (i.e. the start menu) @@ -2094,7 +2094,7 @@ IsPlayerStandingOnWarp: ; c35f (3:435f) ld a, [hli] ; target warp ld [wDestinationWarpID], a ld a, [hl] ; target map - ld [$ff8b], a + ld [hWarpDestinationMap], a ld hl, wd736 set 2, [hl] ; standing on warp flag ret @@ -2593,7 +2593,7 @@ ApplyOutOfBattlePoisonDamage: ; c69c (3:469c) ld [wJoyIgnore], a call EnableAutoTextBoxDrawing ld a, $d0 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID pop de pop hl @@ -2640,7 +2640,7 @@ ApplyOutOfBattlePoisonDamage: ; c69c (3:469c) jr nz, .noBlackOut call EnableAutoTextBoxDrawing ld a, $d1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd72e set 5, [hl] @@ -2692,7 +2692,7 @@ LoadTilesetHeader: ; c754 (3:4754) jr c, .asm_c797 ld a, [W_CURMAPTILESET] ld b, a - ld a, [$ff8b] + ld a, [hPreviousTileset] cp b jr z, .done .asm_c797 @@ -3454,15 +3454,15 @@ TryPushingBoulder: ; f225 (3:7225) bit 1, a ; has boulder dust animation from previous push played yet? ret nz xor a - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call IsSpriteInFrontOfPlayer - ld a, [$ff8c] + ld a, [hSpriteIndexOrTextID] ld [wBoulderSpriteIndex], a and a jp z, ResetBoulderPushFlags ld hl, wSpriteStateData1 + 1 ld d, $0 - ld a, [$ff8c] + ld a, [hSpriteIndexOrTextID] swap a ld e, a add hl, de diff --git a/scripts/agatha.asm b/scripts/agatha.asm index cc209553..e65b1fa2 100755 --- a/scripts/agatha.asm +++ b/scripts/agatha.asm @@ -76,7 +76,7 @@ AgathaScript0: ; 76490 (1d:6490) jr z, AgathaScript_76474 .asm_764b4 ld a, $2 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, D_UP ld [wSimulatedJoypadStatesEnd], a @@ -112,7 +112,7 @@ AgathaScript2: ; 764ed (1d:64ed) cp $ff jp z, AgathaScript_76464 ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 ld [W_GARYCURSCRIPT], a diff --git a/scripts/billshouse.asm b/scripts/billshouse.asm index 5de02d83..115b3b19 100755 --- a/scripts/billshouse.asm +++ b/scripts/billshouse.asm @@ -23,7 +23,7 @@ BillsHouseScript1: ; 1e783 (7:6783) ld de, MovementData_1e7a0 .notDown ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $2 ld [W_BILLSHOUSECURSCRIPT], a @@ -82,7 +82,7 @@ BillsHouseScript3: ; 1e7c5 (7:67c5) ld c, 8 call DelayFrames ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a ld de, MovementData_1e807 call MoveSprite ld a, $4 @@ -113,7 +113,7 @@ BillsHouseScript4: ; 1e80d (7:680d) BillsHouseScript5: ; 1e827 (7:6827) ld a, $4 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $0 ld [W_BILLSHOUSECURSCRIPT], a diff --git a/scripts/bruno.asm b/scripts/bruno.asm index 257a830b..bd28917c 100755 --- a/scripts/bruno.asm +++ b/scripts/bruno.asm @@ -76,7 +76,7 @@ BrunoScript0: ; 76339 (1d:6339) jr z, BrunoScript_7631d .asm_7635d ld a, $2 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, D_UP ld [wSimulatedJoypadStatesEnd], a @@ -112,7 +112,7 @@ BrunoScript2: ; 76396 (1d:6396) cp $ff jp z, BrunoScript_7630d ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID BrunoTextPointers: ; 763a8 (1d:63a8) diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm index 3bcdf3a3..b9c006d1 100755 --- a/scripts/celadongamecorner.asm +++ b/scripts/celadongamecorner.asm @@ -58,10 +58,10 @@ CeladonGameCornerScript1: ; 48c19 (12:4c19) ld a, $f0 ld [wJoyIgnore], a ld a, $d - ld [H_SPRITEHEIGHT], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $b - ld [H_SPRITEHEIGHT], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld de, MovementData_48c5a ld a, [W_YCOORD] @@ -76,7 +76,7 @@ CeladonGameCornerScript1: ; 48c19 (12:4c19) ld de, MovementData_48c63 .asm_48c4d ld a, $b - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $2 ld [W_CELADONGAMECORNERCURSCRIPT], a diff --git a/scripts/celadongym.asm b/scripts/celadongym.asm index 4793bf14..b978b272 100755 --- a/scripts/celadongym.asm +++ b/scripts/celadongym.asm @@ -44,7 +44,7 @@ CeladonGymScript3: ; 48956 (12:4956) CeladonGymText_48963: ; 48963 (12:4963) ld a, $9 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd77c set 1, [hl] @@ -52,14 +52,14 @@ CeladonGymText_48963: ; 48963 (12:4963) call GiveItem jr nc, .BagFull ld a, $a - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd77c set 0, [hl] jr .asm_4898c .BagFull ld a, $b - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_4898c ld hl, W_OBTAINEDBADGES diff --git a/scripts/ceruleancity.asm b/scripts/ceruleancity.asm index 3565b809..20873a81 100755 --- a/scripts/ceruleancity.asm +++ b/scripts/ceruleancity.asm @@ -28,7 +28,7 @@ CeruleanCityScript4: ; 194a7 (6:54a7) ld hl, wd75b set 7, [hl] ld a, $2 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -55,7 +55,7 @@ CeruleanCityScript0: ; 194c8 (6:54c8) ld [wSpriteStateData1 + $29], a call Delay3 ld a, $2 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID .asm_194f7 ld a, [wd75a] @@ -82,9 +82,9 @@ CeruleanCityScript0: ; 194c8 (6:54c8) cp $14 jr z, .asm_19535 ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a ld a, $5 - ld [$ff8b], a + ld [H_SPRITEDATAOFFSET], a call GetPointerWithinSpriteStateData2 ld [hl], $19 .asm_19535 @@ -93,7 +93,7 @@ CeruleanCityScript0: ; 194c8 (6:54c8) predef ShowObject ld de, CeruleanCityMovement1 ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $1 ld [W_CERULEANCITYCURSCRIPT], a @@ -117,9 +117,9 @@ CeruleanCityMovement1: ; 19559 (6:5559) CeruleanCityScript_1955d: ; 1955d (6:555d) ld a,1 - ld [$ff8c],a + ld [H_SPRITEINDEX],a xor a ; SPRITE_FACING_DOWN - ld [$ff8d],a + ld [hSpriteFacingDirection],a jp SetSpriteFacingDirectionAndDelay ; face object CeruleanCityScript1: ; 19567 (6:5567) @@ -129,7 +129,7 @@ CeruleanCityScript1: ; 19567 (6:5567) xor a ld [wJoyIgnore], a ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd72d set 6, [hl] @@ -173,14 +173,14 @@ CeruleanCityScript2: ; 195b1 (6:55b1) ld hl, wd75a set 0, [hl] ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wc0ee], a call PlaySound callba Music_RivalAlternateStart ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld a, [W_XCOORD] cp $14 @@ -191,7 +191,7 @@ CeruleanCityScript2: ; 195b1 (6:55b1) ld de, CeruleanCityMovement3 .asm_195f3 ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $3 ld [W_CERULEANCITYCURSCRIPT], a @@ -295,7 +295,7 @@ CeruleanCityText2: ; 1967c (6:567c) ld hl, CeruleanCityText_196ee ld de, CeruleanCityText_196ee call SaveEndBattleTextPointers - ld a, [$ff8c] + ld a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters diff --git a/scripts/ceruleangym.asm b/scripts/ceruleangym.asm index a6cb4c64..2343af03 100755 --- a/scripts/ceruleangym.asm +++ b/scripts/ceruleangym.asm @@ -44,7 +44,7 @@ CeruleanGymScript3: ; 5c700 (17:4700) CeruleanGymScript_5c70d: ; 5c70d (17:470d) ld a, $5 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd75e set 7, [hl] @@ -52,14 +52,14 @@ CeruleanGymScript_5c70d: ; 5c70d (17:470d) call GiveItem jr nc, .BagFull ld a, $6 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd75e set 6, [hl] jr .asm_5c736 .BagFull ld a, $7 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_5c736 ld hl, W_OBTAINEDBADGES diff --git a/scripts/cinnabargym.asm b/scripts/cinnabargym.asm index b3d6def6..dbede0d3 100755 --- a/scripts/cinnabargym.asm +++ b/scripts/cinnabargym.asm @@ -37,7 +37,7 @@ CinnabarGymScript_75792: ; 75792 (1d:5792) ret CinnabarGymScript_757a0: ; 757a0 (1d:57a0) - ld a, [H_DOWNARROWBLINKCNT2] + ld a, [hSpriteIndexOrTextID] ld [wTrainerHeaderFlagBit], a ret @@ -51,7 +51,7 @@ CinnabarGymScript0: ; 757ae (1d:57ae) ld a, [wda38] and a ret z - ld [$ff8c], a + ld [H_SPRITEINDEX], a cp $4 jr nz, .asm_757c3 ld a, $4 @@ -86,7 +86,7 @@ CinnabarGymScript1: ; 757dc (1d:57dc) ld [wJoyIgnore], a ld a, [wda38] ld [wTrainerHeaderFlagBit], a - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID CinnabarGymScript_757f1: ; 757f1 (1d:57f1) @@ -139,7 +139,7 @@ CinnabarGymScript3: ; 7584a (1d:584a) ld [wJoyIgnore], a CinnabarGymScript3_75857: ; 75857 (1d:5857) ld a, $a - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd79a set 1, [hl] @@ -147,14 +147,14 @@ CinnabarGymScript3_75857: ; 75857 (1d:5857) call GiveItem jr nc, .BagFull ld a, $b - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd79a set 0, [hl] jr .asm_75880 .BagFull ld a, $c - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_75880 ld hl, W_OBTAINEDBADGES @@ -189,7 +189,7 @@ CinnabarGymTextPointers: ; 7589f (1d:589f) dw TM38NoRoomText CinnabarGymScript_758b7: ; 758b7 (1d:58b7) - ld a, [H_DOWNARROWBLINKCNT2] + ld a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters diff --git a/scripts/cinnabarisland.asm b/scripts/cinnabarisland.asm index 33a497c4..70ea25a5 100755 --- a/scripts/cinnabarisland.asm +++ b/scripts/cinnabarisland.asm @@ -27,7 +27,7 @@ CinnabarIslandScript0: ; 1ca38 (7:4a38) ld a, $8 ld [wd528], a ld a, $8 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [hJoyHeld], a diff --git a/scripts/fightingdojo.asm b/scripts/fightingdojo.asm index 1b118f55..8a4a0464 100755 --- a/scripts/fightingdojo.asm +++ b/scripts/fightingdojo.asm @@ -45,12 +45,12 @@ FightingDojoScript1: ; 5cd83 (17:4d83) ld a, $1 ld [wd528], a ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_LEFT - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ret @@ -64,9 +64,9 @@ FightingDojoScript3: ; 5cdc6 (17:4dc6) ld a, $1 ld [wd528], a ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_LEFT - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay .asm_5cde4 @@ -76,7 +76,7 @@ FightingDojoScript3: ; 5cdc6 (17:4dc6) or $3e ld [wd7b1], a ld a, $8 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -148,7 +148,7 @@ FightingDojoText1: ; 5ce44 (17:4e44) ld hl, FightingDojoText_5ce93 ld de, FightingDojoText_5ce93 call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ld a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters diff --git a/scripts/fuchsiagym.asm b/scripts/fuchsiagym.asm index f88f0055..843e7293 100755 --- a/scripts/fuchsiagym.asm +++ b/scripts/fuchsiagym.asm @@ -44,7 +44,7 @@ FuchsiaGymScript3: ; 7548a (1d:548a) ld [wJoyIgnore], a FuchsiaGymScript3_75497: ; 75497 (1d:5497) ld a, $9 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd792 set 1, [hl] @@ -52,14 +52,14 @@ FuchsiaGymScript3_75497: ; 75497 (1d:5497) call GiveItem jr nc, .BagFull ld a, $a - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd792 set 0, [hl] jr .asm_754c0 .BagFull ld a, $b - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_754c0 ld hl, W_OBTAINEDBADGES diff --git a/scripts/fuchsiahouse2.asm b/scripts/fuchsiahouse2.asm index 12b49297..f758b49e 100755 --- a/scripts/fuchsiahouse2.asm +++ b/scripts/fuchsiahouse2.asm @@ -3,7 +3,7 @@ FuchsiaHouse2Script: ; 750b5 (1d:50b5) FuchsiaHouse2TextPointers: ; 750b8 (1d:50b8) dw FuchsiaHouse2Text1 - dw Predef5CText + dw PickUpItemText dw BoulderText dw FuchsiaHouse2Text4 dw FuchsiaHouse2Text5 diff --git a/scripts/gary.asm b/scripts/gary.asm index 59989b5f..476a59b0 100755 --- a/scripts/gary.asm +++ b/scripts/gary.asm @@ -55,7 +55,7 @@ GaryScript2: ; 75f6a (1d:5f6a) ld hl, W_OPTIONS res 7, [hl] ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld hl, wd72d @@ -99,10 +99,10 @@ GaryScript3: ; 75fbb (1d:5fbb) ld a, $f0 ld [wJoyIgnore], a ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld a, $4 ld [W_GARYCURSCRIPT], a @@ -111,14 +111,14 @@ GaryScript3: ; 75fbb (1d:5fbb) GaryScript4: ; 75fe4 (1d:5fe4) callba Music_Cities1AlternateTempo ld a, $2 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld de, MovementData_76014 ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, HS_CHAMPIONS_ROOM_OAK ld [wcc4d], a @@ -142,17 +142,17 @@ GaryScript5: ; 7601a (1d:601a) ld a, $2 ld [wd528], a ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_LEFT - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a xor a ; SPRITE_FACING_DOWN - ld [$ff8d], a - call SetSpriteFacingDirectionAndDelay ; face object + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay ld a, $3 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $6 ld [W_GARYCURSCRIPT], a @@ -160,12 +160,12 @@ GaryScript5: ; 7601a (1d:601a) GaryScript6: ; 76047 (1d:6047) ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_RIGHT - ld [$ff8d], a - call SetSpriteFacingDirectionAndDelay ; face object + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay ld a, $4 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $7 ld [W_GARYCURSCRIPT], a @@ -173,16 +173,16 @@ GaryScript6: ; 76047 (1d:6047) GaryScript7: ; 7605f (1d:605f) ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a xor a ; SPRITE_FACING_DOWN - ld [$ff8d], a - call SetSpriteFacingDirectionAndDelay ; face object + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay ld a, $5 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call GaryScript_760c8 ld de, MovementData_76080 ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $8 ld [W_GARYCURSCRIPT], a diff --git a/scripts/halloffameroom.asm b/scripts/halloffameroom.asm index cb2c1fad..680ebdd9 100755 --- a/scripts/halloffameroom.asm +++ b/scripts/halloffameroom.asm @@ -83,10 +83,10 @@ HallofFameRoomScript1: ; 5a52b (16:652b) ld a, $1 ld [wd528], a ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF - ld a, SPRITE_FACING_LEFT - ld [$ff8d], a + ld a, $8 + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay call Delay3 xor a @@ -94,7 +94,7 @@ HallofFameRoomScript1: ; 5a52b (16:652b) inc a ld [wd528], a ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wJoyIgnore], a diff --git a/scripts/lance.asm b/scripts/lance.asm index c11bec2f..e335914b 100755 --- a/scripts/lance.asm +++ b/scripts/lance.asm @@ -64,7 +64,7 @@ LanceScript0: ; 5a305 (16:6305) cp $3 jr nc, .asm_5a325 ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID .asm_5a325 cp $5 @@ -93,7 +93,7 @@ LanceScript2: ; 5a349 (16:6349) cp $ff jp z, LanceScript_5a2f5 ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID LanceScript_5a35b: ; 5a35b (16:635b) diff --git a/scripts/lorelei.asm b/scripts/lorelei.asm index 7e800467..1f1fcde0 100755 --- a/scripts/lorelei.asm +++ b/scripts/lorelei.asm @@ -77,7 +77,7 @@ LoreleiScript0: ; 761e2 (1d:61e2) jr z, LoreleiScript_761c6 .asm_76206 ld a, $2 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, D_UP ld [wSimulatedJoypadStatesEnd], a @@ -112,7 +112,7 @@ LoreleiScript2: ; 7623f (1d:623f) cp $ff jp z, LoreleiScript_761b6 ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID LoreleiTextPointers: ; 76251 (1d:6251) diff --git a/scripts/mansion1.asm b/scripts/mansion1.asm index d658b425..6673e03b 100755 --- a/scripts/mansion1.asm +++ b/scripts/mansion1.asm @@ -53,7 +53,7 @@ Mansion1Script_Switches: ; 44316 (11:4316) xor a ld [hJoyHeld], a ld a, $4 - ld [H_SPRITEHEIGHT], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID Mansion1ScriptPointers: ; 44326 (11:4326) @@ -63,8 +63,8 @@ Mansion1ScriptPointers: ; 44326 (11:4326) Mansion1TextPointers: ; 4432c (11:432c) dw Mansion1Text1 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText dw Mansion1Text4 Mansion1TrainerHeaders: ; 44334 (11:4334) diff --git a/scripts/mansion2.asm b/scripts/mansion2.asm index 40827be1..27ccbdfb 100755 --- a/scripts/mansion2.asm +++ b/scripts/mansion2.asm @@ -49,7 +49,7 @@ Mansion2Script_Switches: ; 52037 (14:6037) xor a ld [hJoyHeld], a ld a, $5 - ld [H_SPRITEHEIGHT], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID Mansion2ScriptPointers: ; 52047 (14:6047) @@ -59,7 +59,7 @@ Mansion2ScriptPointers: ; 52047 (14:6047) Mansion2TextPointers: ; 5204d (14:604d) dw Mansion2Text1 - dw Predef5CText + dw PickUpItemText dw Mansion2Text3 dw Mansion2Text4 dw Mansion2Text5 diff --git a/scripts/mansion3.asm b/scripts/mansion3.asm index dfecde99..fa31718f 100755 --- a/scripts/mansion3.asm +++ b/scripts/mansion3.asm @@ -80,14 +80,14 @@ Mansion3Script_Switches: ; 5227a (14:627a) xor a ld [hJoyHeld], a ld a, $6 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID Mansion3TextPointers: ; 5228a (14:628a) dw Mansion3Text1 dw Mansion3Text2 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText dw Mansion3Text5 dw Mansion3Text6 diff --git a/scripts/mansion4.asm b/scripts/mansion4.asm index c23cb2d7..68e74fd5 100755 --- a/scripts/mansion4.asm +++ b/scripts/mansion4.asm @@ -51,7 +51,7 @@ Mansion4Script_Switches: ; 52420 (14:6420) xor a ld [hJoyHeld], a ld a, $9 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID Mansion4ScriptPointers: ; 52430 (14:6430) @@ -62,12 +62,12 @@ Mansion4ScriptPointers: ; 52430 (14:6430) Mansion4TextPointers: ; 52436 (14:6436) dw Mansion4Text1 dw Mansion4Text2 - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText dw Mansion4Text7 - dw Predef5CText + dw PickUpItemText dw Mansion3Text6 Mansion4TrainerHeaders: ; 52448 (14:6448) diff --git a/scripts/mtmoon1.asm b/scripts/mtmoon1.asm index 6c9fcd88..868b70d1 100755 --- a/scripts/mtmoon1.asm +++ b/scripts/mtmoon1.asm @@ -20,12 +20,12 @@ MtMoon1TextPointers: ; 499e1 (12:59e1) dw MtMoon1Text5 dw MtMoon1Text6 dw MtMoon1Text7 - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText dw MtMoon1Text14 MtMoon1TrainerHeaders: ; 499fd (12:59fd) diff --git a/scripts/mtmoon3.asm b/scripts/mtmoon3.asm index 7c6e987e..ee163738 100755 --- a/scripts/mtmoon3.asm +++ b/scripts/mtmoon3.asm @@ -66,7 +66,7 @@ MtMoon3Script0: ; 49d6f (12:5d6f) xor a ld [hJoyHeld], a ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID MtMoon3Script_49d91: ; 49d91 (12:5d91) @@ -92,7 +92,7 @@ MtMoon3Script3: ; 49d9a (12:5d9a) MtMoon3Script4: ; 49dba (12:5dba) ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld hl, CoordsData_49dea call ArePlayerCoordsInArray @@ -106,7 +106,7 @@ MtMoon3Script4: ; 49dba (12:5dba) ld de, MovementData_49df8 .asm_49dda ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $5 ld [W_MTMOON3CURSCRIPT], a @@ -140,7 +140,7 @@ MtMoon3Script5: ; 49dfb (12:5dfb) ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $a - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, [wd7f6] bit 6, a @@ -167,8 +167,8 @@ MtMoon3TextPointers: ; 49e34 (12:5e34) dw MtMoon3Text5 dw MtMoon3Text6 dw MtMoon3Text7 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText dw MtMoon3Text_49f99 MtMoon3TrainerHeaders: ; 49e48 (12:5e48) diff --git a/scripts/museum1f.asm b/scripts/museum1f.asm index 26c7f02d..38c3f717 100755 --- a/scripts/museum1f.asm +++ b/scripts/museum1f.asm @@ -25,7 +25,7 @@ Museum1FScript0: ; 5c10d (17:410d) xor a ld [hJoyHeld], a ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID Museum1FScript1: ; 5c12a (17:412a) @@ -69,7 +69,7 @@ Museum1FText1: ; 5c135 (17:4135) call PrintText jp Museum1FScriptEnd .asm_3ded4 - ld a, $13 + ld a, MONEY_BOX ld [wTextBoxID], a call DisplayTextBoxID xor a @@ -96,15 +96,15 @@ Museum1FText1: ; 5c135 (17:4135) ld hl, wd754 set 0, [hl] xor a - ld [wWhichTrade], a - ld [wTrainerEngageDistance], a + ld [wMuseumPriceTemp], a + ld [wMuseumPriceTemp + 1], a ld a, $50 - ld [wTrainerFacingDirection], a - ld hl, wTrainerFacingDirection + ld [wMuseumPriceTemp + 2], a + ld hl, wMuseumPriceTemp + 2 ld de, wPlayerMoney + 2 ld c, $3 predef SubBCDPredef - ld a, $13 + ld a, MONEY_BOX ld [wTextBoxID], a call DisplayTextBoxID ld a, (SFX_02_5a - SFX_Headers_02) / 3 diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index 992b6887..5463b879 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -89,13 +89,13 @@ OaksLabScript3: ; 1cba2 (7:4ba2) call StartSimulatingJoypadStates ld a, $1 ld [H_SPRITEINDEX], a - xor a ; SPRITE_FACING_DOWN - ld [$ff8d], a + xor a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $5 ld [H_SPRITEINDEX], a - xor a ; SPRITE_FACING_DOWN - ld [$ff8d], a + xor a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $4 @@ -117,7 +117,7 @@ OaksLabScript4: ; 1cbd2 (7:4bd2) ld a, $1 ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_UP - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay call UpdateSprites ld hl, W_FLAGS_D733 @@ -132,19 +132,19 @@ OaksLabScript5: ; 1cbfd (7:4bfd) ld a, $fc ld [wJoyIgnore], a ld a, $11 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld a, $12 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld a, $13 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld a, $14 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd74b set 1, [hl] @@ -162,16 +162,16 @@ OaksLabScript6: ; 1cc36 (7:4c36) ld a, $5 ld [H_SPRITEINDEX], a xor a ; SPRITE_FACING_DOWN - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $1 ld [H_SPRITEINDEX], a xor a - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay call UpdateSprites ld a, $c - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 ld [wSimulatedJoypadStatesIndex], a @@ -261,7 +261,7 @@ OaksLabScript8: ; 1cc80 (7:4c80) ld a, $1 ld [H_SPRITEINDEX], a ld a, $4 - ld [$ff8b], a + ld [H_SPRITEDATAOFFSET], a call GetPointerWithinSpriteStateData1 push hl ld [hl], $4c @@ -302,10 +302,10 @@ OaksLabScript9: ; 1cd00 (7:4d00) ld a, $1 ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_UP - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $d - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, [wTrainerEngageDistance] cp $2 @@ -331,10 +331,10 @@ OaksLabScript9: ; 1cd00 (7:4d00) ld a, $1 ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_UP - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $e - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd74b set 2, [hl] @@ -352,7 +352,7 @@ OaksLabScript10: ; 1cd6d (7:4d6d) ld a, $1 ld [H_SPRITEINDEX], a xor a ; SPRITE_FACING_DOWN - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $8 ld [wd528], a @@ -360,7 +360,7 @@ OaksLabScript10: ; 1cd6d (7:4d6d) ld a, MUSIC_MEET_RIVAL call PlayMusic ld a, $f - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 ld [hNPCPlayerRelativePosPerspective], a @@ -432,7 +432,7 @@ OaksLabScript12: ; 1ce03 (7:4e03) ld a, $1 ld [H_SPRITEINDEX], a xor a ; SPRITE_FACING_DOWN - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay predef HealParty ld hl, wd74b @@ -446,7 +446,7 @@ OaksLabScript13: ; 1ce32 (7:4e32) ld c, 20 call DelayFrames ld a, $10 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID callba Music_RivalAlternateStart ld a, $1 @@ -522,7 +522,7 @@ OaksLabScript15: ; 1ceb0 (7:4eb0) call PlaySound callba Music_RivalAlternateStart ld a, $15 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call OaksLabScript_1d02b ld a, HS_OAKS_LAB_RIVAL @@ -549,12 +549,12 @@ OaksLabScript_1cefd: ; 1cefd (7:4efd) ld a, $1 ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_UP - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $8 ld [H_SPRITEINDEX], a xor a ; SPRITE_FACING_DOWN - ld [$ff8d], a + ld [hSpriteFacingDirection], a jp SetSpriteFacingDirectionAndDelay OaksLabScript16: ; 1cf12 (7:4f12) @@ -567,21 +567,21 @@ OaksLabScript16: ; 1cf12 (7:4f12) ld [wJoyIgnore], a call OaksLabScript_1cefd ld a, $16 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call DelayFrame call OaksLabScript_1cefd ld a, $17 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call DelayFrame call OaksLabScript_1cefd ld a, $18 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call DelayFrame ld a, $19 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld a, HS_POKEDEX_1 @@ -592,16 +592,16 @@ OaksLabScript16: ; 1cf12 (7:4f12) predef HideObject call OaksLabScript_1cefd ld a, $1a - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_RIGHT - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay call Delay3 ld a, $1b - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd74b set 5, [hl] @@ -856,13 +856,13 @@ OaksLabScript_1d157: ; 1d157 (7:5157) ld a, $5 ld [H_SPRITEINDEX], a ld a, $9 - ld [$ff8b], a + ld [H_SPRITEDATAOFFSET], a call GetPointerWithinSpriteStateData1 ld [hl], $0 ld a, $1 ld [H_SPRITEINDEX], a ld a, $9 - ld [$ff8b], a + ld [H_SPRITEDATAOFFSET], a call GetPointerWithinSpriteStateData1 ld [hl], $c ld hl, wd730 @@ -962,7 +962,7 @@ OaksLabScript_1d22d: ; 1d22d (7:522d) ld a, $5 ld [H_SPRITEINDEX], a ld a, $9 - ld [$ff8b], a + ld [H_SPRITEDATAOFFSET], a call GetPointerWithinSpriteStateData1 ld [hl], $0 ld hl, OaksLabLastMonText diff --git a/scripts/pallettown.asm b/scripts/pallettown.asm index 5b042066..327a32ff 100755 --- a/scripts/pallettown.asm +++ b/scripts/pallettown.asm @@ -67,7 +67,7 @@ PalletTownScript2: ; 18ed2 (6:4ed2) ld a,1 ld [H_SPRITEINDEX],a ld a,SPRITE_FACING_UP - ld [$FF8D],a + ld [hSpriteFacingDirection],a call SetSpriteFacingDirectionAndDelay call Delay3 ld a,1 diff --git a/scripts/pewtercity.asm b/scripts/pewtercity.asm index 460eab5c..94d23caa 100755 --- a/scripts/pewtercity.asm +++ b/scripts/pewtercity.asm @@ -31,7 +31,7 @@ PewterCityScript_1925e: ; 1925e (6:525e) ld a, $f0 ld [wJoyIgnore], a ld a, $5 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID CoordsData_19277: ; 19277 (6:5277) @@ -48,16 +48,16 @@ PewterCityScript1: ; 19280 (6:5280) ld a, $3 ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_UP - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, ($3 << 4) | SPRITE_FACING_UP - ld [$ff8d], a + ld [hSpriteImageIndex], a call SetSpriteImageIndexAfterSettingFacingDirection call PlayDefaultMusic ld hl, wFlags_0xcd60 set 4, [hl] ld a, $d - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $3c ld [$ffeb], a @@ -71,7 +71,7 @@ PewterCityScript1: ; 19280 (6:5280) ld [wSpriteIndex], a call SetSpritePosition1 ld a, $3 - ld [$ff8c], a + ld [H_SPRITEINDEX], a ld de, MovementData_PewterMuseumGuyExit call MoveSprite ld a, $2 @@ -114,18 +114,18 @@ PewterCityScript4: ; 19305 (6:5305) and a ret nz ld a, $5 - ld [$ff8c], a + ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_LEFT - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, ($1 << 4) | SPRITE_FACING_LEFT - ld [$ff8d], a + ld [hSpriteImageIndex], a call SetSpriteImageIndexAfterSettingFacingDirection call PlayDefaultMusic ld hl, wFlags_0xcd60 set 4, [hl] ld a, $e - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $3c ld [$ffeb], a @@ -139,7 +139,7 @@ PewterCityScript4: ; 19305 (6:5305) ld [wSpriteIndex], a call SetSpritePosition1 ld a, $5 - ld [$ff8c], a + ld [H_SPRITEINDEX], a ld de, MovementData_PewterGymGuyExit call MoveSprite ld a, $5 diff --git a/scripts/pewtergym.asm b/scripts/pewtergym.asm index f4b2ad28..9f1493d4 100755 --- a/scripts/pewtergym.asm +++ b/scripts/pewtergym.asm @@ -44,7 +44,7 @@ PewterGymScript3: ; 5c3d2 (17:43d2) PewterGymScript_5c3df: ; 5c3df (17:43df) ld a, $4 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd755 set 7, [hl] @@ -52,14 +52,14 @@ PewterGymScript_5c3df: ; 5c3df (17:43df) call GiveItem jr nc, .BagFull ld a, $5 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd755 set 6, [hl] jr .asm_5c408 .BagFull ld a, $6 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_5c408 ld hl, W_OBTAINEDBADGES diff --git a/scripts/pokemontower2.asm b/scripts/pokemontower2.asm index 286b8202..8520b10b 100755 --- a/scripts/pokemontower2.asm +++ b/scripts/pokemontower2.asm @@ -31,7 +31,7 @@ PokemonTower2Script0: ; 6050f (18:450f) call PlayMusic ld hl, wd764 res 6, [hl] - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 ld a, $8 ld b, SPRITE_FACING_DOWN @@ -43,12 +43,12 @@ PokemonTower2Script0: ; 6050f (18:450f) .asm_60544 ld [wd528], a ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a ld a, b - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [hJoyHeld], a @@ -69,7 +69,7 @@ PokemonTower2Script1: ; 60563 (18:4563) ld hl, wd764 set 7, [hl] ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld de, MovementData_605b2 ld a, [wd764] @@ -78,7 +78,7 @@ PokemonTower2Script1: ; 60563 (18:4563) ld de, MovementData_605a9 .asm_60589 ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $ff ld [wc0ee], a diff --git a/scripts/pokemontower3.asm b/scripts/pokemontower3.asm index 2cf58381..9d08aec4 100755 --- a/scripts/pokemontower3.asm +++ b/scripts/pokemontower3.asm @@ -16,7 +16,7 @@ PokemonTower3TextPointers: ; 606e5 (18:46e5) dw PokemonTower3Text1 dw PokemonTower3Text2 dw PokemonTower3Text3 - dw Predef5CText + dw PickUpItemText PokemonTower3TrainerHeaders: ; 606ed (18:46ed) PokemonTower3TrainerHeader0: ; 606ed (18:46ed) diff --git a/scripts/pokemontower4.asm b/scripts/pokemontower4.asm index 4f375657..c4732397 100755 --- a/scripts/pokemontower4.asm +++ b/scripts/pokemontower4.asm @@ -16,9 +16,9 @@ PokemonTower4TextPointers: ; 6080f (18:480f) dw PokemonTower4Text1 dw PokemonTower4Text2 dw PokemonTower4Text3 - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText PokemonTower4TrainerHeaders: ; 6081b (18:481b) PokemonTower4TrainerHeader0: ; 6081b (18:481b) diff --git a/scripts/pokemontower5.asm b/scripts/pokemontower5.asm index 34dd3204..9ef5d419 100755 --- a/scripts/pokemontower5.asm +++ b/scripts/pokemontower5.asm @@ -38,7 +38,7 @@ PokemonTower5Script0: ; 6094b (18:494b) call Delay3 call GBFadeInFromWhite ld a, $7 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -57,7 +57,7 @@ PokemonTower5TextPointers: ; 6099b (18:499b) dw PokemonTower5Text3 dw PokemonTower5Text4 dw PokemonTower5Text5 - dw Predef5CText + dw PickUpItemText dw PokemonTower5Text7 PokemonTower5TrainerHeaders: ; 609a9 (18:49a9) diff --git a/scripts/pokemontower6.asm b/scripts/pokemontower6.asm index e0e75cb1..e9412fb0 100755 --- a/scripts/pokemontower6.asm +++ b/scripts/pokemontower6.asm @@ -31,7 +31,7 @@ PokemonTower6Script0: ; 60b17 (18:4b17) xor a ld [hJoyHeld], a ld a, $6 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, MAROWAK ld [W_CUROPPONENT], a @@ -63,7 +63,7 @@ PokemonTower6Script4: ; 60b48 (18:4b48) ld hl, wd768 set 7, [hl] ld a, $7 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -100,8 +100,8 @@ PokemonTower6TextPointers: ; 60bb1 (18:4bb1) dw PokemonTower6Text1 dw PokemonTower6Text2 dw PokemonTower6Text3 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText dw PokemonTower6Text6 dw PokemonTower6Text7 diff --git a/scripts/pokemontower7.asm b/scripts/pokemontower7.asm index 0f9741ab..60635f20 100755 --- a/scripts/pokemontower7.asm +++ b/scripts/pokemontower7.asm @@ -31,7 +31,7 @@ PokemonTower7Script2: ; 60d23 (18:4d23) ld a, $f0 ld [wJoyIgnore], a ld a, [wSpriteIndex] - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call PokemonTower7Script_60db6 ld a, $3 @@ -72,7 +72,7 @@ PokemonTower7Script4: ; 60d86 (18:4d86) ld a, SPRITE_FACING_UP ld [wSpriteStateData1 + 9], a ld a, LAVENDER_HOUSE_1 - ld [H_DOWNARROWBLINKCNT1], a + ld [hWarpDestinationMap], a ld a, $1 ld [wDestinationWarpID], a ld a, LAVENDER_TOWN @@ -107,7 +107,7 @@ PokemonTower7Script_60db6: ; 60db6 (18:4db6) ld d, [hl] ld e, a ld a, [wSpriteIndex] - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a jp MoveSprite .asm_60dde inc hl diff --git a/scripts/powerplant.asm b/scripts/powerplant.asm index 25597654..0026d525 100755 --- a/scripts/powerplant.asm +++ b/scripts/powerplant.asm @@ -22,11 +22,11 @@ PowerPlantTextPointers: ; 1e2df (7:62df) dw PowerPlantText7 dw PowerPlantText8 dw PowerPlantText9 - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText PowerPlantTrainerHeaders: ; 1e2fb (7:62fb) PowerPlantTrainerHeader0: ; 1e2fb (7:62fb) diff --git a/scripts/rockethideout1.asm b/scripts/rockethideout1.asm index fe5a47e6..967ab77b 100755 --- a/scripts/rockethideout1.asm +++ b/scripts/rockethideout1.asm @@ -43,8 +43,8 @@ RocketHideout1TextPointers: ; 44c14 (11:4c14) dw RocketHideout1Text3 dw RocketHideout1Text4 dw RocketHideout1Text5 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText RocketHideout1TrainerHeaders: ; 44c22 (11:4c22) RocketHideout1TrainerHeader0: ; 44c22 (11:4c22) diff --git a/scripts/rockethideout2.asm b/scripts/rockethideout2.asm index bb4dd3ec..c2184bdb 100755 --- a/scripts/rockethideout2.asm +++ b/scripts/rockethideout2.asm @@ -415,10 +415,10 @@ SpinnerArrowAnimTiles: ; 45087 (11:5087) RocketHideout2TextPointers: ; 450c7 (11:50c7) dw RocketHideout2Text1 - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText RocketHideout2TrainerHeaders: ; 450d1 (11:50d1) RocketHideout2TrainerHeader0: ; 450d1 (11:50d1) diff --git a/scripts/rockethideout3.asm b/scripts/rockethideout3.asm index f2f7ed91..b025acd0 100755 --- a/scripts/rockethideout3.asm +++ b/scripts/rockethideout3.asm @@ -146,8 +146,8 @@ RocketHideout3Script3: ; 452e4 (11:452e4) RocketHideout3TextPointers: ; 452fa (11:52fa) dw RocketHideout3Text1 dw RocketHideout3Text2 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText RocketHideout3TrainerHeaders: ; 45302 (11:5302) RocketHideout3TrainerHeader0: ; 45302 (11:5302) diff --git a/scripts/rockethideout4.asm b/scripts/rockethideout4.asm index 613e2476..635c6095 100755 --- a/scripts/rockethideout4.asm +++ b/scripts/rockethideout4.asm @@ -56,7 +56,7 @@ RocketHideout4Script3: ; 454b6 (11:54b6) ld hl, wd81b set 7, [hl] ld a, $a - ld [H_SPRITEHEIGHT], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call GBFadeOutToBlack ld a, HS_ROCKET_HIDEOUT_4_GIOVANNI @@ -81,11 +81,11 @@ RocketHideout4TextPointers: ; 45501 (11:5501) dw RocketHideout4Text2 dw RocketHideout4Text3 dw RocketHideout4Text4 - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText dw RocketHideout4Text10 RocketHideout4TrainerHeaders: ; 45515 (11:5515) diff --git a/scripts/route12.asm b/scripts/route12.asm index eed676b3..8fe9d8f7 100755 --- a/scripts/route12.asm +++ b/scripts/route12.asm @@ -28,7 +28,7 @@ Route12Script0: ; 59619 (16:5619) res 6, [hl] jp z, CheckFightingMapTrainers ld a, $d - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, SNORLAX ld [W_CUROPPONENT], a @@ -51,7 +51,7 @@ Route12Script3: ; 5964c (16:564c) cp $2 jr z, .asm_59664 ld a, $e - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_59664 ld hl, wd7d8 @@ -71,8 +71,8 @@ Route12TextPointers: ; 59675 (16:5675) dw Route12Text6 dw Route12Text7 dw Route12Text8 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText dw Route12Text11 dw Route12Text12 dw Route12Text13 diff --git a/scripts/route15.asm b/scripts/route15.asm index 3aa23bbb..fe70d2b4 100755 --- a/scripts/route15.asm +++ b/scripts/route15.asm @@ -23,7 +23,7 @@ Route15TextPointers: ; 597c7 (16:57c7) dw Route15Text8 dw Route15Text9 dw Route15Text10 - dw Predef5CText + dw PickUpItemText dw Route15Text12 Route15TrainerHeaders: ; 597df (16:57df) diff --git a/scripts/route16.asm b/scripts/route16.asm index b6c49a96..cdf436a5 100755 --- a/scripts/route16.asm +++ b/scripts/route16.asm @@ -28,7 +28,7 @@ Route16Script0: ; 59959 (16:5959) res 0, [hl] jp z, CheckFightingMapTrainers ld a, $a - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, SNORLAX ld [W_CUROPPONENT], a @@ -52,7 +52,7 @@ Route16Script3: ; 5998f (16:598f) cp $2 jr z, .asm_599a8 ld a, $b - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_599a8 ld hl, wd7e0 diff --git a/scripts/route16gate.asm b/scripts/route16gate.asm index 8e3d8e5b..801e577e 100755 --- a/scripts/route16gate.asm +++ b/scripts/route16gate.asm @@ -19,14 +19,14 @@ Route16GateScript0: ; 496d7 (12:56d7) call ArePlayerCoordsInArray ret nc ld a, $3 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [hJoyHeld], a - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 jr z, .asm_4970e - ld a, [wWhichTrade] + ld a, [wCoordIndex] dec a ld [wSimulatedJoypadStatesIndex], a ld b, $0 @@ -59,7 +59,7 @@ Route16GateScript1: ; 4971d (12:571d) Route16GateScript2: ; 49727 (12:5727) ld a, $1 - ld [H_SPRITEHEIGHT], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 ld [wSimulatedJoypadStatesIndex], a diff --git a/scripts/route18gate.asm b/scripts/route18gate.asm index 0301327b..060a6bbf 100755 --- a/scripts/route18gate.asm +++ b/scripts/route18gate.asm @@ -19,17 +19,17 @@ Route18GateScript0: ; 4988f (12:588f) call ArePlayerCoordsInArray ret nc ld a, $2 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [hJoyHeld], a - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 jr z, .asm_498c6 - ld a, [wWhichTrade] + ld a, [wCoordIndex] dec a ld [wSimulatedJoypadStatesIndex], a - ld b, $0 + ld b, 0 ld c, a ld a, D_UP ld hl, wSimulatedJoypadStatesEnd @@ -59,7 +59,7 @@ Route18GateScript1: ; 498d5 (12:58d5) Route18GateScript2: ; 498df (12:58df) ld a, $1 - ld [H_SPRITEHEIGHT], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 ld [wSimulatedJoypadStatesIndex], a diff --git a/scripts/route2.asm b/scripts/route2.asm index fdc5eb6c..62ef3050 100755 --- a/scripts/route2.asm +++ b/scripts/route2.asm @@ -2,8 +2,8 @@ Route2Script: ; 554e3 (15:54e3) jp EnableAutoTextBoxDrawing Route2TextPointers: ; 554e6 (15:54e6) - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText dw Route2Text3 dw Route2Text4 diff --git a/scripts/route22.asm b/scripts/route22.asm index 84fb5634..f125030e 100755 --- a/scripts/route22.asm +++ b/scripts/route22.asm @@ -43,8 +43,8 @@ Route22MoveRivalSprite: ; 50ee6 (14:4ee6) inc de .asm_50ef1 call MoveSprite - ld a, $c - ld [$ff8d], a + ld a, SPRITE_FACING_RIGHT + ld [hSpriteFacingDirection], a jp SetSpriteFacingDirectionAndDelay Route22RivalMovementData: ; 50efb (14:4efb) @@ -61,7 +61,7 @@ Route22Script0: ; 50f00 (14:4f00) ld hl, .Route22RivalBattleCoords call ArePlayerCoordsInArray ret nc - ld a, [wWhichTrade] + ld a, [wCoordIndex] ld [wcf0d], a xor a ld [hJoyHeld], a @@ -98,7 +98,7 @@ Route22Script0: ; 50f00 (14:4f00) ld a, MUSIC_MEET_RIVAL call PlayMusic ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call Route22MoveRivalSprite ld a, $1 ld [W_ROUTE22CURSCRIPT], a @@ -113,19 +113,19 @@ Route22Script1: ; 50f62 (14:4f62) jr nz, .asm_50f78 ld a, $4 ld [wd528], a - ld a, $4 + ld a, SPRITE_FACING_UP jr .asm_50f7a .asm_50f78 - ld a, $c + ld a, SPRITE_FACING_RIGHT .asm_50f7a - ld [$ff8d], a + ld [hSpriteFacingDirection], a ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteFacingDirectionAndDelay xor a ld [wJoyIgnore], a ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd72d set 6, [hl] @@ -159,16 +159,16 @@ Route22Script2: ; 50fb5 (14:4fb5) .notDown ld a, SPRITE_FACING_RIGHT .done - ld [$ff8d], a + ld [hSpriteFacingDirection], a ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteFacingDirectionAndDelay ld a, $f0 ld [wJoyIgnore], a ld hl, wd7eb set 5, [hl] ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wc0ee], a @@ -194,7 +194,7 @@ Route22Script_5100d: ; 5100d (14:500d) ld de, Route22RivalExitMovementData2 Route22MoveRival1: ; 51010 (14:5010) ld a, $1 - ld [H_SPRITEHEIGHT], a + ld [H_SPRITEINDEX], a jp MoveSprite Route22RivalExitMovementData1: ; 51017 (14:5017) @@ -255,7 +255,7 @@ Route22Script_5104e: ; 5104e (14:504e) call PlaySound callba Music_RivalAlternateTempo ld a, $2 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a call Route22MoveRivalSprite ld a, $4 ld [W_ROUTE22CURSCRIPT], a @@ -266,25 +266,25 @@ Route22Script4: ; 51087 (14:5087) bit 0, a ret nz ld a, $2 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a ld a, [wcf0d] cp $1 jr nz, .asm_510a1 ld a, $4 ld [wd528], a - ld a, $4 + ld a, SPRITE_FACING_UP jr .asm_510a8 .asm_510a1 ld a, $2 ld [wd528], a - ld a, $c + ld a, SPRITE_FACING_RIGHT .asm_510a8 - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay xor a ld [wJoyIgnore], a ld a, $2 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd72d set 6, [hl] @@ -310,27 +310,27 @@ Route22Script5: ; 510df (14:50df) cp $ff jp z, Route22Script_50ece ld a, $2 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a ld a, [wcf0d] cp $1 jr nz, .asm_510fb ld a, $4 ld [wd528], a - ld a, $4 + ld a, SPRITE_FACING_UP jr .asm_51102 .asm_510fb ld a, $2 ld [wd528], a - ld a, $c + ld a, SPRITE_FACING_RIGHT .asm_51102 - ld [$ff8d], a + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $f0 ld [wJoyIgnore], a ld hl, wd7eb set 6, [hl] ld a, $2 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wc0ee], a @@ -356,7 +356,7 @@ Route22Script_51142: ; 51142 (14:5142) ld de, MovementData_5114d Route22MoveRival2: ; 51145 (14:5145) ld a, $2 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a jp MoveSprite MovementData_5114c: ; 5114c (14:514c) diff --git a/scripts/route22gate.asm b/scripts/route22gate.asm index 513a106b..8b24c820 100755 --- a/scripts/route22gate.asm +++ b/scripts/route22gate.asm @@ -24,7 +24,7 @@ Route22GateScript0: ; 1e6a4 (7:66a4) xor a ld [hJoyHeld], a ld a, $1 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID Route22GateScriptCoords: ; 1e6b5 (7:66b5) diff --git a/scripts/route23.asm b/scripts/route23.asm index 5ed038c2..eeaf2a2b 100755 --- a/scripts/route23.asm +++ b/scripts/route23.asm @@ -49,9 +49,9 @@ Route23Script0: ; 51219 (14:5219) ret nc .asm_51237 ld a, e - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a ld a, c - ld [wWhichTrade], a + ld [wWhichBadge], a ld b, $2 ld hl, wd7ed predef FlagActionPredef @@ -69,21 +69,21 @@ YCoordsData_51255: ; 51255 (14:5255) Route23Script_5125d: ; 5125d (14:525d) ld hl, BadgeTextPointers - ld a, [wWhichTrade] + ld a, [wWhichBadge] ld c, a - ld b, $0 + ld b, 0 add hl, bc add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, wcd6d -.asm_5126e +.copyTextLoop ld a, [hli] ld [de], a inc de - cp $50 - jr nz, .asm_5126e + cp "@" + jr nz, .copyTextLoop ret BadgeTextPointers: ; 51276 (14:5276) @@ -188,9 +188,9 @@ Route23Text7: ; 5133d (14:533d) jp TextScriptEnd Route23Script_51346: ; 51346 (14:5346) - ld [wWhichTrade], a + ld [wWhichBadge], a call Route23Script_5125d - ld a, [wWhichTrade] + ld a, [wWhichBadge] inc a ld c, a ld b, $2 @@ -208,7 +208,7 @@ Route23Script_51346: ; 51346 (14:5346) .asm_5136e ld hl, VictoryRoadGuardText2 call PrintText - ld a, [wWhichTrade] + ld a, [wWhichBadge] ld c, a ld b, $1 ld hl, wd7ed diff --git a/scripts/route24.asm b/scripts/route24.asm index 7bb9f3cd..f6822a35 100755 --- a/scripts/route24.asm +++ b/scripts/route24.asm @@ -31,7 +31,7 @@ Route24Script0: ; 513d5 (14:53d5) xor a ld [hJoyHeld], a ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd7f0 bit 1, [hl] @@ -70,7 +70,7 @@ Route24Script3: ; 51422 (14:5422) ld hl, wd7ef set 1, [hl] ld a, $1 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -87,7 +87,7 @@ Route24TextPointers: ; 5144b (14:544b) dw Route24Text5 dw Route24Text6 dw Route24Text7 - dw Predef5CText + dw PickUpItemText Route24TrainerHeaders: ; 5145b (14:545b) Route24TrainerHeader0: ; 5145b (14:545b) @@ -170,7 +170,7 @@ Route24Text1: ; 514a4 (14:54a4) ld hl, Route24Text_5152b ld de, Route24Text_5152b call SaveEndBattleTextPointers - ld a, [$ff8c] + ld a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters diff --git a/scripts/route25.asm b/scripts/route25.asm index 383652c8..5f544365 100755 --- a/scripts/route25.asm +++ b/scripts/route25.asm @@ -51,7 +51,7 @@ Route25TextPointers: ; 51628 (14:5628) dw Route25Text7 dw Route25Text8 dw Route25Text9 - dw Predef5CText + dw PickUpItemText dw Route25Text11 Route25TrainerHeaders: ; 5163e (14:563e) diff --git a/scripts/route4.asm b/scripts/route4.asm index c4a1e956..10d3882d 100755 --- a/scripts/route4.asm +++ b/scripts/route4.asm @@ -15,7 +15,7 @@ Route4ScriptPointers: ; 5566b (15:566b) Route4TextPointers: ; 55671 (15:5671) dw Route4Text1 dw Route4Text2 - dw Predef5CText + dw PickUpItemText dw PokeCenterSignText dw Route4Text5 dw Route4Text6 diff --git a/scripts/route5gate.asm b/scripts/route5gate.asm index 2c751fa8..1ccf27af 100755 --- a/scripts/route5gate.asm +++ b/scripts/route5gate.asm @@ -31,7 +31,7 @@ Route5GateScript0: ; 1df50 (7:5f50) and a jr nz, .asm_1df82 ld a, $2 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Route5GateScript_1df43 ld a, $1 @@ -39,7 +39,7 @@ Route5GateScript0: ; 1df50 (7:5f50) ret .asm_1df82 ld a, $3 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd728 set 6, [hl] diff --git a/scripts/route6gate.asm b/scripts/route6gate.asm index 82e2414a..d1aed2df 100755 --- a/scripts/route6gate.asm +++ b/scripts/route6gate.asm @@ -25,7 +25,7 @@ Route6GateScript0: ; 1e04e (7:604e) and a jr nz, .asm_1e080 ld a, $2 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Route6GateScript_1e0a1 ld a, $1 @@ -35,7 +35,7 @@ Route6GateScript0: ; 1e04e (7:604e) ld hl, wd728 set 6, [hl] ld a, $3 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID CoordsData_1e08c: ; 1e08c (7:608c) diff --git a/scripts/route7gate.asm b/scripts/route7gate.asm index 4a05acc3..d73dc566 100755 --- a/scripts/route7gate.asm +++ b/scripts/route7gate.asm @@ -37,7 +37,7 @@ Route7GateScript0: ; 1e128 (7:6128) and a jr nz, .asm_1e15a ld a, $2 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Route7GateScript_1e111 ld a, $1 @@ -45,7 +45,7 @@ Route7GateScript0: ; 1e128 (7:6128) ret .asm_1e15a ld a, $3 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd728 set 6, [hl] diff --git a/scripts/route8gate.asm b/scripts/route8gate.asm index de0a856f..261a7a1e 100755 --- a/scripts/route8gate.asm +++ b/scripts/route8gate.asm @@ -36,7 +36,7 @@ Route8GateScript0: ; 1e1ee (7:61ee) and a jr nz, .asm_1e220 ld a, $2 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Route8GateScript_1e1d7 ld a, $1 @@ -46,7 +46,7 @@ Route8GateScript0: ; 1e1ee (7:61ee) ld hl, wd728 set 6, [hl] ld a, $3 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID CoordsData_1e22c: ; 1e22c (7:622c) diff --git a/scripts/route9.asm b/scripts/route9.asm index 539e1a3f..d6050970 100755 --- a/scripts/route9.asm +++ b/scripts/route9.asm @@ -22,7 +22,7 @@ Route9TextPointers: ; 556d5 (15:56d5) dw Route9Text7 dw Route9Text8 dw Route9Text9 - dw Predef5CText + dw PickUpItemText dw Route9Text11 Route9TrainerHeaders: ; 556eb (15:56eb) diff --git a/scripts/safarizonecenter.asm b/scripts/safarizonecenter.asm index 6ff60ec6..40042038 100755 --- a/scripts/safarizonecenter.asm +++ b/scripts/safarizonecenter.asm @@ -2,7 +2,7 @@ SafariZoneCenterScript: ; 45bb2 (11:5bb2) jp EnableAutoTextBoxDrawing SafariZoneCenterTextPointers: ; 45bb5 (11:5bb5) - dw Predef5CText + dw PickUpItemText dw SafariZoneCenterText2 dw SafariZoneCenterText3 diff --git a/scripts/safarizoneeast.asm b/scripts/safarizoneeast.asm index 3e6df139..55ea5aa6 100755 --- a/scripts/safarizoneeast.asm +++ b/scripts/safarizoneeast.asm @@ -2,10 +2,10 @@ SafariZoneEastScript: ; 4586b (11:586b) jp EnableAutoTextBoxDrawing SafariZoneEastTextPointers: ; 4586e (11:586e) - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText dw SafariZoneEastText5 dw SafariZoneEastText6 dw SafariZoneEastText7 diff --git a/scripts/safarizoneentrance.asm b/scripts/safarizoneentrance.asm index 2edbe61b..e89630fc 100755 --- a/scripts/safarizoneentrance.asm +++ b/scripts/safarizoneentrance.asm @@ -18,7 +18,7 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) call ArePlayerCoordsInArray ret nc ld a, $3 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wJoyIgnore], a @@ -56,7 +56,7 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) ld [wJoyIgnore], a call UpdateSprites ld a, $4 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wJoyIgnore], a @@ -83,7 +83,7 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) ld a, $f0 ld [wJoyIgnore], a ld a, $6 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [W_NUMSAFARIBALLS], a @@ -95,7 +95,7 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) jr .asm_75286 .asm_7527f ld a, $5 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_75286 ret diff --git a/scripts/safarizonenorth.asm b/scripts/safarizonenorth.asm index 74790e76..6ea5f902 100755 --- a/scripts/safarizonenorth.asm +++ b/scripts/safarizonenorth.asm @@ -2,8 +2,8 @@ SafariZoneNorthScript: ; 459ab (11:59ab) jp EnableAutoTextBoxDrawing SafariZoneNorthTextPointers: ; 459ae (11:59ae) - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText dw SafariZoneNorthText3 dw SafariZoneNorthText4 dw SafariZoneNorthText5 diff --git a/scripts/safarizonewest.asm b/scripts/safarizonewest.asm index 1465af56..db2c6427 100755 --- a/scripts/safarizonewest.asm +++ b/scripts/safarizonewest.asm @@ -2,10 +2,10 @@ SafariZoneWestScript: ; 4a1b5 (12:61b5) jp EnableAutoTextBoxDrawing SafariZoneWestTextPointers: ; 4a1b8 (12:61b8) - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText dw SafariZoneWestText5 dw SafariZoneWestText6 dw SafariZoneWestText7 diff --git a/scripts/saffrongym.asm b/scripts/saffrongym.asm index 7e4f4447..349eda5e 100755 --- a/scripts/saffrongym.asm +++ b/scripts/saffrongym.asm @@ -44,7 +44,7 @@ SaffronGymScript3: ; 5d05b (17:505b) SaffronGymText_5d068: ; 5d068 (17:5068) ld a, $a - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd7b3 set 1, [hl] @@ -52,14 +52,14 @@ SaffronGymText_5d068: ; 5d068 (17:5068) call GiveItem jr nc, .BagFull ld a, $b - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd7b3 set 0, [hl] jr .asm_5d091 .BagFull ld a, $c - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_5d091 ld hl, W_OBTAINEDBADGES diff --git a/scripts/silphco10.asm b/scripts/silphco10.asm index 46630014..47700664 100755 --- a/scripts/silphco10.asm +++ b/scripts/silphco10.asm @@ -44,9 +44,9 @@ SilphCo10TextPointers: ; 5a186 (16:6186) dw SilphCo10Text1 dw SilphCo10Text2 dw SilphCo10Text3 - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText SilphCo10TrainerHeaders: ; 5a192 (16:6192) SilphCo10TrainerHeader0: ; 5a192 (16:6192) diff --git a/scripts/silphco11.asm b/scripts/silphco11.asm index 473c9d11..b4f94b13 100755 --- a/scripts/silphco11.asm +++ b/scripts/silphco11.asm @@ -170,17 +170,17 @@ SilphCo11Script0: ; 621db (18:61db) ld hl, CoordsData_62211 call ArePlayerCoordsInArray jp nc, CheckFightingMapTrainers - ld a, [wWhichTrade] + ld a, [wCoordIndex] ld [wcf0d], a xor a ld [hJoyHeld], a ld a, $f0 ld [wJoyIgnore], a ld a, $3 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $3 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld de, MovementData_62216 call MoveSprite @@ -201,9 +201,9 @@ MovementData_62216: ; 62216 (18:6216) SilphCo11Script_6221a: ; 6221a (18:621a) ld [wd528], a ld a, $3 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a ld a, b - ld [$ff8d], a + ld [hSpriteFacingDirection], a jp SetSpriteFacingDirectionAndDelay SilphCo11Script5: ; 62227 (18:6227) @@ -214,17 +214,17 @@ SilphCo11Script5: ; 62227 (18:6227) cp $1 jr z, .asm_6223c ld a, $2 - ld b, $c + ld b, SPRITE_FACING_RIGHT jr .asm_62240 .asm_6223c ld a, $8 - ld b, $0 + ld b, SPRITE_FACING_DOWN .asm_62240 call SilphCo11Script_6221a ld a, $f0 ld [wJoyIgnore], a ld a, $6 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call GBFadeOutToBlack call SilphCo11Script_6216d @@ -242,17 +242,17 @@ SilphCo11Script3: ; 6226a (18:626a) bit 0, a ret nz ld a, $3 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld a, [wcf0d] cp $1 jr z, .asm_62284 ld a, $2 - ld b, $c + ld b, SPRITE_FACING_RIGHT jr .asm_62288 .asm_62284 ld a, $8 - ld b, $0 + ld b, SPRITE_FACING_DOWN .asm_62288 call SilphCo11Script_6221a call Delay3 @@ -266,7 +266,7 @@ SilphCo11Script4: ; 62293 (18:6293) ld hl, SilphCo10Text_62330 ld de, SilphCo10Text_62330 call SaveEndBattleTextPointers - ld a, [H_DOWNARROWBLINKCNT2] + ld a, [H_SPRITEINDEX] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters diff --git a/scripts/silphco3.asm b/scripts/silphco3.asm index bc36ed39..4bd1edd1 100755 --- a/scripts/silphco3.asm +++ b/scripts/silphco3.asm @@ -58,7 +58,7 @@ SilphCo3TextPointers: ; 59fc4 (16:5fc4) dw SilphCo3Text1 dw SilphCo3Text2 dw SilphCo3Text3 - dw Predef5CText + dw PickUpItemText SilphCo3TrainerHeaders: ; 59fcc (16:5fcc) SilphCo3TrainerHeader0: ; 59fcc (16:5fcc) diff --git a/scripts/silphco4.asm b/scripts/silphco4.asm index 866afd54..a3953e27 100755 --- a/scripts/silphco4.asm +++ b/scripts/silphco4.asm @@ -95,9 +95,9 @@ SilphCo4TextPointers: ; 19da0 (6:5da0) dw SilphCo4Text2 dw SilphCo4Text3 dw SilphCo4Text4 - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText SilphCo4TrainerHeaders: ; 19dae (6:5dae) SilphCo4TrainerHeader0: ; 19dae (6:5dae) diff --git a/scripts/silphco5.asm b/scripts/silphco5.asm index 750072ab..1ed6006f 100755 --- a/scripts/silphco5.asm +++ b/scripts/silphco5.asm @@ -74,9 +74,9 @@ SilphCo5TextPointers: ; 19fbc (6:5fbc) dw SilphCo5Text3 dw SilphCo5Text4 dw SilphCo5Text5 - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText dw SilphCo5Text9 dw SilphCo5Text10 dw SilphCo5Text11 diff --git a/scripts/silphco6.asm b/scripts/silphco6.asm index 0ff5ee50..fe1e6224 100755 --- a/scripts/silphco6.asm +++ b/scripts/silphco6.asm @@ -50,8 +50,8 @@ SilphCo6TextPointers: ; 1a1f6 (6:61f6) dw SilphCo6Text6 dw SilphCo6Text7 dw SilphCo6Text8 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText SilphCo6TrainerHeaders: ; 1a20a (6:620a) SilphCo6TrainerHeader0: ; 1a20a (6:620a) diff --git a/scripts/silphco7.asm b/scripts/silphco7.asm index 483429c0..8538d37f 100755 --- a/scripts/silphco7.asm +++ b/scripts/silphco7.asm @@ -136,10 +136,10 @@ SilphCo7Script0: ; 51c23 (14:5c23) ld a, MUSIC_MEET_RIVAL call PlayMusic ld a, $9 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $9 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld de, MovementData_51c7d ld a, [wWhichTrade] @@ -149,7 +149,7 @@ SilphCo7Script0: ; 51c23 (14:5c23) inc de .asm_51c6c ld a, $9 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $3 jp SilphCo7Text_51c10 @@ -173,7 +173,7 @@ SilphCo7Script3: ; 51c82 (14:5c82) xor a ld [wJoyIgnore], a ld a, $d - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld hl, wd72d @@ -212,12 +212,12 @@ SilphCo7Script4: ; 51cc8 (14:5cc8) ld a, $4 ld [wd528], a ld a, $9 - ld [H_DOWNARROWBLINKCNT2], a - ld a, $4 - ld [$ff8d], a + ld [H_SPRITEINDEX], a + ld a, SPRITE_FACING_UP + ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $f - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wc0ee], a @@ -230,7 +230,7 @@ SilphCo7Script4: ; 51cc8 (14:5cc8) ld de, MovementData_51d1a .asm_51d0e ld a, $9 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $5 jp SilphCo7Text_51c10 @@ -272,9 +272,9 @@ SilphCo7TextPointers: ; 51d3f (14:5d3f) dw SilphCo7Text7 dw SilphCo7Text8 dw SilphCo7Text9 - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText dw SilphCo7Text13 dw SilphCo7Text14 dw SilphCo7Text15 diff --git a/scripts/ssanne10.asm b/scripts/ssanne10.asm index 4dee3bb7..031315c3 100755 --- a/scripts/ssanne10.asm +++ b/scripts/ssanne10.asm @@ -21,9 +21,9 @@ SSAnne10TextPointers: ; 61d6e (18:5d6e) dw SSAnne10Text6 dw SSAnne10Text7 dw SSAnne10Text8 - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText SSAnne10TrainerHeaders: ; 61d84 (18:5d84) SSAnne10TrainerHeader0: ; 61d84 (18:5d84) diff --git a/scripts/ssanne2.asm b/scripts/ssanne2.asm index 16d560b5..d4651a22 100755 --- a/scripts/ssanne2.asm +++ b/scripts/ssanne2.asm @@ -30,14 +30,14 @@ SSAnne2Script0: ; 613be (18:53be) ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL call PlayMusic - ld a, [wWhichTrade] + ld a, [wCoordIndex] ld [$ffdb], a ld a, HS_SS_ANNE_2_RIVAL ld [wcc4d], a predef ShowObject call Delay3 ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF xor a ld [hJoyHeld], a @@ -79,11 +79,11 @@ SSAnne2Script_61416: ; 61416 (18:5416) ld a, SPRITE_FACING_RIGHT jr .asm_61427 .asm_61426 - xor a + xor a ; SPRITE_FACING_DOWN .asm_61427 - ld [$ff8d], a + ld [hSpriteFacingDirection], a ld a, $2 - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a jp SetSpriteFacingDirectionAndDelay SSAnne2Script1: ; 61430 (18:5430) @@ -94,7 +94,7 @@ SSAnne2Script1: ; 61430 (18:5430) xor a ld [wJoyIgnore], a ld a, $2 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld a, SONY2 + $c8 @@ -129,10 +129,10 @@ SSAnne2Script2: ; 6146d (18:546d) ld a, $f0 ld [wJoyIgnore], a ld a, $3 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld a, [W_XCOORD] cp $25 @@ -143,7 +143,7 @@ SSAnne2Script2: ; 6146d (18:546d) ld de, MovementData_614b7 .asm_6149a ld a, $2 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $ff ld [wc0ee], a diff --git a/scripts/ssanne8.asm b/scripts/ssanne8.asm index 27c76a2f..7885135b 100755 --- a/scripts/ssanne8.asm +++ b/scripts/ssanne8.asm @@ -22,7 +22,7 @@ SSAnne8TextPointers: ; 6198f (18:598f) dw SSAnne8Text7 dw SSAnne8Text8 dw SSAnne8Text9 - dw Predef5CText + dw PickUpItemText dw SSAnne8Text11 SSAnne8TrainerHeaders: ; 619a5 (18:59a5) diff --git a/scripts/ssanne9.asm b/scripts/ssanne9.asm index 6e8b86c6..0cee1e08 100755 --- a/scripts/ssanne9.asm +++ b/scripts/ssanne9.asm @@ -21,10 +21,10 @@ SSAnne9TextPointers: ; 61b6a (18:5b6a) dw SSAnne9Text3 dw SSAnne9Text4 dw SSAnne9Text5 - dw Predef5CText + dw PickUpItemText dw SSAnne9Text7 dw SSAnne9Text8 - dw Predef5CText + dw PickUpItemText dw SSAnne9Text10 dw SSAnne9Text11 dw SSAnne9Text12 diff --git a/scripts/tradecenter.asm b/scripts/tradecenter.asm index 0a5cc100..22a61095 100755 --- a/scripts/tradecenter.asm +++ b/scripts/tradecenter.asm @@ -2,13 +2,13 @@ TradeCenterScript: ; 4fd10 (13:7d10) call EnableAutoTextBoxDrawing ld a, [$ffaa] cp $2 - ld a, $8 - jr z, .asm_4fd1d - ld a, $c -.asm_4fd1d - ld [$ff8d], a + ld a, SPRITE_FACING_LEFT + jr z, .next + ld a, SPRITE_FACING_RIGHT +.next + ld [hSpriteFacingDirection], a ld a, $1 - ld [$ff8c], a + ld [H_SPRITEINDEX], a call SetSpriteFacingDirection ld hl, wd72d bit 0, [hl] diff --git a/scripts/unknowndungeon1.asm b/scripts/unknowndungeon1.asm index 008a7bd7..696ddafa 100755 --- a/scripts/unknowndungeon1.asm +++ b/scripts/unknowndungeon1.asm @@ -2,6 +2,6 @@ UnknownDungeon1Script: ; 74d0c (1d:4d0c) jp EnableAutoTextBoxDrawing UnknownDungeon1TextPointers: ; 74d0f (1d:4d0f) - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText diff --git a/scripts/unknowndungeon2.asm b/scripts/unknowndungeon2.asm index c8249b27..f3cbb6a5 100755 --- a/scripts/unknowndungeon2.asm +++ b/scripts/unknowndungeon2.asm @@ -2,6 +2,6 @@ UnknownDungeon2Script: ; 45e0b (11:5e0b) jp EnableAutoTextBoxDrawing UnknownDungeon2TextPointers: ; 45e0e (11:5e0e) - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText diff --git a/scripts/unknowndungeon3.asm b/scripts/unknowndungeon3.asm index 055c9d0f..1c87aa39 100755 --- a/scripts/unknowndungeon3.asm +++ b/scripts/unknowndungeon3.asm @@ -14,8 +14,8 @@ UnknownDungeon3ScriptPointers: ; 45f03 (11:5f03) UnknownDungeon3TextPointers: ; 45f09 (11:5f09) dw UnknownDungeon3Text1 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText UnknownDungeon3TrainerHeaders: ; 45f0f (11:5f0f) UnknownDungeon3TrainerHeader0: ; 45f0f (11:5f0f) diff --git a/scripts/vermilioncity.asm b/scripts/vermilioncity.asm index 83fe2a8c..6b9f94f7 100755 --- a/scripts/vermilioncity.asm +++ b/scripts/vermilioncity.asm @@ -49,7 +49,7 @@ VermilionCityScript0: ; 197e6 (6:57e6) ld [hJoyHeld], a ld [wcf0d], a ld a, $3 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, [wd803] bit 2, a diff --git a/scripts/vermiliongym.asm b/scripts/vermiliongym.asm index 3515c29c..193b3a06 100755 --- a/scripts/vermiliongym.asm +++ b/scripts/vermiliongym.asm @@ -64,7 +64,7 @@ VermilionGymScript3: ; 5ca9d (17:4a9d) VermilionGymScript_5caaa: ; 5caaa (17:4aaa) ld a, $6 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd773 set 7, [hl] @@ -72,14 +72,14 @@ VermilionGymScript_5caaa: ; 5caaa (17:4aaa) call GiveItem jr nc, .BagFull ld a, $7 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd773 set 6, [hl] jr .asm_5cad3 .BagFull ld a, $8 - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_5cad3 ld hl, W_OBTAINEDBADGES diff --git a/scripts/victoryroad1.asm b/scripts/victoryroad1.asm index 68a3502f..4f1df52f 100755 --- a/scripts/victoryroad1.asm +++ b/scripts/victoryroad1.asm @@ -43,8 +43,8 @@ CoordsData_5da5c: ; 5da5c (17:5a5c) VictoryRoad1TextPointers: ; 5da5f (17:5a5f) dw VictoryRoad1Text1 dw VictoryRoad1Text2 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText dw BoulderText dw BoulderText dw BoulderText diff --git a/scripts/victoryroad2.asm b/scripts/victoryroad2.asm index 1fc2af7e..51346032 100755 --- a/scripts/victoryroad2.asm +++ b/scripts/victoryroad2.asm @@ -77,10 +77,10 @@ VictoryRoad2TextPointers: ; 5181b (14:581b) dw VictoryRoad2Text4 dw VictoryRoad2Text5 dw VictoryRoad2Text6 - dw Predef5CText - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText dw BoulderText dw BoulderText dw BoulderText diff --git a/scripts/victoryroad3.asm b/scripts/victoryroad3.asm index 20b3df85..9aeb1d18 100755 --- a/scripts/victoryroad3.asm +++ b/scripts/victoryroad3.asm @@ -83,8 +83,8 @@ VictoryRoad3TextPointers: ; 44a24 (11:4a24) dw VictoryRoad3Text2 dw VictoryRoad3Text3 dw VictoryRoad3Text4 - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText dw BoulderText dw BoulderText dw BoulderText diff --git a/scripts/viridiancity.asm b/scripts/viridiancity.asm index 05f5f495..c358e961 100755 --- a/scripts/viridiancity.asm +++ b/scripts/viridiancity.asm @@ -32,7 +32,7 @@ ViridianCityScript_1900b: ; 1900b (6:500b) cp $20 ret nz ld a, $e - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [hJoyHeld], a @@ -52,7 +52,7 @@ ViridianCityScript_1903d: ; 1903d (6:503d) cp $13 ret nz ld a, $5 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [hJoyHeld], a @@ -98,7 +98,7 @@ ViridianCityScript2: ; 1908f (6:508f) xor a ld [wJoyIgnore], a ld a, $f - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [W_BATTLETYPE], a diff --git a/scripts/viridianforest.asm b/scripts/viridianforest.asm index 124d3184..554c2125 100755 --- a/scripts/viridianforest.asm +++ b/scripts/viridianforest.asm @@ -17,9 +17,9 @@ ViridianForestTextPointers: ; 61126 (18:5126) dw ViridianForestText2 dw ViridianForestText3 dw ViridianForestText4 - dw Predef5CText - dw Predef5CText - dw Predef5CText + dw PickUpItemText + dw PickUpItemText + dw PickUpItemText dw ViridianForestText8 dw ViridianForestText9 dw ViridianForestText10 diff --git a/scripts/viridiangym.asm b/scripts/viridiangym.asm index 9e5e0e5f..9a0ce855 100755 --- a/scripts/viridiangym.asm +++ b/scripts/viridiangym.asm @@ -140,7 +140,7 @@ ViridianGymScript3: ; 74988 (1d:4988) ld [wJoyIgnore], a ViridianGymScript3_74995: ; 74995 (1d:4995) ld a, $c - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd751 set 1, [hl] @@ -148,14 +148,14 @@ ViridianGymScript3_74995: ; 74995 (1d:4995) call GiveItem jr nc, .BagFull ld a, $d - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd751 set 0, [hl] jr .asm_749be .BagFull ld a, $e - ld [H_DOWNARROWBLINKCNT2], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_749be ld hl, W_OBTAINEDBADGES @@ -190,7 +190,7 @@ ViridianGymTextPointers: ; 749ec (1d:49ec) dw ViridianGymText8 dw ViridianGymText9 dw ViridianGymText10 - dw Predef5CText + dw PickUpItemText dw ViridianGymText12 dw ViridianGymText13 dw ViridianGymText14 diff --git a/scripts/viridianmart.asm b/scripts/viridianmart.asm index 9725e275..b6621684 100755 --- a/scripts/viridianmart.asm +++ b/scripts/viridianmart.asm @@ -28,7 +28,7 @@ ViridianMartScriptPointers: ; 1d495 (7:5495) ViridianMartScript0: ; 1d49b (7:549b) call UpdateSprites ld a, $4 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wSimulatedJoypadStatesEnd ld de, RLEMovement1d4bb @@ -51,7 +51,7 @@ ViridianMartScript1: ; 1d4c0 (7:54c0) ret nz call Delay3 ld a, $5 - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld bc, (OAKS_PARCEL << 8) + 1 call GiveItem diff --git a/text.asm b/text.asm index ecc3beea..db3e57c5 100644 --- a/text.asm +++ b/text.asm @@ -2087,7 +2087,7 @@ _ColosseumVersionText:: ENDC _Char00Text:: ; 8a696 (22:6696) - TX_NUM $FF8C,1,2 + TX_NUM hSpriteIndexOrTextID,1,2 text " ERROR." done diff --git a/wram.asm b/wram.asm index 6eef4ea8..8633e732 100755 --- a/wram.asm +++ b/wram.asm @@ -634,6 +634,11 @@ wOverrideSimulatedJoypadStatesMask:: ; cd3b ds 1 +wWhichBadge:: ; cd3d + +wMuseumPriceTemp:: ; cd3d +; 3-byte BCD number + wTitleMonSpecies:: ; cd3d wPlayerCharacterOAMTile:: ; cd3d @@ -1891,58 +1896,98 @@ W_MAPCONNECTIONS:: ; d370 W_MAPCONN1PTR:: ; d371 ds 1 -wd372:: ds 1 ; some connection stuff, too bothered to label it -wd373:: ds 1 -wd374:: ds 1 -wd375:: ds 1 -wd376:: ds 1 -wd377:: ds 1 -wd378:: ds 1 -wd379:: ds 1 -wd37a:: ds 1 -wd37b:: ds 1 +wNorthConnectionStripSrc:: ; d372 + ds 2 + +wNorthConnectionStripDest:: ; d374 + ds 2 + +wNorthConnectionStripWidth:: ; d376 + ds 1 + +wNorthConnectedMapWidth:: ; d377 + ds 1 + +wNorthConnectedMapYAlignment:: ; d378 + ds 1 + +wNorthConnectedMapXAlignment:: ; d379 + ds 1 + +wNorthConnectedMapViewPointer:: ; d37a + ds 2 W_MAPCONN2PTR:: ; d37c ds 1 -wd37d:: ds 1 -wd37e:: ds 1 -wd37f:: ds 1 -wd380:: ds 1 -wd381:: ds 1 -wd382:: ds 1 -wd383:: ds 1 -wd384:: ds 1 -wd385:: ds 1 -wd386:: ds 1 +wSouthConnectionStripSrc:: ; d37d + ds 2 + +wSouthConnectionStripDest:: ; d37f: + ds 2 + +wSouthConnectionStripWidth:: ; d381 + ds 1 + +wSouthConnectedMapWidth:: ; d382 + ds 1 + +wSouthConnectedMapYAlignment:: ; d383 + ds 1 + +wSouthConnectedMapXAlignment:: ; d384 + ds 1 + +wSouthConnectedMapViewPointer:: ; d385 + ds 2 W_MAPCONN3PTR:: ; d387 ds 1 -wd388:: ds 1 -wd389:: ds 1 -wd38a:: ds 1 -wd38b:: ds 1 -wd38c:: ds 1 -wd38d:: ds 1 -wd38e:: ds 1 -wd38f:: ds 1 -wd390:: ds 1 -wd391:: ds 1 +wWestConnectionStripSrc:: ; d388 + ds 2 + +wWestConnectionStripDest:: ; d38a + ds 2 + +wWestConnectionStripHeight:: ; d38c + ds 1 + +wWestConnectedMapWidth:: ; d38d + ds 1 + +wWestConnectedMapYAlignment:: ; d38e + ds 1 + +wWestConnectedMapXAlignment:: ; d38f + ds 1 + +wWestConnectedMapViewPointer:: ; d390 + ds 2 W_MAPCONN4PTR:: ; d392 ds 1 -wd393:: ds 1 -wd394:: ds 1 -wd395:: ds 1 -wd396:: ds 1 -wd397:: ds 1 -wd398:: ds 1 -wd399:: ds 1 -wd39a:: ds 1 -wd39b:: ds 1 -wd39c:: ds 1 +wEastConnectionStripSrc:: ; d393 + ds 2 + +wEastConnectionStripDest:: ; d395 + ds 2 + +wEastConnectionStripHeight:: ; d397 + ds 1 + +wEastConnectedMapWidth:: ; d398 + ds 1 + +wEastConnectedMapYAlignment:: ; d399 + ds 1 + +wEastConnectedMapXAlignment:: ; d39a + ds 1 + +wEastConnectedMapViewPointer:: ; d39b + ds 2 W_SPRITESET:: ; d39d ; sprite set for the current map (11 sprite picture ID's) -- cgit v1.3.1-sl0p From 148d3f3cf28f9c270e3d5043af0692d95bc731c5 Mon Sep 17 00:00:00 2001 From: dannye Date: Sat, 18 Jul 2015 15:52:03 -0500 Subject: Consolidate coord macros --- engine/HoF_room_pc.asm | 14 +-- engine/battle/animations.asm | 46 +++++----- engine/battle/battle_transitions.asm | 44 ++++----- engine/battle/core.asm | 126 +++++++++++++------------- engine/battle/draw_hud_pokeball_gfx.asm | 4 +- engine/battle/end_of_battle.asm | 2 +- engine/battle/ghost_marowak_anim.asm | 2 +- engine/battle/link_battle_versus_text.asm | 8 +- engine/battle/moveEffects/drain_hp_effect.asm | 4 +- engine/battle/moveEffects/heal_effect.asm | 4 +- engine/battle/moveEffects/recoil_effect.asm | 4 +- engine/battle/scroll_draw_trainer_pic.asm | 2 +- engine/battle/trainer_ai.asm | 2 +- engine/battle/wild_encounters.asm | 2 +- engine/cable_club.asm | 48 +++++----- engine/clear_save.asm | 2 +- engine/evolution.asm | 4 +- engine/evos_moves.asm | 2 +- engine/hall_of_fame.asm | 32 +++---- engine/hidden_object_functions17.asm | 12 +-- engine/hidden_object_functions7.asm | 4 +- engine/intro.asm | 8 +- engine/items/items.asm | 6 +- engine/learn_move.asm | 8 +- engine/menu/bills_pc.asm | 38 ++++---- engine/menu/diploma.asm | 4 +- engine/menu/league_pc.asm | 8 +- engine/menu/main_menu.asm | 58 ++++++------ engine/menu/naming_screen.asm | 22 ++--- engine/menu/party_menu.asm | 2 +- engine/menu/players_pc.asm | 4 +- engine/menu/pokedex.asm | 58 ++++++------ engine/menu/prize_menu.asm | 30 +++--- engine/menu/start_sub_menus.asm | 26 +++--- engine/menu/status_screen.asm | 62 ++++++------- engine/menu/vending_machine.asm | 6 +- engine/oak_speech.asm | 8 +- engine/oak_speech2.asm | 12 +-- engine/overworld/cinnabar_lab.asm | 4 +- engine/overworld/movement.asm | 2 +- engine/overworld/pokemart.asm | 4 +- engine/save.asm | 18 ++-- engine/slot_machine.asm | 26 +++--- engine/titlescreen.asm | 12 +-- engine/town_map.asm | 32 +++---- engine/trade.asm | 32 +++---- engine/trade2.asm | 20 ++-- home.asm | 44 ++++----- home/copy2.asm | 8 +- home/overworld.asm | 12 +-- home/text.asm | 22 ++--- home/vcopy.asm | 6 +- macros.asm | 21 +---- main.asm | 48 +++++----- scripts/bikeshop.asm | 6 +- scripts/celadongamecorner.asm | 16 ++-- scripts/celadonmartroof.asm | 4 +- scripts/vermiliondock.asm | 2 +- 58 files changed, 528 insertions(+), 539 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index 77a07ea3..dc05814a 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -14,9 +14,9 @@ HallOfFamePC: ; 7405c (1d:405c) ld bc, $10 ld a, $ff call FillMemory - hlCoord 0, 0 + coord hl, 0, 0 call FillFourRowsWithBlack - hlCoord 0, 14 + coord hl, 0, 14 call FillFourRowsWithBlack ld a, $c0 ld [rBGP], a @@ -61,7 +61,7 @@ DisplayCreditsMon: ; 740cb (1d:40cb) ld a,[hl] ld [wcf91],a ld [wd0b5],a - hlCoord 8, 6 + coord hl, 8, 6 call GetMonHeader call LoadFrontSpriteByMonIndex ld hl,vBGMap0 + $c @@ -162,7 +162,7 @@ FillFourRowsWithBlack: ; 7417b (1d:417b) jp FillMemory FillMiddleOfScreenWithWhite: ; 74183 (1d:4183) - hlCoord 0, 4 + coord hl, 0, 4 ld bc, SCREEN_WIDTH * 10 ld a, $7f ; blank white tile jp FillMemory @@ -172,7 +172,7 @@ Credits: ; 7418e (1d:418e) push de .nextCreditsScreen pop de - hlCoord 9, 6 + coord hl, 9, 6 push hl call FillMiddleOfScreenWithWhite pop hl @@ -248,10 +248,10 @@ Credits: ; 7418e (1d:418e) ld hl, vChars2 + $600 ld bc, (BANK(TheEndGfx) << 8) + $0a call CopyVideoData - hlCoord 4, 8 + coord hl, 4, 8 ld de, TheEndTextString call PlaceString - hlCoord 4, 9 + coord hl, 4, 9 inc de call PlaceString jp FadeInCreditsText diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 7764603d..6803c38b 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -759,7 +759,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) cp a,1 ret nz .moveGhostMarowakLeft - hlCoord 17, 0 + coord hl, 17, 0 ld de,20 ld bc,$0707 ; 7 rows and 7 columns .loop @@ -858,7 +858,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 - hlCoord 1, 5 + coord hl, 1, 5 jp AnimationHideMonPic ; make pokemon disappear ; flashes the screen when subanimation counter is 1 modulo 4 @@ -1292,12 +1292,12 @@ AnimationSlideMonUp: ; 7927a (1e:527a) ld c, $7 ld a, [H_WHOSETURN] and a - hlCoord 1, 6 - deCoord 1, 5 + coord hl, 1, 6 + coord de, 1, 5 ld a, $30 jr z, .asm_79291 - hlCoord 12, 1 - deCoord 12, 0 + coord hl, 12, 1 + coord de, 12, 0 ld a, $ff .asm_79291 ld [wd09f], a @@ -1352,9 +1352,9 @@ _AnimationSlideMonUp: ; 792bf (1e:52bf) jr nz, .asm_792c4 ld a, [H_WHOSETURN] and a - hlCoord 1, 11 + coord hl, 1, 11 jr z, .asm_792e2 - hlCoord 12, 6 + coord hl, 12, 6 .asm_792e2 ld a, [wd09f] inc a @@ -1513,11 +1513,11 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1) ; The mon's sprite disappears after this animation. ld a, [H_WHOSETURN] and a - hlCoord 0, 5 - deCoord 2, 5 + coord hl, 0, 5 + coord de, 2, 5 jr z, .asm_793c2 - hlCoord 11, 0 - deCoord 13, 0 + coord hl, 11, 0 + coord de, 13, 0 .asm_793c2 xor a @@ -1561,9 +1561,9 @@ AnimationMoveMonHorizontally: ; 793f9 (1e:53f9) call AnimationHideMonPic ld a, [H_WHOSETURN] and a - hlCoord 2, 5 + coord hl, 2, 5 jr z, .asm_79407 - hlCoord 11, 0 + coord hl, 11, 0 .asm_79407 xor a push hl @@ -1674,12 +1674,12 @@ AnimationSquishMonPic: ; 794a1 (1e:54a1) ld a, [H_WHOSETURN] and a jr z, .asm_794b1 - hlCoord 16, 0 - deCoord 14, 0 + coord hl, 16, 0 + coord de, 14, 0 jr .asm_794b7 .asm_794b1 - hlCoord 5, 5 - deCoord 3, 5 + coord hl, 5, 5 + coord de, 3, 5 .asm_794b7 push de xor a @@ -1883,10 +1883,10 @@ AnimationSlideMonLeft: ; 795f8 (1e:55f8) ld a, [H_WHOSETURN] and a jr z, .asm_79602 - hlCoord 12, 0 + coord hl, 12, 0 jr .asm_79605 .asm_79602 - hlCoord 0, 5 + coord hl, 0, 5 .asm_79605 ld d, $8 .asm_79607 @@ -2121,7 +2121,7 @@ Func_79793: ; 79793 (1e:5793) xor a ld [W_SPRITEFLIPPED], a call GetMonHeader - hlCoord 12, 0 + coord hl, 12, 0 call LoadFrontSpriteByMonIndex jr .asm_797d3 .asm_797b0 @@ -2185,7 +2185,7 @@ Func_7980c: ; 7980c (1e:580c) push bc ld e, a ld d, $0 - hlCoord 0, 0 + coord hl, 0, 0 add hl, de ld bc, $707 call ClearScreenArea @@ -2207,7 +2207,7 @@ GetMonSpriteTileMapPointerFromRowCount: ; 79820 (1e:5820) .enemyTurn ld a, 12 .next - hlCoord 0, 0 + coord hl, 0, 0 ld e, a ld d, 0 add hl, de diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm index 997f23ef..4f605b52 100644 --- a/engine/battle/battle_transitions.asm +++ b/engine/battle/battle_transitions.asm @@ -202,7 +202,7 @@ BattleTransition_Spiral: ; 70a72 (1c:4a72) call BattleTransition_InwardSpiral jr .done .outwardSpiral - hlCoord 10, 10 + coord hl, 10, 10 ld a, $3 ld [wd09f], a ld a, l @@ -231,7 +231,7 @@ BattleTransition_Spiral: ; 70a72 (1c:4a72) BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa) ld a, $7 ld [wWhichTrade], a - hlCoord 0, 0 + coord hl, 0, 0 ld c, $11 ld de, SCREEN_WIDTH call BattleTransition_InwardSpiral_ @@ -371,20 +371,20 @@ BattleTransition_Shrink: ; 70b7f (1c:4b7f) push bc xor a ld [H_AUTOBGTRANSFERENABLED], a - hlCoord 0, 7 - deCoord 0, 8 + coord hl, 0, 7 + coord de, 0, 8 ld bc, -SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 - hlCoord 0, 10 - deCoord 0, 9 + coord hl, 0, 10 + coord de, 0, 9 ld bc, SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 - hlCoord 8, 0 - deCoord 9, 0 + coord hl, 8, 0 + coord de, 9, 0 ld bc, -2 call BattleTransition_CopyTiles2 - hlCoord 11, 0 - deCoord 10, 0 + coord hl, 11, 0 + coord de, 10, 0 ld bc, $2 call BattleTransition_CopyTiles2 ld a, $1 @@ -405,20 +405,20 @@ BattleTransition_Split: ; 70bca (1c:4bca) ld [H_AUTOBGTRANSFERENABLED], a .loop push bc - hlCoord 0, 16 - deCoord 0, 17 + coord hl, 0, 16 + coord de, 0, 17 ld bc, -SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 - hlCoord 0, 1 - deCoord 0, 0 + coord hl, 0, 1 + coord de, 0, 0 ld bc, SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 - hlCoord 18, 0 - deCoord 19, 0 + coord hl, 18, 0 + coord de, 19, 0 ld bc, -2 call BattleTransition_CopyTiles2 - hlCoord 1, 0 - deCoord 0, 0 + coord hl, 1, 0 + coord de, 0, 0 ld bc, $2 call BattleTransition_CopyTiles2 call BattleTransition_TransferDelay3 @@ -514,8 +514,8 @@ BattleTransition_CopyTiles2: ; 70c3f (1c:4c3f) ; used for high level wild dungeon battles BattleTransition_VerticalStripes: ; 70c7e (1c:4c7e) ld c, SCREEN_HEIGHT - hlCoord 0, 0 - deCoord 1, 17 + coord hl, 0, 0 + coord de, 1, 17 xor a ld [H_AUTOBGTRANSFERENABLED], a .loop @@ -553,8 +553,8 @@ BattleTransition_VerticalStripes_: ; 70caa (1c:4caa) ; used for low level wild dungeon battles BattleTransition_HorizontalStripes: ; 70cb4 (1c:4cb4) ld c, SCREEN_WIDTH - hlCoord 0, 0 - deCoord 19, 1 + coord hl, 0, 0 + coord de, 19, 1 xor a ld [H_AUTOBGTRANSFERENABLED], a .loop diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 2f407290..5deeb4dc 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -101,7 +101,7 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c) ld a, MESSAGE_BOX ; the usual text box at the bottom of the screen ld [wTextBoxID], a call DisplayTextBoxID - hlCoord 1, 5 + coord hl, 1, 5 ld bc, $307 call ClearScreenArea call DisableLCD @@ -117,7 +117,7 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c) or c jr nz, .clearBackgroundLoop ; copy the work RAM tile map to VRAM - hlCoord 0, 0 + coord hl, 0, 0 ld de, vBGMap0 ld b, 18 ; number of rows .copyRowLoop @@ -176,7 +176,7 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c) ld [H_AUTOBGTRANSFERENABLED], a ld a, $31 ld [$ffe1], a - hlCoord 1, 5 + coord hl, 1, 5 predef CopyUncompressedPicToTilemap xor a ld [hWY], a @@ -324,7 +324,7 @@ StartBattle: ; 3c11e (f:411e) ld [wcf91], a ld [wBattleMonSpecies2], a call LoadScreenTilesFromBuffer1 - hlCoord 1, 5 + coord hl, 1, 5 ld a, $9 call SlideTrainerPicOffScreen call SaveScreenTilesToBuffer1 @@ -760,12 +760,12 @@ HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ; 3c4a3 (f:44a3) ret UpdateCurMonHPBar: ; 3c4f6 (f:44f6) - hlCoord 10, 9 ; tile pointer to player HP bar + coord hl, 10, 9 ; tile pointer to player HP bar ld a, [H_WHOSETURN] and a ld a, $1 jr z, .playersTurn - hlCoord 2, 2 ; tile pointer to enemy HP bar + coord hl, 2, 2 ; tile pointer to enemy HP bar xor a .playersTurn push bc @@ -852,10 +852,10 @@ FaintEnemyPokemon: ; 0x3c567 ld hl, wPlayerUsedMove ld [hli], a ld [hl], a - hlCoord 12, 5 - deCoord 12, 6 + coord hl, 12, 5 + coord de, 12, 6 call SlideDownFaintedMonPic - hlCoord 0, 0 + coord hl, 0, 0 ld bc, $40b call ClearScreenArea ld a, [W_ISINBATTLE] @@ -1105,11 +1105,11 @@ RemoveFaintedPlayerMon: ; 3c741 (f:4741) ld [hl], a ld [wBattleMonStatus], a call ReadPlayerMonCurHPAndStatus - hlCoord 9, 7 + coord hl, 9, 7 ld bc, $50b call ClearScreenArea - hlCoord 1, 10 - deCoord 1, 11 + coord hl, 1, 10 + coord de, 1, 11 call SlideDownFaintedMonPic ld a, $1 ld [wBattleResult], a @@ -1137,7 +1137,7 @@ DoUseNextMonDialogue: ; 3c79b (f:479b) ld hl, UseNextMonText call PrintText .displayYesNoBox - hlCoord 13, 9 + coord hl, 13, 9 ld bc, $a0e ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -1214,7 +1214,7 @@ HandlePlayerBlackOut: ; 3c837 (f:4837) ld a, [W_CUROPPONENT] cp $c8 + SONY1 jr nz, .notSony1Battle - hlCoord 0, 0 ; sony 1 battle + coord hl, 0, 0 ; sony 1 battle ld bc, $815 call ClearScreenArea call ScrollTrainerPicAfterBattle @@ -1384,7 +1384,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a) ld [wAICount],a ld hl,W_PLAYERBATTSTATUS1 res 5,[hl] - hlCoord 18, 0 + coord hl, 18, 0 ld a,8 call SlideTrainerPicOffScreen call PrintEmptyString @@ -1454,7 +1454,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a) jr nz,.next4 ld hl, TrainerAboutToUseText call PrintText - hlCoord 0, 7 + coord hl, 0, 7 ld bc,$0801 ld a,TWO_OPTION_MENU ld [wTextBoxID],a @@ -1489,7 +1489,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a) call LoadScreenTilesFromBuffer1 .next4 call ClearSprites - hlCoord 0, 0 + coord hl, 0, 0 ld bc,$040B call ClearScreenArea ld b,1 @@ -1505,7 +1505,7 @@ EnemySendOutFirstMon: ; 3c92a (f:492a) call LoadMonFrontSprite ld a,$CF ld [$FFE1],a - hlCoord 15, 6 + coord hl, 15, 6 predef AnimateSendingOutMon ld a,[wEnemyMonSpecies2] call PlayCry @@ -1835,7 +1835,7 @@ SendOutMon: ; 3cc91 (f:4c91) ld [H_WHOSETURN], a ld a, POOF_ANIM call PlayMoveAnimation - hlCoord 4, 11 + coord hl, 4, 11 predef AnimateSendingOutMon ld a, [wcf91] call PlayCry @@ -1844,10 +1844,10 @@ SendOutMon: ; 3cc91 (f:4c91) ; show 2 stages of the player mon getting smaller before disappearing AnimateRetreatingPlayerMon: ; 3ccfa (f:4cfa) - hlCoord 1, 5 + coord hl, 1, 5 ld bc, $707 call ClearScreenArea - hlCoord 3, 7 + coord hl, 3, 7 ld bc, $505 xor a ld [wDownscaledMonSize], a @@ -1856,7 +1856,7 @@ AnimateRetreatingPlayerMon: ; 3ccfa (f:4cfa) ld c, 4 call DelayFrames call .clearScreenArea - hlCoord 4, 9 + coord hl, 4, 9 ld bc, $303 ld a, $1 ld [wDownscaledMonSize], a @@ -1868,7 +1868,7 @@ AnimateRetreatingPlayerMon: ; 3ccfa (f:4cfa) ld a, $4c Coorda 5, 11 .clearScreenArea - hlCoord 1, 5 + coord hl, 1, 5 ld bc, $707 jp ClearScreenArea @@ -1891,14 +1891,14 @@ DrawHUDsAndHPBars: ; 3cd5a (f:4d5a) DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60) xor a ld [H_AUTOBGTRANSFERENABLED], a - hlCoord 9, 7 + coord hl, 9, 7 ld bc, $50b call ClearScreenArea callab PlacePlayerHUDTiles - hlCoord 18, 9 + coord hl, 18, 9 ld [hl], $73 ld de, wBattleMonNick - hlCoord 10, 7 + coord hl, 10, 7 call CenterMonName call PlaceString ld hl, wBattleMonSpecies @@ -1909,7 +1909,7 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60) ld de, wLoadedMonLevel ld bc, $b call CopyData - hlCoord 14, 8 + coord hl, 14, 8 push hl inc hl ld de, wLoadedMonStatus @@ -1920,7 +1920,7 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60) .asm_3cdae ld a, [wLoadedMonSpecies] ld [wcf91], a - hlCoord 10, 9 + coord hl, 10, 9 predef DrawHP ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a @@ -1952,15 +1952,15 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60) DrawEnemyHUDAndHPBar: ; 3cdec (f:4dec) xor a ld [H_AUTOBGTRANSFERENABLED], a - hlCoord 0, 0 + coord hl, 0, 0 ld bc, $40c call ClearScreenArea callab PlaceEnemyHUDTiles ld de, wEnemyMonNick - hlCoord 1, 0 + coord hl, 1, 0 call CenterMonName call PlaceString - hlCoord 4, 1 + coord hl, 4, 1 push hl inc hl ld de, wEnemyMonStatus @@ -2033,7 +2033,7 @@ DrawEnemyHUDAndHPBar: ; 3cdec (f:4dec) .drawHPBar xor a ld [wHPBarType], a - hlCoord 2, 2 + coord hl, 2, 2 call DrawHPBar ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a @@ -2108,12 +2108,12 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3) ld bc, $b call CopyData ; the following simulates the keystrokes by drawing menus on screen - hlCoord 9, 14 + coord hl, 9, 14 ld [hl], "▶" ld c, 80 call DelayFrames ld [hl], $7f - hlCoord 9, 16 + coord hl, 9, 16 ld [hl], "▶" ld c, 50 call DelayFrames @@ -2145,7 +2145,7 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3) .safariLeftColumn Coorda 13, 14 Coorda 13, 16 - hlCoord 7, 14 + coord hl, 7, 14 ld de, W_NUMSAFARIBALLS ld bc, $102 call PrintNumber @@ -2178,7 +2178,7 @@ DisplayBattleMenu: ; 3ceb3 (f:4eb3) .safariRightColumn Coorda 1, 14 ; clear upper cursor position in left column Coorda 1, 16 ; clear lower cursor position in left column - hlCoord 7, 14 + coord hl, 7, 14 ld de, W_NUMSAFARIBALLS ld bc, $102 call PrintNumber @@ -2399,7 +2399,7 @@ PartyMenuOrRockOrRun: call GBPalNormal jp DisplayBattleMenu .partyMonDeselected - hlCoord 11, 11 + coord hl, 11, 11 ld bc, $81 ld a, $7f call FillMemory @@ -2561,17 +2561,17 @@ MoveSelectionMenu: ; 3d219 (f:5219) ret z ld hl, wBattleMonMoves call .loadmoves - hlCoord 4, 12 + coord hl, 4, 12 ld b, $4 ld c, $e di call TextBoxBorder - hlCoord 4, 12 + coord hl, 4, 12 ld [hl], $7a - hlCoord 10, 12 + coord hl, 10, 12 ld [hl], $7e ei - hlCoord 6, 13 + coord hl, 6, 13 call .writemoves ld b, $5 ld a, $c @@ -2579,11 +2579,11 @@ MoveSelectionMenu: ; 3d219 (f:5219) .mimicmenu ld hl, wEnemyMonMoves call .loadmoves - hlCoord 0, 7 + coord hl, 0, 7 ld b, $4 ld c, $e call TextBoxBorder - hlCoord 2, 8 + coord hl, 2, 8 call .writemoves ld b, $1 ld a, $7 @@ -2594,11 +2594,11 @@ MoveSelectionMenu: ; 3d219 (f:5219) ld bc, $2c call AddNTimes call .loadmoves - hlCoord 4, 7 + coord hl, 4, 7 ld b, $4 ld c, $e call TextBoxBorder - hlCoord 6, 8 + coord hl, 6, 8 call .writemoves ld b, $5 ld a, $7 @@ -2654,7 +2654,7 @@ SelectMenuItem: ; 3d2fe (f:52fe) jr z, .battleselect dec a jr nz, .select - hlCoord 1, 14 + coord hl, 1, 14 ld de, WhichTechniqueString call PlaceString jr .select @@ -2666,7 +2666,7 @@ SelectMenuItem: ; 3d2fe (f:52fe) ld a, [wMenuItemToSwap] and a jr z, .select - hlCoord 5, 13 + coord hl, 5, 13 dec a ld bc, $14 call AddNTimes @@ -2903,7 +2903,7 @@ SwapMovesInMenu: ; 3d435 (f:5435) PrintMenuItem: ; 3d4b6 (f:54b6) xor a ld [H_AUTOBGTRANSFERENABLED], a - hlCoord 0, 8 + coord hl, 0, 8 ld b, $3 ld c, $9 call TextBoxBorder @@ -2916,7 +2916,7 @@ PrintMenuItem: ; 3d4b6 (f:54b6) ld a, [wCurrentMenuItem] cp b jr nz, .notDisabled - hlCoord 1, 10 + coord hl, 1, 10 ld de, DisabledText call PlaceString jr .moveDisabled @@ -2948,23 +2948,23 @@ PrintMenuItem: ; 3d4b6 (f:54b6) and $3f ld [wcd6d], a ; print TYPE/ and / - hlCoord 1, 9 + coord hl, 1, 9 ld de, TypeText call PlaceString - hlCoord 7, 11 + coord hl, 7, 11 ld [hl], "/" - hlCoord 5, 9 + coord hl, 5, 9 ld [hl], "/" - hlCoord 5, 11 + coord hl, 5, 11 ld de, wcd6d ld bc, $102 call PrintNumber - hlCoord 8, 11 + coord hl, 8, 11 ld de, wd11e ld bc, $102 call PrintNumber call GetCurrentMove - hlCoord 2, 10 + coord hl, 2, 10 predef PrintMoveType .moveDisabled ld a, $1 @@ -4924,7 +4924,7 @@ ApplyDamageToEnemyPokemon: ; 3e142 (f:6142) ld [wHPBarNewHP+1],a ld a,[hl] ld [wHPBarNewHP],a - hlCoord 2, 2 + coord hl, 2, 2 xor a ld [wHPBarType],a predef UpdateHPBar2 ; animate the HP bar shortening @@ -5042,7 +5042,7 @@ ApplyDamageToPlayerPokemon: ; 3e200 (f:6200) ld [wHPBarMaxHP+1],a ld a,[hl] ld [wHPBarMaxHP],a - hlCoord 10, 9 + coord hl, 10, 9 ld a,$01 ld [wHPBarType],a predef UpdateHPBar2 ; animate the HP bar shortening @@ -6456,7 +6456,7 @@ LoadPlayerBackPic: ; 3ec92 (f:6c92) ld [$0], a ld a, $31 ld [$ffe1], a - hlCoord 1, 5 + coord hl, 1, 5 predef_jump CopyUncompressedPicToTilemap ; does nothing since no stats are ever selected (barring glitches) @@ -6875,7 +6875,7 @@ InitBattleCommon: ; 3ef3d (f:6f3d) ld [$ffe1], a dec a ld [wAICount], a - hlCoord 12, 0 + coord hl, 12, 0 predef CopyUncompressedPicToTilemap ld a, $ff ld [wEnemyMonPartyPos], a @@ -6929,7 +6929,7 @@ InitWildBattle: ; 3ef8b (f:6f8b) xor a ld [W_TRAINERCLASS], a ld [$ffe1], a - hlCoord 12, 0 + coord hl, 12, 0 predef CopyUncompressedPicToTilemap ; common code that executes after init battle code specific to trainer or wild battles @@ -6951,10 +6951,10 @@ InitBattle_Common: ; 3efeb (f:6feb) ld a, $9c ld [H_AUTOBGTRANSFERDEST + 1], a call LoadScreenTilesFromBuffer1 - hlCoord 9, 7 + coord hl, 9, 7 ld bc, $50a call ClearScreenArea - hlCoord 1, 0 + coord hl, 1, 0 ld bc, $40a call ClearScreenArea call ClearSprites @@ -7098,7 +7098,7 @@ LoadMonBackPic: ; 3f103 (f:7103) ; been loaded with GetMonHeader. ld a, [wBattleMonSpecies2] ld [wcf91], a - hlCoord 1, 5 + coord hl, 1, 5 ld b, $7 ld c, $8 call ClearScreenArea diff --git a/engine/battle/draw_hud_pokeball_gfx.asm b/engine/battle/draw_hud_pokeball_gfx.asm index 06280a15..e9be0da5 100644 --- a/engine/battle/draw_hud_pokeball_gfx.asm +++ b/engine/battle/draw_hud_pokeball_gfx.asm @@ -121,7 +121,7 @@ PlacePlayerHUDTiles: ; 3a902 (e:6902) ld de, wTrainerFacingDirection ld bc, $3 call CopyData - hlCoord 18, 10 + coord hl, 18, 10 ld de, rIE jr PlaceHUDTiles @@ -136,7 +136,7 @@ PlaceEnemyHUDTiles: ; 3a919 (e:6919) ld de, wTrainerFacingDirection ld bc, $3 call CopyData - hlCoord 1, 2 + coord hl, 1, 2 ld de, $1 jr PlaceHUDTiles diff --git a/engine/battle/end_of_battle.asm b/engine/battle/end_of_battle.asm index 075cbeb1..8264e49c 100755 --- a/engine/battle/end_of_battle.asm +++ b/engine/battle/end_of_battle.asm @@ -19,7 +19,7 @@ EndOfBattle: ; 137aa (4:77aa) jr z, .placeWinOrLoseString ld de, DrawText .placeWinOrLoseString - hlCoord 6, 8 + coord hl, 6, 8 call PlaceString ld c, 200 call DelayFrames diff --git a/engine/battle/ghost_marowak_anim.asm b/engine/battle/ghost_marowak_anim.asm index 73d3bcc2..e3b3f42c 100644 --- a/engine/battle/ghost_marowak_anim.asm +++ b/engine/battle/ghost_marowak_anim.asm @@ -4,7 +4,7 @@ MarowakAnim: ; 708ca (1c:48ca) ld [rOBP1], a call CopyMonPicFromBGToSpriteVRAM ; cover the BG ghost pic with a sprite ghost pic that looks the same ; now that the ghost pic is being displayed using sprites, clear the ghost pic from the BG tilemap - hlCoord 12, 0 + coord hl, 12, 0 ld bc, $707 call ClearScreenArea call Delay3 diff --git a/engine/battle/link_battle_versus_text.asm b/engine/battle/link_battle_versus_text.asm index 7320da29..dfb2fe35 100644 --- a/engine/battle/link_battle_versus_text.asm +++ b/engine/battle/link_battle_versus_text.asm @@ -1,18 +1,18 @@ ; display "[player] VS [enemy]" text box with pokeballs representing their parties next to the names DisplayLinkBattleVersusTextBox: ; 372d6 (d:72d6) call LoadTextBoxTilePatterns - hlCoord 3, 4 + coord hl, 3, 4 ld b, $7 ld c, $c call TextBoxBorder - hlCoord 4, 5 + coord hl, 4, 5 ld de, wPlayerName call PlaceString - hlCoord 4, 10 + coord hl, 4, 10 ld de, wLinkEnemyTrainerName call PlaceString ; place bold "VS" tiles between the names - hlCoord 9, 8 + coord hl, 9, 8 ld a, $69 ld [hli], a ld [hl], $6a diff --git a/engine/battle/moveEffects/drain_hp_effect.asm b/engine/battle/moveEffects/drain_hp_effect.asm index be52e76d..1096794f 100644 --- a/engine/battle/moveEffects/drain_hp_effect.asm +++ b/engine/battle/moveEffects/drain_hp_effect.asm @@ -71,10 +71,10 @@ DrainHPEffect_: ; 783f (1:783f) .next ld a, [H_WHOSETURN] and a - hlCoord 10, 9 + coord hl, 10, 9 ld a, $1 jr z, .next2 - hlCoord 2, 2 + coord hl, 2, 2 xor a .next2 ld [wHPBarType], a diff --git a/engine/battle/moveEffects/heal_effect.asm b/engine/battle/moveEffects/heal_effect.asm index d9729747..cea63a1f 100644 --- a/engine/battle/moveEffects/heal_effect.asm +++ b/engine/battle/moveEffects/heal_effect.asm @@ -89,10 +89,10 @@ HealEffect_: ; 3b9ec (e:79ec) call BankswitchEtoF ld a, [H_WHOSETURN] and a - hlCoord 10, 9 + coord hl, 10, 9 ld a, $1 jr z, .updateHPBar - hlCoord 2, 2 + coord hl, 2, 2 xor a .updateHPBar ld [wHPBarType], a diff --git a/engine/battle/moveEffects/recoil_effect.asm b/engine/battle/moveEffects/recoil_effect.asm index 95b54922..51232af6 100644 --- a/engine/battle/moveEffects/recoil_effect.asm +++ b/engine/battle/moveEffects/recoil_effect.asm @@ -53,12 +53,12 @@ RecoilEffect_: ; 1392c (4:792c) ld [hli], a ld [hl], a .getHPBarCoords - hlCoord 10, 9 + coord hl, 10, 9 ld a, [H_WHOSETURN] and a ld a, $1 jr z, .updateHPBar - hlCoord 2, 2 + coord hl, 2, 2 xor a .updateHPBar ld [wHPBarType], a diff --git a/engine/battle/scroll_draw_trainer_pic.asm b/engine/battle/scroll_draw_trainer_pic.asm index 18df86e0..b32650e3 100644 --- a/engine/battle/scroll_draw_trainer_pic.asm +++ b/engine/battle/scroll_draw_trainer_pic.asm @@ -6,7 +6,7 @@ _ScrollTrainerPicAfterBattle: ; 396d3 (e:56d3) ld b, $1 call GoPAL_SET callab _LoadTrainerPic - hlCoord 19, 0 + coord hl, 19, 0 ld c, $0 .scrollLoop inc c diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm index 55314ea9..a53f00f6 100644 --- a/engine/battle/trainer_ai.asm +++ b/engine/battle/trainer_ai.asm @@ -641,7 +641,7 @@ AIRecoverHP: ; 3a6da (e:66da) AIPrintItemUseAndUpdateHPBar: ; 3a718 (e:6718) call AIPrintItemUse_ - hlCoord 2, 2 + coord hl, 2, 2 xor a ld [wHPBarType],a predef UpdateHPBar2 diff --git a/engine/battle/wild_encounters.asm b/engine/battle/wild_encounters.asm index 03dc6fb6..5964f996 100644 --- a/engine/battle/wild_encounters.asm +++ b/engine/battle/wild_encounters.asm @@ -25,7 +25,7 @@ TryDoWildEncounter: ; 13870 (4:7870) .asm_1389e ; determine if wild pokemon can appear in the half-block we're standing in ; is the bottom right tile (9,9) of the half-block we're standing in a grass/water tile? - hlCoord 9, 9 + coord hl, 9, 9 ld c, [hl] ld a, [W_GRASSTILE] cp c diff --git a/engine/cable_club.asm b/engine/cable_club.asm index 87f7b34c..fbdb6260 100755 --- a/engine/cable_club.asm +++ b/engine/cable_club.asm @@ -9,11 +9,11 @@ CableClub_DoBattleOrTrade: ; 5317 (1:5317) call LoadFontTilePatterns call LoadHpBarAndStatusTilePatterns call LoadTrainerInfoTextBoxTiles - hlCoord 3, 8 + coord hl, 3, 8 ld b, 2 ld c, 12 call CableClub_TextBoxBorder - hlCoord 4, 10 + coord hl, 4, 10 ld de, PleaseWaitString call PlaceString ld hl, wPlayerNumHits @@ -399,7 +399,7 @@ TradeCenter_SelectMon: ld [wTopMenuItemY], a ld a, 1 ld [wTopMenuItemX], a - hlCoord 1, 1 + coord hl, 1, 1 ld bc, $0601 call ClearScreenArea .playerMonMenu_HandleInput @@ -464,11 +464,11 @@ TradeCenter_SelectMon: dec a .displayStatsTradeMenu push af - hlCoord 0, 14 + coord hl, 0, 14 ld b, 2 ld c, 18 call CableClub_TextBoxBorder - hlCoord 2, 16 + coord hl, 2, 16 ld de, .statsTrade call PlaceString xor a @@ -596,15 +596,15 @@ ReturnToCableClubRoom: ; 577d (1:577d) ret TradeCenter_DrawCancelBox: - hlCoord 11, 15 + coord hl, 11, 15 ld a, $7e ld bc, 2 * 20 + 9 call FillMemory - hlCoord 0, 15 + coord hl, 0, 15 ld b, 1 ld c, 9 call CableClub_TextBoxBorder - hlCoord 2, 16 + coord hl, 2, 16 ld de, CancelTextString jp PlaceString @@ -613,7 +613,7 @@ CancelTextString: TradeCenter_PlaceSelectedEnemyMonMenuCursor: ld a, [wSerialSyncAndExchangeNybbleReceiveData] - hlCoord 1, 9 + coord hl, 1, 9 ld bc, 20 call AddNTimes ld [hl], $ec ; cursor @@ -630,24 +630,24 @@ TradeCenter_DisplayStats: jp TradeCenter_DrawCancelBox TradeCenter_DrawPartyLists: - hlCoord 0, 0 + coord hl, 0, 0 ld b, 6 ld c, 18 call CableClub_TextBoxBorder - hlCoord 0, 8 + coord hl, 0, 8 ld b, 6 ld c, 18 call CableClub_TextBoxBorder - hlCoord 5, 0 + coord hl, 5, 0 ld de, wPlayerName call PlaceString - hlCoord 5, 8 + coord hl, 5, 8 ld de, wLinkEnemyTrainerName call PlaceString - hlCoord 2, 1 + coord hl, 2, 1 ld de, wPartySpecies call TradeCenter_PrintPartyListNames - hlCoord 2, 9 + coord hl, 2, 9 ld de, wEnemyPartyMons ; fall through @@ -684,7 +684,7 @@ TradeCenter_Trade: ld [wSerialExchangeNybbleReceiveData], a ld [wMenuWatchMovingOutOfBounds], a ld [wMenuJoypadPollCount], a - hlCoord 0, 12 + coord hl, 0, 12 ld b, 4 ld c, 18 call CableClub_TextBoxBorder @@ -709,10 +709,10 @@ TradeCenter_Trade: ld [wd11e], a call GetMonName ld hl, WillBeTradedText - bcCoord 1, 14 + coord bc, 1, 14 call TextCommandProcessor call SaveScreenTilesToBuffer1 - hlCoord 10, 7 + coord hl, 10, 7 ld bc, $080b ld a, TRADE_CANCEL_MENU ld [wTwoOptionMenuID], a @@ -726,11 +726,11 @@ TradeCenter_Trade: ; if trade cancelled ld a, $1 ld [wSerialExchangeNybbleSendData], a - hlCoord 0, 12 + coord hl, 0, 12 ld b, 4 ld c, 18 call CableClub_TextBoxBorder - hlCoord 1, 14 + coord hl, 1, 14 ld de, TradeCanceled call PlaceString call Serial_PrintWaitingTextAndSyncAndExchangeNybble @@ -743,11 +743,11 @@ TradeCenter_Trade: dec a ; did the other person cancel? jr nz, .doTrade ; if the other person cancelled - hlCoord 0, 12 + coord hl, 0, 12 ld b, 4 ld c, 18 call CableClub_TextBoxBorder - hlCoord 1, 14 + coord hl, 1, 14 ld de, TradeCanceled call PlaceString jp .tradeCancelled @@ -851,11 +851,11 @@ TradeCenter_Trade: call Serial_PrintWaitingTextAndSyncAndExchangeNybble ld c, 40 call DelayFrames - hlCoord 0, 12 + coord hl, 0, 12 ld b, 4 ld c, 18 call CableClub_TextBoxBorder - hlCoord 1, 14 + coord hl, 1, 14 ld de, TradeCompleted call PlaceString predef SaveSAVtoSRAM2 diff --git a/engine/clear_save.asm b/engine/clear_save.asm index 66d7e920..2febb123 100755 --- a/engine/clear_save.asm +++ b/engine/clear_save.asm @@ -5,7 +5,7 @@ DoClearSaveDialogue: ; 1c98a (7:498a) call LoadTextBoxTilePatterns ld hl, ClearSaveDataText call PrintText - hlCoord 14, 7 + coord hl, 14, 7 ld bc, $80f ld a, NO_YES_MENU ld [wTwoOptionMenuID], a diff --git a/engine/evolution.asm b/engine/evolution.asm index 4776b3b6..9ed38c21 100755 --- a/engine/evolution.asm +++ b/engine/evolution.asm @@ -99,7 +99,7 @@ EvolutionSetWholeScreenPalette: ; 7beb4 (1e:7eb4) Evolution_LoadPic: ; 7beb9 (1e:7eb9) call GetMonHeader - hlCoord 7, 2 + coord hl, 7, 2 jp LoadFlippedFrontSpriteByMonIndex Func_7bec2: ; 7bec2 (1e:7ec2) @@ -117,7 +117,7 @@ Func_7bed6: ; 7bed6 (1e:7ed6) push bc xor a ld [H_AUTOBGTRANSFERENABLED], a - hlCoord 7, 2 + coord hl, 7, 2 ld bc, $707 ld de, $d .asm_7bee3 diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm index 2b54108d..4a253c68 100755 --- a/engine/evos_moves.asm +++ b/engine/evos_moves.asm @@ -121,7 +121,7 @@ Evolution_PartyMonLoop: ; loop over party mons call DelayFrames xor a ld [H_AUTOBGTRANSFERENABLED], a - hlCoord 0, 0 + coord hl, 0, 0 ld bc, $c14 call ClearScreenArea ld a, $1 diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm index 81ccffdc..0d933571 100755 --- a/engine/hall_of_fame.asm +++ b/engine/hall_of_fame.asm @@ -57,11 +57,11 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) call HoFDisplayAndRecordMonInfo ld c, 80 call DelayFrames - hlCoord 2, 13 + coord hl, 2, 13 ld b, $3 ld c, $e call TextBoxBorder - hlCoord 4, 15 + coord hl, 4, 15 ld de, HallOfFameText call PlaceString ld c, 180 @@ -112,7 +112,7 @@ HoFShowMonOrPlayer: ; 70278 (1c:4278) call HoFLoadPlayerPics jr .next1 .showMon - hlCoord 12, 5 + coord hl, 12, 5 call GetMonHeader call LoadFrontSpriteByMonIndex predef LoadMonBackPic @@ -157,22 +157,22 @@ HoFDisplayAndRecordMonInfo: ; 702e1 (1c:42e1) jp HoFRecordMonInfo HoFDisplayMonInfo: ; 702f0 (1c:42f0) - hlCoord 0, 2 + coord hl, 0, 2 ld b, 9 ld c, 10 call TextBoxBorder - hlCoord 2, 6 + coord hl, 2, 6 ld de, HoFMonInfoText call PlaceString - hlCoord 1, 4 + coord hl, 1, 4 ld de, wcd6d call PlaceString ld a, [wHoFMonLevel] - hlCoord 8, 7 + coord hl, 8, 7 call PrintLevelCommon ld a, [wHoFMonSpecies] ld [wd0b5], a - hlCoord 3, 9 + coord hl, 3, 9 predef PrintMonType ld a, [wHoFMonSpecies] jp PlayCry @@ -203,28 +203,28 @@ HoFLoadPlayerPics: ; 7033e (1c:433e) HoFLoadMonPlayerPicTileIDs: ; 7036d (1c:436d) ; c = base tile ID ld b, 0 - hlCoord 12, 5 + coord hl, 12, 5 predef_jump CopyTileIDsFromList HoFDisplayPlayerStats: ; 70377 (1c:4377) ld hl, wd747 set 3, [hl] predef DisplayDexRating - hlCoord 0, 4 + coord hl, 0, 4 ld b, $6 ld c, $a call TextBoxBorder - hlCoord 5, 0 + coord hl, 5, 0 ld b, $2 ld c, $9 call TextBoxBorder - hlCoord 7, 2 + coord hl, 7, 2 ld de, wPlayerName call PlaceString - hlCoord 1, 6 + coord hl, 1, 6 ld de, HoFPlayTimeText call PlaceString - hlCoord 5, 7 + coord hl, 5, 7 ld de, W_PLAYTIMEHOURS + 1 ld bc, $103 call PrintNumber @@ -233,10 +233,10 @@ HoFDisplayPlayerStats: ; 70377 (1c:4377) ld de, W_PLAYTIMEMINUTES + 1 ld bc, $8102 call PrintNumber - hlCoord 1, 9 + coord hl, 1, 9 ld de, HoFMoneyText call PlaceString - hlCoord 4, 10 + coord hl, 4, 10 ld de, wPlayerMoney ld c, $a3 call PrintBCDNumber diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm index a8b4f812..841929b8 100755 --- a/engine/hidden_object_functions17.asm +++ b/engine/hidden_object_functions17.asm @@ -72,7 +72,7 @@ DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9) call LoadMonFrontSprite ld a, $80 ld [$ffe1], a - hlCoord 10, 11 + coord hl, 10, 11 predef AnimateSendingOutMon call WaitForTextScrollButtonPress call LoadScreenTilesFromBuffer1 @@ -109,11 +109,11 @@ LinkCableHelp: ; 5dc29 (17:5c29) .asm_5c51 ld hl, wd730 set 6, [hl] - hlCoord 0, 0 + coord hl, 0, 0 ld b, $8 ld c, $d call TextBoxBorder - hlCoord 2, 2 + coord hl, 2, 2 ld de, HowToLinkText call PlaceString ld hl, LinkCableHelpText2 @@ -193,13 +193,13 @@ ViridianSchoolBlackboard: ; 5dced (17:5ced) .asm_5dd15 ld hl, wd730 set 6, [hl] - hlCoord 0, 0 + coord hl, 0, 0 ld bc, $060a call TextBoxBorder - hlCoord 1, 2 + coord hl, 1, 2 ld de, StatusAilmentText1 call PlaceString - hlCoord 6, 2 + coord hl, 6, 2 ld de, StatusAilmentText2 call PlaceString ld hl, ViridianSchoolBlackboardText2 diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm index c835775e..810d9bfe 100755 --- a/engine/hidden_object_functions7.asm +++ b/engine/hidden_object_functions7.asm @@ -402,11 +402,11 @@ BillsHousePokemonList: ; 1ec05 (7:6c05) .asm_1ec2d ld hl, wd730 set 6, [hl] - hlCoord 0, 0 + coord hl, 0, 0 ld b, $a ld c, $9 call TextBoxBorder - hlCoord 2, 2 + coord hl, 2, 2 ld de, BillsMonListText call PlaceString ld hl, BillsHousePokemonListText2 diff --git a/engine/intro.asm b/engine/intro.asm index bbe47cdb..79cc2101 100755 --- a/engine/intro.asm +++ b/engine/intro.asm @@ -205,7 +205,7 @@ IntroClearScreen: ; 417f0 (10:57f0) IntroClearMiddleOfScreen: ; 417f8 (10:57f8) ; clear the area of the tile map between the black bars on the top and bottom - hlCoord 0, 4 + coord hl, 0, 4 ld bc, SCREEN_WIDTH * 10 IntroClearCommon: ; 417fe (10:57fe) @@ -263,7 +263,7 @@ IntroMoveMon: ; 4180e (10:580e) ret IntroCopyTiles: ; 4183f (10:583f) - hlCoord 13, 7 + coord hl, 13, 7 CopyTileIDsFromList_ZeroBaseTileID: ; 41842 (10:5842) ld c, 0 @@ -337,10 +337,10 @@ PlayShootingStar: ; 4188a (10:588a) IntroDrawBlackBars: ; 418e9 (10:58e9) ; clear the screen and draw black bars on the top and bottom call IntroClearScreen - hlCoord 0, 0 + coord hl, 0, 0 ld c, SCREEN_WIDTH * 4 call IntroPlaceBlackTiles - hlCoord 0, 14 + coord hl, 0, 14 ld c, SCREEN_WIDTH * 4 call IntroPlaceBlackTiles ld hl, vBGMap1 diff --git a/engine/items/items.asm b/engine/items/items.asm index 7617ba6c..bd19c152 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -913,7 +913,7 @@ ItemUseMedicine: ; dabb (3:5abb) sbc b ld [hl],a ld [wHPBarNewHP+1],a - hlCoord 4, 1 + coord hl, 4, 1 ld a,[wWhichPokemon] ld bc,2 * 20 call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled @@ -2095,7 +2095,7 @@ ItemUseTMHM: ; e479 (3:6479) call PrintText ld hl,TeachMachineMoveText call PrintText - hlCoord 14, 7 + coord hl, 14, 7 ld bc,$080f ld a,TWO_OPTION_MENU ld [wTextBoxID],a @@ -2486,7 +2486,7 @@ TossItem_: ; e6f1 (3:66f1) call CopyStringToCF4B ; copy name to wcf4b ld hl,IsItOKToTossItemText call PrintText - hlCoord 14, 7 + coord hl, 14, 7 ld bc,$080f ld a,TWO_OPTION_MENU ld [wTextBoxID],a diff --git a/engine/learn_move.asm b/engine/learn_move.asm index cb5bdbd7..1c0e038c 100755 --- a/engine/learn_move.asm +++ b/engine/learn_move.asm @@ -76,7 +76,7 @@ DontAbandonLearning: ; 6e5b (1:6e5b) AbandonLearning: ; 6eda (1:6eda) ld hl, AbandonLearningText call PrintText - hlCoord 14, 7 + coord hl, 14, 7 ld bc, $80f ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -99,7 +99,7 @@ TryingToLearn: ; 6f07 (1:6f07) push hl ld hl, TryingToLearnText call PrintText - hlCoord 14, 7 + coord hl, 14, 7 ld bc, $80f ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -120,11 +120,11 @@ TryingToLearn: ; 6f07 (1:6f07) push hl ld hl, WhichMoveToForgetText call PrintText - hlCoord 4, 7 + coord hl, 4, 7 ld b, $4 ld c, $e call TextBoxBorder - hlCoord 6, 8 + coord hl, 6, 8 ld de, wMovesString ld a, [hFlags_0xFFF6] set 2, a diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm index 59da2774..d491cd38 100644 --- a/engine/menu/bills_pc.asm +++ b/engine/menu/bills_pc.asm @@ -11,17 +11,17 @@ DisplayPCMainMenu:: ; 213c8 (8:53c8) ld a, [wNumHoFTeams] and a jr nz, .leaguePCAvailable - hlCoord 0, 0 + coord hl, 0, 0 ld b, 8 ld c, 14 jr .next .noOaksPC - hlCoord 0, 0 + coord hl, 0, 0 ld b, 6 ld c, 14 jr .next .leaguePCAvailable - hlCoord 0, 0 + coord hl, 0, 0 ld b, 10 ld c, 14 .next @@ -32,15 +32,15 @@ DisplayPCMainMenu:: ; 213c8 (8:53c8) ld a, [wd7f1] bit 0, a jr nz, .metBill - hlCoord 2, 2 + coord hl, 2, 2 ld de, SomeonesPCText jr .next2 .metBill - hlCoord 2, 2 + coord hl, 2, 2 ld de, BillsPCText .next2 call PlaceString - hlCoord 2, 4 + coord hl, 2, 4 ld de, wPlayerName call PlaceString ld l, c @@ -50,7 +50,7 @@ DisplayPCMainMenu:: ; 213c8 (8:53c8) ld a, [wd74b] bit 5, a ; received pokedex? jr z, .noOaksPC2 - hlCoord 2, 6 + coord hl, 2, 6 ld de, OaksPCText call PlaceString ld a, [wNumHoFTeams] @@ -58,20 +58,20 @@ DisplayPCMainMenu:: ; 213c8 (8:53c8) jr z, .noLeaguePC ld a, 4 ld [wMaxMenuItem], a - hlCoord 2, 8 + coord hl, 2, 8 ld de, PKMNLeaguePCText call PlaceString - hlCoord 2, 10 + coord hl, 2, 10 ld de, LogOffPCText jr .next3 .noLeaguePC - hlCoord 2, 8 + coord hl, 2, 8 ld de, LogOffPCText jr .next3 .noOaksPC2 ld a, $2 ld [wMaxMenuItem], a - hlCoord 2, 6 + coord hl, 2, 6 ld de, LogOffPCText .next3 call PlaceString @@ -122,11 +122,11 @@ BillsPCMenu: ; 214e8 (8:54e8) ld bc, (BANK(PokeballTileGraphics) << 8) + $01 call CopyVideoData call LoadScreenTilesFromBuffer2DisableBGTransfer - hlCoord 0, 0 + coord hl, 0, 0 ld b, 10 ld c, 12 call TextBoxBorder - hlCoord 2, 2 + coord hl, 2, 2 ld de, BillsPCMenuText call PlaceString ld hl, wTopMenuItemY @@ -149,7 +149,7 @@ BillsPCMenu: ; 214e8 (8:54e8) ld [wPlayerMonNumber], a ld hl, WhatText call PrintText - hlCoord 9, 14 + coord hl, 9, 14 ld b, 2 ld c, 9 call TextBoxBorder @@ -159,7 +159,7 @@ BillsPCMenu: ; 214e8 (8:54e8) jr c, .singleDigitBoxNum ; two digit box num sub 9 - hlCoord 17, 16 + coord hl, 17, 16 ld [hl], "1" add "0" jr .next @@ -167,7 +167,7 @@ BillsPCMenu: ; 214e8 (8:54e8) add "1" .next Coorda 18, 16 - hlCoord 10, 16 + coord hl, 10, 16 ld de, BoxNoPCText call PlaceString ld a, 1 @@ -391,7 +391,7 @@ HMMoveArray: ; 21745 (8:5745) db -1 DisplayDepositWithdrawMenu: ; 2174b (8:574b) - hlCoord 9, 10 + coord hl, 9, 10 ld b, 6 ld c, 9 call TextBoxBorder @@ -401,9 +401,9 @@ DisplayDepositWithdrawMenu: ; 2174b (8:574b) jr nz, .next ld de, WithdrawPCText .next - hlCoord 11, 12 + coord hl, 11, 12 call PlaceString - hlCoord 11, 14 + coord hl, 11, 14 ld de, StatsCancelPCText call PlaceString ld hl, wTopMenuItemY diff --git a/engine/menu/diploma.asm b/engine/menu/diploma.asm index 33453a53..56373dd3 100755 --- a/engine/menu/diploma.asm +++ b/engine/menu/diploma.asm @@ -12,7 +12,7 @@ DisplayDiploma: ; 566e2 (15:66e2) ld bc, $0010 ld a, BANK(CircleTile) call FarCopyData2 - hlCoord 0, 0 + coord hl, 0, 0 ld bc, $1012 predef Diploma_TextBoxBorder ld hl, DiplomaTextPointersAndCoords @@ -33,7 +33,7 @@ DisplayDiploma: ; 566e2 (15:66e2) pop bc dec c jr nz, .asm_56715 - hlCoord 10, 4 + coord hl, 10, 4 ld de, wPlayerName call PlaceString callba DrawPlayerCharacter diff --git a/engine/menu/league_pc.asm b/engine/menu/league_pc.asm index c38ab86b..560ed421 100755 --- a/engine/menu/league_pc.asm +++ b/engine/menu/league_pc.asm @@ -95,18 +95,18 @@ LeaguePCShowMon: ; 76610 (1d:6610) ld b, $0B ld c, 0 call GoPAL_SET - hlCoord 12, 5 + coord hl, 12, 5 call GetMonHeader call LoadFrontSpriteByMonIndex call GBPalNormal - hlCoord 0, 13 + coord hl, 0, 13 ld b, 2 ld c, $12 call TextBoxBorder - hlCoord 1, 15 + coord hl, 1, 15 ld de, HallOfFameNoText call PlaceString - hlCoord 16, 15 + coord hl, 16, 15 ld de, wHoFTeamNo ld bc, $0103 call PrintNumber diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 10ad7a2d..9e160f81 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -33,20 +33,20 @@ MainMenu: ; 5af2 (1:5af2) ld a,[wd088] cp a,1 jr z,.next1 - hlCoord 0, 0 + coord hl, 0, 0 ld b,6 ld c,13 call TextBoxBorder - hlCoord 2, 2 + coord hl, 2, 2 ld de,ContinueText call PlaceString jr .next2 .next1 - hlCoord 0, 0 + coord hl, 0, 0 ld b,4 ld c,13 call TextBoxBorder - hlCoord 2, 2 + coord hl, 2, 2 ld de,NewGameText call PlaceString .next2 @@ -139,12 +139,12 @@ LinkMenu: ; 5c0a (1:5c0a) call SaveScreenTilesToBuffer1 ld hl, WhereWouldYouLikeText call PrintText - hlCoord 5, 5 + coord hl, 5, 5 ld b, $6 ld c, $d call TextBoxBorder call UpdateSprites - hlCoord 7, 7 + coord hl, 7, 7 ld de, CableClubOptionsText call PlaceString xor a @@ -340,21 +340,21 @@ CableClubOptionsText: ; 5d97 (1:5d97) ContinueGame: ; 5db5 (1:5db5) xor a ld [H_AUTOBGTRANSFERENABLED], a - hlCoord 4, 7 + coord hl, 4, 7 ld b, $8 ld c, $e call TextBoxBorder - hlCoord 5, 9 + coord hl, 5, 9 ld de, SaveScreenInfoText call PlaceString - hlCoord 12, 9 + coord hl, 12, 9 ld de, wPlayerName call PlaceString - hlCoord 17, 11 + coord hl, 17, 11 call Func_5e2f - hlCoord 16, 13 + coord hl, 16, 13 call Func_5e42 - hlCoord 13, 15 + coord hl, 13, 15 call Func_5e55 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a @@ -364,23 +364,23 @@ ContinueGame: ; 5db5 (1:5db5) PrintSaveScreenText: ; 5def (1:5def) xor a ld [H_AUTOBGTRANSFERENABLED], a - hlCoord 4, 0 + coord hl, 4, 0 ld b, $8 ld c, $e call TextBoxBorder call LoadTextBoxTilePatterns call UpdateSprites - hlCoord 5, 2 + coord hl, 5, 2 ld de, SaveScreenInfoText call PlaceString - hlCoord 12, 2 + coord hl, 12, 2 ld de, wPlayerName call PlaceString - hlCoord 17, 4 + coord hl, 17, 4 call Func_5e2f - hlCoord 16, 6 + coord hl, 16, 6 call Func_5e42 - hlCoord 13, 8 + coord hl, 13, 8 call Func_5e55 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a @@ -424,28 +424,28 @@ SaveScreenInfoText: ; 5e6a (1:5e6a) next "TIME@" DisplayOptionMenu: ; 5e8a (1:5e8a) - hlCoord 0, 0 + coord hl, 0, 0 ld b,3 ld c,18 call TextBoxBorder - hlCoord 0, 5 + coord hl, 0, 5 ld b,3 ld c,18 call TextBoxBorder - hlCoord 0, 10 + coord hl, 0, 10 ld b,3 ld c,18 call TextBoxBorder - hlCoord 1, 1 + coord hl, 1, 1 ld de,TextSpeedOptionText call PlaceString - hlCoord 1, 6 + coord hl, 1, 6 ld de,BattleAnimationOptionText call PlaceString - hlCoord 1, 11 + coord hl, 1, 11 ld de,BattleStyleOptionText call PlaceString - hlCoord 2, 16 + coord hl, 2, 16 ld de,OptionMenuCancelText call PlaceString xor a @@ -639,7 +639,7 @@ SetCursorPositionsFromOptions: ; 604c (1:604c) dec hl ld a,[hl] ld [wOptionsTextSpeedCursorX],a ; text speed cursor X coordinate - hlCoord 0, 3 + coord hl, 0, 3 call .placeUnfilledRightArrow sla c ld a,1 ; On @@ -647,7 +647,7 @@ SetCursorPositionsFromOptions: ; 604c (1:604c) ld a,10 ; Off .storeBattleAnimationCursorX ld [wOptionsBattleAnimCursorX],a ; battle animation cursor X coordinate - hlCoord 0, 8 + coord hl, 0, 8 call .placeUnfilledRightArrow sla c ld a,1 @@ -655,10 +655,10 @@ SetCursorPositionsFromOptions: ; 604c (1:604c) ld a,10 .storeBattleStyleCursorX ld [wOptionsBattleStyleCursorX],a ; battle style cursor X coordinate - hlCoord 0, 13 + coord hl, 0, 13 call .placeUnfilledRightArrow ; cursor in front of Cancel - hlCoord 0, 16 + coord hl, 0, 16 ld a,1 .placeUnfilledRightArrow ld e,a diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm index 2416f0da..20deb834 100755 --- a/engine/menu/naming_screen.asm +++ b/engine/menu/naming_screen.asm @@ -4,7 +4,7 @@ AskName: ; 64eb (1:64eb) push hl ld a, [W_ISINBATTLE] dec a - hlCoord 0, 0 + coord hl, 0, 0 ld b, $4 ld c, $b call z, ClearScreenArea ; only if in wild batle @@ -13,7 +13,7 @@ AskName: ; 64eb (1:64eb) call GetMonName ld hl, DoYouWantToNicknameText call PrintText - hlCoord 14, 7 + coord hl, 14, 7 ld bc, $80f ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -93,7 +93,7 @@ DisplayNamingScreen: ; 6596 (1:6596) call LoadHpBarAndStatusTilePatterns call LoadEDTile callba LoadMonPartySpriteGfx - hlCoord 0, 4 + coord hl, 0, 4 ld b, $9 ld c, $12 call TextBoxBorder @@ -343,7 +343,7 @@ PrintAlphabet: ; 676f (1:676f) jr nz, .lowercase ld de, UpperCaseAlphabet .lowercase - hlCoord 2, 5 + coord hl, 2, 5 ld bc, $509 ; 5 rows, 9 columns .outerLoop push bc @@ -374,13 +374,13 @@ PrintNicknameAndUnderscores: ; 680e (1:680e) call CalcStringLength ld a, c ld [wHPBarMaxHP], a - hlCoord 10, 2 + coord hl, 10, 2 ld bc, $10a call ClearScreenArea - hlCoord 10, 2 + coord hl, 10, 2 ld de, wcf4b call PlaceString - hlCoord 10, 3 + coord hl, 10, 3 ld a, [wNamingScreenType] cp NAME_MON_SCREEN jr nc, .pokemon1 @@ -419,7 +419,7 @@ PrintNicknameAndUnderscores: ; 680e (1:680e) .emptySpacesRemaining ld c, a ld b, $0 - hlCoord 10, 3 + coord hl, 10, 3 add hl, bc ld [hl], $77 ; raised underscore tile id ret @@ -467,7 +467,7 @@ CalcStringLength: ; 68eb (1:68eb) jr .loop PrintNamingText: ; 68f8 (1:68f8) - hlCoord 0, 1 + coord hl, 0, 1 ld a, [wNamingScreenType] ld de, YourTextString and a @@ -482,12 +482,12 @@ PrintNamingText: ; 68f8 (1:68f8) pop af ld [wd11e], a call GetMonName - hlCoord 4, 1 + coord hl, 4, 1 call PlaceString ld hl, $1 add hl, bc ld [hl], $c9 - hlCoord 1, 3 + coord hl, 1, 3 ld de, NicknameTextString jr .placeString .notNickname diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm index fcdd5c50..00ae3912 100755 --- a/engine/menu/party_menu.asm +++ b/engine/menu/party_menu.asm @@ -30,7 +30,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) jp z,.printMessage call ErasePartyMenuCursors callba SendBlkPacket_PartyMenu - hlCoord 3, 0 + coord hl, 3, 0 ld de,wPartySpecies xor a ld c,a diff --git a/engine/menu/players_pc.asm b/engine/menu/players_pc.asm index f436ae24..89974dd0 100755 --- a/engine/menu/players_pc.asm +++ b/engine/menu/players_pc.asm @@ -22,12 +22,12 @@ PlayerPCMenu: ; 790c (1:790c) ld hl, wFlags_0xcd60 set 5, [hl] call LoadScreenTilesFromBuffer2 - hlCoord 0, 0 + coord hl, 0, 0 ld b, $8 ld c, $e call TextBoxBorder call UpdateSprites - hlCoord 2, 2 + coord hl, 2, 2 ld de, PlayersPCMenuEntries call PlaceString ld hl, wTopMenuItemY diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm index 80eedecd..08ce0da9 100755 --- a/engine/menu/pokedex.asm +++ b/engine/menu/pokedex.asm @@ -118,7 +118,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d) pop af ld [wCurrentMenuItem],a push bc - hlCoord 0, 3 + coord hl, 0, 3 ld de,20 ld bc,$7f0d ; 13 blank tiles call DrawTileLine ; cover up the menu cursor in the pokemon list @@ -126,7 +126,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d) ret .buttonBPressed push bc - hlCoord 15, 10 + coord hl, 15, 10 ld de,20 ld bc,$7f07 ; 7 blank tiles call DrawTileLine ; cover up the menu cursor in the side menu @@ -153,43 +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 - hlCoord 15, 8 + coord hl, 15, 8 ld a,$7a ; horizontal line tile ld [hli],a ld [hli],a ld [hli],a ld [hli],a ld [hli],a - hlCoord 14, 0 + coord hl, 14, 0 ld [hl],$71 ; vertical line tile - hlCoord 14, 1 + coord hl, 14, 1 call DrawPokedexVerticalLine - hlCoord 14, 9 + coord hl, 14, 9 call DrawPokedexVerticalLine ld hl,wPokedexSeen ld b,wPokedexSeenEnd - wPokedexSeen call CountSetBits ld de,wd11e - hlCoord 16, 3 + coord hl, 16, 3 ld bc,$0103 call PrintNumber ; print number of seen pokemon ld hl,wPokedexOwned ld b,wPokedexOwnedEnd - wPokedexOwned call CountSetBits ld de,wd11e - hlCoord 16, 6 + coord hl, 16, 6 ld bc,$0103 call PrintNumber ; print number of owned pokemon - hlCoord 16, 2 + coord hl, 16, 2 ld de,PokedexSeenText call PlaceString - hlCoord 16, 5 + coord hl, 16, 5 ld de,PokedexOwnText call PlaceString - hlCoord 1, 1 + coord hl, 1, 1 ld de,PokedexContentsText call PlaceString - hlCoord 16, 10 + coord hl, 16, 10 ld de,PokedexMenuItemsText call PlaceString ; find the highest pokedex number among the pokemon the player has seen @@ -211,10 +211,10 @@ HandlePokedexListMenu: ; 40111 (10:4111) .loop xor a ld [H_AUTOBGTRANSFERENABLED],a - hlCoord 4, 2 + coord hl, 4, 2 ld bc,$0e0a call ClearScreenArea - hlCoord 1, 3 + coord hl, 1, 3 ld a,[wListScrollOffset] ld [wd11e],a ld d,7 @@ -411,18 +411,18 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) push af xor a ld [hTilesetType],a - hlCoord 0, 0 + coord hl, 0, 0 ld de,1 ld bc,$6414 call DrawTileLine ; draw top border - hlCoord 0, 17 + coord hl, 0, 17 ld b,$6f call DrawTileLine ; draw bottom border - hlCoord 0, 1 + coord hl, 0, 1 ld de,20 ld bc,$6610 call DrawTileLine ; draw left border - hlCoord 19, 1 + coord hl, 19, 1 ld b,$67 call DrawTileLine ; draw right border ld a,$63 ; upper left corner tile @@ -433,14 +433,14 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) Coorda 0, 17 ld a,$6e ; lower right corner tile Coorda 19, 17 - hlCoord 0, 9 + coord hl, 0, 9 ld de,PokedexDataDividerLine call PlaceString ; draw horizontal divider line - hlCoord 9, 6 + coord hl, 9, 6 ld de,HeightWeightText call PlaceString call GetMonName - hlCoord 9, 2 + coord hl, 9, 2 call PlaceString ld hl,PokedexEntryPointers ld a,[wd11e] @@ -452,7 +452,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld a,[hli] ld e,a ld d,[hl] ; de = address of pokedex entry - hlCoord 9, 4 + coord hl, 9, 4 call PlaceString ; print species name ld h,b ld l,c @@ -460,7 +460,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld a,[wd11e] push af call IndexToPokedex - hlCoord 2, 8 + coord hl, 2, 8 ld a, "№" ld [hli],a ld a,$f2 @@ -482,7 +482,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) call Delay3 call GBPalNormal call GetMonHeader ; load pokemon picture location - hlCoord 1, 1 + coord hl, 1, 1 call LoadFlippedFrontSpriteByMonIndex ; draw pokemon picture ld a,[wcf91] call PlayCry ; play pokemon cry @@ -495,14 +495,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 - hlCoord 12, 6 + coord hl, 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) - hlCoord 15, 6 + coord hl, 15, 6 ld bc,$8102 call PrintNumber ; print inches (height) ld a,$61 ; inches symbol tile (two ticks) @@ -524,10 +524,10 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld a,[de] ; a = lower byte of weight ld [hl],a ; store lower byte of weight in [hDexWeight + 1] ld de,hDexWeight - hlCoord 11, 8 + coord hl, 11, 8 ld bc,$0205 ; no leading zeroes, right-aligned, 2 bytes, 5 digits call PrintNumber ; print weight - hlCoord 14, 8 + coord hl, 14, 8 ld a,[hDexWeight + 1] sub a,10 ld a,[hDexWeight] @@ -545,7 +545,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld [hDexWeight],a ; restore original value of [hDexWeight] pop hl inc hl ; hl = address of pokedex description text - bcCoord 1, 11 + coord bc, 1, 11 ld a,2 ld [$fff4],a call TextCommandProcessor ; print pokedex description text diff --git a/engine/menu/prize_menu.asm b/engine/menu/prize_menu.asm index f7206a7f..d1fa0c72 100755 --- a/engine/menu/prize_menu.asm +++ b/engine/menu/prize_menu.asm @@ -22,7 +22,7 @@ CeladonPrizeMenu: ; 5271b (14:671b) ld a,$01 ld [wTopMenuItemX],a call PrintPrizePrice - hlCoord 0, 2 + coord hl, 0, 2 ld b,$08 ld c,$10 call TextBoxBorder @@ -93,42 +93,42 @@ GetPrizeMenuId: ; 5278e (14:678e) ld a,[W_PRIZE1] ld [wd11e],a call GetItemName - hlCoord 2, 4 + coord hl, 2, 4 call PlaceString ld a,[W_PRIZE2] ld [wd11e],a call GetItemName - hlCoord 2, 6 + coord hl, 2, 6 call PlaceString ld a,[W_PRIZE3] ld [wd11e],a call GetItemName - hlCoord 2, 8 + coord hl, 2, 8 call PlaceString jr .putNoThanksText .putMonName ld a,[W_PRIZE1] ld [wd11e],a call GetMonName - hlCoord 2, 4 + coord hl, 2, 4 call PlaceString ld a,[W_PRIZE2] ld [wd11e],a call GetMonName - hlCoord 2, 6 + coord hl, 2, 6 call PlaceString ld a,[W_PRIZE3] ld [wd11e],a call GetMonName - hlCoord 2, 8 + coord hl, 2, 8 call PlaceString .putNoThanksText - hlCoord 2, 10 + coord hl, 2, 10 ld de,NoThanksText call PlaceString ; put prices on the right side of the textbox ld de,wd141 - hlCoord 13, 5 + coord hl, 13, 5 ; reg. c: ; [low nybble] number of bytes ; [bit 765 = %100] space-padding (not zero-padding) @@ -137,29 +137,29 @@ GetPrizeMenuId: ; 5278e (14:678e) ; used by text-command $02) call PrintBCDNumber ld de,wd143 - hlCoord 13, 7 + coord hl, 13, 7 ld c,(%1 << 7 | 2) call PrintBCDNumber ld de,wd145 - hlCoord 13, 9 + coord hl, 13, 9 ld c,(1 << 7 | 2) jp PrintBCDNumber INCLUDE "data/prizes.asm" PrintPrizePrice: ; 5287a (14:687a) - hlCoord 11, 0 + coord hl, 11, 0 ld b,$01 ld c,$07 call TextBoxBorder call UpdateSprites - hlCoord 12, 0 + coord hl, 12, 0 ld de,.CoinText call PlaceString - hlCoord 13, 1 + coord hl, 13, 1 ld de,.SixSpacesText call PlaceString - hlCoord 13, 1 + coord hl, 13, 1 ld de,wPlayerCoins ld c,%10000010 call PrintBCDNumber diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index 2804ef7b..0036d66e 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -285,7 +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) - hlCoord 0, 1 + coord hl, 0, 1 ld bc,2 * 20 ; menu cursor positions are 2 rows apart ld a,6 ; 6 menu cursor positions .loop @@ -526,10 +526,10 @@ DrawTrainerInfo: ; 1349a (4:749a) ld bc,(BANK(RedPicFront) << 8) | $01 predef DisplayPicCenteredOrUpperRight call DisableLCD - hlCoord 0, 2 + coord hl, 0, 2 ld a," " call TrainerInfo_DrawVerticalLine - hlCoord 1, 2 + coord hl, 1, 2 call TrainerInfo_DrawVerticalLine ld hl,vChars2 + $70 ld de,vChars2 @@ -572,7 +572,7 @@ DrawTrainerInfo: ; 1349a (4:749a) dec a ld [hli],a ld [hl],1 - hlCoord 0, 0 + coord hl, 0, 0 call TrainerInfo_DrawTextBox ld hl,wTrainerInfoTextBoxWidthPlus1 ld a,16 + 1 @@ -580,27 +580,27 @@ DrawTrainerInfo: ; 1349a (4:749a) dec a ld [hli],a ld [hl],3 - hlCoord 1, 10 + coord hl, 1, 10 call TrainerInfo_DrawTextBox - hlCoord 0, 10 + coord hl, 0, 10 ld a,$d7 call TrainerInfo_DrawVerticalLine - hlCoord 19, 10 + coord hl, 19, 10 call TrainerInfo_DrawVerticalLine - hlCoord 6, 9 + coord hl, 6, 9 ld de,TrainerInfo_BadgesText call PlaceString - hlCoord 2, 2 + coord hl, 2, 2 ld de,TrainerInfo_NameMoneyTimeText call PlaceString - hlCoord 7, 2 + coord hl, 7, 2 ld de,wPlayerName call PlaceString - hlCoord 8, 4 + coord hl, 8, 4 ld de,wPlayerMoney ld c,$e3 call PrintBCDNumber - hlCoord 9, 6 + coord hl, 9, 6 ld de,W_PLAYTIMEHOURS + 1 ; hours ld bc,$4103 call PrintNumber @@ -713,7 +713,7 @@ SwitchPartyMon: ; 13613 (4:7613) SwitchPartyMon_ClearGfx: ; 13625 (4:7625) push af - hlCoord 0, 0 + coord hl, 0, 0 ld bc, SCREEN_WIDTH * 2 call AddNTimes ld c, SCREEN_WIDTH * 2 diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm index 3f73a84f..75de182b 100755 --- a/engine/menu/status_screen.asm +++ b/engine/menu/status_screen.asm @@ -105,7 +105,7 @@ StatusScreen: ; 12953 (4:6953) push af xor a ld [hTilesetType], a - hlCoord 19, 1 + coord hl, 19, 1 ld bc, $060a call DrawLineBox ; Draws the box around name, HP and status ld de, $fffa @@ -113,54 +113,54 @@ StatusScreen: ; 12953 (4:6953) ld [hl], $f2 ; . after No ("." is a different one) dec hl ld [hl], "№" - hlCoord 19, 9 + coord hl, 19, 9 ld bc, $0806 call DrawLineBox ; Draws the box around types, ID No. and OT - hlCoord 10, 9 + coord hl, 10, 9 ld de, Type1Text call PlaceString ; "TYPE1/" - hlCoord 11, 3 + coord hl, 11, 3 predef DrawHP ld hl, wcf25 call GetHealthBarColor ld b, $3 call GoPAL_SET ; SGB palette - hlCoord 16, 6 + coord hl, 16, 6 ld de, wLoadedMonStatus call PrintStatusCondition jr nz, .StatusWritten - hlCoord 16, 6 + coord hl, 16, 6 ld de, OKText call PlaceString ; "OK" .StatusWritten - hlCoord 9, 6 + coord hl, 9, 6 ld de, StatusText call PlaceString ; "STATUS/" - hlCoord 14, 2 + coord hl, 14, 2 call PrintLevel ; Pokémon level ld a, [W_MONHDEXNUM] ld [wd11e], a ld [wd0b5], a predef IndexToPokedex - hlCoord 3, 7 + coord hl, 3, 7 ld de, wd11e ld bc, $8103 ; Zero-padded, 3 call PrintNumber ; Pokémon no. - hlCoord 11, 10 + coord hl, 11, 10 predef PrintMonType ld hl, NamePointers2 call .GetStringPointer ld d, h ld e, l - hlCoord 9, 1 + coord hl, 9, 1 call PlaceString ; Pokémon name ld hl, OTPointers call .GetStringPointer ld d, h ld e, l - hlCoord 12, 16 + coord hl, 12, 16 call PlaceString ; OT - hlCoord 12, 14 + coord hl, 12, 14 ld de, wLoadedMonOTID ld bc, $8205 ; 5 call PrintNumber ; ID Number @@ -168,7 +168,7 @@ StatusScreen: ; 12953 (4:6953) call PrintStatsBox call Delay3 call GBPalNormal - hlCoord 1, 0 + coord hl, 1, 0 call LoadFlippedFrontSpriteByMonIndex ; draw Pokémon picture ld a, [wcf91] call PlayCry ; play Pokémon cry @@ -247,19 +247,19 @@ PrintStatsBox: ; 12ae4 (4:6ae4) ld a, d and a ; a is 0 from the status screen jr nz, .DifferentBox - hlCoord 0, 8 + coord hl, 0, 8 ld b, $8 ld c, $8 call TextBoxBorder ; Draws the box - hlCoord 1, 9 ; Start printing stats from here + coord hl, 1, 9 ; Start printing stats from here ld bc, $0019 ; Number offset jr .PrintStats .DifferentBox - hlCoord 9, 2 + coord hl, 9, 2 ld b, $8 ld c, $9 call TextBoxBorder - hlCoord 11, 3 + coord hl, 11, 3 ld bc, $0018 .PrintStats push bc @@ -306,16 +306,16 @@ StatusScreen2: ; 12b57 (4:6b57) ld bc, NUM_MOVES call CopyData callab FormatMovesString - hlCoord 9, 2 + coord hl, 9, 2 ld bc, $050a call ClearScreenArea ; Clear under name - hlCoord 19, 3 + coord hl, 19, 3 ld [hl], $78 - hlCoord 0, 8 + coord hl, 0, 8 ld b, $8 ld c, $12 call TextBoxBorder ; Draw move container - hlCoord 2, 9 + coord hl, 2, 9 ld de, wMovesString call PlaceString ; Print moves ld a, [wNumMovesMinusOne] @@ -324,7 +324,7 @@ StatusScreen2: ; 12b57 (4:6b57) ld a, $4 sub c ld b, a ; Number of moves ? - hlCoord 11, 10 + coord hl, 11, 10 ld de, SCREEN_WIDTH * 2 ld a, $72 ; special P tile id call StatusScreen_PrintPP ; Print "PP" @@ -336,7 +336,7 @@ StatusScreen2: ; 12b57 (4:6b57) call StatusScreen_PrintPP ; Fill the rest with -- .InitPP ; 12bbb ld hl, wLoadedMonMoves - deCoord 14, 10 + coord de, 14, 10 ld b, 0 .PrintPP ; 12bc3 ld a, [hli] @@ -386,7 +386,7 @@ StatusScreen2: ; 12b57 (4:6b57) cp $4 jr nz, .PrintPP .PPDone - hlCoord 9, 3 + coord hl, 9, 3 ld de, EXPPointsText call PlaceString ld a, [wLoadedMonLevel] ; level @@ -396,7 +396,7 @@ StatusScreen2: ; 12b57 (4:6b57) inc a ld [wLoadedMonLevel], a ; Increase temporarily if not 100 .Level100 - hlCoord 14, 6 + coord hl, 14, 6 ld [hl], $70 ; 1-tile "to" inc hl inc hl @@ -404,22 +404,22 @@ StatusScreen2: ; 12b57 (4:6b57) pop af ld [wLoadedMonLevel], a ld de, wLoadedMonExp - hlCoord 12, 4 + coord hl, 12, 4 ld bc, $0307 call PrintNumber ; exp call .asm_12c86 ld de, wLoadedMonExp - hlCoord 7, 6 + coord hl, 7, 6 ld bc, $0307 call PrintNumber - hlCoord 9, 0 + coord hl, 9, 0 call StatusScreen_ClearName - hlCoord 9, 1 + coord hl, 9, 1 call StatusScreen_ClearName ld a, [W_MONHDEXNUM] ld [wd11e], a call GetMonName - hlCoord 9, 1 + coord hl, 9, 1 call PlaceString ld a, $1 ld [$ffba], a diff --git a/engine/menu/vending_machine.asm b/engine/menu/vending_machine.asm index 07cf8854..0f6c6a13 100755 --- a/engine/menu/vending_machine.asm +++ b/engine/menu/vending_machine.asm @@ -17,15 +17,15 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0) ld [wTopMenuItemX], a ld hl, wd730 set 6, [hl] - hlCoord 0, 3 + coord hl, 0, 3 ld b, 8 ld c, 12 call TextBoxBorder call UpdateSprites - hlCoord 2, 5 + coord hl, 2, 5 ld de, DrinkText call PlaceString - hlCoord 9, 6 + coord hl, 9, 6 ld de, DrinkPriceText call PlaceString ld hl, wd730 diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index bd7f672e..c7b2f4d6 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -68,7 +68,7 @@ OakSpeech: ; 6115 (1:6115) ld [wd0b5],a ld [wcf91],a call GetMonHeader - hlCoord 6, 4 + coord hl, 6, 4 call LoadFlippedFrontSpriteByMonIndex call MovePicLeft ld hl,OakSpeechText2 @@ -141,7 +141,7 @@ OakSpeech: ; 6115 (1:6115) ld [MBC1RomBank],a ld c,20 call DelayFrames - hlCoord 6, 5 + coord hl, 6, 5 ld b,7 ld c,7 call ClearScreenArea @@ -224,9 +224,9 @@ IntroDisplayPicCenteredOrUpperRight: ; 62a4 (1:62a4) pop bc ld a,c and a - hlCoord 15, 1 + coord hl, 15, 1 jr nz,.next - hlCoord 6, 4 + coord hl, 6, 4 .next xor a ld [$FFE1],a diff --git a/engine/oak_speech2.asm b/engine/oak_speech2.asm index f881b43b..bdc4d38f 100755 --- a/engine/oak_speech2.asm +++ b/engine/oak_speech2.asm @@ -66,7 +66,7 @@ HisNameIsText: ; 69e7 (1:69e7) OakSpeechSlidePicLeft: ; 69ec (1:69ec) push de - hlCoord 0, 0 + coord hl, 0, 0 lb bc, 12, 11 call ClearScreenArea ; clear the name list text box ld c, 10 @@ -76,13 +76,13 @@ OakSpeechSlidePicLeft: ; 69ec (1:69ec) ld bc, $b call CopyData call Delay3 - hlCoord 12, 4 + coord hl, 12, 4 lb de, 6, 6 * SCREEN_WIDTH + 5 ld a, $ff jr OakSpeechSlidePicCommon OakSpeechSlidePicRight: ; 6a12 (1:6a12) - hlCoord 5, 4 + coord hl, 5, 4 lb de, 6, 6 * SCREEN_WIDTH + 5 xor a @@ -161,15 +161,15 @@ OakSpeechSlidePicCommon: ; 6a19 (1:6a19) DisplayIntroNameTextBox: ; 6a6c (1:6a6c) push de - hlCoord 0, 0 + coord hl, 0, 0 ld b, $a ld c, $9 call TextBoxBorder - hlCoord 3, 0 + coord hl, 3, 0 ld de, .namestring call PlaceString pop de - hlCoord 2, 2 + coord hl, 2, 2 call PlaceString call UpdateSprites xor a diff --git a/engine/overworld/cinnabar_lab.asm b/engine/overworld/cinnabar_lab.asm index 3d39ad6b..18ce23ed 100755 --- a/engine/overworld/cinnabar_lab.asm +++ b/engine/overworld/cinnabar_lab.asm @@ -20,7 +20,7 @@ GiveFossilToCinnabarLab: ; 61006 (18:5006) dec l ld b, l ld c, $d - hlCoord 0, 0 + coord hl, 0, 0 call TextBoxBorder call UpdateSprites call Func_610c2 @@ -101,7 +101,7 @@ Func_610c2: ; 610c2 (18:50c2) push hl ld [wd11e], a call GetItemName - hlCoord 2, 2 + coord hl, 2, 2 ld a, [$ffdb] ld bc, SCREEN_WIDTH * 2 call AddNTimes diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index c85a4174..89b09bba 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -704,7 +704,7 @@ GetTileSpriteStandsOn: ; 5207 (1:5207) add SCREEN_WIDTH ; screen X tile + 20 ld d, $0 ld e, a - hlCoord 0, 0 + coord hl, 0, 0 add hl, bc add hl, bc add hl, bc diff --git a/engine/overworld/pokemart.asm b/engine/overworld/pokemart.asm index e6fdfc92..ebc99eed 100755 --- a/engine/overworld/pokemart.asm +++ b/engine/overworld/pokemart.asm @@ -84,7 +84,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) ld hl,PokemartTellSellPriceText ld bc,$0e01 call PrintText - hlCoord 14, 7 + coord hl, 14, 7 ld bc,$080f ld a,TWO_OPTION_MENU ld [wTextBoxID],a @@ -162,7 +162,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) call CopyStringToCF4B ; copy name to wcf4b ld hl,PokemartTellBuyPriceText call PrintText - hlCoord 14, 7 + coord hl, 14, 7 ld bc,$080f ld a,TWO_OPTION_MENU ld [wTextBoxID],a diff --git a/engine/save.asm b/engine/save.asm index 6dc1a46c..56468595 100755 --- a/engine/save.asm +++ b/engine/save.asm @@ -151,10 +151,10 @@ SaveSAV: ; 7370a (1c:770a) ret nz .save call SaveSAVtoSRAM - hlCoord 1, 13 + coord hl, 1, 13 ld bc,$0412 call ClearScreenArea ; clear area 4x12 starting at 13,1 - hlCoord 1, 14 + coord hl, 1, 14 ld de,NowSavingString call PlaceString ld c,120 @@ -172,7 +172,7 @@ NowSavingString: SaveSAVConfirm: ; 73768 (1c:7768) call PrintText - hlCoord 0, 7 + coord hl, 0, 7 ld bc,$0801 ld a,TWO_OPTION_MENU ld [wTextBoxID],a @@ -426,20 +426,20 @@ Func_7393f: ; 7393f (1c:793f) and $7f ld [wCurrentMenuItem], a ld [wLastMenuItem], a - hlCoord 0, 0 + coord hl, 0, 0 ld b, $2 ld c, $9 call TextBoxBorder ld hl, ChooseABoxText call PrintText - hlCoord 11, 0 + coord hl, 11, 0 ld b, $c ld c, $7 call TextBoxBorder ld hl, hFlags_0xFFF6 set 2, [hl] ld de, BoxNames - hlCoord 13, 1 + coord hl, 13, 1 call PlaceString ld hl, hFlags_0xFFF6 res 2, [hl] @@ -448,7 +448,7 @@ Func_7393f: ; 7393f (1c:793f) cp 9 jr c, .asm_739a6 sub 9 - hlCoord 8, 2 + coord hl, 8, 2 ld [hl], "1" add "0" jr .asm_739a8 @@ -456,11 +456,11 @@ Func_7393f: ; 7393f (1c:793f) add "1" .asm_739a8 Coorda 9, 2 - hlCoord 1, 2 + coord hl, 1, 2 ld de, BoxNoText call PlaceString call Func_73a84 - hlCoord 18, 1 + coord hl, 18, 1 ld de, wWhichTrade ld bc, SCREEN_WIDTH ld a, $c diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 9a4c85da..ea1eb315 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -79,11 +79,11 @@ MainSlotMachineLoop: ; 37395 (d:7395) ld [wCurrentMenuItem], a ld [wLastMenuItem], a ld [wMenuWatchMovingOutOfBounds], a - hlCoord 14, 11 + coord hl, 14, 11 ld b, 5 ld c, 4 call TextBoxBorder - hlCoord 16, 12 + coord hl, 16, 12 ld de, CoinMultiplierSlotMachineText call PlaceString call HandleMenuInput @@ -133,7 +133,7 @@ MainSlotMachineLoop: ; 37395 (d:7395) .skip2 ld hl, OneMoreGoSlotMachineText call PrintText - hlCoord 14, 12 + coord hl, 14, 12 ld bc, $0d0f xor a ; YES_NO_MENU ld [wTwoOptionMenuID], a @@ -614,7 +614,7 @@ YeahText: ; 37722 (d:7722) SlotMachine_PrintWinningSymbol: ; 37728 (d:7728) ; prints winning symbol and down arrow in text box - hlCoord 2, 14 + coord hl, 2, 14 ld a, [wSlotMachineWinningSymbol] add $25 ld [hli], a @@ -626,7 +626,7 @@ SlotMachine_PrintWinningSymbol: ; 37728 (d:7728) ld [hli], a inc a ld [hl], a - hlCoord 18, 16 + coord hl, 18, 16 ld [hl], $ee ; down arrow ret @@ -641,13 +641,13 @@ SlotMachine_SubtractBetFromPlayerCoins: ; 37741 (d:7741) predef SubBCDPredef SlotMachine_PrintCreditCoins: ; 37754 (d:7754) - hlCoord 5, 1 + coord hl, 5, 1 ld de, wPlayerCoins ld c, $2 jp PrintBCDNumber SlotMachine_PrintPayoutCoins: ; 3775f (d:775f) - hlCoord 11, 1 + coord hl, 11, 1 ld de, wPayoutCoins ld bc, $8204 ; 2 bytes, 4 digits, leading zeroes jp PrintNumber @@ -724,19 +724,19 @@ SlotMachine_LightBalls: ; 377d5 (d:77d5) jr z, SlotMachine_UpdateTwoCoinBallTiles SlotMachine_UpdateThreeCoinBallTiles: ; 377e3 (d:77e3) - hlCoord 3, 2 + coord hl, 3, 2 call SlotMachine_UpdateBallTiles - hlCoord 3, 10 + coord hl, 3, 10 call SlotMachine_UpdateBallTiles SlotMachine_UpdateTwoCoinBallTiles: ; 377ef (d:77ef) - hlCoord 3, 4 + coord hl, 3, 4 call SlotMachine_UpdateBallTiles - hlCoord 3, 8 + coord hl, 3, 8 call SlotMachine_UpdateBallTiles SlotMachine_UpdateOneCoinBallTiles: ; 377fb (d:77fb) - hlCoord 3, 6 + coord hl, 3, 6 SlotMachine_UpdateBallTiles: ; 377fe (d:77fe) ld a, [wd08a] @@ -863,7 +863,7 @@ LoadSlotMachineTiles: ; 378a8 (d:78a8) ld a, BANK(SlotMachineTiles2) call FarCopyData2 ld hl, SlotMachineMap - deCoord 0, 0 + coord de, 0, 0 ld bc, $00f0 call CopyData call EnableLCD diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm index 74f7ad61..3a4e2e4c 100755 --- a/engine/titlescreen.asm +++ b/engine/titlescreen.asm @@ -70,7 +70,7 @@ ENDC call ClearBothBGMaps ; place tiles for pokemon logo (except for the last row) - hlCoord 2, 1 + coord hl, 2, 1 ld a, $80 ld de, SCREEN_WIDTH ld c, 6 @@ -88,7 +88,7 @@ ENDC jr nz, .pokemonLogoTileLoop ; place tiles for the last row of the pokemon logo - hlCoord 2, 7 + coord hl, 2, 7 ld a, $31 ld b, $10 .pokemonLogoLastTileRowLoop @@ -105,7 +105,7 @@ ENDC ld [hl], a ; place tiles for title screen copyright - hlCoord 2, 17 + coord hl, 2, 17 ld de, .tileScreenCopyrightTiles ld b, $10 .tileScreenCopyrightTilesLoop @@ -362,7 +362,7 @@ ClearBothBGMaps: ; 4519 (1:4519) LoadTitleMonSprite: ; 4524 (1:4524) ld [wcf91], a ld [wd0b5], a - hlCoord 5, 10 + coord hl, 5, 10 call GetMonHeader jp LoadFrontSpriteByMonIndex @@ -381,7 +381,7 @@ LoadCopyrightTiles: ; 4541 (1:4541) ld hl, vChars2 + $600 ld bc, (BANK(NintendoCopyrightLogoGraphics) << 8) + $1c call CopyVideoData - hlCoord 2, 7 + coord hl, 2, 7 ld de, CopyrightTextString jp PlaceString @@ -395,7 +395,7 @@ INCLUDE "data/title_mons.asm" ; prints version text (red, blue) PrintGameVersionOnTitleScreen: ; 4598 (1:4598) - hlCoord 7, 8 + coord hl, 7, 8 ld de, VersionOnTitleScreenText jp PlaceString diff --git a/engine/town_map.asm b/engine/town_map.asm index a92f49e4..302efa0f 100755 --- a/engine/town_map.asm +++ b/engine/town_map.asm @@ -11,7 +11,7 @@ DisplayTownMap: ; 70e3e (1c:4e3e) push af ld b, $0 call DrawPlayerOrBirdSprite ; player sprite - hlCoord 1, 0 + coord hl, 1, 0 ld de, wcd6d call PlaceString ld hl, wOAMBuffer @@ -28,7 +28,7 @@ DisplayTownMap: ; 70e3e (1c:4e3e) jr .enterLoop .townMapLoop - hlCoord 0, 0 + coord hl, 0, 0 ld bc, $114 call ClearScreenArea ld hl, TownMapOrder @@ -55,7 +55,7 @@ DisplayTownMap: ; 70e3e (1c:4e3e) inc de cp $50 jr nz, .copyMapName - hlCoord 1, 0 + coord hl, 1, 0 ld de, wcd6d call PlaceString ld hl, wOAMBuffer + $10 @@ -117,7 +117,7 @@ LoadTownMap_Nest: ; 70f60 (1c:4f60) push hl call DisplayWildLocations call GetMonName - hlCoord 1, 0 + coord hl, 1, 0 call PlaceString ld h, b ld l, c @@ -152,34 +152,34 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) push af ld [hl], $ff push hl - hlCoord 0, 0 + coord hl, 0, 0 ld de, ToText call PlaceString ld a, [W_CURMAP] ld b, $0 call DrawPlayerOrBirdSprite ld hl, wFlyLocationsList - deCoord 18, 0 + coord de, 18, 0 .townMapFlyLoop ld a, $7f ld [de], a push hl push hl - hlCoord 3, 0 + coord hl, 3, 0 ld bc, $10f call ClearScreenArea pop hl ld a, [hl] ld b, $4 call DrawPlayerOrBirdSprite ; draw bird sprite - hlCoord 3, 0 + coord hl, 3, 0 ld de, wcd6d call PlaceString ld c, 15 call DelayFrames - hlCoord 18, 0 + coord hl, 18, 0 ld [hl], $ed - hlCoord 19, 0 + coord hl, 19, 0 ld [hl], $ee pop hl .inputLoop @@ -218,7 +218,7 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) ld [hl], a ret .pressedUp - deCoord 18, 0 + coord de, 18, 0 inc hl ld a, [hl] cp $ff @@ -230,7 +230,7 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) ld hl, wFlyLocationsList jp .townMapFlyLoop .pressedDown - deCoord 19, 0 + coord de, 19, 0 dec hl ld a, [hl] cp $ff @@ -276,7 +276,7 @@ LoadTownMap: ; 7109b (1c:509b) call GBPalWhiteOutWithDelay3 call ClearScreen call UpdateSprites - hlCoord 0, 0 + coord hl, 0, 0 ld b, $12 ld c, $12 call TextBoxBorder @@ -291,7 +291,7 @@ LoadTownMap: ; 7109b (1c:509b) ld bc, $8 ld a, BANK(MonNestIcon) call FarCopyDataDouble - hlCoord 0, 0 + coord hl, 0, 0 ld de, CompressedMap .nextTile ld a, [de] @@ -394,11 +394,11 @@ DisplayWildLocations: ; 711ef (1c:51ef) and a ; were any OAM entries written? jr nz, .drawPlayerSprite ; if no OAM entries were written, print area unknown text - hlCoord 1, 7 + coord hl, 1, 7 ld b, $2 ld c, $f call TextBoxBorder - hlCoord 2, 9 + coord hl, 2, 9 ld de, AreaUnknownText call PlaceString jr .done diff --git a/engine/trade.asm b/engine/trade.asm index 37ff5c05..531085b9 100755 --- a/engine/trade.asm +++ b/engine/trade.asm @@ -148,7 +148,7 @@ Trade_Delay80: ; 41191 (10:5191) jp DelayFrames Trade_ClearTileMap: ; 41196 (10:5196) - hlCoord 0, 0 + coord hl, 0, 0 ld bc, 20 * 18 ld a, " " jp FillMemory @@ -234,7 +234,7 @@ Trade_ShowPlayerMon: ; 41245 (10:5245) ld [hSCX], a xor a ld [H_AUTOBGTRANSFERENABLED], a - hlCoord 4, 0 + coord hl, 4, 0 ld b, 6 ld c, 10 call TextBoxBorder @@ -283,7 +283,7 @@ Trade_DrawOpenEndOfLinkCable: ; 41298 (10:5298) call DelayFrame ld a, %10001011 ld [rLCDC], a - hlCoord 6, 2 + coord hl, 6, 2 ld b, $7 ; open end of link cable tile ID list index call CopyTileIDsFromList_ZeroBaseTileID call Trade_CopyTileMapToVRAM @@ -355,7 +355,7 @@ Trade_ShowEnemyMon: ; 41336 (10:5336) ld a, TRADE_BALL_TILT_ANIM call Trade_ShowAnimation call Trade_ShowClearedWindow - hlCoord 4, 10 + coord hl, 4, 10 ld b, 6 ld c, 10 call TextBoxBorder @@ -372,7 +372,7 @@ Trade_ShowEnemyMon: ; 41336 (10:5336) ld a, [wTradedEnemyMonSpecies] call PlayCry call Trade_Delay100 - hlCoord 4, 10 + coord hl, 4, 10 ld bc, $80c call ClearScreenArea jp PrintTradeTakeCareText @@ -464,7 +464,7 @@ Trade_DrawLeftGameboy: ; 4142d (10:542d) call Trade_ClearTileMap ; draw link cable - hlCoord 11, 4 + coord hl, 11, 4 ld a, $5d ld [hli], a ld a, $5e @@ -475,16 +475,16 @@ Trade_DrawLeftGameboy: ; 4142d (10:542d) jr nz, .loop ; draw gameboy pic - hlCoord 5, 3 + coord hl, 5, 3 ld b, $6 call CopyTileIDsFromList_ZeroBaseTileID ; draw text box with player name below gameboy pic - hlCoord 4, 12 + coord hl, 4, 12 ld b, 2 ld c, 7 call TextBoxBorder - hlCoord 5, 14 + coord hl, 5, 14 ld de, wPlayerName call PlaceString @@ -494,7 +494,7 @@ Trade_DrawRightGameboy: ; 4145c (10:545c) call Trade_ClearTileMap ; draw horizontal segment of link cable - hlCoord 0, 4 + coord hl, 0, 4 ld a, $5e ld c, $e .loop @@ -522,16 +522,16 @@ Trade_DrawRightGameboy: ; 4145c (10:545c) ld [hl], a ; draw gameboy pic - hlCoord 7, 8 + coord hl, 7, 8 ld b, $6 call CopyTileIDsFromList_ZeroBaseTileID ; draw text box with enemy name above link cable - hlCoord 6, 0 + coord hl, 6, 0 ld b, $2 ld c, $7 call TextBoxBorder - hlCoord 7, 2 + coord hl, 7, 2 ld de, wLinkEnemyTrainerName call PlaceString @@ -540,7 +540,7 @@ Trade_DrawRightGameboy: ; 4145c (10:545c) Trade_DrawCableAcrossScreen: ; 4149f (10:549f) ; Draws the link cable across the screen. call Trade_ClearTileMap - hlCoord 0, 4 + coord hl, 0, 4 ld a, $5e ld c, SCREEN_WIDTH .loop @@ -553,7 +553,7 @@ Trade_CopyCableTilesOffScreen: ; 414ae (10:54ae) ; This is used to copy the link cable tiles off screen so that the cable ; continues when the screen is scrolled. push hl - hlCoord 0, 4 + coord hl, 0, 4 call CopyToScreenEdgeTiles pop hl ld a, h @@ -737,7 +737,7 @@ Trade_LoadMonSprite: ; 415a4 (10:55a4) xor $1 ld [H_AUTOBGTRANSFERENABLED], a call GetMonHeader - hlCoord 7, 2 + coord hl, 7, 2 call LoadFlippedFrontSpriteByMonIndex ld c, 10 jp DelayFrames diff --git a/engine/trade2.asm b/engine/trade2.asm index da199e77..d7a16716 100755 --- a/engine/trade2.asm +++ b/engine/trade2.asm @@ -1,43 +1,43 @@ Trade_PrintPlayerMonInfoText: ; 42769 (10:6769) - hlCoord 5, 0 + coord hl, 5, 0 ld de,Trade_MonInfoText call PlaceString ld a,[wTradedPlayerMonSpecies] ld [wd11e],a predef IndexToPokedex - hlCoord 9, 0 + coord hl, 9, 0 ld de,wd11e ld bc,$8103 call PrintNumber - hlCoord 5, 2 + coord hl, 5, 2 ld de,wcf4b call PlaceString - hlCoord 8, 4 + coord hl, 8, 4 ld de,wTradedPlayerMonOT call PlaceString - hlCoord 8, 6 + coord hl, 8, 6 ld de,wTradedPlayerMonOTID ld bc,$8205 jp PrintNumber Trade_PrintEnemyMonInfoText: ; 427a7 (10:67a7) - hlCoord 5, 10 + coord hl, 5, 10 ld de,Trade_MonInfoText call PlaceString ld a,[wTradedEnemyMonSpecies] ld [wd11e],a predef IndexToPokedex - hlCoord 9, 10 + coord hl, 9, 10 ld de,wd11e ld bc,$8103 call PrintNumber - hlCoord 5, 12 + coord hl, 5, 12 ld de,wcd6d call PlaceString - hlCoord 8, 14 + coord hl, 8, 14 ld de,wTradedEnemyMonOT call PlaceString - hlCoord 8, 16 + coord hl, 8, 16 ld de,wTradedEnemyMonOTID ld bc,$8205 jp PrintNumber diff --git a/home.asm b/home.asm index f9004e7e..1b910054 100644 --- a/home.asm +++ b/home.asm @@ -1405,7 +1405,7 @@ DisplayListMenuID:: ; 2be6 (0:2be6) call DisplayTextBoxID ; draw the menu text box call UpdateSprites ; disable sprites behind the text box ; the code up to .skipMovingSprites appears to be useless - hlCoord 4, 2 ; coordinates of upper left corner of menu text box + coord hl, 4, 2 ; coordinates of upper left corner of menu text box ld de,$090e ; height and width of menu text box ld a,[wListMenuID] and a ; is it a PC pokemon list? @@ -1446,7 +1446,7 @@ DisplayListMenuIDLoop:: ; 2c53 (0:2c53) call DelayFrames xor a ld [wCurrentMenuItem],a - hlCoord 5, 4 + coord hl, 5, 4 ld a,l ld [wMenuCursorLocation],a ld a,h @@ -1568,23 +1568,23 @@ DisplayListMenuIDLoop:: ; 2c53 (0:2c53) DisplayChooseQuantityMenu:: ; 2d57 (0:2d57) ; text box dimensions/coordinates for just quantity - hlCoord 15, 9 + coord hl, 15, 9 ld b,1 ; height ld c,3 ; width ld a,[wListMenuID] cp a,PRICEDITEMLISTMENU jr nz,.drawTextBox ; text box dimensions/coordinates for quantity and price - hlCoord 7, 9 + coord hl, 7, 9 ld b,1 ; height ld c,11 ; width .drawTextBox call TextBoxBorder - hlCoord 16, 10 + coord hl, 16, 10 ld a,[wListMenuID] cp a,PRICEDITEMLISTMENU jr nz,.printInitialQuantity - hlCoord 8, 10 + coord hl, 8, 10 .printInitialQuantity ld de,InitialQuantityText call PlaceString @@ -1624,7 +1624,7 @@ DisplayChooseQuantityMenu:: ; 2d57 (0:2d57) ld a,[wMaxItemQuantity] ld [hl],a .handleNewQuantity - hlCoord 17, 10 + coord hl, 17, 10 ld a,[wListMenuID] cp a,PRICEDITEMLISTMENU jr nz,.printQuantity @@ -1663,13 +1663,13 @@ DisplayChooseQuantityMenu:: ; 2d57 (0:2d57) ld a,[hDivideBCDQuotient + 2] ld [hMoney + 2],a .skipHalvingPrice - hlCoord 12, 10 + coord hl, 12, 10 ld de,SpacesBetweenQuantityAndPriceText call PlaceString ld de,hMoney ; total price ld c,$a3 call PrintBCDNumber - hlCoord 9, 10 + coord hl, 9, 10 .printQuantity ld de,wItemQuantity ; current quantity ld bc,$8102 ; print leading zeroes, 1 byte, 2 digits @@ -1708,7 +1708,7 @@ ExitListMenu:: ; 2e3b (0:2e3b) ret PrintListMenuEntries:: ; 2e5a (0:2e5a) - hlCoord 5, 3 + coord hl, 5, 3 ld b,$09 ld c,$0e call ClearScreenArea @@ -1733,7 +1733,7 @@ PrintListMenuEntries:: ; 2e5a (0:2e5a) jr nc,.noCarry inc d .noCarry - hlCoord 6, 4 ; coordinates of first list entry name + coord hl, 6, 4 ; coordinates of first list entry name ld b,4 ; print 4 names .loop ld a,b @@ -3011,7 +3011,7 @@ Func_35f4:: ; 35f4 (0:35f4) InitYesNoTextBoxParameters:: ; 35ff (0:35ff) xor a ; YES_NO_MENU ld [wTwoOptionMenuID], a - hlCoord 14, 7 + coord hl, 14, 7 ld bc, $80f ret @@ -3019,7 +3019,7 @@ YesNoChoicePokeCenter:: ; 360a (0:360a) call SaveScreenTilesToBuffer1 ld a, HEAL_CANCEL_MENU ld [wTwoOptionMenuID], a - hlCoord 11, 6 + coord hl, 11, 6 ld bc, $80c jr DisplayYesNoChoice @@ -3027,7 +3027,7 @@ Func_361a:: ; 361a (0:361a) call SaveScreenTilesToBuffer1 ld a, WIDE_YES_NO_MENU ld [wTwoOptionMenuID], a - hlCoord 12, 7 + coord hl, 12, 7 ld bc, $080d DisplayYesNoChoice:: ; 3628 (0:3628) ld a, TWO_OPTION_MENU @@ -3176,7 +3176,7 @@ UncompressSpriteFromDE:: ; 36eb (0:36eb) SaveScreenTilesToBuffer2:: ; 36f4 (0:36f4) - hlCoord 0, 0 + coord hl, 0, 0 ld de, wTileMapBackup2 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call CopyData @@ -3193,13 +3193,13 @@ LoadScreenTilesFromBuffer2DisableBGTransfer:: ; 3709 (0:3709) xor a ld [H_AUTOBGTRANSFERENABLED], a ld hl, wTileMapBackup2 - deCoord 0, 0 + coord de, 0, 0 ld bc, $168 call CopyData ret SaveScreenTilesToBuffer1:: ; 3719 (0:3719) - hlCoord 0, 0 + coord hl, 0, 0 ld de, wTileMapBackup ld bc, SCREEN_WIDTH * SCREEN_HEIGHT jp CopyData @@ -3208,7 +3208,7 @@ LoadScreenTilesFromBuffer1:: ; 3725 (0:3725) xor a ld [H_AUTOBGTRANSFERENABLED], a ld hl, wTileMapBackup - deCoord 0, 0 + coord de, 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call CopyData ld a, $1 @@ -3470,7 +3470,7 @@ WaitForTextScrollButtonPress:: ; 3865 (0:3865) jr z, .skipAnimation call TownMapSpriteBlinkingAnimation .skipAnimation - hlCoord 18, 16 + coord hl, 18, 16 call HandleDownArrowBlinkTiming pop hl call JoypadLowSensitivity @@ -3946,7 +3946,7 @@ HandleMenuInputPokemonSelection:: ; 3ac2 (0:3ac2) and a ; was a key pressed? jr nz,.keyPressed push hl - hlCoord 18, 11 ; coordinates of blinking down arrow in some menus + coord hl, 18, 11 ; coordinates of blinking down arrow in some menus call HandleDownArrowBlinkTiming ; blink down arrow (if any) pop hl ld a,[wMenuJoypadPollCount] @@ -4037,7 +4037,7 @@ PlaceMenuCursor:: ; 3b7c (0:3b7c) ld a,[wTopMenuItemY] and a ; is the y coordinate 0? jr z,.adjustForXCoord - hlCoord 0, 0 + coord hl, 0, 0 ld bc,SCREEN_WIDTH .topMenuItemLoop add hl,bc @@ -4207,7 +4207,7 @@ PrintText:: ; 3c49 (0:3c49) call Delay3 pop hl Func_3c59:: ; 3c59 (0:3c59) - bcCoord 1, 14 + coord bc, 1, 14 jp TextCommandProcessor diff --git a/home/copy2.asm b/home/copy2.asm index f872ebbc..3f7a4400 100644 --- a/home/copy2.asm +++ b/home/copy2.asm @@ -184,17 +184,17 @@ CopyScreenTileBufferToVRAM:: ld c, 6 ld hl, $600 * 0 - deCoord 0, 6 * 0 + coord de, 0, 6 * 0 call .setup call DelayFrame ld hl, $600 * 1 - deCoord 0, 6 * 1 + coord de, 0, 6 * 1 call .setup call DelayFrame ld hl, $600 * 2 - deCoord 0, 6 * 2 + coord de, 0, 6 * 2 call .setup jp DelayFrame @@ -217,7 +217,7 @@ ClearScreen:: ; for the bg map to update. ld bc, 20 * 18 inc b - hlCoord 0, 0 + coord hl, 0, 0 ld a, $7f .loop ld [hli], a diff --git a/home/overworld.asm b/home/overworld.asm index da514763..0485335a 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -1420,7 +1420,7 @@ LoadCurrentMapView:: ; 0caa (0:0caa) ld bc,$0002 add hl,bc .copyToVisibleAreaBuffer - deCoord 0, 0 ; base address for the tiles that are directly transfered to VRAM during V-blank + coord de, 0, 0 ; base address for the tiles that are directly transfered to VRAM during V-blank ld b, SCREEN_HEIGHT .rowLoop2 ld c, SCREEN_WIDTH @@ -1693,7 +1693,7 @@ MoveTileBlockMapPointerNorth:: ; 0e85 (0:0e85) ; the portion of the map that was newly exposed due to the player's movement ScheduleNorthRowRedraw:: ; 0e91 (0:0e91) - hlCoord 0, 0 + coord hl, 0, 0 call CopyToScreenEdgeTiles ld a,[wMapViewVRAMPointer] ld [H_SCREENEDGEREDRAWADDR],a @@ -1715,7 +1715,7 @@ CopyToScreenEdgeTiles:: ; 0ea6 (0:0ea6) ret ScheduleSouthRowRedraw:: ; 0eb2 (0:0eb2) - hlCoord 0, 16 + coord hl, 0, 16 call CopyToScreenEdgeTiles ld a,[wMapViewVRAMPointer] ld l,a @@ -1734,7 +1734,7 @@ ScheduleSouthRowRedraw:: ; 0eb2 (0:0eb2) ret ScheduleEastColumnRedraw:: ; 0ed3 (0:0ed3) - hlCoord 18, 0 + coord hl, 18, 0 call ScheduleColumnRedrawHelper ld a,[wMapViewVRAMPointer] ld c,a @@ -1772,7 +1772,7 @@ ScheduleColumnRedrawHelper:: ; 0ef2 (0:0ef2) ret ScheduleWestColumnRedraw:: ; 0f08 (0:0f08) - hlCoord 0, 0 + coord hl, 0, 0 call ScheduleColumnRedrawHelper ld a,[wMapViewVRAMPointer] ld [H_SCREENEDGEREDRAWADDR],a @@ -2323,7 +2323,7 @@ LoadMapData:: ; 1241 (0:1241) call LoadTilesetTilePatternData call LoadCurrentMapView ; copy current map view to VRAM - hlCoord 0, 0 + coord hl, 0, 0 ld de,vBGMap0 ld b,18 .vramCopyLoop diff --git a/home/text.asm b/home/text.asm index ebdc83f4..7eb5148b 100644 --- a/home/text.asm +++ b/home/text.asm @@ -76,7 +76,7 @@ PlaceNextChar:: ; 1956 (0:1956) cp $4F jr nz,.next3 pop hl - hlCoord 1, 16 + coord hl, 1, 16 push hl jp PlaceNextChar_inc @@ -290,13 +290,13 @@ Char51:: ; 1ab4 (0:1ab4) Coorda 18, 16 call ProtectedDelay3 call ManualTextScroll - hlCoord 1, 13 + coord hl, 1, 13 ld bc,$0412 call ClearScreenArea ld c,20 call DelayFrames pop de - hlCoord 1, 14 + coord hl, 1, 14 jp PlaceNextChar_inc Char49:: ; 1ad5 (0:1ad5) @@ -305,14 +305,14 @@ Char49:: ; 1ad5 (0:1ad5) Coorda 18, 16 call ProtectedDelay3 call ManualTextScroll - hlCoord 1, 10 + coord hl, 1, 10 ld bc,$0712 call ClearScreenArea ld c,20 call DelayFrames pop de pop hl - hlCoord 1, 11 + coord hl, 1, 11 push hl jp PlaceNextChar_inc @@ -330,13 +330,13 @@ Char4C:: ; 1b0a (0:1b0a) push de call Next1B18 call Next1B18 - hlCoord 1, 16 + coord hl, 1, 16 pop de jp PlaceNextChar_inc Next1B18:: ; 1b18 (0:1b18) - hlCoord 0, 14 - deCoord 0, 13 + coord hl, 0, 14 + coord de, 0, 13 ld b,60 .next ld a,[hli] @@ -344,7 +344,7 @@ Next1B18:: ; 1b18 (0:1b18) inc de dec b jr nz,.next - hlCoord 1, 16 + coord hl, 1, 16 ld a, " " ld b,SCREEN_WIDTH - 2 .next2 @@ -499,7 +499,7 @@ TextCommand03:: ; 1bb7 (0:1bb7) ; (no arguments) TextCommand05:: ; 1bc5 (0:1bc5) pop hl - bcCoord 1, 16 ; address of second line of dialogue text box + coord bc, 1, 16 ; address of second line of dialogue text box jp NextTextCommand ; blink arrow and wait for A or B to be pressed @@ -528,7 +528,7 @@ TextCommand07:: ; 1be7 (0:1be7) call Next1B18 ; scroll up text call Next1B18 pop hl - bcCoord 1, 16 ; address of second line of dialogue text box + coord bc, 1, 16 ; address of second line of dialogue text box jp NextTextCommand ; execute asm inline diff --git a/home/vcopy.asm b/home/vcopy.asm index d42293d9..e90accb5 100644 --- a/home/vcopy.asm +++ b/home/vcopy.asm @@ -130,7 +130,7 @@ AutoBgMapTransfer:: ; 1d57 (0:1d57) dec a jr z,.transferMiddleThird .transferBottomThird - hlCoord 0, 12 + coord hl, 0, 12 ld sp,hl ld a,[H_AUTOBGTRANSFERDEST + 1] ld h,a @@ -141,7 +141,7 @@ AutoBgMapTransfer:: ; 1d57 (0:1d57) xor a ; TRANSFERTOP jr .doTransfer .transferTopThird - hlCoord 0, 0 + coord hl, 0, 0 ld sp,hl ld a,[H_AUTOBGTRANSFERDEST + 1] ld h,a @@ -150,7 +150,7 @@ AutoBgMapTransfer:: ; 1d57 (0:1d57) ld a,TRANSFERMIDDLE jr .doTransfer .transferMiddleThird - hlCoord 0, 6 + coord hl, 0, 6 ld sp,hl ld a,[H_AUTOBGTRANSFERDEST + 1] ld h,a diff --git a/macros.asm b/macros.asm index a25c0006..10317246 100644 --- a/macros.asm +++ b/macros.asm @@ -67,22 +67,11 @@ bcd3: MACRO coins equs "bcd2" money equs "bcd3" -;\1 = X -;\2 = Y -hlCoord: MACRO - ld hl, wTileMap + 20 * \2 + \1 - ENDM - -;\1 = X -;\2 = Y -deCoord: MACRO - ld de, wTileMap + 20 * \2 + \1 - ENDM - -;\1 = X -;\2 = Y -bcCoord: MACRO - ld bc, wTileMap + 20 * \2 + \1 +;\1 = r +;\2 = X +;\3 = Y +coord: MACRO + ld \1, wTileMap + 20 * \3 + \2 ENDM ;\1 = X diff --git a/main.asm b/main.asm index 9ceb5f81..08747a5a 100755 --- a/main.asm +++ b/main.asm @@ -158,7 +158,7 @@ INCLUDE "engine/overworld/oam.asm" INCLUDE "engine/oam_dma.asm" PrintWaitingText: - hlCoord 3, 10 + coord hl, 3, 10 ld b, $1 ld c, $b ld a, [W_ISINBATTLE] @@ -169,7 +169,7 @@ PrintWaitingText: .asm_4c17 call CableClub_TextBoxBorder .asm_4c1a - hlCoord 4, 11 + coord hl, 4, 11 ld de, WaitingText call PlaceString ld c, 50 @@ -1005,18 +1005,18 @@ DisplayTextIDInit: ; 7096 (1:7096) ld a,[wd74b] bit 5,a ; does the player have the pokedex? ; start menu with pokedex - hlCoord 10, 0 + coord hl, 10, 0 ld b,$0e ld c,$08 jr nz,.drawTextBoxBorder ; start menu without pokedex - hlCoord 10, 0 + coord hl, 10, 0 ld b,$0c ld c,$08 jr .drawTextBoxBorder ; if text ID is not 0 (i.e. not the start menu) then do a standard dialogue text box .notStartMenu - hlCoord 0, 12 + coord hl, 0, 12 ld b,$04 ld c,$12 .drawTextBoxBorder @@ -1074,12 +1074,12 @@ DrawStartMenu: ; 710b (1:710b) ld a,[wd74b] bit 5,a ; does the player have the pokedex? ; menu with pokedex - hlCoord 10, 0 + coord hl, 10, 0 ld b,$0e ld c,$08 jr nz,.drawTextBoxBorder ; shorter menu if the player doesn't have the pokedex - hlCoord 10, 0 + coord hl, 10, 0 ld b,$0c ld c,$08 .drawTextBoxBorder @@ -1097,7 +1097,7 @@ DrawStartMenu: ; 710b (1:710b) ld [wMenuWatchMovingOutOfBounds],a ld hl,wd730 set 6,[hl] ; no pauses between printing each letter - hlCoord 12, 2 + coord hl, 12, 2 ld a,[wd74b] bit 5,a ; does the player have the pokedex? ; case for not having pokdex @@ -1276,7 +1276,7 @@ GetTextBoxIDText: ; 7367 (1:7367) ; hl = address of upper left corner of text box GetAddressOfScreenCoords: ; 7375 (1:7375) push bc - hlCoord 0, 0 + coord hl, 0, 0 ld bc,20 .loop ; loop to add d rows to the base address ld a,d @@ -1437,11 +1437,11 @@ DisplayMoneyBox: ; 74ba (1:74ba) ld a, MONEY_BOX_TEMPLATE ld [wTextBoxID], a call DisplayTextBoxID - hlCoord 13, 1 + coord hl, 13, 1 ld b, $1 ld c, $6 call ClearScreenArea - hlCoord 12, 1 + coord hl, 12, 1 ld de, wPlayerMoney ld c, $a3 call PrintBCDNumber @@ -1734,14 +1734,14 @@ DisplayFieldMoveMonMenu: ; 76e1 (1:76e1) jr nz, .fieldMovesExist ; no field moves - hlCoord 11, 11 + coord hl, 11, 11 ld b, 5 ld c, 7 call TextBoxBorder call UpdateSprites ld a, 12 ld [hFieldMoveMonMenuTopMenuItemX], a - hlCoord 13, 12 + coord hl, 13, 12 ld de, PokemonMenuEntries jp PlaceString @@ -1750,7 +1750,7 @@ DisplayFieldMoveMonMenu: ; 76e1 (1:76e1) ; Calculate the text box position and dimensions based on the leftmost X coord ; of the field move names before adjusting for the number of field moves. - hlCoord 0, 11 + coord hl, 0, 11 ld a, [wFieldMovesLeftmostXCoord] dec a ld e, a @@ -1781,7 +1781,7 @@ DisplayFieldMoveMonMenu: ; 76e1 (1:76e1) call UpdateSprites ; Calculate the position of the first field move name to print. - hlCoord 0, 12 + coord hl, 0, 12 ld a, [wFieldMovesLeftmostXCoord] inc a ld e, a @@ -1830,7 +1830,7 @@ DisplayFieldMoveMonMenu: ; 76e1 (1:76e1) pop hl ld a, [wFieldMovesLeftmostXCoord] ld [hFieldMoveMonMenuTopMenuItemX], a - hlCoord 0, 12 + coord hl, 0, 12 ld a, [wFieldMovesLeftmostXCoord] inc a ld e, a @@ -2316,28 +2316,28 @@ PrintSafariZoneSteps: ; c52f (3:452f) ret c cp UNKNOWN_DUNGEON_2 ret nc - hlCoord 0, 0 + coord hl, 0, 0 ld b, $3 ld c, $7 call TextBoxBorder - hlCoord 1, 1 + coord hl, 1, 1 ld de, wSafariSteps ld bc, $203 call PrintNumber - hlCoord 4, 1 + coord hl, 4, 1 ld de, SafariSteps call PlaceString - hlCoord 1, 3 + coord hl, 1, 3 ld de, SafariBallText call PlaceString ld a, [W_NUMSAFARIBALLS] cp $a jr nc, .asm_c56d - hlCoord 5, 3 + coord hl, 5, 3 ld a, $7f ld [hl], a .asm_c56d - hlCoord 6, 3 + coord hl, 6, 3 ld de, W_NUMSAFARIBALLS ld bc, $102 jp PrintNumber @@ -3025,11 +3025,11 @@ DrawBadges: ; ea03 (3:6a03) ld [hli], a ld [hl], $60 ; First name - hlCoord 2, 11 + coord hl, 2, 11 ld de, wTempObtainedBadgesBooleans call .DrawBadgeRow - hlCoord 2, 14 + coord hl, 2, 14 ld de, wTempObtainedBadgesBooleans + 4 ; call .DrawBadgeRow ; ret diff --git a/scripts/bikeshop.asm b/scripts/bikeshop.asm index 55ceb5cc..6779d9f6 100755 --- a/scripts/bikeshop.asm +++ b/scripts/bikeshop.asm @@ -51,15 +51,15 @@ BikeShopText1: ; 1d745 (7:5745) ld [wTopMenuItemX], a ld hl, wd730 set 6, [hl] - hlCoord 0, 0 + coord hl, 0, 0 ld b, $4 ld c, $f call TextBoxBorder call UpdateSprites - hlCoord 2, 2 + coord hl, 2, 2 ld de, BikeShopMenuText call PlaceString - hlCoord 8, 3 + coord hl, 8, 3 ld de, BikeShopMenuPrice call PlaceString ld hl, BikeShopText_1d815 diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm index b9c006d1..519c0c67 100755 --- a/scripts/celadongamecorner.asm +++ b/scripts/celadongamecorner.asm @@ -480,32 +480,32 @@ CeladonGameCornerText_48f19: ; 48f19 (12:4f19) CeladonGameCornerScript_48f1e: ; 48f1e (12:4f1e) ld hl, wd730 set 6, [hl] - hlCoord 11, 0 + coord hl, 11, 0 ld b, $5 ld c, $7 call TextBoxBorder call UpdateSprites - hlCoord 12, 1 + coord hl, 12, 1 ld b, $4 ld c, $7 call ClearScreenArea - hlCoord 12, 2 + coord hl, 12, 2 ld de, GameCornerMoneyText call PlaceString - hlCoord 12, 3 + coord hl, 12, 3 ld de, GameCornerBlankText1 call PlaceString - hlCoord 12, 3 + coord hl, 12, 3 ld de, wPlayerMoney ld c, $a3 call PrintBCDNumber - hlCoord 12, 4 + coord hl, 12, 4 ld de, GameCornerCoinText call PlaceString - hlCoord 12, 5 + coord hl, 12, 5 ld de, GameCornerBlankText2 call PlaceString - hlCoord 15, 5 + coord hl, 15, 5 ld de, wPlayerCoins ld c, $82 call PrintBCDNumber diff --git a/scripts/celadonmartroof.asm b/scripts/celadonmartroof.asm index 8b6ff60f..b0afbee0 100755 --- a/scripts/celadonmartroof.asm +++ b/scripts/celadonmartroof.asm @@ -63,7 +63,7 @@ CeladonMartRoofScript_4840c: ; 4840c (12:440c) dec l ld b, l ld c, $c - hlCoord 0, 0 + coord hl, 0, 0 call TextBoxBorder call UpdateSprites call CeladonMartRoofScript_48532 @@ -200,7 +200,7 @@ CeladonMartRoofScript_48532: ; 48532 (12:4532) push hl ld [wd11e], a call GetItemName - hlCoord 2, 2 + coord hl, 2, 2 ld a, [$ffdb] ld bc, SCREEN_WIDTH * 2 call AddNTimes diff --git a/scripts/vermiliondock.asm b/scripts/vermiliondock.asm index 361f4997..a8cf3b8d 100755 --- a/scripts/vermiliondock.asm +++ b/scripts/vermiliondock.asm @@ -53,7 +53,7 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) call DelayFrames ld b, $9c call CopyScreenTileBufferToVRAM - hlCoord 0, 10 + coord hl, 0, 10 ld bc, $0078 ld a, $14 call FillMemory -- cgit v1.3.1-sl0p From c169073eed4f0362ef42170098a141a2fcbd71d0 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sat, 18 Jul 2015 20:49:52 -0700 Subject: misc --- constants/misc_constants.asm | 1 - engine/HoF_room_pc.asm | 2 +- engine/battle/animations.asm | 10 +- engine/battle/core.asm | 2 +- engine/battle/experience.asm | 2 +- engine/battle/init_battle_variables.asm | 2 +- engine/cable_club.asm | 2 +- engine/evolution.asm | 67 ++++++------ engine/evos_moves.asm | 68 +++++++----- engine/experience.asm | 84 ++++++++------- engine/game_corner_slots.asm | 2 +- engine/game_corner_slots2.asm | 4 +- engine/give_pokemon.asm | 25 +++-- engine/hidden_object_functions17.asm | 6 +- engine/hidden_object_functions7.asm | 2 +- engine/items/itemfinder.asm | 32 +++--- engine/items/items.asm | 36 +++---- engine/menu/league_pc.asm | 8 +- engine/menu/main_menu.asm | 120 +++++++++++---------- engine/menu/pokedex.asm | 18 ++-- engine/menu/prize_menu.asm | 10 +- engine/menu/status_screen.asm | 43 ++++---- engine/oak_speech.asm | 4 +- engine/oam_dma.asm | 2 +- engine/overworld/hidden_items.asm | 44 ++++---- engine/overworld/hidden_objects.asm | 10 +- engine/overworld/movement.asm | 17 ++- engine/palettes.asm | 46 ++++---- engine/predefs.asm | 8 +- engine/save.asm | 181 +++++++++++++++++--------------- engine/slot_machine.asm | 2 +- engine/titlescreen.asm | 2 +- home/init.asm | 16 +-- hram.asm | 4 + macros.asm | 2 +- main.asm | 8 +- scripts/agatha.asm | 2 +- scripts/bruno.asm | 2 +- scripts/ceruleancity.asm | 2 +- scripts/daycarem.asm | 144 +++++++++++++------------ scripts/lance.asm | 2 +- scripts/lorelei.asm | 2 +- scripts/mansion3.asm | 2 +- scripts/mtmoonpokecenter.asm | 36 +++---- scripts/museum1f.asm | 8 +- scripts/oakslab.asm | 20 ++-- scripts/pewterpokecenter.asm | 34 +++--- scripts/safarizoneentrance.asm | 2 +- scripts/seafoamislands1.asm | 4 +- scripts/seafoamislands2.asm | 4 +- scripts/seafoamislands3.asm | 4 +- scripts/seafoamislands4.asm | 4 +- scripts/seafoamislands5.asm | 4 +- scripts/silphco7.asm | 2 +- scripts/vermiliondock.asm | 47 +++++---- scripts/victoryroad2.asm | 2 +- scripts/victoryroad3.asm | 8 +- sram.asm | 8 +- text/maps/daycare_1.asm | 20 ++-- text/maps/daycare_2.asm | 14 +-- wram.asm | 86 +++++++++++++-- 61 files changed, 743 insertions(+), 612 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 5eecb38f..c06e7a65 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -10,7 +10,6 @@ HOF_MON EQU $10 HOF_TEAM EQU PARTY_LENGTH * HOF_MON HOF_TEAM_CAPACITY EQU 50 - A_BUTTON EQU %00000001 B_BUTTON EQU %00000010 SELECT EQU %00000100 diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index dc05814a..06c926db 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -29,7 +29,7 @@ HallOfFamePC: ; 7405c (1d:405c) ld c, 128 call DelayFrames xor a - ld [wWhichTrade], a + ld [wNumCreditsMonsDisplayed - 1], a ; not read ld [wNumCreditsMonsDisplayed], a jp Credits diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 6803c38b..d21e07e5 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -796,9 +796,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,[wWhichTrade] ; number of shakes + ld a,[wNumShakes] ; number of shakes dec a ; decrement number of shakes - ld [wWhichTrade],a + ld [wNumShakes],a ret z ; if there are shakes left, restart the subanimation ld a,[W_SUBANIMSUBENTRYADDR] @@ -1998,11 +1998,11 @@ AnimationWavyScreen: ; 79666 (1e:5666) ret Func_796ae: ; 796ae (1e:56ae) - ld a, [$ff41] + ld a, [rSTAT] and $3 jr nz, Func_796ae ld a, [hl] - ld [$ff43], a + ld [rSCX], a inc hl ld a, [hl] cp d @@ -2895,7 +2895,7 @@ TossBallAnimation: ; 79e16 (1e:5e16) ; store these for later ld a,b and a,$F - ld [wWhichTrade],a + ld [wNumShakes],a ld hl,.PokeBallAnimations ; choose which toss animation to use diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 5deeb4dc..3cf3c9e9 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -6298,7 +6298,7 @@ LoadEnemyMonData: ; 3eb01 (f:6b01) dec de dec de xor a - ld [wHPBarMaxHP], a + ld [wLearningMovesFromDayCare], a predef WriteMonMoves ; get moves based on current level .loadMovePPs ld hl, wEnemyMonMoves diff --git a/engine/battle/experience.asm b/engine/battle/experience.asm index 11a1e87c..6ec8c463 100644 --- a/engine/battle/experience.asm +++ b/engine/battle/experience.asm @@ -254,7 +254,7 @@ GainExperience: ; 5524f (15:524f) ld a, [wd0b5] ld [wd11e], a predef LearnMoveFromLevelUp - ld hl, wccd3 + ld hl, wCanEvolveFlags ld a, [wWhichPokemon] ld c, a ld b, $1 diff --git a/engine/battle/init_battle_variables.asm b/engine/battle/init_battle_variables.asm index 74df62aa..f10e9f5e 100644 --- a/engine/battle/init_battle_variables.asm +++ b/engine/battle/init_battle_variables.asm @@ -19,7 +19,7 @@ InitBattleVariables: ; 525af (14:65af) ld hl, wcf1d ld [hli], a ld [hl], a - ld hl, wccd3 + ld hl, wCanEvolveFlags ld b, $3c .loop ld [hli], a diff --git a/engine/cable_club.asm b/engine/cable_club.asm index fbdb6260..9ccffdbb 100755 --- a/engine/cable_club.asm +++ b/engine/cable_club.asm @@ -297,7 +297,7 @@ CallCurrentTradeCenterFunction: ld b, 0 ld a, [wTradeCenterPointerTableIndex] cp $ff - jp z, LoadTitlescreenGraphics + jp z, DisplayTitleScreen add a ld c, a add hl, bc diff --git a/engine/evolution.asm b/engine/evolution.asm index 9ed38c21..d110110a 100755 --- a/engine/evolution.asm +++ b/engine/evolution.asm @@ -20,11 +20,11 @@ EvolveMon: ; 7bde9 (1e:7de9) xor a ld [H_AUTOBGTRANSFERENABLED], a ld [hTilesetType], a - ld a, [wHPBarMaxHP] + ld a, [wEvoOldSpecies] ld [wcf1d], a ld c, $0 call EvolutionSetWholeScreenPalette - ld a, [wHPBarMaxHP + 1] + ld a, [wEvoNewSpecies] ld [wcf91], a ld [wd0b5], a call Evolution_LoadPic @@ -32,13 +32,13 @@ EvolveMon: ; 7bde9 (1e:7de9) ld hl, vBackPic ld bc, 7 * 7 call CopyVideoData - ld a, [wHPBarMaxHP] + ld a, [wEvoOldSpecies] ld [wcf91], a ld [wd0b5], a call Evolution_LoadPic ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a - ld a, [wHPBarMaxHP] + ld a, [wEvoOldSpecies] call PlayCry call WaitForSoundToFinish ld c, BANK(Music_SafariZone) @@ -49,23 +49,23 @@ EvolveMon: ; 7bde9 (1e:7de9) ld c, $1 call EvolutionSetWholeScreenPalette ld bc, $110 -.asm_7be63 +.animLoop push bc call Evolution_CheckForCancel jr c, .evolutionCancelled - call Func_7bec2 + call Evolution_BackAndForthAnim pop bc inc b dec c dec c - jr nz, .asm_7be63 + jr nz, .animLoop xor a - ld [wHPBarOldHP + 1], a + ld [wEvoCancelled], a ld a, $31 - ld [wHPBarOldHP], a - call Func_7bed6 - ld a, [wHPBarMaxHP + 1] -.afterCancellation + ld [wEvoMonTileOffset], a + call Evolution_ChangeMonPic ; show the new species pic + ld a, [wEvoNewSpecies] +.done ld [wcf1d], a ld a, $ff ld [wc0ee], a @@ -81,17 +81,17 @@ EvolveMon: ; 7bde9 (1e:7de9) pop bc pop de pop hl - ld a, [wHPBarOldHP + 1] + ld a, [wEvoCancelled] and a ret z scf ret .evolutionCancelled pop bc - ld a, $1 - ld [wHPBarOldHP + 1], a - ld a, [wHPBarMaxHP] - jr .afterCancellation + ld a, 1 + ld [wEvoCancelled], a + ld a, [wEvoOldSpecies] + jr .done EvolutionSetWholeScreenPalette: ; 7beb4 (1e:7eb4) ld b, $b @@ -102,37 +102,38 @@ Evolution_LoadPic: ; 7beb9 (1e:7eb9) coord hl, 7, 2 jp LoadFlippedFrontSpriteByMonIndex -Func_7bec2: ; 7bec2 (1e:7ec2) +Evolution_BackAndForthAnim: ; 7bec2 (1e:7ec2) +; show the mon change back and forth between the new and old species b times ld a, $31 - ld [wHPBarOldHP], a - call Func_7bed6 - ld a, $cf - ld [wHPBarOldHP], a - call Func_7bed6 + ld [wEvoMonTileOffset], a + call Evolution_ChangeMonPic + ld a, -$31 + ld [wEvoMonTileOffset], a + call Evolution_ChangeMonPic dec b - jr nz, Func_7bec2 + jr nz, Evolution_BackAndForthAnim ret -Func_7bed6: ; 7bed6 (1e:7ed6) +Evolution_ChangeMonPic: ; 7bed6 (1e:7ed6) push bc xor a ld [H_AUTOBGTRANSFERENABLED], a coord hl, 7, 2 - ld bc, $707 - ld de, $d -.asm_7bee3 + lb bc, 7, 7 + ld de, SCREEN_WIDTH - 7 +.loop push bc -.asm_7bee4 - ld a, [wHPBarOldHP] +.innerLoop + ld a, [wEvoMonTileOffset] add [hl] ld [hli], a dec c - jr nz, .asm_7bee4 + jr nz, .innerLoop pop bc add hl, de dec b - jr nz, .asm_7bee3 - ld a, $1 + jr nz, .loop + ld a, 1 ld [H_AUTOBGTRANSFERENABLED], a call Delay3 pop bc diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm index 4a253c68..9a0f2d84 100755 --- a/engine/evos_moves.asm +++ b/engine/evos_moves.asm @@ -1,6 +1,6 @@ ; try to evolve the mon in [wWhichPokemon] TryEvolvingMon: ; 3ad0e (e:6d0e) - ld hl, wccd3 + ld hl, wCanEvolveFlags xor a ld [hl], a ld a, [wWhichPokemon] @@ -31,17 +31,17 @@ Evolution_PartyMonLoop: ; loop over party mons ld a, [hl] cp $ff ; have we reached the end of the party? jp z, .done - ld [wHPBarMaxHP], a + ld [wEvoOldSpecies], a push hl ld a, [wWhichPokemon] ld c, a - ld hl, wccd3 + ld hl, wCanEvolveFlags ld b, $2 call Evolution_FlagAction ld a, c and a ; is the mon's bit set? jp z, Evolution_PartyMonLoop ; if not, go to the next mon - ld a, [wHPBarMaxHP] + ld a, [wEvoOldSpecies] dec a ld b, 0 ld hl, EvosMovesPointerTable @@ -110,7 +110,7 @@ Evolution_PartyMonLoop: ; loop over party mons ld [wd121], a push hl ld a, [hl] - ld [wHPBarMaxHP + 1], a + ld [wEvoNewSpecies], a ld a, [wWhichPokemon] ld hl, wPartyMonNicks call GetPartyMonName @@ -122,7 +122,7 @@ Evolution_PartyMonLoop: ; loop over party mons xor a ld [H_AUTOBGTRANSFERENABLED], a coord hl, 0, 0 - ld bc, $c14 + lb bc, 12, 20 call ClearScreenArea ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a @@ -137,7 +137,7 @@ Evolution_PartyMonLoop: ; loop over party mons ld a, [hl] ld [wd0b5], a ld [wLoadedMonSpecies], a - ld [wHPBarMaxHP + 1], a + ld [wEvoNewSpecies], a ld a, MONSTER_NAME ld [wNameListType], a ld a, BANK(TrainerNames) ; bank is not used for monster names @@ -357,7 +357,7 @@ LearnMoveFromLevelUp: ; 3af5b (e:6f5b) ld bc, wPartyMon2 - wPartyMon1 call AddNTimes .next - ld b, $4 + ld b, NUM_MOVES .checkCurrentMovesLoop ; check if the move to learn is already known ld a, [hli] cp d @@ -377,14 +377,13 @@ LearnMoveFromLevelUp: ; 3af5b (e:6f5b) ; 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 -; [wHPBarMaxHP]: (?) WriteMonMoves: ; 3afb8 (e:6fb8) call GetPredefRegisters push hl push de push bc ld hl, EvosMovesPointerTable - ld b, $0 + ld b, 0 ld a, [wcf91] ; cur mon ID dec a add a @@ -411,25 +410,30 @@ WriteMonMoves: ; 3afb8 (e:6fb8) ld a, [W_CURENEMYLVL] cp b jp c, .done ; mon level < move level (assumption: learnset is sorted by level) - ld a, [wHPBarMaxHP] + ld a, [wLearningMovesFromDayCare] and a jr z, .skipMinLevelCheck - ld a, [wWhichTrade] ; min move level) + ld a, [wDayCareStartLevel] cp b jr nc, .nextMove2 ; min level >= move level + .skipMinLevelCheck + +; check if the move is already known push de - ld c, $4 -.moveAlreadyLearnedCheckLoop + ld c, NUM_MOVES +.alreadyKnowsCheckLoop ld a, [de] inc de cp [hl] jr z, .nextMove dec c - jr nz, .moveAlreadyLearnedCheckLoop + jr nz, .alreadyKnowsCheckLoop + +; try to find an empty move slot pop de push de - ld c, $4 + ld c, NUM_MOVES .findEmptySlotLoop ld a, [de] and a @@ -437,47 +441,55 @@ WriteMonMoves: ; 3afb8 (e:6fb8) inc de dec c jr nz, .findEmptySlotLoop - pop de ; no empty move slots found + +; no empty move slots found + pop de push de push hl ld h, d ld l, e call WriteMonMoves_ShiftMoveData ; shift all moves one up (deleting move 1) - ld a, [wHPBarMaxHP] + ld a, [wLearningMovesFromDayCare] and a jr z, .writeMoveToSlot + +; shift PP as well if learning moves from day care push de - ld bc, $12 + ld bc, wPartyMon1PP - (wPartyMon1Moves + 3) add hl, bc ld d, h ld e, l call WriteMonMoves_ShiftMoveData ; shift all move PP data one up pop de + .writeMoveToSlot pop hl .writeMoveToSlot2 ld a, [hl] ld [de], a - ld a, [wHPBarMaxHP] + ld a, [wLearningMovesFromDayCare] and a jr z, .nextMove - push hl ; write move PP value + +; write move PP value if learning moves from day care + push hl ld a, [hl] - ld hl, $15 + ld hl, wPartyMon1PP - wPartyMon1Moves add hl, de push hl dec a ld hl, Moves - ld bc, $6 + ld bc, 6 call AddNTimes - ld de, wHPBarMaxHP + ld de, wBuffer ld a, BANK(Moves) call FarCopyData - ld a, [wHPBarNewHP + 1] + ld a, [wBuffer + 5] pop hl ld [hl], a pop hl jr .nextMove + .done pop bc pop de @@ -486,13 +498,13 @@ WriteMonMoves: ; 3afb8 (e:6fb8) ; shifts all move data one up (freeing 4th move slot) WriteMonMoves_ShiftMoveData: ; 3b04e (e:704e) - ld c, $3 -.asm_3b050 + ld c, NUM_MOVES - 1 +.loop inc de ld a, [de] ld [hli], a dec c - jr nz, .asm_3b050 + jr nz, .loop ret Evolution_FlagAction: ; 3b057 (e:7057) diff --git a/engine/experience.asm b/engine/experience.asm index 752536cf..b43fbcf9 100755 --- a/engine/experience.asm +++ b/engine/experience.asm @@ -10,15 +10,15 @@ CalcLevelFromExperience: ; 58f43 (16:4f43) push hl ld hl, wLoadedMonExp + 2 ; current exp ; compare exp needed for level d with current exp - ld a, [H_MULTIPLICAND + 2] + ld a, [hExperience + 2] ld c, a ld a, [hld] sub c - ld a, [H_MULTIPLICAND + 1] + ld a, [hExperience + 1] ld c, a ld a, [hld] sbc c - ld a, [H_MULTIPLICAND] + ld a, [hExperience] ld c, a ld a, [hl] sbc c @@ -33,7 +33,7 @@ CalcExperience: ; 58f6a (16:4f6a) add a add a ld c, a - ld b, $0 + ld b, 0 ld hl, GrowthRateTable add hl, bc call CalcDSquared @@ -50,96 +50,100 @@ CalcExperience: ; 58f6a (16:4f6a) ld [H_DIVISOR], a ld b, $4 call Divide - ld a, [H_MULTIPLICAND] ; (aliases: H_NUMTOPRINT) + ld a, [H_QUOTIENT + 1] push af - ld a, [H_MULTIPLICAND+1] + ld a, [H_QUOTIENT + 2] push af - ld a, [H_MULTIPLICAND+2] + ld a, [H_QUOTIENT + 3] push af call CalcDSquared ld a, [hl] and $7f ld [H_MULTIPLIER], a call Multiply - ld a, [H_MULTIPLICAND] ; (aliases: H_NUMTOPRINT) + ld a, [H_PRODUCT + 1] push af - ld a, [H_MULTIPLICAND+1] + ld a, [H_PRODUCT + 2] push af - ld a, [H_MULTIPLICAND+2] + ld a, [H_PRODUCT + 3] push af ld a, [hli] push af xor a ld [H_MULTIPLICAND], a - ld [H_MULTIPLICAND+1], a + ld [H_MULTIPLICAND + 1], a ld a, d - ld [H_MULTIPLICAND+2], a + ld [H_MULTIPLICAND + 2], a ld a, [hli] ld [H_MULTIPLIER], a call Multiply ld b, [hl] - ld a, [H_MULTIPLICAND+2] + ld a, [H_PRODUCT + 3] sub b - ld [H_MULTIPLICAND+2], a + ld [H_PRODUCT + 3], a ld b, $0 - ld a, [H_MULTIPLICAND+1] + ld a, [H_PRODUCT + 2] sbc b - ld [H_MULTIPLICAND+1], a - ld a, [H_MULTIPLICAND] + ld [H_PRODUCT + 2], a + ld a, [H_PRODUCT + 1] sbc b - ld [H_MULTIPLICAND], a + ld [H_PRODUCT + 1], a +; The difference of the linear term and the constant term consists of 3 bytes +; starting at H_PRODUCT + 1. Below, hExperience (an alias of that address) will +; be used instead for the further work of adding or subtracting the squared +; term and adding the cubed term. pop af and $80 jr nz, .subtractSquaredTerm ; check sign pop bc - ld a, [H_MULTIPLICAND+2] + ld a, [hExperience + 2] add b - ld [H_MULTIPLICAND+2], a + ld [hExperience + 2], a pop bc - ld a, [H_MULTIPLICAND+1] + ld a, [hExperience + 1] adc b - ld [H_MULTIPLICAND+1], a + ld [hExperience + 1], a pop bc - ld a, [H_MULTIPLICAND] + ld a, [hExperience] adc b - ld [H_MULTIPLICAND], a + ld [hExperience], a jr .addCubedTerm .subtractSquaredTerm pop bc - ld a, [H_MULTIPLICAND+2] + ld a, [hExperience + 2] sub b - ld [H_MULTIPLICAND+2], a + ld [hExperience + 2], a pop bc - ld a, [H_MULTIPLICAND+1] + ld a, [hExperience + 1] sbc b - ld [H_MULTIPLICAND+1], a + ld [hExperience + 1], a pop bc - ld a, [H_MULTIPLICAND] + ld a, [hExperience] sbc b - ld [H_MULTIPLICAND], a + ld [hExperience], a .addCubedTerm pop bc - ld a, [H_MULTIPLICAND+2] + ld a, [hExperience + 2] add b - ld [H_MULTIPLICAND+2], a + ld [hExperience + 2], a pop bc - ld a, [H_MULTIPLICAND+1] + ld a, [hExperience + 1] adc b - ld [H_MULTIPLICAND+1], a + ld [hExperience + 1], a pop bc - ld a, [H_MULTIPLICAND] + ld a, [hExperience] adc b - ld [H_MULTIPLICAND], a + ld [hExperience], a ret ; calculates d*d CalcDSquared: ; 59010 (16:5010) xor a - ld [H_MULTIPLICAND], a ; (aliases: H_NUMTOPRINT) - ld [H_MULTIPLICAND+1], a + ld [H_MULTIPLICAND], a + ld [H_MULTIPLICAND + 1], a ld a, d - ld [H_MULTIPLICAND+2], a - ld [H_MULTIPLIER], a ; (aliases: H_DIVISOR, H_REMAINDER, H_POWEROFTEN) + ld [H_MULTIPLICAND + 2], a + ld [H_MULTIPLIER], a jp Multiply ; each entry has the following scheme: diff --git a/engine/game_corner_slots.asm b/engine/game_corner_slots.asm index b3b2490c..ff17d4d3 100755 --- a/engine/game_corner_slots.asm +++ b/engine/game_corner_slots.asm @@ -7,7 +7,7 @@ StartSlotMachine: ; 37e2d (d:7e2d) cp $ff jr z, .printSomeonesKeys callba AbleToPlaySlotsCheck - ld a, [wHiddenObjectFunctionArgument] + ld a, [wCanPlaySlots] and a ret z ld a, [wLuckySlotHiddenObjectIndex] diff --git a/engine/game_corner_slots2.asm b/engine/game_corner_slots2.asm index 850b1f99..643536ea 100755 --- a/engine/game_corner_slots2.asm +++ b/engine/game_corner_slots2.asm @@ -1,4 +1,4 @@ -AbleToPlaySlotsCheck ; 2ff09 (b:7f09) +AbleToPlaySlotsCheck: ; 2ff09 (b:7f09) ld a, [wSpriteStateData1 + 2] and $8 jr z, .done ; not able @@ -19,7 +19,7 @@ AbleToPlaySlotsCheck ; 2ff09 (b:7f09) call PrintPredefTextID xor a .done - ld [wWhichTrade], a + ld [wCanPlaySlots], a ret GameCornerCoinCaseText: ; 2ff32 (b:7f32) diff --git a/engine/give_pokemon.asm b/engine/give_pokemon.asm index 45e88b9c..4b45631d 100755 --- a/engine/give_pokemon.asm +++ b/engine/give_pokemon.asm @@ -1,13 +1,16 @@ _GivePokemon: ; 4fda5 (13:7da5) +; returns success in carry +; and whether the mon was added to the party in [wAddedToParty] call EnableAutoTextBoxDrawing xor a - ld [wccd3], a + ld [wAddedToParty], a ld a, [wPartyCount] cp PARTY_LENGTH - jr c, .asm_4fe01 + jr c, .addToParty ld a, [W_NUMINBOX] cp MONS_PER_BOX - jr nc, .asm_4fdf9 + jr nc, .boxFull +; add to box xor a ld [W_ENEMYBATTSTATUS3], a ld a, [wcf91] @@ -19,32 +22,32 @@ _GivePokemon: ; 4fda5 (13:7da5) ld a, [wCurrentBoxNum] and $7f cp 9 - jr c, .asm_4fdec + jr c, .singleDigitBoxNum sub 9 ld [hl], "1" inc hl add "0" - jr .asm_4fdee -.asm_4fdec + jr .next +.singleDigitBoxNum add "1" -.asm_4fdee +.next ld [hli], a ld [hl], "@" ld hl, SetToBoxText call PrintText scf ret -.asm_4fdf9 +.boxFull ld hl, BoxIsFullText call PrintText and a ret -.asm_4fe01 +.addToParty call SetPokedexOwnedFlag call AddPartyMon - ld a, $1 + ld a, 1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld [wccd3], a + ld [wAddedToParty], a scf ret diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm index 841929b8..44941d36 100755 --- a/engine/hidden_object_functions17.asm +++ b/engine/hidden_object_functions17.asm @@ -55,7 +55,7 @@ KabutopsFossilText: ; 5dbd4 (17:5bd4) DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9) ; Displays a pokemon's front sprite in a pop-up window. ; [wcf91] = pokemon interal id number - ld a, $1 + ld a, 1 ld [H_AUTOBGTRANSFERENABLED], a call Delay3 xor a @@ -85,7 +85,7 @@ PrintBlackboardLinkCableText: ; 5dc1a (17:5c1a) call EnableAutoTextBoxDrawing ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld a, [wWhichTrade] + ld a, [wHiddenObjectFunctionArgument] call PrintPredefTextID ret @@ -310,7 +310,7 @@ VermilionGymTrashText: ; 5ddf7 (17:5df7) GymTrashScript: ; 5ddfc (17:5dfc) call EnableAutoTextBoxDrawing - ld a, [wWhichTrade] + ld a, [wHiddenObjectFunctionArgument] ld [wcd5b], a ; Don't do the trash can puzzle if it's already been done. diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm index 31ae17a4..8e8b27b1 100755 --- a/engine/hidden_object_functions7.asm +++ b/engine/hidden_object_functions7.asm @@ -128,7 +128,7 @@ CinnabarGymQuiz: ; 1ea25 (7:6a25) TX_ASM xor a ld [wda38], a - ld a, [wWhichTrade] + ld a, [wHiddenObjectFunctionArgument] push af and $f ld [$ffdb], a diff --git a/engine/items/itemfinder.asm b/engine/items/itemfinder.asm index 96abecd3..51277632 100755 --- a/engine/items/itemfinder.asm +++ b/engine/items/itemfinder.asm @@ -1,14 +1,14 @@ HiddenItemNear: ; 7481f (1d:481f) ld hl, HiddenItemCoords - ld b, $0 -.asm_74824 - ld de, $0003 + ld b, 0 +.loop + ld de, 3 ld a, [W_CURMAP] call IsInRestOfArray ret nc ; return if current map has no hidden items push bc push hl - ld hl, wd6f0 + ld hl, wObtainedHiddenItemsFlags ld c, b ld b, $2 predef FlagActionPredef @@ -22,28 +22,30 @@ HiddenItemNear: ; 7481f (1d:481f) inc hl ld e, [hl] inc hl - jr nz, .asm_74824 + jr nz, .loop ; if the item has already been obtained +; check if the item is within 4-5 tiles (depending on the direction of item) ld a, [W_YCOORD] - call Func_7486b + call Sub5ClampTo0 cp d - jr nc, .asm_74824 + jr nc, .loop ld a, [W_YCOORD] - add $4 + add 4 cp d - jr c, .asm_74824 + jr c, .loop ld a, [W_XCOORD] - call Func_7486b + call Sub5ClampTo0 cp e - jr nc, .asm_74824 + jr nc, .loop ld a, [W_XCOORD] - add $5 + add 5 cp e - jr c, .asm_74824 + jr c, .loop scf ret -Func_7486b: ; 7486b (1d:486b) - sub $5 +Sub5ClampTo0: ; 7486b (1d:486b) +; subtract 5 but clamp to 0 + sub 5 cp $f0 ret c xor a diff --git a/engine/items/items.asm b/engine/items/items.asm index fe2d71c8..bc8d16fa 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -1216,11 +1216,11 @@ ItemUseMedicine: ; dabb (3:5abb) ld bc,-19 add hl,bc ; hl now points to experience ; update experience to minimum for new level - ld a,[$ff96] + ld a,[hExperience] ld [hli],a - ld a,[$ff97] + ld a,[hExperience + 1] ld [hli],a - ld a,[$ff98] + ld a,[hExperience + 2] ld [hl],a pop hl ld a,[wWhichPokemon] @@ -1618,8 +1618,8 @@ ItemUsePokeflute: ; e140 (3:6140) jp PrintText .inBattle xor a - ld [wWhichTrade],a ; initialize variable that indicates if any pokemon were woken up to zero - ld b,~SLP & $FF + ld [wWereAnyMonsAsleep],a + ld b,~SLP & $ff ld hl,wPartyMon1Status call WakeUpEntireParty ld a,[W_ISINBATTLE] @@ -1638,7 +1638,7 @@ ItemUsePokeflute: ; e140 (3:6140) and b ; remove Sleep status ld [hl],a call LoadScreenTilesFromBuffer2 ; restore saved screen - ld a,[wWhichTrade] + ld a,[wWereAnyMonsAsleep] and a ; were any pokemon asleep before playing the flute? ld hl,PlayedFluteNoEffectText jp z,PrintText ; if no pokemon were asleep @@ -1662,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 -; [wWhichTrade] should be initialized to 0 +; [wWereAnyMonsAsleep] should be initialized to 0 ; OUTPUT: -; [wWhichTrade]: set to 1 if any pokemon were asleep +; [wWereAnyMonsAsleep]: set to 1 if any pokemon were asleep WakeUpEntireParty: ; e1e5 (3:61e5) ld de,44 ld c,6 @@ -1674,7 +1674,7 @@ WakeUpEntireParty: ; e1e5 (3:61e5) and a,SLP ; is pokemon asleep? jr z,.notAsleep ld a,1 - ld [wWhichTrade],a ; indicate that a pokemon had to be woken up + ld [wWereAnyMonsAsleep],a ; indicate that a pokemon had to be woken up .notAsleep pop af and b ; remove Sleep status @@ -1874,7 +1874,7 @@ ItemUsePPRestore: ; e31e (3:631e) ld a,[wWhichPokemon] push af ld a,[wcf91] - ld [wWhichTrade],a + ld [wPPRestoreItem],a .chooseMon xor a ld [wUpdateSpritesEnabled],a @@ -1884,13 +1884,13 @@ ItemUsePPRestore: ; e31e (3:631e) jr nc,.chooseMove jp .itemNotUsed .chooseMove - ld a,[wWhichTrade] + ld a,[wPPRestoreItem] cp a,ELIXER jp nc,.useElixir ; if Elixir or Max Elixir ld a,$02 ld [wMoveMenuType],a ld hl,RaisePPWhichTechniqueText - ld a,[wWhichTrade] + ld a,[wPPRestoreItem] 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 @@ -1911,7 +1911,7 @@ ItemUsePPRestore: ; e31e (3:631e) call GetMoveName call CopyStringToCF4B ; copy name to wcf4b pop hl - ld a,[wWhichTrade] + ld a,[wPPRestoreItem] cp a,ETHER jr nc,.useEther ; if Ether or Max Ether .usePPUp @@ -1973,7 +1973,7 @@ ItemUsePPRestore: ; e31e (3:631e) add hl,bc ; hl now points to move's PP ld a,[wd11e] ld b,a ; b = max PP - ld a,[wWhichTrade] + ld a,[wPPRestoreItem] cp a,MAX_ETHER jr z,.fullyRestorePP ld a,[hl] ; move PP @@ -2005,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,wWhichTrade + ld hl,wPPRestoreItem dec [hl] dec [hl] xor a @@ -2701,13 +2701,13 @@ SendNewMonToBox: ; e7a4 (3:67a4) ld d, a callab CalcExperience pop de - ld a, [H_NUMTOPRINT] ; (aliases: H_MULTIPLICAND) + ld a, [hExperience] ld [de], a inc de - ld a, [$ff97] + ld a, [hExperience + 1] ld [de], a inc de - ld a, [$ff98] + ld a, [hExperience + 2] ld [de], a inc de xor a diff --git a/engine/menu/league_pc.asm b/engine/menu/league_pc.asm index 560ed421..06a7894c 100755 --- a/engine/menu/league_pc.asm +++ b/engine/menu/league_pc.asm @@ -12,7 +12,7 @@ PKMNLeaguePC: ; 0x7657e ld [hTilesetType], a ld [W_SPRITEFLIPPED], a ld [wUpdateSpritesEnabled], a - ld [wTrainerScreenX], a + ld [wHoFTeamIndex2], a ld [wHoFTeamNo], a ld a, [wNumHoFTeams] ld b, a @@ -27,13 +27,13 @@ PKMNLeaguePC: ; 0x7657e ld hl, wHoFTeamNo inc [hl] push bc - ld a, [wTrainerScreenX] - ld [wHoFMonSpecies], a + ld a, [wHoFTeamIndex2] + ld [wHoFTeamIndex], a callba LoadHallOfFameTeams call LeaguePCShowTeam pop bc jr c, .doneShowingTeams - ld hl, wTrainerScreenX + ld hl, wHoFTeamIndex2 inc [hl] ld a, [hl] cp b diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 9e160f81..5dc6e61f 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -1,17 +1,16 @@ MainMenu: ; 5af2 (1:5af2) ; Check save file - call Func_5bff + call InitOptions xor a - ld [wd08a],a + ld [wOptionsInitialized],a inc a - ld [wd088],a - call Func_609e - jr nc,.next0 + ld [wSaveFileStatus],a + call CheckForPlayerNameInSRAM + jr nc,.mainMenuLoop - ; Predef 52 loads the save from SRAM to RAM predef LoadSAV -.next0 +.mainMenuLoop ld c,20 call DelayFrames xor a ; LINK_STATE_NONE @@ -30,9 +29,10 @@ MainMenu: ; 5af2 (1:5af2) call LoadFontTilePatterns ld hl,wd730 set 6,[hl] - ld a,[wd088] + ld a,[wSaveFileStatus] cp a,1 - jr z,.next1 + jr z,.noSaveFile +; there's a save file coord hl, 0, 0 ld b,6 ld c,13 @@ -41,7 +41,7 @@ MainMenu: ; 5af2 (1:5af2) ld de,ContinueText call PlaceString jr .next2 -.next1 +.noSaveFile coord hl, 0, 0 ld b,4 ld c,13 @@ -63,31 +63,33 @@ MainMenu: ; 5af2 (1:5af2) ld [wTopMenuItemY],a ld a,$B ld [wMenuWatchedKeys],a - ld a,[wd088] + ld a,[wSaveFileStatus] ld [wMaxMenuItem],a call HandleMenuInput - bit 1,a - jp nz,LoadTitlescreenGraphics ; load title screen (gfx and arrangement) + bit 1,a ; pressed B? + jp nz,DisplayTitleScreen ; if so, go back to the title screen ld c,20 call DelayFrames ld a,[wCurrentMenuItem] ld b,a - ld a,[wd088] + ld a,[wSaveFileStatus] cp a,2 - jp z,.next3 - inc b ; adjust MenuArrow_Counter -.next3 + jp z,.skipInc +; If there's no save file, increment the current menu item so that the numbers +; are the same whether or not there's a save file. + inc b +.skipInc ld a,b and a - jr z,.next4 ; if press_A on Continue + jr z,.choseContinue cp a,1 - jp z,Func_5d52 ; if press_A on NewGame - call DisplayOptionMenu ; if press_a on Options + jp z,StartNewGame + call DisplayOptionMenu ld a,1 - ld [wd08a],a - jp .next0 -.next4 - call ContinueGame + ld [wOptionsInitialized],a + jp .mainMenuLoop +.choseContinue + call DisplayContinueGameInfo ld hl,wd126 set 5,[hl] .inputLoop @@ -100,7 +102,7 @@ MainMenu: ; 5af2 (1:5af2) bit 0,a jr nz,.pressedA bit 1,a - jp nz,.next0 ; pressedB + jp nz,.mainMenuLoop ; pressed B jr .inputLoop .pressedA call GBPalWhiteOutWithDelay3 @@ -122,10 +124,10 @@ MainMenu: ; 5af2 (1:5af2) call SpecialWarpIn jp SpecialEnterMap -Func_5bff: ; 5bff (1:5bff) - ld a,1 +InitOptions: ; 5bff (1:5bff) + ld a,1 ; no delay ld [wLetterPrintingDelayFlags],a - ld a,3 + ld a,3 ; medium speed ld [W_OPTIONS],a ret @@ -301,7 +303,7 @@ LinkCanceledText: ; 5d4d (1:5d4d) TX_FAR _LinkCanceledText db "@" -Func_5d52: ; 5d52 (1:5d52) +StartNewGame: ; 5d52 (1:5d52) ld hl, wd732 res 1, [hl] call OakSpeech @@ -337,12 +339,12 @@ CableClubOptionsText: ; 5d97 (1:5d97) db "COLOSSEUM", $4e db "CANCEL@" -ContinueGame: ; 5db5 (1:5db5) +DisplayContinueGameInfo: ; 5db5 (1:5db5) xor a ld [H_AUTOBGTRANSFERENABLED], a coord hl, 4, 7 - ld b, $8 - ld c, $e + ld b, 8 + ld c, 14 call TextBoxBorder coord hl, 5, 9 ld de, SaveScreenInfoText @@ -351,12 +353,12 @@ ContinueGame: ; 5db5 (1:5db5) ld de, wPlayerName call PlaceString coord hl, 17, 11 - call Func_5e2f + call PrintNumBadges coord hl, 16, 13 - call Func_5e42 + call PrintNumOwnedMons coord hl, 13, 15 - call Func_5e55 - ld a, $1 + call PrintPlayTime + ld a, 1 ld [H_AUTOBGTRANSFERENABLED], a ld c, 30 jp DelayFrames @@ -377,17 +379,17 @@ PrintSaveScreenText: ; 5def (1:5def) ld de, wPlayerName call PlaceString coord hl, 17, 4 - call Func_5e2f + call PrintNumBadges coord hl, 16, 6 - call Func_5e42 + call PrintNumOwnedMons coord hl, 13, 8 - call Func_5e55 + call PrintPlayTime ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ld c, 30 jp DelayFrames -Func_5e2f: ; 5e2f (1:5e2f) +PrintNumBadges: ; 5e2f (1:5e2f) push hl ld hl, W_OBTAINEDBADGES ld b, $1 @@ -397,7 +399,7 @@ Func_5e2f: ; 5e2f (1:5e2f) ld bc, $102 jp PrintNumber -Func_5e42: ; 5e42 (1:5e42) +PrintNumOwnedMons: ; 5e42 (1:5e42) push hl ld hl, wPokedexOwned ld b, wPokedexOwnedEnd - wPokedexOwned @@ -407,7 +409,7 @@ Func_5e42: ; 5e42 (1:5e42) ld bc, $103 jp PrintNumber -Func_5e55: ; 5e55 (1:5e55) +PrintPlayTime: ; 5e55 (1:5e55) ld de, W_PLAYTIMEHOURS + 1 ld bc, $103 call PrintNumber @@ -678,28 +680,32 @@ TextSpeedOptionData: ; 6096 (1:6096) db 7 ; default X coordinate (Medium) db $ff ; terminator -Func_609e: ; 609e (1:609e) - ld a, $a - ld [$0], a +CheckForPlayerNameInSRAM: ; 609e (1:609e) +; Check if the player name data in SRAM has a string terminator character +; (indicating that a name may have been saved there) and return whether it does +; in carry. + ld a, SRAM_ENABLE + ld [MBC1SRamEnable], a ld a, $1 - ld [$6000], a - ld [$4000], a + ld [MBC1SRamBankingMode], a + ld [MBC1SRamBank], a ld b, $b - ld hl, $a598 -.asm_60b0 + ld hl, sPlayerName +.loop ld a, [hli] - cp $50 - jr z, .asm_60c1 + cp "@" + jr z, .found dec b - jr nz, .asm_60b0 + jr nz, .loop +; not found xor a - ld [$0], a - ld [$6000], a + ld [MBC1SRamEnable], a + ld [MBC1SRamBankingMode], a and a ret -.asm_60c1 +.found xor a - ld [$0], a - ld [$6000], a + ld [MBC1SRamEnable], a + ld [MBC1SRamBankingMode], a scf ret diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm index 08ce0da9..4e173bc0 100755 --- a/engine/menu/pokedex.asm +++ b/engine/menu/pokedex.asm @@ -71,8 +71,8 @@ HandlePokedexSideMenu: ; 4006d (10:406d) ld [wd11e],a ld a,[wd11e] push af - ld a,[wWhichTrade] - push af + ld a,[wDexMaxSeenMon] + push af ; this doesn't need to be preserved ld hl,wPokedexSeen call IsPokemonBitSet ld b,2 @@ -108,7 +108,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d) ld b,1 .exitSideMenu pop af - ld [wWhichTrade],a + ld [wDexMaxSeenMon],a pop af ld [wd11e],a pop af @@ -207,7 +207,7 @@ HandlePokedexListMenu: ; 40111 (10:4111) jr .maxSeenPokemonLoop .storeMaxSeenPokemon ld a,b - ld [wWhichTrade],a ; max seen pokemon + ld [wDexMaxSeenMon],a .loop xor a ld [H_AUTOBGTRANSFERENABLED],a @@ -218,7 +218,7 @@ HandlePokedexListMenu: ; 40111 (10:4111) ld a,[wListScrollOffset] ld [wd11e],a ld d,7 - ld a,[wWhichTrade] + ld a,[wDexMaxSeenMon] cp a,7 jr nc,.printPokemonLoop ld d,a @@ -294,9 +294,9 @@ HandlePokedexListMenu: ; 40111 (10:4111) bit 7,a ; was Down pressed? jr z,.checkIfRightPressed .downPressed ; scroll down one row - ld a,[wWhichTrade] + ld a,[wDexMaxSeenMon] cp a,7 - jp c,.loop + jp c,.loop ; can't if the list is shorter than 7 sub a,7 ld b,a ld a,[wListScrollOffset] @@ -309,9 +309,9 @@ HandlePokedexListMenu: ; 40111 (10:4111) bit 4,a ; was Right pressed? jr z,.checkIfLeftPressed .rightPressed ; scroll down 7 rows - ld a,[wWhichTrade] + ld a,[wDexMaxSeenMon] cp a,7 - jp c,.loop + jp c,.loop ; can't if the list is shorter than 7 sub a,6 ld b,a ld a,[wListScrollOffset] diff --git a/engine/menu/prize_menu.asm b/engine/menu/prize_menu.asm index d1fa0c72..b1b751b9 100755 --- a/engine/menu/prize_menu.asm +++ b/engine/menu/prize_menu.asm @@ -231,18 +231,24 @@ HandlePrizeChoice: ; 528c6 (14:68c6) pop af ld b,a call GivePokemon + +; If either the party or box was full, wait after displaying message. push af - ld a,[wccd3] ; XXX is there room? + ld a,[wAddedToParty] and a call z,WaitForTextScrollButtonPress pop af + +; If the mon couldn't be given to the player (because both the party and box +; were full), return without subtracting coins. ret nc + .SubtractCoins call LoadCoinsToSubtract ld hl,hCoins + 1 ld de,wPlayerCoins + 1 ld c,$02 ; how many bytes - predef SubBCDPredef ; subtract coins (BCD daa operations) + predef SubBCDPredef jp PrintPrizePrice .BagFull ld hl,PrizeRoomBagIsFullTextPtr diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm index 75de182b..3bf3464a 100755 --- a/engine/menu/status_screen.asm +++ b/engine/menu/status_screen.asm @@ -297,8 +297,8 @@ StatusScreen2: ; 12b57 (4:6b57) push af xor a ld [hTilesetType], a - ld [$ffba], a - ld bc, $0005 + ld [H_AUTOBGTRANSFERENABLED], a + ld bc, NUM_MOVES + 1 ld hl, wMoves call FillMemory ld hl, wLoadedMonMoves @@ -307,13 +307,13 @@ StatusScreen2: ; 12b57 (4:6b57) call CopyData callab FormatMovesString coord hl, 9, 2 - ld bc, $050a + lb bc, 5, 10 call ClearScreenArea ; Clear under name coord hl, 19, 3 ld [hl], $78 coord hl, 0, 8 - ld b, $8 - ld c, $12 + ld b, 8 + ld c, 18 call TextBoxBorder ; Draw move container coord hl, 2, 9 ld de, wMovesString @@ -387,9 +387,9 @@ StatusScreen2: ; 12b57 (4:6b57) jr nz, .PrintPP .PPDone coord hl, 9, 3 - ld de, EXPPointsText + ld de, StatusScreenExpText call PlaceString - ld a, [wLoadedMonLevel] ; level + ld a, [wLoadedMonLevel] push af cp MAX_LEVEL jr z, .Level100 @@ -407,11 +407,11 @@ StatusScreen2: ; 12b57 (4:6b57) coord hl, 12, 4 ld bc, $0307 call PrintNumber ; exp - call .asm_12c86 + call CalcExpToLevelUp ld de, wLoadedMonExp coord hl, 7, 6 ld bc, $0307 - call PrintNumber + call PrintNumber ; exp needed to level up coord hl, 9, 0 call StatusScreen_ClearName coord hl, 9, 1 @@ -422,7 +422,7 @@ StatusScreen2: ; 12b57 (4:6b57) coord hl, 9, 1 call PlaceString ld a, $1 - ld [$ffba], a + ld [H_AUTOBGTRANSFERENABLED], a call Delay3 call WaitForTextScrollButtonPress ; wait for button pop af @@ -433,25 +433,26 @@ StatusScreen2: ; 12b57 (4:6b57) ld [$ff24], a call GBPalWhiteOut jp ClearScreen -.asm_12c86 ; This does some magic with lvl/exp? - ld a, [wLoadedMonLevel] ; Load level + +CalcExpToLevelUp: ; 12c86 (4:6c86) + ld a, [wLoadedMonLevel] cp MAX_LEVEL - jr z, .asm_12ca7 ; If 100 + jr z, .atMaxLevel inc a ld d, a callab CalcExperience ld hl, wLoadedMonExp + 2 - ld a, [$ff98] + ld a, [hExperience + 2] sub [hl] ld [hld], a - ld a, [$ff97] + ld a, [hExperience + 1] sbc [hl] ld [hld], a - ld a, [$ff96] + ld a, [hExperience] sbc [hl] ld [hld], a ret -.asm_12ca7 +.atMaxLevel ld hl, wLoadedMonExp xor a ld [hli], a @@ -459,11 +460,9 @@ StatusScreen2: ; 12b57 (4:6b57) ld [hl], a ret -EXPPointsText: ; 12caf (4:6caf) - db "EXP POINTS", $4e - -LevelUpText: ; 12cba (4:6cba) - db "LEVEL UP@" +StatusScreenExpText: ; 12caf (4:6caf) + db "EXP POINTS" + next "LEVEL UP@" StatusScreen_ClearName: ; 12cc3 (4:6cc3) ld bc, 10 diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index c7b2f4d6..9b9b1c7e 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -19,9 +19,9 @@ SetDefaultNames: ; 60ca (1:60ca) ld [W_OPTIONS], a pop af ld [wLetterPrintingDelayFlags], a - ld a, [wd08a] + ld a, [wOptionsInitialized] and a - call z, Func_5bff + call z, InitOptions ld hl, NintenText ld de, wPlayerName ld bc, $b diff --git a/engine/oam_dma.asm b/engine/oam_dma.asm index bd89677a..7326445e 100644 --- a/engine/oam_dma.asm +++ b/engine/oam_dma.asm @@ -15,7 +15,7 @@ WriteDMACodeToHRAM: DMARoutine: ; initiate DMA ld a, wOAMBuffer / $100 - ld [$ff46], a + ld [rDMA], a ; wait for DMA to finish ld a, $28 diff --git a/engine/overworld/hidden_items.asm b/engine/overworld/hidden_items.asm index 910fcf04..3fb4ffca 100755 --- a/engine/overworld/hidden_items.asm +++ b/engine/overworld/hidden_items.asm @@ -1,9 +1,9 @@ HiddenItems: ; 76688 (1d:6688) ld hl, HiddenItemCoords - call Func_76857 - ld [wTrainerScreenX], a - ld hl, wd6f0 - ld a, [wTrainerScreenX] + call FindHiddenItemOrCoinsIndex + ld [wHiddenItemOrCoinsIndex], a + ld hl, wObtainedHiddenItemsFlags + ld a, [wHiddenItemOrCoinsIndex] ld c, a ld b, $2 predef FlagActionPredef @@ -11,9 +11,9 @@ HiddenItems: ; 76688 (1d:6688) and a ret nz call EnableAutoTextBoxDrawing - ld a, $1 + ld a, 1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld a, [wWhichTrade] ; item ID + ld a, [wHiddenObjectFunctionArgument] ; item ID ld [wd11e], a call GetItemName tx_pre_jump FoundHiddenItemText @@ -23,12 +23,12 @@ INCLUDE "data/hidden_item_coords.asm" FoundHiddenItemText: ; 7675b (1d:675b) TX_FAR _FoundHiddenItemText TX_ASM - ld a, [wWhichTrade] ; item ID + ld a, [wHiddenObjectFunctionArgument] ; item ID ld b, a ld c, 1 call GiveItem jr nc, .BagFull - ld hl, wd6f0 + ld hl, wObtainedHiddenItemsFlags ld a, [wTrainerScreenX] ld c, a ld b, $1 @@ -56,10 +56,10 @@ HiddenCoins: ; 76799 (1d:6799) and a ret z ld hl, HiddenCoinCoords - call Func_76857 - ld [wTrainerScreenX], a - ld hl, wd6fe - ld a, [wTrainerScreenX] + call FindHiddenItemOrCoinsIndex + ld [wHiddenItemOrCoinsIndex], a + ld hl, wObtainedHiddenCoinsFlags + ld a, [wHiddenItemOrCoinsIndex] ld c, a ld b, $2 predef FlagActionPredef @@ -70,7 +70,7 @@ HiddenCoins: ; 76799 (1d:6799) ld [hCoins - 1], a ld [hCoins], a ld [hCoins + 1], a - ld a, [wWhichTrade] + ld a, [wHiddenObjectFunctionArgument] sub COIN cp 10 jr z, .bcd10 @@ -99,7 +99,7 @@ HiddenCoins: ; 76799 (1d:6799) ld hl, hCoins + 1 ld c, $2 predef AddBCDPredef - ld hl, wd6fe + ld hl, wObtainedHiddenCoinsFlags ld a, [wTrainerScreenX] ld c, a ld b, $1 @@ -130,31 +130,31 @@ DroppedHiddenCoinsText: ; 7684d (1d:684d) TX_FAR _DroppedHiddenCoinsText db "@" -Func_76857: ; 76857 (1d:6857) - ld a, [wTrainerScreenY] +FindHiddenItemOrCoinsIndex: ; 76857 (1d:6857) + ld a, [wHiddenObjectY] ld d, a - ld a, [wTrainerScreenX] + ld a, [wHiddenObjectX] ld e, a ld a, [W_CURMAP] ld b, a - ld c, $ff + ld c, -1 .loop inc c ld a, [hli] cp $ff ; end of the list? ret z ; if so, we're done here cp b - jr nz, .asm_76877 + jr nz, .next1 ld a, [hli] cp d - jr nz, .asm_76878 + jr nz, .next2 ld a, [hli] cp e jr nz, .loop ld a, c ret -.asm_76877 +.next1 inc hl -.asm_76878 +.next2 inc hl jr .loop diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm index ae67aeed..cabfc093 100755 --- a/engine/overworld/hidden_objects.asm +++ b/engine/overworld/hidden_objects.asm @@ -1,4 +1,4 @@ -Func_46981: ; 46981 (11:6981) +IsPlayerOnDungeonWarp: ; 46981 (11:6981) xor a ld [wWhichDungeonWarp], a ld a, [wd72d] @@ -6,7 +6,7 @@ Func_46981: ; 46981 (11:6981) ret nz call ArePlayerCoordsInArray ret nc - ld a, [wWhichTrade] + ld a, [wCoordIndex] ld [wWhichDungeonWarp], a ld hl, wd72d set 4, [hl] @@ -58,7 +58,7 @@ CheckForHiddenObject: ; 469a0 (11:69a0) ld [wHiddenObjectX], a ld c, a call CheckIfCoordsInFrontOfPlayerMatch - ld a, [$ffea] + ld a, [hCoordsInFrontOfPlayerMatch] and a jr z, .foundMatchingObject inc hl @@ -85,7 +85,7 @@ CheckForHiddenObject: ; 469a0 (11:69a0) ret ; checks if the coordinates in front of the player's sprite match Y in b and X in c -; [$ffea] = $00 if they match, $ff if they don't match +; [hCoordsInFrontOfPlayerMatch] = $00 if they match, $ff if they don't match CheckIfCoordsInFrontOfPlayerMatch: ; 46a01 (11:6a01) ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction cp SPRITE_FACING_UP @@ -127,7 +127,7 @@ CheckIfCoordsInFrontOfPlayerMatch: ; 46a01 (11:6a01) .didNotMatch ld a, $ff .done - ld [$ffea], a + ld [hCoordsInFrontOfPlayerMatch], a ret INCLUDE "data/hidden_objects.asm" diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index 89b09bba..f618261e 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -210,9 +210,8 @@ UpdateNPCSprite: ; 4ed1 (1:4ed1) .moveDown ld de, 2*SCREEN_WIDTH add hl, de ; move tile pointer two rows down - ld de, $100 - - ld bc, $400 + lb de, 1, 0 + lb bc, 4, SPRITE_FACING_DOWN jr TryWalking .notDown cp $80 ; $40 <= a < $80: up (or right) @@ -223,8 +222,8 @@ UpdateNPCSprite: ; 4ed1 (1:4ed1) .moveUp ld de, -2*SCREEN_WIDTH add hl, de ; move tile pointer two rows up - ld de, $ff00 - ld bc, $804 + lb de, -1, 0 + lb bc, 8, SPRITE_FACING_UP jr TryWalking .notUp cp $c0 ; $80 <= a < $c0: left (or up) @@ -235,8 +234,8 @@ UpdateNPCSprite: ; 4ed1 (1:4ed1) .moveLeft dec hl dec hl ; move tile pointer two columns left - ld de, $ff - ld bc, $208 + lb de, 0, -1 + lb bc, 2, SPRITE_FACING_LEFT jr TryWalking .notLeft ; $c0 <= a: right (or down) ld a, [wCurSpriteMovement2] @@ -245,8 +244,8 @@ UpdateNPCSprite: ; 4ed1 (1:4ed1) .moveRight inc hl inc hl ; move tile pointer two columns right - ld de, $1 - ld bc, $10c + lb de, 0, 1 + lb bc, 1, SPRITE_FACING_RIGHT jr TryWalking ; changes facing direction by zeroing the movement delta and calling TryWalking diff --git a/engine/palettes.asm b/engine/palettes.asm index a9160d21..a325e0a3 100755 --- a/engine/palettes.asm +++ b/engine/palettes.asm @@ -328,10 +328,10 @@ SendSGBPacket: ; 71feb (1c:5feb) ld [$fff9],a ; send RESET signal (P14=LOW, P15=LOW) xor a - ld [$ff00],a + ld [rJOYP],a ; set P14=HIGH, P15=HIGH ld a,$30 - ld [$ff00],a + ld [rJOYP],a ;load length of packets (16 bytes) ld b,$10 .nextByte @@ -348,10 +348,10 @@ SendSGBPacket: ; 71feb (1c:5feb) ; else (if 0th bit is zero) set P14=LOW,P15=HIGH (send bit 0) ld a,$20 .next0 - ld [$ff00],a + ld [rJOYP],a ; must set P14=HIGH,P15=HIGH between each "pulse" ld a,$30 - ld [$ff00],a + ld [rJOYP],a ; rotation will put next bit in 0th position (so we can always use command ; "bit 0,d" to fetch the bit that has to be sent) rr d @@ -362,10 +362,10 @@ SendSGBPacket: ; 71feb (1c:5feb) jr nz,.nextByte ; send bit 1 as a "stop bit" (end of parameter data) ld a,$20 - ld [$ff00],a + ld [rJOYP],a ; set P14=HIGH,P15=HIGH ld a,$30 - ld [$ff00],a + ld [rJOYP],a xor a ld [$fff9],a ; wait for about 70000 cycles @@ -448,38 +448,38 @@ CheckSGB: ; 7209b (1c:609b) ld [$fff9], a ei call Wait7000 - ld a, [rJOYP] ; $ff0 + ld a, [rJOYP] and $3 cp $3 jr nz, .asm_720fd ld a, $20 - ld [rJOYP], a ; $ff0 - ld a, [rJOYP] ; $ff0 - ld a, [rJOYP] ; $ff0 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] call Wait7000 call Wait7000 ld a, $30 - ld [rJOYP], a ; $ff0 + ld [rJOYP], a call Wait7000 call Wait7000 ld a, $10 - ld [rJOYP], a ; $ff0 - ld a, [rJOYP] ; $ff0 - ld a, [rJOYP] ; $ff0 - ld a, [rJOYP] ; $ff0 - ld a, [rJOYP] ; $ff0 - ld a, [rJOYP] ; $ff0 - ld a, [rJOYP] ; $ff0 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] call Wait7000 call Wait7000 ld a, $30 - ld [rJOYP], a ; $ff0 - ld a, [rJOYP] ; $ff0 - ld a, [rJOYP] ; $ff0 - ld a, [rJOYP] ; $ff0 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] call Wait7000 call Wait7000 - ld a, [rJOYP] ; $ff0 + ld a, [rJOYP] and $3 cp $3 jr nz, .asm_720fd diff --git a/engine/predefs.asm b/engine/predefs.asm index 17f94b73..73a22ad9 100755 --- a/engine/predefs.asm +++ b/engine/predefs.asm @@ -111,7 +111,7 @@ PredefPointers:: ; 4fe79 (13:7e79) add_predef InternalClockTradeAnim add_predef TrainerEngage add_predef IndexToPokedex - add_predef DisplayPicCenteredOrUpperRight; 3B display pic? + add_predef DisplayPicCenteredOrUpperRight add_predef UsedCut add_predef ShowPokedexData add_predef WriteMonMoves @@ -128,15 +128,15 @@ PredefPointers:: ; 4fe79 (13:7e79) add_predef DrawEnemyHUDAndHPBar add_predef LoadTownMap_Nest add_predef PrintMonType - add_predef EmotionBubble; 4C player exclamation + add_predef EmotionBubble add_predef EmptyFunc3; return immediately add_predef AskName add_predef PewterGuys add_predef SaveSAVtoSRAM2 - add_predef LoadSAVCheckSum2 + add_predef LoadSAV2 add_predef LoadSAV add_predef SaveSAVtoSRAM1 - add_predef DoInGameTradeDialogue ; 54 initiate trade + add_predef DoInGameTradeDialogue add_predef HallOfFamePC add_predef DisplayDexRating dbw $1E, _LeaveMapAnim ; wrong bank diff --git a/engine/save.asm b/engine/save.asm index 56468595..7265fa3c 100755 --- a/engine/save.asm +++ b/engine/save.asm @@ -4,11 +4,11 @@ LoadSAV: ; 735e8 (1c:75e8) call ClearScreen call LoadFontTilePatterns call LoadTextBoxTilePatterns - call LoadSAVCheckSum + call LoadSAV0 jr c, .badsum - call LoadSAVCheckSum1 + call LoadSAV1 jr c, .badsum - call LoadSAVCheckSum2 + call LoadSAV2 jr c, .badsum ld a, $2 ; good checksum jr .goodsum @@ -24,14 +24,14 @@ LoadSAV: ; 735e8 (1c:75e8) res 6, [hl] ld a, $1 ; bad checksum .goodsum - ld [wd088], a ; checksum flag + ld [wSaveFileStatus], a ret FileDataDestroyedText: ; 7361e (1c:761e) TX_FAR _FileDataDestroyedText db "@" -LoadSAVCheckSum: ; 73623 (1c:7623) +LoadSAV0: ; 73623 (1c:7623) ld a, SRAM_ENABLE ld [MBC1SRamEnable], a ld a, $1 @@ -43,7 +43,9 @@ LoadSAVCheckSum: ; 73623 (1c:7623) ld c, a ld a, [sMainDataCheckSum] ; SAV's checksum cp c - jp z, .Func_73652 + jp z, .checkSumsMatched + +; If the computed checksum didn't match the saved on, try again. ld hl, sPlayerName ld bc, sMainDataCheckSum - sPlayerName call SAVCheckSum @@ -52,7 +54,7 @@ LoadSAVCheckSum: ; 73623 (1c:7623) cp c jp nz, SAVBadCheckSum -.Func_73652 ; 73652 (1c:7652) +.checkSumsMatched ld hl, sPlayerName ld de, wPlayerName ld bc, 11 @@ -76,7 +78,7 @@ LoadSAVCheckSum: ; 73623 (1c:7623) and a jp SAVGoodChecksum -LoadSAVCheckSum1: ; 73690 (1c:7690) +LoadSAV1: ; 73690 (1c:7690) ld a, SRAM_ENABLE ld [MBC1SRamEnable], a ld a, $1 @@ -96,7 +98,7 @@ LoadSAVCheckSum1: ; 73690 (1c:7690) and a jp SAVGoodChecksum -LoadSAVCheckSum2: ; 736bd (1c:76bd) +LoadSAV2: ; 736bd (1c:76bd) ld a, SRAM_ENABLE ld [MBC1SRamEnable], a ld a, $1 @@ -129,10 +131,11 @@ SAVGoodChecksum: ; 736f8 (1c:76f8) ld [MBC1SRamEnable], a ret -Func_73701: ; 73701 (1c:7701) - call LoadSAVCheckSum - call LoadSAVCheckSum1 - jp LoadSAVCheckSum2 +LoadSAVIgnoreBadCheckSum: ; 73701 (1c:7701) +; unused function that loads save data and ignores bad checksums + call LoadSAV0 + call LoadSAV1 + jp LoadSAV2 SaveSAV: ; 7370a (1c:770a) callba PrintSaveScreenText @@ -140,7 +143,7 @@ SaveSAV: ; 7370a (1c:770a) call SaveSAVConfirm and a ;|0 = Yes|1 = No| ret nz - ld a,[wd088] + ld a,[wSaveFileStatus] dec a jr z,.save call SAVCheckRandomID @@ -270,14 +273,14 @@ SaveSAVtoSRAM2: ; 7380f (1c:780f) SaveSAVtoSRAM: ; 73848 (1c:7848) ld a, $2 - ld [wd088], a + ld [wSaveFileStatus], a call SaveSAVtoSRAM0 call SaveSAVtoSRAM1 jp SaveSAVtoSRAM2 SAVCheckSum: ; 73856 (1c:7856) ;Check Sum (result[1 byte] is complemented) - ld d, $0 + ld d, 0 .loop ld a, [hli] add d @@ -290,11 +293,11 @@ SAVCheckSum: ; 73856 (1c:7856) cpl ret -Func_73863: ; 73863 (1c:7863) +CalcIndividualBoxCheckSums: ; 73863 (1c:7863) ld hl, sBox1 ; sBox7 - ld de, sBoxes1CheckSum2 ; sBoxes2CheckSum2 + ld de, sBank2IndividualBoxChecksums ; sBank3IndividualBoxChecksums ld b, NUM_BOXES / 2 -.asm_7386b +.loop push bc push de ld bc, wBoxMonNicksEnd - W_NUMINBOX @@ -304,21 +307,23 @@ Func_73863: ; 73863 (1c:7863) inc de pop bc dec b - jr nz, .asm_7386b + jr nz, .loop ret -Func_7387b: ; 7387b (1c:787b) - ld hl, PointerTable_73895 +GetBoxSRAMLocation: ; 7387b (1c:787b) +; in: a = box num +; out: b = box SRAM bank, hl = pointer to start of box + ld hl, BoxSRAMPointerTable ld a, [wCurrentBoxNum] and $7f cp NUM_BOXES / 2 - ld b, $2 - jr c, .asm_7388c + ld b, 2 + jr c, .next inc b sub NUM_BOXES / 2 -.asm_7388c +.next ld e, a - ld d, $0 + ld d, 0 add hl, de add hl, de ld a, [hli] @@ -326,7 +331,7 @@ Func_7387b: ; 7387b (1c:787b) ld l, a ret -PointerTable_73895: ; 73895 (1c:7895) +BoxSRAMPointerTable: ; 73895 (1c:7895) dw sBox1 ; sBox7 dw sBox2 ; sBox8 dw sBox3 ; sBox9 @@ -342,9 +347,9 @@ ChangeBox:: ; 738a1 (1c:78a1) and a ret nz ; return if No was chosen ld hl, wCurrentBoxNum - bit 7, [hl] - call z, Func_73a29 - call Func_7393f + bit 7, [hl] ; is it the first time player is changing the box? + call z, EmptyAllSRAMBoxes ; if so, empty all boxes in SRAM + call DisplayChangeBoxMenu call UpdateSprites ld hl, hFlags_0xFFF6 set 1, [hl] @@ -353,17 +358,17 @@ ChangeBox:: ; 738a1 (1c:78a1) res 1, [hl] bit 1, a ret nz - call Func_7387b + call GetBoxSRAMLocation ld e, l ld d, h ld hl, W_NUMINBOX - call Func_7390e + call CopyBoxToOrFromSRAM ; copy old box from WRAM to SRAM ld a, [wCurrentMenuItem] set 7, a ld [wCurrentBoxNum], a - call Func_7387b + call GetBoxSRAMLocation ld de, W_NUMINBOX - call Func_7390e + call CopyBoxToOrFromSRAM ; copy new box from SRAM to WRAM ld hl, W_MAPTEXTPTR ld de, wChangeBoxSavedMapTextPointer ld a, [hli] @@ -384,7 +389,8 @@ WhenYouChangeBoxText: ; 73909 (1c:7909) TX_FAR _WhenYouChangeBoxText db "@" -Func_7390e: ; 7390e (1c:790e) +CopyBoxToOrFromSRAM: ; 7390e (1c:790e) +; copy an entire box from hl to de with b as the SRAM bank push hl ld a, SRAM_ENABLE ld [MBC1SRamEnable], a @@ -395,30 +401,33 @@ Func_7390e: ; 7390e (1c:790e) ld bc, wBoxMonNicksEnd - W_NUMINBOX call CopyData pop hl + +; mark the memory that the box was copied from as am empty box xor a ld [hli], a dec a ld [hl], a + ld hl, sBox1 ; sBox7 - ld bc, sBoxes1CheckSum - sBox1 + ld bc, sBank2AllBoxesChecksum - sBox1 call SAVCheckSum - ld [sBoxes1CheckSum], a ; sBoxes2CheckSum - call Func_73863 + ld [sBank2AllBoxesChecksum], a ; sBank3AllBoxesChecksum + call CalcIndividualBoxCheckSums xor a ld [MBC1SRamBankingMode], a ld [MBC1SRamEnable], a ret -Func_7393f: ; 7393f (1c:793f) +DisplayChangeBoxMenu: ; 7393f (1c:793f) xor a ld [H_AUTOBGTRANSFERENABLED], a - ld a, $3 + ld a, A_BUTTON | B_BUTTON ld [wMenuWatchedKeys], a - ld a, $b + ld a, 11 ld [wMaxMenuItem], a - ld a, $1 + ld a, 1 ld [wTopMenuItemY], a - ld a, $c + ld a, 12 ld [wTopMenuItemX], a xor a ld [wMenuWatchMovingOutOfBounds], a @@ -427,14 +436,14 @@ Func_7393f: ; 7393f (1c:793f) ld [wCurrentMenuItem], a ld [wLastMenuItem], a coord hl, 0, 0 - ld b, $2 - ld c, $9 + ld b, 2 + ld c, 9 call TextBoxBorder ld hl, ChooseABoxText call PrintText coord hl, 11, 0 - ld b, $c - ld c, $7 + ld b, 12 + ld c, 7 call TextBoxBorder ld hl, hFlags_0xFFF6 set 2, [hl] @@ -446,37 +455,37 @@ Func_7393f: ; 7393f (1c:793f) ld a, [wCurrentBoxNum] and $7f cp 9 - jr c, .asm_739a6 + jr c, .singleDigitBoxNum sub 9 coord hl, 8, 2 ld [hl], "1" add "0" - jr .asm_739a8 -.asm_739a6 + jr .next +.singleDigitBoxNum add "1" -.asm_739a8 +.next Coorda 9, 2 coord hl, 1, 2 ld de, BoxNoText call PlaceString - call Func_73a84 + call GetMonCountsForAllBoxes coord hl, 18, 1 - ld de, wWhichTrade + ld de, wBoxMonCounts ld bc, SCREEN_WIDTH ld a, $c -.asm_739c2 +.loop push af ld a, [de] - and a - jr z, .asm_739c9 - ld [hl], $78 -.asm_739c9 + and a ; is the box empty? + jr z, .skipPlacingPokeball + ld [hl], $78 ; place pokeball tile next to box name if box not empty +.skipPlacingPokeball add hl, bc inc de pop af dec a - jr nz, .asm_739c2 - ld a, $1 + jr nz, .loop + ld a, 1 ld [H_AUTOBGTRANSFERENABLED], a ret @@ -501,51 +510,54 @@ BoxNames: ; 739d9 (1c:79d9) BoxNoText: ; 73a21 (1c:7a21) db "BOX No.@" -Func_73a29: ; 73a29 (1c:7a29) +EmptyAllSRAMBoxes: ; 73a29 (1c:7a29) +; marks all boxes in SRAM as empty (initialisation for the first time the +; player changes the box) ld a, SRAM_ENABLE ld [MBC1SRamEnable], a ld a, $1 ld [MBC1SRamBankingMode], a - ld a, $2 + ld a, 2 ld [MBC1SRamBank], a - call Func_73a4b - ld a, $3 + call EmptySRAMBoxesInBank + ld a, 3 ld [MBC1SRamBank], a - call Func_73a4b + call EmptySRAMBoxesInBank xor a ld [MBC1SRamBankingMode], a ld [MBC1SRamEnable], a ret -Func_73a4b: ; 73a4b (1c:7a4b) +EmptySRAMBoxesInBank: ; 73a4b (1c:7a4b) +; marks every box in the current SRAM bank as empty ld hl, sBox1 ; sBox7 - call Func_73a7f + call EmptySRAMBox ld hl, sBox2 ; sBox8 - call Func_73a7f + call EmptySRAMBox ld hl, sBox3 ; sBox9 - call Func_73a7f + call EmptySRAMBox ld hl, sBox4 ; sBox10 - call Func_73a7f + call EmptySRAMBox ld hl, sBox5 ; sBox11 - call Func_73a7f + call EmptySRAMBox ld hl, sBox6 ; sBox12 - call Func_73a7f + call EmptySRAMBox ld hl, sBox1 ; sBox7 - ld bc, sBoxes1CheckSum - sBox1 + ld bc, sBank2AllBoxesChecksum - sBox1 call SAVCheckSum - ld [sBoxes1CheckSum], a ; sBoxes2CheckSum - call Func_73863 + ld [sBank2AllBoxesChecksum], a ; sBank3AllBoxesChecksum + call CalcIndividualBoxCheckSums ret -Func_73a7f: ; 73a7f (1c:7a7f) +EmptySRAMBox: ; 73a7f (1c:7a7f) xor a ld [hli], a dec a ld [hl], a ret -Func_73a84: ; 73a84 (1c:7a84) - ld hl, wWhichTrade +GetMonCountsForAllBoxes: ; 73a84 (1c:7a84) + ld hl, wBoxMonCounts push hl ld a, SRAM_ENABLE ld [MBC1SRamEnable], a @@ -553,24 +565,27 @@ Func_73a84: ; 73a84 (1c:7a84) ld [MBC1SRamBankingMode], a ld a, $2 ld [MBC1SRamBank], a - call Func_73ab8 + call GetMonCountsForBoxesInBank ld a, $3 ld [MBC1SRamBank], a - call Func_73ab8 + call GetMonCountsForBoxesInBank xor a ld [MBC1SRamBankingMode], a ld [MBC1SRamEnable], a pop hl + +; copy the count for the current box from WRAM ld a, [wCurrentBoxNum] and $7f ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [W_NUMINBOX] ld [hl], a + ret -Func_73ab8: ; 73ab8 (1c:7ab8) +GetMonCountsForBoxesInBank: ; 73ab8 (1c:7ab8) ld a, [sBox1] ; sBox7 ld [hli], a ld a, [sBox2] ; sBox8 @@ -646,7 +661,7 @@ SaveHallOfFameTeams: ; 73b0d (1c:7b0d) LoadHallOfFameTeams: ; 73b3f (1c:7b3f) ld hl, sHallOfFame ld bc, HOF_TEAM - ld a, [wWhichTrade] + ld a, [wHoFTeamIndex] call AddNTimes ld de, wcc5b ld bc, HOF_TEAM diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index ea1eb315..cf6ad3d5 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -867,7 +867,7 @@ LoadSlotMachineTiles: ; 378a8 (d:78a8) ld bc, $00f0 call CopyData call EnableLCD - ld hl, wTrainerEngageDistance + ld hl, wSlotMachineWheel1Offset ld a, $1c ld [hli], a ld [hli], a diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm index 3a4e2e4c..5acdd2c9 100755 --- a/engine/titlescreen.asm +++ b/engine/titlescreen.asm @@ -21,7 +21,7 @@ SetDefaultNamesBeforeTitlescreen: ; 42b7 (1:42b7) ld [wc0ef], a ld [wc0f0], a -LoadTitlescreenGraphics: ; 42dd (1:42dd) +DisplayTitleScreen: ; 42dd (1:42dd) call GBPalWhiteOut ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a diff --git a/home/init.asm b/home/init.asm index 932797ac..3e8d1d2b 100644 --- a/home/init.asm +++ b/home/init.asm @@ -23,17 +23,17 @@ rLCDC_DEFAULT EQU %11100011 xor a ld [rIF], a ld [rIE], a - ld [$ff43], a - ld [$ff42], a + ld [rSCX], a + ld [rSCY], a ld [rSB], a ld [rSC], a ld [rWX], a - ld [$ff4a], a - ld [$ff06], a - ld [$ff07], a + ld [rWY], a + ld [rTMA], a + ld [rTAC], a ld [rBGP], a ld [rOBP0], a - ld [$ff49], a + ld [rOBP1], a ld a, rLCDC_ENABLE_MASK ld [rLCDC], a @@ -66,10 +66,10 @@ rLCDC_DEFAULT EQU %11100011 xor a ld [hTilesetType], a - ld [$ff41], a + ld [rSTAT], a ld [hSCX], a ld [hSCY], a - ld [$ff0f], a + ld [rIF], a ld a, 1 << VBLANK + 1 << TIMER + 1 << SERIAL ld [rIE], a diff --git a/hram.asm b/hram.asm index a05f3d18..8bbf7150 100644 --- a/hram.asm +++ b/hram.asm @@ -90,6 +90,8 @@ hNPCSpriteOffset EQU $FF95 ; temp value used when swapping bytes hSwapTemp EQU $FF95 +hExperience EQU $FF96 ; 3 bytes, big endian + ; Multiplcation and division variables are meant ; to overlap for back-to-back usage. Big endian. @@ -261,6 +263,8 @@ hQuotient2 EQU $FFE7 hSpriteVRAMSlotAndFacing EQU $FFE9 +hCoordsInFrontOfPlayerMatch EQU $FFEA + hSpriteAnimFrameCounter EQU $FFEA H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn diff --git a/macros.asm b/macros.asm index 5f1deaf6..ba83e73a 100644 --- a/macros.asm +++ b/macros.asm @@ -14,7 +14,7 @@ dex EQUS "db $5f, $50" ; End a Pokedex entry. percent EQUS "* $ff / 100" lb: MACRO ; r, hi, lo - ld \1, (\2) << 8 + (\3) + ld \1, (\2) << 8 + ((\3) & $ff) ENDM diff --git a/main.asm b/main.asm index 08747a5a..c90f5436 100755 --- a/main.asm +++ b/main.asm @@ -3743,7 +3743,7 @@ _AddPartyMon: ; f2e5 (3:72e5) dec de dec de xor a - ld [wHPBarMaxHP], a + ld [wLearningMovesFromDayCare], a predef WriteMonMoves pop de ld a, [wPlayerID] ; set trainer ID to player ID @@ -3758,13 +3758,13 @@ _AddPartyMon: ; f2e5 (3:72e5) callab CalcExperience pop de inc de - ld a, [H_MULTIPLICAND] ; write experience + ld a, [hExperience] ; write experience ld [de], a inc de - ld a, [H_MULTIPLICAND+1] + ld a, [hExperience + 1] ld [de], a inc de - ld a, [H_MULTIPLICAND+2] + ld a, [hExperience + 2] ld [de], a xor a ld b, $a diff --git a/scripts/agatha.asm b/scripts/agatha.asm index e65b1fa2..850cc0bb 100755 --- a/scripts/agatha.asm +++ b/scripts/agatha.asm @@ -67,7 +67,7 @@ AgathaScript0: ; 76490 (1d:6490) ld [hJoyHeld], a ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesIndex], a - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $3 jr c, .asm_764b4 ld hl, wd865 diff --git a/scripts/bruno.asm b/scripts/bruno.asm index bd28917c..76a5919a 100755 --- a/scripts/bruno.asm +++ b/scripts/bruno.asm @@ -67,7 +67,7 @@ BrunoScript0: ; 76339 (1d:6339) ld [hJoyHeld], a ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesIndex], a - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $3 jr c, .asm_7635d ld hl, wd864 diff --git a/scripts/ceruleancity.asm b/scripts/ceruleancity.asm index 20873a81..2c7bd449 100755 --- a/scripts/ceruleancity.asm +++ b/scripts/ceruleancity.asm @@ -42,7 +42,7 @@ CeruleanCityScript0: ; 194c8 (6:54c8) ld hl, CeruleanCityCoords1 call ArePlayerCoordsInArray jr nc, .asm_194f7 - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 ld a, $8 ld b, SPRITE_FACING_DOWN diff --git a/scripts/daycarem.asm b/scripts/daycarem.asm index 330f2234..794d681e 100755 --- a/scripts/daycarem.asm +++ b/scripts/daycarem.asm @@ -9,19 +9,19 @@ DayCareMText1: ; 56254 (15:6254) call SaveScreenTilesToBuffer2 ld a, [W_DAYCARE_IN_USE] and a - jp nz, DayCareMScript_562e1 - ld hl, DayCareMText_5640f + jp nz, .daycareInUse + ld hl, DayCareIntroText call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a - ld hl, DayCareMText_5643b - jp nz, DayCareMScript_56409 + ld hl, DayCareComeAgainText + jp nz, .done ld a, [wPartyCount] dec a - ld hl, DayCareMText_56445 - jp z, DayCareMScript_56409 - ld hl, DayCareMText_56414 + ld hl, DayCareOnlyHaveOneMonText + jp z, .done + ld hl, DayCareWhichMonText call PrintText xor a ld [wUpdateSpritesEnabled], a @@ -33,17 +33,17 @@ DayCareMText1: ; 56254 (15:6254) call RestoreScreenTilesAndReloadTilePatterns call LoadGBPal pop af - ld hl, DayCareMText_56437 - jp c, DayCareMScript_56409 + ld hl, DayCareAllRightThenText + jp c, .done callab KnowsHMMove - ld hl, DayCareMText_5644a - jp c, DayCareMScript_56409 + ld hl, DayCareCantAcceptMonWithHMText + jp c, .done xor a ld [wPartyAndBillsPCSavedMenuItem], a ld a, [wWhichPokemon] ld hl, wPartyMonNicks call GetPartyMonName - ld hl, DayCareMText_56419 + ld hl, DayCareWillLookAfterMonText call PrintText ld a, 1 ld [W_DAYCARE_IN_USE], a @@ -55,10 +55,10 @@ DayCareMText1: ; 56254 (15:6254) call RemovePokemon ld a, [wcf91] call PlayCry - ld hl, DayCareMText_5641e - jp DayCareMScript_56409 + ld hl, DayCareComeSeeMeInAWhileText + jp .done -DayCareMScript_562e1: ; 562e1 (15:62e1) +.daycareInUse xor a ld hl, W_DAYCAREMONNAME call GetPartyMonName @@ -68,40 +68,41 @@ DayCareMScript_562e1: ; 562e1 (15:62e1) callab CalcLevelFromExperience ld a, d cp MAX_LEVEL - jr c, .asm_56315 + jr c, .skipCalcExp + ld d, MAX_LEVEL callab CalcExperience ld hl, wDayCareMonExp - ld a, [H_NUMTOPRINT] + ld a, [hExperience] ld [hli], a - ld a, [$ff97] + ld a, [hExperience + 1] ld [hli], a - ld a, [$ff98] + ld a, [hExperience + 2] ld [hl], a ld d, MAX_LEVEL -.asm_56315 +.skipCalcExp xor a - ld [wTrainerEngageDistance], a + ld [wDayCareNumLevelsGrown], a ld hl, wDayCareMonBoxLevel ld a, [hl] - ld [wTrainerSpriteOffset], a + ld [wDayCareStartLevel], a cp d ld [hl], d - ld hl, DayCareMText_56432 - jr z, .asm_56333 - ld a, [wTrainerSpriteOffset] + ld hl, DayCareMonNeedsMoreTimeText + jr z, .next + ld a, [wDayCareStartLevel] ld b, a ld a, d sub b - ld [wTrainerEngageDistance], a - ld hl, DayCareMText_56423 + ld [wDayCareNumLevelsGrown], a + ld hl, DayCareMonHasGrownText -.asm_56333 +.next call PrintText ld a, [wPartyCount] cp PARTY_LENGTH - ld hl, DayCareMText_56440 + ld hl, DayCareNoRoomForMonText jp z, .asm_56403 ld de, wTrainerFacingDirection xor a @@ -112,7 +113,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1) ld a, $1 ld [hli], a ld [hl], $0 - ld a, [wTrainerEngageDistance] + ld a, [wDayCareNumLevelsGrown] inc a ld b, a ld c, $2 @@ -126,13 +127,13 @@ DayCareMScript_562e1: ; 562e1 (15:62e1) pop hl dec b jr nz, .asm_56357 - ld hl, DayCareMText_56428 + ld hl, DayCareOweMoneyText call PrintText ld a, $13 ld [wTextBoxID], a call DisplayTextBoxID call YesNoChoice - ld hl, DayCareMText_56437 + ld hl, DayCareAllRightThenText ld a, [wCurrentMenuItem] and a jp nz, .asm_56403 @@ -144,13 +145,13 @@ DayCareMScript_562e1: ; 562e1 (15:62e1) ld [hMoney + 2], a call HasEnoughMoney jr nc, .asm_56396 - ld hl, DayCareMText_56454 + ld hl, DayCareNotEnoughMoneyText jp .asm_56403 .asm_56396 xor a ld [W_DAYCARE_IN_USE], a - ld hl, wTrainerEngageDistance + ld hl, wDayCareNumLevelsGrown ld [hli], a inc hl ld de, wPlayerMoney + 2 @@ -161,7 +162,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1) ld a, MONEY_BOX ld [wTextBoxID], a call DisplayTextBoxID - ld hl, DayCareMText_5644f + ld hl, DayCareHeresYourMonText call PrintText ld a, DAYCARE_TO_PARTY ld [wMoveMonType], a @@ -178,10 +179,12 @@ DayCareMScript_562e1: ; 562e1 (15:62e1) ld d, h ld e, l ld a, 1 - ld [wHPBarMaxHP], a + ld [wLearningMovesFromDayCare], a predef WriteMonMoves pop bc pop af + +; set mon's HP to max ld hl, wPartyMon1HP call AddNTimes ld d, h @@ -193,73 +196,74 @@ DayCareMScript_562e1: ; 562e1 (15:62e1) inc de ld a, [hl] ld [de], a + ld a, [wcf91] call PlayCry - ld hl, DayCareMText_5642d - jr DayCareMScript_56409 + ld hl, DayCareGotMonBackText + jr .done .asm_56403 - ld a, [wTrainerSpriteOffset] + ld a, [wDayCareStartLevel] ld [wDayCareMonBoxLevel], a -DayCareMScript_56409: ; 56409 (15:6409) +.done call PrintText jp TextScriptEnd -DayCareMText_5640f: ; 5640f (15:640f) - TX_FAR _DayCareMText_5640f +DayCareIntroText: ; 5640f (15:640f) + TX_FAR _DayCareIntroText db "@" -DayCareMText_56414: ; 56414 (15:6414) - TX_FAR _DayCareMText_56414 +DayCareWhichMonText: ; 56414 (15:6414) + TX_FAR _DayCareWhichMonText db "@" -DayCareMText_56419: ; 56419 (15:6419) - TX_FAR _DayCareMText_56419 +DayCareWillLookAfterMonText: ; 56419 (15:6419) + TX_FAR _DayCareWillLookAfterMonText db "@" -DayCareMText_5641e: ; 5641e (15:641e) - TX_FAR _DayCareMText_5641e +DayCareComeSeeMeInAWhileText: ; 5641e (15:641e) + TX_FAR _DayCareComeSeeMeInAWhileText db "@" -DayCareMText_56423: ; 56423 (15:6423) - TX_FAR _DayCareMText_56423 +DayCareMonHasGrownText: ; 56423 (15:6423) + TX_FAR _DayCareMonHasGrownText db "@" -DayCareMText_56428: ; 56428 (15:6428) - TX_FAR _DayCareMText_56428 +DayCareOweMoneyText: ; 56428 (15:6428) + TX_FAR _DayCareOweMoneyText db "@" -DayCareMText_5642d: ; 5642d (15:642d) - TX_FAR _DayCareMText_5642d +DayCareGotMonBackText: ; 5642d (15:642d) + TX_FAR _DayCareGotMonBackText db "@" -DayCareMText_56432: ; 56432 (15:6432) - TX_FAR _DayCareMText_56432 +DayCareMonNeedsMoreTimeText: ; 56432 (15:6432) + TX_FAR _DayCareMonNeedsMoreTimeText db "@" -DayCareMText_56437: ; 56437 (15:6437) - TX_FAR _DayCareMText_56437 -DayCareMText_5643b: ; 5643b (15:643b) - TX_FAR _DayCareMText_5643b +DayCareAllRightThenText: ; 56437 (15:6437) + TX_FAR _DayCareAllRightThenText +DayCareComeAgainText: ; 5643b (15:643b) + TX_FAR _DayCareComeAgainText db "@" -DayCareMText_56440: ; 56440 (15:6440) - TX_FAR _DayCareMText_56440 +DayCareNoRoomForMonText: ; 56440 (15:6440) + TX_FAR _DayCareNoRoomForMonText db "@" -DayCareMText_56445: ; 56445 (15:6445) - TX_FAR _DayCareMText_56445 +DayCareOnlyHaveOneMonText: ; 56445 (15:6445) + TX_FAR _DayCareOnlyHaveOneMonText db "@" -DayCareMText_5644a: ; 5644a (15:644a) - TX_FAR _DayCareMText_5644a +DayCareCantAcceptMonWithHMText: ; 5644a (15:644a) + TX_FAR _DayCareCantAcceptMonWithHMText db "@" -DayCareMText_5644f: ; 5644f (15:644f) - TX_FAR _DayCareMText_5644f +DayCareHeresYourMonText: ; 5644f (15:644f) + TX_FAR _DayCareHeresYourMonText db "@" -DayCareMText_56454: ; 56454 (15:6454) - TX_FAR _DayCareMText_56454 +DayCareNotEnoughMoneyText: ; 56454 (15:6454) + TX_FAR _DayCareNotEnoughMoneyText db "@" diff --git a/scripts/lance.asm b/scripts/lance.asm index e335914b..a4089be4 100755 --- a/scripts/lance.asm +++ b/scripts/lance.asm @@ -60,7 +60,7 @@ LanceScript0: ; 5a305 (16:6305) jp nc, CheckFightingMapTrainers xor a ld [hJoyHeld], a - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $3 jr nc, .asm_5a325 ld a, $1 diff --git a/scripts/lorelei.asm b/scripts/lorelei.asm index 1f1fcde0..eb6c3e7d 100755 --- a/scripts/lorelei.asm +++ b/scripts/lorelei.asm @@ -68,7 +68,7 @@ LoreleiScript0: ; 761e2 (1d:61e2) ld [hJoyHeld], a ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesIndex], a - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $3 jr c, .asm_76206 ld hl, wd863 diff --git a/scripts/mansion3.asm b/scripts/mansion3.asm index fa31718f..c22bf761 100755 --- a/scripts/mansion3.asm +++ b/scripts/mansion3.asm @@ -65,7 +65,7 @@ Mansion3Script_5225b: ; 5225b (14:625b) ret nz call ArePlayerCoordsInArray ret nc - ld a, [wWhichTrade] + ld a, [wCoordIndex] ld [wWhichDungeonWarp], a ld hl, wd72d set 4, [hl] diff --git a/scripts/mtmoonpokecenter.asm b/scripts/mtmoonpokecenter.asm index bba73dbd..d4996b4b 100755 --- a/scripts/mtmoonpokecenter.asm +++ b/scripts/mtmoonpokecenter.asm @@ -25,51 +25,51 @@ MtMoonPokecenterText4: ; 492ec (12:52ec) TX_ASM ld a, [wd7c6] add a - jp c, .asm_49353 + jp c, .alreadyBoughtMagikarp ld hl, MtMoonPokecenterText_4935c call PrintText - ld a, $13 + ld a, MONEY_BOX ld [wTextBoxID], a call DisplayTextBoxID call YesNoChoice ld a, [wCurrentMenuItem] and a - jp nz, .asm_4934e + jp nz, .choseNo ld [hMoney], a ld [hMoney + 2], a ld a, $5 ld [hMoney + 1], a call HasEnoughMoney - jr nc, .asm_faa09 + jr nc, .enoughMoney ld hl, MtMoonPokecenterText_49366 - jr .asm_49356 -.asm_faa09 + jr .printText +.enoughMoney ld bc,(MAGIKARP << 8) | 5 call GivePokemon - jr nc, .asm_49359 + jr nc, .done xor a - ld [wWhichTrade], a - ld [wTrainerFacingDirection], a + ld [wPriceTemp], a + ld [wPriceTemp + 2], a ld a, $5 - ld [wTrainerEngageDistance], a - ld hl, wTrainerFacingDirection + ld [wPriceTemp + 1], a + ld hl, wPriceTemp + 2 ld de, wPlayerMoney + 2 ld c, $3 predef SubBCDPredef - ld a, $13 + ld a, MONEY_BOX ld [wTextBoxID], a call DisplayTextBoxID ld hl, wd7c6 set 7, [hl] - jr .asm_49359 -.asm_4934e + jr .done +.choseNo ld hl, MtMoonPokecenterText_49361 - jr .asm_49356 -.asm_49353 + jr .printText +.alreadyBoughtMagikarp ld hl, MtMoonPokecenterText_4936b -.asm_49356 +.printText call PrintText -.asm_49359 +.done jp TextScriptEnd MtMoonPokecenterText_4935c: ; 4935c (12:535c) diff --git a/scripts/museum1f.asm b/scripts/museum1f.asm index 38c3f717..f4d7de10 100755 --- a/scripts/museum1f.asm +++ b/scripts/museum1f.asm @@ -96,11 +96,11 @@ Museum1FText1: ; 5c135 (17:4135) ld hl, wd754 set 0, [hl] xor a - ld [wMuseumPriceTemp], a - ld [wMuseumPriceTemp + 1], a + ld [wPriceTemp], a + ld [wPriceTemp + 1], a ld a, $50 - ld [wMuseumPriceTemp + 2], a - ld hl, wMuseumPriceTemp + 2 + ld [wPriceTemp + 2], a + ld hl, wPriceTemp + 2 ld de, wPlayerMoney + 2 ld c, $3 predef SubBCDPredef diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index 5463b879..226c2d2d 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -307,7 +307,7 @@ OaksLabScript9: ; 1cd00 (7:4d00) ld a, $d ld [hSpriteIndexOrTextID], a call DisplayTextID - ld a, [wTrainerEngageDistance] + ld a, [wRivalStarterBallSpriteIndex] cp $2 jr nz, .asm_1cd28 ld a, HS_STARTER_BALL_1 @@ -323,7 +323,7 @@ OaksLabScript9: ; 1cd00 (7:4d00) ld [wcc4d], a predef HideObject call Delay3 - ld a, [wWhichTrade] + ld a, [wRivalStarterTemp] ld [W_RIVALSTARTER], a ld [wcf91], a ld [wd11e], a @@ -806,9 +806,9 @@ OaksLabText29: ; 1d102 (7:5102) OaksLabText2: ; 1d102 (7:5102) TX_ASM ld a, STARTER2 - ld [wWhichTrade], a + ld [wRivalStarterTemp], a ld a, $3 - ld [wTrainerEngageDistance], a + ld [wRivalStarterBallSpriteIndex], a ld a, STARTER1 ld b, $2 jr OaksLabScript_1d133 @@ -817,9 +817,9 @@ OaksLabText30: ; 1d113 (7:5113) OaksLabText3: ; 1d113 (7:5113) TX_ASM ld a, STARTER3 - ld [wWhichTrade], a + ld [wRivalStarterTemp], a ld a, $4 - ld [wTrainerEngageDistance], a + ld [wRivalStarterBallSpriteIndex], a ld a, STARTER2 ld b, $3 jr OaksLabScript_1d133 @@ -828,9 +828,9 @@ OaksLabText31: ; 1d124 (7:5124) OaksLabText4: ; 1d124 (7:5124) TX_ASM ld a, STARTER1 - ld [wWhichTrade], a + ld [wRivalStarterTemp], a ld a, $2 - ld [wTrainerEngageDistance], a + ld [wRivalStarterBallSpriteIndex], a ld a, STARTER3 ld b, $4 @@ -858,13 +858,13 @@ OaksLabScript_1d157: ; 1d157 (7:5157) ld a, $9 ld [H_SPRITEDATAOFFSET], a call GetPointerWithinSpriteStateData1 - ld [hl], $0 + ld [hl], SPRITE_FACING_DOWN ld a, $1 ld [H_SPRITEINDEX], a ld a, $9 ld [H_SPRITEDATAOFFSET], a call GetPointerWithinSpriteStateData1 - ld [hl], $c + ld [hl], SPRITE_FACING_RIGHT ld hl, wd730 set 6, [hl] predef StarterDex ; StarterDex diff --git a/scripts/pewterpokecenter.asm b/scripts/pewterpokecenter.asm index 42bc3086..584878eb 100755 --- a/scripts/pewterpokecenter.asm +++ b/scripts/pewterpokecenter.asm @@ -26,39 +26,45 @@ PewterPokecenterText3: ; 5c59b (17:459b) ld c, 32 call DelayFrames ld hl, JigglypuffFacingDirections - ld de, wTrainerFacingDirection - ld bc, $0004 + ld de, wJigglypuffFacingDirections + ld bc, 4 call CopyData - ld a, [wSpriteStateData1 + $32] - ld hl, wTrainerFacingDirection -.asm_5c5c3 + + ld a, [wSpriteStateData1 + 3 * $10 + $2] + ld hl, wJigglypuffFacingDirections +.findMatchingFacingDirectionLoop cp [hl] inc hl - jr nz, .asm_5c5c3 + jr nz, .findMatchingFacingDirectionLoop dec hl push hl ld c, BANK(Music_JigglypuffSong) ld a, MUSIC_JIGGLYPUFF_SONG call PlayMusic pop hl -.asm_5c5d1 +.loop ld a, [hl] - ld [wSpriteStateData1 + $32], a + ld [wSpriteStateData1 + 3 * $10 + $2], a + +; rotate the array push hl - ld hl, wTrainerFacingDirection - ld de, wTrainerEngageDistance - ld bc, $0004 + ld hl, wJigglypuffFacingDirections + ld de, wJigglypuffFacingDirections - 1 + ld bc, 4 call CopyData - ld a, [wTrainerEngageDistance] - ld [wcd42], a + ld a, [wJigglypuffFacingDirections - 1] + ld [wJigglypuffFacingDirections + 3], a pop hl + ld c, 24 call DelayFrames + ld a, [wc026] ld b, a ld a, [wc027] or b - jr nz, .asm_5c5d1 + jr nz, .loop + ld c, 48 call DelayFrames call PlayDefaultMusic diff --git a/scripts/safarizoneentrance.asm b/scripts/safarizoneentrance.asm index e89630fc..2e5b55f7 100755 --- a/scripts/safarizoneentrance.asm +++ b/scripts/safarizoneentrance.asm @@ -26,7 +26,7 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) ld [hJoyHeld], a ld a, SPRITE_FACING_RIGHT ld [wSpriteStateData1 + 9], a - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 jr z, .asm_7520f ld a, $2 diff --git a/scripts/seafoamislands1.asm b/scripts/seafoamislands1.asm index 6a8b23ea..f71fc648 100755 --- a/scripts/seafoamislands1.asm +++ b/scripts/seafoamislands1.asm @@ -10,7 +10,7 @@ SeafoamIslands1Script: ; 447e9 (11:47e9) call CheckBoulderCoords ret nc ld hl, wd7e8 - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 jr nz, .asm_44819 set 6, [hl] @@ -36,7 +36,7 @@ SeafoamIslands1Script: ; 447e9 (11:47e9) ld a, $9f ld [wDungeonWarpDestinationMap], a ld hl, Seafoam1HolesCoords - jp Func_46981 + jp IsPlayerOnDungeonWarp Seafoam1HolesCoords: ; 44846 (11:4846) db $06,$11 diff --git a/scripts/seafoamislands2.asm b/scripts/seafoamislands2.asm index 44e92bd0..a62d6bda 100755 --- a/scripts/seafoamislands2.asm +++ b/scripts/seafoamislands2.asm @@ -8,7 +8,7 @@ SeafoamIslands2Script: ; 46315 (11:6315) call CheckBoulderCoords ret nc ld hl, wd87f - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 jr nz, .asm_46340 set 0, [hl] @@ -34,7 +34,7 @@ SeafoamIslands2Script: ; 46315 (11:6315) ld a, $a0 ld [wDungeonWarpDestinationMap], a ld hl, Seafoam2HolesCoords - jp Func_46981 + jp IsPlayerOnDungeonWarp Seafoam2HolesCoords: ; 4636d (11:636d) db $06,$12 diff --git a/scripts/seafoamislands3.asm b/scripts/seafoamislands3.asm index 882553ab..0b650135 100755 --- a/scripts/seafoamislands3.asm +++ b/scripts/seafoamislands3.asm @@ -8,7 +8,7 @@ SeafoamIslands3Script: ; 46451 (11:6451) call CheckBoulderCoords ret nc ld hl, wd880 - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 jr nz, .asm_4647c set 0, [hl] @@ -34,7 +34,7 @@ SeafoamIslands3Script: ; 46451 (11:6451) ld a, $a1 ld [wDungeonWarpDestinationMap], a ld hl, Seafoam3HolesCoords - jp Func_46981 + jp IsPlayerOnDungeonWarp Seafoam3HolesCoords: ; 464a9 (11:64a9) db $06,$13 diff --git a/scripts/seafoamislands4.asm b/scripts/seafoamislands4.asm index 8009e221..f16ab2c6 100755 --- a/scripts/seafoamislands4.asm +++ b/scripts/seafoamislands4.asm @@ -8,7 +8,7 @@ SeafoamIslands4Script: ; 4658d (11:658d) call CheckBoulderCoords ret nc ld hl, wd881 - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 jr nz, .asm_465b8 set 0, [hl] @@ -35,7 +35,7 @@ SeafoamIslands4Script: ; 4658d (11:658d) ld a, $a2 ld [wDungeonWarpDestinationMap], a ld hl, Seafoam4HolesCoords - call Func_46981 + call IsPlayerOnDungeonWarp ld a, [wd732] bit 4, a ret nz diff --git a/scripts/seafoamislands5.asm b/scripts/seafoamislands5.asm index 47583600..ab303728 100755 --- a/scripts/seafoamislands5.asm +++ b/scripts/seafoamislands5.asm @@ -34,7 +34,7 @@ SeafoamIslands5Script0: ; 467c7 (11:67c7) ld hl, CoordsData_467fe call ArePlayerCoordsInArray ret nc - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $3 jr nc, .asm_467e6 ld a, $40 @@ -81,7 +81,7 @@ SeafoamIslands5Script2: ; 46816 (11:6816) call ArePlayerCoordsInArray ld a, $0 jr nc, .asm_46849 - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 jr nz, .asm_46837 ld de, RLEMovementData_46859 diff --git a/scripts/silphco7.asm b/scripts/silphco7.asm index 8538d37f..5043b947 100755 --- a/scripts/silphco7.asm +++ b/scripts/silphco7.asm @@ -142,7 +142,7 @@ SilphCo7Script0: ; 51c23 (14:5c23) ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld de, MovementData_51c7d - ld a, [wWhichTrade] + ld a, [wCoordIndex] ld [wcf0d], a cp $1 jr z, .asm_51c6c diff --git a/scripts/vermiliondock.asm b/scripts/vermiliondock.asm index a8cf3b8d..adae2e91 100755 --- a/scripts/vermiliondock.asm +++ b/scripts/vermiliondock.asm @@ -57,15 +57,15 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) ld bc, $0078 ld a, $14 call FillMemory - ld a, $1 - ld [$ffba], a + ld a, 1 + ld [H_AUTOBGTRANSFERENABLED], a call Delay3 xor a - ld [$ffba], a - ld [wWhichTrade], a - ld [$ff49], a - ld a, $58 - ld [wTrainerEngageDistance], a + ld [H_AUTOBGTRANSFERENABLED], a + ld [wSSAnneSmokeDriftAmount], a + ld [rOBP1], a + ld a, 88 + ld [wSSAnneSmokeX], a ld hl, wMapViewVRAMPointer ld c, [hl] inc hl @@ -88,11 +88,11 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) push hl push de call ScheduleEastColumnRedraw - call VermilionDock_1dc59 + call VermilionDock_EmitSmokePuff pop de ld b, $10 .asm_1dc11 - call VermilionDock_1dc42 + call VermilionDock_AnimSmokePuffDriftRight ld c, $8 .asm_1dc16 call VermilionDock_1dc7c @@ -105,7 +105,7 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) dec e jr nz, .asm_1dbfa xor a - ld [$ff4a], a + ld [rWY], a ld [hWY], a call VermilionDock_1dc94 ld a, $90 @@ -122,33 +122,34 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) dec [hl] ret -VermilionDock_1dc42: ; 1dc42 (7:5c42) +VermilionDock_AnimSmokePuffDriftRight: ; 1dc42 (7:5c42) push bc push de ld hl, wOAMBuffer + $11 - ld a, [wWhichTrade] + ld a, [wSSAnneSmokeDriftAmount] swap a ld c, a - ld de, $0004 -.asm_1dc50 + ld de, 4 +.loop inc [hl] inc [hl] add hl, de dec c - jr nz, .asm_1dc50 + jr nz, .loop pop de pop bc ret -VermilionDock_1dc59: ; 1dc59 (7:5c59) - ld a, [wTrainerEngageDistance] - sub $10 - ld [wTrainerEngageDistance], a +VermilionDock_EmitSmokePuff: ; 1dc59 (7:5c59) +; new smoke puff above the S.S. Anne's front smokestack + ld a, [wSSAnneSmokeX] + sub 16 + ld [wSSAnneSmokeX], a ld c, a - ld b, $64 - ld a, [wWhichTrade] + ld b, 100 ; Y + ld a, [wSSAnneSmokeDriftAmount] inc a - ld [wWhichTrade], a + ld [wSSAnneSmokeDriftAmount], a ld a, $1 ld de, VermilionDockOAMBlock call WriteOAMBlock @@ -171,7 +172,7 @@ VermilionDock_1dc7c: ; 1dc7c (7:5c7c) cp l jr nz, .asm_1dc86 ld a, h - ld [$ff43], a + ld [rSCX], a .asm_1dc8e ld a, [rLY] cp h diff --git a/scripts/victoryroad2.asm b/scripts/victoryroad2.asm index 51346032..fd095638 100755 --- a/scripts/victoryroad2.asm +++ b/scripts/victoryroad2.asm @@ -49,7 +49,7 @@ VictoryRoad2Script0: ; 517f1 (14:57f1) call CheckBoulderCoords jp nc, CheckFightingMapTrainers ld hl, wd7ee - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $2 jr z, .asm_5180b bit 0, [hl] diff --git a/scripts/victoryroad3.asm b/scripts/victoryroad3.asm index 9aeb1d18..14b6895d 100755 --- a/scripts/victoryroad3.asm +++ b/scripts/victoryroad3.asm @@ -34,7 +34,7 @@ VictoryRoad3Script0: ; 449b7 (11:49b7) ld hl, .coordsData_449f9 call CheckBoulderCoords jp nc, .asm_449fe - ld a, [wWhichTrade] + ld a, [wCoordIndex] cp $1 jr nz, .asm_449dc ld hl, wd126 @@ -60,11 +60,11 @@ VictoryRoad3Script0: ; 449b7 (11:49b7) db $FF .asm_449fe - ld a, $c2 + ld a, VICTORY_ROAD_2 ld [wDungeonWarpDestinationMap], a ld hl, .coordsData_449f9 - call Func_46981 - ld a, [wWhichTrade] + call IsPlayerOnDungeonWarp + ld a, [wCoordIndex] cp $1 jr nz, .asm_44a1b ld hl, wd72d diff --git a/sram.asm b/sram.asm index 9d498df9..f0cf6fac 100644 --- a/sram.asm +++ b/sram.asm @@ -29,8 +29,8 @@ sBox3:: ds wBoxMonNicksEnd - W_NUMINBOX ; a8c4 sBox4:: ds wBoxMonNicksEnd - W_NUMINBOX ; ad26 sBox5:: ds wBoxMonNicksEnd - W_NUMINBOX ; b188 sBox6:: ds wBoxMonNicksEnd - W_NUMINBOX ; b5ea -sBoxes1CheckSum:: ds 1 ; ba4c -sBoxes1CheckSum2:: ds 6 ; ba4d +sBank2AllBoxesChecksum:: ds 1 ; ba4c +sBank2IndividualBoxChecksums:: ds 6 ; ba4d SECTION "Saved Boxes 2", SRAM, BANK[3] @@ -41,5 +41,5 @@ sBox9:: ds wBoxMonNicksEnd - W_NUMINBOX ; a8c4 sBox10:: ds wBoxMonNicksEnd - W_NUMINBOX ; ad26 sBox11:: ds wBoxMonNicksEnd - W_NUMINBOX ; b188 sBox12:: ds wBoxMonNicksEnd - W_NUMINBOX ; b5ea -sBoxes2CheckSum:: ds 1 ; ba4c -sBoxes2CheckSum2:: ds 6 ; ba4d +sBank3AllBoxesChecksum:: ds 1 ; ba4c +sBank3IndividualBoxChecksums:: ds 6 ; ba4d diff --git a/text/maps/daycare_1.asm b/text/maps/daycare_1.asm index a4182351..a42e3cf2 100644 --- a/text/maps/daycare_1.asm +++ b/text/maps/daycare_1.asm @@ -1,16 +1,16 @@ -_DayCareMText_5640f:: ; 8ab95 (22:6b95) +_DayCareIntroText:: ; 8ab95 (22:6b95) text "I run a DAYCARE." line "Would you like me" cont "to raise one of" cont "your #MON?" done -_DayCareMText_56414:: ; 8abd4 (22:6bd4) +_DayCareWhichMonText:: ; 8abd4 (22:6bd4) text "Which #MON" line "should I raise?" prompt -_DayCareMText_56419:: ; 8abf0 (22:6bf0) +_DayCareWillLookAfterMonText:: ; 8abf0 (22:6bf0) text "Fine, I'll look" line "after @" TX_RAM wcd6d @@ -18,12 +18,12 @@ _DayCareMText_56419:: ; 8abf0 (22:6bf0) cont "for a while." prompt -_DayCareMText_5641e:: ; 8ac19 (22:6c19) +_DayCareComeSeeMeInAWhileText:: ; 8ac19 (22:6c19) text "Come see me in" line "a while." done -_DayCareMText_56423:: ; 8ac32 (22:6c32) +_DayCareMonHasGrownText:: ; 8ac32 (22:6c32) text "Your @" TX_RAM wcd6d db $0 @@ -31,15 +31,13 @@ _DayCareMText_56423:: ; 8ac32 (22:6c32) para "By level, it's" line "grown by @" - -DayCareMText_8ac67:: ; 8ac67 (22:6c67) - TX_NUM wTrainerEngageDistance,$1,$3 + TX_NUM wDayCareNumLevelsGrown,$1,$3 text "!" para "Aren't I great?" prompt -_DayCareMText_56428:: ; 8ac7d (22:6c7d) +_DayCareOweMoneyText:: ; 8ac7d (22:6c7d) text "You owe me ¥@" TX_BCD wcd3f, $c2 db $0 @@ -47,14 +45,14 @@ _DayCareMText_56428:: ; 8ac7d (22:6c7d) cont "of this #MON." done -_DayCareMText_5642d:: ; 8acae (22:6cae) +_DayCareGotMonBackText:: ; 8acae (22:6cae) text $52, " got" line "@" TX_RAM W_DAYCAREMONNAME text " back!" done -_DayCareMText_56432:: ; 8acc1 (22:6cc1) +_DayCareMonNeedsMoreTimeText:: ; 8acc1 (22:6cc1) text "Back already?" line "Your @" TX_RAM wcd6d diff --git a/text/maps/daycare_2.asm b/text/maps/daycare_2.asm index c6478a76..b5104e60 100644 --- a/text/maps/daycare_2.asm +++ b/text/maps/daycare_2.asm @@ -1,8 +1,8 @@ -_DayCareMText_56437:: ; 8c000 (23:4000) +_DayCareAllRightThenText:: ; 8c000 (23:4000) text "All right then," line "@@" -_DayCareMText_5643b:: ; 8c013 (23:4013) +_DayCareComeAgainText:: ; 8c013 (23:4013) IF DEF(_YELLOW) text "Come again." ELSE @@ -10,28 +10,28 @@ ELSE ENDC done -_DayCareMText_56440:: ; 8c020 (23:4020) +_DayCareNoRoomForMonText:: ; 8c020 (23:4020) text "You have no room" line "for this #MON!" done -_DayCareMText_56445:: ; 8c041 (23:4041) +_DayCareOnlyHaveOneMonText:: ; 8c041 (23:4041) text "You only have one" line "#MON with you." done -_DayCareMText_5644a:: ; 8c063 (23:4063) +_DayCareCantAcceptMonWithHMText:: ; 8c063 (23:4063) text "I can't accept a" line "#MON that" cont "knows an HM move." done -_DayCareMText_5644f:: ; 8c090 (23:4090) +_DayCareHeresYourMonText:: ; 8c090 (23:4090) text "Thank you! Here's" line "your #MON!" prompt -_DayCareMText_56454:: ; 8c0ad (23:40ad) +_DayCareNotEnoughMoneyText:: ; 8c0ad (23:40ad) text "Hey, you don't" line "have enough ¥!" done diff --git a/wram.asm b/wram.asm index 8633e732..f089352b 100755 --- a/wram.asm +++ b/wram.asm @@ -424,6 +424,10 @@ wNumStepsToTake:: ; cca1 wRLEByteCount:: ; ccd2 ds 1 +wAddedToParty:: ; ccd3 +; 0 = not added +; 1 = added + wSimulatedJoypadStatesEnd:: ; ccd3 ; this is the end of the joypad states ; the list starts above this address and extends downwards in memory until here @@ -431,7 +435,13 @@ wSimulatedJoypadStatesEnd:: ; ccd3 wParentMenuItem:: ; ccd3 -wccd3:: ds 1 ; used in battle, pokemon, PC and game corner stuff +wCanEvolveFlags:: ; ccd3 +; 1 flag for each party member indicating whether it can evolve +; The purpose of these flags is to track which mons levelled up during the +; current battle at the end of the battle when evolution occurs. +; Other methods of evolution simply set it by calling TryEvolvingMon. + ds 1 + wForceEvolution:: wccd4:: ds 1 ; has a direct reference for simulated joypad stuff in vermillion and seafoam @@ -634,9 +644,33 @@ wOverrideSimulatedJoypadStatesMask:: ; cd3b ds 1 +wHoFTeamIndex:: ; cd3d + +wSSAnneSmokeDriftAmount:: ; cd3d +; multiplied by 16 to get the number of times to go right by 2 pixels + +wRivalStarterTemp:: ; cd3d + +wBoxMonCounts:: ; cd3d +; 12 bytes +; array of the number of mons in each box + +wDexMaxSeenMon:: ; cd3d + +wPPRestoreItem:: ; cd3d + +wWereAnyMonsAsleep:: ; cd3d + +wCanPlaySlots:: ; cd3d + +wNumShakes:: ; cd3d + +wDayCareStartLevel:: ; cd3d +; the level of the mon at the time it entered day care + wWhichBadge:: ; cd3d -wMuseumPriceTemp:: ; cd3d +wPriceTemp:: ; cd3d ; 3-byte BCD number wTitleMonSpecies:: ; cd3d @@ -701,6 +735,12 @@ wWhichTrade:: ; cd3d wTrainerSpriteOffset:: ; cd3d ds 1 +wSSAnneSmokeX:: ; cd3e + +wRivalStarterBallSpriteIndex:: ; cd3e + +wDayCareNumLevelsGrown:: ; cd3e + wOptionsBattleAnimCursorX:: ; cd3e wTrainerInfoTextBoxWidth:: ; cd3e @@ -733,6 +773,8 @@ wHiddenObjectFunctionRomBank:: ; cd3e wTrainerEngageDistance:: ; cd3e ds 1 +wJigglypuffFacingDirections:: ; cd3f + wOptionsBattleStyleCursorX:: ; cd3f wTrainerInfoTextBoxNextRowOffset:: ; cd3f @@ -774,6 +816,10 @@ wHiddenObjectY:: ; cd40 wTrainerScreenY:: ; cd40 ds 1 +wHoFTeamIndex2:: ; cd41 + +wHiddenItemOrCoinsIndex:: ; cd41 + wTradedPlayerMonOT:: ; cd41 wHiddenObjectX:: ; cd41 @@ -962,16 +1008,32 @@ wTileMapBackup2:: ; cd81 ; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top) ds 20 * 18 +wEvoOldSpecies:: ; cee9 + wBuffer:: ; cee9 ; Temporary storage area of 30 bytes. wTownMapCoords:: ; cee9 ; lower nybble is x, upper nybble is y +wLearningMovesFromDayCare:: ; cee9 +; whether WriteMonMoves is being used to make a mon learn moves from day care +; non-zero if so + wHPBarMaxHP:: ; cee9 - ds 2 + ds 1 + +wEvoNewSpecies:: ; ceea + ds 1 + +wEvoMonTileOffset:: ; ceeb + wHPBarOldHP:: ; ceeb - ds 2 + ds 1 + +wEvoCancelled:: ; ceec + ds 1 + wHPBarNewHP:: ; ceed ds 2 wHPBarDelta:: ; ceef @@ -1453,7 +1515,10 @@ W_SUBANIMCOUNTER:: ; d087 ; counts the number of subentries left in the current subanimation ds 1 -wd088:: ds 1 ; savefile checksum (if file is corrupted) +wSaveFileStatus:: +; 1 = no save file or save file is corrupted +; 2 = save file exists and no corruption has been detected + ds 1 W_NUMFBTILES:: ; d089 ; number of tiles in current battle animation frame block @@ -1462,6 +1527,8 @@ W_NUMFBTILES:: ; d089 wTradedMonMovingRight:: ; d08a ; $01 if mon is moving from left gameboy to right gameboy; $00 if vice versa +wOptionsInitialized:: ; d08a + wd08a:: ds 1 ; used with sprites and displaying the option menu on the main menu screen? wAnimCounter:: ; d08b @@ -2079,6 +2146,8 @@ wBoxItems:: ; d53b ds 1 ; end wCurrentBoxNum:: ; d5a0 +; bits 0-6: box number +; bit 7: whether the player has changed boxes before ds 2 wNumHoFTeams:: ; d5a2 @@ -2319,8 +2388,11 @@ W_ROUTE18GATECURSCRIPT:: ; d669 ds 134 -wd6f0:: ds 14 ; flags for hidden items? -wd6fe:: ds 2 ; flags for hidden coins? +wObtainedHiddenItemsFlags:: + ds 14 + +wObtainedHiddenCoinsFlags:: + ds 2 wWalkBikeSurfState:: ; d700 ; $00 = walking -- cgit v1.3.1-sl0p From ea9cc86949cecc3508aeac06b807372b6b0134d8 Mon Sep 17 00:00:00 2001 From: dannye Date: Sun, 19 Jul 2015 03:46:12 -0500 Subject: Name sound effects --- audio.asm | 16 +- constants/music_constants.asm | 176 +++++++++++++++++ engine/battle/animations.asm | 350 ++++++++++++++++----------------- engine/battle/common_text.asm | 2 +- engine/battle/core.asm | 10 +- engine/battle/trainer_ai.asm | 2 +- engine/evolution.asm | 2 +- engine/evos_moves.asm | 2 +- engine/gamefreak.asm | 2 +- engine/hidden_object_functions17.asm | 8 +- engine/hidden_object_functions7.asm | 16 +- engine/intro.asm | 20 +- engine/items/items.asm | 24 +-- engine/learn_move.asm | 2 +- engine/menu/main_menu.asm | 2 +- engine/menu/naming_screen.asm | 2 +- engine/menu/pc.asm | 12 +- engine/menu/players_pc.asm | 8 +- engine/menu/start_menu.asm | 2 +- engine/menu/start_sub_menus.asm | 2 +- engine/menu/vending_machine.asm | 2 +- engine/oak_speech.asm | 2 +- engine/overworld/cable_club_npc.asm | 2 +- engine/overworld/card_key.asm | 2 +- engine/overworld/cut.asm | 2 +- engine/overworld/elevator.asm | 4 +- engine/overworld/healing_machine.asm | 2 +- engine/overworld/hidden_items.asm | 2 +- engine/overworld/ledges.asm | 2 +- engine/overworld/player_animations.asm | 12 +- engine/overworld/pokemart.asm | 2 +- engine/save.asm | 4 +- engine/slot_machine.asm | 10 +- engine/titlescreen.asm | 4 +- engine/town_map.asm | 6 +- engine/trade.asm | 4 +- home.asm | 6 +- home/overworld.asm | 12 +- home/text.asm | 14 +- main.asm | 8 +- scripts/celadongamecorner.asm | 4 +- scripts/cinnabargym.asm | 2 +- scripts/daycarem.asm | 2 +- scripts/lance.asm | 2 +- scripts/mansion1.asm | 2 +- scripts/mansion2.asm | 2 +- scripts/museum1f.asm | 2 +- scripts/rockethideout1.asm | 2 +- scripts/rockethideout2.asm | 2 +- scripts/rockethideout3.asm | 2 +- scripts/rockethideout4.asm | 2 +- scripts/route22gate.asm | 2 +- scripts/route23.asm | 2 +- scripts/vermiliondock.asm | 4 +- scripts/vermiliongym.asm | 2 +- scripts/viridiangym.asm | 2 +- 56 files changed, 487 insertions(+), 311 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/audio.asm b/audio.asm index aaf4f8ed..27570b93 100644 --- a/audio.asm +++ b/audio.asm @@ -538,7 +538,7 @@ INCLUDE "audio/engine_2.asm" Music_PokeFluteInBattle:: ; 22306 (8:6306) - ld a, (SFX_08_46 - SFX_Headers_08) / 3 ; PokeFlute outside of battle + ld a, SFX_BATTLE_06 ; PokeFlute outside of battle call PlaySoundWaitForCurrent ld hl, wc00e ld de, SFX_08_PokeFlute_Ch1 @@ -583,13 +583,13 @@ PlayPokedexRatingSfx:: ; 7d13b (1f:513b) jp PlayDefaultMusic PokedexRatingSfxPointers: ; 7d162 (1f:5162) - db (SFX_1f_51 - SFX_Headers_1f) / 3, BANK(SFX_1f_51) - db (SFX_02_41 - SFX_Headers_02) / 3, BANK(SFX_02_41) - db (SFX_02_3a - SFX_Headers_02) / 3, BANK(SFX_02_3a) - db (SFX_08_46 - SFX_Headers_08) / 3, BANK(SFX_08_46) - db (SFX_08_3a - SFX_Headers_08) / 3, BANK(SFX_08_3a) - db (SFX_02_42 - SFX_Headers_02) / 3, BANK(SFX_02_42) - db (SFX_02_3b - SFX_Headers_02) / 3, BANK(SFX_02_3b) + db SFX_DENIED, BANK(SFX_1f_51) + db SFX_POKEDEX_RATING, BANK(SFX_02_41) + db SFX_GET_ITEM_1, BANK(SFX_02_3a) + db SFX_BATTLE_06, BANK(SFX_08_46) + db SFX_LEVEL_UP, BANK(SFX_08_3a) + db SFX_GET_KEY_ITEM, BANK(SFX_02_42) + db SFX_GET_ITEM_2, BANK(SFX_02_3b) OwnedMonValues: ; 7d170 (1f:5170) db 10, 40, 60, 90, 120, 150, $ff diff --git a/constants/music_constants.asm b/constants/music_constants.asm index 30d11543..260ccd39 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -4,6 +4,7 @@ music_const: MACRO \1 EQUS "((\2 - SFX_Headers_02) / 3)" ENDM + ; AUDIO_1 music_const MUSIC_PALLET_TOWN, Music_PalletTown music_const MUSIC_POKECENTER, Music_Pokecenter music_const MUSIC_GYM, Music_Gym @@ -25,6 +26,7 @@ ENDM music_const MUSIC_ROUTES4, Music_Routes4 music_const MUSIC_INDIGO_PLATEAU, Music_IndigoPlateau + ; AUDIO_2 music_const MUSIC_GYM_LEADER_BATTLE, Music_GymLeaderBattle music_const MUSIC_TRAINER_BATTLE, Music_TrainerBattle music_const MUSIC_WILD_BATTLE, Music_WildBattle @@ -33,6 +35,7 @@ ENDM music_const MUSIC_DEFEATED_WILD_MON, Music_DefeatedWildMon music_const MUSIC_DEFEATED_GYM_LEADER, Music_DefeatedGymLeader + ; AUDIO_3 music_const MUSIC_TITLE_SCREEN, Music_TitleScreen music_const MUSIC_CREDITS, Music_Credits music_const MUSIC_HALL_OF_FAME, Music_HallOfFame @@ -52,3 +55,176 @@ ENDM music_const MUSIC_MEET_FEMALE_TRAINER, Music_MeetFemaleTrainer music_const MUSIC_MEET_MALE_TRAINER, Music_MeetMaleTrainer + ; AUDIO_1 AUDIO_2 AUDIO_3 + music_const SFX_SNARE_1, SFX_02_01 + music_const SFX_SNARE_2, SFX_02_02 + music_const SFX_SNARE_3, SFX_02_03 + music_const SFX_SNARE_4, SFX_02_04 + music_const SFX_SNARE_5, SFX_02_05 + music_const SFX_TRIANGLE_1, SFX_02_06 + music_const SFX_TRIANGLE_2, SFX_02_07 + music_const SFX_SNARE_6, SFX_02_08 + music_const SFX_SNARE_7, SFX_02_09 + music_const SFX_SNARE_8, SFX_02_0a + music_const SFX_SNARE_9, SFX_02_0b + music_const SFX_CYMBAL_1, SFX_02_0c + music_const SFX_CYMBAL_2, SFX_02_0d + music_const SFX_CYMBAL_3, SFX_02_0e + music_const SFX_MUTED_SNARE_1, SFX_02_0f + music_const SFX_TRIANGLE_3, SFX_02_10 + music_const SFX_MUTED_SNARE_2, SFX_02_11 + music_const SFX_MUTED_SNARE_3, SFX_02_12 + music_const SFX_MUTED_SNARE_4, SFX_02_13 + music_const SFX_CRY_00, SFX_02_14 + music_const SFX_CRY_01, SFX_02_15 + music_const SFX_CRY_02, SFX_02_16 + music_const SFX_CRY_03, SFX_02_17 + music_const SFX_CRY_04, SFX_02_18 + music_const SFX_CRY_05, SFX_02_19 + music_const SFX_CRY_06, SFX_02_1a + music_const SFX_CRY_07, SFX_02_1b + music_const SFX_CRY_08, SFX_02_1c + music_const SFX_CRY_09, SFX_02_1d + music_const SFX_CRY_0A, SFX_02_1e + music_const SFX_CRY_0B, SFX_02_1f + music_const SFX_CRY_0C, SFX_02_20 + music_const SFX_CRY_0D, SFX_02_21 + music_const SFX_CRY_0E, SFX_02_22 + music_const SFX_CRY_0F, SFX_02_23 + music_const SFX_CRY_10, SFX_02_24 + music_const SFX_CRY_11, SFX_02_25 + music_const SFX_CRY_12, SFX_02_26 + music_const SFX_CRY_13, SFX_02_27 + music_const SFX_CRY_14, SFX_02_28 + music_const SFX_CRY_15, SFX_02_29 + music_const SFX_CRY_16, SFX_02_2a + music_const SFX_CRY_17, SFX_02_2b + music_const SFX_CRY_18, SFX_02_2c + music_const SFX_CRY_19, SFX_02_2d + music_const SFX_CRY_1A, SFX_02_2e + music_const SFX_CRY_1B, SFX_02_2f + music_const SFX_CRY_1C, SFX_02_30 + music_const SFX_CRY_1D, SFX_02_31 + music_const SFX_CRY_1E, SFX_02_32 + music_const SFX_CRY_1F, SFX_02_33 + music_const SFX_CRY_20, SFX_02_34 + music_const SFX_CRY_21, SFX_02_35 + music_const SFX_CRY_22, SFX_02_36 + music_const SFX_CRY_23, SFX_02_37 + music_const SFX_CRY_24, SFX_02_38 + music_const SFX_CRY_25, SFX_02_39 + + music_const SFX_GET_ITEM_2, SFX_02_3b + music_const SFX_TINK, SFX_02_3c + music_const SFX_HEAL_HP, SFX_02_3d + music_const SFX_HEAL_AILMENT, SFX_02_3e + music_const SFX_START_MENU, SFX_02_3f + music_const SFX_PRESS_AB, SFX_02_40 + + ; AUDIO_1 AUDIO_3 + music_const SFX_GET_ITEM_1, SFX_02_3a + + music_const SFX_POKEDEX_RATING, SFX_02_41 + music_const SFX_GET_KEY_ITEM, SFX_02_42 + music_const SFX_POISONED, SFX_02_43 + music_const SFX_TRADE_MACHINE, SFX_02_44 + music_const SFX_TURN_ON_PC, SFX_02_45 + music_const SFX_TURN_OFF_PC, SFX_02_46 + music_const SFX_ENTER_PC, SFX_02_47 + music_const SFX_SHRINK, SFX_02_48 + music_const SFX_SWITCH, SFX_02_49 + music_const SFX_HEALING_MACHINE, SFX_02_4a + music_const SFX_TELEPORT_1, SFX_02_4b + music_const SFX_TELEPORT_2, SFX_02_4c + music_const SFX_TELEPORT_3, SFX_02_4d + music_const SFX_LEDGE, SFX_02_4e + music_const SFX_FLY_1, SFX_02_4f + music_const SFX_FLY_2, SFX_02_50 + music_const SFX_DENIED, SFX_02_51 + music_const SFX_ARROW_TILES, SFX_02_52 + music_const SFX_PUSH_BOULDER, SFX_02_53 + music_const SFX_SS_ANNE_HORN, SFX_02_54 + music_const SFX_WITHDRAW_DEPOSIT, SFX_02_55 + music_const SFX_CUT, SFX_02_56 + music_const SFX_GO_INSIDE, SFX_02_57 + music_const SFX_SWAP, SFX_02_58 + music_const SFX_59, SFX_02_59 ; unused, sounds similar to SFX_SLOTS_STOP_WHEEL + music_const SFX_PURCHASE, SFX_02_5a + music_const SFX_COLLISION, SFX_02_5b + music_const SFX_GO_OUTSIDE, SFX_02_5c + music_const SFX_SAVE, SFX_02_5d + + ; AUDIO_1 + music_const SFX_POKEFLUE, SFX_02_5e + music_const SFX_SAFARI_ZONE_PA, SFX_02_5f + + ; AUDIO_2 + music_const SFX_LEVEL_UP, SFX_08_3a + + music_const SFX_BATTLE_01, SFX_08_41 + music_const SFX_BATTLE_02, SFX_08_42 + music_const SFX_BATTLE_03, SFX_08_43 + music_const SFX_BATTLE_04, SFX_08_44 + music_const SFX_BATTLE_05, SFX_08_45 + music_const SFX_BATTLE_06, SFX_08_46 + music_const SFX_BATTLE_07, SFX_08_47 + music_const SFX_BATTLE_08, SFX_08_48 + music_const SFX_BATTLE_09, SFX_08_49 + music_const SFX_BATTLE_0A, SFX_08_4a + music_const SFX_BATTLE_0B, SFX_08_4b + music_const SFX_BATTLE_0C, SFX_08_4c + music_const SFX_BATTLE_0D, SFX_08_4d + music_const SFX_BATTLE_0E, SFX_08_4e + music_const SFX_BATTLE_0F, SFX_08_4f + music_const SFX_BATTLE_10, SFX_08_50 + music_const SFX_BATTLE_11, SFX_08_51 + music_const SFX_BATTLE_12, SFX_08_52 + music_const SFX_BATTLE_13, SFX_08_53 + music_const SFX_BATTLE_14, SFX_08_54 + music_const SFX_BATTLE_15, SFX_08_55 + music_const SFX_BATTLE_16, SFX_08_56 ; unused? + music_const SFX_BATTLE_17, SFX_08_57 + music_const SFX_BATTLE_18, SFX_08_58 + music_const SFX_BATTLE_19, SFX_08_59 + music_const SFX_BATTLE_1A, SFX_08_5a + music_const SFX_BATTLE_1B, SFX_08_5b + music_const SFX_BATTLE_1C, SFX_08_5c + music_const SFX_BATTLE_1D, SFX_08_5d + music_const SFX_BATTLE_1E, SFX_08_5e + music_const SFX_BATTLE_1F, SFX_08_5f + music_const SFX_BATTLE_20, SFX_08_60 + music_const SFX_BATTLE_21, SFX_08_61 + music_const SFX_BATTLE_22, SFX_08_62 + music_const SFX_BATTLE_23, SFX_08_63 + music_const SFX_BATTLE_24, SFX_08_64 + music_const SFX_BATTLE_25, SFX_08_65 + music_const SFX_BATTLE_26, SFX_08_66 + music_const SFX_BATTLE_27, SFX_08_67 + music_const SFX_BATTLE_28, SFX_08_68 + music_const SFX_BATTLE_29, SFX_08_69 + music_const SFX_BATTLE_2A, SFX_08_6a + music_const SFX_BATTLE_2B, SFX_08_6b + music_const SFX_BATTLE_2C, SFX_08_6c + music_const SFX_BATTLE_2D, SFX_08_6d + music_const SFX_BATTLE_2E, SFX_08_6e + music_const SFX_BATTLE_2F, SFX_08_6f + music_const SFX_BATTLE_30, SFX_08_70 + music_const SFX_BATTLE_31, SFX_08_71 + music_const SFX_BATTLE_32, SFX_08_72 + music_const SFX_BATTLE_33, SFX_08_73 + music_const SFX_BATTLE_34, SFX_08_74 + music_const SFX_BATTLE_35, SFX_08_75 + music_const SFX_BATTLE_36, SFX_08_76 + music_const SFX_BATTLE_37, SFX_08_77 + + ; AUDIO_3 + music_const SFX_INTRO_LUNGE, SFX_1f_5e + music_const SFX_INTRO_HIP, SFX_1f_5f + music_const SFX_INTRO_HOP, SFX_1f_60 + music_const SFX_INTRO_RAISE, SFX_1f_61 + music_const SFX_INTRO_CRASH, SFX_1f_62 + music_const SFX_INTRO_WHOOSH, SFX_1f_63 + music_const SFX_SLOTS_STOP_WHEEL, SFX_1f_64 + music_const SFX_SLOTS_REWARD, SFX_1f_65 + music_const SFX_SLOTS_NEW_SPIN, SFX_1f_66 + music_const SFX_SHOOTING_STAR, SFX_1f_67 diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 6803c38b..19625b15 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -741,7 +741,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) cp a,11 ; is it the beginning of the subanimation? jr nz,.skipPlayingSound ; if it is the beginning of the subanimation, play a sound - ld a,(SFX_08_41 - SFX_Headers_08) / 3 + ld a,SFX_BATTLE_01 call PlaySound .skipPlayingSound ld a,[W_ISINBATTLE] @@ -787,7 +787,7 @@ DoBallShakeSpecialEffects: ; 78f96 (1e:4f96) cp a,4 ; is it the beginning of a shake? jr nz,.skipPlayingSound ; if it is the beginning of a shake, play a sound and wait 2/3 of a second - ld a,(SFX_08_3c - SFX_Headers_08) / 3 + ld a,SFX_TINK call PlaySound ld c,40 call DelayFrames @@ -820,7 +820,7 @@ DoPoofSpecialEffects: ; 78fce (1e:4fce) ld a,[W_SUBANIMCOUNTER] cp a,5 ret nz - ld a,(SFX_08_42 - SFX_Headers_08) / 3 + ld a,SFX_BATTLE_02 jp PlaySound DoRockSlideSpecialEffects: ; 78fd9 (1e:4fd9) @@ -921,7 +921,7 @@ TradeShakePokeball: ; 7904c (1e:504c) jr .loop .done call AnimationCleanOAM - ld a,(SFX_02_44 - SFX_Headers_02) / 3 + ld a,SFX_TRADE_MACHINE jp PlaySound BallMoveDistances1: ; 79078 (1e:5078) @@ -952,7 +952,7 @@ TradeJumpPokeball: ; 507C cp a,$ff jr nz,.skipPlayingSound .playSound ; play sound if next move distance is 12 or this is the last one - ld a,(SFX_08_58 - SFX_Headers_08) / 3 + ld a,SFX_BATTLE_18 call PlaySound .skipPlayingSound push bc @@ -2329,172 +2329,172 @@ IsCryMove: ; 798ad (1e:58ad) ret MoveSoundTable: ; 798bc (1e:58bc) - db (SFX_08_4a - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_4c - SFX_Headers_08) / 3,$10,$80 - db (SFX_08_5d - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_4b - SFX_Headers_08) / 3,$01,$80 - db (SFX_08_4d - SFX_Headers_08) / 3,$00,$40 - db (SFX_08_77 - SFX_Headers_08) / 3,$00,$ff - db (SFX_08_4d - SFX_Headers_08) / 3,$10,$60 - db (SFX_08_4d - SFX_Headers_08) / 3,$20,$80 - db (SFX_08_4d - SFX_Headers_08) / 3,$00,$a0 - db (SFX_08_50 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_4f - SFX_Headers_08) / 3,$20,$40 - db (SFX_08_4f - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_4e - SFX_Headers_08) / 3,$00,$a0 - db (SFX_08_51 - SFX_Headers_08) / 3,$10,$c0 - db (SFX_08_51 - SFX_Headers_08) / 3,$00,$a0 - db (SFX_08_52 - SFX_Headers_08) / 3,$00,$c0 - db (SFX_08_52 - SFX_Headers_08) / 3,$10,$a0 - db (SFX_08_53 - SFX_Headers_08) / 3,$00,$e0 - db (SFX_08_51 - SFX_Headers_08) / 3,$20,$c0 - db (SFX_08_54 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_62 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_55 - SFX_Headers_08) / 3,$01,$80 - db (SFX_08_60 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_57 - SFX_Headers_08) / 3,$f0,$40 - db (SFX_08_5a - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_57 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_61 - SFX_Headers_08) / 3,$10,$80 - db (SFX_08_5b - SFX_Headers_08) / 3,$01,$a0 - db (SFX_08_58 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_5e - SFX_Headers_08) / 3,$00,$60 - db (SFX_08_5e - SFX_Headers_08) / 3,$01,$40 - db (SFX_08_5f - SFX_Headers_08) / 3,$00,$a0 - db (SFX_08_5a - SFX_Headers_08) / 3,$10,$a0 - db (SFX_08_60 - SFX_Headers_08) / 3,$00,$c0 - db (SFX_08_54 - SFX_Headers_08) / 3,$10,$60 - db (SFX_08_5a - SFX_Headers_08) / 3,$00,$a0 - db (SFX_08_62 - SFX_Headers_08) / 3,$11,$c0 - db (SFX_08_5a - SFX_Headers_08) / 3,$20,$c0 - db (SFX_08_61 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_5b - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_5b - SFX_Headers_08) / 3,$20,$c0 - db (SFX_08_59 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_71 - SFX_Headers_08) / 3,$ff,$40 - db (SFX_08_5e - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_4b - SFX_Headers_08) / 3,$00,$c0 - db (SFX_08_4b - SFX_Headers_08) / 3,$00,$40 - db (SFX_08_75 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_67 - SFX_Headers_08) / 3,$40,$60 - db (SFX_08_67 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_67 - SFX_Headers_08) / 3,$ff,$40 - db (SFX_08_6a - SFX_Headers_08) / 3,$80,$c0 - db (SFX_08_59 - SFX_Headers_08) / 3,$10,$a0 - db (SFX_08_59 - SFX_Headers_08) / 3,$21,$e0 - db (SFX_08_69 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_64 - SFX_Headers_08) / 3,$20,$60 - db (SFX_08_6a - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_6c - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_68 - SFX_Headers_08) / 3,$40,$80 - db (SFX_08_69 - SFX_Headers_08) / 3,$f0,$e0 - db (SFX_08_6d - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_6a - SFX_Headers_08) / 3,$f0,$60 - db (SFX_08_68 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_76 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_47 - SFX_Headers_08) / 3,$01,$a0 - db (SFX_08_53 - SFX_Headers_08) / 3,$f0,$20 - db (SFX_08_63 - SFX_Headers_08) / 3,$01,$c0 - db (SFX_08_63 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_5a - SFX_Headers_08) / 3,$00,$e0 - db (SFX_08_66 - SFX_Headers_08) / 3,$01,$60 - db (SFX_08_66 - SFX_Headers_08) / 3,$20,$40 - db (SFX_08_64 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_64 - SFX_Headers_08) / 3,$40,$c0 - db (SFX_08_5b - SFX_Headers_08) / 3,$03,$60 - db (SFX_08_65 - SFX_Headers_08) / 3,$11,$e0 - db (SFX_08_52 - SFX_Headers_08) / 3,$20,$e0 - db (SFX_08_6e - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_5c - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_5c - SFX_Headers_08) / 3,$11,$a0 - db (SFX_08_5c - SFX_Headers_08) / 3,$01,$c0 - db (SFX_08_53 - SFX_Headers_08) / 3,$14,$c0 - db (SFX_08_5b - SFX_Headers_08) / 3,$02,$a0 - db (SFX_08_69 - SFX_Headers_08) / 3,$f0,$80 - db (SFX_08_69 - SFX_Headers_08) / 3,$20,$c0 - db (SFX_08_6f - SFX_Headers_08) / 3,$00,$20 - db (SFX_08_6f - SFX_Headers_08) / 3,$20,$80 - db (SFX_08_6e - SFX_Headers_08) / 3,$12,$60 - db (SFX_08_66 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_54 - SFX_Headers_08) / 3,$01,$e0 - db (SFX_08_69 - SFX_Headers_08) / 3,$0f,$e0 - db (SFX_08_69 - SFX_Headers_08) / 3,$11,$20 - db (SFX_08_50 - SFX_Headers_08) / 3,$10,$40 - db (SFX_08_4f - SFX_Headers_08) / 3,$10,$c0 - db (SFX_08_54 - SFX_Headers_08) / 3,$00,$20 - db (SFX_08_70 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_75 - SFX_Headers_08) / 3,$11,$18 - db (SFX_08_49 - SFX_Headers_08) / 3,$20,$c0 - db (SFX_08_48 - SFX_Headers_08) / 3,$20,$c0 - db (SFX_08_65 - SFX_Headers_08) / 3,$00,$10 - db (SFX_08_66 - SFX_Headers_08) / 3,$f0,$20 - db (SFX_08_73 - SFX_Headers_08) / 3,$f0,$c0 - db (SFX_08_51 - SFX_Headers_08) / 3,$f0,$e0 - db (SFX_08_49 - SFX_Headers_08) / 3,$f0,$40 - db (SFX_08_71 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_73 - SFX_Headers_08) / 3,$80,$40 - db (SFX_08_73 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_54 - SFX_Headers_08) / 3,$11,$20 - db (SFX_08_54 - SFX_Headers_08) / 3,$22,$10 - db (SFX_08_5b - SFX_Headers_08) / 3,$f1,$ff - db (SFX_08_53 - SFX_Headers_08) / 3,$f1,$ff - db (SFX_08_54 - SFX_Headers_08) / 3,$33,$30 - db (SFX_08_72 - SFX_Headers_08) / 3,$40,$c0 - db (SFX_08_4e - SFX_Headers_08) / 3,$20,$20 - db (SFX_08_4e - SFX_Headers_08) / 3,$f0,$10 - db (SFX_08_4f - SFX_Headers_08) / 3,$f8,$10 - db (SFX_08_51 - SFX_Headers_08) / 3,$f0,$10 - db (SFX_08_65 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_58 - SFX_Headers_08) / 3,$00,$c0 - db (SFX_08_72 - SFX_Headers_08) / 3,$c0,$ff - db (SFX_08_49 - SFX_Headers_08) / 3,$f2,$20 - db (SFX_08_74 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_74 - SFX_Headers_08) / 3,$00,$40 - db (SFX_08_49 - SFX_Headers_08) / 3,$00,$40 - db (SFX_08_51 - SFX_Headers_08) / 3,$10,$ff - db (SFX_08_6a - SFX_Headers_08) / 3,$20,$20 - db (SFX_08_72 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_69 - SFX_Headers_08) / 3,$1f,$20 - db (SFX_08_65 - SFX_Headers_08) / 3,$2f,$80 - db (SFX_08_4f - SFX_Headers_08) / 3,$1f,$ff - db (SFX_08_6b - SFX_Headers_08) / 3,$1f,$60 - db (SFX_08_66 - SFX_Headers_08) / 3,$1e,$20 - db (SFX_08_66 - SFX_Headers_08) / 3,$1f,$18 - db (SFX_08_54 - SFX_Headers_08) / 3,$0f,$80 - db (SFX_08_49 - SFX_Headers_08) / 3,$f8,$10 - db (SFX_08_48 - SFX_Headers_08) / 3,$18,$20 - db (SFX_08_72 - SFX_Headers_08) / 3,$08,$40 - db (SFX_08_57 - SFX_Headers_08) / 3,$01,$e0 - db (SFX_08_51 - SFX_Headers_08) / 3,$09,$ff - db (SFX_08_75 - SFX_Headers_08) / 3,$42,$01 - db (SFX_08_5c - SFX_Headers_08) / 3,$00,$ff - db (SFX_08_72 - SFX_Headers_08) / 3,$08,$e0 - db (SFX_08_64 - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_49 - SFX_Headers_08) / 3,$88,$10 - db (SFX_08_65 - SFX_Headers_08) / 3,$48,$ff - db (SFX_08_48 - SFX_Headers_08) / 3,$ff,$ff - db (SFX_08_64 - SFX_Headers_08) / 3,$ff,$10 - db (SFX_08_48 - SFX_Headers_08) / 3,$ff,$04 - db (SFX_08_5c - SFX_Headers_08) / 3,$01,$ff - db (SFX_08_53 - SFX_Headers_08) / 3,$f8,$ff - db (SFX_08_4c - SFX_Headers_08) / 3,$f0,$f0 - db (SFX_08_4f - SFX_Headers_08) / 3,$08,$10 - db (SFX_08_4d - SFX_Headers_08) / 3,$f0,$ff - db (SFX_08_5a - SFX_Headers_08) / 3,$f0,$ff - db (SFX_08_74 - SFX_Headers_08) / 3,$10,$ff - db (SFX_08_4e - SFX_Headers_08) / 3,$f0,$20 - db (SFX_08_6b - SFX_Headers_08) / 3,$f0,$60 - db (SFX_08_61 - SFX_Headers_08) / 3,$12,$10 - db (SFX_08_76 - SFX_Headers_08) / 3,$f0,$20 - db (SFX_08_5e - SFX_Headers_08) / 3,$12,$ff - db (SFX_08_71 - SFX_Headers_08) / 3,$80,$04 - db (SFX_08_73 - SFX_Headers_08) / 3,$f0,$10 - db (SFX_08_69 - SFX_Headers_08) / 3,$f8,$ff - db (SFX_08_66 - SFX_Headers_08) / 3,$f0,$ff - db (SFX_08_51 - SFX_Headers_08) / 3,$01,$ff - db (SFX_08_6c - SFX_Headers_08) / 3,$d8,$04 - db (SFX_08_4b - SFX_Headers_08) / 3,$00,$80 - db (SFX_08_4b - SFX_Headers_08) / 3,$00,$80 + db SFX_BATTLE_0A,$00,$80 + db SFX_BATTLE_0C,$10,$80 + db SFX_BATTLE_1D,$00,$80 + db SFX_BATTLE_0B,$01,$80 + db SFX_BATTLE_0D,$00,$40 + db SFX_BATTLE_37,$00,$ff + db SFX_BATTLE_0D,$10,$60 + db SFX_BATTLE_0D,$20,$80 + db SFX_BATTLE_0D,$00,$a0 + db SFX_BATTLE_10,$00,$80 + db SFX_BATTLE_0F,$20,$40 + db SFX_BATTLE_0F,$00,$80 + db SFX_BATTLE_0E,$00,$a0 + db SFX_BATTLE_11,$10,$c0 + db SFX_BATTLE_11,$00,$a0 + db SFX_BATTLE_12,$00,$c0 + db SFX_BATTLE_12,$10,$a0 + db SFX_BATTLE_13,$00,$e0 + db SFX_BATTLE_11,$20,$c0 + db SFX_BATTLE_14,$00,$80 + db SFX_BATTLE_22,$00,$80 + db SFX_BATTLE_15,$01,$80 + db SFX_BATTLE_20,$00,$80 + db SFX_BATTLE_17,$f0,$40 + db SFX_BATTLE_1A,$00,$80 + db SFX_BATTLE_17,$00,$80 + db SFX_BATTLE_21,$10,$80 + db SFX_BATTLE_1B,$01,$a0 + db SFX_BATTLE_18,$00,$80 + db SFX_BATTLE_1E,$00,$60 + db SFX_BATTLE_1E,$01,$40 + db SFX_BATTLE_1F,$00,$a0 + db SFX_BATTLE_1A,$10,$a0 + db SFX_BATTLE_20,$00,$c0 + db SFX_BATTLE_14,$10,$60 + db SFX_BATTLE_1A,$00,$a0 + db SFX_BATTLE_22,$11,$c0 + db SFX_BATTLE_1A,$20,$c0 + db SFX_BATTLE_21,$00,$80 + db SFX_BATTLE_1B,$00,$80 + db SFX_BATTLE_1B,$20,$c0 + db SFX_BATTLE_19,$00,$80 + db SFX_BATTLE_31,$ff,$40 + db SFX_BATTLE_1E,$00,$80 + db SFX_BATTLE_0B,$00,$c0 + db SFX_BATTLE_0B,$00,$40 + db SFX_BATTLE_35,$00,$80 + db SFX_BATTLE_27,$40,$60 + db SFX_BATTLE_27,$00,$80 + db SFX_BATTLE_27,$ff,$40 + db SFX_BATTLE_2A,$80,$c0 + db SFX_BATTLE_19,$10,$a0 + db SFX_BATTLE_19,$21,$e0 + db SFX_BATTLE_29,$00,$80 + db SFX_BATTLE_24,$20,$60 + db SFX_BATTLE_2A,$00,$80 + db SFX_BATTLE_2C,$00,$80 + db SFX_BATTLE_28,$40,$80 + db SFX_BATTLE_29,$f0,$e0 + db SFX_BATTLE_2D,$00,$80 + db SFX_BATTLE_2A,$f0,$60 + db SFX_BATTLE_28,$00,$80 + db SFX_BATTLE_36,$00,$80 + db SFX_BATTLE_07,$01,$a0 + db SFX_BATTLE_13,$f0,$20 + db SFX_BATTLE_23,$01,$c0 + db SFX_BATTLE_23,$00,$80 + db SFX_BATTLE_1A,$00,$e0 + db SFX_BATTLE_26,$01,$60 + db SFX_BATTLE_26,$20,$40 + db SFX_BATTLE_24,$00,$80 + db SFX_BATTLE_24,$40,$c0 + db SFX_BATTLE_1B,$03,$60 + db SFX_BATTLE_25,$11,$e0 + db SFX_BATTLE_12,$20,$e0 + db SFX_BATTLE_2E,$00,$80 + db SFX_BATTLE_1C,$00,$80 + db SFX_BATTLE_1C,$11,$a0 + db SFX_BATTLE_1C,$01,$c0 + db SFX_BATTLE_13,$14,$c0 + db SFX_BATTLE_1B,$02,$a0 + db SFX_BATTLE_29,$f0,$80 + db SFX_BATTLE_29,$20,$c0 + db SFX_BATTLE_2F,$00,$20 + db SFX_BATTLE_2F,$20,$80 + db SFX_BATTLE_2E,$12,$60 + db SFX_BATTLE_26,$00,$80 + db SFX_BATTLE_14,$01,$e0 + db SFX_BATTLE_29,$0f,$e0 + db SFX_BATTLE_29,$11,$20 + db SFX_BATTLE_10,$10,$40 + db SFX_BATTLE_0F,$10,$c0 + db SFX_BATTLE_14,$00,$20 + db SFX_BATTLE_30,$00,$80 + db SFX_BATTLE_35,$11,$18 + db SFX_BATTLE_09,$20,$c0 + db SFX_BATTLE_08,$20,$c0 + db SFX_BATTLE_25,$00,$10 + db SFX_BATTLE_26,$f0,$20 + db SFX_BATTLE_33,$f0,$c0 + db SFX_BATTLE_11,$f0,$e0 + db SFX_BATTLE_09,$f0,$40 + db SFX_BATTLE_31,$00,$80 + db SFX_BATTLE_33,$80,$40 + db SFX_BATTLE_33,$00,$80 + db SFX_BATTLE_14,$11,$20 + db SFX_BATTLE_14,$22,$10 + db SFX_BATTLE_1B,$f1,$ff + db SFX_BATTLE_13,$f1,$ff + db SFX_BATTLE_14,$33,$30 + db SFX_BATTLE_32,$40,$c0 + db SFX_BATTLE_0E,$20,$20 + db SFX_BATTLE_0E,$f0,$10 + db SFX_BATTLE_0F,$f8,$10 + db SFX_BATTLE_11,$f0,$10 + db SFX_BATTLE_25,$00,$80 + db SFX_BATTLE_18,$00,$c0 + db SFX_BATTLE_32,$c0,$ff + db SFX_BATTLE_09,$f2,$20 + db SFX_BATTLE_34,$00,$80 + db SFX_BATTLE_34,$00,$40 + db SFX_BATTLE_09,$00,$40 + db SFX_BATTLE_11,$10,$ff + db SFX_BATTLE_2A,$20,$20 + db SFX_BATTLE_32,$00,$80 + db SFX_BATTLE_29,$1f,$20 + db SFX_BATTLE_25,$2f,$80 + db SFX_BATTLE_0F,$1f,$ff + db SFX_BATTLE_2B,$1f,$60 + db SFX_BATTLE_26,$1e,$20 + db SFX_BATTLE_26,$1f,$18 + db SFX_BATTLE_14,$0f,$80 + db SFX_BATTLE_09,$f8,$10 + db SFX_BATTLE_08,$18,$20 + db SFX_BATTLE_32,$08,$40 + db SFX_BATTLE_17,$01,$e0 + db SFX_BATTLE_11,$09,$ff + db SFX_BATTLE_35,$42,$01 + db SFX_BATTLE_1C,$00,$ff + db SFX_BATTLE_32,$08,$e0 + db SFX_BATTLE_24,$00,$80 + db SFX_BATTLE_09,$88,$10 + db SFX_BATTLE_25,$48,$ff + db SFX_BATTLE_08,$ff,$ff + db SFX_BATTLE_24,$ff,$10 + db SFX_BATTLE_08,$ff,$04 + db SFX_BATTLE_1C,$01,$ff + db SFX_BATTLE_13,$f8,$ff + db SFX_BATTLE_0C,$f0,$f0 + db SFX_BATTLE_0F,$08,$10 + db SFX_BATTLE_0D,$f0,$ff + db SFX_BATTLE_1A,$f0,$ff + db SFX_BATTLE_34,$10,$ff + db SFX_BATTLE_0E,$f0,$20 + db SFX_BATTLE_2B,$f0,$60 + db SFX_BATTLE_21,$12,$10 + db SFX_BATTLE_36,$f0,$20 + db SFX_BATTLE_1E,$12,$ff + db SFX_BATTLE_31,$80,$04 + db SFX_BATTLE_33,$f0,$10 + db SFX_BATTLE_29,$f8,$ff + db SFX_BATTLE_26,$f0,$ff + db SFX_BATTLE_11,$01,$ff + db SFX_BATTLE_2C,$d8,$04 + db SFX_BATTLE_0B,$00,$80 + db SFX_BATTLE_0B,$00,$80 CopyPicTiles: ; 79aae (1e:5aae) ld a, [H_WHOSETURN] @@ -2929,7 +2929,7 @@ TossBallAnimation: ; 79e16 (1e:5e16) ld a,TOSS_ANIM ld [W_ANIMATIONID],a call PlayAnimation - ld a,(SFX_08_43 - SFX_Headers_08) / 3 + ld a,SFX_BATTLE_03 call PlaySound ld a,BLOCKBALL_ANIM ld [W_ANIMATIONID],a @@ -2945,15 +2945,15 @@ PlayApplyingAttackSound: ; 79e6a (1e:5e6a) cp $a ld a, $20 ld b, $30 - ld c, (SFX_08_50 - SFX_Headers_08) / 3 + ld c, SFX_BATTLE_10 jr z, .asm_79e8b ld a, $e0 ld b, $ff - ld c, (SFX_08_5a - SFX_Headers_08) / 3 + ld c, SFX_BATTLE_1A jr nc, .asm_79e8b ld a, $50 ld b, $1 - ld c, (SFX_08_51 - SFX_Headers_08) / 3 + ld c, SFX_BATTLE_11 .asm_79e8b ld [wc0f1], a ld a, b diff --git a/engine/battle/common_text.asm b/engine/battle/common_text.asm index 11309a86..41e402f3 100644 --- a/engine/battle/common_text.asm +++ b/engine/battle/common_text.asm @@ -64,7 +64,7 @@ PrintBeginningBattleText: ; 58d99 (16:4d99) ld [wc0f1], a ld a, $80 ld [wc0f2], a - ld a, (SFX_08_77 - SFX_Headers_08) / 3 + ld a, SFX_BATTLE_37 call PlaySound jp WaitForSoundToFinish .done diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 5deeb4dc..30b62dea 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -355,7 +355,7 @@ EnemyRan: ; 3c202 (f:4202) ld hl, EnemyRanText .printText call PrintText - ld a, (SFX_08_44 - SFX_Headers_08) / 3 + ld a, SFX_BATTLE_04 call PlaySoundWaitForCurrent xor a ld [H_WHOSETURN], a @@ -864,13 +864,13 @@ FaintEnemyPokemon: ; 0x3c567 xor a ld [wc0f1], a ld [wc0f2], a - ld a, (SFX_08_48 - SFX_Headers_08) / 3 ; SFX_FALL? + ld a, SFX_BATTLE_08 ; SFX_FALL? call PlaySoundWaitForCurrent .sfxwait ld a, [wc02a] - cp (SFX_08_48 - SFX_Headers_08) / 3 + cp SFX_BATTLE_08 jr z, .sfxwait - ld a, (SFX_08_43 - SFX_Headers_08) / 3 ; SFX_DROP + ld a, SFX_BATTLE_03 ; SFX_DROP call PlaySound call WaitForSoundToFinish jr .sfxplayed @@ -1678,7 +1678,7 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9) dec a .playSound ld [wBattleResult], a - ld a, (SFX_08_44 - SFX_Headers_08) / 3 + ld a, SFX_BATTLE_04 call PlaySoundWaitForCurrent ld hl, GotAwayText call PrintText diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm index a53f00f6..c803a870 100644 --- a/engine/battle/trainer_ai.asm +++ b/engine/battle/trainer_ai.asm @@ -553,7 +553,7 @@ DecrementAICount: ; 3a695 (e:6695) ret AIPlayRestoringSFX: ; 3a69b (e:669b) - ld a,(SFX_08_3e - SFX_Headers_08) / 3 + ld a,SFX_HEAL_AILMENT jp PlaySoundWaitForCurrent AIUseFullRestore: ; 3a6a0 (e:66a0) diff --git a/engine/evolution.asm b/engine/evolution.asm index 9ed38c21..0f3a0d00 100755 --- a/engine/evolution.asm +++ b/engine/evolution.asm @@ -14,7 +14,7 @@ EvolveMon: ; 7bde9 (1e:7de9) call PlaySound ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a - ld a, (SFX_08_3c - SFX_Headers_08) / 3 + ld a, SFX_TINK call PlaySound call Delay3 xor a diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm index 4a253c68..9cdc617c 100755 --- a/engine/evos_moves.asm +++ b/engine/evos_moves.asm @@ -146,7 +146,7 @@ Evolution_PartyMonLoop: ; loop over party mons push hl ld hl, IntoText call Func_3c59 - ld a, (SFX_02_3b - SFX_Headers_02) / 3 + ld a, SFX_GET_ITEM_2 call PlaySoundWaitForCurrent call WaitForSoundToFinish ld c, 40 diff --git a/engine/gamefreak.asm b/engine/gamefreak.asm index 38c66793..49c938f7 100755 --- a/engine/gamefreak.asm +++ b/engine/gamefreak.asm @@ -26,7 +26,7 @@ LoadShootingStarGraphics: ; 70000 (1c:4000) AnimateShootingStar: ; 70044 (1c:4044) call LoadShootingStarGraphics - ld a, (SFX_1f_67 - SFX_Headers_1f) / 3 + ld a, SFX_SHOOTING_STAR call PlaySound ; Move the big star down and left across the screen. diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm index 841929b8..b65ee2c8 100755 --- a/engine/hidden_object_functions17.asm +++ b/engine/hidden_object_functions17.asm @@ -423,7 +423,7 @@ VermilionGymTrashSuccesText1: ; 5dec8 (17:5ec8) TX_FAR _VermilionGymTrashSuccesText1 TX_ASM call WaitForSoundToFinish - ld a, (SFX_02_49 - SFX_Headers_02) / 3 + ld a, SFX_SWITCH call PlaySound call WaitForSoundToFinish jp TextScriptEnd @@ -437,7 +437,7 @@ VermilionGymTrashSuccesText2: ; 5dedb (17:5edb) VermilionGymTrashSuccesPlaySfx: ; 5dee0 (17:5ee0) TX_ASM call WaitForSoundToFinish - ld a, (SFX_02_49 - SFX_Headers_02) / 3 + ld a, SFX_SWITCH call PlaySound call WaitForSoundToFinish jp TextScriptEnd @@ -446,7 +446,7 @@ VermilionGymTrashSuccesText3: ; 5deef (17:5eef) TX_FAR _VermilionGymTrashSuccesText3 TX_ASM call WaitForSoundToFinish - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound call WaitForSoundToFinish jp TextScriptEnd @@ -455,7 +455,7 @@ VermilionGymTrashFailText: ; 5df02 (17:5f02) TX_FAR _VermilionGymTrashFailText TX_ASM call WaitForSoundToFinish - ld a, (SFX_02_51 - SFX_Headers_02) / 3 + ld a, SFX_DENIED call PlaySound call WaitForSoundToFinish jp TextScriptEnd diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm index 31ae17a4..4c2ea816 100755 --- a/engine/hidden_object_functions7.asm +++ b/engine/hidden_object_functions7.asm @@ -68,7 +68,7 @@ SafariZoneGameOver: ; 1e9b0 (7:69b0) dec a call PlaySound ld c, BANK(SFX_02_5f) - ld a, (SFX_02_5f - SFX_Headers_02) / 3 + ld a, SFX_SAFARI_ZONE_PA call PlayMusic .asm_1e9c2 ld a, [wc02a] @@ -214,7 +214,7 @@ CinnabarGymQuiz_1ea92: ; 1ea92 (7:6a92) jp CinnabarGymQuiz_1eb0a .asm_1eab8 call WaitForSoundToFinish - ld a, (SFX_02_51 - SFX_Headers_02) / 3 + ld a, SFX_DENIED call PlaySound call WaitForSoundToFinish ld hl, CinnabarGymQuizIncorrectText @@ -247,7 +247,7 @@ CinnabarGymQuizCorrectText: ; 1eae3 (7:6ae3) and a jp nz, TextScriptEnd call WaitForSoundToFinish - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound call WaitForSoundToFinish jp TextScriptEnd @@ -335,22 +335,22 @@ BillsHousePC: ; 1eb6e (7:6b6e) tx_pre BillsHouseInitiatedText ld c, 32 call DelayFrames - ld a, (SFX_02_3c - SFX_Headers_02) / 3 + ld a, SFX_TINK call PlaySound call WaitForSoundToFinish ld c, 80 call DelayFrames - ld a, (SFX_02_48 - SFX_Headers_02) / 3 + ld a, SFX_SHRINK call PlaySound call WaitForSoundToFinish ld c, 48 call DelayFrames - ld a, (SFX_02_3c - SFX_Headers_02) / 3 + ld a, SFX_TINK call PlaySound call WaitForSoundToFinish ld c, 32 call DelayFrames - ld a, (SFX_02_3a - SFX_Headers_02) / 3 + ld a, SFX_GET_ITEM_1 call PlaySound call WaitForSoundToFinish call PlayDefaultMusic @@ -376,7 +376,7 @@ BillsHouseInitiatedText: ; 1ebe2 (7:6be2) call PlaySound ld c, 16 call DelayFrames - ld a, (SFX_02_49 - SFX_Headers_02) / 3 + ld a, SFX_SWITCH call PlaySound call WaitForSoundToFinish ld c, 60 diff --git a/engine/intro.asm b/engine/intro.asm index 79cc2101..6b5c46c9 100755 --- a/engine/intro.asm +++ b/engine/intro.asm @@ -35,14 +35,14 @@ PlayIntroScene: ; 4169d (10:569d) ret c ; hip - ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_HIP call PlaySound xor a ld [wd09f], a ld de, IntroNidorinoAnimation1 call AnimateIntroNidorino ; hop - ld a, (SFX_1f_60 - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_HOP call PlaySound ld de, IntroNidorinoAnimation2 call AnimateIntroNidorino @@ -51,12 +51,12 @@ PlayIntroScene: ; 4169d (10:569d) ret c ; hip - ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_HIP call PlaySound ld de, IntroNidorinoAnimation1 call AnimateIntroNidorino ; hop - ld a, (SFX_1f_60 - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_HOP call PlaySound ld de, IntroNidorinoAnimation2 call AnimateIntroNidorino @@ -67,7 +67,7 @@ PlayIntroScene: ; 4169d (10:569d) ; raise ld b, $4 call IntroCopyTiles - ld a, (SFX_1f_61 - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_RAISE call PlaySound ld de, $401 ; move Gengar left by 8 pixels call IntroMoveMon @@ -78,12 +78,12 @@ PlayIntroScene: ; 4169d (10:569d) ; slash ld b, $5 call IntroCopyTiles - ld a, (SFX_1f_62 - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_CRASH call PlaySound ld de, $800 ; move Gengar right by 16 pixels call IntroMoveMon ; hip - ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_HIP call PlaySound ld a, $24 ld [wd09f], a @@ -102,14 +102,14 @@ PlayIntroScene: ; 4169d (10:569d) ret c ; hip - ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_HIP call PlaySound xor a ld [wd09f], a ld de, IntroNidorinoAnimation4 call AnimateIntroNidorino ; hop - ld a, (SFX_1f_60 - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_HOP call PlaySound ld de, IntroNidorinoAnimation5 call AnimateIntroNidorino @@ -126,7 +126,7 @@ PlayIntroScene: ; 4169d (10:569d) ret c ; lunge - ld a, (SFX_1f_5e - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_LUNGE call PlaySound ld a, $48 ld [wd09f], a diff --git a/engine/items/items.asm b/engine/items/items.asm index fe2d71c8..69e8b4bf 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -644,7 +644,7 @@ ItemUseEvoStone: ; da5b (3:5a5b) ld [wcf91],a ld a,$01 ld [wForceEvolution],a - ld a,(SFX_02_3e - SFX_Headers_02) / 3 + ld a,SFX_HEAL_AILMENT call PlaySoundWaitForCurrent call WaitForSoundToFinish callab TryEvolvingMon ; try to evolve pokemon @@ -917,7 +917,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld a,[wWhichPokemon] ld bc,2 * 20 call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled - ld a,(SFX_02_3d - SFX_Headers_02) / 3 + ld a,SFX_HEAL_HP call PlaySoundWaitForCurrent ld a,[hFlags_0xFFF6] set 0,a @@ -1067,7 +1067,7 @@ ItemUseMedicine: ; dabb (3:5abb) jr c,.playStatusAilmentCuringSound cp a,FULL_HEAL jr z,.playStatusAilmentCuringSound - ld a,(SFX_02_3d - SFX_Headers_02) / 3 ; HP healing sound + ld a,SFX_HEAL_HP call PlaySoundWaitForCurrent ld a,[hFlags_0xFFF6] set 0,a @@ -1089,7 +1089,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld [wPartyMenuTypeOrMessageID],a jr .showHealingItemMessage .playStatusAilmentCuringSound - ld a,(SFX_02_3e - SFX_Headers_02) / 3 ; status ailment curing sound + ld a,SFX_HEAL_AILMENT call PlaySoundWaitForCurrent .showHealingItemMessage xor a @@ -1178,7 +1178,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld de,wcf4b ld bc,10 call CopyData ; copy the stat's name to wcf4b - ld a,(SFX_02_3e - SFX_Headers_02) / 3 + ld a,SFX_HEAL_AILMENT call PlaySound ld hl,VitaminStatRoseText call PrintText @@ -1720,7 +1720,7 @@ PlayedFluteHadEffectText: ; e215 (3:6215) ; play out-of-battle pokeflute music ld a,$ff call PlaySound ; turn off music - ld a, (SFX_02_5e - SFX_Headers_02) / 3 + ld a, SFX_POKEFLUE ld c, BANK(SFX_02_5e) call PlayMusic .musicWaitLoop ; wait for music to finish playing @@ -1824,7 +1824,7 @@ FishingInit: ; e2b4 (3:62b4) call ItemUseReloadOverworldData ld hl,ItemUseText00 call PrintText - ld a,(SFX_02_3e - SFX_Headers_02) / 3 + ld a,SFX_HEAL_AILMENT call PlaySound ld c,80 call DelayFrames @@ -1847,9 +1847,9 @@ ItemUseItemfinder: ; e2e1 (3:62e1) jr nc,.printText ; if no hidden items ld c,4 .loop - ld a,(SFX_02_4a - SFX_Headers_02) / 3 + ld a,SFX_HEALING_MACHINE call PlaySoundWaitForCurrent - ld a,(SFX_02_5a - SFX_Headers_02) / 3 + ld a,SFX_PURCHASE call PlaySoundWaitForCurrent dec c jr nz,.loop @@ -1951,7 +1951,7 @@ ItemUsePPRestore: ; e31e (3:631e) ld bc,4 call CopyData ; copy party data to in-battle data .skipUpdatingInBattleData - ld a,(SFX_02_3e - SFX_Headers_02) / 3 + ld a,SFX_HEAL_AILMENT call PlaySound ld hl,PPRestoredText call PrintText @@ -2146,7 +2146,7 @@ ItemUseTMHM: ; e479 (3:6479) and a ; can the pokemon learn the move? jr nz,.checkIfAlreadyLearnedMove ; if the pokemon can't learn the move - ld a,(SFX_02_51 - SFX_Headers_02) / 3 + ld a,SFX_DENIED call PlaySoundWaitForCurrent ld hl,MonCannotLearnMachineMoveText call PrintText @@ -2186,7 +2186,7 @@ MonCannotLearnMachineMoveText: ; e55e (3:655e) PrintItemUseTextAndRemoveItem: ; e563 (3:6563) ld hl,ItemUseText00 call PrintText - ld a,(SFX_02_3e - SFX_Headers_02) / 3 + ld a,SFX_HEAL_AILMENT call PlaySound call WaitForTextScrollButtonPress ; wait for button press diff --git a/engine/learn_move.asm b/engine/learn_move.asm index 1c0e038c..abc3b7d4 100755 --- a/engine/learn_move.asm +++ b/engine/learn_move.asm @@ -207,7 +207,7 @@ OneTwoAndText: ; 6fc8 (1:6fc8) TX_FAR _OneTwoAndText db $a TX_ASM - ld a, (SFX_02_58 - SFX_Headers_02) / 3 + ld a, SFX_SWAP call PlaySoundWaitForCurrent ld hl, PoofText ret diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 9e160f81..dc936c97 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -481,7 +481,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) cp a,16 ; is the cursor on Cancel? jr nz,.loop .exitMenu - ld a,(SFX_02_40 - SFX_Headers_02) / 3 + ld a,SFX_PRESS_AB call PlaySound ret .eraseOldMenuCursor diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm index 20deb834..9a608491 100755 --- a/engine/menu/naming_screen.asm +++ b/engine/menu/naming_screen.asm @@ -262,7 +262,7 @@ DisplayNamingScreen: ; 6596 (1:6596) ld a, [wHPBarNewHP] ld [hli], a ld [hl], $50 - ld a, (SFX_02_40 - SFX_Headers_02) / 3 + ld a, SFX_PRESS_AB call PlaySound ret .pressedB diff --git a/engine/menu/pc.asm b/engine/menu/pc.asm index 8ee40c7c..b5281964 100755 --- a/engine/menu/pc.asm +++ b/engine/menu/pc.asm @@ -1,6 +1,6 @@ ActivatePC: ; 17e2c (5:7e2c) call SaveScreenTilesToBuffer2 - ld a, (SFX_02_45 - SFX_Headers_02) / 3 + ld a, SFX_TURN_ON_PC call PlaySound ld hl, TurnedOnPC1Text call PrintText @@ -51,7 +51,7 @@ PCMainMenu: ; 17e48 (5:7e48) ld hl, wFlags_0xcd60 res 5, [hl] set 3, [hl] - ld a, (SFX_02_47 - SFX_Headers_02) / 3 + ld a, SFX_ENTER_PC call PlaySound call WaitForSoundToFinish ld hl, AccessedMyPCText @@ -59,19 +59,19 @@ PCMainMenu: ; 17e48 (5:7e48) callba PlayerPC jr ReloadMainMenu OaksPC: ; 17ec0 (5:7ec0) - ld a, (SFX_02_47 - SFX_Headers_02) / 3 + ld a, SFX_ENTER_PC call PlaySound call WaitForSoundToFinish callba OpenOaksPC jr ReloadMainMenu PKMNLeague: ; 17ed2 (5:7ed2) - ld a, (SFX_02_47 - SFX_Headers_02) / 3 + ld a, SFX_ENTER_PC call PlaySound call WaitForSoundToFinish callba PKMNLeaguePC jr ReloadMainMenu BillsPC: ; 17ee4 (5:7ee4) - ld a, (SFX_02_47 - SFX_Headers_02) / 3 + ld a, SFX_ENTER_PC call PlaySound call WaitForSoundToFinish ld a, [wd7f1] ;has to do with having met Bill @@ -91,7 +91,7 @@ ReloadMainMenu: ; 17f06 (5:7f06) call UpdateSprites jp PCMainMenu LogOff: ; 17f13 (5:7f13) - ld a, (SFX_02_46 - SFX_Headers_02) / 3 + ld a, SFX_TURN_OFF_PC call PlaySound call WaitForSoundToFinish ld hl, wFlags_0xcd60 diff --git a/engine/menu/players_pc.asm b/engine/menu/players_pc.asm index 89974dd0..00889e93 100755 --- a/engine/menu/players_pc.asm +++ b/engine/menu/players_pc.asm @@ -11,7 +11,7 @@ PlayerPC: ; 78e6 (1:78e6) bit 3, a ; accessing player's PC through another PC? jr nz, PlayerPCMenu ; accessing it directly - ld a, (SFX_02_45 - SFX_Headers_02) / 3 + ld a, SFX_TURN_ON_PC call PlaySound ld hl, TurnedOnPC2Text call PrintText @@ -67,7 +67,7 @@ ExitPlayerPC: ; 796d (1:796d) bit 3, a ; accessing player's PC through another PC? jr nz, .next ; accessing it directly - ld a, (SFX_02_46 - SFX_Headers_02) / 3 + ld a, SFX_TURN_OFF_PC call PlaySound call WaitForSoundToFinish .next @@ -130,7 +130,7 @@ PlayerPCDeposit: ; 7995 (1:7995) ld hl, wNumBagItems call RemoveItemFromInventory call WaitForSoundToFinish - ld a, (SFX_02_55 - SFX_Headers_02) / 3 + ld a, SFX_WITHDRAW_DEPOSIT call PlaySound call WaitForSoundToFinish ld hl, ItemWasStoredText @@ -184,7 +184,7 @@ PlayerPCWithdraw: ; 7a12 (1:7a12) ld hl, wNumBoxItems call RemoveItemFromInventory call WaitForSoundToFinish - ld a, (SFX_02_55 - SFX_Headers_02) / 3 + ld a, SFX_WITHDRAW_DEPOSIT call PlaySound call WaitForSoundToFinish ld hl, WithdrewItemText diff --git a/engine/menu/start_menu.asm b/engine/menu/start_menu.asm index 7aa09df7..bd876f5b 100755 --- a/engine/menu/start_menu.asm +++ b/engine/menu/start_menu.asm @@ -4,7 +4,7 @@ DisplayStartMenu:: ; 2acd (0:2acd) ld [MBC1RomBank],a ld a,[wWalkBikeSurfState] ; walking/biking/surfing ld [wWalkBikeSurfStateCopy],a - ld a, (SFX_02_3f - SFX_Headers_02) / 3 ; Start menu sound + ld a, SFX_START_MENU call PlaySound RedisplayStartMenu:: ; 2adf (0:2adf) diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index 0036d66e..481c0fbe 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -734,7 +734,7 @@ SwitchPartyMon_ClearGfx: ; 13625 (4:7625) dec c jr nz, .clearMonOAMLoop call WaitForSoundToFinish - ld a, (SFX_02_58 - SFX_Headers_02) / 3 + ld a, SFX_SWAP jp PlaySound SwitchPartyMon_InitVarOrSwapData: ; 13653 (4:7653) diff --git a/engine/menu/vending_machine.asm b/engine/menu/vending_machine.asm index 0f6c6a13..8460889f 100755 --- a/engine/menu/vending_machine.asm +++ b/engine/menu/vending_machine.asm @@ -58,7 +58,7 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0) ld c, 2 call DelayFrames push bc - ld a, (SFX_02_53 - SFX_Headers_02) / 3 + ld a, SFX_PUSH_BOULDER call PlaySound pop bc dec b diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index c7b2f4d6..62b054df 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -106,7 +106,7 @@ OakSpeech: ; 6115 (1:6115) .next ld a,[H_LOADEDROMBANK] push af - ld a,(SFX_02_48 - SFX_Headers_02) / 3 + ld a,SFX_SHRINK call PlaySound pop af ld [H_LOADEDROMBANK],a diff --git a/engine/overworld/cable_club_npc.asm b/engine/overworld/cable_club_npc.asm index 86a7ab7d..b9e3102a 100755 --- a/engine/overworld/cable_club_npc.asm +++ b/engine/overworld/cable_club_npc.asm @@ -57,7 +57,7 @@ CableClubNPC: ; 71c5 (1:71c5) jr nz, .choseNo callab SaveSAVtoSRAM call WaitForSoundToFinish - ld a, (SFX_02_5d - SFX_Headers_02) / 3 + ld a, SFX_SAVE call PlaySoundWaitForCurrent ld hl, CableClubNPCPleaseWaitText call PrintText diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm index 94c1868c..746ea326 100755 --- a/engine/overworld/card_key.asm +++ b/engine/overworld/card_key.asm @@ -51,7 +51,7 @@ PrintCardKeyText: ; 52673 (14:6673) predef ReplaceTileBlock ld hl, wd126 set 5, [hl] - ld a, (SFX_1f_57 - SFX_Headers_1f) / 3 + ld a, SFX_GO_INSIDE jp PlaySound .noCardKey tx_pre_id CardKeyFailText diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm index f7be269c..293daee7 100755 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -60,7 +60,7 @@ UsedCut: ; ef54 (3:6f54) callba Func_79e96 ld a, $1 ld [wUpdateSpritesEnabled], a - ld a, (SFX_02_56 - SFX_Headers_02) / 3 + ld a, SFX_CUT call PlaySound ld a, $90 ld [hWY], a diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm index f5b1d14c..0c30ee59 100755 --- a/engine/overworld/elevator.asm +++ b/engine/overworld/elevator.asm @@ -19,7 +19,7 @@ ShakeElevator: ; 7bf15 (1e:7f15) ld [hSCY], a push bc ld c, BANK(SFX_02_5b) - ld a, (SFX_02_5b - SFX_Headers_02) / 3 + ld a, SFX_COLLISION call PlayMusic pop bc ld c, 2 @@ -31,7 +31,7 @@ ShakeElevator: ; 7bf15 (1e:7f15) ld a, $ff call PlaySound ld c, BANK(SFX_02_5f) - ld a, (SFX_02_5f - SFX_Headers_02) / 3 + ld a, SFX_SAFARI_ZONE_PA call PlayMusic .asm_7bf57 ld a, [wc02a] diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm index d00bbc05..fce797d0 100755 --- a/engine/overworld/healing_machine.asm +++ b/engine/overworld/healing_machine.asm @@ -28,7 +28,7 @@ AnimateHealingMachine: ; 70433 (1c:4433) ld b, a .asm_7046e call Func_70503 - ld a, (SFX_02_4a - SFX_Headers_02) / 3 + ld a, SFX_HEALING_MACHINE call PlaySound ld c, 30 call DelayFrames diff --git a/engine/overworld/hidden_items.asm b/engine/overworld/hidden_items.asm index 910fcf04..94f20439 100755 --- a/engine/overworld/hidden_items.asm +++ b/engine/overworld/hidden_items.asm @@ -33,7 +33,7 @@ FoundHiddenItemText: ; 7675b (1d:675b) ld c, a ld b, $1 predef FlagActionPredef - ld a, (SFX_02_3b - SFX_Headers_02) / 3 + ld a, SFX_GET_ITEM_2 call PlaySoundWaitForCurrent call WaitForSoundToFinish jp TextScriptEnd diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm index 3a183c0f..51819802 100755 --- a/engine/overworld/ledges.asm +++ b/engine/overworld/ledges.asm @@ -50,7 +50,7 @@ HandleLedges: ; 1a672 (6:6672) ld a, $2 ld [wSimulatedJoypadStatesIndex], a call LoadHoppingShadowOAM - ld a, (SFX_02_4e - SFX_Headers_02) / 3 + ld a, SFX_LEDGE call PlaySound ret diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm index 98ea466d..5ce2b2a6 100755 --- a/engine/overworld/player_animations.asm +++ b/engine/overworld/player_animations.asm @@ -9,7 +9,7 @@ EnterMapAnim: ; 70510 (1c:4510) bit 7, [hl] ; used fly out of battle? res 7, [hl] jr nz, .flyAnimation - ld a, (SFX_02_4c - SFX_Headers_02) / 3 + ld a, SFX_TELEPORT_2 call PlaySound ld hl, wd732 bit 4, [hl] ; used dungeon warp? @@ -17,7 +17,7 @@ EnterMapAnim: ; 70510 (1c:4510) pop hl jr nz, .dungeonWarpAnimation call PlayerSpinWhileMovingDown - ld a, (SFX_02_4f - SFX_Headers_02) / 3 + ld a, SFX_FLY_1 call PlaySound call IsPlayerStandingOnWarpPadOrHole ld a, b @@ -50,7 +50,7 @@ EnterMapAnim: ; 70510 (1c:4510) ld bc, (BANK(BirdSprite) << 8) + $0c call CopyVideoData call LoadBirdSpriteGraphics - ld a, (SFX_02_50 - SFX_Headers_02) / 3 + ld a, SFX_FLY_2 call PlaySound ld hl, wFlyAnimUsingCoordList xor a ; is using coord list @@ -99,7 +99,7 @@ _LeaveMapAnim: ; 705ba (1c:45ba) dec a jp nz, LeaveMapThroughHoleAnim .spinWhileMovingUp - ld a, (SFX_02_4b - SFX_Headers_02) / 3 + ld a, SFX_TELEPORT_1 call PlaySound ld hl, wPlayerSpinWhileMovingUpOrDownAnimDeltaY ld a, -$10 @@ -133,7 +133,7 @@ _LeaveMapAnim: ; 705ba (1c:45ba) ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayDelta xor a ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayEndValue - ld [hl], (SFX_02_4d - SFX_Headers_02) / 3 ; wPlayerSpinInPlaceAnimSoundID + ld [hl], SFX_TELEPORT_3 ; wPlayerSpinInPlaceAnimSoundID ld hl, wFacingDirectionList call PlayerSpinInPlace jr .spinWhileMovingUp @@ -146,7 +146,7 @@ _LeaveMapAnim: ; 705ba (1c:45ba) ld [hli], a ; wFlyAnimCounter ld [hl], $c ; wFlyAnimBirdSpriteImageIndex call DoFlyAnimation - ld a, (SFX_02_50 - SFX_Headers_02) / 3 + ld a, SFX_FLY_2 call PlaySound ld hl, wFlyAnimUsingCoordList xor a ; is using coord list diff --git a/engine/overworld/pokemart.asm b/engine/overworld/pokemart.asm index ebc99eed..d59b2dc7 100755 --- a/engine/overworld/pokemart.asm +++ b/engine/overworld/pokemart.asm @@ -190,7 +190,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) ld a,1 ld [wBoughtOrSoldItemInMart],a .skipSettingFlag2 - ld a,(SFX_02_5a - SFX_Headers_02) / 3 + ld a,SFX_PURCHASE call PlaySoundWaitForCurrent call WaitForSoundToFinish ld hl,PokemartBoughtItemText diff --git a/engine/save.asm b/engine/save.asm index 56468595..d13a2aa7 100755 --- a/engine/save.asm +++ b/engine/save.asm @@ -161,7 +161,7 @@ SaveSAV: ; 7370a (1c:770a) call DelayFrames ld hl,GameSavedText call PrintText - ld a, (SFX_02_5d - SFX_Headers_02) / 3 ;sound for saved game + ld a, SFX_SAVE call PlaySoundWaitForCurrent call WaitForSoundToFinish ld c,30 @@ -375,7 +375,7 @@ ChangeBox:: ; 738a1 (1c:78a1) call SaveSAVtoSRAM ld hl, wChangeBoxSavedMapTextPointer call SetMapTextPointer - ld a, (SFX_02_5d - SFX_Headers_02) / 3 + ld a, SFX_SAVE call PlaySoundWaitForCurrent call WaitForSoundToFinish ret diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index ea1eb315..c7968c10 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -116,7 +116,7 @@ MainSlotMachineLoop: ; 37395 (d:7395) ld [hli], a ld [hl], a call WaitForSoundToFinish - ld a, (SFX_1f_66 - SFX_Headers_1f) / 3 + ld a, SFX_SLOTS_NEW_SPIN call PlaySound ld hl, StartSlotMachineText call PrintText @@ -584,7 +584,7 @@ SlotReward15Func: ; 376e5 (d:76e5) ret SlotReward100Func: ; 376f3 (d:76f3) - ld a, (SFX_1f_42 - SFX_Headers_1f) / 3 + ld a, SFX_GET_KEY_ITEM call PlaySound xor a ld [wSlotMachineFlags], a @@ -595,7 +595,7 @@ SlotReward100Func: ; 376f3 (d:76f3) SlotReward300Func: ; 37702 (d:7702) ld hl, YeahText call PrintText - ld a, (SFX_1f_3b - SFX_Headers_1f) / 3 + ld a, SFX_GET_ITEM_2 call PlaySound call Random cp $80 @@ -689,7 +689,7 @@ SlotMachine_PayCoinsToPlayer: ; 3776b (d:776b) predef AddBCDPredef call SlotMachine_PrintCreditCoins call SlotMachine_PrintPayoutCoins - ld a, (SFX_1f_65 - SFX_Headers_1f) / 3 + ld a, SFX_SLOTS_REWARD call PlaySound ld a, [wAnimCounter] dec a @@ -837,7 +837,7 @@ SlotMachine_HandleInputWhileWheelsSpin: ; 37882 (d:7882) jr z, .skip .loop inc [hl] - ld a, (SFX_1f_64 - SFX_Headers_1f) / 3 + ld a, SFX_SLOTS_STOP_WHEEL jp PlaySound .skip ld a, [de] diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm index 3a4e2e4c..c5f72aee 100755 --- a/engine/titlescreen.asm +++ b/engine/titlescreen.asm @@ -157,7 +157,7 @@ ENDC ld d, a cp -3 jr nz, .skipPlayingSound - ld a, (SFX_1f_62 - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_CRASH call PlaySound .skipPlayingSound ld a, [hli] @@ -191,7 +191,7 @@ ENDC call LoadScreenTilesFromBuffer1 ld c, 36 call DelayFrames - ld a, (SFX_1f_63 - SFX_Headers_1f) / 3 + ld a, SFX_INTRO_WHOOSH call PlaySound ; scroll game version in from the right diff --git a/engine/town_map.asm b/engine/town_map.asm index 302efa0f..a90aa331 100755 --- a/engine/town_map.asm +++ b/engine/town_map.asm @@ -69,7 +69,7 @@ DisplayTownMap: ; 70e3e (1c:4e3e) ld b, a and A_BUTTON | B_BUTTON | D_UP | D_DOWN jr z, .inputLoop - ld a, (SFX_02_3c - SFX_Headers_02) / 3 + ld a, SFX_TINK call PlaySound bit 6, b jr nz, .pressedUp @@ -193,7 +193,7 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) jr z, .inputLoop bit 0, b jr nz, .pressedA - ld a, (SFX_02_3c - SFX_Headers_02) / 3 + ld a, SFX_TINK call PlaySound bit 6, b jr nz, .pressedUp @@ -201,7 +201,7 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) jr nz, .pressedDown jr .pressedB .pressedA - ld a, (SFX_02_3e - SFX_Headers_02) / 3 + ld a, SFX_HEAL_AILMENT call PlaySound ld a, [hl] ld [wDestinationMap], a diff --git a/engine/trade.asm b/engine/trade.asm index 531085b9..68baaa16 100755 --- a/engine/trade.asm +++ b/engine/trade.asm @@ -287,7 +287,7 @@ Trade_DrawOpenEndOfLinkCable: ; 41298 (10:5298) ld b, $7 ; open end of link cable tile ID list index call CopyTileIDsFromList_ZeroBaseTileID call Trade_CopyTileMapToVRAM - ld a, (SFX_02_3d - SFX_Headers_02) / 3 + ld a, SFX_HEAL_HP call PlaySound ld c, 20 .loop @@ -332,7 +332,7 @@ Trade_AnimateBallEnteringLinkCable: ; 412d2 (10:52d2) ld c, a cp $a0 jr nc, .ballSpriteReachedEdgeOfScreen - ld a, (SFX_02_3c - SFX_Headers_02) / 3 + ld a, SFX_TINK call PlaySound jr .moveBallInsideLinkCableLoop .ballSpriteReachedEdgeOfScreen diff --git a/home.asm b/home.asm index 1b910054..cb4f7ad2 100644 --- a/home.asm +++ b/home.asm @@ -1330,7 +1330,7 @@ AddAmountSoldToMoney:: ; 2b9e (0:2b9e) ld a,MONEY_BOX ld [wTextBoxID],a call DisplayTextBoxID ; redraw money text box - ld a, (SFX_02_5a - SFX_Headers_02) / 3 + ld a, SFX_PURCHASE call PlaySoundWaitForCurrent jp WaitForSoundToFinish @@ -3490,7 +3490,7 @@ ManualTextScroll:: ; 3898 (0:3898) cp LINK_STATE_BATTLING jr z, .inLinkBattle call WaitForTextScrollButtonPress - ld a, (SFX_02_40 - SFX_Headers_02) / 3 + ld a, SFX_PRESS_AB jp PlaySound .inLinkBattle ld c, 65 @@ -4016,7 +4016,7 @@ HandleMenuInputPokemonSelection:: ; 3ac2 (0:3ac2) bit 5,[hl] pop hl jr nz,.skipPlayingSound - ld a,(SFX_02_40 - SFX_Headers_02) / 3 + ld a,SFX_PRESS_AB call PlaySound .skipPlayingSound pop af diff --git a/home/overworld.asm b/home/overworld.asm index 0485335a..814e8c54 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -674,10 +674,10 @@ PlayMapChangeSound:: ; 08c9 (0:08c9) aCoord 8, 8 ; upper left tile of the 4x4 square the player's sprite is standing on cp a,$0b ; door tile in tileset 0 jr nz,.didNotGoThroughDoor - ld a,(SFX_02_57 - SFX_Headers_02) / 3 + ld a,SFX_GO_INSIDE jr .playSound .didNotGoThroughDoor - ld a,(SFX_02_5c - SFX_Headers_02) / 3 + ld a,SFX_GO_OUTSIDE .playSound call PlaySound ld a,[wMapPalOffset] @@ -1227,9 +1227,9 @@ CollisionCheckOnLand:: ; 0bd1 (0:0bd1) jr nc,.noCollision .collision ld a,[wc02a] - cp a,(SFX_02_5b - SFX_Headers_02) / 3 ; check if collision sound is already playing + cp a,SFX_COLLISION ; check if collision sound is already playing jr z,.setCarry - ld a,(SFX_02_5b - SFX_Headers_02) / 3 + ld a,SFX_COLLISION call PlaySound ; play collision sound (if it's not already playing) .setCarry scf @@ -1930,9 +1930,9 @@ CollisionCheckOnWater:: ; 0fb7 (0:0fb7) jr .loop .collision ld a,[wc02a] - cp a,(SFX_02_5b - SFX_Headers_02) / 3 ; check if collision sound is already playing + cp a,SFX_COLLISION ; check if collision sound is already playing jr z,.setCarry - ld a,(SFX_02_5b - SFX_Headers_02) / 3 + ld a,SFX_COLLISION call PlaySound ; play collision sound (if it's not already playing) .setCarry scf diff --git a/home/text.asm b/home/text.asm index 7eb5148b..89708306 100644 --- a/home/text.asm +++ b/home/text.asm @@ -626,13 +626,13 @@ TextCommand0B:: ; 1c31 (0:1c31) ; format: text command ID, sound ID or cry ID TextCommandSounds:: ; 1c64 (0:1c64) - db $0B,(SFX_02_3a - SFX_Headers_02) / 3 - db $12,(SFX_08_46 - SFX_Headers_08) / 3 - db $0E,(SFX_02_41 - SFX_Headers_02) / 3 - db $0F,(SFX_02_3a - SFX_Headers_02) / 3 - db $10,(SFX_02_3b - SFX_Headers_02) / 3 - db $11,(SFX_02_42 - SFX_Headers_02) / 3 - db $13,(SFX_08_45 - SFX_Headers_08) / 3 + db $0B,SFX_GET_ITEM_1 + db $12,SFX_BATTLE_06 + db $0E,SFX_POKEDEX_RATING + db $0F,SFX_GET_ITEM_1 + db $10,SFX_GET_ITEM_2 + db $11,SFX_GET_KEY_ITEM + db $13,SFX_BATTLE_05 db $14,NIDORINA ; used in OakSpeech db $15,PIDGEOT ; used in SaffronCityText12 db $16,DEWGONG ; unused? diff --git a/main.asm b/main.asm index 08747a5a..a81e7d98 100755 --- a/main.asm +++ b/main.asm @@ -1605,7 +1605,7 @@ DisplayTwoOptionMenu: ; 7559 (1:7559) pop af pop hl ld [wFlags_0xcd60], a - ld a, (SFX_02_40 - SFX_Headers_02) / 3 + ld a, SFX_PRESS_AB call PlaySound jr .pressedAButton .notNoYesMenu @@ -2631,7 +2631,7 @@ ApplyOutOfBattlePoisonDamage: ; c69c (3:469c) jr z, .skipPoisonEffectAndSound ld b, $2 predef ChangeBGPalColor0_4Frames ; change BG white to dark grey for 4 frames - ld a, (SFX_02_43 - SFX_Headers_02) / 3 + ld a, SFX_POISONED call PlaySound .skipPoisonEffectAndSound predef AnyPartyAlive @@ -3512,7 +3512,7 @@ TryPushingBoulder: ; f225 (3:7225) ld de, PushBoulderRightMovementData .done call MoveSprite - ld a, (SFX_02_53 - SFX_Headers_02) / 3 + ld a, SFX_PUSH_BOULDER call PlaySound ld hl, wFlags_0xcd60 set 1, [hl] @@ -3543,7 +3543,7 @@ DoBoulderDustAnimation: ; f2b5 (3:72b5) ld [H_SPRITEINDEX], a call GetSpriteMovementByte2Pointer ld [hl], $10 - ld a, (SFX_02_56 - SFX_Headers_02) / 3 + ld a, SFX_CUT jp PlaySound ResetBoulderPushFlags: ; f2dd (3:72dd) diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm index 519c0c67..53e55872 100755 --- a/scripts/celadongamecorner.asm +++ b/scripts/celadongamecorner.asm @@ -454,7 +454,7 @@ CeladonGameCornerText12: ; 48edd (12:4edd) ld hl, CeladonGameCornerText_48f09 call PrintText call WaitForSoundToFinish - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound call WaitForSoundToFinish ld hl, wd77e @@ -468,7 +468,7 @@ CeladonGameCornerText12: ; 48edd (12:4edd) CeladonGameCornerText_48f09: ; 48f09 (12:4f09) TX_FAR _CeladonGameCornerText_48f09 TX_ASM - ld a, (SFX_02_49 - SFX_Headers_02) / 3 + ld a, SFX_SWITCH call PlaySound call WaitForSoundToFinish jp TextScriptEnd diff --git a/scripts/cinnabargym.asm b/scripts/cinnabargym.asm index dbede0d3..9b308bd3 100755 --- a/scripts/cinnabargym.asm +++ b/scripts/cinnabargym.asm @@ -106,7 +106,7 @@ CinnabarGymScript2: ; 757f6 (1d:57f6) and a jr nz, .asm_7581b call WaitForSoundToFinish - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound call WaitForSoundToFinish .asm_7581b diff --git a/scripts/daycarem.asm b/scripts/daycarem.asm index 330f2234..a9798f19 100755 --- a/scripts/daycarem.asm +++ b/scripts/daycarem.asm @@ -156,7 +156,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1) ld de, wPlayerMoney + 2 ld c, $3 predef SubBCDPredef - ld a, (SFX_02_5a - SFX_Headers_02) / 3 + ld a, SFX_PURCHASE call PlaySoundWaitForCurrent ld a, MONEY_BOX ld [wTextBoxID], a diff --git a/scripts/lance.asm b/scripts/lance.asm index e335914b..f5095a69 100755 --- a/scripts/lance.asm +++ b/scripts/lance.asm @@ -75,7 +75,7 @@ LanceScript0: ; 5a305 (16:6305) ret nz ld hl, wd126 set 5, [hl] - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound jp LanceScript_5a2c4 diff --git a/scripts/mansion1.asm b/scripts/mansion1.asm index 6673e03b..a9e2616a 100755 --- a/scripts/mansion1.asm +++ b/scripts/mansion1.asm @@ -111,7 +111,7 @@ Mansion1Text4: ; 4435a (11:435a) set 5, [hl] ld hl, MansionSwitchPressedText call PrintText - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound ld hl, wd796 bit 0, [hl] diff --git a/scripts/mansion2.asm b/scripts/mansion2.asm index 27ccbdfb..1cacae02 100755 --- a/scripts/mansion2.asm +++ b/scripts/mansion2.asm @@ -117,7 +117,7 @@ Mansion2Text5: ; 52087 (14:6087) set 5, [hl] ld hl, Mansion2Text_520c7 call PrintText - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound ld hl, wd796 bit 0, [hl] diff --git a/scripts/museum1f.asm b/scripts/museum1f.asm index 38c3f717..f41f05ff 100755 --- a/scripts/museum1f.asm +++ b/scripts/museum1f.asm @@ -107,7 +107,7 @@ Museum1FText1: ; 5c135 (17:4135) ld a, MONEY_BOX ld [wTextBoxID], a call DisplayTextBoxID - ld a, (SFX_02_5a - SFX_Headers_02) / 3 + ld a, SFX_PURCHASE call PlaySoundWaitForCurrent call WaitForSoundToFinish jr .asm_0b094 diff --git a/scripts/rockethideout1.asm b/scripts/rockethideout1.asm index 967ab77b..b798744d 100755 --- a/scripts/rockethideout1.asm +++ b/scripts/rockethideout1.asm @@ -21,7 +21,7 @@ RocketHideout1Script_44be0: ; 44be0 (11:4be0) ld a, $54 jr .asm_44c03 .asm_44bf7 - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound ld hl, wd815 bit 7, [hl] diff --git a/scripts/rockethideout2.asm b/scripts/rockethideout2.asm index c2184bdb..ead69458 100755 --- a/scripts/rockethideout2.asm +++ b/scripts/rockethideout2.asm @@ -25,7 +25,7 @@ RocketHideout2Script0: ; 44e42 (11:4e42) ld hl, wd736 set 7, [hl] call StartSimulatingJoypadStates - ld a, (SFX_02_52 - SFX_Headers_02) / 3 + ld a, SFX_ARROW_TILES call PlaySound ld a, $ff ld [wJoyIgnore], a diff --git a/scripts/rockethideout3.asm b/scripts/rockethideout3.asm index b025acd0..2060c26c 100755 --- a/scripts/rockethideout3.asm +++ b/scripts/rockethideout3.asm @@ -25,7 +25,7 @@ RocketHideout3Script0: ; 45240 (11:5240) ld hl, wd736 set 7, [hl] call StartSimulatingJoypadStates - ld a, (SFX_02_52 - SFX_Headers_02) / 3 + ld a, SFX_ARROW_TILES call PlaySound ld a, $ff ld [wJoyIgnore], a diff --git a/scripts/rockethideout4.asm b/scripts/rockethideout4.asm index 635c6095..44536279 100755 --- a/scripts/rockethideout4.asm +++ b/scripts/rockethideout4.asm @@ -22,7 +22,7 @@ RocketHideout4Script_45473: ; 45473 (11:5473) ld a, $2d jr .asm_45498 .asm_4548c - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound ld hl, wd81b set 5, [hl] diff --git a/scripts/route22gate.asm b/scripts/route22gate.asm index 8b24c820..95546a99 100755 --- a/scripts/route22gate.asm +++ b/scripts/route22gate.asm @@ -77,7 +77,7 @@ Route22GateText1: ; 1e6e1 (7:66e1) Route22GateText_1e704: ; 1e704 (7:6704) TX_FAR _Route22GateText_1e704 TX_ASM - ld a, (SFX_02_51 - SFX_Headers_02) / 3 + ld a, SFX_DENIED call PlaySoundWaitForCurrent call WaitForSoundToFinish ld hl, Route22GateText_1e715 diff --git a/scripts/route23.asm b/scripts/route23.asm index eeaf2a2b..a258b88a 100755 --- a/scripts/route23.asm +++ b/scripts/route23.asm @@ -224,7 +224,7 @@ Route23Script_51388: ; 51388 (14:5388) VictoryRoadGuardText1: ; 5138e (14:538e) TX_FAR _VictoryRoadGuardText1 TX_ASM - ld a, (SFX_02_51 - SFX_Headers_02) / 3 + ld a, SFX_DENIED call PlaySoundWaitForCurrent call WaitForSoundToFinish jp TextScriptEnd diff --git a/scripts/vermiliondock.asm b/scripts/vermiliondock.asm index a8cf3b8d..c65c7aea 100755 --- a/scripts/vermiliondock.asm +++ b/scripts/vermiliondock.asm @@ -72,7 +72,7 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) ld b, [hl] push bc push hl - ld a, (SFX_02_54 - SFX_Headers_02) / 3 + ld a, SFX_SS_ANNE_HORN call PlaySoundWaitForCurrent ld a, $ff ld [wUpdateSpritesEnabled], a @@ -193,7 +193,7 @@ VermilionDock_1dc94: ; 1dc94 (7:5c94) ld [hli], a ld [hli], a ld [hl], a - ld a, (SFX_02_54 - SFX_Headers_02) / 3 + ld a, SFX_SS_ANNE_HORN call PlaySound ld c, 120 call DelayFrames diff --git a/scripts/vermiliongym.asm b/scripts/vermiliongym.asm index 193b3a06..614e0b4d 100755 --- a/scripts/vermiliongym.asm +++ b/scripts/vermiliongym.asm @@ -34,7 +34,7 @@ VermilionGymScript_5ca6d: ; 5ca6d (17:4a6d) ld a, $24 jr .asm_5ca7f .asm_5ca78 - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound ld a, $5 .asm_5ca7f diff --git a/scripts/viridiangym.asm b/scripts/viridiangym.asm index 9a0ce855..7a577095 100755 --- a/scripts/viridiangym.asm +++ b/scripts/viridiangym.asm @@ -41,7 +41,7 @@ ViridianGymScript0: ; 748eb (1d:48eb) call StartSimulatingJoypadStates ld hl, wd736 set 7, [hl] - ld a, (SFX_02_52 - SFX_Headers_02) / 3 + ld a, SFX_ARROW_TILES call PlaySound ld a, $ff ld [wJoyIgnore], a -- cgit v1.3.1-sl0p From 4d88812f40c4165e4b893a0631fa658e72d17874 Mon Sep 17 00:00:00 2001 From: dannye Date: Tue, 21 Jul 2015 20:58:19 -0500 Subject: Name some battle sound effects --- audio.asm | 6 +- constants/music_constants.asm | 324 +++++++++++++++++++-------------------- engine/HoF_room_pc.asm | 4 +- engine/battle/animations.asm | 346 +++++++++++++++++++++--------------------- engine/battle/common_text.asm | 2 +- engine/battle/core.asm | 10 +- engine/evos_moves.asm | 4 +- home.asm | 2 +- home/text.asm | 4 +- macros.asm | 16 +- 10 files changed, 360 insertions(+), 358 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/audio.asm b/audio.asm index 27570b93..563aee14 100644 --- a/audio.asm +++ b/audio.asm @@ -538,8 +538,10 @@ INCLUDE "audio/engine_2.asm" Music_PokeFluteInBattle:: ; 22306 (8:6306) - ld a, SFX_BATTLE_06 ; PokeFlute outside of battle + ; begin playing the "caught mon" sound effect + ld a, SFX_CAUGHT_MON call PlaySoundWaitForCurrent + ; then immediately overwrtie the channel pointers ld hl, wc00e ld de, SFX_08_PokeFlute_Ch1 call Music8_OverwriteChannelPointer @@ -586,7 +588,7 @@ PokedexRatingSfxPointers: ; 7d162 (1f:5162) db SFX_DENIED, BANK(SFX_1f_51) db SFX_POKEDEX_RATING, BANK(SFX_02_41) db SFX_GET_ITEM_1, BANK(SFX_02_3a) - db SFX_BATTLE_06, BANK(SFX_08_46) + db SFX_CAUGHT_MON, BANK(SFX_08_46) db SFX_LEVEL_UP, BANK(SFX_08_3a) db SFX_GET_KEY_ITEM, BANK(SFX_02_42) db SFX_GET_ITEM_2, BANK(SFX_02_3b) diff --git a/constants/music_constants.asm b/constants/music_constants.asm index 260ccd39..6812e312 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -56,175 +56,175 @@ ENDM music_const MUSIC_MEET_MALE_TRAINER, Music_MeetMaleTrainer ; AUDIO_1 AUDIO_2 AUDIO_3 - music_const SFX_SNARE_1, SFX_02_01 - music_const SFX_SNARE_2, SFX_02_02 - music_const SFX_SNARE_3, SFX_02_03 - music_const SFX_SNARE_4, SFX_02_04 - music_const SFX_SNARE_5, SFX_02_05 - music_const SFX_TRIANGLE_1, SFX_02_06 - music_const SFX_TRIANGLE_2, SFX_02_07 - music_const SFX_SNARE_6, SFX_02_08 - music_const SFX_SNARE_7, SFX_02_09 - music_const SFX_SNARE_8, SFX_02_0a - music_const SFX_SNARE_9, SFX_02_0b - music_const SFX_CYMBAL_1, SFX_02_0c - music_const SFX_CYMBAL_2, SFX_02_0d - music_const SFX_CYMBAL_3, SFX_02_0e - music_const SFX_MUTED_SNARE_1, SFX_02_0f - music_const SFX_TRIANGLE_3, SFX_02_10 - music_const SFX_MUTED_SNARE_2, SFX_02_11 - music_const SFX_MUTED_SNARE_3, SFX_02_12 - music_const SFX_MUTED_SNARE_4, SFX_02_13 - music_const SFX_CRY_00, SFX_02_14 - music_const SFX_CRY_01, SFX_02_15 - music_const SFX_CRY_02, SFX_02_16 - music_const SFX_CRY_03, SFX_02_17 - music_const SFX_CRY_04, SFX_02_18 - music_const SFX_CRY_05, SFX_02_19 - music_const SFX_CRY_06, SFX_02_1a - music_const SFX_CRY_07, SFX_02_1b - music_const SFX_CRY_08, SFX_02_1c - music_const SFX_CRY_09, SFX_02_1d - music_const SFX_CRY_0A, SFX_02_1e - music_const SFX_CRY_0B, SFX_02_1f - music_const SFX_CRY_0C, SFX_02_20 - music_const SFX_CRY_0D, SFX_02_21 - music_const SFX_CRY_0E, SFX_02_22 - music_const SFX_CRY_0F, SFX_02_23 - music_const SFX_CRY_10, SFX_02_24 - music_const SFX_CRY_11, SFX_02_25 - music_const SFX_CRY_12, SFX_02_26 - music_const SFX_CRY_13, SFX_02_27 - music_const SFX_CRY_14, SFX_02_28 - music_const SFX_CRY_15, SFX_02_29 - music_const SFX_CRY_16, SFX_02_2a - music_const SFX_CRY_17, SFX_02_2b - music_const SFX_CRY_18, SFX_02_2c - music_const SFX_CRY_19, SFX_02_2d - music_const SFX_CRY_1A, SFX_02_2e - music_const SFX_CRY_1B, SFX_02_2f - music_const SFX_CRY_1C, SFX_02_30 - music_const SFX_CRY_1D, SFX_02_31 - music_const SFX_CRY_1E, SFX_02_32 - music_const SFX_CRY_1F, SFX_02_33 - music_const SFX_CRY_20, SFX_02_34 - music_const SFX_CRY_21, SFX_02_35 - music_const SFX_CRY_22, SFX_02_36 - music_const SFX_CRY_23, SFX_02_37 - music_const SFX_CRY_24, SFX_02_38 - music_const SFX_CRY_25, SFX_02_39 + music_const SFX_SNARE_1, SFX_02_01 + music_const SFX_SNARE_2, SFX_02_02 + music_const SFX_SNARE_3, SFX_02_03 + music_const SFX_SNARE_4, SFX_02_04 + music_const SFX_SNARE_5, SFX_02_05 + music_const SFX_TRIANGLE_1, SFX_02_06 + music_const SFX_TRIANGLE_2, SFX_02_07 + music_const SFX_SNARE_6, SFX_02_08 + music_const SFX_SNARE_7, SFX_02_09 + music_const SFX_SNARE_8, SFX_02_0a + music_const SFX_SNARE_9, SFX_02_0b + music_const SFX_CYMBAL_1, SFX_02_0c + music_const SFX_CYMBAL_2, SFX_02_0d + music_const SFX_CYMBAL_3, SFX_02_0e + music_const SFX_MUTED_SNARE_1, SFX_02_0f + music_const SFX_TRIANGLE_3, SFX_02_10 + music_const SFX_MUTED_SNARE_2, SFX_02_11 + music_const SFX_MUTED_SNARE_3, SFX_02_12 + music_const SFX_MUTED_SNARE_4, SFX_02_13 + music_const SFX_CRY_00, SFX_02_14 + music_const SFX_CRY_01, SFX_02_15 + music_const SFX_CRY_02, SFX_02_16 + music_const SFX_CRY_03, SFX_02_17 + music_const SFX_CRY_04, SFX_02_18 + music_const SFX_CRY_05, SFX_02_19 + music_const SFX_CRY_06, SFX_02_1a + music_const SFX_CRY_07, SFX_02_1b + music_const SFX_CRY_08, SFX_02_1c + music_const SFX_CRY_09, SFX_02_1d + music_const SFX_CRY_0A, SFX_02_1e + music_const SFX_CRY_0B, SFX_02_1f + music_const SFX_CRY_0C, SFX_02_20 + music_const SFX_CRY_0D, SFX_02_21 + music_const SFX_CRY_0E, SFX_02_22 + music_const SFX_CRY_0F, SFX_02_23 + music_const SFX_CRY_10, SFX_02_24 + music_const SFX_CRY_11, SFX_02_25 + music_const SFX_CRY_12, SFX_02_26 + music_const SFX_CRY_13, SFX_02_27 + music_const SFX_CRY_14, SFX_02_28 + music_const SFX_CRY_15, SFX_02_29 + music_const SFX_CRY_16, SFX_02_2a + music_const SFX_CRY_17, SFX_02_2b + music_const SFX_CRY_18, SFX_02_2c + music_const SFX_CRY_19, SFX_02_2d + music_const SFX_CRY_1A, SFX_02_2e + music_const SFX_CRY_1B, SFX_02_2f + music_const SFX_CRY_1C, SFX_02_30 + music_const SFX_CRY_1D, SFX_02_31 + music_const SFX_CRY_1E, SFX_02_32 + music_const SFX_CRY_1F, SFX_02_33 + music_const SFX_CRY_20, SFX_02_34 + music_const SFX_CRY_21, SFX_02_35 + music_const SFX_CRY_22, SFX_02_36 + music_const SFX_CRY_23, SFX_02_37 + music_const SFX_CRY_24, SFX_02_38 + music_const SFX_CRY_25, SFX_02_39 - music_const SFX_GET_ITEM_2, SFX_02_3b - music_const SFX_TINK, SFX_02_3c - music_const SFX_HEAL_HP, SFX_02_3d - music_const SFX_HEAL_AILMENT, SFX_02_3e - music_const SFX_START_MENU, SFX_02_3f - music_const SFX_PRESS_AB, SFX_02_40 + music_const SFX_GET_ITEM_2, SFX_02_3b + music_const SFX_TINK, SFX_02_3c + music_const SFX_HEAL_HP, SFX_02_3d + music_const SFX_HEAL_AILMENT, SFX_02_3e + music_const SFX_START_MENU, SFX_02_3f + music_const SFX_PRESS_AB, SFX_02_40 ; AUDIO_1 AUDIO_3 - music_const SFX_GET_ITEM_1, SFX_02_3a + music_const SFX_GET_ITEM_1, SFX_02_3a - music_const SFX_POKEDEX_RATING, SFX_02_41 - music_const SFX_GET_KEY_ITEM, SFX_02_42 - music_const SFX_POISONED, SFX_02_43 - music_const SFX_TRADE_MACHINE, SFX_02_44 - music_const SFX_TURN_ON_PC, SFX_02_45 - music_const SFX_TURN_OFF_PC, SFX_02_46 - music_const SFX_ENTER_PC, SFX_02_47 - music_const SFX_SHRINK, SFX_02_48 - music_const SFX_SWITCH, SFX_02_49 - music_const SFX_HEALING_MACHINE, SFX_02_4a - music_const SFX_TELEPORT_1, SFX_02_4b - music_const SFX_TELEPORT_2, SFX_02_4c - music_const SFX_TELEPORT_3, SFX_02_4d - music_const SFX_LEDGE, SFX_02_4e - music_const SFX_FLY_1, SFX_02_4f - music_const SFX_FLY_2, SFX_02_50 - music_const SFX_DENIED, SFX_02_51 - music_const SFX_ARROW_TILES, SFX_02_52 - music_const SFX_PUSH_BOULDER, SFX_02_53 - music_const SFX_SS_ANNE_HORN, SFX_02_54 - music_const SFX_WITHDRAW_DEPOSIT, SFX_02_55 - music_const SFX_CUT, SFX_02_56 - music_const SFX_GO_INSIDE, SFX_02_57 - music_const SFX_SWAP, SFX_02_58 - music_const SFX_59, SFX_02_59 ; unused, sounds similar to SFX_SLOTS_STOP_WHEEL - music_const SFX_PURCHASE, SFX_02_5a - music_const SFX_COLLISION, SFX_02_5b - music_const SFX_GO_OUTSIDE, SFX_02_5c - music_const SFX_SAVE, SFX_02_5d + music_const SFX_POKEDEX_RATING, SFX_02_41 + music_const SFX_GET_KEY_ITEM, SFX_02_42 + music_const SFX_POISONED, SFX_02_43 + music_const SFX_TRADE_MACHINE, SFX_02_44 + music_const SFX_TURN_ON_PC, SFX_02_45 + music_const SFX_TURN_OFF_PC, SFX_02_46 + music_const SFX_ENTER_PC, SFX_02_47 + music_const SFX_SHRINK, SFX_02_48 + music_const SFX_SWITCH, SFX_02_49 + music_const SFX_HEALING_MACHINE, SFX_02_4a + music_const SFX_TELEPORT_1, SFX_02_4b + music_const SFX_TELEPORT_2, SFX_02_4c + music_const SFX_TELEPORT_3, SFX_02_4d + music_const SFX_LEDGE, SFX_02_4e + music_const SFX_FLY_1, SFX_02_4f + music_const SFX_FLY_2, SFX_02_50 + music_const SFX_DENIED, SFX_02_51 + music_const SFX_ARROW_TILES, SFX_02_52 + music_const SFX_PUSH_BOULDER, SFX_02_53 + music_const SFX_SS_ANNE_HORN, SFX_02_54 + music_const SFX_WITHDRAW_DEPOSIT, SFX_02_55 + music_const SFX_CUT, SFX_02_56 + music_const SFX_GO_INSIDE, SFX_02_57 + music_const SFX_SWAP, SFX_02_58 + music_const SFX_59, SFX_02_59 ; unused, sounds similar to SFX_SLOTS_STOP_WHEEL + music_const SFX_PURCHASE, SFX_02_5a + music_const SFX_COLLISION, SFX_02_5b + music_const SFX_GO_OUTSIDE, SFX_02_5c + music_const SFX_SAVE, SFX_02_5d ; AUDIO_1 - music_const SFX_POKEFLUE, SFX_02_5e - music_const SFX_SAFARI_ZONE_PA, SFX_02_5f + music_const SFX_POKEFLUE, SFX_02_5e + music_const SFX_SAFARI_ZONE_PA, SFX_02_5f ; AUDIO_2 - music_const SFX_LEVEL_UP, SFX_08_3a - - music_const SFX_BATTLE_01, SFX_08_41 - music_const SFX_BATTLE_02, SFX_08_42 - music_const SFX_BATTLE_03, SFX_08_43 - music_const SFX_BATTLE_04, SFX_08_44 - music_const SFX_BATTLE_05, SFX_08_45 - music_const SFX_BATTLE_06, SFX_08_46 - music_const SFX_BATTLE_07, SFX_08_47 - music_const SFX_BATTLE_08, SFX_08_48 - music_const SFX_BATTLE_09, SFX_08_49 - music_const SFX_BATTLE_0A, SFX_08_4a - music_const SFX_BATTLE_0B, SFX_08_4b - music_const SFX_BATTLE_0C, SFX_08_4c - music_const SFX_BATTLE_0D, SFX_08_4d - music_const SFX_BATTLE_0E, SFX_08_4e - music_const SFX_BATTLE_0F, SFX_08_4f - music_const SFX_BATTLE_10, SFX_08_50 - music_const SFX_BATTLE_11, SFX_08_51 - music_const SFX_BATTLE_12, SFX_08_52 - music_const SFX_BATTLE_13, SFX_08_53 - music_const SFX_BATTLE_14, SFX_08_54 - music_const SFX_BATTLE_15, SFX_08_55 - music_const SFX_BATTLE_16, SFX_08_56 ; unused? - music_const SFX_BATTLE_17, SFX_08_57 - music_const SFX_BATTLE_18, SFX_08_58 - music_const SFX_BATTLE_19, SFX_08_59 - music_const SFX_BATTLE_1A, SFX_08_5a - music_const SFX_BATTLE_1B, SFX_08_5b - music_const SFX_BATTLE_1C, SFX_08_5c - music_const SFX_BATTLE_1D, SFX_08_5d - music_const SFX_BATTLE_1E, SFX_08_5e - music_const SFX_BATTLE_1F, SFX_08_5f - music_const SFX_BATTLE_20, SFX_08_60 - music_const SFX_BATTLE_21, SFX_08_61 - music_const SFX_BATTLE_22, SFX_08_62 - music_const SFX_BATTLE_23, SFX_08_63 - music_const SFX_BATTLE_24, SFX_08_64 - music_const SFX_BATTLE_25, SFX_08_65 - music_const SFX_BATTLE_26, SFX_08_66 - music_const SFX_BATTLE_27, SFX_08_67 - music_const SFX_BATTLE_28, SFX_08_68 - music_const SFX_BATTLE_29, SFX_08_69 - music_const SFX_BATTLE_2A, SFX_08_6a - music_const SFX_BATTLE_2B, SFX_08_6b - music_const SFX_BATTLE_2C, SFX_08_6c - music_const SFX_BATTLE_2D, SFX_08_6d - music_const SFX_BATTLE_2E, SFX_08_6e - music_const SFX_BATTLE_2F, SFX_08_6f - music_const SFX_BATTLE_30, SFX_08_70 - music_const SFX_BATTLE_31, SFX_08_71 - music_const SFX_BATTLE_32, SFX_08_72 - music_const SFX_BATTLE_33, SFX_08_73 - music_const SFX_BATTLE_34, SFX_08_74 - music_const SFX_BATTLE_35, SFX_08_75 - music_const SFX_BATTLE_36, SFX_08_76 - music_const SFX_BATTLE_37, SFX_08_77 + music_const SFX_LEVEL_UP, SFX_08_3a + + music_const SFX_BALL_TOSS, SFX_08_41 + music_const SFX_BALL_POOF, SFX_08_42 + music_const SFX_FAINT_THUD, SFX_08_43 + music_const SFX_RUN, SFX_08_44 + music_const SFX_DEX_PAGE_ADDED, SFX_08_45 + music_const SFX_CAUGHT_MON, SFX_08_46 + music_const SFX_PECK, SFX_08_47 + music_const SFX_FAINT_FALL, SFX_08_48 + music_const SFX_BATTLE_09, SFX_08_49 + music_const SFX_POUND, SFX_08_4a + music_const SFX_BATTLE_0B, SFX_08_4b + music_const SFX_BATTLE_0C, SFX_08_4c + music_const SFX_BATTLE_0D, SFX_08_4d + music_const SFX_BATTLE_0E, SFX_08_4e + music_const SFX_BATTLE_0F, SFX_08_4f + music_const SFX_DAMAGE, SFX_08_50 + music_const SFX_NOT_VERY_EFFECTIVE, SFX_08_51 + music_const SFX_BATTLE_12, SFX_08_52 + music_const SFX_BATTLE_13, SFX_08_53 + music_const SFX_BATTLE_14, SFX_08_54 + music_const SFX_VINE_WHIP, SFX_08_55 + music_const SFX_BATTLE_16, SFX_08_56 ; unused? + music_const SFX_BATTLE_17, SFX_08_57 + music_const SFX_BATTLE_18, SFX_08_58 + music_const SFX_BATTLE_19, SFX_08_59 + music_const SFX_SUPER_EFFECTIVE, SFX_08_5a + music_const SFX_BATTLE_1B, SFX_08_5b + music_const SFX_BATTLE_1C, SFX_08_5c + music_const SFX_DOUBLESLAP, SFX_08_5d + music_const SFX_BATTLE_1E, SFX_08_5e + music_const SFX_HORN_DRILL, SFX_08_5f + music_const SFX_BATTLE_20, SFX_08_60 + music_const SFX_BATTLE_21, SFX_08_61 + music_const SFX_BATTLE_22, SFX_08_62 + music_const SFX_BATTLE_23, SFX_08_63 + music_const SFX_BATTLE_24, SFX_08_64 + music_const SFX_BATTLE_25, SFX_08_65 + music_const SFX_BATTLE_26, SFX_08_66 + music_const SFX_BATTLE_27, SFX_08_67 + music_const SFX_BATTLE_28, SFX_08_68 + music_const SFX_BATTLE_29, SFX_08_69 + music_const SFX_BATTLE_2A, SFX_08_6a + music_const SFX_BATTLE_2B, SFX_08_6b + music_const SFX_BATTLE_2C, SFX_08_6c + music_const SFX_PSYBEAM, SFX_08_6d + music_const SFX_BATTLE_2E, SFX_08_6e + music_const SFX_BATTLE_2F, SFX_08_6f + music_const SFX_PSYCHIC_M, SFX_08_70 + music_const SFX_BATTLE_31, SFX_08_71 + music_const SFX_BATTLE_32, SFX_08_72 + music_const SFX_BATTLE_33, SFX_08_73 + music_const SFX_BATTLE_34, SFX_08_74 + music_const SFX_BATTLE_35, SFX_08_75 + music_const SFX_BATTLE_36, SFX_08_76 + music_const SFX_SILPH_SCOPE, SFX_08_77 ; AUDIO_3 - music_const SFX_INTRO_LUNGE, SFX_1f_5e - music_const SFX_INTRO_HIP, SFX_1f_5f - music_const SFX_INTRO_HOP, SFX_1f_60 - music_const SFX_INTRO_RAISE, SFX_1f_61 - music_const SFX_INTRO_CRASH, SFX_1f_62 - music_const SFX_INTRO_WHOOSH, SFX_1f_63 - music_const SFX_SLOTS_STOP_WHEEL, SFX_1f_64 - music_const SFX_SLOTS_REWARD, SFX_1f_65 - music_const SFX_SLOTS_NEW_SPIN, SFX_1f_66 - music_const SFX_SHOOTING_STAR, SFX_1f_67 + music_const SFX_INTRO_LUNGE, SFX_1f_5e + music_const SFX_INTRO_HIP, SFX_1f_5f + music_const SFX_INTRO_HOP, SFX_1f_60 + music_const SFX_INTRO_RAISE, SFX_1f_61 + music_const SFX_INTRO_CRASH, SFX_1f_62 + music_const SFX_INTRO_WHOOSH, SFX_1f_63 + music_const SFX_SLOTS_STOP_WHEEL, SFX_1f_64 + music_const SFX_SLOTS_REWARD, SFX_1f_65 + music_const SFX_SLOTS_NEW_SPIN, SFX_1f_66 + music_const SFX_SHOOTING_STAR, SFX_1f_67 diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index 5e3ff37b..104d32ff 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -76,7 +76,7 @@ DisplayCreditsMon: ; 740cb (1d:40cb) ld hl,vBGMap1 call CopyTileMapToVRAM call FillMiddleOfScreenWithWhite - ld a,%11111100 ; make the mon a black silhouette + ld a,%11111100 ; make the mon a black silhouette ld [rBGP],a ; scroll the mon left by one tile 7 times @@ -88,7 +88,7 @@ DisplayCreditsMon: ; 740cb (1d:40cb) ; scroll the mon left by one tile 20 times ; This time, we have to move the window left too in order to hide the text that -; is wrapping around to the right side of the screen. +; is wrapping around to the right side of the screen. ld c,20 .scrollLoop2 call ScrollCreditsMonLeft diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index d9406257..73d152b8 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -741,7 +741,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) cp a,11 ; is it the beginning of the subanimation? jr nz,.skipPlayingSound ; if it is the beginning of the subanimation, play a sound - ld a,SFX_BATTLE_01 + ld a,SFX_BALL_TOSS call PlaySound .skipPlayingSound ld a,[W_ISINBATTLE] @@ -820,7 +820,7 @@ DoPoofSpecialEffects: ; 78fce (1e:4fce) ld a,[W_SUBANIMCOUNTER] cp a,5 ret nz - ld a,SFX_BATTLE_02 + ld a,SFX_BALL_POOF jp PlaySound DoRockSlideSpecialEffects: ; 78fd9 (1e:4fd9) @@ -2274,7 +2274,7 @@ GetMoveSoundB: ; 79869 (1e:5869) ld b, a ret -; get the sound of the move id in a +; get the sound of the (move id - 1) in a GetMoveSound: ; 7986f (1e:586f) ld hl,MoveSoundTable ld e,a @@ -2329,172 +2329,172 @@ IsCryMove: ; 798ad (1e:58ad) ret MoveSoundTable: ; 798bc (1e:58bc) - db SFX_BATTLE_0A,$00,$80 - db SFX_BATTLE_0C,$10,$80 - db SFX_BATTLE_1D,$00,$80 - db SFX_BATTLE_0B,$01,$80 - db SFX_BATTLE_0D,$00,$40 - db SFX_BATTLE_37,$00,$ff - db SFX_BATTLE_0D,$10,$60 - db SFX_BATTLE_0D,$20,$80 - db SFX_BATTLE_0D,$00,$a0 - db SFX_BATTLE_10,$00,$80 - db SFX_BATTLE_0F,$20,$40 - db SFX_BATTLE_0F,$00,$80 - db SFX_BATTLE_0E,$00,$a0 - db SFX_BATTLE_11,$10,$c0 - db SFX_BATTLE_11,$00,$a0 - db SFX_BATTLE_12,$00,$c0 - db SFX_BATTLE_12,$10,$a0 - db SFX_BATTLE_13,$00,$e0 - db SFX_BATTLE_11,$20,$c0 - db SFX_BATTLE_14,$00,$80 - db SFX_BATTLE_22,$00,$80 - db SFX_BATTLE_15,$01,$80 - db SFX_BATTLE_20,$00,$80 - db SFX_BATTLE_17,$f0,$40 - db SFX_BATTLE_1A,$00,$80 - db SFX_BATTLE_17,$00,$80 - db SFX_BATTLE_21,$10,$80 - db SFX_BATTLE_1B,$01,$a0 - db SFX_BATTLE_18,$00,$80 - db SFX_BATTLE_1E,$00,$60 - db SFX_BATTLE_1E,$01,$40 - db SFX_BATTLE_1F,$00,$a0 - db SFX_BATTLE_1A,$10,$a0 - db SFX_BATTLE_20,$00,$c0 - db SFX_BATTLE_14,$10,$60 - db SFX_BATTLE_1A,$00,$a0 - db SFX_BATTLE_22,$11,$c0 - db SFX_BATTLE_1A,$20,$c0 - db SFX_BATTLE_21,$00,$80 - db SFX_BATTLE_1B,$00,$80 - db SFX_BATTLE_1B,$20,$c0 - db SFX_BATTLE_19,$00,$80 - db SFX_BATTLE_31,$ff,$40 - db SFX_BATTLE_1E,$00,$80 - db SFX_BATTLE_0B,$00,$c0 - db SFX_BATTLE_0B,$00,$40 - db SFX_BATTLE_35,$00,$80 - db SFX_BATTLE_27,$40,$60 - db SFX_BATTLE_27,$00,$80 - db SFX_BATTLE_27,$ff,$40 - db SFX_BATTLE_2A,$80,$c0 - db SFX_BATTLE_19,$10,$a0 - db SFX_BATTLE_19,$21,$e0 - db SFX_BATTLE_29,$00,$80 - db SFX_BATTLE_24,$20,$60 - db SFX_BATTLE_2A,$00,$80 - db SFX_BATTLE_2C,$00,$80 - db SFX_BATTLE_28,$40,$80 - db SFX_BATTLE_29,$f0,$e0 - db SFX_BATTLE_2D,$00,$80 - db SFX_BATTLE_2A,$f0,$60 - db SFX_BATTLE_28,$00,$80 - db SFX_BATTLE_36,$00,$80 - db SFX_BATTLE_07,$01,$a0 - db SFX_BATTLE_13,$f0,$20 - db SFX_BATTLE_23,$01,$c0 - db SFX_BATTLE_23,$00,$80 - db SFX_BATTLE_1A,$00,$e0 - db SFX_BATTLE_26,$01,$60 - db SFX_BATTLE_26,$20,$40 - db SFX_BATTLE_24,$00,$80 - db SFX_BATTLE_24,$40,$c0 - db SFX_BATTLE_1B,$03,$60 - db SFX_BATTLE_25,$11,$e0 - db SFX_BATTLE_12,$20,$e0 - db SFX_BATTLE_2E,$00,$80 - db SFX_BATTLE_1C,$00,$80 - db SFX_BATTLE_1C,$11,$a0 - db SFX_BATTLE_1C,$01,$c0 - db SFX_BATTLE_13,$14,$c0 - db SFX_BATTLE_1B,$02,$a0 - db SFX_BATTLE_29,$f0,$80 - db SFX_BATTLE_29,$20,$c0 - db SFX_BATTLE_2F,$00,$20 - db SFX_BATTLE_2F,$20,$80 - db SFX_BATTLE_2E,$12,$60 - db SFX_BATTLE_26,$00,$80 - db SFX_BATTLE_14,$01,$e0 - db SFX_BATTLE_29,$0f,$e0 - db SFX_BATTLE_29,$11,$20 - db SFX_BATTLE_10,$10,$40 - db SFX_BATTLE_0F,$10,$c0 - db SFX_BATTLE_14,$00,$20 - db SFX_BATTLE_30,$00,$80 - db SFX_BATTLE_35,$11,$18 - db SFX_BATTLE_09,$20,$c0 - db SFX_BATTLE_08,$20,$c0 - db SFX_BATTLE_25,$00,$10 - db SFX_BATTLE_26,$f0,$20 - db SFX_BATTLE_33,$f0,$c0 - db SFX_BATTLE_11,$f0,$e0 - db SFX_BATTLE_09,$f0,$40 - db SFX_BATTLE_31,$00,$80 - db SFX_BATTLE_33,$80,$40 - db SFX_BATTLE_33,$00,$80 - db SFX_BATTLE_14,$11,$20 - db SFX_BATTLE_14,$22,$10 - db SFX_BATTLE_1B,$f1,$ff - db SFX_BATTLE_13,$f1,$ff - db SFX_BATTLE_14,$33,$30 - db SFX_BATTLE_32,$40,$c0 - db SFX_BATTLE_0E,$20,$20 - db SFX_BATTLE_0E,$f0,$10 - db SFX_BATTLE_0F,$f8,$10 - db SFX_BATTLE_11,$f0,$10 - db SFX_BATTLE_25,$00,$80 - db SFX_BATTLE_18,$00,$c0 - db SFX_BATTLE_32,$c0,$ff - db SFX_BATTLE_09,$f2,$20 - db SFX_BATTLE_34,$00,$80 - db SFX_BATTLE_34,$00,$40 - db SFX_BATTLE_09,$00,$40 - db SFX_BATTLE_11,$10,$ff - db SFX_BATTLE_2A,$20,$20 - db SFX_BATTLE_32,$00,$80 - db SFX_BATTLE_29,$1f,$20 - db SFX_BATTLE_25,$2f,$80 - db SFX_BATTLE_0F,$1f,$ff - db SFX_BATTLE_2B,$1f,$60 - db SFX_BATTLE_26,$1e,$20 - db SFX_BATTLE_26,$1f,$18 - db SFX_BATTLE_14,$0f,$80 - db SFX_BATTLE_09,$f8,$10 - db SFX_BATTLE_08,$18,$20 - db SFX_BATTLE_32,$08,$40 - db SFX_BATTLE_17,$01,$e0 - db SFX_BATTLE_11,$09,$ff - db SFX_BATTLE_35,$42,$01 - db SFX_BATTLE_1C,$00,$ff - db SFX_BATTLE_32,$08,$e0 - db SFX_BATTLE_24,$00,$80 - db SFX_BATTLE_09,$88,$10 - db SFX_BATTLE_25,$48,$ff - db SFX_BATTLE_08,$ff,$ff - db SFX_BATTLE_24,$ff,$10 - db SFX_BATTLE_08,$ff,$04 - db SFX_BATTLE_1C,$01,$ff - db SFX_BATTLE_13,$f8,$ff - db SFX_BATTLE_0C,$f0,$f0 - db SFX_BATTLE_0F,$08,$10 - db SFX_BATTLE_0D,$f0,$ff - db SFX_BATTLE_1A,$f0,$ff - db SFX_BATTLE_34,$10,$ff - db SFX_BATTLE_0E,$f0,$20 - db SFX_BATTLE_2B,$f0,$60 - db SFX_BATTLE_21,$12,$10 - db SFX_BATTLE_36,$f0,$20 - db SFX_BATTLE_1E,$12,$ff - db SFX_BATTLE_31,$80,$04 - db SFX_BATTLE_33,$f0,$10 - db SFX_BATTLE_29,$f8,$ff - db SFX_BATTLE_26,$f0,$ff - db SFX_BATTLE_11,$01,$ff - db SFX_BATTLE_2C,$d8,$04 - db SFX_BATTLE_0B,$00,$80 - db SFX_BATTLE_0B,$00,$80 + db SFX_POUND, $00,$80 ; POUND + db SFX_BATTLE_0C, $10,$80 ; KARATE_CHOP + db SFX_DOUBLESLAP, $00,$80 ; DOUBLESLAP + db SFX_BATTLE_0B, $01,$80 ; COMET_PUNCH + db SFX_BATTLE_0D, $00,$40 ; MEGA_PUNCH + db SFX_SILPH_SCOPE, $00,$ff ; PAY_DAY + db SFX_BATTLE_0D, $10,$60 ; FIRE_PUNCH + db SFX_BATTLE_0D, $20,$80 ; ICE_PUNCH + db SFX_BATTLE_0D, $00,$a0 ; THUNDERPUNCH + db SFX_DAMAGE, $00,$80 ; SCRATCH + db SFX_BATTLE_0F, $20,$40 ; VICEGRIP + db SFX_BATTLE_0F, $00,$80 ; GUILLOTINE + db SFX_BATTLE_0E, $00,$a0 ; RAZOR_WIND + db SFX_NOT_VERY_EFFECTIVE,$10,$c0 ; SWORDS_DANCE + db SFX_NOT_VERY_EFFECTIVE,$00,$a0 ; CUT + db SFX_BATTLE_12, $00,$c0 ; GUST + db SFX_BATTLE_12, $10,$a0 ; WING_ATTACK + db SFX_BATTLE_13, $00,$e0 ; WHIRLWIND + db SFX_NOT_VERY_EFFECTIVE,$20,$c0 ; FLY + db SFX_BATTLE_14, $00,$80 ; BIND + db SFX_BATTLE_22, $00,$80 ; SLAM + db SFX_VINE_WHIP, $01,$80 ; VINE_WHIP + db SFX_BATTLE_20, $00,$80 ; STOMP + db SFX_BATTLE_17, $f0,$40 ; DOUBLE_KICK + db SFX_SUPER_EFFECTIVE, $00,$80 ; MEGA_KICK + db SFX_BATTLE_17, $00,$80 ; JUMP_KICK + db SFX_BATTLE_21, $10,$80 ; ROLLING_KICK + db SFX_BATTLE_1B, $01,$a0 ; SAND_ATTACK + db SFX_BATTLE_18, $00,$80 ; HEADBUTT + db SFX_BATTLE_1E, $00,$60 ; HORN_ATTACK + db SFX_BATTLE_1E, $01,$40 ; FURY_ATTACK + db SFX_HORN_DRILL, $00,$a0 ; HORN_DRILL + db SFX_SUPER_EFFECTIVE, $10,$a0 ; TACKLE + db SFX_BATTLE_20, $00,$c0 ; BODY_SLAM + db SFX_BATTLE_14, $10,$60 ; WRAP + db SFX_SUPER_EFFECTIVE, $00,$a0 ; TAKE_DOWN + db SFX_BATTLE_22, $11,$c0 ; THRASH + db SFX_SUPER_EFFECTIVE, $20,$c0 ; DOUBLE_EDGE + db SFX_BATTLE_21, $00,$80 ; TAIL_WHIP + db SFX_BATTLE_1B, $00,$80 ; POISON_STING + db SFX_BATTLE_1B, $20,$c0 ; TWINEEDLE + db SFX_BATTLE_19, $00,$80 ; PIN_MISSILE + db SFX_BATTLE_31, $ff,$40 ; LEER + db SFX_BATTLE_1E, $00,$80 ; BITE + db SFX_BATTLE_0B, $00,$c0 ; GROWL + db SFX_BATTLE_0B, $00,$40 ; ROAR + db SFX_BATTLE_35, $00,$80 ; SING + db SFX_BATTLE_27, $40,$60 ; SUPERSONIC + db SFX_BATTLE_27, $00,$80 ; SONICBOOM + db SFX_BATTLE_27, $ff,$40 ; DISABLE + db SFX_BATTLE_2A, $80,$c0 ; ACID + db SFX_BATTLE_19, $10,$a0 ; EMBER + db SFX_BATTLE_19, $21,$e0 ; FLAMETHROWER + db SFX_BATTLE_29, $00,$80 ; MIST + db SFX_BATTLE_24, $20,$60 ; WATER_GUN + db SFX_BATTLE_2A, $00,$80 ; HYDRO_PUMP + db SFX_BATTLE_2C, $00,$80 ; SURF + db SFX_BATTLE_28, $40,$80 ; ICE_BEAM + db SFX_BATTLE_29, $f0,$e0 ; BLIZZARD + db SFX_PSYBEAM, $00,$80 ; PSYBEAM + db SFX_BATTLE_2A, $f0,$60 ; BUBBLEBEAM + db SFX_BATTLE_28, $00,$80 ; AURORA_BEAM + db SFX_BATTLE_36, $00,$80 ; HYPER_BEAM + db SFX_PECK,$01, $a0 ; PECK + db SFX_BATTLE_13, $f0,$20 ; DRILL_PECK + db SFX_BATTLE_23, $01,$c0 ; SUBMISSION + db SFX_BATTLE_23, $00,$80 ; LOW_KICK + db SFX_SUPER_EFFECTIVE, $00,$e0 ; COUNTER + db SFX_BATTLE_26, $01,$60 ; SEISMIC_TOSS + db SFX_BATTLE_26, $20,$40 ; STRENGTH + db SFX_BATTLE_24, $00,$80 ; ABSORB + db SFX_BATTLE_24, $40,$c0 ; MEGA_DRAIN + db SFX_BATTLE_1B, $03,$60 ; LEECH_SEED + db SFX_BATTLE_25, $11,$e0 ; GROWTH + db SFX_BATTLE_12, $20,$e0 ; RAZOR_LEAF + db SFX_BATTLE_2E, $00,$80 ; SOLARBEAM + db SFX_BATTLE_1C, $00,$80 ; POISONPOWDER + db SFX_BATTLE_1C, $11,$a0 ; STUN_SPORE + db SFX_BATTLE_1C, $01,$c0 ; SLEEP_POWDER + db SFX_BATTLE_13, $14,$c0 ; PETAL_DANCE + db SFX_BATTLE_1B, $02,$a0 ; STRING_SHOT + db SFX_BATTLE_29, $f0,$80 ; DRAGON_RAGE + db SFX_BATTLE_29, $20,$c0 ; FIRE_SPIN + db SFX_BATTLE_2F, $00,$20 ; THUNDERSHOCK + db SFX_BATTLE_2F, $20,$80 ; THUNDERBOLT + db SFX_BATTLE_2E, $12,$60 ; THUNDER_WAVE + db SFX_BATTLE_26, $00,$80 ; THUNDER + db SFX_BATTLE_14, $01,$e0 ; ROCK_THROW + db SFX_BATTLE_29, $0f,$e0 ; EARTHQUAKE + db SFX_BATTLE_29, $11,$20 ; FISSURE + db SFX_DAMAGE, $10,$40 ; DIG + db SFX_BATTLE_0F, $10,$c0 ; TOXIC + db SFX_BATTLE_14, $00,$20 ; CONFUSION + db SFX_PSYCHIC_M, $00,$80 ; PSYCHIC_M + db SFX_BATTLE_35, $11,$18 ; HYPNOSIS + db SFX_BATTLE_09, $20,$c0 ; MEDITATE + db SFX_FAINT_FALL, $20,$c0 ; AGILITY + db SFX_BATTLE_25, $00,$10 ; QUICK_ATTACK + db SFX_BATTLE_26, $f0,$20 ; RAGE + db SFX_BATTLE_33, $f0,$c0 ; TELEPORT + db SFX_NOT_VERY_EFFECTIVE,$f0,$e0 ; NIGHT_SHADE + db SFX_BATTLE_09, $f0,$40 ; MIMIC + db SFX_BATTLE_31, $00,$80 ; SCREECH + db SFX_BATTLE_33, $80,$40 ; DOUBLE_TEAM + db SFX_BATTLE_33, $00,$80 ; RECOVER + db SFX_BATTLE_14, $11,$20 ; HARDEN + db SFX_BATTLE_14, $22,$10 ; MINIMIZE + db SFX_BATTLE_1B, $f1,$ff ; SMOKESCREEN + db SFX_BATTLE_13, $f1,$ff ; CONFUSE_RAY + db SFX_BATTLE_14, $33,$30 ; WITHDRAW + db SFX_BATTLE_32, $40,$c0 ; DEFENSE_CURL + db SFX_BATTLE_0E, $20,$20 ; BARRIER + db SFX_BATTLE_0E, $f0,$10 ; LIGHT_SCREEN + db SFX_BATTLE_0F, $f8,$10 ; HAZE + db SFX_NOT_VERY_EFFECTIVE,$f0,$10 ; REFLECT + db SFX_BATTLE_25, $00,$80 ; FOCUS_ENERGY + db SFX_BATTLE_18, $00,$c0 ; BIDE + db SFX_BATTLE_32, $c0,$ff ; METRONOME + db SFX_BATTLE_09, $f2,$20 ; MIRROR_MOVE + db SFX_BATTLE_34, $00,$80 ; SELFDESTRUCT + db SFX_BATTLE_34, $00,$40 ; EGG_BOMB + db SFX_BATTLE_09, $00,$40 ; LICK + db SFX_NOT_VERY_EFFECTIVE,$10,$ff ; SMOG + db SFX_BATTLE_2A, $20,$20 ; SLUDGE + db SFX_BATTLE_32, $00,$80 ; BONE_CLUB + db SFX_BATTLE_29, $1f,$20 ; FIRE_BLAST + db SFX_BATTLE_25, $2f,$80 ; WATERFALL + db SFX_BATTLE_0F, $1f,$ff ; CLAMP + db SFX_BATTLE_2B, $1f,$60 ; SWIFT + db SFX_BATTLE_26, $1e,$20 ; SKULL_BASH + db SFX_BATTLE_26, $1f,$18 ; SPIKE_CANNON + db SFX_BATTLE_14, $0f,$80 ; CONSTRICT + db SFX_BATTLE_09, $f8,$10 ; AMNESIA + db SFX_FAINT_FALL, $18,$20 ; KINESIS + db SFX_BATTLE_32, $08,$40 ; SOFTBOILED + db SFX_BATTLE_17, $01,$e0 ; HI_JUMP_KICK + db SFX_NOT_VERY_EFFECTIVE,$09,$ff ; GLARE + db SFX_BATTLE_35, $42,$01 ; DREAM_EATER + db SFX_BATTLE_1C, $00,$ff ; POISON_GAS + db SFX_BATTLE_32, $08,$e0 ; BARRAGE + db SFX_BATTLE_24, $00,$80 ; LEECH_LIFE + db SFX_BATTLE_09, $88,$10 ; LOVELY_KISS + db SFX_BATTLE_25, $48,$ff ; SKY_ATTACK + db SFX_FAINT_FALL, $ff,$ff ; TRANSFORM + db SFX_BATTLE_24, $ff,$10 ; BUBBLE + db SFX_FAINT_FALL, $ff,$04 ; DIZZY_PUNCH + db SFX_BATTLE_1C, $01,$ff ; SPORE + db SFX_BATTLE_13, $f8,$ff ; FLASH + db SFX_BATTLE_0C, $f0,$f0 ; PSYWAVE + db SFX_BATTLE_0F, $08,$10 ; SPLASH + db SFX_BATTLE_0D, $f0,$ff ; ACID_ARMOR + db SFX_SUPER_EFFECTIVE, $f0,$ff ; CRABHAMMER + db SFX_BATTLE_34, $10,$ff ; EXPLOSION + db SFX_BATTLE_0E, $f0,$20 ; FURY_SWIPES + db SFX_BATTLE_2B, $f0,$60 ; BONEMERANG + db SFX_BATTLE_21, $12,$10 ; REST + db SFX_BATTLE_36, $f0,$20 ; ROCK_SLIDE + db SFX_BATTLE_1E, $12,$ff ; HYPER_FANG + db SFX_BATTLE_31, $80,$04 ; SHARPEN + db SFX_BATTLE_33, $f0,$10 ; CONVERSION + db SFX_BATTLE_29, $f8,$ff ; TRI_ATTACK + db SFX_BATTLE_26, $f0,$ff ; SUPER_FANG + db SFX_NOT_VERY_EFFECTIVE,$01,$ff ; SLASH + db SFX_BATTLE_2C, $d8,$04 ; SUBSTITUTE + db SFX_BATTLE_0B, $00,$80 ; STRUGGLE + db SFX_BATTLE_0B, $00,$80 CopyPicTiles: ; 79aae (1e:5aae) ld a, [H_WHOSETURN] @@ -2929,7 +2929,7 @@ TossBallAnimation: ; 79e16 (1e:5e16) ld a,TOSS_ANIM ld [W_ANIMATIONID],a call PlayAnimation - ld a,SFX_BATTLE_03 + ld a,SFX_FAINT_THUD call PlaySound ld a,BLOCKBALL_ANIM ld [W_ANIMATIONID],a @@ -2945,15 +2945,15 @@ PlayApplyingAttackSound: ; 79e6a (1e:5e6a) cp $a ld a, $20 ld b, $30 - ld c, SFX_BATTLE_10 + ld c, SFX_DAMAGE jr z, .asm_79e8b ld a, $e0 ld b, $ff - ld c, SFX_BATTLE_1A + ld c, SFX_SUPER_EFFECTIVE jr nc, .asm_79e8b ld a, $50 ld b, $1 - ld c, SFX_BATTLE_11 + ld c, SFX_NOT_VERY_EFFECTIVE .asm_79e8b ld [wc0f1], a ld a, b diff --git a/engine/battle/common_text.asm b/engine/battle/common_text.asm index 41e402f3..1acef280 100644 --- a/engine/battle/common_text.asm +++ b/engine/battle/common_text.asm @@ -64,7 +64,7 @@ PrintBeginningBattleText: ; 58d99 (16:4d99) ld [wc0f1], a ld a, $80 ld [wc0f2], a - ld a, SFX_BATTLE_37 + ld a, SFX_SILPH_SCOPE call PlaySound jp WaitForSoundToFinish .done diff --git a/engine/battle/core.asm b/engine/battle/core.asm index a74e0a27..4c29e003 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -353,7 +353,7 @@ EnemyRan: ; 3c202 (f:4202) ld hl, EnemyRanText .printText call PrintText - ld a, SFX_BATTLE_04 + ld a, SFX_RUN call PlaySoundWaitForCurrent xor a ld [H_WHOSETURN], a @@ -860,13 +860,13 @@ FaintEnemyPokemon: ; 0x3c567 xor a ld [wc0f1], a ld [wc0f2], a - ld a, SFX_BATTLE_08 ; SFX_FALL? + ld a, SFX_FAINT_FALL call PlaySoundWaitForCurrent .sfxwait ld a, [wc02a] - cp SFX_BATTLE_08 + cp SFX_FAINT_FALL jr z, .sfxwait - ld a, SFX_BATTLE_03 ; SFX_DROP + ld a, SFX_FAINT_THUD call PlaySound call WaitForSoundToFinish jr .sfxplayed @@ -1672,7 +1672,7 @@ TryRunningFromBattle: ; 3cab9 (f:4ab9) dec a .playSound ld [wBattleResult], a - ld a, SFX_BATTLE_04 + ld a, SFX_RUN call PlaySoundWaitForCurrent ld hl, GotAwayText call PrintText diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm index 2c668d63..b9b4bb0f 100755 --- a/engine/evos_moves.asm +++ b/engine/evos_moves.asm @@ -443,7 +443,7 @@ WriteMonMoves: ; 3afb8 (e:6fb8) jr nz, .findEmptySlotLoop ; no empty move slots found - pop de + pop de push de push hl ld h, d @@ -472,7 +472,7 @@ WriteMonMoves: ; 3afb8 (e:6fb8) jr z, .nextMove ; write move PP value if learning moves from day care - push hl + push hl ld a, [hl] ld hl, wPartyMon1PP - wPartyMon1Moves add hl, de diff --git a/home.asm b/home.asm index 6bb54df2..a9fc70e6 100644 --- a/home.asm +++ b/home.asm @@ -1463,7 +1463,7 @@ DisplayListMenuIDLoop:: ; 2c53 (0:2c53) ; pointless because both values are overwritten before they are read ld a,$01 ld [wMenuExitMethod],a - ld [wChosenMenuItem],a + ld [wChosenMenuItem],a xor a ld [wMenuWatchMovingOutOfBounds],a diff --git a/home/text.asm b/home/text.asm index 89708306..d57fc03f 100644 --- a/home/text.asm +++ b/home/text.asm @@ -627,12 +627,12 @@ TextCommand0B:: ; 1c31 (0:1c31) ; format: text command ID, sound ID or cry ID TextCommandSounds:: ; 1c64 (0:1c64) db $0B,SFX_GET_ITEM_1 - db $12,SFX_BATTLE_06 + db $12,SFX_CAUGHT_MON db $0E,SFX_POKEDEX_RATING db $0F,SFX_GET_ITEM_1 db $10,SFX_GET_ITEM_2 db $11,SFX_GET_KEY_ITEM - db $13,SFX_BATTLE_05 + db $13,SFX_DEX_PAGE_ADDED db $14,NIDORINA ; used in OakSpeech db $15,PIDGEOT ; used in SaffronCityText12 db $16,DEWGONG ; unused? diff --git a/macros.asm b/macros.asm index 659b0722..5223b9d8 100644 --- a/macros.asm +++ b/macros.asm @@ -66,15 +66,15 @@ jpab: MACRO ENDM bcd2: MACRO - dn ((\1) / 1000) % 10, ((\1) / 100) % 10 - dn ((\1) / 10) % 10, (\1) % 10 - ENDM + dn ((\1) / 1000) % 10, ((\1) / 100) % 10 + dn ((\1) / 10) % 10, (\1) % 10 + ENDM bcd3: MACRO - dn ((\1) / 100000) % 10, ((\1) / 10000) % 10 - dn ((\1) / 1000) % 10, ((\1) / 100) % 10 - dn ((\1) / 10) % 10, (\1) % 10 - ENDM + dn ((\1) / 100000) % 10, ((\1) / 10000) % 10 + dn ((\1) / 1000) % 10, ((\1) / 100) % 10 + dn ((\1) / 10) % 10, (\1) % 10 + ENDM coins equs "bcd2" money equs "bcd3" @@ -263,7 +263,7 @@ NONE EQU $FF ;\7 trainers only: trainer class/pokemon id ;\8 trainers only: trainer number/pokemon level object: MACRO - db \1 + db \1 db \3 + 4 db \2 + 4 db \4 -- cgit v1.3.1-sl0p From 82512e449115aa9d004e24a3d1526dd32570c56d Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Fri, 24 Jul 2015 14:39:45 -0700 Subject: named animation functions/variables --- constants/move_animation_constants.asm | 6 +- data/animations.asm | 16 +- engine/HoF_room_pc.asm | 10 +- engine/battle/animations.asm | 906 ++++++++++++++++++--------------- engine/battle/battle_transitions.asm | 76 +-- engine/battle/core.asm | 2 +- engine/battle/ghost_marowak_anim.asm | 4 +- engine/hidden_object_functions7.asm | 2 +- engine/intro.asm | 18 +- engine/items/items.asm | 2 +- engine/overworld/card_key.asm | 2 +- engine/overworld/cut.asm | 125 ++--- engine/overworld/cut2.asm | 76 +-- engine/overworld/ssanne.asm | 6 +- engine/slot_machine.asm | 6 +- engine/trade.asm | 12 +- home.asm | 12 +- scripts/agatha.asm | 2 +- scripts/bruno.asm | 2 +- scripts/celadongamecorner.asm | 4 +- scripts/lance.asm | 4 +- scripts/lorelei.asm | 2 +- scripts/mansion1.asm | 4 +- scripts/mansion2.asm | 2 +- scripts/rockethideout1.asm | 2 +- scripts/rockethideout4.asm | 2 +- scripts/silphco10.asm | 2 +- scripts/silphco11.asm | 2 +- scripts/silphco2.asm | 4 +- scripts/silphco3.asm | 4 +- scripts/silphco4.asm | 4 +- scripts/silphco5.asm | 6 +- scripts/silphco6.asm | 2 +- scripts/silphco7.asm | 6 +- scripts/silphco8.asm | 2 +- scripts/silphco9.asm | 8 +- scripts/vermiliongym.asm | 2 +- scripts/victoryroad1.asm | 2 +- scripts/victoryroad2.asm | 2 +- scripts/victoryroad3.asm | 2 +- wram.asm | 70 ++- 41 files changed, 781 insertions(+), 642 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/constants/move_animation_constants.asm b/constants/move_animation_constants.asm index 61e25212..6d8f33ca 100644 --- a/constants/move_animation_constants.asm +++ b/constants/move_animation_constants.asm @@ -6,7 +6,7 @@ const_value = $D8 const SE_WAVY_SCREEN ; $D8 used in Psywave/Night Shade/Psychic etc. const SE_SUBSTITUTE_MON ; $D9 used in Substitute (turns the pokemon into a mini sprite) const SE_SHAKE_BACK_AND_FORTH ; $DA used in Double Team - const SE_SLIDE_ENEMY_MON_OUT ; $DB used in Whirlwind + const SE_SLIDE_ENEMY_MON_OFF ; $DB used in Whirlwind const SE_SHOW_ENEMY_MON_PIC ; $DC used in Seismic Toss const SE_SHOW_MON_PIC ; $DD used in Low Kick/Quick Attack/Seismic Toss etc. const SE_BLINK_ENEMY_MON ; $DE used in Seismic Toss @@ -16,7 +16,7 @@ const_value = $D8 const SE_SPIRAL_BALLS_INWARD ; $E2 used in Growth/Focus Energy/Hyper Beam etc. const SE_SHAKE_ENEMY_HUD_2 ; $E3 unused const SE_SHAKE_ENEMY_HUD ; $E4 - const SE_SLIDE_MON_HALF_LEFT ; $E5 used in Softboiled + const SE_SLIDE_MON_HALF_OFF ; $E5 used in Softboiled const SE_PETALS_FALLING ; $E6 used in Petal Dance const SE_LEAVES_FALLING ; $E7 used in Razor Leaf const SE_TRANSFORM_MON ; $E8 used in Transform @@ -31,7 +31,7 @@ const_value = $D8 const SE_RESET_MON_POSITION ; $F1 used in Tackle/Body Slam/etc. const SE_MOVE_MON_HORIZONTALLY ; $F2 used in Tackle/Body Slam/etc. const SE_BLINK_MON ; $F3 used in Recover - const SE_SLIDE_MON_OUT ; $F4 used in Seismic Toss/Low Kick/etc. + const SE_SLIDE_MON_OFF ; $F4 used in Seismic Toss/Low Kick/etc. const SE_FLASH_MON_PIC ; $F5 const SE_SLIDE_MON_DOWN ; $F6 used in Withdraw/Waterfall/fainting const SE_SLIDE_MON_UP ; $F7 used in Dig/Waterfall/etc. diff --git a/data/animations.asm b/data/animations.asm index a9d22e54..cf6dc150 100755 --- a/data/animations.asm +++ b/data/animations.asm @@ -296,7 +296,7 @@ WingAttackAnim: ; 7a277 (1e:6277) WhirlwindAnim: ; 7a27b (1e:627b) db $46,$11,$10 - db SE_SLIDE_ENEMY_MON_OUT, $FF + db SE_SLIDE_ENEMY_MON_OFF, $FF db $FF FlyAnim: ; 7a281 (1e:6281) @@ -550,19 +550,19 @@ DrillPeckAnim: ; 7a3c8 (1e:63c8) db $FF SubmissionAnim: ; 7a3cc (1e:63cc) - db SE_SLIDE_MON_OUT, $41 + db SE_SLIDE_MON_OFF, $41 db $06,$FF,$01 db SE_SHOW_MON_PIC, $FF db $FF LowKickAnim: ; 7a3d4 (1e:63d4) - db SE_SLIDE_MON_OUT, $42 + db SE_SLIDE_MON_OFF, $42 db $46,$FF,$04 db SE_SHOW_MON_PIC, $FF db $FF CounterAnim: ; 7a3dc (1e:63dc) - db SE_SLIDE_MON_OUT, $43 + db SE_SLIDE_MON_OFF, $43 db $46,$FF,$04 db SE_SHOW_MON_PIC, $FF db $FF @@ -571,7 +571,7 @@ SeismicTossAnim: ; 7a3e4 (1e:63e4) db SE_BLINK_ENEMY_MON, $FF db $41,$8B,$4E db SE_HIDE_ENEMY_MON_PIC, $FF - db SE_SLIDE_MON_OUT, $FF + db SE_SLIDE_MON_OFF, $FF db $42,$44,$4F db SE_DELAY_ANIMATION_10, $FF db SE_DELAY_ANIMATION_10, $FF @@ -736,7 +736,7 @@ AgilityAnim: ; 7a4c3 (1e:64c3) db $FF QuickAttackAnim: ; 7a4c8 (1e:64c8) - db SE_SLIDE_MON_OUT, $61 + db SE_SLIDE_MON_OFF, $61 db $46,$FF,$04 db SE_SHOW_MON_PIC, $FF db $FF @@ -960,7 +960,7 @@ KinesisAnim: ; 7a5fa (1e:65fa) db $FF SoftboiledAnim: ; 7a5fe (1e:65fe) - db SE_SLIDE_MON_HALF_LEFT, $48 + db SE_SLIDE_MON_HALF_OFF, $48 db $08,$86,$4C db SE_LIGHT_SCREEN_PALETTE, $FF db SE_SPIRAL_BALLS_INWARD, $FF @@ -1119,7 +1119,7 @@ SlashAnim: ; 7a6cd (1e:66cd) db $FF SubstituteAnim: ; 7a6d1 (1e:66d1) - db SE_SLIDE_MON_OUT, $A3 + db SE_SLIDE_MON_OFF, $A3 db $08,$FF,$47 db SE_SUBSTITUTE_MON, $FF db $FF diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index 104d32ff..15ea1524 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -65,16 +65,16 @@ DisplayCreditsMon: ; 740cb (1d:40cb) call GetMonHeader call LoadFrontSpriteByMonIndex ld hl,vBGMap0 + $c - call CopyTileMapToVRAM + call CreditsCopyTileMapToVRAM xor a ld [H_AUTOBGTRANSFERENABLED],a call LoadScreenTilesFromBuffer1 ld hl,vBGMap0 - call CopyTileMapToVRAM + call CreditsCopyTileMapToVRAM ld a,$A7 ld [rWX],a ld hl,vBGMap1 - call CopyTileMapToVRAM + call CreditsCopyTileMapToVRAM call FillMiddleOfScreenWithWhite ld a,%11111100 ; make the mon a black silhouette ld [rBGP],a @@ -136,12 +136,12 @@ HoFGBPalettes: ; 74160 (1d:4160) db %11100000 db %11110000 -CopyTileMapToVRAM: ; 74164 (1d:4164) +CreditsCopyTileMapToVRAM: ; 74164 (1d:4164) ld a, l ld [H_AUTOBGTRANSFERDEST], a ld a, h ld [H_AUTOBGTRANSFERDEST + 1], a - ld a, $1 + ld a, 1 ld [H_AUTOBGTRANSFERENABLED], a jp Delay3 diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 73d152b8..424190d3 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -223,7 +223,7 @@ PlayAnimation: ; 780f1 (1e:40f1) rla sla c rla - ld [wd09f],a ; tile select + ld [wWhichBattleAnimTileset],a 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,[wcc79] + ld a,[wAnimPalette] 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,[wd09f] ; tileset select + ld a,[wWhichBattleAnimTileset] add a add a ld hl,AnimationTilesetPointers @@ -412,7 +412,7 @@ MoveAnimation: ; 78d5e (1e:4d5e) call WaitForSoundToFinish xor a ld [W_SUBANIMSUBENTRYADDR],a - ld [wd09b],a + ld [wUnusedD09B],a ld [W_SUBANIMTRANSFORM],a dec a ld [wAnimSoundID],a @@ -472,16 +472,16 @@ AnimationTypePointerTable: ; 78dcf (1e:4dcf) ShakeScreenVertically: ; 78ddb (1e:4ddb) call PlayApplyingAttackSound - ld b, $8 + ld b, 8 jp AnimationShakeScreenVertically ShakeScreenHorizontallyHeavy: ; 78de3 (1e:4de3) call PlayApplyingAttackSound - ld b, $8 + ld b, 8 jp AnimationShakeScreenHorizontallyFast ShakeScreenHorizontallySlow: ; 78deb (1e:4deb) - ld bc, $602 + lb bc, 6, 2 jr AnimationShakeScreenHorizontallySlow BlinkEnemyMonSprite: ; 78df0 (1e:4df0) @@ -490,32 +490,32 @@ BlinkEnemyMonSprite: ; 78df0 (1e:4df0) ShakeScreenHorizontallyLight: ; 78df6 (1e:4df6) call PlayApplyingAttackSound - ld b, $2 + ld b, 2 jp AnimationShakeScreenHorizontallyFast ShakeScreenHorizontallySlow2: ; 78dfe (1e:4dfe) - ld bc, $302 + lb bc, 3, 2 AnimationShakeScreenHorizontallySlow: ; 78e01 (1e:4e01) push bc push bc -.asm_78e03 +.loop1 ld a, [rWX] inc a ld [rWX], a ld c, 2 call DelayFrames dec b - jr nz, .asm_78e03 + jr nz, .loop1 pop bc -.asm_78e11 +.loop2 ld a, [rWX] dec a ld [rWX], a ld c, 2 call DelayFrames dec b - jr nz, .asm_78e11 + jr nz, .loop2 pop bc dec c jr nz, AnimationShakeScreenHorizontallySlow @@ -525,25 +525,25 @@ SetAnimationPalette: ; 78e23 (1e:4e23) ld a, [wOnSGB] and a ld a, $e4 - jr z, .asm_78e47 + jr z, .notSGB ld a, $f0 - ld [wcc79], a + ld [wAnimPalette], a ld b, $e4 ld a, [W_ANIMATIONID] cp TRADE_BALL_DROP_ANIM - jr c, .asm_78e3f + jr c, .next cp TRADE_BALL_POOF_ANIM + 1 - jr nc, .asm_78e3f + jr nc, .next ld b, $f0 -.asm_78e3f +.next ld a, b ld [rOBP0], a ld a, $6c ld [rOBP1], a ret -.asm_78e47 +.notSGB ld a, $e4 - ld [wcc79], a + ld [wAnimPalette], a ld [rOBP0], a ld a, $6c ld [rOBP1], a @@ -761,11 +761,11 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) .moveGhostMarowakLeft coord hl, 17, 0 ld de,20 - ld bc,$0707 ; 7 rows and 7 columns + lb bc, 7, 7 .loop push hl push bc - call Func_79862 ; move row of tiles left + call AnimCopyRowRight ; move row of tiles left pop bc pop hl add hl,de @@ -891,8 +891,8 @@ TradeHidePokemon: ; 79041 (1e:5041) ld a,[W_SUBANIMCOUNTER] cp a,6 ret nz - ld a,$2F - jp Func_7980c ; make pokemon disappear + ld a,2 * SCREEN_WIDTH + 7 + jp ClearMonPicFromTileMap ; make pokemon disappear ; function to make a shaking pokeball jump up at the end of the animation TradeShakePokeball: ; 7904c (1e:504c) @@ -1010,8 +1010,8 @@ SpecialEffectPointers: ; 790da (1e:50da) dw AnimationSlideMonDown db SE_FLASH_MON_PIC ; $F5 dw AnimationFlashMonPic - db SE_SLIDE_MON_OUT ; $F4 - dw AnimationSlideMonOut + db SE_SLIDE_MON_OFF ; $F4 + dw AnimationSlideMonOff db SE_BLINK_MON ; $F3 dw AnimationBlinkMon db SE_MOVE_MON_HORIZONTALLY ; $F2 @@ -1040,8 +1040,8 @@ SpecialEffectPointers: ; 790da (1e:50da) dw AnimationLeavesFalling db SE_PETALS_FALLING ; $E6 dw AnimationPetalsFalling - db SE_SLIDE_MON_HALF_LEFT ; $E5 - dw AnimationSlideMonHalfLeft + db SE_SLIDE_MON_HALF_OFF ; $E5 + dw AnimationSlideMonHalfOff db SE_SHAKE_ENEMY_HUD ; $E4 dw AnimationShakeEnemyHUD db SE_SHAKE_ENEMY_HUD_2 ; unused--same pointer as SE_SHAKE_ENEMY_HUD ($E4) @@ -1060,8 +1060,8 @@ SpecialEffectPointers: ; 790da (1e:50da) dw AnimationShowMonPic db SE_SHOW_ENEMY_MON_PIC ; $DC dw AnimationShowEnemyMonPic - db SE_SLIDE_ENEMY_MON_OUT ; $DB - dw AnimationSlideEnemyMonOut + db SE_SLIDE_ENEMY_MON_OFF ; $DB + dw AnimationSlideEnemyMonOff db SE_SHAKE_BACK_AND_FORTH ; $DA dw AnimationShakeBackAndForth db SE_SUBSTITUTE_MON ; $D9 @@ -1092,7 +1092,7 @@ 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 [wd08a],a + ld [wFlashScreenLongCounter],a ld a,[wOnSGB] ; running on SGB? and a ld hl,FlashScreenLongMonochrome @@ -1108,9 +1108,9 @@ AnimationFlashScreenLong: ; 79165 (1e:5165) call FlashScreenLongDelay jr .innerLoop .endOfPalettes - ld a,[wd08a] + ld a,[wFlashScreenLongCounter] dec a - ld [wd08a],a + ld [wFlashScreenLongCounter],a pop hl jr nz,.loop ret @@ -1150,8 +1150,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,[wd08a] - cp a,4 ; never true since [wd08a] starts at 3 + ld a,[wFlashScreenLongCounter] + cp a,4 ; never true since [wFlashScreenLongCounter] starts at 3 ld c,4 jr z,.delayFrames cp a,3 @@ -1179,46 +1179,46 @@ AnimationFlashScreen: ; 791be (1e:51be) AnimationDarkScreenPalette: ; 791d6 (1e:51d6) ; Changes the screen's palette to a dark palette. - ld bc, $6f6f + lb bc, $6f, $6f jr SetAnimationBGPalette AnimationDarkenMonPalette: ; 791db (1e:51db) ; Darkens the mon sprite's palette. - ld bc, $f9f4 + lb bc, $f9, $f4 jr SetAnimationBGPalette AnimationUnusedPalette1: ; 791e0 (1e:51e0) - ld bc, $fef8 + lb bc, $fe, $f8 jr SetAnimationBGPalette AnimationUnusedPalette2: ; 791e5 (1e:51e5) - ld bc, $ffff + lb bc, $ff, $ff jr SetAnimationBGPalette AnimationResetScreenPalette: ; 791ea (1e:51ea) ; Restores the screen's palette to the normal palette. - ld bc, $e4e4 + lb bc, $e4, $e4 jr SetAnimationBGPalette AnimationUnusedPalette3: ; 791ef (1e:51ef) - ld bc, $0000 + lb bc, $00, $00 jr SetAnimationBGPalette AnimationLightScreenPalette: ; 791f4 (1e:51f4) ; Changes the screen to use a palette with light colors. - ld bc, $9090 + lb bc, $90, $90 jr SetAnimationBGPalette AnimationUnusedPalette4: ; 791f9 (1e:51f9) - ld bc, $4040 + lb bc, $40, $40 SetAnimationBGPalette: ; 791fc (1e:51fc) ld a, [wOnSGB] and a ld a, b - jr z, .asm_79204 + jr z, .next ld a, c -.asm_79204 +.next ld [rBGP], a ret @@ -1239,75 +1239,75 @@ AnimationWaterDropletsEverywhere: ; 79215 (1e:5215) ; scroll. It's hard to describe, but it's the main animation ; in Surf/Mist/Toxic. xor a - ld [wd09f], a + ld [wWhichBattleAnimTileset], a call LoadAnimationTileset - ld d, $20 - ld a, $f0 + ld d, 32 + ld a, -16 ld [W_BASECOORDX], a ld a, $71 - ld [wd09f], a -.asm_79228 - ld a, $10 + ld [wDropletTile], a +.loop + ld a, 16 ld [W_BASECOORDY], a - ld a, $0 - ld [wd08a], a + ld a, 0 + ld [wUnusedD08A], a call _AnimationWaterDroplets - ld a, $18 + ld a, 24 ld [W_BASECOORDY], a - ld a, $20 - ld [wd08a], a + ld a, 32 + ld [wUnusedD08A], a call _AnimationWaterDroplets dec d - jr nz, .asm_79228 + jr nz, .loop ret _AnimationWaterDroplets: ; 79246 (1e:5246) ld hl, wOAMBuffer -.asm_79249 +.loop ld a, [W_BASECOORDY] - ld [hli], a + ld [hli], a ; Y ld a, [W_BASECOORDX] - add $1b + add 27 ld [W_BASECOORDX], a - ld [hli], a - ld a, [wd09f] - ld [hli], a + ld [hli], a ; X + ld a, [wDropletTile] + ld [hli], a ; tile xor a - ld [hli], a + ld [hli], a ; attribute ld a, [W_BASECOORDX] - cp $90 - jr c, .asm_79249 - sub $a8 + cp 144 + jr c, .loop + sub 168 ld [W_BASECOORDX], a ld a, [W_BASECOORDY] - add $10 + add 16 ld [W_BASECOORDY], a - cp $70 - jr c, .asm_79249 + cp 112 + jr c, .loop call AnimationCleanOAM jp DelayFrame AnimationSlideMonUp: ; 7927a (1e:527a) ; Slides the mon's sprite upwards. - ld c, $7 + ld c, 7 ld a, [H_WHOSETURN] and a coord hl, 1, 6 coord de, 1, 5 ld a, $30 - jr z, .asm_79291 + jr z, .next coord hl, 12, 1 coord de, 12, 0 ld a, $ff -.asm_79291 - ld [wd09f], a +.next + ld [wSlideMonUpBottomRowLeftTile], a jp _AnimationSlideMonUp AnimationSlideMonDown: ; 79297 (1e:5297) ; Slides the mon's sprite down out of the screen. xor a call GetTileIDList -.asm_7929b +.loop call GetMonSpriteTileMapPointerFromRowCount push bc push de @@ -1317,54 +1317,63 @@ AnimationSlideMonDown: ; 79297 (1e:5297) pop de pop bc dec b - jr nz, .asm_7929b + jr nz, .loop ret -AnimationSlideMonOut: ; 792af (1e:52af) -; Slides the mon's sprite out of the screen horizontally. - ld e, $8 - ld a, $3 - ld [W_SUBANIMTRANSFORM], a - jp AnimationSlideMonLeft +AnimationSlideMonOff: ; 792af (1e:52af) +; Slides the mon's sprite off the screen horizontally. + ld e, 8 + ld a, 3 + ld [wSlideMonDelay], a + jp _AnimationSlideMonOff -AnimationSlideEnemyMonOut: ; 792b9 (1e:52b9) -; Slides the enemy mon out of the screen horizontally. - ld hl, AnimationSlideMonOut +AnimationSlideEnemyMonOff: ; 792b9 (1e:52b9) +; Slides the enemy mon off the screen horizontally. + ld hl, AnimationSlideMonOff jp CallWithTurnFlipped _AnimationSlideMonUp: ; 792bf (1e:52bf) push de push hl push bc - ld b, $6 -.asm_792c4 + +; In each iteration, slide up all rows but the top one (which is overwritten). + ld b, 6 +.slideLoop push bc push de push hl - ld bc, $0007 + ld bc, 7 call CopyData +; Note that de and hl are popped in the same order they are pushed, swapping +; their values. When CopyData is called, hl points to a tile 1 row below +; the one de points to. To maintain this relationship, after swapping, we add 2 +; rows to hl so that it is 1 row below again. pop de pop hl ld bc, SCREEN_WIDTH * 2 add hl, bc pop bc dec b - jr nz, .asm_792c4 + jr nz, .slideLoop + +; Fill in the bottom row of the mon pic with the next row's tile IDs. ld a, [H_WHOSETURN] and a coord hl, 1, 11 - jr z, .asm_792e2 + jr z, .next coord hl, 12, 6 -.asm_792e2 - ld a, [wd09f] +.next + ld a, [wSlideMonUpBottomRowLeftTile] inc a - ld [wd09f], a - ld c, $7 -.asm_792eb + ld [wSlideMonUpBottomRowLeftTile], a + ld c, 7 +.fillBottomRowLoop ld [hli], a - add $7 + add 7 dec c - jr nz, .asm_792eb + jr nz, .fillBottomRowLoop + ld c, 2 call DelayFrames pop bc @@ -1374,35 +1383,41 @@ _AnimationSlideMonUp: ; 792bf (1e:52bf) jr nz, _AnimationSlideMonUp ret -_AnimationShakeEnemyHUD: ; 792fd (1e:52fd) +ShakeEnemyHUD_WritePlayerMonPicOAM: ; 792fd (1e:52fd) +; Writes the OAM entries for a copy of the player mon's pic in OAM. +; The top 5 rows are reproduced in OAM, although only 2 are actually needed. ld a, $10 ld [W_BASECOORDX], a ld a, $30 ld [W_BASECOORDY], a ld hl, wOAMBuffer - ld d, $0 - ld c, $7 -.asm_7930e + ld d, 0 + ld c, 7 +.loop ld a, [W_BASECOORDY] ld e, a - ld b, $5 -.asm_79314 - call Animations_79329 + ld b, 5 +.innerLoop + call BattleAnimWriteOAMEntry inc d dec b - jr nz, .asm_79314 + jr nz, .innerLoop dec c ret z inc d inc d ld a, [W_BASECOORDX] - add $8 + add 8 ld [W_BASECOORDX], a - jr .asm_7930e + jr .loop -Animations_79329: ; 79329 (1e:5329) +BattleAnimWriteOAMEntry: ; 79329 (1e:5329) +; Y coordinate = e (increased by 8 each call, before the write to OAM) +; X coordinate = [W_BASECOORDX] +; tile = d +; attributes = 0 ld a, e - add $8 + add 8 ld e, a ld [hli], a ld a, [W_BASECOORDX] @@ -1418,16 +1433,17 @@ AdjustOAMBlockXPos: ; 79337 (1e:5337) ld h, d AdjustOAMBlockXPos2: ; 79339 (1e:5339) - ld de, $4 + ld de, 4 .loop - ld a, [wd08a] + ld a, [wCoordAdjustmentAmount] ld b, a ld a, [hl] add b - cp $a8 + cp 168 jr c, .skipPuttingEntryOffScreen +; put off-screen if X >= 168 dec hl - ld a, $a0 + ld a, 160 ld [hli], a .skipPuttingEntryOffScreen ld [hl], a @@ -1441,16 +1457,16 @@ AdjustOAMBlockYPos: ; 79350 (1e:5350) ld h, d AdjustOAMBlockYPos2: ; 79352 (1e:5352) - ld de, $4 + ld de, 4 .loop - ld a, [wd08a] + ld a, [wCoordAdjustmentAmount] ld b, a ld a, [hl] add b - cp $70 + cp 112 jr c, .skipSettingPreviousEntrysAttribute dec hl - ld a, $a0 ; bug, sets previous OAM entry's attribute + ld a, 160 ; bug, sets previous OAM entry's attribute ld [hli], a .skipSettingPreviousEntrysAttribute ld [hl], a @@ -1467,8 +1483,8 @@ AnimationBlinkEnemyMon: ; 79369 (1e:5369) AnimationBlinkMon: ; 7936f (1e:536f) ; Make the mon's sprite blink on and off for a second or two. push af - ld c, $6 -.asm_79372 + ld c, 6 +.loop push bc call AnimationHideMonPic ld c, 5 @@ -1478,17 +1494,17 @@ AnimationBlinkMon: ; 7936f (1e:536f) call DelayFrames pop bc dec c - jr nz, .asm_79372 + jr nz, .loop pop af ret AnimationFlashMonPic: ; 79389 (1e:5389) ; Flashes the mon's sprite on and off ld a, [wBattleMonSpecies] - ld [wHPBarMaxHP + 1], a + ld [wChangeMonPicPlayerTurnSpecies], a ld a, [wEnemyMonSpecies] - ld [wHPBarMaxHP], a - jp Func_79793 + ld [wChangeMonPicEnemyTurnSpecies], a + jp ChangeMonPic AnimationFlashEnemyMonPic: ; 79398 (1e:5398) ; Flashes the enemy mon's sprite on and off @@ -1515,14 +1531,14 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1) and a coord hl, 0, 5 coord de, 2, 5 - jr z, .asm_793c2 + jr z, .next coord hl, 11, 0 coord de, 13, 0 -.asm_793c2 +.next xor a ld c, $10 -.asm_793c5 +.loop push af push bc push de @@ -1537,7 +1553,7 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1) call CopyPicTiles call Delay3 pop hl - ld bc, $0709 + lb bc, 7, 9 call ClearScreenArea pop af call GetTileIDList @@ -1545,14 +1561,14 @@ AnimationShakeBackAndForth: ; 793b1 (1e:53b1) call CopyPicTiles call Delay3 pop hl - ld bc, $0709 + lb bc, 7, 9 call ClearScreenArea pop hl pop de pop bc pop af dec c - jr nz, .asm_793c5 + jr nz, .loop ret AnimationMoveMonHorizontally: ; 793f9 (1e:53f9) @@ -1562,9 +1578,9 @@ AnimationMoveMonHorizontally: ; 793f9 (1e:53f9) ld a, [H_WHOSETURN] and a coord hl, 2, 5 - jr z, .asm_79407 + jr z, .next coord hl, 11, 0 -.asm_79407 +.next xor a push hl call GetTileIDList @@ -1577,70 +1593,70 @@ AnimationResetMonPosition: ; 79415 (1e:5415) ; Resets the mon's sprites to be located at the normal coordinates. ld a, [H_WHOSETURN] and a - ld a, $66 - jr z, .asm_7941e - ld a, $b -.asm_7941e - call Func_7980c + ld a, 5 * SCREEN_WIDTH + 2 + jr z, .next + ld a, 11 +.next + call ClearMonPicFromTileMap jp AnimationShowMonPic AnimationSpiralBallsInward: ; 79424 (1e:5424) -; Creates an effect that looks like energy balls sprialing into the +; Creates an effect that looks like energy balls spiralling into the ; player mon's sprite. Used in Focus Energy, for example. ld a, [H_WHOSETURN] and a - jr z, .asm_79435 - ld a, $d8 - ld [wd08a], a - ld a, $50 - ld [W_SUBANIMTRANSFORM], a - jr .asm_7943c -.asm_79435 + jr z, .playerTurn + ld a, -40 + ld [wSpiralBallsBaseY], a + ld a, 80 + ld [wSpiralBallsBaseX], a + jr .next +.playerTurn xor a - ld [wd08a], a - ld [W_SUBANIMTRANSFORM], a -.asm_7943c - ld d, $7a - ld c, $3 + ld [wSpiralBallsBaseY], a + ld [wSpiralBallsBaseX], a +.next + ld d, $7a ; ball tile + ld c, 3 ; number of balls xor a - call Func_797e8 + call InitMultipleObjectsOAM ld hl, SpiralBallAnimationCoordinates -.asm_79447 +.loop push hl - ld c, $3 + ld c, 3 ld de, wOAMBuffer -.asm_7944d +.innerLoop ld a, [hl] cp $ff - jr z, .asm_7946f - ld a, [wd08a] + jr z, .done + ld a, [wSpiralBallsBaseY] add [hl] - ld [de], a + ld [de], a ; Y inc de inc hl - ld a, [W_SUBANIMTRANSFORM] + ld a, [wSpiralBallsBaseX] add [hl] - ld [de], a + ld [de], a ; X inc hl inc de inc de inc de dec c - jr nz, .asm_7944d + jr nz, .innerLoop ld c, 5 call DelayFrames pop hl inc hl inc hl - jr .asm_79447 -.asm_7946f + jr .loop +.done pop hl call AnimationCleanOAM jp AnimationFlashScreen SpiralBallAnimationCoordinates: ; 79476 (1e:5476) ; y, x pairs -; This is the sequence of screen coordinates that the spiraling +; This is the sequence of screen coordinates that the spiralling ; balls are positioned at. db $38, $28 db $40, $18 @@ -1668,57 +1684,57 @@ SpiralBallAnimationCoordinates: ; 79476 (1e:5476) AnimationSquishMonPic: ; 794a1 (1e:54a1) ; Squishes the mon's sprite horizontally making it ; disappear. Used by Teleport/Sky Attack animations. - ld c, $4 -.asm_794a3 + ld c, 4 +.loop push bc ld a, [H_WHOSETURN] and a - jr z, .asm_794b1 + jr z, .playerTurn coord hl, 16, 0 coord de, 14, 0 - jr .asm_794b7 -.asm_794b1 + jr .next +.playerTurn coord hl, 5, 5 coord de, 3, 5 -.asm_794b7 +.next push de - xor a - ld [wd09f], a + xor a ; left + ld [wSquishMonCurrentDirection], a call _AnimationSquishMonPic pop hl - ld a, $1 - ld [wd09f], a + ld a, 1 ; right + ld [wSquishMonCurrentDirection], a call _AnimationSquishMonPic pop bc dec c - jr nz, .asm_794a3 + jr nz, .loop call AnimationHideMonPic - ld c, $2 + ld c, 2 jp DelayFrame _AnimationSquishMonPic: ; 794d4 (1e:54d4) - ld c, $7 -.asm_794d6 + ld c, 7 +.loop push bc push hl - ld c, $3 - ld a, [wd09f] - cp $0 - jr nz, .asm_794e7 - call Func_7985b + ld c, 3 + ld a, [wSquishMonCurrentDirection] + cp 0 + jr nz, .right + call AnimCopyRowLeft dec hl - jr .asm_794eb -.asm_794e7 - call Func_79862 + jr .next +.right + call AnimCopyRowRight inc hl -.asm_794eb +.next ld [hl], " " pop hl ld de, SCREEN_WIDTH add hl, de pop bc dec c - jr nz, .asm_794d6 + jr nz, .loop jp Delay3 AnimationShootBallsUpward: ; 794f9 (1e:54f9) @@ -1726,67 +1742,68 @@ AnimationShootBallsUpward: ; 794f9 (1e:54f9) ; animations. ld a, [H_WHOSETURN] and a - jr z, .asm_79503 - ld bc, $80 - jr .asm_79506 -.asm_79503 - ld bc, $3028 -.asm_79506 + jr z, .playerTurn + lb bc, 0, 16 * 8 + jr .next +.playerTurn + lb bc, 6 * 8, 5 * 8 +.next ld a, b ld [W_BASECOORDY], a ld a, c ld [W_BASECOORDX], a - ld bc, $501 + lb bc, 5, 1 call _AnimationShootBallsUpward jp AnimationCleanOAM _AnimationShootBallsUpward: ; 79517 (1e:5517) push bc xor a - ld [wd09f], a + ld [wWhichBattleAnimTileset], a call LoadAnimationTileset pop bc - ld d, $7a + ld d, $7a ; ball tile ld hl, wOAMBuffer push bc ld a, [W_BASECOORDY] ld e, a -.asm_7952a - call Animations_79329 +.initOAMLoop + call BattleAnimWriteOAMEntry dec b - jr nz, .asm_7952a + jr nz, .initOAMLoop call DelayFrame pop bc ld a, b - ld [wd08a], a -.asm_79538 + ld [wNumShootingBalls], a +.loop push bc ld hl, wOAMBuffer -.asm_7953c +.innerLoop ld a, [W_BASECOORDY] - add $8 + add 8 ld e, a ld a, [hl] - cp e - jr z, .asm_7954b - add $fc + cp e ; has the ball reached the top? + jr z, .reachedTop + add -4 ; ball hasn't reached the top. move it up 4 pixels ld [hl], a - jr .asm_79554 -.asm_7954b - ld [hl], $0 - ld a, [wd08a] + jr .next +.reachedTop +; remove the ball once it has reached the top + ld [hl], 0 ; put it off-screen + ld a, [wNumShootingBalls] dec a - ld [wd08a], a -.asm_79554 - ld de, $4 - add hl, de + ld [wNumShootingBalls], a +.next + ld de, 4 + add hl, de ; next OAM entry dec b - jr nz, .asm_7953c + jr nz, .innerLoop call DelayFrames pop bc - ld a, [wd08a] + ld a, [wNumShootingBalls] and a - jr nz, .asm_79538 + jr nz, .loop ret AnimationShootManyBallsUpward: ; 79566 (1e:5566) @@ -1799,15 +1816,15 @@ AnimationShootManyBallsUpward: ; 79566 (1e:5566) ld hl, UpwardBallsAnimXCoordinatesEnemyTurn ld a, $28 ; y coordinate for "energy" ball pillar .player - ld [wTrainerSpriteOffset], a + ld [wSavedY], a .loop - ld a, [wTrainerSpriteOffset] + ld a, [wSavedY] ld [W_BASECOORDY], a ld a, [hli] cp $ff jp z, AnimationCleanOAM ld [W_BASECOORDX], a - ld bc, $0401 + lb bc, 4, 1 push hl call _AnimationShootBallsUpward pop hl @@ -1838,14 +1855,14 @@ AnimationMinimizeMon: ; 7959f (1e:559f) add hl, de ld de, MinimizedMonSprite ld c, $5 -.asm_795b4 +.loop ld a, [de] ld [hli], a ld [hli], a inc de dec c - jr nz, .asm_795b4 - call Func_79652 + jr nz, .loop + call CopyTempPicToMonPic call Delay3 jp AnimationShowMonPic @@ -1856,7 +1873,7 @@ AnimationSlideMonDownAndHide: ; 795c9 (1e:55c9) ; Slides the mon's sprite down and disappears. Used in Acid Armor. ld a, $1 ld c, $2 -.asm_795cd +.loop push bc push af call AnimationHideMonPic @@ -1871,87 +1888,101 @@ AnimationSlideMonDownAndHide: ; 795c9 (1e:55c9) inc a pop bc dec c - jr nz, .asm_795cd + jr nz, .loop call AnimationHideMonPic ld hl, wTempPic ld bc, $0310 xor a call FillMemory - jp Func_79652 + jp CopyTempPicToMonPic -AnimationSlideMonLeft: ; 795f8 (1e:55f8) +_AnimationSlideMonOff: ; 795f8 (1e:55f8) +; Slides the mon's sprite off the screen horizontally by e tiles and waits +; [wSlideMonDelay] V-blanks each time the pic is slid by one tile. ld a, [H_WHOSETURN] and a - jr z, .asm_79602 + jr z, .playerTurn coord hl, 12, 0 - jr .asm_79605 -.asm_79602 + jr .next +.playerTurn coord hl, 0, 5 -.asm_79605 - ld d, $8 -.asm_79607 +.next + ld d, 8 ; d's value is unused +.slideLoop ; iterates once for each time the pic slides by one tile push hl - ld b, $7 -.asm_7960a - ld c, $8 -.asm_7960c + ld b, 7 +.rowLoop ; iterates once for each row + ld c, 8 +.tileLoop ; iterates once for each tile in the row ld a, [H_WHOSETURN] and a - jr z, .asm_79616 - call Func_7963c - jr .asm_79619 -.asm_79616 - call Func_79633 -.asm_79619 + jr z, .playerTurn2 + call .EnemyNextTile + jr .next2 +.playerTurn2 + call .PlayerNextTile +.next2 ld [hli], a dec c - jr nz, .asm_7960c + jr nz, .tileLoop push de - ld de, $c + ld de, SCREEN_WIDTH - 8 add hl, de pop de dec b - jr nz, .asm_7960a - ld a, [W_SUBANIMTRANSFORM] + jr nz, .rowLoop + ld a, [wSlideMonDelay] ld c, a call DelayFrames pop hl dec d dec e - jr nz, .asm_79607 + jr nz, .slideLoop ret -Func_79633: ; 79633 (1e:5633) +; Since mon pic tile numbers go from top to bottom, left to right in order, +; adding the height of the mon pic in tiles to a tile number gives the tile +; number of the tile one column to the right (and thus subtracting the height +; gives the reverse). If the next tile would be past the edge of the pic, the 2 +; functions below catch it by checking if the tile number is within the valid +; range and if not, replacing it with a blank tile. + +.PlayerNextTile ; 79633 (1e:5633) ld a, [hl] - add $7 + add 7 +; This is a bug. The lower right corner tile of the mon back pic is blanked +; while the mon is sliding off the screen. It should compare with the max tile +; plus one instead. cp $61 ret c - ld a, $7f + ld a, " " ret -Func_7963c: ; 7963c (1e:563c) +.EnemyNextTile ; 7963c (1e:563c) ld a, [hl] - sub $7 + sub 7 +; This has the same problem as above, but it has no visible effect because +; the lower right tile is in the first column to slide off the screen. cp $30 ret c - ld a, $7f + ld a, " " ret -AnimationSlideMonHalfLeft: ; 79645 (1e:5645) -; Slides the mon's sprite halfway out of the screen. It's used in Softboiled. - ld e, $4 - ld a, $4 - ld [W_SUBANIMTRANSFORM], a - call AnimationSlideMonLeft +AnimationSlideMonHalfOff: ; 79645 (1e:5645) +; Slides the mon's sprite halfway off the screen. It's used in Softboiled. + ld e, 4 + ld a, 4 + ld [wSlideMonDelay], a + call _AnimationSlideMonOff jp Delay3 -Func_79652: ; 79652 (1e:5652) +CopyTempPicToMonPic: ; 79652 (1e:5652) ld a, [H_WHOSETURN] and a - ld hl, vBackPic - jr z, .asm_7965d - ld hl, vFrontPic -.asm_7965d + ld hl, vBackPic ; player turn + jr z, .next + ld hl, vFrontPic ; enemy turn +.next ld de, wTempPic ld bc, 7 * 7 jp CopyVideoData @@ -1959,55 +1990,55 @@ Func_79652: ; 79652 (1e:5652) AnimationWavyScreen: ; 79666 (1e:5666) ; used in Psywave/Psychic etc. ld hl, vBGMap0 - call Func_79e0d + call BattleAnimCopyTileMapToVRAM call Delay3 xor a ld [H_AUTOBGTRANSFERENABLED], a - ld a, $90 + ld a, SCREEN_HEIGHT_PIXELS ld [hWY], a - ld d, $80 - ld e, $8f + ld d, $80 ; terminator + ld e, SCREEN_HEIGHT_PIXELS - 1 ld c, $ff ld hl, WavyScreenLineOffsets -.asm_7967f +.loop push hl -.asm_79680 - call Func_796ae +.innerLoop + call WavyScreen_SetSCX ld a, [rLY] - cp e - jr nz, .asm_79680 + cp e ; is it the last visible line in the frame? + jr nz, .innerLoop ; keep going if not pop hl inc hl ld a, [hl] - cp d - jr nz, .asm_79691 - ld hl, WavyScreenLineOffsets -.asm_79691 + cp d ; have we reached the end? + jr nz, .next + ld hl, WavyScreenLineOffsets ; go back to the beginning if so +.next dec c - jr nz, .asm_7967f + jr nz, .loop xor a ld [hWY], a call SaveScreenTilesToBuffer2 call ClearScreen - ld a, $1 + ld a, 1 ld [H_AUTOBGTRANSFERENABLED], a call Delay3 call LoadScreenTilesFromBuffer2 ld hl, vBGMap1 - call Func_79e0d + call BattleAnimCopyTileMapToVRAM ret -Func_796ae: ; 796ae (1e:56ae) +WavyScreen_SetSCX: ; 796ae (1e:56ae) ld a, [rSTAT] - and $3 - jr nz, Func_796ae + and $3 ; is it H-blank? + jr nz, WavyScreen_SetSCX ; wait until it's H-blank ld a, [hl] ld [rSCX], a inc hl ld a, [hl] - cp d + cp d ; have we reached the end? ret nz - ld hl, WavyScreenLineOffsets + ld hl, WavyScreenLineOffsets ; go back to the beginning if so ret WavyScreenLineOffsets: ; 796bf (1e:56bf) @@ -2023,9 +2054,9 @@ AnimationSubstitute: ; 796e0 (1e:56e0) xor a ld bc, $0310 call FillMemory - ld a, [$fff3] + ld a, [H_WHOSETURN] and a - jr z, .asm_79715 + jr z, .playerTurn ld hl, SlowbroSprite ; facing down sprite ld de, wTempPic + $120 call CopySlowbroSpriteData @@ -2038,8 +2069,8 @@ AnimationSubstitute: ; 796e0 (1e:56e0) ld hl, SlowbroSprite + $30 ld de, wTempPic + $120 + $10 + $70 call CopySlowbroSpriteData - jr .asm_79739 -.asm_79715 + jr .next +.playerTurn ld hl, SlowbroSprite + $40 ; facing up sprite ld de, wTempPic + $120 + $70 call CopySlowbroSpriteData @@ -2052,8 +2083,8 @@ AnimationSubstitute: ; 796e0 (1e:56e0) ld hl, SlowbroSprite + $70 ld de, wTempPic + $120 + $f0 call CopySlowbroSpriteData -.asm_79739 - call Func_79652 +.next + call CopyTempPicToMonPic jp AnimationShowMonPic CopySlowbroSpriteData: ; 7973f (1e:573f) @@ -2077,7 +2108,7 @@ HideSubstituteShowMonAnim: ; 79747 (1e:5747) call AnimationSlideMonDown jr .next2 .substituteStillUp - call AnimationSlideMonOut + call AnimationSlideMonOff .next2 pop hl ld a, [hl] @@ -2087,35 +2118,35 @@ HideSubstituteShowMonAnim: ; 79747 (1e:5747) jp AnimationShowMonPic ReshowSubstituteAnim: ; 79771 (1e:5771) - call AnimationSlideMonOut + call AnimationSlideMonOff call AnimationSubstitute jp AnimationShowMonPic AnimationBoundUpAndDown: ; 7977a (1e:577a) ; Bounces the mon's sprite up and down several times. It is used ; by Splash's animation. - ld c, $5 -.asm_7977c + ld c, 5 +.loop push bc call AnimationSlideMonDown pop bc dec c - jr nz, .asm_7977c + jr nz, .loop jp AnimationShowMonPic AnimationTransformMon: ; 79787 (1e:5787) ; Redraws this mon's sprite as the back/front sprite of the opposing mon. ; Used in Transform. ld a, [wEnemyMonSpecies] - ld [wHPBarMaxHP + 1], a + ld [wChangeMonPicPlayerTurnSpecies], a ld a, [wBattleMonSpecies] - ld [wHPBarMaxHP], a + ld [wChangeMonPicEnemyTurnSpecies], a -Func_79793: ; 79793 (1e:5793) +ChangeMonPic: ; 79793 (1e:5793) ld a, [H_WHOSETURN] and a - jr z, .asm_797b0 - ld a, [wHPBarMaxHP] + jr z, .playerTurn + ld a, [wChangeMonPicEnemyTurnSpecies] ld [wcf91], a ld [wd0b5], a xor a @@ -2123,11 +2154,11 @@ Func_79793: ; 79793 (1e:5793) call GetMonHeader coord hl, 12, 0 call LoadFrontSpriteByMonIndex - jr .asm_797d3 -.asm_797b0 + jr .done +.playerTurn ld a, [wBattleMonSpecies2] push af - ld a, [wHPBarMaxHP + 1] + ld a, [wChangeMonPicPlayerTurnSpecies] ld [wBattleMonSpecies2], a ld [wd0b5], a call GetMonHeader @@ -2138,7 +2169,7 @@ Func_79793: ; 79793 (1e:5793) call CopyPicTiles pop af ld [wBattleMonSpecies2], a -.asm_797d3 +.done ld b, $1 jp GoPAL_SET @@ -2152,10 +2183,14 @@ AnimationHideEnemyMonPic: ; 797d8 (1e:57d8) ld [H_AUTOBGTRANSFERENABLED], a jp Delay3 -Func_797e8: ; 797e8 (1e:57e8) +InitMultipleObjectsOAM: ; 797e8 (1e:57e8) +; Writes c OAM entries with tile d. +; Sets their Y coordinates to sequential multiples of 8, starting from 0. +; Sets their X coordinates to 0. +; Loads animation tileset a. push bc push de - ld [wd09f], a + ld [wWhichBattleAnimTileset], a call LoadAnimationTileset pop de pop bc @@ -2163,31 +2198,31 @@ Func_797e8: ; 797e8 (1e:57e8) ld e, a ld [W_BASECOORDX], a ld hl, wOAMBuffer -.asm_797fa - call Animations_79329 +.loop + call BattleAnimWriteOAMEntry dec c - jr nz, .asm_797fa + jr nz, .loop ret AnimationHideMonPic: ; 79801 (1e:5801) ; Hides the mon's sprite. ld a, [H_WHOSETURN] and a - jr z, .asm_7980a - ld a, $c - jr Func_7980c -.asm_7980a - ld a, $65 + jr z, .playerTurn + ld a, 12 + jr ClearMonPicFromTileMap +.playerTurn + ld a, 5 * SCREEN_WIDTH + 1 -Func_7980c: ; 7980c (1e:580c) +ClearMonPicFromTileMap: ; 7980c (1e:580c) push hl push de push bc ld e, a - ld d, $0 + ld d, 0 coord hl, 0, 0 add hl, de - ld bc, $707 + lb bc, 7, 7 call ClearScreenArea pop bc pop de @@ -2251,20 +2286,22 @@ GetTileIDList: ; 79842 (1e:5842) ld b, a ret -Func_7985b: ; 7985b (1e:585b) +AnimCopyRowLeft: ; 7985b (1e:585b) +; copy a row of c tiles 1 tile left ld a, [hld] ld [hli], a inc hl dec c - jr nz, Func_7985b + jr nz, AnimCopyRowLeft ret -Func_79862: ; 79862 (1e:5862) +AnimCopyRowRight: ; 79862 (1e:5862) +; copy a row of c tiles 1 tile right ld a, [hli] ld [hld], a dec hl dec c - jr nz, Func_79862 + jr nz, AnimCopyRowRight ret ; get the sound of the move id in b @@ -2649,12 +2686,12 @@ AnimationLeavesFalling: ; 79c74 (1e:5c74) ; in Razor Leaf's animation. ld a, [rOBP0] push af - ld a, [wcc79] + ld a, [wAnimPalette] ld [rOBP0], a - ld d, $37 - ld a, $3 - ld [W_SUBANIMTRANSFORM], a - call Func_79c97 + ld d, $37 ; leaf tile + ld a, 3 ; number of leaves + ld [wNumFallingObjects], a + call AnimationFallingObjects pop af ld [rOBP0], a ret @@ -2662,115 +2699,120 @@ AnimationLeavesFalling: ; 79c74 (1e:5c74) AnimationPetalsFalling: ; 79c8a (1e:5c8a) ; Makes lots of petals fall down from the top of the screen. It's used in ; the animation for Petal Dance. - ld d, $71 - ld a, $14 - ld [W_SUBANIMTRANSFORM], a - call Func_79c97 + ld d, $71 ; petal tile + ld a, 20 ; number of petals + ld [wNumFallingObjects], a + call AnimationFallingObjects jp ClearSprites -Func_79c97: ; 79c97 (1e:5c97) +AnimationFallingObjects: ; 79c97 (1e:5c97) ld c, a - ld a, $1 - call Func_797e8 - call Func_79d2a - call Func_79d52 + ld a, 1 + call InitMultipleObjectsOAM + call FallingObjects_InitXCoords + call FallingObjects_InitMovementData ld hl, wOAMBuffer - ld [hl], $0 -.asm_79ca8 - ld hl, wTrainerSpriteOffset - ld de, $0000 - ld a, [W_SUBANIMTRANSFORM] + ld [hl], 0 +.loop + ld hl, wFallingObjectsMovementData + ld de, 0 + ld a, [wNumFallingObjects] ld c, a -.asm_79cb2 +.innerLoop push bc push hl push de ld a, [hl] - ld [wd08a], a - call Func_79d16 - call Func_79cdb + ld [wFallingObjectMovementByte], a + call FallingObjects_UpdateMovementByte + call FallingObjects_UpdateOAMEntry pop de - ld hl, $0004 + ld hl, 4 add hl, de ld e, l ld d, h pop hl - ld a, [wd08a] + ld a, [wFallingObjectMovementByte] ld [hli], a pop bc dec c - jr nz, .asm_79cb2 + jr nz, .innerLoop call Delay3 ld hl, wOAMBuffer - ld a, [hl] - cp $68 - jr nz, .asm_79ca8 + ld a, [hl] ; Y + cp 104 ; has the top falling object reached 104 yet? + jr nz, .loop ; keep moving the falling objects down until it does ret -Func_79cdb: ; 79cdb (1e:5cdb) +FallingObjects_UpdateOAMEntry: ; 79cdb (1e:5cdb) +; Increases Y by 2 pixels and adjusts X and X flip based on the falling object's +; movement byte. ld hl, wOAMBuffer add hl, de ld a, [hl] inc a inc a - cp $70 - jr c, .asm_79ce8 - ld a, $a0 -.asm_79ce8 - ld [hli], a - ld a, [wd08a] + cp 112 + jr c, .next + ld a, 160 ; if Y >= 112, put it off-screen +.next + ld [hli], a ; Y + ld a, [wFallingObjectMovementByte] ld b, a - ld de, Unknown_79d0d + ld de, FallingObjects_DeltaXs and $7f add e - jr nc, .asm_79cf6 + jr nc, .noCarry inc d -.asm_79cf6 +.noCarry ld e, a ld a, b and $80 - jr nz, .asm_79d03 + jr nz, .movingLeft +; moving right ld a, [de] add [hl] - ld [hli], a + ld [hli], a ; X inc hl - xor a - jr .asm_79d0b -.asm_79d03 + xor a ; no horizontal flip + jr .next2 +.movingLeft ld a, [de] ld b, a ld a, [hl] sub b - ld [hli], a + ld [hli], a ; X inc hl - ld a, $20 -.asm_79d0b - ld [hl], a + ld a, (1 << OAM_X_FLIP) +.next2 + ld [hl], a ; attribute ret -Unknown_79d0d: ; 79d0d (1e:5d0d) - db $00,$01,$03,$05,$07,$09,$0B,$0D,$0F +FallingObjects_DeltaXs: ; 79d0d (1e:5d0d) + db 0, 1, 3, 5, 7, 9, 11, 13, 15 -Func_79d16: ; 79d16 (1e:5d16) - ld a, [wd08a] +FallingObjects_UpdateMovementByte: ; 79d16 (1e:5d16) + ld a, [wFallingObjectMovementByte] inc a ld b, a and $7f - cp $9 + cp 9 ; have we reached the end of the delta-Xs? ld a, b - jr nz, .asm_79d26 + jr nz, .next +; We've reached the end of the delta-Xs, so wrap to the start and change +; direction from right to left or vice versa. and $80 xor $80 -.asm_79d26 - ld [wd08a], a +.next + ld [wFallingObjectMovementByte], a ret -Func_79d2a: ; 79d2a (1e:5d2a) +FallingObjects_InitXCoords: ; 79d2a (1e:5d2a) ld hl, wOAMBuffer + $01 - ld de, Unknown_79d3e - ld a, [W_SUBANIMTRANSFORM] + ld de, FallingObjects_InitialXCoords + ld a, [wNumFallingObjects] ld c, a -.asm_79d34 +.loop ld a, [de] ld [hli], a inc hl @@ -2778,66 +2820,98 @@ Func_79d2a: ; 79d2a (1e:5d2a) inc hl inc de dec c - jr nz, .asm_79d34 + jr nz, .loop ret -Unknown_79d3e: ; 79d3e (1e:5d3e) +FallingObjects_InitialXCoords: ; 79d3e (1e:5d3e) db $38,$40,$50,$60,$70,$88,$90,$56,$67,$4A,$77,$84,$98,$32,$22,$5C,$6C,$7D,$8E,$99 -Func_79d52: ; 79d52 (1e:5d52) - ld hl, wTrainerSpriteOffset - ld de, Unknown_79d63 - ld a, [W_SUBANIMTRANSFORM] +FallingObjects_InitMovementData: ; 79d52 (1e:5d52) + ld hl, wFallingObjectsMovementData + ld de, FallingObjects_InitialMovementData + ld a, [wNumFallingObjects] ld c, a -.asm_79d5c +.loop ld a, [de] ld [hli], a inc de dec c - jr nz, .asm_79d5c + jr nz, .loop ret -Unknown_79d63: ; 79d63 (1e:5d63) +FallingObjects_InitialMovementData: ; 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) +; Shakes the enemy HUD. + +; Make a copy of the back pic's tile patterns in sprite tile pattern VRAM. ld de, vBackPic ld hl, vSprites ld bc, 7 * 7 call CopyVideoData + xor a ld [hSCX], a + +; Copy wTileMap to BG map 0. The regular BG (not the window) is set to use +; map 0 and can be scrolled with SCX, which allows a shaking effect. ld hl, vBGMap0 - call Func_79e0d - ld a, $90 + call BattleAnimCopyTileMapToVRAM + +; Now that the regular BG is showing the same thing the window was, move the +; window off the screen so that we can modify its contents below. + ld a, SCREEN_HEIGHT_PIXELS ld [hWY], a - ld hl, vBGMap0 + $320 - call Func_79e0d - ld a, $38 + +; Copy wTileMap to VRAM such that the row below the enemy HUD (in wTileMap) is +; lined up with row 0 of the window. + ld hl, vBGMap1 - $20 * 7 + call BattleAnimCopyTileMapToVRAM + +; Move the window so that the row below the enemy HUD (in BG map 0) lines up +; with the top row of the window on the screen. This makes it so that the window +; covers everything below the enemy HD with a copy that looks just like what +; was there before. + ld a, 7 * 8 ld [hWY], a - call _AnimationShakeEnemyHUD + +; Write OAM entries so that the copy of the back pic from the top of this +; function shows up on screen. We need this because the back pic's Y coordinates +; range overlaps with that of the enemy HUD and we don't want to shake the top +; of the back pic when we shake the enemy HUD. The OAM copy won't be affected +; by SCX. + call ShakeEnemyHUD_WritePlayerMonPicOAM + ld hl, vBGMap0 - call Func_79e0d + call BattleAnimCopyTileMapToVRAM + +; Remove the back pic from the BG map. call AnimationHideMonPic call Delay3 - ld de, $0208 - call Func_79de9 + +; Use SCX to shake the regular BG. The window and the back pic OAM copy are +; not affected. + lb de, 2, 8 + call ShakeEnemyHUD_ShakeBG + +; Restore the original graphics. call AnimationShowMonPic call ClearSprites - ld a, $90 + ld a, SCREEN_HEIGHT_PIXELS ld [hWY], a ld hl, vBGMap1 - call Func_79e0d + call BattleAnimCopyTileMapToVRAM xor a ld [hWY], a call SaveScreenTilesToBuffer1 ld hl, vBGMap0 - call Func_79e0d + call BattleAnimCopyTileMapToVRAM call ClearScreen call Delay3 call LoadScreenTilesFromBuffer1 ld hl, vBGMap1 - jp Func_79e0d + jp BattleAnimCopyTileMapToVRAM ; b = tile ID list index ; c = base tile ID @@ -2851,27 +2925,27 @@ CopyTileIDsFromList: ; 79dda (1e:5dda) pop hl jp CopyTileIDs -Func_79de9: ; 79de9 (1e:5de9) +ShakeEnemyHUD_ShakeBG: ; 79de9 (1e:5de9) ld a, [hSCX] - ld [wTrainerSpriteOffset], a -.asm_79dee - ld a, [wTrainerSpriteOffset] + ld [wTempSCX], a +.loop + ld a, [wTempSCX] add d ld [hSCX], a ld c, 2 call DelayFrames - ld a, [wTrainerSpriteOffset] + ld a, [wTempSCX] sub d ld [hSCX], a ld c, 2 call DelayFrames dec e - jr nz, .asm_79dee - ld a, [wTrainerSpriteOffset] + jr nz, .loop + ld a, [wTempSCX] ld [hSCX], a ret -Func_79e0d: ; 79e0d (1e:5e0d) +BattleAnimCopyTileMapToVRAM: ; 79e0d (1e:5e0d) ld a, h ld [H_AUTOBGTRANSFERDEST + 1], a ld a, l @@ -2942,19 +3016,19 @@ PlayApplyingAttackSound: ; 79e6a (1e:5e6a) ld a, [wDamageMultipliers] and $7f ret z - cp $a + cp 10 ld a, $20 ld b, $30 ld c, SFX_DAMAGE - jr z, .asm_79e8b + jr z, .playSound ld a, $e0 ld b, $ff ld c, SFX_SUPER_EFFECTIVE - jr nc, .asm_79e8b + jr nc, .playSound ld a, $50 ld b, $1 ld c, SFX_NOT_VERY_EFFECTIVE -.asm_79e8b +.playSound ld [wc0f1], a ld a, b ld [wc0f2], a diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm index 056c55ea..e64cbabb 100644 --- a/engine/battle/battle_transitions.asm +++ b/engine/battle/battle_transitions.asm @@ -210,28 +210,28 @@ BattleTransition_Spiral: ; 70a72 (1c:4a72) .outwardSpiral coord hl, 10, 10 ld a, $3 - ld [wd09f], a + ld [wOutwardSpiralCurrentDirection], a ld a, l - ld [wd09b], a + ld [wOutwardSpiralTileMapPointer + 1], a ld a, h - ld [wd09a], a - ld b, $78 -.loop1 - ld c, $3 -.loop2 + ld [wOutwardSpiralTileMapPointer], a + ld b, 120 +.loop + ld c, 3 +.innerLoop push bc call BattleTransition_OutwardSpiral_ pop bc dec c - jr nz, .loop2 + jr nz, .innerLoop call DelayFrame dec b - jr nz, .loop1 + jr nz, .loop .done call BattleTransition_BlackScreen xor a - ld [wd09b], a - ld [wd09a], a + ld [wOutwardSpiralTileMapPointer + 1], a + ld [wOutwardSpiralTileMapPointer], a ret BattleTransition_InwardSpiral: ; 70aaa (1c:4aaa) @@ -286,69 +286,69 @@ BattleTransition_InwardSpiral_: ; 70ae0 (1c:4ae0) BattleTransition_OutwardSpiral_: ; 70af9 (1c:4af9) ld bc, -SCREEN_WIDTH ld de, SCREEN_WIDTH - ld a, [wd09b] + ld a, [wOutwardSpiralTileMapPointer + 1] ld l, a - ld a, [wd09a] + ld a, [wOutwardSpiralTileMapPointer] ld h, a - ld a, [wd09f] + ld a, [wOutwardSpiralCurrentDirection] cp $0 - jr z, .zero + jr z, .up cp $1 - jr z, .one + jr z, .left cp $2 - jr z, .two + jr z, .down cp $3 - jr z, .three -.done1 + jr z, .right +.keepSameDirection ld [hl], $ff -.done2_ +.done ld a, l - ld [wd09b], a + ld [wOutwardSpiralTileMapPointer + 1], a ld a, h - ld [wd09a], a + ld [wOutwardSpiralTileMapPointer], a ret -.zero +.up dec hl ld a, [hl] cp $ff - jr nz, .done2 + jr nz, .changeDirection inc hl add hl, bc - jr .done1 -.one + jr .keepSameDirection +.left add hl, de ld a, [hl] cp $ff - jr nz, .done2 + jr nz, .changeDirection add hl, bc dec hl - jr .done1 -.two + jr .keepSameDirection +.down inc hl ld a, [hl] cp $ff - jr nz, .done2 + jr nz, .changeDirection dec hl add hl, de - jr .done1 -.three + jr .keepSameDirection +.right add hl, bc ld a, [hl] cp $ff - jr nz, .done2 + jr nz, .changeDirection add hl, de inc hl - jr .done1 -.done2 + jr .keepSameDirection +.changeDirection ld [hl], $ff - ld a, [wd09f] + ld a, [wOutwardSpiralCurrentDirection] inc a cp $4 jr nz, .skip xor a .skip - ld [wd09f], a - jr .done2_ + ld [wOutwardSpiralCurrentDirection], a + jr .done FlashScreen: BattleTransition_FlashScreen_: ; 70b5d (1c:4b5d) diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 2be2f78a..0406fe7b 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -357,7 +357,7 @@ EnemyRan: ; 3c202 (f:4202) call PlaySoundWaitForCurrent xor a ld [H_WHOSETURN], a - jpab AnimationSlideEnemyMonOut + jpab AnimationSlideEnemyMonOff WildRanText: ; 3c229 (f:4229) TX_FAR _WildRanText diff --git a/engine/battle/ghost_marowak_anim.asm b/engine/battle/ghost_marowak_anim.asm index e3b3f42c..96e65f70 100644 --- a/engine/battle/ghost_marowak_anim.asm +++ b/engine/battle/ghost_marowak_anim.asm @@ -12,10 +12,10 @@ MarowakAnim: ; 708ca (1c:48ca) ld [H_AUTOBGTRANSFERENABLED], a ; disable BG transfer so we don't see the Marowak too soon ; replace ghost pic with Marowak in BG ld a, MAROWAK - ld [wHPBarMaxHP], a + ld [wChangeMonPicEnemyTurnSpecies], a ld a, $1 ld [H_WHOSETURN], a - callab Func_79793 + callab ChangeMonPic ; alternate between black and light grey 8 times. ; this makes the ghost's body appear to flash ld d, $80 diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm index 283bf32f..4e76d996 100755 --- a/engine/hidden_object_functions7.asm +++ b/engine/hidden_object_functions7.asm @@ -293,7 +293,7 @@ UpdateCinnabarGymGateTileBlocks_: ; 1eb0a (7:6b0a) ld a, $e .next pop bc - ld [wd09f], a + ld [wNewTileBlockID], a predef ReplaceTileBlock ld hl, $ffdb dec [hl] diff --git a/engine/intro.asm b/engine/intro.asm index 6b5c46c9..c7c4a04d 100755 --- a/engine/intro.asm +++ b/engine/intro.asm @@ -38,7 +38,7 @@ PlayIntroScene: ; 4169d (10:569d) ld a, SFX_INTRO_HIP call PlaySound xor a - ld [wd09f], a + ld [wIntroNidorinoBaseTile], a ld de, IntroNidorinoAnimation1 call AnimateIntroNidorino ; hop @@ -86,7 +86,7 @@ PlayIntroScene: ; 4169d (10:569d) ld a, SFX_INTRO_HIP call PlaySound ld a, $24 - ld [wd09f], a + ld [wIntroNidorinoBaseTile], a ld de, IntroNidorinoAnimation3 call AnimateIntroNidorino ld c, $1e @@ -105,7 +105,7 @@ PlayIntroScene: ; 4169d (10:569d) ld a, SFX_INTRO_HIP call PlaySound xor a - ld [wd09f], a + ld [wIntroNidorinoBaseTile], a ld de, IntroNidorinoAnimation4 call AnimateIntroNidorino ; hop @@ -118,7 +118,7 @@ PlayIntroScene: ; 4169d (10:569d) ret c ld a, $24 - ld [wd09f], a + ld [wIntroNidorinoBaseTile], a ld de, IntroNidorinoAnimation6 call AnimateIntroNidorino ld c, $1e @@ -129,7 +129,7 @@ PlayIntroScene: ; 4169d (10:569d) ld a, SFX_INTRO_LUNGE call PlaySound ld a, $48 - ld [wd09f], a + ld [wIntroNidorinoBaseTile], a ld de, IntroNidorinoAnimation7 jp AnimateIntroNidorino @@ -152,17 +152,17 @@ AnimateIntroNidorino: ; 41793 (10:5793) UpdateIntroNidorinoOAM: ; 417ae (10:57ae) ld hl, wOAMBuffer - ld a, [wd09f] + ld a, [wIntroNidorinoBaseTile] ld d, a .loop ld a, [W_BASECOORDY] add [hl] - ld [hli], a + ld [hli], a ; Y ld a, [W_BASECOORDX] add [hl] - ld [hli], a + ld [hli], a ; X ld a, d - ld [hli], a + ld [hli], a ; tile inc hl inc d dec c diff --git a/engine/items/items.asm b/engine/items/items.asm index a60d765a..b0013b46 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -319,7 +319,7 @@ ItemUseBall: ; d687 (3:5687) ld a,TOSS_ANIM ld [W_ANIMATIONID],a xor a - ld [$fff3],a + ld [H_WHOSETURN],a ld [wAnimationType],a ld [wDamageMultipliers],a ld a,[wWhichPokemon] diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm index 0bb2e1b4..cc9fe3a7 100755 --- a/engine/overworld/card_key.asm +++ b/engine/overworld/card_key.asm @@ -47,7 +47,7 @@ PrintCardKeyText: ; 52673 (14:6673) .notSilphCo11F ld a, $e .replaceCardKeyDoorTileBlock - ld [wd09f], a + ld [wNewTileBlockID], a predef ReplaceTileBlock ld hl, wd126 set 5, [hl] diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm index 293daee7..2056bbb0 100755 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -3,21 +3,21 @@ UsedCut: ; ef54 (3:6f54) ld [wActionResultOrTookBattleTurn], a ; initialise to failure value ld a, [W_CURMAPTILESET] and a ; OVERWORLD - jr z, .asm_ef6b + jr z, .overworld cp GYM - jr nz, .asm_ef77 + jr nz, .nothingToCut ld a, [wTileInFrontOfPlayer] cp $50 ; gym cut tree - jr nz, .asm_ef77 - jr .asm_ef82 -.asm_ef6b + jr nz, .nothingToCut + jr .canCut +.overworld dec a ld a, [wTileInFrontOfPlayer] cp $3d ; cut tree - jr z, .asm_ef82 + jr z, .canCut cp $52 ; grass - jr z, .asm_ef82 -.asm_ef77 + jr z, .canCut +.nothingToCut ld hl, .NothingToCutText jp PrintText @@ -25,9 +25,9 @@ UsedCut: ; ef54 (3:6f54) TX_FAR _NothingToCutText db "@" -.asm_ef82 +.canCut ld [wCutTile], a - ld a, $1 + ld a, 1 ld [wActionResultOrTookBattleTurn], a ; used cut ld a, [wWhichPokemon] ld hl, wPartyMonNicks @@ -37,7 +37,7 @@ UsedCut: ; ef54 (3:6f54) call GBPalWhiteOutWithDelay3 call ClearSprites call RestoreScreenTilesAndReloadTilePatterns - ld a, $90 + ld a, SCREEN_HEIGHT_PIXELS ld [hWY], a call Delay3 call LoadGBPal @@ -53,11 +53,11 @@ UsedCut: ; ef54 (3:6f54) res 6, [hl] ld a, $ff ld [wUpdateSpritesEnabled], a - call AnimateCutTree + call InitCutAnimOAM ld de, CutTreeBlockSwaps - call Func_f09f + call ReplaceTreeTileBlock call RedrawMapView - callba Func_79e96 + callba AnimCut ld a, $1 ld [wUpdateSpritesEnabled], a ld a, SFX_CUT @@ -71,14 +71,15 @@ UsedCutText: ; eff2 (3:6ff2) TX_FAR _UsedCutText db "@" -AnimateCutTree: ; eff7 (3:6ff7) +InitCutAnimOAM: ; eff7 (3:6ff7) xor a ld [wWhichAnimationOffsets], a ld a, $e4 ld [rOBP1], a ld a, [wCutTile] cp $52 - jr z, .asm_f020 + jr z, .grass +; tree ld de, Overworld_GFX + $2d0 ; cuttable tree sprite top row ld hl, vChars1 + $7c0 ld bc, (BANK(Overworld_GFX) << 8) + $02 @@ -87,45 +88,45 @@ AnimateCutTree: ; eff7 (3:6ff7) ld hl, vChars1 + $7e0 ld bc, (BANK(Overworld_GFX) << 8) + $02 call CopyVideoData - jr WriteCutTreeBoulderDustAnimationOAMBlock -.asm_f020 + jr WriteCutOrBoulderDustAnimationOAMBlock +.grass ld hl, vChars1 + $7c0 - call LoadCutTreeAnimationTilePattern + call LoadCutGrassAnimationTilePattern ld hl, vChars1 + $7d0 - call LoadCutTreeAnimationTilePattern + call LoadCutGrassAnimationTilePattern ld hl, vChars1 + $7e0 - call LoadCutTreeAnimationTilePattern + call LoadCutGrassAnimationTilePattern ld hl, vChars1 + $7f0 - call LoadCutTreeAnimationTilePattern - call WriteCutTreeBoulderDustAnimationOAMBlock + call LoadCutGrassAnimationTilePattern + call WriteCutOrBoulderDustAnimationOAMBlock ld hl, wOAMBuffer + $93 - ld de, $4 + ld de, 4 ld a, $30 ld c, e -.asm_f044 +.loop ld [hl], a add hl, de xor $60 dec c - jr nz, .asm_f044 + jr nz, .loop ret -LoadCutTreeAnimationTilePattern: ; f04c (3:704c) +LoadCutGrassAnimationTilePattern: ; f04c (3:704c) ld de, AnimationTileset2 + $60 ; tile depicting a leaf ld bc, (BANK(AnimationTileset2) << 8) + $01 jp CopyVideoData -WriteCutTreeBoulderDustAnimationOAMBlock: ; f055 (3:7055) - call GetCutTreeBoulderDustAnimationOffsets +WriteCutOrBoulderDustAnimationOAMBlock: ; f055 (3:7055) + call GetCutOrBoulderDustAnimationOffsets ld a, $9 - ld de, CutTreeBoulderDustAnimationTilesAndAttributes + ld de, CutOrBoulderDustAnimationTilesAndAttributes jp WriteOAMBlock -CutTreeBoulderDustAnimationTilesAndAttributes: ; f060 (3:7060) +CutOrBoulderDustAnimationTilesAndAttributes: ; f060 (3:7060) db $FC,$10,$FD,$10 db $FE,$10,$FF,$10 -GetCutTreeBoulderDustAnimationOffsets: ; f068 (3:7068) +GetCutOrBoulderDustAnimationOffsets: ; f068 (3:7068) ld hl, wSpriteStateData1 + 4 ld a, [hli] ; player's sprite screen Y position ld b, a @@ -140,10 +141,10 @@ GetCutTreeBoulderDustAnimationOffsets: ; f068 (3:7068) ld d, $0 ; de holds direction (00: down, 02: up, 04: left, 06: right) ld a, [wWhichAnimationOffsets] and a - ld hl, CutTreeAnimationOffsets - jr z, .asm_f084 + ld hl, CutAnimationOffsets + jr z, .next ld hl, BoulderDustAnimationOffsets -.asm_f084 +.next add hl, de ld e, [hl] inc hl @@ -156,7 +157,7 @@ GetCutTreeBoulderDustAnimationOffsets: ; f068 (3:7068) ld c, a ret -CutTreeAnimationOffsets: ; f08f (3:708f) +CutAnimationOffsets: ; f08f (3:708f) ; Each pair represents the x and y pixels offsets from the player of where the cut tree animation should be drawn db 8, 36 ; player is facing down db 8, 4 ; player is facing up @@ -171,75 +172,79 @@ BoulderDustAnimationOffsets: ; f097 (3:7097) db -24, 20 ; player is facing left db 40, 20 ; player is facing right -Func_f09f: ; f09f (3:709f) +ReplaceTreeTileBlock: ; f09f (3:709f) +; Determine the address of the tile block that contains the tile in front of the +; player (i.e. where the tree is) and replace it with the corresponding tile +; block that doesn't have the tree. push de ld a, [W_CURMAPWIDTH] - add $6 + add 6 ld c, a - ld b, $0 - ld d, $0 + ld b, 0 + ld d, 0 ld hl, wCurrentTileBlockMapViewPointer ld a, [hli] ld h, [hl] ld l, a add hl, bc - ld a, [wSpriteStateData1 + 9] + ld a, [wSpriteStateData1 + 9] ; player sprite's facing direction and a jr z, .down cp SPRITE_FACING_UP jr z, .up cp SPRITE_FACING_LEFT jr z, .left +; right ld a, [W_XBLOCKCOORD] and a - jr z, .asm_f0e0 - jr .asm_f0ec + jr z, .centerTileBlock + jr .rightOfCenter .down ld a, [W_YBLOCKCOORD] and a - jr z, .asm_f0e0 - jr .asm_f0df + jr z, .centerTileBlock + jr .belowCenter .up ld a, [W_YBLOCKCOORD] and a - jr z, .asm_f0e1 - jr .asm_f0e0 + jr z, .aboveCenter + jr .centerTileBlock .left ld a, [W_XBLOCKCOORD] and a - jr z, .asm_f0e6 - jr .asm_f0e0 -.asm_f0df + jr z, .leftOfCenter + jr .centerTileBlock +.belowCenter add hl, bc -.asm_f0e0 +.centerTileBlock add hl, bc -.asm_f0e1 +.aboveCenter ld e, $2 add hl, de - jr .asm_f0f0 -.asm_f0e6 + jr .next +.leftOfCenter ld e, $1 add hl, bc add hl, de - jr .asm_f0f0 -.asm_f0ec + jr .next +.rightOfCenter ld e, $3 add hl, bc add hl, de -.asm_f0f0 +.next pop de ld a, [hl] ld c, a -.asm_f0f3 +.loop ; find the matching tile block in the array ld a, [de] inc de inc de cp $ff ret z cp c - jr nz, .asm_f0f3 + jr nz, .loop dec de - ld a, [de] + ld a, [de] ; replacement tile block from matching array entry ld [hl], a ret diff --git a/engine/overworld/cut2.asm b/engine/overworld/cut2.asm index 3194b39b..1cf832b5 100755 --- a/engine/overworld/cut2.asm +++ b/engine/overworld/cut2.asm @@ -1,19 +1,19 @@ -Func_79e96: ; 79e96 (1e:5e96) +AnimCut: ; 79e96 (1e:5e96) ld a, [wCutTile] cp $52 - jr z, .asm_79ec8 + jr z, .grass ld c, $8 -.asm_79e9f +.cutTreeLoop push bc ld hl, wOAMBuffer + $91 - ld a, $1 - ld [wd08a], a - ld c, $2 + ld a, 1 + ld [wCoordAdjustmentAmount], a + ld c, 2 call AdjustOAMBlockXPos2 ld hl, wOAMBuffer + $99 - ld a, $ff - ld [wd08a], a - ld c, $2 + ld a, -1 + ld [wCoordAdjustmentAmount], a + ld c, 2 call AdjustOAMBlockXPos2 ld a, [rOBP1] xor $64 @@ -21,49 +21,49 @@ Func_79e96: ; 79e96 (1e:5e96) call DelayFrame pop bc dec c - jr nz, .asm_79e9f + jr nz, .cutTreeLoop ret -.asm_79ec8 - ld c, $2 -.asm_79eca +.grass + ld c, 2 +.cutGrassLoop push bc ld c, $8 - call Func_79eed - call Func_79f30 + call AnimCutGrass_UpdateOAMEntries + call AnimCutGrass_SwapOAMEntries ld c, $8 - call Func_79eed - call Func_79f30 + call AnimCutGrass_UpdateOAMEntries + call AnimCutGrass_SwapOAMEntries ld hl, wOAMBuffer + $90 - ld a, $2 - ld [wd08a], a - ld c, $4 + ld a, 2 + ld [wCoordAdjustmentAmount], a + ld c, 4 call AdjustOAMBlockYPos2 pop bc dec c - jr nz, .asm_79eca + jr nz, .cutGrassLoop ret -Func_79eed: ; 79eed (1e:5eed) +AnimCutGrass_UpdateOAMEntries: ; 79eed (1e:5eed) push bc ld hl, wOAMBuffer + $91 - ld a, $1 - ld [wd08a], a - ld c, $1 + ld a, 1 + ld [wCoordAdjustmentAmount], a + ld c, 1 call AdjustOAMBlockXPos2 ld hl, wOAMBuffer + $95 - ld a, $2 - ld [wd08a], a - ld c, $1 + ld a, 2 + ld [wCoordAdjustmentAmount], a + ld c, 1 call AdjustOAMBlockXPos2 ld hl, wOAMBuffer + $99 - ld a, $fe - ld [wd08a], a - ld c, $1 + ld a, -2 + ld [wCoordAdjustmentAmount], a + ld c, 1 call AdjustOAMBlockXPos2 ld hl, wOAMBuffer + $9d - ld a, $ff - ld [wd08a], a - ld c, $1 + ld a, -1 + ld [wCoordAdjustmentAmount], a + ld c, 1 call AdjustOAMBlockXPos2 ld a, [rOBP1] xor $64 @@ -71,19 +71,19 @@ Func_79eed: ; 79eed (1e:5eed) call DelayFrame pop bc dec c - jr nz, Func_79eed + jr nz, AnimCutGrass_UpdateOAMEntries ret -Func_79f30: ; 79f30 (1e:5f30) +AnimCutGrass_SwapOAMEntries: ; 79f30 (1e:5f30) ld hl, wOAMBuffer + $90 - ld de, wHPBarMaxHP + ld de, wBuffer ld bc, $8 call CopyData ld hl, wOAMBuffer + $98 ld de, wOAMBuffer + $90 ld bc, $8 call CopyData - ld hl, wHPBarMaxHP + ld hl, wBuffer ld de, wOAMBuffer + $98 ld bc, $8 jp CopyData diff --git a/engine/overworld/ssanne.asm b/engine/overworld/ssanne.asm index a59ae794..8c5485e2 100755 --- a/engine/overworld/ssanne.asm +++ b/engine/overworld/ssanne.asm @@ -8,14 +8,14 @@ AnimateBoulderDust: ; 79f54 (1e:5f54) ld a, %11100100 ld [rOBP1], a call LoadSmokeTileFourTimes - callba WriteCutTreeBoulderDustAnimationOAMBlock + callba WriteCutOrBoulderDustAnimationOAMBlock ld c, 8 ; number of steps in animation .loop push bc call GetMoveBoulderDustFunctionPointer ld bc, .returnAddress push bc - ld c, $4 + ld c, 4 jp [hl] .returnAddress ld a, [rOBP1] @@ -36,7 +36,7 @@ GetMoveBoulderDustFunctionPointer: ; 79f92 (1e:5f92) ld b, $0 add hl, bc ld a, [hli] - ld [wd08a], a + ld [wCoordAdjustmentAmount], a ld a, [hli] ld e, a ld a, [hli] diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 990687ff..8e98f662 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -711,12 +711,12 @@ SlotMachine_PayCoinsToPlayer: ; 3776b (d:776b) SlotMachine_PutOutLitBalls: ; 377ce (d:77ce) ld a, $23 - ld [wd08a], a + ld [wNewSlotMachineBallTile], a jr SlotMachine_UpdateThreeCoinBallTiles SlotMachine_LightBalls: ; 377d5 (d:77d5) ld a, $14 - ld [wd08a], a + ld [wNewSlotMachineBallTile], a ld a, [wSlotMachineBet] dec a jr z, SlotMachine_UpdateOneCoinBallTiles @@ -739,7 +739,7 @@ SlotMachine_UpdateOneCoinBallTiles: ; 377fb (d:77fb) coord hl, 3, 6 SlotMachine_UpdateBallTiles: ; 377fe (d:77fe) - ld a, [wd08a] + ld a, [wNewSlotMachineBallTile] ld [hl], a ld bc, 13 add hl, bc diff --git a/engine/trade.asm b/engine/trade.asm index ba8de4ff..74fd3434 100755 --- a/engine/trade.asm +++ b/engine/trade.asm @@ -304,25 +304,25 @@ Trade_AnimateBallEnteringLinkCable: ; 412d2 (10:52d2) ld a, %11100100 ld [rOBP0], a xor a - ld [wd09f], a + ld [wLinkCableAnimBulgeToggle], a ld bc, $2060 .moveBallInsideLinkCableLoop push bc xor a ld de, Trade_BallInsideLinkCableOAM call WriteOAMBlock - ld a, [wd09f] + ld a, [wLinkCableAnimBulgeToggle] xor $1 - ld [wd09f], a + ld [wLinkCableAnimBulgeToggle], a add $7e ld hl, wOAMBuffer + $02 - ld de, $4 + ld de, 4 ld c, e -.cycleSpriteFramesLoop +.cycleLinkCableBulgeTile ld [hl], a add hl, de dec c - jr nz, .cycleSpriteFramesLoop + jr nz, .cycleLinkCableBulgeTile call Delay3 pop bc ld a, c diff --git a/home.asm b/home.asm index d5961082..8226e352 100644 --- a/home.asm +++ b/home.asm @@ -411,12 +411,12 @@ HandlePartyMenuInput:: ; 145a (0:145a) ld a,1 ld [wMenuWrappingEnabled],a ld a,$40 - ld [wd09b],a - call HandleMenuInputPokemonSelection + ld [wPartyMenuAnimMonEnabled],a + call HandleMenuInput_ call PlaceUnfilledArrowMenuCursor ld b,a xor a - ld [wd09b],a + ld [wPartyMenuAnimMonEnabled],a ld a,[wCurrentMenuItem] ld [wPartyAndBillsPCSavedMenuItem],a ld hl,wd730 @@ -3897,9 +3897,9 @@ WriteOAMBlock:: ; 3a97 (0:3a97) HandleMenuInput:: ; 3abe (0:3abe) xor a - ld [wd09b],a + ld [wPartyMenuAnimMonEnabled],a -HandleMenuInputPokemonSelection:: ; 3ac2 (0:3ac2) +HandleMenuInput_:: ; 3ac2 (0:3ac2) ld a,[H_DOWNARROWBLINKCNT1] push af ld a,[H_DOWNARROWBLINKCNT2] @@ -3915,7 +3915,7 @@ HandleMenuInputPokemonSelection:: ; 3ac2 (0:3ac2) call Delay3 .loop2 push hl - ld a,[wd09b] + ld a,[wPartyMenuAnimMonEnabled] and a ; is it a pokemon selection menu? jr z,.getJoypadState callba AnimatePartyMon ; shake mini sprite of selected pokemon diff --git a/scripts/agatha.asm b/scripts/agatha.asm index f0607785..60ddf606 100755 --- a/scripts/agatha.asm +++ b/scripts/agatha.asm @@ -21,7 +21,7 @@ AgathaScript_76443: ; 76443 (1d:6443) ld a, $3b AgathaScript_76459: ; 76459 (1d:6459) - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $2 predef_jump ReplaceTileBlock diff --git a/scripts/bruno.asm b/scripts/bruno.asm index 1aae7d19..c39656b9 100755 --- a/scripts/bruno.asm +++ b/scripts/bruno.asm @@ -21,7 +21,7 @@ BrunoScript_762ec: ; 762ec (1d:62ec) ld a, $24 BrunoScript_76302: ; 76302 (1d:6302) - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $2 predef_jump ReplaceTileBlock diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm index 48264603..84919b64 100755 --- a/scripts/celadongamecorner.asm +++ b/scripts/celadongamecorner.asm @@ -31,7 +31,7 @@ CeladonGameCornerScript_48bec: ; 48bec (12:4bec) CheckEvent EVENT_FOUND_ROCKET_HIDEOUT ret nz ld a, $2a - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $0208 predef_jump ReplaceTileBlock @@ -451,7 +451,7 @@ CeladonGameCornerText12: ; 48edd (12:4edd) call WaitForSoundToFinish SetEvent EVENT_FOUND_ROCKET_HIDEOUT ld a, $43 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $0208 predef ReplaceTileBlock jp TextScriptEnd diff --git a/scripts/lance.asm b/scripts/lance.asm index 4d0072be..9fa621da 100755 --- a/scripts/lance.asm +++ b/scripts/lance.asm @@ -24,12 +24,12 @@ LanceScript_5a2c4: ; 5a2c4 (16:62c4) LanceScript_5a2de: ; 5a2de (16:62de) push bc - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $602 call LanceScript_5a2f0 pop bc ld a, b - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $603 LanceScript_5a2f0: ; 5a2f0 (16:62f0) diff --git a/scripts/lorelei.asm b/scripts/lorelei.asm index 4a245d93..3c639d1e 100755 --- a/scripts/lorelei.asm +++ b/scripts/lorelei.asm @@ -22,7 +22,7 @@ LoreleiScript_76191: ; 76191 (1d:6191) .asm_761a9 ld a, $24 .asm_761ab - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $2 predef_jump ReplaceTileBlock diff --git a/scripts/mansion1.asm b/scripts/mansion1.asm index 7d349276..88bdd3ed 100755 --- a/scripts/mansion1.asm +++ b/scripts/mansion1.asm @@ -35,12 +35,12 @@ Mansion1Subscript1: ; 442c5 (11:42c5) Mansion1Script_44304: ; 44304 (11:4304) ld a, $2d - ld [wd09f], a + ld [wNewTileBlockID], a jr Mansion1ReplaceBlock Mansion1Script_4430b: ; 4430b (11:430b) ld a, $e - ld [wd09f], a + ld [wNewTileBlockID], a Mansion1ReplaceBlock: ; 44310 (11:4310) predef ReplaceTileBlock ret diff --git a/scripts/mansion2.asm b/scripts/mansion2.asm index 4f5aac9f..cb697b94 100755 --- a/scripts/mansion2.asm +++ b/scripts/mansion2.asm @@ -38,7 +38,7 @@ Mansion2Script_51fee: ; 51fee (14:5fee) ret Mansion2Script_5202f: ; 5202f (14:602f) - ld [wd09f], a + ld [wNewTileBlockID], a predef_jump ReplaceTileBlock Mansion2Script_Switches: ; 52037 (14:6037) diff --git a/scripts/rockethideout1.asm b/scripts/rockethideout1.asm index ccf40cb4..c658596e 100755 --- a/scripts/rockethideout1.asm +++ b/scripts/rockethideout1.asm @@ -26,7 +26,7 @@ RocketHideout1Script_44be0: ; 44be0 (11:4be0) .asm_44c01 ld a, $e .asm_44c03 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $080c predef_jump ReplaceTileBlock diff --git a/scripts/rockethideout4.asm b/scripts/rockethideout4.asm index 3c312d4c..ed2bb61d 100755 --- a/scripts/rockethideout4.asm +++ b/scripts/rockethideout4.asm @@ -26,7 +26,7 @@ RocketHideout4Script_45473: ; 45473 (11:5473) .asm_45496 ld a, $e .asm_45498 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $050c predef_jump ReplaceTileBlock diff --git a/scripts/silphco10.asm b/scripts/silphco10.asm index 326b0aeb..fb419a22 100755 --- a/scripts/silphco10.asm +++ b/scripts/silphco10.asm @@ -19,7 +19,7 @@ SilphCo10Script_5a14f: ; 5a14f (16:614f) CheckEvent EVENT_SILPH_CO_10_UNLOCKED_DOOR ret nz ld a, $54 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $405 predef_jump ReplaceTileBlock diff --git a/scripts/silphco11.asm b/scripts/silphco11.asm index 8f37b57f..5de025f0 100755 --- a/scripts/silphco11.asm +++ b/scripts/silphco11.asm @@ -19,7 +19,7 @@ SilphCo11Script_62110: ; 62110 (18:6110) CheckEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR ret nz ld a, $20 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $603 predef_jump ReplaceTileBlock diff --git a/scripts/silphco2.asm b/scripts/silphco2.asm index a8d0fa56..b758455e 100755 --- a/scripts/silphco2.asm +++ b/scripts/silphco2.asm @@ -20,7 +20,7 @@ SilphCo2Script_59d07: ; 59d07 (16:5d07) jr nz, .asm_59d2e push af ld a, $54 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $0202 predef ReplaceTileBlock pop af @@ -28,7 +28,7 @@ SilphCo2Script_59d07: ; 59d07 (16:5d07) CheckEventAfterBranchReuseA EVENT_SILPH_CO_2_UNLOCKED_DOOR2, EVENT_SILPH_CO_2_UNLOCKED_DOOR1 ret nz ld a, $54 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $0502 predef_jump ReplaceTileBlock diff --git a/scripts/silphco3.asm b/scripts/silphco3.asm index b55cc5eb..f693ea33 100755 --- a/scripts/silphco3.asm +++ b/scripts/silphco3.asm @@ -20,7 +20,7 @@ SilphCo3Script_59f71: ; 59f71 (16:5f71) jr nz, .asm_59f98 push af ld a, $5f - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $404 predef ReplaceTileBlock pop af @@ -28,7 +28,7 @@ SilphCo3Script_59f71: ; 59f71 (16:5f71) CheckEventAfterBranchReuseA EVENT_SILPH_CO_3_UNLOCKED_DOOR2, EVENT_SILPH_CO_3_UNLOCKED_DOOR1 ret nz ld a, $5f - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $408 predef_jump ReplaceTileBlock diff --git a/scripts/silphco4.asm b/scripts/silphco4.asm index 815170ff..0ea2c8c8 100755 --- a/scripts/silphco4.asm +++ b/scripts/silphco4.asm @@ -20,7 +20,7 @@ SilphCo4Script_19d21: ; 19d21 (6:5d21) jr nz, .asm_19d48 push af ld a, $54 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $0602 predef ReplaceTileBlock pop af @@ -28,7 +28,7 @@ SilphCo4Script_19d21: ; 19d21 (6:5d21) CheckEventAfterBranchReuseA EVENT_SILPH_CO_4_UNLOCKED_DOOR2, EVENT_SILPH_CO_4_UNLOCKED_DOOR1 ret nz ld a, $54 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $0406 predef_jump ReplaceTileBlock diff --git a/scripts/silphco5.asm b/scripts/silphco5.asm index ecc57537..d6f35993 100755 --- a/scripts/silphco5.asm +++ b/scripts/silphco5.asm @@ -20,7 +20,7 @@ SilphCo5Script_19f4d: ; 19f4d (6:5f4d) jr nz, .asm_19f74 push af ld a, $5f - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $0203 predef ReplaceTileBlock pop af @@ -29,7 +29,7 @@ SilphCo5Script_19f4d: ; 19f4d (6:5f4d) jr nz, .asm_19f87 push af ld a, $5f - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $0603 predef ReplaceTileBlock pop af @@ -37,7 +37,7 @@ SilphCo5Script_19f4d: ; 19f4d (6:5f4d) CheckEventAfterBranchReuseA EVENT_SILPH_CO_5_UNLOCKED_DOOR3, EVENT_SILPH_CO_5_UNLOCKED_DOOR2 ret nz ld a, $5f - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $0507 predef_jump ReplaceTileBlock diff --git a/scripts/silphco6.asm b/scripts/silphco6.asm index a84f0dc4..25fbcef9 100755 --- a/scripts/silphco6.asm +++ b/scripts/silphco6.asm @@ -19,7 +19,7 @@ SilphCo6Script_1a1bf: ; 1a1bf (6:61bf) CheckEvent EVENT_SILPH_CO_6_UNLOCKED_DOOR ret nz ld a, $5f - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $0602 predef_jump ReplaceTileBlock diff --git a/scripts/silphco7.asm b/scripts/silphco7.asm index 26d9e62f..7169f0c0 100755 --- a/scripts/silphco7.asm +++ b/scripts/silphco7.asm @@ -20,7 +20,7 @@ SilphCo7Script_51b77: ; 51b77 (14:5b77) jr nz, .asm_51b9e push af ld a, $54 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $305 predef ReplaceTileBlock pop af @@ -29,7 +29,7 @@ SilphCo7Script_51b77: ; 51b77 (14:5b77) jr nz, .asm_51bb1 push af ld a, $54 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $20a predef ReplaceTileBlock pop af @@ -37,7 +37,7 @@ SilphCo7Script_51b77: ; 51b77 (14:5b77) CheckEventAfterBranchReuseA EVENT_SILPH_CO_7_UNLOCKED_DOOR3, EVENT_SILPH_CO_7_UNLOCKED_DOOR2 ret nz ld a, $54 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $60a predef_jump ReplaceTileBlock diff --git a/scripts/silphco8.asm b/scripts/silphco8.asm index 26a89355..7545f359 100755 --- a/scripts/silphco8.asm +++ b/scripts/silphco8.asm @@ -19,7 +19,7 @@ SilphCo8Script_5651a: ; 5651a (15:651a) CheckEvent EVENT_SILPH_CO_8_UNLOCKED_DOOR ret nz ld a, $5f - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $403 predef_jump ReplaceTileBlock diff --git a/scripts/silphco9.asm b/scripts/silphco9.asm index 8960c290..557ce1f1 100755 --- a/scripts/silphco9.asm +++ b/scripts/silphco9.asm @@ -20,7 +20,7 @@ SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1) jr nz, .asm_5d7f8 push af ld a, $5f - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $401 predef ReplaceTileBlock pop af @@ -29,7 +29,7 @@ SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1) jr nz, .asm_5d80b push af ld a, $54 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $209 predef ReplaceTileBlock pop af @@ -38,7 +38,7 @@ SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1) jr nz, .asm_5d81e push af ld a, $54 - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $509 predef ReplaceTileBlock pop af @@ -46,7 +46,7 @@ SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1) CheckEventAfterBranchReuseA EVENT_SILPH_CO_9_UNLOCKED_DOOR4, EVENT_SILPH_CO_9_UNLOCKED_DOOR3 ret nz ld a, $5f - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $605 predef_jump ReplaceTileBlock diff --git a/scripts/vermiliongym.asm b/scripts/vermiliongym.asm index 8c400b5f..0282e340 100755 --- a/scripts/vermiliongym.asm +++ b/scripts/vermiliongym.asm @@ -37,7 +37,7 @@ VermilionGymScript_5ca6d: ; 5ca6d (17:4a6d) call PlaySound ld a, $5 .asm_5ca7f - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $202 predef_jump ReplaceTileBlock diff --git a/scripts/victoryroad1.asm b/scripts/victoryroad1.asm index 91e20ad3..dbb69a64 100755 --- a/scripts/victoryroad1.asm +++ b/scripts/victoryroad1.asm @@ -14,7 +14,7 @@ VictoryRoad1Script: ; 5da0a (17:5a0a) CheckEvent EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH ret z ld a, $1d - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $604 predef_jump ReplaceTileBlock diff --git a/scripts/victoryroad2.asm b/scripts/victoryroad2.asm index b7aa40b5..41fe0212 100755 --- a/scripts/victoryroad2.asm +++ b/scripts/victoryroad2.asm @@ -33,7 +33,7 @@ VictoryRoad2Script_517c9: ; 517c9 (14:57c9) ld bc, $70b VictoryRoad2Script_517e2: ; 517e2 (14:57e2) - ld [wd09f], a + ld [wNewTileBlockID], a predef ReplaceTileBlock ret diff --git a/scripts/victoryroad3.asm b/scripts/victoryroad3.asm index 2984e4ae..33a29e44 100755 --- a/scripts/victoryroad3.asm +++ b/scripts/victoryroad3.asm @@ -16,7 +16,7 @@ VictoryRoad3Script_44996: ; 44996 (11:4996) CheckEventHL EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1 ret z ld a, $1d - ld [wd09f], a + ld [wNewTileBlockID], a ld bc, $503 predef_jump ReplaceTileBlock diff --git a/wram.asm b/wram.asm index da981d22..14f3c5af 100755 --- a/wram.asm +++ b/wram.asm @@ -409,7 +409,11 @@ wSlotMachineSavedROMBank:: ; cc5e ds 12 wcc6b:: ds 14 ; doesn't seem to be used for anything, probably just more storage -wcc79:: ds 30 ; used in battle animations + +wAnimPalette:: ; cc79 + ds 1 + + ds 29 wNPCMovementDirections2:: ; cc97 @@ -647,6 +651,13 @@ wOverrideSimulatedJoypadStatesMask:: ; cd3b ds 1 +wFallingObjectsMovementData:: ; cd3d +; up to 20 bytes (one byte for each falling object) + +wSavedY:: ; cd3d + +wTempSCX:: ; cd3d + wBattleTransitionCircleScreenQuadrantY:: ; cd3d ; 0 = upper half (Y < 9) ; 1 = lower half (Y >= 9) @@ -1050,9 +1061,13 @@ wLearningMovesFromDayCare:: ; cee9 ; whether WriteMonMoves is being used to make a mon learn moves from day care ; non-zero if so +wChangeMonPicEnemyTurnSpecies:: ; cee9 + wHPBarMaxHP:: ; cee9 ds 1 +wChangeMonPicPlayerTurnSpecies:: ; ceea + wEvoNewSpecies:: ; ceea ds 1 @@ -1554,12 +1569,34 @@ W_NUMFBTILES:: ; d089 ; number of tiles in current battle animation frame block ds 1 +wFlashScreenLongCounter:: ; d08a + +wSpiralBallsBaseY:: ; d08a + +wFallingObjectMovementByte:: ; d08a +; bits 0-6: index into FallingObjects_DeltaXs array (0 - 8) +; bit 7: direction; 0 = right, 1 = left + +wNumShootingBalls:: ; d08a + wTradedMonMovingRight:: ; d08a ; $01 if mon is moving from left gameboy to right gameboy; $00 if vice versa wOptionsInitialized:: ; d08a -wd08a:: ds 1 ; used with sprites and displaying the option menu on the main menu screen? +wNewSlotMachineBallTile:: ; d08a + +wCoordAdjustmentAmount:: ; d08a +; how much to add to the X/Y coord + +wUnusedD08A:: ; d08a + ds 1 + +wSpiralBallsBaseX:: ; d08b + +wNumFallingObjects:: ; d08b + +wSlideMonDelay:: ; d08b wAnimCounter:: ; d08b ; generic counter variable for various animations @@ -1601,13 +1638,17 @@ W_SUBANIMSUBENTRYADDR:: ; d096 ds 2 -wd09a:: ds 1 ; used with the battle transition screen when entering a battle (screen slowly draws into black) +wOutwardSpiralTileMapPointer:: ; d09a + ds 1 + +wPartyMenuAnimMonEnabled:: ; d09b wTownMapSpriteBlinkingEnabled:: ; d09b ; non-zero when enabled. causes nest locations to blink on and off. ; the town selection cursor will blink regardless of what this value is -wd09b:: ds 1 ; also used with battle transition screen and move animations +wUnusedD09B:: ; d09b + ds 1 W_FBDESTADDR:: ; d09c ; current destination address in OAM for frame blocks (big endian) @@ -1625,9 +1666,28 @@ W_FBMODE:: ; d09e ; contain the upper and lower bit of each of the 8 pixels, respectively ds 1 +wLinkCableAnimBulgeToggle:: ; d09f +; 0 = small +; 1 = big + +wIntroNidorinoBaseTile:: ; d09f + +wOutwardSpiralCurrentDirection:: ; d09f + +wDropletTile:: ; d09f + wNewTileBlockID:: ; d09f -wd09f:: ds 1 ; used with predef ReplaceTileBlock +wWhichBattleAnimTileset:: ; d09f + +wSquishMonCurrentDirection:: ; d09f +; 0 = left +; 1 = right + +wSlideMonUpBottomRowLeftTile:: ; d09f +; the tile ID of the leftmost tile in the bottom row in AnimationSlideMonUp_ + ds 1 + wDisableVBlankWYUpdate:: ds 1 ; if non-zero, don't update WY during V-blank W_SPRITECURPOSX:: ; d0a1 -- cgit v1.3.1-sl0p From f658aff5383fa1e22343efc17e4551c6e7685a39 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Fri, 7 Aug 2015 05:20:37 -0700 Subject: named wram variables --- engine/battle/animations.asm | 2 +- engine/battle/core.asm | 34 +++++++++++++++++----------------- engine/battle/experience.asm | 4 ++-- engine/items/items.asm | 43 +++++++++++++++++++------------------------ engine/menu/status_screen.asm | 2 +- wram.asm | 15 +++++++++++++++ 6 files changed, 55 insertions(+), 45 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 424190d3..b46842ec 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -2956,7 +2956,7 @@ TossBallAnimation: ; 79e16 (1e:5e16) ld a,[W_ISINBATTLE] cp a,2 jr z,.BlockBall ; if in trainer battle, play different animation - ld a,[wd11e] + ld a,[wPokeBallAnimData] ld b,a ; upper nybble: how many animations (from PokeBallAnimations) to play diff --git a/engine/battle/core.asm b/engine/battle/core.asm index bc8fbc7d..004859da 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -2962,7 +2962,7 @@ PrintMenuItem: ; 3d4b6 (f:54b6) lb bc, 1, 2 call PrintNumber coord hl, 8, 11 - ld de, wd11e + ld de, wMaxPP lb bc, 1, 2 call PrintNumber call GetCurrentMove @@ -5287,7 +5287,7 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5) ld d,a ; d = type 1 of defender ld e,[hl] ; e = type 2 of defender ld a,[W_PLAYERMOVETYPE] - ld [wd11e],a + ld [wMoveType],a ld a,[H_WHOSETURN] and a jr z,.next @@ -5301,9 +5301,9 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5) ld d,a ; d = type 1 of defender ld e,[hl] ; e = type 2 of defender ld a,[W_ENEMYMOVETYPE] - ld [wd11e],a + ld [wMoveType],a .next - ld a,[wd11e] ; move type + ld a,[wMoveType] 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? @@ -5328,8 +5328,8 @@ AdjustDamageForMoveType: ; 3e3a5 (f:63a5) ld hl,wDamageMultipliers set 7,[hl] .skipSameTypeAttackBonus - ld a,[wd11e] - ld b,a ; b = move type + ld a,[wMoveType] + ld b,a ld hl,TypeEffects .loop ld a,[hli] ; a = "attacking type" of the current type pair @@ -5392,29 +5392,29 @@ 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 [wd11e] +; the result is stored in [wTypeEffectiveness] ; ($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 d,a ; d = type of enemy move ld hl,wBattleMonType - ld b,[hl] ; b = type 1 of player's pokemon + ld b,[hl] ; b = type 1 of player's pokemon inc hl - ld c,[hl] ; c = type 2 of player's pokemon + ld c,[hl] ; c = type 2 of player's pokemon ld a,$10 - ld [wd11e],a ; initialize [wd11e] to neutral effectiveness + ld [wTypeEffectiveness],a ; initialize to neutral effectiveness ld hl,TypeEffects .loop ld a,[hli] cp a,$ff ret z - cp d ; match the type of the move + cp d ; match the type of the move jr nz,.nextTypePair1 ld a,[hli] - cp b ; match with type 1 of pokemon + cp b ; match with type 1 of pokemon jr z,.done - cp c ; or match with type 2 of pokemon + cp c ; or match with type 2 of pokemon jr z,.done jr .nextTypePair2 .nextTypePair1 @@ -5424,7 +5424,7 @@ AIGetTypeEffectiveness: ; 3e449 (f:6449) jr .loop .done ld a,[hl] - ld [wd11e],a ; store damage multiplier + ld [wTypeEffectiveness],a ; store damage multiplier ret INCLUDE "data/type_effects.asm" @@ -6577,12 +6577,12 @@ CalculateModifiedStats: ; 3ed99 (f:6d99) CalculateModifiedStat: ; 3eda5 (f:6da5) push bc push bc - ld a, [wd11e] + ld a, [wCalculateWhoseStats] and a ld a, c ld hl, wBattleMonAttack ld de, wPlayerMonUnmodifiedAttack - ld bc, wPlayerMonAttackMod + ld bc, wPlayerMonStatMods jr z, .next ld hl, wEnemyMonAttack ld de, wEnemyMonUnmodifiedAttack diff --git a/engine/battle/experience.asm b/engine/battle/experience.asm index edee81b1..433588e3 100644 --- a/engine/battle/experience.asm +++ b/engine/battle/experience.asm @@ -231,8 +231,8 @@ GainExperience: ; 5524f (15:524f) ld bc, 1 + NUM_STATS * 2 call CopyData .recalcStatChanges - xor a - ld [wd11e], a + xor a ; battle mon + ld [wCalculateWhoseStats], a callab CalculateModifiedStats callab ApplyBurnAndParalysisPenaltiesToPlayer callab ApplyBadgeStatBoosts diff --git a/engine/items/items.asm b/engine/items/items.asm index 364570da..a45b9185 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -312,7 +312,7 @@ ItemUseBall: ; d687 (3:5687) ld b,$63 .next12 ld a,b - ld [wd11e],a + ld [wPokeBallAnimData],a .BallSuccess2 ld c,20 call DelayFrames @@ -331,7 +331,7 @@ ItemUseBall: ; d687 (3:5687) ld [wcf91],a pop af ld [wWhichPokemon],a - ld a,[wd11e] + ld a,[wPokeBallAnimData] cp a,$10 ld hl,ItemUseBallText00 jp z,.printText0 @@ -1895,7 +1895,7 @@ ItemUsePPRestore: ; e31e (3:631e) ld [wPlayerMoveListIndex],a jr nz,.chooseMon ld hl,wPartyMon1Moves - ld bc,44 + ld bc, wPartyMon2 - wPartyMon1 call GetSelectedMoveOffset push hl ld a,[hl] @@ -1937,7 +1937,7 @@ ItemUsePPRestore: ; e31e (3:631e) cp b ; is the pokemon whose PP was restored active in battle? jr nz,.skipUpdatingInBattleData ld hl,wPartyMon1PP - ld bc,44 + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes ld de,wBattleMonPP ld bc,4 @@ -1959,12 +1959,12 @@ ItemUsePPRestore: ; e31e (3:631e) ld [wMonDataLocation],a call GetMaxPP ld hl,wPartyMon1Moves - ld bc,44 + ld bc, wPartyMon2 - wPartyMon1 call GetSelectedMoveOffset - ld bc,21 + ld bc, wPartyMon1PP - wPartyMon1Moves add hl,bc ; hl now points to move's PP - ld a,[wd11e] - ld b,a ; b = max PP + ld a,[wMaxPP] + ld b,a ld a,[wPPRestoreItem] cp a,MAX_ETHER jr z,.fullyRestorePP @@ -2009,7 +2009,7 @@ ItemUsePPRestore: ; e31e (3:631e) .elixirLoop push bc ld hl,wPartyMon1Moves - ld bc,44 + ld bc, wPartyMon2 - wPartyMon1 call GetSelectedMoveOffset ld a,[hl] and a ; does the current slot have a move? @@ -2283,20 +2283,17 @@ 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 -; [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,wPartyMon1Moves - ld bc,44 + ld bc, wPartyMon2 - wPartyMon1 ld a,[wWhichPokemon] call AddNTimes push hl ld de,wNormalMaxPPList - 1 predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wNormalMaxPPList pop hl - ld c,21 + ld c, wPartyMon1PP - wPartyMon1Moves ld b,0 add hl,bc ; hl now points to move 1 PP ld de,wNormalMaxPPList @@ -2307,7 +2304,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,[wd11e] + ld a,[wUsingPPUp] 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 @@ -2329,8 +2326,6 @@ RestoreBonusPP: ; e606 (3:6606) ; INPUT: ; [de] = normal max PP ; [hl] = move PP -; [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 ld a,[de] ; normal max PP of move @@ -2358,9 +2353,9 @@ AddBonusPP: ; e642 (3:6642) .addAmount add b ld b,a - ld a,[wd11e] - dec a - jr z,.done + ld a,[wUsingPPUp] + dec a ; is the player using a PP Up right now? + jr z,.done ; if so, only add the bonus once dec c jr nz,.loop .done @@ -2379,7 +2374,7 @@ AddBonusPP: ; e642 (3:6642) ; 04: player's in-battle pokemon ; [wCurrentMenuItem] = move index ; OUTPUT: -; [wd11e] = max PP +; [wMaxPP] = max PP GetMaxPP: ; e677 (3:6677) ld a,[wMonDataLocation] and a @@ -2432,12 +2427,12 @@ GetMaxPP: ; e677 (3:6677) ld l,e inc hl ; hl = wcd73 ld [hl],a - xor a - ld [wd11e],a ; no limit on PP Up amount + xor a ; add the bonus for the existing PP Up count + ld [wUsingPPUp],a call AddBonusPP ; add bonus PP from PP Ups ld a,[hl] and a,%00111111 ; mask out the PP Up count - ld [wd11e],a ; store max PP + ld [wMaxPP],a ; store max PP ret GetSelectedMoveOffset: ; e6e3 (3:66e3) diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm index d8a504bb..34e2539a 100755 --- a/engine/menu/status_screen.asm +++ b/engine/menu/status_screen.asm @@ -371,7 +371,7 @@ StatusScreen2: ; 12b57 (4:6b57) call PrintNumber ld a, "/" ld [hli], a - ld de, wd11e + ld de, wMaxPP lb bc, 1, 2 call PrintNumber pop hl diff --git a/wram.asm b/wram.asm index 690ffef9..547d00e4 100755 --- a/wram.asm +++ b/wram.asm @@ -1882,6 +1882,21 @@ wFirstMonsNotOutYet:: ; d11d ; which will be the first mon sent out. ds 1 +; lower nybble: number of shakes +; upper nybble: number of animations to play +wPokeBallAnimData:: ; d11e + +wUsingPPUp:: ; d11e + +wMaxPP:: ; d11e + +; 0 for player, non-zero for enemy +wCalculateWhoseStats:: ; d11e + +wTypeEffectiveness:: ; d11e + +wMoveType:: ; d11e + wNumSetBits:: ; d11e wd11e:: ds 1 ; used as a Pokemon and Item storage value. Also used as an output value for CountSetBits -- cgit v1.3.1-sl0p From 2b018159997e3b580efd114ff4e3548a0de3cbc5 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Sat, 8 Aug 2015 22:32:44 -0700 Subject: commented audio code --- audio.asm | 32 +- audio/engine_1.asm | 1277 ++++++++++++++++++---------------- audio/engine_2.asm | 540 +++++++------- audio/engine_3.asm | 532 +++++++------- constants/hardware_constants.asm | 1 - constants/music_constants.asm | 39 ++ engine/battle/animations.asm | 18 +- engine/battle/common_text.asm | 4 +- engine/battle/core.asm | 16 +- engine/battle/end_of_battle.asm | 2 +- engine/cable_club.asm | 16 +- engine/evolution.asm | 6 +- engine/hall_of_fame.asm | 8 +- engine/hidden_object_functions7.asm | 6 +- engine/intro.asm | 6 +- engine/items/items.asm | 8 +- engine/menu/pokedex.asm | 4 +- engine/menu/status_screen.asm | 4 +- engine/oak_speech.asm | 10 +- engine/overworld/elevator.asm | 2 +- engine/overworld/healing_machine.asm | 40 +- engine/overworld/npc_movement.asm | 12 +- engine/overworld/pokecenter.asm | 12 +- engine/slot_machine.asm | 4 +- engine/titlescreen.asm | 6 +- home.asm | 52 +- home/audio.asm | 233 ++++--- home/init.asm | 14 +- home/overworld.asm | 22 +- home/vblank.asm | 12 +- hram.asm | 4 +- scripts/ceruleancity.asm | 4 +- scripts/oakslab.asm | 4 +- scripts/pewterpokecenter.asm | 4 +- scripts/pokemontower2.asm | 4 +- scripts/redshouse1f.asm | 8 +- scripts/route22.asm | 10 +- scripts/silphco7.asm | 4 +- scripts/ssanne2.asm | 4 +- scripts/ssanne7.asm | 12 +- scripts/vermiliondock.asm | 2 +- wram.asm | 239 +++++-- 42 files changed, 1731 insertions(+), 1506 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/audio.asm b/audio.asm index 286dc7ed..037145d8 100644 --- a/audio.asm +++ b/audio.asm @@ -364,10 +364,10 @@ SECTION "Audio Engine 1", ROMX, BANK[AUDIO_1] PlayBattleMusic:: ; 0x90c6 xor a - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld [wLowHealthAlarm], a dec a - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ; stop music call DelayFrame ld c, BANK(Music_GymLeaderBattle) @@ -406,7 +406,7 @@ Music_RivalAlternateStart:: ; 0x9b47 ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL call PlayMusic - ld hl, wc006 + ld hl, wChannelCommandPointers ld de, Music_MeetRival_branch_b1a2 call Audio1_OverwriteChannelPointer ld de, Music_MeetRival_branch_b21d @@ -425,30 +425,30 @@ Music_RivalAlternateTempo:: ; 0x9b65 ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL call PlayMusic - ld hl, wc006 + ld hl, wChannelCommandPointers ld de, Music_MeetRival_branch_b119 jp Audio1_OverwriteChannelPointer ; applies both the alternate start and alternate tempo Music_RivalAlternateStartAndTempo:: ; 0x9b75 call Music_RivalAlternateStart - ld hl, wc006 + ld hl, wChannelCommandPointers ld de, Music_MeetRival_branch_b19b jp Audio1_OverwriteChannelPointer ; an alternate tempo for Cities1 which is used for the Hall of Fame room Music_Cities1AlternateTempo:: ; 0x9b81 - ld a, $a - ld [wcfc8], a - ld [wcfc9], a - ld a, $ff - ld [wMusicHeaderPointer], a + ld a, 10 + ld [wAudioFadeOutCounterReloadValue], a + ld [wAudioFadeOutCounter], a + ld a, $ff ; stop playing music after the fade-out is finished + ld [wAudioFadeOutControl], a ld c, 100 - call DelayFrames + call DelayFrames ; wait for the fade-out to finish ld c, BANK(Music_Cities1) ld a, MUSIC_CITIES1 call PlayMusic - ld hl, wc006 + ld hl, wChannelCommandPointers ld de, Music_Cities1_branch_aa6f jp Audio1_OverwriteChannelPointer @@ -477,7 +477,7 @@ Music_DoLowHealthAlarm:: ; 2136e (8:536e) .asm_2138a ld a, $86 - ld [wc02a], a ;disable sound channel? + ld [wChannelSoundIDs + CH4], a ;disable sound channel? ld a, [wLowHealthAlarm] and $7f ;decrement alarm timer. dec a @@ -491,7 +491,7 @@ Music_DoLowHealthAlarm:: ; 2136e (8:536e) .disableAlarm xor a ld [wLowHealthAlarm], a ;disable alarm - ld [wc02a], a ;re-enable sound channel? + ld [wChannelSoundIDs + CH4], a ;re-enable sound channel? ld de, .toneDataSilence jr .playTone @@ -542,7 +542,7 @@ Music_PokeFluteInBattle:: ; 22306 (8:6306) ld a, SFX_CAUGHT_MON call PlaySoundWaitForCurrent ; then immediately overwrtie the channel pointers - ld hl, wc00e + ld hl, wChannelCommandPointers + CH4 * 2 ld de, SFX_08_PokeFlute_Ch1 call Audio2_OverwriteChannelPointer ld de, SFX_08_PokeFlute_Ch2 @@ -572,7 +572,7 @@ PlayPokedexRatingSfx:: ; 7d13b (1f:513b) .gotSfxPointer push bc ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySoundWaitForCurrent pop bc ld b, $0 diff --git a/audio/engine_1.asm b/audio/engine_1.asm index 9a302ef3..c729fa7e 100644 --- a/audio/engine_1.asm +++ b/audio/engine_1.asm @@ -3,29 +3,29 @@ Audio1_UpdateMusic:: ; 0x9103 ld c, CH0 .loop - ld b, $0 - ld hl, wc026 + ld b, 0 + ld hl, wChannelSoundIDs add hl, bc ld a, [hl] and a jr z, .nextChannel ld a, c cp CH4 - jr nc, .asm_912e ; if sfx channel - ld a, [wc002] + jr nc, .applyAffects ; if sfx channel + ld a, [wMuteAudioAndPauseMusic] and a - jr z, .asm_912e + jr z, .applyAffects bit 7, a jr nz, .nextChannel set 7, a - ld [wc002], a - xor a - ld [$ff25], a - ld [$ff1a], a + ld [wMuteAudioAndPauseMusic], a + xor a ; disable all channels' output + ld [rNR51], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a jr .nextChannel -.asm_912e +.applyAffects call Audio1_ApplyMusicAffects .nextChannel ld a, c @@ -36,15 +36,9 @@ Audio1_UpdateMusic:: ; 0x9103 ; this routine checks flags for music effects currently applied ; to the channel and calls certain functions based on flags. -; known flags for wc02e: -; 0: toggleperfectpitch has been used -; 1: call has been used -; 3: a toggle used only by this routine for vibrato -; 4: pitchbend flag -; 6: dutycycle flag Audio1_ApplyMusicAffects: ; 0x9138 ld b, $0 - ld hl, wc0b6 ; delay until next note + ld hl, wChannelNoteDelayCounters ; delay until next note add hl, bc ld a, [hl] cp $1 ; if the delay is 1, play next note @@ -54,45 +48,45 @@ Audio1_ApplyMusicAffects: ; 0x9138 ld a, c cp CH4 jr nc, .startChecks ; if a sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr z, .startChecks ret .startChecks - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 6, [hl] ; dutycycle + bit BIT_ROTATE_DUTY, [hl] jr z, .checkForExecuteMusic call Audio1_ApplyDutyCycle .checkForExecuteMusic - ld b, $0 - ld hl, wc036 + ld b, 0 + ld hl, wChannelFlags2 add hl, bc - bit 0, [hl] + bit BIT_EXECUTE_MUSIC, [hl] jr nz, .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 2, [hl] - jr nz, .disablePitchBendVibrato + bit BIT_NOISE_OR_SFX, [hl] + jr nz, .skipPitchBendVibrato .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 4, [hl] ; pitchbend + bit BIT_PITCH_BEND_ON, [hl] jr z, .checkVibratoDelay jp Audio1_ApplyPitchBend .checkVibratoDelay - ld hl, wc04e ; vibrato delay + ld hl, wChannelVibratoDelayCounters add hl, bc ld a, [hl] and a ; check if delay is over jr z, .checkForVibrato dec [hl] ; otherwise, dec delay -.disablePitchBendVibrato +.skipPitchBendVibrato ret .checkForVibrato - ld hl, wc056 ; vibrato rate + ld hl, wChannelVibratoExtents add hl, bc ld a, [hl] and a @@ -100,38 +94,40 @@ Audio1_ApplyMusicAffects: ; 0x9138 ret ; no vibrato .vibrato ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc ld a, [hl] and $f and a - jr z, .vibratoAlreadyDone - dec [hl] ; apply vibrato pitch change + jr z, .applyVibrato + dec [hl] ; decrement counter ret -.vibratoAlreadyDone +.applyVibrato ld a, [hl] swap [hl] or [hl] - ld [hl], a ; reset the vibrato value and start again - ld hl, wc066 + ld [hl], a ; reload the counter + ld hl, wChannelFrequencyLowBytes add hl, bc ld e, [hl] ; get note pitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 3, [hl] ; this is the only code that sets/resets bit three so - jr z, .unset ; it continuously alternates which path it takes - res 3, [hl] +; This is the only code that sets/resets the vibrato direction bit, so it +; continuously alternates which path it takes. + bit BIT_VIBRATO_DIRECTION, [hl] + jr z, .unset + res BIT_VIBRATO_DIRECTION, [hl] ld a, d and $f ld d, a ld a, e sub d jr nc, .noCarry - ld a, $0 + ld a, 0 .noCarry jr .done .unset - set 3, [hl] + set BIT_VIBRATO_DIRECTION, [hl] ld a, d and $f0 swap a @@ -140,8 +136,8 @@ Audio1_ApplyMusicAffects: ; 0x9138 ld a, $ff .done ld d, a - ld b, $3 - call Audio1_9838 + ld b, REG_FREQUENCY_LO + call Audio1_GetRegisterPointer ld [hl], d ret @@ -149,16 +145,18 @@ Audio1_ApplyMusicAffects: ; 0x9138 ; like tempo changes, duty changes etc. and doesn't return ; until the first note is reached Audio1_PlayNextNote: ; 0x91d0 - ld hl, wc06e +; reload the vibrato delay counter + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld a, [hl] - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a - ld hl, wc02e + + ld hl, wChannelFlags1 add hl, bc - res 4, [hl] - res 5, [hl] + res BIT_PITCH_BEND_ON, [hl] + res BIT_PITCH_BEND_DECREASING, [hl] call Audio1_endchannel ret @@ -167,34 +165,35 @@ Audio1_endchannel: ; 0x91e6 ld d, a cp $ff ; is this command an endchannel? jp nz, Audio1_callchannel ; no - ld b, $0 ; yes - ld hl, wc02e + ld b, 0 + ld hl, wChannelFlags1 add hl, bc - bit 1, [hl] + bit BIT_CHANNEL_CALL, [hl] jr nz, .returnFromCall ld a, c cp CH3 jr nc, .noiseOrSfxChannel - jr .asm_923f + jr .disableChannelOutput .noiseOrSfxChannel - res 2, [hl] - ld hl, wc036 + res BIT_NOISE_OR_SFX, [hl] + ld hl, wChannelFlags2 add hl, bc - res 0, [hl] + res BIT_EXECUTE_MUSIC, [hl] cp CH6 - jr nz, .notSfxChannel3 + jr nz, .skipSfxChannel3 +; restart hardware channel 3 (wave channel) output ld a, $0 - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a -.notSfxChannel3 + ld [rNR30], a +.skipSfxChannel3 jr nz, .asm_9222 - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr z, .asm_9222 xor a - ld [wc003], a - jr .asm_923f + ld [wDisableChannelOutputWhenSfxEnds], a + jr .disableChannelOutput .asm_9222 jr .asm_9248 .returnFromCall @@ -203,10 +202,10 @@ Audio1_endchannel: ; 0x91e6 ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl ; store current channel address - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -217,36 +216,36 @@ Audio1_endchannel: ; 0x91e6 ld a, [de] ld [hl], a ; loads channel address to return to jp Audio1_endchannel -.asm_923f - ld hl, Unknown_9b1f +.disableChannelOutput + ld hl, Audio1_HWChannelDisableMasks add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a .asm_9248 - ld a, [wc02a] - cp $14 + ld a, [wChannelSoundIDs + CH4] + cp CRY_SFX_START jr nc, .asm_9251 - jr .asm_926e + jr .skipCry .asm_9251 - ld a, [wc02a] - cp $86 - jr z, .asm_926e - jr c, .asm_925c - jr .asm_926e -.asm_925c + ld a, [wChannelSoundIDs + CH4] + cp CRY_SFX_END + jr z, .skipCry + jr c, .cry + jr .skipCry +.cry ld a, c cp CH4 jr z, .asm_9265 - call Audio1_96c7 + call Audio1_GoBackOneCommandIfCry ret c .asm_9265 - ld a, [wc005] - ld [$ff24], a + ld a, [wSavedVolume] + ld [rNR50], a xor a - ld [wc005], a -.asm_926e - ld hl, wc026 + ld [wSavedVolume], a +.skipCry + ld hl, wChannelSoundIDs add hl, bc ld [hl], b ret @@ -254,7 +253,7 @@ Audio1_endchannel: ; 0x91e6 Audio1_callchannel: ; 0x9274 cp $fd ; is this command a callchannel? jp nz, Audio1_loopchannel ; no - call Audio1_GetNextMusicByte ; yes + call Audio1_GetNextMusicByte push af call Audio1_GetNextMusicByte ld d, a @@ -265,10 +264,10 @@ Audio1_callchannel: ; 0x9274 ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -283,20 +282,20 @@ Audio1_callchannel: ; 0x9274 inc hl ld [hl], d ; overwrite current address with pointer ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - set 1, [hl] ; set the call flag + set BIT_CHANNEL_CALL, [hl] ; set the call flag jp Audio1_endchannel Audio1_loopchannel: ; 0x92a9 cp $fe ; is this command a loopchannel? jp nz, Audio1_notetype ; no - call Audio1_GetNextMusicByte ; yes + call Audio1_GetNextMusicByte ld e, a and a jr z, .infiniteLoop - ld b, $0 - ld hl, wc0be + ld b, 0 + ld hl, wChannelLoopCounters add hl, bc ld a, [hl] cp e @@ -319,7 +318,7 @@ Audio1_loopchannel: ; 0x92a9 ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de pop af ld [hli], a @@ -330,10 +329,10 @@ Audio1_notetype: ; 0x92e4 and $f0 cp $d0 ; is this command a notetype? jp nz, Audio1_toggleperfectpitch ; no - ld a, d ; yes + ld a, d and $f ld b, $0 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld [hl], a ; store low nibble as speed ld a, c @@ -345,15 +344,15 @@ Audio1_notetype: ; 0x92e4 cp CH2 jr z, .musicChannel3 cp CH6 - jr nz, .notChannel3 - ld hl, wc0e7 - jr .sfxChannel3 + jr nz, .skipChannel3 + ld hl, wSfxWaveInstrument + jr .channel3 .musicChannel3 - ld hl, wc0e6 -.sfxChannel3 + ld hl, wMusicWaveInstrument +.channel3 ld a, d and $f - ld [hl], a ; store low nibble of param as duty + ld [hl], a ; store low nibble of param as wave instrument ld a, d and $30 sla a @@ -362,9 +361,9 @@ Audio1_notetype: ; 0x92e4 ; if channel 3, store high nibble as volume ; else, store volume (high nibble) and fade (low nibble) -.notChannel3 - ld b, $0 - ld hl, wc0de +.skipChannel3 + ld b, 0 + ld hl, wChannelVolumes add hl, bc ld [hl], d .noiseChannel @@ -374,56 +373,70 @@ Audio1_toggleperfectpitch: ; 0x9323 ld a, d cp $e8 ; is this command a toggleperfectpitch? jr nz, Audio1_vibrato ; no - ld b, $0 ; yes - ld hl, wc02e + ld b, 0 + ld hl, wChannelFlags1 add hl, bc ld a, [hl] xor $1 - ld [hl], a ; flip bit 0 of wc02e + ld [hl], a ; flip bit 0 of wChannelFlags1 jp Audio1_endchannel Audio1_vibrato: ; 0x9335 cp $ea ; is this command a vibrato? jr nz, Audio1_pitchbend ; no - call Audio1_GetNextMusicByte ; yes - ld b, $0 - ld hl, wc04e + call Audio1_GetNextMusicByte + ld b, 0 + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a ; store delay - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld [hl], a ; store delay call Audio1_GetNextMusicByte ld d, a + +; The high nybble of the command byte is the extent of the vibrato. +; Let n be the extent. +; The upper nybble of the channel's byte in the wChannelVibratoExtents +; array will store the extent above the note: (n / 2) + (n % 2). +; The lower nybble will store the extent below the note: (n / 2). +; These two values add to the total extent, n. and $f0 swap a - ld b, $0 - ld hl, wc056 + ld b, 0 + ld hl, wChannelVibratoExtents add hl, bc srl a ld e, a adc b swap a or e - ld [hl], a ; store rate as both high and low nibbles + ld [hl], a + +; The low nybble of the command byte is the rate of the vibrato. +; The high and low nybbles of the channel's byte in the wChannelVibratoRates +; array are both initialised to this value because the high nybble is the +; counter reload value and the low nybble is the counter itself, which should +; start at its value upon reload. ld a, d and $f ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc swap a or d - ld [hl], a ; store depth as both high and low nibbles + ld [hl], a + jp Audio1_endchannel Audio1_pitchbend: ; 0x936d cp $eb ; is this command a pitchbend? jr nz, Audio1_duty ; no - call Audio1_GetNextMusicByte ; yes - ld b, $0 - ld hl, wc076 + call Audio1_GetNextMusicByte + ld b, 0 + ld hl, wChannelPitchBendLengthModifiers add hl, bc - ld [hl], a ; store first param + ld [hl], a call Audio1_GetNextMusicByte ld d, a and $f0 @@ -431,18 +444,18 @@ Audio1_pitchbend: ; 0x936d ld b, a ld a, d and $f - call Audio1_9858 - ld b, $0 - ld hl, wc0a6 + call Audio1_CalculateFrequency + ld b, 0 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc - ld [hl], d ; store unknown part of second param - ld hl, wc0ae + ld [hl], d + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc - ld [hl], e ; store unknown part of second param - ld b, $0 - ld hl, wc02e + ld [hl], e + ld b, 0 + ld hl, wChannelFlags1 add hl, bc - set 4, [hl] ; set pitchbend flag + set BIT_PITCH_BEND_ON, [hl] call Audio1_GetNextMusicByte ld d, a jp Audio1_notelength @@ -450,12 +463,12 @@ Audio1_pitchbend: ; 0x936d Audio1_duty: ; 0x93a5 cp $ec ; is this command a duty? jr nz, Audio1_tempo ; no - call Audio1_GetNextMusicByte ; yes + call Audio1_GetNextMusicByte rrca rrca and $c0 - ld b, $0 - ld hl, wc03e + ld b, 0 + ld hl, wChannelDuties add hl, bc ld [hl], a ; store duty jp Audio1_endchannel @@ -463,96 +476,96 @@ Audio1_duty: ; 0x93a5 Audio1_tempo: ; 0x93ba cp $ed ; is this command a tempo? jr nz, Audio1_stereopanning ; no - ld a, c ; yes + ld a, c cp CH4 jr nc, .sfxChannel call Audio1_GetNextMusicByte - ld [wc0e8], a ; store first param + ld [wMusicTempo], a ; store first param call Audio1_GetNextMusicByte - ld [wc0e9], a ; store second param + ld [wMusicTempo + 1], a ; store second param xor a - ld [wc0ce], a ; clear RAM - ld [wc0cf], a - ld [wc0d0], a - ld [wc0d1], a + ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 1], a + ld [wChannelNoteDelayCountersFractionalPart + 2], a + ld [wChannelNoteDelayCountersFractionalPart + 3], a jr .musicChannelDone .sfxChannel call Audio1_GetNextMusicByte - ld [wc0ea], a ; store first param + ld [wSfxTempo], a ; store first param call Audio1_GetNextMusicByte - ld [wc0eb], a ; store second param + ld [wSfxTempo + 1], a ; store second param xor a - ld [wc0d2], a ; clear RAM - ld [wc0d3], a - ld [wc0d4], a - ld [wc0d5], a + ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 5], a + ld [wChannelNoteDelayCountersFractionalPart + 6], a + ld [wChannelNoteDelayCountersFractionalPart + 7], a .musicChannelDone jp Audio1_endchannel Audio1_stereopanning: ; 0x93fa cp $ee ; is this command a stereopanning? jr nz, Audio1_unknownmusic0xef ; no - call Audio1_GetNextMusicByte ; yes - ld [wc004], a ; store panning + call Audio1_GetNextMusicByte + ld [wStereoPanning], a ; store panning jp Audio1_endchannel ; this appears to never be used Audio1_unknownmusic0xef: ; 0x9407 cp $ef ; is this command an unknownmusic0xef? jr nz, Audio1_dutycycle ; no - call Audio1_GetNextMusicByte ; yes + call Audio1_GetNextMusicByte push bc - call Audio1_9876 + call Audio1_PlaySound pop bc - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .skip - ld a, [wc02d] - ld [wc003], a + ld a, [wChannelSoundIDs + CH7] + ld [wDisableChannelOutputWhenSfxEnds], a xor a - ld [wc02d], a + ld [wChannelSoundIDs + CH7], a .skip jp Audio1_endchannel Audio1_dutycycle: ; 0x9426 cp $fc ; is this command a dutycycle? jr nz, Audio1_volume ; no - call Audio1_GetNextMusicByte ; yes - ld b, $0 - ld hl, wc046 + call Audio1_GetNextMusicByte + ld b, 0 + ld hl, wChannelDutyCycles add hl, bc ld [hl], a ; store full cycle and $c0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store first duty - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - set 6, [hl] ; set dutycycle flag + set BIT_ROTATE_DUTY, [hl] jp Audio1_endchannel Audio1_volume: ; 0x9444 cp $f0 ; is this command a volume? jr nz, Audio1_executemusic ; no - call Audio1_GetNextMusicByte ; yes - ld [$ff24], a ; store volume + call Audio1_GetNextMusicByte + ld [rNR50], a ; store volume jp Audio1_endchannel Audio1_executemusic: ; 0x9450 cp $f8 ; is this command an executemusic? jr nz, Audio1_octave ; no - ld b, $0 ; yes - ld hl, wc036 + ld b, $0 + ld hl, wChannelFlags2 add hl, bc - set 0, [hl] + set BIT_EXECUTE_MUSIC, [hl] jp Audio1_endchannel Audio1_octave: ; 0x945f and $f0 cp $e0 ; is this command an octave? jr nz, Audio1_unknownsfx0x20 ; no - ld hl, wc0d6 ; yes - ld b, $0 + ld hl, wChannelOctaves + ld b, 0 add hl, bc ld a, d and $f @@ -561,47 +574,54 @@ Audio1_octave: ; 0x945f Audio1_unknownsfx0x20: ; 0x9472 cp $20 ; is this command an unknownsfx0x20? - jr nz, Audio1_unknownsfx0x10 ; no + jr nz, Audio1_unknownsfx0x10 ld a, c cp CH3 ; is this a noise or sfx channel? jr c, Audio1_unknownsfx0x10 ; no - ld b, $0 - ld hl, wc036 + ld b, 0 + ld hl, wChannelFlags2 add hl, bc - bit 0, [hl] - jr nz, Audio1_unknownsfx0x10 ; no - call Audio1_notelength ; yes + bit BIT_EXECUTE_MUSIC, [hl] ; is executemusic being used? + jr nz, Audio1_unknownsfx0x10 ; yes + call Audio1_notelength + +; This code seems to do the same thing as what Audio1_ApplyDutyAndSoundLength +; does below. ld d, a - ld b, $0 - ld hl, wc03e + ld b, 0 + ld hl, wChannelDuties add hl, bc ld a, [hl] or d ld d, a - ld b, $1 - call Audio1_9838 + ld b, REG_DUTY_SOUND_LEN + call Audio1_GetRegisterPointer ld [hl], d + call Audio1_GetNextMusicByte ld d, a - ld b, $2 - call Audio1_9838 + ld b, REG_VOLUME_ENVELOPE + call Audio1_GetRegisterPointer ld [hl], d call Audio1_GetNextMusicByte ld e, a ld a, c cp CH7 - ld a, $0 - jr z, .sfxNoiseChannel ; only two params for noise channel + ld a, 0 + jr z, .skip +; Channels 1 through 3 have 2 registers that control frequency, but the noise +; channel a single register (the polynomial counter) that controls frequency, +; so this command has one less byte on the noise channel. push de call Audio1_GetNextMusicByte pop de -.sfxNoiseChannel +.skip ld d, a push de - call Audio1_9629 - call Audio1_95f8 + call Audio1_ApplyDutyAndSoundLength + call Audio1_EnableChannelOutput pop de - call Audio1_964b + call Audio1_ApplyWavePatternAndFrequency ret Audio1_unknownsfx0x10: @@ -612,12 +632,12 @@ Audio1_unknownsfx0x10: cp $10 ; is this command a unknownsfx0x10? jr nz, Audio1_note ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc - bit 0, [hl] + bit BIT_EXECUTE_MUSIC, [hl] jr nz, Audio1_note ; no - call Audio1_GetNextMusicByte ; yes - ld [$ff10], a + call Audio1_GetNextMusicByte + ld [rNR10], a jp Audio1_endchannel Audio1_note: @@ -627,7 +647,7 @@ Audio1_note: ld a, d and $f0 cp $b0 ; is this command a dnote? - jr z, Audio1_dnote ; yes + jr z, Audio1_dnote jr nc, Audio1_notelength ; no swap a ld b, a @@ -647,11 +667,11 @@ Audio1_dnote: call Audio1_GetNextMusicByte ; get dnote instrument asm_94fd ld d, a - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .asm_9508 ld a, d - call Audio1_9876 + call Audio1_PlaySound .asm_9508 pop bc pop de @@ -661,20 +681,20 @@ Audio1_notelength: ; 0x950a push af and $f inc a - ld b, $0 + ld b, 0 ld e, a ; store note length (in 16ths) ld d, b - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld a, [hl] ld l, b - call Audio1_9847 + call Audio1_MultiplyAdd ld a, c cp CH4 jr nc, .sfxChannel - ld a, [wc0e8] + ld a, [wMusicTempo] ld d, a - ld a, [wc0e9] + ld a, [wMusicTempo + 1] ld e, a jr .skip .sfxChannel @@ -682,34 +702,34 @@ Audio1_notelength: ; 0x950a ld e, $0 cp CH7 jr z, .skip ; if noise channel - call Audio1_9693 - ld a, [wc0ea] + call Audio1_SetSfxTempo + ld a, [wSfxTempo] ld d, a - ld a, [wc0eb] + ld a, [wSfxTempo + 1] ld e, a .skip - ld a, l - ld b, $0 - ld hl, wc0ce + ld a, l ; a = note_length * note_speed + ld b, 0 + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld l, [hl] - call Audio1_9847 + call Audio1_MultiplyAdd ld e, l - ld d, h - ld hl, wc0ce + ld d, h ; de = note_delay_frac_part + (note_length * note_speed * tempo) + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld [hl], e ld a, d - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc - bit 0, [hl] + bit BIT_EXECUTE_MUSIC, [hl] jr nz, Audio1_notepitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 2, [hl] + bit BIT_NOISE_OR_SFX, [hl] jr z, Audio1_notepitch pop hl ret @@ -721,177 +741,183 @@ Audio1_notepitch: ; 0x9568 jr nz, .notRest ld a, c cp CH4 - jr nc, .sfxChannel - ld hl, wc02a + jr nc, .next +; If this isn't an SFX channel, try the corresponding SFX channel. + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr nz, .done ; fall through -.sfxChannel +.next ld a, c cp CH2 - jr z, .musicChannel3 + jr z, .channel3 cp CH6 - jr nz, .notSfxChannel3 -.musicChannel3 - ld b, $0 - ld hl, Unknown_9b1f + jr nz, .notChannel3 +.channel3 + ld b, 0 + ld hl, Audio1_HWChannelDisableMasks add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a ; disable hardware channel 3's output jr .done -.notSfxChannel3 - ld b, $2 - call Audio1_9838 - ld a, $8 +.notChannel3 + ld b, REG_VOLUME_ENVELOPE + call Audio1_GetRegisterPointer + ld a, $8 ; fade in sound ld [hli], a inc hl - ld a, $80 + ld a, $80 ; restart sound ld [hl], a .done ret .notRest swap a - ld b, $0 - ld hl, wc0d6 + ld b, 0 + ld hl, wChannelOctaves add hl, bc ld b, [hl] - call Audio1_9858 - ld b, $0 - ld hl, wc02e - add hl, bc - bit 4, [hl] - jr z, .asm_95b8 - call Audio1_978f -.asm_95b8 + call Audio1_CalculateFrequency + ld b, 0 + ld hl, wChannelFlags1 + add hl, bc + bit BIT_PITCH_BEND_ON, [hl] + jr z, .skipPitchBend + call Audio1_InitPitchBendVars +.skipPitchBend push de ld a, c cp CH4 - jr nc, .skip ; if sfx channel - ld hl, wc02a - ld d, $0 + jr nc, .sfxChannel ; if sfx channel +; If this isn't an SFX channel, try the corresponding SFX channel. + ld hl, wChannelSoundIDs + CH4 + ld d, 0 ld e, a add hl, de ld a, [hl] and a - jr nz, .asm_95cb - jr .skip -.asm_95cb + jr nz, .noSfx + jr .sfxChannel +.noSfx pop de ret -.skip - ld b, $0 - ld hl, wc0de +.sfxChannel + ld b, 0 + ld hl, wChannelVolumes add hl, bc ld d, [hl] - ld b, $2 - call Audio1_9838 + ld b, REG_VOLUME_ENVELOPE + call Audio1_GetRegisterPointer ld [hl], d - call Audio1_9629 - call Audio1_95f8 + call Audio1_ApplyDutyAndSoundLength + call Audio1_EnableChannelOutput pop de ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 0, [hl] ; has toggleperfectpitch been used? - jr z, .skip2 - inc e ; if yes, increment the pitch by 1 - jr nc, .skip2 + bit BIT_PERFECT_PITCH, [hl] ; has toggleperfectpitch been used? + jr z, .skipFrequencyInc + inc e ; if yes, increment the frequency by 1 + jr nc, .skipFrequencyInc inc d -.skip2 - ld hl, wc066 +.skipFrequencyInc + ld hl, wChannelFrequencyLowBytes add hl, bc ld [hl], e - call Audio1_964b + call Audio1_ApplyWavePatternAndFrequency ret -Audio1_95f8: ; 0x95f8 - ld b, $0 - ld hl, Unknown_9b27 +Audio1_EnableChannelOutput: ; 0x95f8 + ld b, 0 + ld hl, Audio1_HWChannelEnableMasks add hl, bc - ld a, [$ff25] - or [hl] + ld a, [rNR51] + or [hl] ; set this channel's bits ld d, a ld a, c cp CH7 - jr z, .sfxNoiseChannel + jr z, .noiseChannelOrNoSfx cp CH4 jr nc, .skip ; if sfx channel - ld hl, wc02a +; If this isn't an SFX channel, try the corresponding SFX channel. + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr nz, .skip -.sfxNoiseChannel - ld a, [wc004] - ld hl, Unknown_9b27 +.noiseChannelOrNoSfx +; If this is the SFX noise channel or a music channel whose corresponding +; SFX channel is off, apply stereo panning. + ld a, [wStereoPanning] + ld hl, Audio1_HWChannelEnableMasks add hl, bc and [hl] ld d, a - ld a, [$ff25] - ld hl, Unknown_9b1f + ld a, [rNR51] + ld hl, Audio1_HWChannelDisableMasks add hl, bc - and [hl] - or d + and [hl] ; reset this channel's output bits + or d ; set this channel's output bits that enabled in [wStereoPanning] ld d, a .skip ld a, d - ld [$ff25], a + ld [rNR51], a ret -Audio1_9629: ; 0x9629 - ld b, $0 - ld hl, wc0b6 +Audio1_ApplyDutyAndSoundLength: ; 0x9629 + ld b, 0 + ld hl, wChannelNoteDelayCounters ; use the note delay as sound length add hl, bc ld d, [hl] ld a, c cp CH2 - jr z, .channel3 ; if music channel 3 + jr z, .skipDuty ; if music channel 3 cp CH6 - jr z, .channel3 ; if sfx channel 3 + jr z, .skipDuty ; if sfx channel 3 +; include duty (except on channel 3 which doesn't have it) ld a, d and $3f ld d, a - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d ld d, a -.channel3 - ld b, $1 - call Audio1_9838 +.skipDuty + ld b, REG_DUTY_SOUND_LEN + call Audio1_GetRegisterPointer ld [hl], d ret -Audio1_964b: ; 0x964b +Audio1_ApplyWavePatternAndFrequency: ; 0x964b ld a, c cp CH2 jr z, .channel3 cp CH6 - jr nz, .notSfxChannel3 + jr nz, .notChannel3 ; fall through .channel3 push de - ld de, wc0e6 + ld de, wMusicWaveInstrument cp CH2 - jr z, .musicChannel3 - ld de, wc0e7 -.musicChannel3 + jr z, .next + ld de, wSfxWaveInstrument +.next ld a, [de] add a - ld d, $0 + ld d, 0 ld e, a ld hl, Audio1_WavePointers add hl, de ld e, [hl] inc hl ld d, [hl] - ld hl, $ff30 + ld hl, $ff30 ; wave pattern RAM ld b, $f - ld a, $0 - ld [$ff1a], a + ld a, $0 ; stop hardware channel 3 + ld [rNR30], a .loop ld a, [de] inc de @@ -900,152 +926,155 @@ Audio1_964b: ; 0x964b dec b and a jr nz, .loop - ld a, $80 - ld [$ff1a], a + ld a, $80 ; start hardware channel 3 + ld [rNR30], a pop de -.notSfxChannel3 +.notChannel3 ld a, d - or $80 - and $c7 + or $80 ; use counter mode (i.e. disable output when the counter reaches 0) + and $c7 ; zero the unused bits in the register ld d, a - ld b, $3 - call Audio1_9838 - ld [hl], e + ld b, REG_FREQUENCY_LO + call Audio1_GetRegisterPointer + ld [hl], e ; store frequency low byte inc hl - ld [hl], d - call Audio1_96b5 + ld [hl], d ; store frequency high byte + call Audio1_ApplyFrequencyModifier ret -Audio1_9693: ; 0x9693 - call Audio1_96e5 - jr nc, .asm_96ab - ld d, $0 - ld a, [wc0f2] +Audio1_SetSfxTempo: ; 0x9693 + call Audio1_IsCry + jr nc, .notCry + ld d, 0 + ld a, [wTempoModifier] add $80 - jr nc, .asm_96a2 + jr nc, .next inc d -.asm_96a2 - ld [wc0eb], a +.next + ld [wSfxTempo + 1], a ld a, d - ld [wc0ea], a - jr .asm_96b4 -.asm_96ab + ld [wSfxTempo], a + jr .done +.notCry xor a - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, $1 - ld [wc0ea], a -.asm_96b4 + ld [wSfxTempo], a +.done ret -Audio1_96b5: ; 0x96b5 - call Audio1_96e5 - jr nc, .asm_96c6 - ld a, [wc0f1] +Audio1_ApplyFrequencyModifier: ; 0x96b5 + call Audio1_IsCry + jr nc, .done +; if playing a cry, add the cry's frequency modifier + ld a, [wFrequencyModifier] add e - jr nc, .asm_96c1 + jr nc, .noCarry inc d -.asm_96c1 +.noCarry dec hl ld e, a ld [hl], e inc hl ld [hl], d -.asm_96c6 +.done ret -Audio1_96c7: ; 0x96c7 - call Audio1_96e5 - jr nc, .asm_96e2 - ld hl, wc006 +Audio1_GoBackOneCommandIfCry: ; 0x96c7 + call Audio1_IsCry + jr nc, .done + ld hl, wChannelCommandPointers ld e, c - ld d, $0 + ld d, 0 sla e rl d add hl, de ld a, [hl] - sub $1 + sub 1 ld [hl], a inc hl ld a, [hl] - sbc $0 + sbc 0 ld [hl], a scf ret -.asm_96e2 +.done scf ccf ret -Audio1_96e5: ; 0x96e5 - ld a, [wc02a] - cp $14 - jr nc, .asm_96ee - jr .asm_96f4 -.asm_96ee - cp $86 - jr z, .asm_96f4 - jr c, .asm_96f7 -.asm_96f4 +Audio1_IsCry: ; 0x96e5 +; Returns whether the currently playing audio is a cry in carry. + ld a, [wChannelSoundIDs + CH4] + cp CRY_SFX_START + jr nc, .next + jr .no +.next + cp CRY_SFX_END + jr z, .no + jr c, .yes +.no scf ccf ret -.asm_96f7 +.yes scf ret Audio1_ApplyPitchBend: ; 0x96f9 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc - bit 5, [hl] - jp nz, .asm_9740 - ld hl, wc09e + bit BIT_PITCH_BEND_DECREASING, [hl] + jp nz, .frequencyDecreasing +; frequency increasing + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld l, [hl] ld h, b add hl, de ld d, h ld e, l - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc push hl - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] pop hl add [hl] ld [hl], a - ld a, $0 + ld a, 0 adc e ld e, a - ld a, $0 + ld a, 0 adc d ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] cp d - jp c, .asm_9786 - jr nz, .asm_9773 - ld hl, wc0ae + jp c, .reachedTargetFrequency + jr nz, .applyUpdatedFrequency + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] cp e - jp c, .asm_9786 - jr .asm_9773 -.asm_9740 - ld hl, wc09e + jp c, .reachedTargetFrequency + jr .applyUpdatedFrequency +.frequencyDecreasing + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld a, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld e, [hl] sub e @@ -1053,7 +1082,7 @@ Audio1_ApplyPitchBend: ; 0x96f9 ld a, d sbc b ld d, a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] add a @@ -1064,129 +1093,140 @@ Audio1_ApplyPitchBend: ; 0x96f9 ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, d cp [hl] - jr c, .asm_9786 - jr nz, .asm_9773 - ld hl, wc0ae + jr c, .reachedTargetFrequency + jr nz, .applyUpdatedFrequency + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e cp [hl] - jr c, .asm_9786 -.asm_9773 - ld hl, wc09e + jr c, .reachedTargetFrequency +.applyUpdatedFrequency + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d - ld b, $3 - call Audio1_9838 + ld b, REG_FREQUENCY_LO + call Audio1_GetRegisterPointer ld a, e ld [hli], a ld [hl], d ret -.asm_9786 - ld hl, wc02e +.reachedTargetFrequency +; Turn off pitch bend when the target frequency has been reached. + ld hl, wChannelFlags1 add hl, bc - res 4, [hl] - res 5, [hl] + res BIT_PITCH_BEND_ON, [hl] + res BIT_PITCH_BEND_DECREASING, [hl] ret -Audio1_978f: ; 0x978f - ld hl, wc096 +Audio1_InitPitchBendVars: ; 0x978f + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld a, [hl] - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc sub [hl] - jr nc, .asm_97a7 - ld a, $1 -.asm_97a7 + jr nc, .next + ld a, 1 +.next ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e sub [hl] ld e, a ld a, d sbc b - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc sub [hl] - jr c, .asm_97c3 + jr c, .targetFrequencyGreater ld d, a - ld b, $0 - ld hl, wc02e + ld b, 0 + ld hl, wChannelFlags1 add hl, bc - set 5, [hl] - jr .asm_97e6 -.asm_97c3 - ld hl, wc096 + set BIT_PITCH_BEND_DECREASING, [hl] + jr .next2 +.targetFrequencyGreater +; If the target frequency is greater, subtract the current frequency from +; the target frequency to get the absolute difference. + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] sub e ld e, a + +; Bug. Instead of borrowing from the high byte of the target frequency as it +; should, it borrows from the high byte of the current frequency instead. +; This means that the result will be 0x200 greater than it should be if the +; low byte of the current frequency is greater than the low byte of the +; target frequency. ld a, d sbc b ld d, a - ld hl, wc0a6 + + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] sub d ld d, a - ld b, $0 - ld hl, wc02e + ld b, 0 + ld hl, wChannelFlags1 add hl, bc - res 5, [hl] -.asm_97e6 - ld hl, wc076 + res BIT_PITCH_BEND_DECREASING, [hl] + +.next2 + ld hl, wChannelPitchBendLengthModifiers add hl, bc -.asm_97ea +.divideLoop inc b ld a, e sub [hl] ld e, a - jr nc, .asm_97ea + jr nc, .divideLoop ld a, d and a - jr z, .asm_97f8 + jr z, .doneDividing dec a ld d, a - jr .asm_97ea -.asm_97f8 - ld a, e + jr .divideLoop +.doneDividing + ld a, e ; a = remainder - dividend add [hl] - ld d, b - ld b, $0 - ld hl, wc07e + ld d, b ; d = quotient + 1 + ld b, 0 + ld hl, wChannelPitchBendFrequencySteps add hl, bc - ld [hl], d - ld hl, wc086 + ld [hl], d ; store quotient + 1 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc - ld [hl], a - ld hl, wc08e + ld [hl], a ; store remainder - dividend + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc - ld [hl], a + ld [hl], a ; store remainder - dividend ret Audio1_ApplyDutyCycle: ; 0x980d - ld b, $0 - ld hl, wc046 + ld b, 0 + ld hl, wChannelDutyCycles add hl, bc ld a, [hl] rlca @@ -1194,8 +1234,8 @@ Audio1_ApplyDutyCycle: ; 0x980d ld [hl], a and $c0 ld d, a - ld b, $1 - call Audio1_9838 + ld b, REG_DUTY_SOUND_LEN + call Audio1_GetRegisterPointer ld a, [hl] and $3f or d @@ -1203,11 +1243,11 @@ Audio1_ApplyDutyCycle: ; 0x980d ret Audio1_GetNextMusicByte: ; 0x9825 - ld d, $0 + ld d, 0 ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld a, [hli] ld e, a @@ -1220,9 +1260,10 @@ Audio1_GetNextMusicByte: ; 0x9825 ld [hl], d ret -Audio1_9838: ; 0x9838 +Audio1_GetRegisterPointer: ; 0x9838 +; hl = address of hardware sound register b for software channel c ld a, c - ld hl, Unknown_9b17 + ld hl, Audio1_HWChannelBaseAddresses add l jr nc, .noCarry inc h @@ -1234,13 +1275,14 @@ Audio1_9838: ; 0x9838 ld h, $ff ret -Audio1_9847: ; 0x9847 - ld h, $0 +Audio1_MultiplyAdd: ; 0x9847 +; hl = l + (a * de) + ld h, 0 .loop srl a - jr nc, .noCarry + jr nc, .skipAdd add hl, de -.noCarry +.skipAdd sla e rl d and a @@ -1249,8 +1291,9 @@ Audio1_9847: ; 0x9847 .done ret -Audio1_9858: ; 0x9858 - ld h, $0 +Audio1_CalculateFrequency: ; 0x9858 +; return the frequency for note a, octave b in de + ld h, 0 ld l, a add hl, hl ld d, h @@ -1262,137 +1305,138 @@ Audio1_9858: ; 0x9858 ld d, [hl] ld a, b .loop - cp $7 + cp 7 jr z, .done sra d rr e inc a jr .loop .done - ld a, $8 + ld a, 8 add d ld d, a ret -Audio1_9876:: ; 0x9876 - ld [wc001], a +Audio1_PlaySound:: ; 0x9876 + ld [wSoundID], a cp $ff - jp z, Audio1_9a34 - cp $b9 - jp z, Audio1_994e - jp c, Audio1_994e + jp z, .stopAllAudio + cp MAX_SFX_ID + jp z, .playSfx + jp c, .playSfx cp $fe - jr z, .asm_988d - jp nc, Audio1_994e -.asm_988d + jr z, .playMusic + jp nc, .playSfx + +.playMusic xor a - ld [wc000], a - ld [wc003], a - ld [wc0e9], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMusicTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $8 - ld hl, wc016 - call FillAudioRAM1 - ld hl, wc006 - call FillAudioRAM1 + ld hl, wChannelReturnAddresses + call .FillMem + ld hl, wChannelCommandPointers + call .FillMem ld d, $4 - ld hl, wc026 - call FillAudioRAM1 - ld hl, wc02e - call FillAudioRAM1 - ld hl, wc03e - call FillAudioRAM1 - ld hl, wc046 - call FillAudioRAM1 - ld hl, wc04e - call FillAudioRAM1 - ld hl, wc056 - call FillAudioRAM1 - ld hl, wc05e - call FillAudioRAM1 - ld hl, wc066 - call FillAudioRAM1 - ld hl, wc06e - call FillAudioRAM1 - ld hl, wc036 - call FillAudioRAM1 - ld hl, wc076 - call FillAudioRAM1 - ld hl, wc07e - call FillAudioRAM1 - ld hl, wc086 - call FillAudioRAM1 - ld hl, wc08e - call FillAudioRAM1 - ld hl, wc096 - call FillAudioRAM1 - ld hl, wc09e - call FillAudioRAM1 - ld hl, wc0a6 - call FillAudioRAM1 - ld hl, wc0ae - call FillAudioRAM1 + ld hl, wChannelSoundIDs + call .FillMem + ld hl, wChannelFlags1 + call .FillMem + ld hl, wChannelDuties + call .FillMem + ld hl, wChannelDutyCycles + call .FillMem + ld hl, wChannelVibratoDelayCounters + call .FillMem + ld hl, wChannelVibratoExtents + call .FillMem + ld hl, wChannelVibratoRates + call .FillMem + ld hl, wChannelFrequencyLowBytes + call .FillMem + ld hl, wChannelVibratoDelayCounterReloadValues + call .FillMem + ld hl, wChannelFlags2 + call .FillMem + ld hl, wChannelPitchBendLengthModifiers + call .FillMem + ld hl, wChannelPitchBendFrequencySteps + call .FillMem + ld hl, wChannelPitchBendFrequencyStepsFractionalPart + call .FillMem + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart + call .FillMem + ld hl, wChannelPitchBendCurrentFrequencyHighBytes + call .FillMem + ld hl, wChannelPitchBendCurrentFrequencyLowBytes + call .FillMem + ld hl, wChannelPitchBendTargetFrequencyHighBytes + call .FillMem + ld hl, wChannelPitchBendTargetFrequencyLowBytes + call .FillMem ld a, $1 - ld hl, wc0be - call FillAudioRAM1 - ld hl, wc0b6 - call FillAudioRAM1 - ld hl, wc0c6 - call FillAudioRAM1 - ld [wc0e8], a + ld hl, wChannelLoopCounters + call .FillMem + ld hl, wChannelNoteDelayCounters + call .FillMem + ld hl, wChannelNoteSpeeds + call .FillMem + ld [wMusicTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a xor a - ld [$ff24], a + ld [rNR50], a ld a, $8 - ld [$ff10], a - ld a, $0 - ld [$ff25], a + ld [rNR10], a + ld a, 0 + ld [rNR51], a xor a - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a ld a, $77 - ld [$ff24], a - jp Audio1_9a8f + ld [rNR50], a + jp .playSoundCommon -Audio1_994e: ; 0x994e +.playSfx ld l, a ld e, a - ld h, $0 + ld h, 0 ld d, h add hl, hl add hl, de ld de, SFX_Headers_1 add hl, de ld a, h - ld [wc0ec], a + ld [wSfxHeaderPointer], a ld a, l - ld [wc0ed], a + ld [wSfxHeaderPointer + 1], a ld a, [hl] and $c0 rlca rlca ld c, a -.asm_9967 +.sfxChannelLoop ld d, c ld a, c add a add c ld c, a - ld b, $0 - ld a, [wc0ec] + ld b, 0 + ld a, [wSfxHeaderPointer] ld h, a - ld a, [wc0ed] + ld a, [wSfxHeaderPointer + 1] ld l, a add hl, bc ld c, d ld a, [hl] and $f - ld e, a - ld d, $0 - ld hl, wc026 + ld e, a ; software channel ID + ld d, 0 + ld hl, wChannelSoundIDs add hl, de ld a, [hl] and a @@ -1400,7 +1444,7 @@ Audio1_994e: ; 0x994e ld a, e cp $7 jr nz, .asm_999a - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_9993 ret @@ -1410,7 +1454,7 @@ Audio1_994e: ; 0x994e jr z, .asm_99a3 jr c, .asm_99a3 .asm_999a - ld a, [wc001] + ld a, [wSoundID] cp [hl] jr z, .asm_99a3 jr c, .asm_99a3 @@ -1423,132 +1467,132 @@ Audio1_994e: ; 0x994e add hl, hl ld d, h ld e, l - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld [hli], a ld [hl], a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld [hli], a ld [hl], a pop de - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, de ld [hl], a - ld hl, wc03e + ld hl, wChannelDuties add hl, de ld [hl], a - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, de ld [hl], a - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, de ld [hl], a - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, de ld [hl], a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, de ld [hl], a - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, de ld [hl], a - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, de ld [hl], a - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, de ld [hl], a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, de ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, de ld [hl], a - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, de ld [hl], a ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, de ld [hl], a - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, de ld [hl], a - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, de ld [hl], a ld a, e - cp $4 + cp CH4 jr nz, .asm_9a2b ld a, $8 - ld [$ff10], a + ld [rNR10], a ; sweep off .asm_9a2b ld a, c and a - jp z, Audio1_9a8f + jp z, .playSoundCommon dec c - jp .asm_9967 + jp .sfxChannelLoop -Audio1_9a34: ; 0x9a34 +.stopAllAudio ld a, $80 - ld [$ff26], a - ld [$ff1a], a + ld [rNR52], a ; sound hardware on + ld [rNR30], a ; wave playback on xor a - ld [$ff25], a - ld [$ff1c], a + ld [rNR51], a ; no sound output + ld [rNR32], a ; mute channel 3 (wave channel) ld a, $8 - ld [$ff10], a - ld [$ff12], a - ld [$ff17], a - ld [$ff21], a + ld [rNR10], a ; sweep off + ld [rNR12], a ; mute channel 1 (pulse channel 1) + ld [rNR22], a ; mute channel 2 (pulse channel 2) + ld [rNR42], a ; mute channel 4 (noise channel) ld a, $40 - ld [$ff14], a - ld [$ff19], a - ld [$ff23], a + ld [rNR14], a ; counter mode + ld [rNR24], a + ld [rNR44], a ld a, $77 - ld [$ff24], a + ld [rNR50], a ; full volume xor a - ld [wc000], a - ld [wc003], a - ld [wc002], a - ld [wc0e9], a - ld [wc0eb], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMuteAudioAndPauseMusic], a + ld [wMusicTempo + 1], a + ld [wSfxTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $a0 - ld hl, wc006 - call FillAudioRAM1 + ld hl, wChannelCommandPointers + call .FillMem ld a, $1 ld d, $18 - ld hl, wc0b6 - call FillAudioRAM1 - ld [wc0e8], a - ld [wc0ea], a + ld hl, wChannelNoteDelayCounters + call .FillMem + ld [wMusicTempo], a + ld [wSfxTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a ret ; fills d bytes at hl with a -FillAudioRAM1: ; 0x9a89 +.FillMem ld b, d .loop ld [hli], a @@ -1556,11 +1600,11 @@ FillAudioRAM1: ; 0x9a89 jr nz, .loop ret -Audio1_9a8f: ; 0x9a8f - ld a, [wc001] +.playSoundCommon + ld a, [wSoundID] ld l, a ld e, a - ld h, $0 + ld h, 0 ld d, h add hl, hl add hl, de @@ -1568,7 +1612,7 @@ Audio1_9a8f: ; 0x9a8f add hl, de ld e, l ld d, h - ld hl, wc006 + ld hl, wChannelCommandPointers ld a, [de] ; get channel number ld b, a rlca @@ -1580,31 +1624,31 @@ Audio1_9a8f: ; 0x9a8f ld b, c inc b inc de - ld c, $0 -.asm_9ab1 + ld c, 0 +.commandPointerLoop cp c - jr z, .asm_9ab9 + jr z, .next inc c inc hl inc hl - jr .asm_9ab1 -.asm_9ab9 + jr .commandPointerLoop +.next push hl push bc push af - ld b, $0 + ld b, 0 ld c, a - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc - ld a, [wc001] + ld a, [wSoundID] ld [hl], a pop af - cp $3 - jr c, .asm_9ad2 - ld hl, wc02e + cp CH3 + jr c, .skipSettingFlag + ld hl, wChannelFlags1 add hl, bc - set 2, [hl] -.asm_9ad2 + set BIT_NOISE_OR_SFX, [hl] +.skipSettingFlag pop bc pop hl ld a, [de] ; get channel pointer @@ -1619,52 +1663,53 @@ Audio1_9a8f: ; 0x9a8f and a ld a, [de] inc de - jr nz, .asm_9ab1 - ld a, [wc001] - cp $14 + jr nz, .commandPointerLoop + ld a, [wSoundID] + cp CRY_SFX_START jr nc, .asm_9aeb - jr .asm_9b15 + jr .done .asm_9aeb - ld a, [wc001] - cp $86 - jr z, .asm_9b15 - jr c, .asm_9af6 - jr .asm_9b15 -.asm_9af6 - ld hl, wc02a + ld a, [wSoundID] + cp CRY_SFX_END + jr z, .done + jr c, .cry + jr .done +.cry + ld hl, wChannelSoundIDs + CH4 ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld hl, wc012 ; sfx noise channel pointer - ld de, Noise1_endchannel + ld hl, wChannelCommandPointers + CH6 * 2 ; sfx wave channel pointer + ld de, Audio1_CryEndchannel ld [hl], e inc hl ld [hl], d ; overwrite pointer to point to endchannel - ld a, [wc005] + ld a, [wSavedVolume] and a - jr nz, .asm_9b15 - ld a, [$ff24] - ld [wc005], a + jr nz, .done + ld a, [rNR50] + ld [wSavedVolume], a ld a, $77 - ld [$ff24], a -.asm_9b15 + ld [rNR50], a ; full volume +.done ret -Noise1_endchannel: ; 0x9b16 +Audio1_CryEndchannel: ; 0x9b16 endchannel -Unknown_9b17: ; 0x9b17 - db $10, $15, $1A, $1F ; channels 0-3 - db $10, $15, $1A, $1F ; channels 4-7 +Audio1_HWChannelBaseAddresses: ; 0x9b17 +; the low bytes of each HW channel's base address + db HW_CH1_BASE, HW_CH2_BASE, HW_CH3_BASE, HW_CH4_BASE ; channels 0-3 + db HW_CH1_BASE, HW_CH2_BASE, HW_CH3_BASE, HW_CH4_BASE ; channels 4-7 -Unknown_9b1f: ; 0x9b1f - db $EE, $DD, $BB, $77 ; channels 0-3 - db $EE, $DD, $BB, $77 ; channels 4-7 +Audio1_HWChannelDisableMasks: ; 0x9b1f + db HW_CH1_DISABLE_MASK, HW_CH2_DISABLE_MASK, HW_CH3_DISABLE_MASK, HW_CH4_DISABLE_MASK ; channels 0-3 + db HW_CH1_DISABLE_MASK, HW_CH2_DISABLE_MASK, HW_CH3_DISABLE_MASK, HW_CH4_DISABLE_MASK ; channels 4-7 -Unknown_9b27: ; 0x9b27 - db $11, $22, $44, $88 ; channels 0-3 - db $11, $22, $44, $88 ; channels 4-7 +Audio1_HWChannelEnableMasks: ; 0x9b27 + db HW_CH1_ENABLE_MASK, HW_CH2_ENABLE_MASK, HW_CH3_ENABLE_MASK, HW_CH4_ENABLE_MASK ; channels 0-3 + db HW_CH1_ENABLE_MASK, HW_CH2_ENABLE_MASK, HW_CH3_ENABLE_MASK, HW_CH4_ENABLE_MASK ; channels 4-7 Audio1_Pitches: ; 0x9b2f dw $F82C ; C_ diff --git a/audio/engine_2.asm b/audio/engine_2.asm index 62b82cec..e70a305f 100644 --- a/audio/engine_2.asm +++ b/audio/engine_2.asm @@ -4,7 +4,7 @@ Audio2_UpdateMusic:: ; 21879 (8:5879) ld c, CH0 .loop ld b, $0 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc ld a, [hl] and a @@ -12,18 +12,18 @@ Audio2_UpdateMusic:: ; 21879 (8:5879) ld a, c cp CH4 jr nc, .applyAffects ; if sfx channel - ld a, [wc002] + ld a, [wMuteAudioAndPauseMusic] and a jr z, .applyAffects bit 7, a jr nz, .nextChannel set 7, a - ld [wc002], a + ld [wMuteAudioAndPauseMusic], a xor a - ld [$ff25], a - ld [$ff1a], a + ld [rNR51], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a jr .nextChannel .applyAffects call Audio2_ApplyMusicAffects @@ -36,7 +36,7 @@ Audio2_UpdateMusic:: ; 21879 (8:5879) ; this routine checks flags for music effects currently applied ; to the channel and calls certain functions based on flags. -; known flags for wc02e: +; known flags for wChannelFlags1: ; 0: toggleperfectpitch has been used ; 1: call has been used ; 3: a toggle used only by this routine for vibrato @@ -44,7 +44,7 @@ Audio2_UpdateMusic:: ; 21879 (8:5879) ; 6: dutycycle flag Audio2_ApplyMusicAffects: ; 218ae (8:58ae) ld b, $0 - ld hl, wc0b6 ; delay until next note + ld hl, wChannelNoteDelayCounters ; delay until next note add hl, bc ld a, [hl] cp $1 ; if the delay is 1, play next note @@ -54,36 +54,36 @@ Audio2_ApplyMusicAffects: ; 218ae (8:58ae) ld a, c cp CH4 jr nc, .startChecks ; if a sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr z, .startChecks ret .startChecks - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 6, [hl] ; dutycycle jr z, .checkForExecuteMusic call Audio2_ApplyDutyCycle .checkForExecuteMusic ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 2, [hl] jr nz, .disablePitchBendVibrato .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] ; pitchbend jr z, .checkVibratoDelay jp Audio2_ApplyPitchBend .checkVibratoDelay - ld hl, wc04e ; vibrato delay + ld hl, wChannelVibratoDelayCounters ; vibrato delay add hl, bc ld a, [hl] and a ; check if delay is over @@ -92,7 +92,7 @@ Audio2_ApplyMusicAffects: ; 218ae (8:58ae) .disablePitchBendVibrato ret .checkForVibrato - ld hl, wc056 ; vibrato rate + ld hl, wChannelVibratoExtents ; vibrato rate add hl, bc ld a, [hl] and a @@ -100,7 +100,7 @@ Audio2_ApplyMusicAffects: ; 218ae (8:58ae) ret ; no vibrato .vibrato ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc ld a, [hl] and $f @@ -113,10 +113,10 @@ Audio2_ApplyMusicAffects: ; 218ae (8:58ae) swap [hl] or [hl] ld [hl], a ; reset the vibrato value and start again - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld e, [hl] ; get note pitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 3, [hl] ; this is the only code that sets/resets bit three so jr z, .unset ; it continuously alternates which path it takes @@ -149,13 +149,13 @@ Audio2_ApplyMusicAffects: ; 218ae (8:58ae) ; like tempo changes, duty changes etc. and doesn't return ; until the first note is reached Audio2_PlayNextNote: ; 21946 (8:5946) - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld a, [hl] - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] @@ -175,7 +175,7 @@ Audio2_endchannel: ; 21967 (8:5967) cp $ff ; is this command an endchannel? jp nz, Audio2_callchannel ; no ld b, $0 ; yes - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 1, [hl] jr nz, .returnFromCall @@ -185,22 +185,22 @@ Audio2_endchannel: ; 21967 (8:5967) jr .asm_219c0 .noiseOrSfxChannel res 2, [hl] - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc res 0, [hl] cp CH6 jr nz, .notSfxChannel3 ld a, $0 - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a .notSfxChannel3 jr nz, .asm_219a3 - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr z, .asm_219a3 xor a - ld [wc003], a + ld [wDisableChannelOutputWhenSfxEnds], a jr .asm_219c0 .asm_219a3 jr .asm_219c9 @@ -210,10 +210,10 @@ Audio2_endchannel: ; 21967 (8:5967) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl ; store current channel address - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -227,16 +227,16 @@ Audio2_endchannel: ; 21967 (8:5967) .asm_219c0 ld hl, Unknown_222de add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a .asm_219c9 - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_219d2 jr .asm_219ef .asm_219d2 - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $86 jr z, .asm_219ef jr c, .asm_219dd @@ -248,12 +248,12 @@ Audio2_endchannel: ; 21967 (8:5967) call Audio2_21e6d ret c .asm_219e6 - ld a, [wc005] - ld [$ff24], a + ld a, [wSavedVolume] + ld [rNR50], a xor a - ld [wc005], a + ld [wSavedVolume], a .asm_219ef - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc ld [hl], b ret @@ -272,10 +272,10 @@ Audio2_callchannel: ; 219f5 (8:59f5) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -290,7 +290,7 @@ Audio2_callchannel: ; 219f5 (8:59f5) inc hl ld [hl], d ; overwrite current address with pointer ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 1, [hl] ; set the call flag jp Audio2_endchannel @@ -303,7 +303,7 @@ Audio2_loopchannel: ; 21a2a (8:5a2a) and a jr z, .infiniteLoop ld b, $0 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, bc ld a, [hl] cp e @@ -326,7 +326,7 @@ Audio2_loopchannel: ; 21a2a (8:5a2a) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de pop af ld [hli], a @@ -340,7 +340,7 @@ Audio2_notetype: ; 21a65 (8:5a65) ld a, d ; yes and $f ld b, $0 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld [hl], a ; store low nibble as speed ld a, c @@ -353,10 +353,10 @@ Audio2_notetype: ; 21a65 (8:5a65) jr z, .musicChannel3 cp CH6 jr nz, .notChannel3 - ld hl, wc0e7 + ld hl, wSfxWaveInstrument jr .sfxChannel3 .musicChannel3 - ld hl, wc0e6 + ld hl, wMusicWaveInstrument .sfxChannel3 ld a, d and $f @@ -371,7 +371,7 @@ Audio2_notetype: ; 21a65 (8:5a65) ; else, store volume (high nibble) and fade (low nibble) .notChannel3 ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld [hl], d .noiseChannel @@ -382,11 +382,11 @@ Audio2_toggleperfectpitch: ; 21aa4 (8:5aa4) cp $e8 ; is this command a toggleperfectpitch? jr nz, Audio2_vibrato ; no ld b, $0 ; yes - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc ld a, [hl] xor $1 - ld [hl], a ; flip bit 0 of wc02e + ld [hl], a ; flip bit 0 of wChannelFlags1 jp Audio2_endchannel Audio2_vibrato: ; 21ab6 (8:5ab6) @@ -394,10 +394,10 @@ Audio2_vibrato: ; 21ab6 (8:5ab6) jr nz, Audio2_pitchbend ; no call Audio2_GetNextMusicByte ; yes ld b, $0 - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a ; store delay - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld [hl], a ; store delay call Audio2_GetNextMusicByte @@ -405,7 +405,7 @@ Audio2_vibrato: ; 21ab6 (8:5ab6) and $f0 swap a ld b, $0 - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, bc srl a ld e, a @@ -416,7 +416,7 @@ Audio2_vibrato: ; 21ab6 (8:5ab6) ld a, d and $f ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc swap a or d @@ -428,7 +428,7 @@ Audio2_pitchbend: ; 21aee (8:5aee) jr nz, Audio2_duty ; no call Audio2_GetNextMusicByte ; yes ld b, $0 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc ld [hl], a ; store first param call Audio2_GetNextMusicByte @@ -440,14 +440,14 @@ Audio2_pitchbend: ; 21aee (8:5aee) and $f call Audio2_22017 ld b, $0 - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld [hl], d ; store unknown part of second param - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld [hl], e ; store unknown part of second param ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 4, [hl] ; set pitchbend flag call Audio2_GetNextMusicByte @@ -462,7 +462,7 @@ Audio2_duty: ; 21b26 (8:5b26) rrca and $c0 ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store duty jp Audio2_endchannel @@ -474,25 +474,25 @@ Audio2_tempo: ; 21b3b (8:5b3b) cp CH4 jr nc, .sfxChannel call Audio2_GetNextMusicByte - ld [wc0e8], a ; store first param + ld [wMusicTempo], a ; store first param call Audio2_GetNextMusicByte - ld [wc0e9], a ; store second param + ld [wMusicTempo + 1], a ; store second param xor a - ld [wc0ce], a ; clear RAM - ld [wc0cf], a - ld [wc0d0], a - ld [wc0d1], a + ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 1], a + ld [wChannelNoteDelayCountersFractionalPart + 2], a + ld [wChannelNoteDelayCountersFractionalPart + 3], a jr .musicChannelDone .sfxChannel call Audio2_GetNextMusicByte - ld [wc0ea], a ; store first param + ld [wSfxTempo], a ; store first param call Audio2_GetNextMusicByte - ld [wc0eb], a ; store second param + ld [wSfxTempo + 1], a ; store second param xor a - ld [wc0d2], a ; clear RAM - ld [wc0d3], a - ld [wc0d4], a - ld [wc0d5], a + ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 5], a + ld [wChannelNoteDelayCountersFractionalPart + 6], a + ld [wChannelNoteDelayCountersFractionalPart + 7], a .musicChannelDone jp Audio2_endchannel @@ -500,7 +500,7 @@ Audio2_stereopanning: ; 21b7b (8:5b7b) cp $ee ; is this command a stereopanning? jr nz, Audio2_unknownmusic0xef ; no call Audio2_GetNextMusicByte ; yes - ld [wc004], a ; store panning + ld [wStereoPanning], a ; store panning jp Audio2_endchannel ; this appears to never be used @@ -509,15 +509,15 @@ Audio2_unknownmusic0xef: ; 21b88 (8:5b88) jr nz, Audio2_dutycycle ; no call Audio2_GetNextMusicByte ; yes push bc - call Audio2_22035 + call Audio2_PlaySound pop bc - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .skip - ld a, [wc02d] - ld [wc003], a + ld a, [wChannelSoundIDs + CH7] + ld [wDisableChannelOutputWhenSfxEnds], a xor a - ld [wc02d], a + ld [wChannelSoundIDs + CH7], a .skip jp Audio2_endchannel @@ -526,14 +526,14 @@ Audio2_dutycycle: ; 21ba7 (8:5ba7) jr nz, Audio2_volume ; no call Audio2_GetNextMusicByte ; yes ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld [hl], a ; store full cycle and $c0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store first duty - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 6, [hl] ; set dutycycle flag jp Audio2_endchannel @@ -542,14 +542,14 @@ Audio2_volume: ; 21bc5 (8:5bc5) cp $f0 ; is this command a volume? jr nz, Audio2_executemusic ; no call Audio2_GetNextMusicByte ; yes - ld [$ff24], a ; store volume + ld [rNR50], a ; store volume jp Audio2_endchannel Audio2_executemusic: ; 21bd1 (8:5bd1) cp $f8 ; is this command an executemusic? jr nz, Audio2_octave ; no ld b, $0 ; yes - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc set 0, [hl] jp Audio2_endchannel @@ -558,7 +558,7 @@ Audio2_octave: ; 21be0 (8:5be0) and $f0 cp $e0 ; is this command an octave? jr nz, Audio2_unknownsfx0x20 ; no - ld hl, wc0d6 ; yes + ld hl, wChannelOctaves ; yes ld b, $0 add hl, bc ld a, d @@ -573,14 +573,14 @@ Audio2_unknownsfx0x20: ; 21bf3 cp CH3 ; is this a noise or sfx channel? jr c, Audio2_unknownsfx0x10 ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio2_unknownsfx0x10 ; no call Audio2_notelength ld d, a ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d @@ -619,12 +619,12 @@ Audio2_unknownsfx0x10: ; 21c40 (8:5c40) cp $10 ; is this command a unknownsfx0x10? jr nz, Audio2_note ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio2_note ; no call Audio2_GetNextMusicByte ; yes - ld [$ff10], a + ld [rNR10], a jp Audio2_endchannel Audio2_note: ; 21c5c (8:5c5c) @@ -654,11 +654,11 @@ Audio2_dnote: ; 21c76 (8:5c76) call Audio2_GetNextMusicByte ; get dnote instrument asm_21c7e ld d, a - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .asm_21c89 ld a, d - call Audio2_22035 + call Audio2_PlaySound .asm_21c89 pop bc pop de @@ -671,7 +671,7 @@ Audio2_notelength: ; 21c8b (8:5c8b) ld b, $0 ld e, a ; store note length (in 16ths) ld d, b - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld a, [hl] ld l, b @@ -679,9 +679,9 @@ Audio2_notelength: ; 21c8b (8:5c8b) ld a, c cp CH4 jr nc, .sfxChannel - ld a, [wc0e8] + ld a, [wMusicTempo] ld d, a - ld a, [wc0e9] + ld a, [wMusicTempo + 1] ld e, a jr .skip .sfxChannel @@ -690,31 +690,31 @@ Audio2_notelength: ; 21c8b (8:5c8b) cp CH7 jr z, .skip ; if noise channel call Audio2_21e2f - ld a, [wc0ea] + ld a, [wSfxTempo] ld d, a - ld a, [wc0eb] + ld a, [wSfxTempo + 1] ld e, a .skip ld a, l ld b, $0 - ld hl, wc0ce + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld l, [hl] call Audio2_22006 ld e, l ld d, h - ld hl, wc0ce + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld [hl], e ld a, d - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio2_notepitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 2, [hl] jr z, Audio2_notepitch @@ -729,7 +729,7 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) ld a, c cp CH4 jr nc, .sfxChannel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a @@ -745,9 +745,9 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) ld b, $0 ld hl, Unknown_222de add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a jr .done .notSfxChannel3 ld b, $2 @@ -762,12 +762,12 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) .notRest swap a ld b, $0 - ld hl, wc0d6 + ld hl, wChannelOctaves add hl, bc ld b, [hl] call Audio2_22017 ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] jr z, .asm_21d39 @@ -777,7 +777,7 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) ld a, c cp CH4 jr nc, .skip ; if sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 ld d, $0 ld e, a add hl, de @@ -790,7 +790,7 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) ret .skip ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld d, [hl] ld b, $2 @@ -800,7 +800,7 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) call Audio2_21d79 pop de ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 0, [hl] ; has toggleperfectpitch been used? jr z, .skip2 @@ -808,7 +808,7 @@ Audio2_notepitch: ; 21ce9 (8:5ce9) jr nc, .skip2 inc d .skip2 - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld [hl], e call Audio2_21dcc @@ -818,7 +818,7 @@ Audio2_21d79: ; 21d79 (8:5d79) ld b, $0 ld hl, Unknown_222e6 add hl, bc - ld a, [$ff25] + ld a, [rNR51] or [hl] ld d, a ld a, c @@ -826,18 +826,18 @@ Audio2_21d79: ; 21d79 (8:5d79) jr z, .sfxNoiseChannel cp CH4 jr nc, .skip ; if sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr nz, .skip .sfxNoiseChannel - ld a, [wc004] + ld a, [wStereoPanning] ld hl, Unknown_222e6 add hl, bc and [hl] ld d, a - ld a, [$ff25] + ld a, [rNR51] ld hl, Unknown_222de add hl, bc and [hl] @@ -845,12 +845,12 @@ Audio2_21d79: ; 21d79 (8:5d79) ld d, a .skip ld a, d - ld [$ff25], a + ld [rNR51], a ret Audio2_21daa: ; 21daa (8:5daa) ld b, $0 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld d, [hl] ld a, c @@ -861,7 +861,7 @@ Audio2_21daa: ; 21daa (8:5daa) ld a, d and $3f ld d, a - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d @@ -881,10 +881,10 @@ Audio2_21dcc: ; 21dcc (8:5dcc) ; fall through .channel3 push de - ld de, wc0e6 + ld de, wMusicWaveInstrument cp CH2 jr z, .musicChannel3 - ld de, wc0e7 + ld de, wSfxWaveInstrument .musicChannel3 ld a, [de] add a @@ -898,7 +898,7 @@ Audio2_21dcc: ; 21dcc (8:5dcc) ld hl, $ff30 ld b, $f ld a, $0 - ld [$ff1a], a + ld [rNR30], a .loop ld a, [de] inc de @@ -908,7 +908,7 @@ Audio2_21dcc: ; 21dcc (8:5dcc) and a jr nz, .loop ld a, $80 - ld [$ff1a], a + ld [rNR30], a pop de .notSfxChannel3 ld a, d @@ -935,9 +935,9 @@ Audio2_21e19: ; 21e19 (8:5e19) bit 7, a jr z, .asm_21e2e xor a - ld [wc0f1], a + ld [wFrequencyModifier], a ld a, $80 - ld [wc0f2], a + ld [wTempoModifier], a .asm_21e2e ret @@ -948,20 +948,20 @@ Audio2_21e2f: ; 21e2f (8:5e2f) jr nc, .asm_21e4c .asm_21e39 ld d, $0 - ld a, [wc0f2] + ld a, [wTempoModifier] add $80 jr nc, .asm_21e43 inc d .asm_21e43 - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, d - ld [wc0ea], a + ld [wSfxTempo], a jr .asm_21e55 .asm_21e4c xor a - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, $1 - ld [wc0ea], a + ld [wSfxTempo], a .asm_21e55 ret @@ -971,7 +971,7 @@ Audio2_21e56: ; 21e56 (8:5e56) call Audio2_21e9f jr nc, .asm_21e6c .asm_21e60 - ld a, [wc0f1] + ld a, [wFrequencyModifier] add e jr nc, .asm_21e67 inc d @@ -987,7 +987,7 @@ Audio2_21e56: ; 21e56 (8:5e56) Audio2_21e6d: ; 21e6d (8:5e6d) call Audio2_21e8b jr nc, .asm_21e88 - ld hl, wc006 + ld hl, wChannelCommandPointers ld e, c ld d, $0 sla e @@ -1008,7 +1008,7 @@ Audio2_21e6d: ; 21e6d (8:5e6d) ret Audio2_21e8b: ; 21e8b (8:5e8b) - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_21e94 jr .asm_21e9a @@ -1025,9 +1025,9 @@ Audio2_21e8b: ; 21e8b (8:5e8b) ret Audio2_21e9f: ; 21e9f (8:5e9f) - ld a, [wc02d] + ld a, [wChannelSoundIDs + CH7] ld b, a - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] or b cp $9d jr nc, .asm_21ead @@ -1045,27 +1045,27 @@ Audio2_21e9f: ; 21e9f (8:5e9f) ret Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 5, [hl] jp nz, .asm_21eff - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld l, [hl] ld h, b add hl, de ld d, h ld e, l - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc push hl - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] pop hl @@ -1077,26 +1077,26 @@ Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) ld a, $0 adc d ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] cp d jp c, .asm_21f45 jr nz, .asm_21f32 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] cp e jp c, .asm_21f45 jr .asm_21f32 .asm_21eff - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld a, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld e, [hl] sub e @@ -1104,7 +1104,7 @@ Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) ld a, d sbc b ld d, a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] add a @@ -1115,22 +1115,22 @@ Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, d cp [hl] jr c, .asm_21f45 jr nz, .asm_21f32 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e cp [hl] jr c, .asm_21f45 .asm_21f32 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d ld b, $3 @@ -1140,54 +1140,54 @@ Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8) ld [hl], d ret .asm_21f45 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] ret Audio2_21f4e: ; 21f4e (8:5f4e) - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld a, [hl] - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc sub [hl] jr nc, .asm_21f66 ld a, $1 .asm_21f66 ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e sub [hl] ld e, a ld a, d sbc b - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc sub [hl] jr c, .asm_21f82 ld d, a ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 5, [hl] jr .asm_21fa5 .asm_21f82 - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] sub e @@ -1195,17 +1195,17 @@ Audio2_21f4e: ; 21f4e (8:5f4e) ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] sub d ld d, a ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 5, [hl] .asm_21fa5 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc .asm_21fa9 inc b @@ -1224,20 +1224,20 @@ Audio2_21f4e: ; 21f4e (8:5f4e) add [hl] ld d, b ld b, $0 - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld [hl], d - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc ld [hl], a ret Audio2_ApplyDutyCycle: ; 21fcc (8:5fcc) ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld a, [hl] rlca @@ -1258,7 +1258,7 @@ Audio2_GetNextMusicByte: ; 21fe4 (8:5fe4) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld a, [hli] ld e, a @@ -1325,8 +1325,8 @@ Audio2_22017: ; 22017 (8:6017) ld d, a ret -Audio2_22035:: ; 22035 (8:6035) - ld [wc001], a +Audio2_PlaySound:: ; 22035 (8:6035) + ld [wSoundID], a cp $ff jp z, Audio2_221f3 cp $e9 @@ -1337,75 +1337,75 @@ Audio2_22035:: ; 22035 (8:6035) jp nc, Audio2_2210d .asm_2204c xor a - ld [wc000], a - ld [wc003], a - ld [wc0e9], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMusicTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $8 - ld hl, wc016 + ld hl, wChannelReturnAddresses call FillAudioRAM2 - ld hl, wc006 + ld hl, wChannelCommandPointers call FillAudioRAM2 ld d, $4 - ld hl, wc026 + ld hl, wChannelSoundIDs call FillAudioRAM2 - ld hl, wc02e + ld hl, wChannelFlags1 call FillAudioRAM2 - ld hl, wc03e + ld hl, wChannelDuties call FillAudioRAM2 - ld hl, wc046 + ld hl, wChannelDutyCycles call FillAudioRAM2 - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters call FillAudioRAM2 - ld hl, wc056 + ld hl, wChannelVibratoExtents call FillAudioRAM2 - ld hl, wc05e + ld hl, wChannelVibratoRates call FillAudioRAM2 - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes call FillAudioRAM2 - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues call FillAudioRAM2 - ld hl, wc036 + ld hl, wChannelFlags2 call FillAudioRAM2 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers call FillAudioRAM2 - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps call FillAudioRAM2 - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart call FillAudioRAM2 - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart call FillAudioRAM2 - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes call FillAudioRAM2 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes call FillAudioRAM2 - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes call FillAudioRAM2 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes call FillAudioRAM2 ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters call FillAudioRAM2 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters call FillAudioRAM2 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds call FillAudioRAM2 - ld [wc0e8], a + ld [wMusicTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a xor a - ld [$ff24], a + ld [rNR50], a ld a, $8 - ld [$ff10], a + ld [rNR10], a ld a, $0 - ld [$ff25], a + ld [rNR51], a xor a - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a ld a, $77 - ld [$ff24], a + ld [rNR50], a jp Audio2_2224e Audio2_2210d: ; 2210d (8:610d) @@ -1418,9 +1418,9 @@ Audio2_2210d: ; 2210d (8:610d) ld de, SFX_Headers_2 add hl, de ld a, h - ld [wc0ec], a + ld [wSfxHeaderPointer], a ld a, l - ld [wc0ed], a + ld [wSfxHeaderPointer + 1], a ld a, [hl] and $c0 rlca @@ -1433,9 +1433,9 @@ Audio2_2210d: ; 2210d (8:610d) add c ld c, a ld b, $0 - ld a, [wc0ec] + ld a, [wSfxHeaderPointer] ld h, a - ld a, [wc0ed] + ld a, [wSfxHeaderPointer + 1] ld l, a add hl, bc ld c, d @@ -1443,7 +1443,7 @@ Audio2_2210d: ; 2210d (8:610d) and $f ld e, a ld d, $0 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld a, [hl] and a @@ -1451,7 +1451,7 @@ Audio2_2210d: ; 2210d (8:610d) ld a, e cp $7 jr nz, .asm_22159 - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_22152 ret @@ -1461,7 +1461,7 @@ Audio2_2210d: ; 2210d (8:610d) jr z, .asm_22162 jr c, .asm_22162 .asm_22159 - ld a, [wc001] + ld a, [wSoundID] cp [hl] jr z, .asm_22162 jr c, .asm_22162 @@ -1474,84 +1474,84 @@ Audio2_2210d: ; 2210d (8:610d) add hl, hl ld d, h ld e, l - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld [hli], a ld [hl], a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld [hli], a ld [hl], a pop de - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, de ld [hl], a - ld hl, wc03e + ld hl, wChannelDuties add hl, de ld [hl], a - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, de ld [hl], a - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, de ld [hl], a - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, de ld [hl], a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, de ld [hl], a - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, de ld [hl], a - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, de ld [hl], a - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, de ld [hl], a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, de ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, de ld [hl], a - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, de ld [hl], a ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, de ld [hl], a - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, de ld [hl], a - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, de ld [hl], a ld a, e cp $4 jr nz, .asm_221ea ld a, $8 - ld [$ff10], a + ld [rNR10], a .asm_221ea ld a, c and a @@ -1561,41 +1561,41 @@ Audio2_2210d: ; 2210d (8:610d) Audio2_221f3: ; 221f3 (8:61f3) ld a, $80 - ld [$ff26], a - ld [$ff1a], a + ld [rNR52], a + ld [rNR30], a xor a - ld [$ff25], a - ld [$ff1c], a + ld [rNR51], a + ld [rNR32], a ld a, $8 - ld [$ff10], a - ld [$ff12], a - ld [$ff17], a - ld [$ff21], a + ld [rNR10], a + ld [rNR12], a + ld [rNR22], a + ld [rNR42], a ld a, $40 - ld [$ff14], a - ld [$ff19], a - ld [$ff23], a + ld [rNR14], a + ld [rNR24], a + ld [rNR44], a ld a, $77 - ld [$ff24], a + ld [rNR50], a xor a - ld [wc000], a - ld [wc003], a - ld [wc002], a - ld [wc0e9], a - ld [wc0eb], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMuteAudioAndPauseMusic], a + ld [wMusicTempo + 1], a + ld [wSfxTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $a0 - ld hl, wc006 + ld hl, wChannelCommandPointers call FillAudioRAM2 ld a, $1 ld d, $18 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters call FillAudioRAM2 - ld [wc0e8], a - ld [wc0ea], a + ld [wMusicTempo], a + ld [wSfxTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a ret ; fills d bytes at hl with a @@ -1608,7 +1608,7 @@ FillAudioRAM2: ; 22248 (8:6248) ret Audio2_2224e: ; 2224e (8:624e) - ld a, [wc001] + ld a, [wSoundID] ld l, a ld e, a ld h, $0 @@ -1619,7 +1619,7 @@ Audio2_2224e: ; 2224e (8:624e) add hl, de ld e, l ld d, h - ld hl, wc006 + ld hl, wChannelCommandPointers ld a, [de] ; get channel number ld b, a rlca @@ -1645,14 +1645,14 @@ Audio2_2224e: ; 2224e (8:624e) push af ld b, $0 ld c, a - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc - ld a, [wc001] + ld a, [wSoundID] ld [hl], a pop af cp $3 jr c, .asm_22291 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 2, [hl] .asm_22291 @@ -1671,34 +1671,34 @@ Audio2_2224e: ; 2224e (8:624e) ld a, [de] inc de jr nz, .asm_22270 - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_222aa jr .asm_222d4 .asm_222aa - ld a, [wc001] + ld a, [wSoundID] cp $86 jr z, .asm_222d4 jr c, .asm_222b5 jr .asm_222d4 .asm_222b5 - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld hl, wc012 ; sfx noise channel pointer + ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer ld de, Noise2_endchannel ld [hl], e inc hl ld [hl], d ; overwrite pointer to point to endchannel - ld a, [wc005] + ld a, [wSavedVolume] and a jr nz, .asm_222d4 - ld a, [$ff24] - ld [wc005], a + ld a, [rNR50] + ld [wSavedVolume], a ld a, $77 - ld [$ff24], a + ld [rNR50], a .asm_222d4 ret diff --git a/audio/engine_3.asm b/audio/engine_3.asm index 93fa62aa..c7254405 100644 --- a/audio/engine_3.asm +++ b/audio/engine_3.asm @@ -4,7 +4,7 @@ Audio3_UpdateMusic:: ; 7d177 (1f:5177) ld c, CH0 .loop ld b, $0 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc ld a, [hl] and a @@ -12,18 +12,18 @@ Audio3_UpdateMusic:: ; 7d177 (1f:5177) ld a, c cp CH4 jr nc, .applyAffects ; if sfx channel - ld a, [wc002] + ld a, [wMuteAudioAndPauseMusic] and a jr z, .applyAffects bit 7, a jr nz, .nextChannel set 7, a - ld [wc002], a + ld [wMuteAudioAndPauseMusic], a xor a - ld [$ff25], a - ld [$ff1a], a + ld [rNR51], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a jr .nextChannel .applyAffects call Audio3_ApplyMusicAffects @@ -36,7 +36,7 @@ Audio3_UpdateMusic:: ; 7d177 (1f:5177) ; this routine checks flags for music effects currently applied ; to the channel and calls certain functions based on flags. -; known flags for wc02e: +; known flags for wChannelFlags1: ; 0: toggleperfectpitch has been used ; 1: call has been used ; 3: a toggle used only by this routine for vibrato @@ -44,7 +44,7 @@ Audio3_UpdateMusic:: ; 7d177 (1f:5177) ; 6: dutycycle flag Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) ld b, $0 - ld hl, wc0b6 ; delay until next note + ld hl, wChannelNoteDelayCounters ; delay until next note add hl, bc ld a, [hl] cp $1 ; if delay is 1, play next note @@ -54,36 +54,36 @@ Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) ld a, c cp CH4 jr nc, .startChecks ; if a sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr z, .startChecks ret .startChecks - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 6, [hl] ; dutycycle jr z, .checkForExecuteMusic call Audio3_ApplyDutyCycle .checkForExecuteMusic ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 2, [hl] jr nz, .disablePitchBendVibrato .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] ; pitchbend jr z, .checkVibratoDelay jp Audio3_ApplyPitchBend .checkVibratoDelay - ld hl, wc04e ; vibrato delay + ld hl, wChannelVibratoDelayCounters ; vibrato delay add hl, bc ld a, [hl] and a ; check if delay is over @@ -92,7 +92,7 @@ Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) .disablePitchBendVibrato ret .checkForVibrato - ld hl, wc056 ; vibrato rate + ld hl, wChannelVibratoExtents ; vibrato rate add hl, bc ld a, [hl] and a @@ -100,7 +100,7 @@ Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) ret ; no vibrato .vibrato ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc ld a, [hl] and $f @@ -113,10 +113,10 @@ Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) swap [hl] or [hl] ld [hl], a ; reset the vibrato value and start again - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld e, [hl] ; get note pitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 3, [hl] ; this is the only code that sets/resets bit three so jr z, .unset ; it continuously alternates which path it takes @@ -149,13 +149,13 @@ Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) ; like tempo changes, duty changes etc. and doesn't return ; until the first note is reached Audio3_PlayNextNote: ; 7d244 (1f:5244) - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld a, [hl] - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] @@ -168,7 +168,7 @@ Audio3_endchannel: ; 7d25a (1f:525a) cp $ff ; is this command an endchannel? jp nz, Audio3_callchannel ; no ld b, $0 ; yes - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 1, [hl] jr nz, .returnFromCall @@ -178,22 +178,22 @@ Audio3_endchannel: ; 7d25a (1f:525a) jr .asm_7d2b3 .noiseOrSfxChannel res 2, [hl] - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc res 0, [hl] cp CH6 jr nz, .notSfxChannel3 ld a, $0 - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a .notSfxChannel3 jr nz, .asm_7d296 - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr z, .asm_7d296 xor a - ld [wc003], a + ld [wDisableChannelOutputWhenSfxEnds], a jr .asm_7d2b3 .asm_7d296 jr .asm_7d2bc @@ -203,10 +203,10 @@ Audio3_endchannel: ; 7d25a (1f:525a) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl ; store current channel address - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -220,16 +220,16 @@ Audio3_endchannel: ; 7d25a (1f:525a) .asm_7d2b3 ld hl, Unknown_7db93 add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a .asm_7d2bc - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_7d2c5 jr .asm_7d2e2 .asm_7d2c5 - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $86 jr z, .asm_7d2e2 jr c, .asm_7d2d0 @@ -241,12 +241,12 @@ Audio3_endchannel: ; 7d25a (1f:525a) call Audio3_7d73b ret c .asm_7d2d9 - ld a, [wc005] - ld [$ff24], a + ld a, [wSavedVolume] + ld [rNR50], a xor a - ld [wc005], a + ld [wSavedVolume], a .asm_7d2e2 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc ld [hl], b ret @@ -265,10 +265,10 @@ Audio3_callchannel: ; 7d2e8 (1f:52e8) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -283,7 +283,7 @@ Audio3_callchannel: ; 7d2e8 (1f:52e8) inc hl ld [hl], d ; overwrite current address with pointer ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 1, [hl] ; set the call flag jp Audio3_endchannel @@ -296,7 +296,7 @@ Audio3_loopchannel: ; 7d31d (1f:531d) and a jr z, .infiniteLoop ld b, $0 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, bc ld a, [hl] cp e @@ -319,7 +319,7 @@ Audio3_loopchannel: ; 7d31d (1f:531d) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de pop af ld [hli], a @@ -333,7 +333,7 @@ Audio3_notetype: ; 7d358 (1f:5358) ld a, d ; yes and $f ld b, $0 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld [hl], a ; store low nibble as speed ld a, c @@ -346,10 +346,10 @@ Audio3_notetype: ; 7d358 (1f:5358) jr z, .musicChannel3 cp CH6 jr nz, .notChannel3 - ld hl, wc0e7 + ld hl, wSfxWaveInstrument jr .sfxChannel3 .musicChannel3 - ld hl, wc0e6 + ld hl, wMusicWaveInstrument .sfxChannel3 ld a, d and $f @@ -364,7 +364,7 @@ Audio3_notetype: ; 7d358 (1f:5358) ; else, store volume (high nibble) and fade (low nibble) .notChannel3 ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld [hl], d .noiseChannel @@ -375,11 +375,11 @@ Audio3_toggleperfectpitch: ; 7d397 (1f:5397) cp $e8 ; is this command a toggleperfectpitch? jr nz, Audio3_vibrato ; no ld b, $0 ; yes - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc ld a, [hl] xor $1 - ld [hl], a ; flip bit 0 of wc02e + ld [hl], a ; flip bit 0 of wChannelFlags1 jp Audio3_endchannel Audio3_vibrato: ; 7d3a9 (1f:53a9) @@ -387,10 +387,10 @@ Audio3_vibrato: ; 7d3a9 (1f:53a9) jr nz, Audio3_pitchbend ; no call Audio3_GetNextMusicByte ; yes ld b, $0 - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a ; store delay - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld [hl], a ; store delay call Audio3_GetNextMusicByte @@ -398,7 +398,7 @@ Audio3_vibrato: ; 7d3a9 (1f:53a9) and $f0 swap a ld b, $0 - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, bc srl a ld e, a @@ -409,7 +409,7 @@ Audio3_vibrato: ; 7d3a9 (1f:53a9) ld a, d and $f ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc swap a or d @@ -421,7 +421,7 @@ Audio3_pitchbend: ; 7d3e1 (1f:53e1) jr nz, Audio3_duty ; no call Audio3_GetNextMusicByte ; yes ld b, $0 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc ld [hl], a ; store first param call Audio3_GetNextMusicByte @@ -433,14 +433,14 @@ Audio3_pitchbend: ; 7d3e1 (1f:53e1) and $f call Audio3_7d8cc ld b, $0 - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld [hl], d ; store unknown part of second param - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld [hl], e ; store unknown part of second param ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 4, [hl] ; set pitchbend flag call Audio3_GetNextMusicByte @@ -455,7 +455,7 @@ Audio3_duty: ; 7d419 (1f:5419) rrca and $c0 ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store duty jp Audio3_endchannel @@ -467,25 +467,25 @@ Audio3_tempo: ; 7d42e (1f:542e) cp CH4 jr nc, .sfxChannel call Audio3_GetNextMusicByte - ld [wc0e8], a ; store first param + ld [wMusicTempo], a ; store first param call Audio3_GetNextMusicByte - ld [wc0e9], a ; store second param + ld [wMusicTempo + 1], a ; store second param xor a - ld [wc0ce], a ; clear RAM - ld [wc0cf], a - ld [wc0d0], a - ld [wc0d1], a + ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 1], a + ld [wChannelNoteDelayCountersFractionalPart + 2], a + ld [wChannelNoteDelayCountersFractionalPart + 3], a jr .musicChannelDone .sfxChannel call Audio3_GetNextMusicByte - ld [wc0ea], a ; store first param + ld [wSfxTempo], a ; store first param call Audio3_GetNextMusicByte - ld [wc0eb], a ; store second param + ld [wSfxTempo + 1], a ; store second param xor a - ld [wc0d2], a ; clear RAM - ld [wc0d3], a - ld [wc0d4], a - ld [wc0d5], a + ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 5], a + ld [wChannelNoteDelayCountersFractionalPart + 6], a + ld [wChannelNoteDelayCountersFractionalPart + 7], a .musicChannelDone jp Audio3_endchannel @@ -493,7 +493,7 @@ Audio3_stereopanning: ; 7d46e (1f:546e) cp $ee ; is this command a stereopanning? jr nz, Audio3_unknownmusic0xef ; no call Audio3_GetNextMusicByte ; yes - ld [wc004], a ; store panning + ld [wStereoPanning], a ; store panning jp Audio3_endchannel ; this appears to never be used @@ -502,15 +502,15 @@ Audio3_unknownmusic0xef: ; 7d47b (1f:547b) jr nz, Audio3_dutycycle ; no call Audio3_GetNextMusicByte ; yes push bc - call Audio3_7d8ea + call Audio3_PlaySound pop bc - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .skip - ld a, [wc02d] - ld [wc003], a + ld a, [wChannelSoundIDs + CH7] + ld [wDisableChannelOutputWhenSfxEnds], a xor a - ld [wc02d], a + ld [wChannelSoundIDs + CH7], a .skip jp Audio3_endchannel @@ -519,14 +519,14 @@ Audio3_dutycycle: ; 7d49a (1f:549a) jr nz, Audio3_volume ; no call Audio3_GetNextMusicByte ; yes ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld [hl], a ; store full cycle and $c0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store first duty - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 6, [hl] ; set duty flag jp Audio3_endchannel @@ -535,14 +535,14 @@ Audio3_volume: ; 7d4b8 (1f:54b8) cp $f0 ; is this command a volume? jr nz, Audio3_executemusic ; no call Audio3_GetNextMusicByte ; yes - ld [$ff24], a ; store volume + ld [rNR50], a ; store volume jp Audio3_endchannel Audio3_executemusic: ; 7d4c4 (1f:54c4) cp $f8 ; is this command an executemusic? jr nz, Audio3_octave ; no ld b, $0 ; yes - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc set 0, [hl] jp Audio3_endchannel @@ -551,7 +551,7 @@ Audio3_octave: ; 7d4d3 (1f:54d3) and $f0 cp $e0 ; is this command an octave? jr nz, Audio3_unknownsfx0x20 ; no - ld hl, wc0d6 ; yes + ld hl, wChannelOctaves ; yes ld b, $0 add hl, bc ld a, d @@ -566,14 +566,14 @@ Audio3_unknownsfx0x20: ; 7d4e6 (1f:54e6) cp CH3 ; is this a noise or sfx channel? jr c, Audio3_unknownsfx0x10 ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio3_unknownsfx0x10 ; no call Audio3_notelength ; yes ld d, a ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d @@ -612,12 +612,12 @@ Audio3_unknownsfx0x10: ; 7d533 (1f:5533) cp $10 ; is this command an unknownsfx0x10? jr nz, Audio3_note ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio3_note ; no call Audio3_GetNextMusicByte ; yes - ld [$ff10], a + ld [rNR10], a jp Audio3_endchannel Audio3_note: ; 7d54f (1f:554f) @@ -647,11 +647,11 @@ Audio3_dnote: ; 7d569 (1f:5569) call Audio3_GetNextMusicByte ; get dnote instrument asm_7d571 ld d, a - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .asm_7d57c ld a, d - call Audio3_7d8ea + call Audio3_PlaySound .asm_7d57c pop bc pop de @@ -664,7 +664,7 @@ Audio3_notelength: ; 7d57e (1f:557e) ld b, $0 ld e, a ; store note length (in 16ths) ld d, b - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld a, [hl] ld l, b @@ -672,9 +672,9 @@ Audio3_notelength: ; 7d57e (1f:557e) ld a, c cp CH4 jr nc, .sfxChannel - ld a, [wc0e8] + ld a, [wMusicTempo] ld d, a - ld a, [wc0e9] + ld a, [wMusicTempo + 1] ld e, a jr .skip .sfxChannel @@ -683,31 +683,31 @@ Audio3_notelength: ; 7d57e (1f:557e) cp CH7 jr z, .skip ; if noise channel call Audio3_7d707 - ld a, [wc0ea] + ld a, [wSfxTempo] ld d, a - ld a, [wc0eb] + ld a, [wSfxTempo + 1] ld e, a .skip ld a, l ld b, $0 - ld hl, wc0ce + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld l, [hl] call Audio3_7d8bb ld e, l ld d, h - ld hl, wc0ce + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld [hl], e ld a, d - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, Audio3_notepitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 2, [hl] jr z, Audio3_notepitch @@ -722,7 +722,7 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) ld a, c cp CH4 jr nc, .sfxChannel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a @@ -738,9 +738,9 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) ld b, $0 ld hl, Unknown_7db93 add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a jr .quit .notSfxChannel3 ld b, $2 @@ -755,12 +755,12 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) .notRest swap a ld b, $0 - ld hl, wc0d6 + ld hl, wChannelOctaves add hl, bc ld b, [hl] call Audio3_7d8cc ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] jr z, .asm_7d62c @@ -770,7 +770,7 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) ld a, c cp CH4 jr nc, .skip ; if sfx Channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 ld d, $0 ld e, a add hl, de @@ -783,7 +783,7 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) ret .skip ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld d, [hl] ld b, $2 @@ -793,7 +793,7 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) call Audio3_7d66c pop de ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 0, [hl] ; has toggleperfectpitch been used? jr z, .skip2 @@ -801,7 +801,7 @@ Audio3_notepitch: ; 7d5dc (1f:55dc) jr nc, .skip2 inc d .skip2 - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld [hl], e call Audio3_7d6bf @@ -811,7 +811,7 @@ Audio3_7d66c: ; 7d66c (1f:566c) ld b, $0 ld hl, Unknown_7db9b add hl, bc - ld a, [$ff25] + ld a, [rNR51] or [hl] ld d, a ld a, c @@ -819,18 +819,18 @@ Audio3_7d66c: ; 7d66c (1f:566c) jr z, .sfxNoiseChannel cp CH4 jr nc, .skip ; if sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr nz, .skip .sfxNoiseChannel - ld a, [wc004] + ld a, [wStereoPanning] ld hl, Unknown_7db9b add hl, bc and [hl] ld d, a - ld a, [$ff25] + ld a, [rNR51] ld hl, Unknown_7db93 add hl, bc and [hl] @@ -838,12 +838,12 @@ Audio3_7d66c: ; 7d66c (1f:566c) ld d, a .skip ld a, d - ld [$ff25], a + ld [rNR51], a ret Audio3_7d69d: ; 7d69d (1f:569d) ld b, $0 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld d, [hl] ld a, c @@ -854,7 +854,7 @@ Audio3_7d69d: ; 7d69d (1f:569d) ld a, d and $3f ld d, a - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d @@ -874,10 +874,10 @@ Audio3_7d6bf: ; 7d6bf (1f:56bf) ; fall through .channel3 push de - ld de, wc0e6 + ld de, wMusicWaveInstrument cp CH2 jr z, .musicChannel3 - ld de, wc0e7 + ld de, wSfxWaveInstrument .musicChannel3 ld a, [de] add a @@ -891,7 +891,7 @@ Audio3_7d6bf: ; 7d6bf (1f:56bf) ld hl, $ff30 ld b, $f ld a, $0 - ld [$ff1a], a + ld [rNR30], a .loop ld a, [de] inc de @@ -901,7 +901,7 @@ Audio3_7d6bf: ; 7d6bf (1f:56bf) and a jr nz, .loop ld a, $80 - ld [$ff1a], a + ld [rNR30], a pop de .notSfxChannel3 ld a, d @@ -920,27 +920,27 @@ Audio3_7d707: ; 7d707 (1f:5707) call Audio3_7d759 jr nc, .asm_7d71f ld d, $0 - ld a, [wc0f2] + ld a, [wTempoModifier] add $80 jr nc, .asm_7d716 inc d .asm_7d716 - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, d - ld [wc0ea], a + ld [wSfxTempo], a jr .asm_7d728 .asm_7d71f xor a - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, $1 - ld [wc0ea], a + ld [wSfxTempo], a .asm_7d728 ret Audio3_7d729: ; 7d729 (1f:5729) call Audio3_7d759 jr nc, .asm_7d73a - ld a, [wc0f1] + ld a, [wFrequencyModifier] add e jr nc, .asm_7d735 inc d @@ -956,7 +956,7 @@ Audio3_7d729: ; 7d729 (1f:5729) Audio3_7d73b: ; 7d73b (1f:573b) call Audio3_7d759 jr nc, .asm_7d756 - ld hl, wc006 + ld hl, wChannelCommandPointers ld e, c ld d, $0 sla e @@ -977,7 +977,7 @@ Audio3_7d73b: ; 7d73b (1f:573b) ret Audio3_7d759: ; 7d759 (1f:5759) - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_7d762 jr .asm_7d768 @@ -994,27 +994,27 @@ Audio3_7d759: ; 7d759 (1f:5759) ret Audio3_ApplyPitchBend: ; 7d76d (1f:576d) - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 5, [hl] jp nz, .asm_7d7b4 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld l, [hl] ld h, b add hl, de ld d, h ld e, l - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc push hl - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] pop hl @@ -1026,26 +1026,26 @@ Audio3_ApplyPitchBend: ; 7d76d (1f:576d) ld a, $0 adc d ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] cp d jp c, .asm_7d7fa jr nz, .asm_7d7e7 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] cp e jp c, .asm_7d7fa jr .asm_7d7e7 .asm_7d7b4 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld a, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld e, [hl] sub e @@ -1053,7 +1053,7 @@ Audio3_ApplyPitchBend: ; 7d76d (1f:576d) ld a, d sbc b ld d, a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] add a @@ -1064,22 +1064,22 @@ Audio3_ApplyPitchBend: ; 7d76d (1f:576d) ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, d cp [hl] jr c, .asm_7d7fa jr nz, .asm_7d7e7 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e cp [hl] jr c, .asm_7d7fa .asm_7d7e7 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d ld b, $3 @@ -1089,54 +1089,54 @@ Audio3_ApplyPitchBend: ; 7d76d (1f:576d) ld [hl], d ret .asm_7d7fa - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] ret Audio3_7d803: ; 7d803 (1f:5803) - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld a, [hl] - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc sub [hl] jr nc, .asm_7d81b ld a, $1 .asm_7d81b ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e sub [hl] ld e, a ld a, d sbc b - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc sub [hl] jr c, .asm_7d837 ld d, a ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 5, [hl] jr .asm_7d85a .asm_7d837 - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] sub e @@ -1144,17 +1144,17 @@ Audio3_7d803: ; 7d803 (1f:5803) ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] sub d ld d, a ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 5, [hl] .asm_7d85a - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc .asm_7d85e inc b @@ -1173,20 +1173,20 @@ Audio3_7d803: ; 7d803 (1f:5803) add [hl] ld d, b ld b, $0 - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld [hl], d - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc ld [hl], a ret Audio3_ApplyDutyCycle: ; 7d881 (1f:5881) ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld a, [hl] rlca @@ -1207,7 +1207,7 @@ Audio3_GetNextMusicByte: ; 7d899 (1f:5899) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld a, [hli] ld e, a @@ -1274,8 +1274,8 @@ Audio3_7d8cc: ; 7d8cc (1f:58cc) ld d, a ret -Audio3_7d8ea:: ; 7d8ea (1f:58ea) - ld [wc001], a +Audio3_PlaySound:: ; 7d8ea (1f:58ea) + ld [wSoundID], a cp $ff jp z, Audio3_7daa8 cp $c2 @@ -1286,75 +1286,75 @@ Audio3_7d8ea:: ; 7d8ea (1f:58ea) jp nc, Audio3_7d9c2 .asm_7d901 xor a - ld [wc000], a - ld [wc003], a - ld [wc0e9], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMusicTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $8 - ld hl, wc016 + ld hl, wChannelReturnAddresses call FillAudioRAM3 - ld hl, wc006 + ld hl, wChannelCommandPointers call FillAudioRAM3 ld d, $4 - ld hl, wc026 + ld hl, wChannelSoundIDs call FillAudioRAM3 - ld hl, wc02e + ld hl, wChannelFlags1 call FillAudioRAM3 - ld hl, wc03e + ld hl, wChannelDuties call FillAudioRAM3 - ld hl, wc046 + ld hl, wChannelDutyCycles call FillAudioRAM3 - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters call FillAudioRAM3 - ld hl, wc056 + ld hl, wChannelVibratoExtents call FillAudioRAM3 - ld hl, wc05e + ld hl, wChannelVibratoRates call FillAudioRAM3 - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes call FillAudioRAM3 - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues call FillAudioRAM3 - ld hl, wc036 + ld hl, wChannelFlags2 call FillAudioRAM3 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers call FillAudioRAM3 - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps call FillAudioRAM3 - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart call FillAudioRAM3 - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart call FillAudioRAM3 - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes call FillAudioRAM3 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes call FillAudioRAM3 - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes call FillAudioRAM3 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes call FillAudioRAM3 ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters call FillAudioRAM3 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters call FillAudioRAM3 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds call FillAudioRAM3 - ld [wc0e8], a + ld [wMusicTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a xor a - ld [$ff24], a + ld [rNR50], a ld a, $8 - ld [$ff10], a + ld [rNR10], a ld a, $0 - ld [$ff25], a + ld [rNR51], a xor a - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a ld a, $77 - ld [$ff24], a + ld [rNR50], a jp Audio3_7db03 Audio3_7d9c2: ; 7d9c2 (1f:59c2) @@ -1367,9 +1367,9 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) ld de, SFX_Headers_3 add hl, de ld a, h - ld [wc0ec], a + ld [wSfxHeaderPointer], a ld a, l - ld [wc0ed], a + ld [wSfxHeaderPointer + 1], a ld a, [hl] and $c0 rlca @@ -1382,9 +1382,9 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) add c ld c, a ld b, $0 - ld a, [wc0ec] + ld a, [wSfxHeaderPointer] ld h, a - ld a, [wc0ed] + ld a, [wSfxHeaderPointer + 1] ld l, a add hl, bc ld c, d @@ -1392,7 +1392,7 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) and $f ld e, a ld d, $0 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld a, [hl] and a @@ -1400,7 +1400,7 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) ld a, e cp $7 jr nz, .asm_7da0e - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_7da07 ret @@ -1410,7 +1410,7 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) jr z, .asm_7da17 jr c, .asm_7da17 .asm_7da0e - ld a, [wc001] + ld a, [wSoundID] cp [hl] jr z, .asm_7da17 jr c, .asm_7da17 @@ -1423,84 +1423,84 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) add hl, hl ld d, h ld e, l - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld [hli], a ld [hl], a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld [hli], a ld [hl], a pop de - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, de ld [hl], a - ld hl, wc03e + ld hl, wChannelDuties add hl, de ld [hl], a - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, de ld [hl], a - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, de ld [hl], a - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, de ld [hl], a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, de ld [hl], a - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, de ld [hl], a - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, de ld [hl], a - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, de ld [hl], a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, de ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, de ld [hl], a - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, de ld [hl], a ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, de ld [hl], a - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, de ld [hl], a - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, de ld [hl], a ld a, e cp $4 jr nz, .asm_7da9f ld a, $8 - ld [$ff10], a + ld [rNR10], a .asm_7da9f ld a, c and a @@ -1510,41 +1510,41 @@ Audio3_7d9c2: ; 7d9c2 (1f:59c2) Audio3_7daa8: ; 7daa8 (1f:5aa8) ld a, $80 - ld [$ff26], a - ld [$ff1a], a + ld [rNR52], a + ld [rNR30], a xor a - ld [$ff25], a - ld [$ff1c], a + ld [rNR51], a + ld [rNR32], a ld a, $8 - ld [$ff10], a - ld [$ff12], a - ld [$ff17], a - ld [$ff21], a + ld [rNR10], a + ld [rNR12], a + ld [rNR22], a + ld [rNR42], a ld a, $40 - ld [$ff14], a - ld [$ff19], a - ld [$ff23], a + ld [rNR14], a + ld [rNR24], a + ld [rNR44], a ld a, $77 - ld [$ff24], a + ld [rNR50], a xor a - ld [wc000], a - ld [wc003], a - ld [wc002], a - ld [wc0e9], a - ld [wc0eb], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMuteAudioAndPauseMusic], a + ld [wMusicTempo + 1], a + ld [wSfxTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $a0 - ld hl, wc006 + ld hl, wChannelCommandPointers call FillAudioRAM3 ld a, $1 ld d, $18 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters call FillAudioRAM3 - ld [wc0e8], a - ld [wc0ea], a + ld [wMusicTempo], a + ld [wSfxTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a ret ; fills d bytes at hl with a @@ -1557,7 +1557,7 @@ FillAudioRAM3: ; 7dafd (1f:5afd) ret Audio3_7db03: ; 7db03 (1f:5b03) - ld a, [wc001] + ld a, [wSoundID] ld l, a ld e, a ld h, $0 @@ -1568,7 +1568,7 @@ Audio3_7db03: ; 7db03 (1f:5b03) add hl, de ld e, l ld d, h - ld hl, wc006 + ld hl, wChannelCommandPointers ld a, [de] ; get channel number ld b, a rlca @@ -1594,14 +1594,14 @@ Audio3_7db03: ; 7db03 (1f:5b03) push af ld b, $0 ld c, a - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc - ld a, [wc001] + ld a, [wSoundID] ld [hl], a pop af cp $3 jr c, .asm_7db46 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 2, [hl] .asm_7db46 @@ -1620,34 +1620,34 @@ Audio3_7db03: ; 7db03 (1f:5b03) ld a, [de] inc de jr nz, .asm_7db25 - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_7db5f jr .asm_7db89 .asm_7db5f - ld a, [wc001] + ld a, [wSoundID] cp $86 jr z, .asm_7db89 jr c, .asm_7db6a jr .asm_7db89 .asm_7db6a - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld hl, wc012 ; sfx noise channel pointer + ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer ld de, Noise3_endchannel ld [hl], e inc hl ld [hl], d ; overwrite pointer to point to endchannel - ld a, [wc005] + ld a, [wSavedVolume] and a jr nz, .asm_7db89 - ld a, [$ff24] - ld [wc005], a + ld a, [rNR50] + ld [wSavedVolume], a ld a, $77 - ld [$ff24], a + ld [rNR50], a .asm_7db89 ret diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm index f9e3fe19..21a3ad93 100644 --- a/constants/hardware_constants.asm +++ b/constants/hardware_constants.asm @@ -107,4 +107,3 @@ rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write) rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only) rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only) rIE EQU $ffff ; Interrupt Enable (R/W) - diff --git a/constants/music_constants.asm b/constants/music_constants.asm index f239acea..57ad230d 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -1,3 +1,42 @@ +; HW sound channel register base addresses +HW_CH1_BASE EQU (rNR10 % $100) +HW_CH2_BASE EQU ((rNR21 % $100) - 1) +HW_CH3_BASE EQU (rNR30 % $100) +HW_CH4_BASE EQU ((rNR41 % $100) - 1) + +; HW sound channel enable bit masks +HW_CH1_ENABLE_MASK EQU %00010001 +HW_CH2_ENABLE_MASK EQU %00100010 +HW_CH3_ENABLE_MASK EQU %01000100 +HW_CH4_ENABLE_MASK EQU %10001000 + +; HW sound channel disable bit masks +HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff) +HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff) +HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff) +HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff) + +REG_DUTY_SOUND_LEN EQU 1 +REG_VOLUME_ENVELOPE EQU 2 +REG_FREQUENCY_LO EQU 3 + +MAX_SFX_ID EQU $B9 + +CRY_SFX_START EQU $14 +CRY_SFX_END EQU $86 + +; wChannelFlags1 constants +BIT_PERFECT_PITCH EQU 0 ; controlled by toggleperfectpitch command +BIT_CHANNEL_CALL EQU 1 ; if in channel call +BIT_NOISE_OR_SFX EQU 2 ; if channel is the music noise channel or an SFX channel +BIT_VIBRATO_DIRECTION EQU 3 ; if the pitch is above or below normal (cycles) +BIT_PITCH_BEND_ON EQU 4 ; if pitch bend is active +BIT_PITCH_BEND_DECREASING EQU 5 ; if the pitch bend frequency is decreasing (instead of increasing) +BIT_ROTATE_DUTY EQU 6 ; if rotating duty + +; wChannelFlags2 constant (only has one flag) +BIT_EXECUTE_MUSIC EQU 0 ; if in execute music + ; Song ids are calculated by address to save space. music_const: MACRO diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index b46842ec..1bd48988 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -772,7 +772,7 @@ DoBallTossSpecialEffects: ; 78f3e (1e:4f3e) dec b jr nz,.loop ld a,%00001000 - ld [$ff10],a ; Channel 1 sweep register + ld [rNR10],a ; Channel 1 sweep register ret .isTrainerBattle ; if it's a trainer battle, shorten the animation by one frame ld a,[W_SUBANIMCOUNTER] @@ -2335,19 +2335,19 @@ GetMoveSound: ; 7986f (1e:586f) call GetCryData ld b,a pop hl - ld a,[wc0f1] + ld a,[wFrequencyModifier] add [hl] - ld [wc0f1],a + ld [wFrequencyModifier],a inc hl - ld a,[wc0f2] + ld a,[wTempoModifier] add [hl] - ld [wc0f2],a + ld [wTempoModifier],a jr .done .NotCryMove ld a,[hli] - ld [wc0f1],a + ld [wFrequencyModifier],a ld a,[hli] - ld [wc0f2],a + ld [wTempoModifier],a .done ld a,b ret @@ -3029,8 +3029,8 @@ PlayApplyingAttackSound: ; 79e6a (1e:5e6a) ld b, $1 ld c, SFX_NOT_VERY_EFFECTIVE .playSound - ld [wc0f1], a + ld [wFrequencyModifier], a ld a, b - ld [wc0f2], a + ld [wTempoModifier], a ld a, c jp PlaySound diff --git a/engine/battle/common_text.asm b/engine/battle/common_text.asm index a00e9d59..a1afcb75 100644 --- a/engine/battle/common_text.asm +++ b/engine/battle/common_text.asm @@ -61,9 +61,9 @@ PrintBeginningBattleText: ; 58d99 (16:4d99) .playSFX xor a - ld [wc0f1], a + ld [wFrequencyModifier], a ld a, $80 - ld [wc0f2], a + ld [wTempoModifier], a ld a, SFX_SILPH_SCOPE call PlaySound jp WaitForSoundToFinish diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 004859da..22a47908 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -867,12 +867,12 @@ FaintEnemyPokemon: ; 0x3c567 dec a jr z, .wild_win xor a - ld [wc0f1], a - ld [wc0f2], a + ld [wFrequencyModifier], a + ld [wTempoModifier], a ld a, SFX_FAINT_FALL call PlaySoundWaitForCurrent .sfxwait - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp SFX_FAINT_FALL jr z, .sfxwait ld a, SFX_FAINT_THUD @@ -952,7 +952,7 @@ EnemyMonFaintedText: ; 0x3c63e EndLowHealthAlarm: ; 3c643 (f:4643) xor a ld [wLowHealthAlarm], a ;disable low health alarm - ld [wc02a], a + ld [wChannelSoundIDs + CH4], a inc a ld [wccf6], a ret @@ -1045,7 +1045,7 @@ TrainerDefeatedText: ; 3c6e9 (f:46e9) PlayBattleVictoryMusic: ; 3c6ee (f:46ee) push af ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySoundWaitForCurrent ld c, BANK(Music_DefeatedTrainer) pop af @@ -1944,7 +1944,7 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60) ld [hl], $0 ret z xor a - ld [wc02a], a + ld [wChannelSoundIDs + CH4], a ret .asm_3cde6 ld hl, wLowHealthAlarm @@ -6993,8 +6993,8 @@ _LoadTrainerPic: ; 3f04b (f:704b) ; unreferenced ResetCryModifiers: ; 3f069 (f:7069) xor a - ld [wc0f1], a - ld [wc0f2], a + ld [wFrequencyModifier], a + ld [wTempoModifier], a jp PlaySound ; animates the mon "growing" out of the pokeball diff --git a/engine/battle/end_of_battle.asm b/engine/battle/end_of_battle.asm index c642d206..f1de313c 100755 --- a/engine/battle/end_of_battle.asm +++ b/engine/battle/end_of_battle.asm @@ -46,7 +46,7 @@ EndOfBattle: ; 137aa (4:77aa) .resetVariables xor a ld [wLowHealthAlarm], a ;disable low health alarm - ld [wc02a], a + ld [wChannelSoundIDs + CH4], a ld [W_ISINBATTLE], a ld [W_BATTLETYPE], a ld [W_MOVEMISSED], a diff --git a/engine/cable_club.asm b/engine/cable_club.asm index 078ae5c2..dec18fe3 100755 --- a/engine/cable_club.asm +++ b/engine/cable_club.asm @@ -824,12 +824,12 @@ TradeCenter_Trade: add hl, bc ld a, [hl] ld [wTradedEnemyMonSpecies], a - ld a, $a - ld [wMusicHeaderPointer], a + ld a, 10 + ld [wAudioFadeOutControl], a ld a, $2 - ld [wc0f0], a + ld [wAudioSavedROMBank], a ld a, MUSIC_SAFARI_ZONE - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, 100 call DelayFrames @@ -915,12 +915,12 @@ CableClub_Run: ; 5a5f (1:5a5f) inc a ; LINK_STATE_IN_CABLE_CLUB ld [wLinkState], a ld [$ffb5], a - ld a, $a - ld [wMusicHeaderPointer], a + ld a, 10 + ld [wAudioFadeOutControl], a ld a, BANK(Music_Celadon) - ld [wc0f0], a + ld [wAudioSavedROMBank], a ld a, MUSIC_CELADON - ld [wc0ee], a + ld [wNewSoundID], a jp PlaySound EmptyFunc3: ; 5aaf (1:5aaf) diff --git a/engine/evolution.asm b/engine/evolution.asm index 720e77cd..8fbf568a 100755 --- a/engine/evolution.asm +++ b/engine/evolution.asm @@ -8,9 +8,9 @@ EvolveMon: ; 7bde9 (1e:7de9) push af xor a ld [wLowHealthAlarm], a - ld [wc02a], a + ld [wChannelSoundIDs + CH4], a dec a - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a @@ -68,7 +68,7 @@ EvolveMon: ; 7bde9 (1e:7de9) .done ld [wcf1d], a ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, [wcf1d] call PlayCry diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm index ce1430e3..293c756f 100755 --- a/engine/hall_of_fame.asm +++ b/engine/hall_of_fame.asm @@ -280,9 +280,9 @@ HoFRecordMonInfo: ; 70404 (1c:4404) jp CopyData HoFFadeOutScreenAndMusic: ; 70423 (1c:4423) - ld a, $a - ld [wcfc8], a - ld [wcfc9], a + ld a, 10 + ld [wAudioFadeOutCounterReloadValue], a + ld [wAudioFadeOutCounter], a ld a, $ff - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a jp GBFadeOutToWhite diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm index 0753531e..67e75301 100755 --- a/engine/hidden_object_functions7.asm +++ b/engine/hidden_object_functions7.asm @@ -63,14 +63,14 @@ SafariZoneGameStillGoing: ; 1e9ab (7:69ab) SafariZoneGameOver: ; 1e9b0 (7:69b0) call EnableAutoTextBoxDrawing xor a - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a dec a call PlaySound ld c, BANK(SFX_Safari_Zone_PA) ld a, SFX_SAFARI_ZONE_PA call PlayMusic .asm_1e9c2 - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $b9 jr nz, .asm_1e9c2 ld a, TEXT_SAFARI_GAME_OVER @@ -374,7 +374,7 @@ BillsHouseInitiatedText: ; 1ebe2 (7:6be2) db $06 TX_ASM ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, 16 call DelayFrames diff --git a/engine/intro.asm b/engine/intro.asm index 154c41fd..572d51fa 100755 --- a/engine/intro.asm +++ b/engine/intro.asm @@ -325,10 +325,10 @@ PlayShootingStar: ; 4188a (10:588a) call DelayFrames .next ld a, BANK(Music_IntroBattle) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, MUSIC_INTRO_BATTLE - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound call IntroClearMiddleOfScreen call ClearSprites diff --git a/engine/items/items.asm b/engine/items/items.asm index a45b9185..84490521 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -856,7 +856,7 @@ ItemUseMedicine: ; dabb (3:5abb) .notFullHP ; if the pokemon's current HP doesn't equal its max HP xor a ld [wLowHealthAlarm],a ;disable low health alarm - ld [wc02a],a + ld [wChannelSoundIDs + CH4],a push hl push de ld bc,32 @@ -1643,7 +1643,7 @@ ItemUsePokeflute: ; e140 (3:6140) call WaitForSoundToFinish ; wait for sound to end callba Music_PokeFluteInBattle ; play in-battle pokeflute music .musicWaitLoop ; wait for music to finish playing - ld a,[wc02c] + ld a,[wChannelSoundIDs + CH6] and a ; music off? jr nz,.musicWaitLoop .skipMusic @@ -1716,8 +1716,8 @@ PlayedFluteHadEffectText: ; e215 (3:6215) ld c, BANK(SFX_Pokeflute) call PlayMusic .musicWaitLoop ; wait for music to finish playing - ld a,[wc028] - cp a,$b8 + ld a,[wChannelSoundIDs + CH2] + cp a, SFX_POKEFLUE jr z,.musicWaitLoop call PlayDefaultMusic ; start playing normal music again .done diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm index b5ebd83e..fd8a928d 100755 --- a/engine/menu/pokedex.asm +++ b/engine/menu/pokedex.asm @@ -397,7 +397,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld hl,wd72c set 1,[hl] ld a,$33 ; 3/7 volume - ld [$ff24],a + ld [rNR50],a call GBPalWhiteOut ; zero all palettes call ClearScreen ld a,[wd11e] ; pokemon ID @@ -566,7 +566,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld hl,wd72c res 1,[hl] ld a,$77 ; max volume - ld [$ff24],a + ld [rNR50],a ret HeightWeightText: ; 40448 (10:4448) diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm index c13d7c85..bc58ba21 100755 --- a/engine/menu/status_screen.asm +++ b/engine/menu/status_screen.asm @@ -80,7 +80,7 @@ StatusScreen: ; 12953 (4:6953) ld hl, wd72c set 1, [hl] ld a, $33 - ld [$ff24], a ; Reduce the volume + ld [rNR50], a ; Reduce the volume call GBPalWhiteOutWithDelay3 call ClearScreen call UpdateSprites @@ -430,7 +430,7 @@ StatusScreen2: ; 12b57 (4:6b57) ld hl, wd72c res 1, [hl] ld a, $77 - ld [$ff24], a + ld [rNR50], a call GBPalWhiteOut jp ClearScreen diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index 98499d7f..566bd880 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -129,12 +129,12 @@ OakSpeech: ; 6115 (1:6115) ld a,[H_LOADEDROMBANK] push af ld a, BANK(Music_PalletTown) - ld [wc0ef],a - ld [wc0f0],a - ld a,$A - ld [wMusicHeaderPointer],a + ld [wAudioROMBank],a + ld [wAudioSavedROMBank],a + ld a, 10 + ld [wAudioFadeOutControl],a ld a,$FF - ld [wc0ee],a + ld [wNewSoundID],a call PlaySound ; stop music pop af ld [H_LOADEDROMBANK],a diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm index eb62fee7..05a9cc4e 100755 --- a/engine/overworld/elevator.asm +++ b/engine/overworld/elevator.asm @@ -33,7 +33,7 @@ ShakeElevator: ; 7bf15 (1e:7f15) ld a, SFX_SAFARI_ZONE_PA call PlayMusic .musicLoop - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $b9 jr z, .musicLoop call UpdateSprites diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm index d3513b0d..0c04ff0e 100755 --- a/engine/overworld/healing_machine.asm +++ b/engine/overworld/healing_machine.asm @@ -15,44 +15,44 @@ AnimateHealingMachine: ; 70433 (1c:4433) ld hl, wOAMBuffer + $84 ld de, PokeCenterOAMData call CopyHealingMachineOAM - ld a, $4 - ld [wMusicHeaderPointer], a + ld a, 4 + ld [wAudioFadeOutControl], a ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound -.asm_70464 - ld a, [wMusicHeaderPointer] - and a - jr nz, .asm_70464 +.waitLoop + ld a, [wAudioFadeOutControl] + and a ; is fade-out finished? + jr nz, .waitLoop ; if not, check again ld a, [wPartyCount] ld b, a -.asm_7046e +.partyLoop call CopyHealingMachineOAM ld a, SFX_HEALING_MACHINE call PlaySound ld c, 30 call DelayFrames dec b - jr nz, .asm_7046e - ld a, [wc0ef] + jr nz, .partyLoop + ld a, [wAudioROMBank] cp BANK(Audio3_UpdateMusic) - ld [wc0f0], a - jr nz, .asm_70495 + ld [wAudioSavedROMBank], a + jr nz, .next ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, BANK(Music_PkmnHealed) - ld [wc0ef], a -.asm_70495 + ld [wAudioROMBank], a +.next ld a, MUSIC_PKMN_HEALED - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld d, $28 call FlashSprite8Times -.asm_704a2 - ld a, [wc026] - cp MUSIC_PKMN_HEALED - jr z, .asm_704a2 +.waitLoop2 + ld a, [wChannelSoundIDs] + cp MUSIC_PKMN_HEALED ; is the healed music still playing? + jr z, .waitLoop2 ; if so, check gain ld c, 32 call DelayFrames pop af diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index 0c01e38c..fa5ac222 100755 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -163,10 +163,10 @@ PewterMuseumGuyMovementScriptPointerTable: ; 1a510 (6:6510) PewterMovementScript_WalkToMuseum: ; 1a514 (6:6514) ld a, BANK(Music_MuseumGuy) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, MUSIC_MUSEUM_GUY - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, [wSpriteIndex] swap a @@ -219,10 +219,10 @@ PewterGymGuyMovementScriptPointerTable: ; 1a57d (6:657d) PewterMovementScript_WalkToGym: ; 1a581 (6:6581) ld a, BANK(Music_MuseumGuy) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, MUSIC_MUSEUM_GUY - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, [wSpriteIndex] swap a diff --git a/engine/overworld/pokecenter.asm b/engine/overworld/pokecenter.asm index 5b2e4cbb..f302d994 100755 --- a/engine/overworld/pokecenter.asm +++ b/engine/overworld/pokecenter.asm @@ -24,12 +24,12 @@ DisplayPokemonCenterDialogue_: ; 6fe6 (1:6fe6) predef HealParty callba AnimateHealingMachine ; do the healing machine animation xor a - ld [wMusicHeaderPointer], a - ld a, [wc0f0] - ld [wc0ef], a - ld a, [wd35b] - ld [wcfca], a - ld [wc0ee], a + ld [wAudioFadeOutControl], a + ld a, [wAudioSavedROMBank] + ld [wAudioROMBank], a + ld a, [wMapMusicSoundID] + ld [wLastMusicSoundID], a + ld [wNewSoundID], a call PlaySound ld hl, PokemonFightingFitText call PrintText diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 3b392dde..b68b9294 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -411,7 +411,7 @@ SlotMachine_CheckForMatches: ; 37588 (d:7588) call PrintText .done xor a - ld [wc002], a + ld [wMuteAudioAndPauseMusic], a ret .rollWheel3DownByOneSymbol call SlotMachine_AnimWheel3 @@ -654,7 +654,7 @@ SlotMachine_PrintPayoutCoins: ; 3775f (d:775f) SlotMachine_PayCoinsToPlayer: ; 3776b (d:776b) ld a, $1 - ld [wc002], a + ld [wMuteAudioAndPauseMusic], a call WaitForSoundToFinish ; Put 1 in the temp coins variable. This value is added to the player's coins diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm index df47275b..17609786 100755 --- a/engine/titlescreen.asm +++ b/engine/titlescreen.asm @@ -18,8 +18,8 @@ SetDefaultNamesBeforeTitlescreen: ; 42b7 (1:42b7) ld [hli], a ld [hl], a ld a, BANK(Music_TitleScreen) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a DisplayTitleScreen: ; 42dd (1:42dd) call GBPalWhiteOut @@ -219,7 +219,7 @@ ENDC call Delay3 call WaitForSoundToFinish ld a, MUSIC_TITLE_SCREEN - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound xor a ld [wcc5b], a diff --git a/home.asm b/home.asm index b18a4ec3..e850c858 100644 --- a/home.asm +++ b/home.asm @@ -332,9 +332,9 @@ GetCryData:: ; 13d9 (0:13d9) ld a, [hli] ld b, a ; cry id ld a, [hli] - ld [wc0f1], a + ld [wFrequencyModifier], a ld a, [hl] - ld [wc0f2], a + ld [wTempoModifier], a call BankswitchBack ; Cry headers have 3 channels, @@ -998,27 +998,27 @@ ResetPlayerSpriteData_ClearSpriteData:: ; 28c4 (0:28c4) xor a jp FillMemory -Func_28cb:: ; 28cb (0:28cb) - ld a, [wMusicHeaderPointer] +FadeOutAudio:: ; 28cb (0:28cb) + ld a, [wAudioFadeOutControl] and a jr nz, .asm_28dc ld a, [wd72c] bit 1, a ret nz ld a, $77 - ld [$ff24], a + ld [rNR50], a ret .asm_28dc - ld a, [wcfc9] + ld a, [wAudioFadeOutCounter] and a - jr z, .asm_28e7 + jr z, .counterReachedZero dec a - ld [wcfc9], a + ld [wAudioFadeOutCounter], a ret -.asm_28e7 - ld a, [wcfc8] - ld [wcfc9], a - ld a, [$ff24] +.counterReachedZero + ld a, [wAudioFadeOutCounterReloadValue] + ld [wAudioFadeOutCounter], a + ld a, [rNR50] and a jr z, .asm_2903 ld b, a @@ -1031,20 +1031,20 @@ Func_28cb:: ; 28cb (0:28cb) dec a swap a or c - ld [$ff24], a + ld [rNR50], a ret .asm_2903 - ld a, [wMusicHeaderPointer] + ld a, [wAudioFadeOutControl] ld b, a xor a - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound - ld a, [wc0f0] - ld [wc0ef], a + ld a, [wAudioSavedROMBank] + ld [wAudioROMBank], a ld a, b - ld [wc0ee], a + ld [wNewSoundID], a jp PlaySound ; this function is used to display sign messages, sprite dialog, etc. @@ -2604,12 +2604,12 @@ PlayTrainerMusic:: ; 33e8 (0:33e8) and a ret nz xor a - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld a, $ff call PlaySound ld a, BANK(Music_MeetEvilTrainer) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, [wEngagedTrainerClass] ld b, a ld hl, EvilTrainerList @@ -2634,7 +2634,7 @@ PlayTrainerMusic:: ; 33e8 (0:33e8) .maleTrainer ld a, MUSIC_MEET_MALE_TRAINER .PlaySound - ld [wc0ee], a + ld [wNewSoundID], a jp PlaySound INCLUDE "data/trainer_types.asm" @@ -3217,8 +3217,8 @@ WaitForSoundToFinish:: ; 3748 (0:3748) and $80 ret nz push hl -.asm_374f - ld hl, wc02a +.waitLoop + ld hl, wChannelSoundIDs + CH4 xor a or [hl] inc hl @@ -3226,7 +3226,7 @@ WaitForSoundToFinish:: ; 3748 (0:3748) inc hl inc hl or [hl] - jr nz, .asm_374f + jr nz, .waitLoop pop hl ret diff --git a/home/audio.asm b/home/audio.asm index 033f4067..2c46ec7a 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -3,112 +3,139 @@ PlayDefaultMusic:: ; 2307 (0:2307) xor a ld c, a ld d, a - ld [wcfca], a - jr Func_2324 + ld [wLastMusicSoundID], a + jr PlayDefaultMusicCommon -Func_2312:: ; 2312 (0:2312) - ld c, $a - ld d, $0 +PlayDefaultMusicFadeOutCurrent:: ; 2312 (0:2312) +; Fade out the current music and then play the default music. + ld c, 10 + ld d, 0 ld a, [wd72e] - bit 5, a - jr z, Func_2324 + bit 5, a ; has a battle just ended? + jr z, PlayDefaultMusicCommon xor a - ld [wcfca], a - ld c, $8 + ld [wLastMusicSoundID], a + ld c, 8 ld d, c -Func_2324:: ; 2324 (0:2324) + +PlayDefaultMusicCommon:: ; 2324 (0:2324) ld a, [wWalkBikeSurfState] and a - jr z, .asm_2343 + jr z, .walking cp $2 - jr z, .asm_2332 + jr z, .surfing ld a, MUSIC_BIKE_RIDING - jr .asm_2334 -.asm_2332 + jr .next + +.surfing ld a, MUSIC_SURFING -.asm_2334 + +.next ld b, a ld a, d - and a + and a ; should current music be faded out first? ld a, BANK(Music_BikeRiding) - jr nz, .asm_233e - ld [wc0ef], a -.asm_233e - ld [wc0f0], a - jr .asm_234c -.asm_2343 - ld a, [wd35b] + jr nz, .next2 + +; Only change the audio ROM bank if the current music isn't going to be faded +; out before the default music begins. + ld [wAudioROMBank], a + +.next2 +; [wAudioSavedROMBank] will be copied to [wAudioROMBank] after fading out the +; current music (if the current music is faded out). + ld [wAudioSavedROMBank], a + jr .next3 + +.walking + ld a, [wMapMusicSoundID] ld b, a - call Func_2385 - jr c, .asm_2351 -.asm_234c - ld a, [wcfca] - cp b - ret z -.asm_2351 + call CompareMapMusicBankWithCurrentBank + jr c, .next4 + +.next3 + ld a, [wLastMusicSoundID] + cp b ; is the default music already playing? + ret z ; if so, do nothing + +.next4 ld a, c - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld a, b - ld [wcfca], a - ld [wc0ee], a + ld [wLastMusicSoundID], a + ld [wNewSoundID], a jp PlaySound -Func_235f:: ; 235f (0:235f) - ld a, [wc0ef] +UpdateMusic6Times:: ; 235f (0:235f) +; This is called when entering a map, before fading out the current music and +; playing the default music (i.e. the map's music or biking/surfing music). + ld a, [wAudioROMBank] ld b, a cp BANK(Audio1_UpdateMusic) jr nz, .checkForAudio2 -.audio1 + +; audio 1 ld hl, Audio1_UpdateMusic - jr .asm_2378 + jr .next + .checkForAudio2 cp BANK(Audio2_UpdateMusic) jr nz, .audio3 -.audio2 + +; audio 2 ld hl, Audio2_UpdateMusic - jr .asm_2378 + jr .next + .audio3 ld hl, Audio3_UpdateMusic -.asm_2378 - ld c, $6 -.asm_237a + +.next + ld c, 6 +.loop push bc push hl call Bankswitch pop hl pop bc dec c - jr nz, .asm_237a + jr nz, .loop ret -Func_2385:: ; 2385 (0:2385) - ld a, [wd35c] +CompareMapMusicBankWithCurrentBank:: ; 2385 (0:2385) +; Compares the map music's audio ROM bank with the current audio ROM bank +; and updates the audio ROM bank variables. +; Returns whether the banks are different in carry. + ld a, [wMapMusicROMBank] ld e, a - ld a, [wc0ef] + ld a, [wAudioROMBank] cp e - jr nz, .asm_2394 - ld [wc0f0], a + jr nz, .differentBanks + ld [wAudioSavedROMBank], a and a ret -.asm_2394 - ld a, c +.differentBanks + ld a, c ; this is a fade-out counter value and it's always non-zero and a ld a, e - jr nz, .asm_239c - ld [wc0ef], a -.asm_239c - ld [wc0f0], a + jr nz, .next +; If the fade-counter is non-zero, we don't change the audio ROM bank because +; it's needed to keep playing the music as it fades out. The FadeOutAudio +; routine will take care of copying [wAudioSavedROMBank] to [wAudioROMBank] +; when the music has faded out. + ld [wAudioROMBank], a +.next + ld [wAudioSavedROMBank], a scf ret PlayMusic:: ; 23a1 (0:23a1) ld b, a - ld [wc0ee], a + ld [wNewSoundID], a xor a - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld a, c - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, b ; plays music specified by a. If value is $ff, music is stopped @@ -117,66 +144,74 @@ PlaySound:: ; 23b1 (0:23b1) push de push bc ld b, a - ld a, [wc0ee] + ld a, [wNewSoundID] and a - jr z, .asm_23c8 + jr z, .next xor a - ld [wc02a], a - ld [wc02b], a - ld [wc02c], a - ld [wc02d], a -.asm_23c8 - ld a, [wMusicHeaderPointer] - and a - jr z, .asm_23e3 - ld a, [wc0ee] - and a - jr z, .asm_2425 + ld [wChannelSoundIDs + CH4], a + ld [wChannelSoundIDs + CH5], a + ld [wChannelSoundIDs + CH6], a + ld [wChannelSoundIDs + CH7], a +.next + ld a, [wAudioFadeOutControl] + and a ; has a fade-out length been specified? + jr z, .noFadeOut + ld a, [wNewSoundID] + and a ; is the new sound ID 0? + jr z, .done ; if so, do nothing xor a - ld [wc0ee], a - ld a, [wcfca] - cp $ff - jr nz, .asm_2414 + ld [wNewSoundID], a + ld a, [wLastMusicSoundID] + cp $ff ; has the music been stopped? + jr nz, .fadeOut ; if not, fade out the current music +; If it has been stopped, start playing the new music immediately. xor a - ld [wMusicHeaderPointer], a -.asm_23e3 + ld [wAudioFadeOutControl], a +.noFadeOut xor a - ld [wc0ee], a + ld [wNewSoundID], a ld a, [H_LOADEDROMBANK] - ld [$ffb9], a - ld a, [wc0ef] + ld [hSavedROMBank], a + ld a, [wAudioROMBank] ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a - cp BANK(Audio1_9876) + cp BANK(Audio1_PlaySound) jr nz, .checkForAudio2 -.audio1 + +; audio 1 ld a, b - call Audio1_9876 - jr .asm_240b + call Audio1_PlaySound + jr .next2 + .checkForAudio2 - cp BANK(Audio2_22035) + cp BANK(Audio2_PlaySound) jr nz, .audio3 -.audio2 + +; audio 2 ld a, b - call Audio2_22035 - jr .asm_240b + call Audio2_PlaySound + jr .next2 + .audio3 ld a, b - call Audio3_7d8ea -.asm_240b - ld a, [$ffb9] + call Audio3_PlaySound + +.next2 + ld a, [hSavedROMBank] ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a - jr .asm_2425 -.asm_2414 + jr .done + +.fadeOut ld a, b - ld [wcfca], a - ld a, [wMusicHeaderPointer] - ld [wcfc8], a - ld [wcfc9], a + ld [wLastMusicSoundID], a + ld a, [wAudioFadeOutControl] + ld [wAudioFadeOutCounterReloadValue], a + ld [wAudioFadeOutCounter], a ld a, b - ld [wMusicHeaderPointer], a -.asm_2425 + ld [wAudioFadeOutControl], a + +.done pop bc pop de pop hl diff --git a/home/init.asm b/home/init.asm index 624a4d6a..cb5c6583 100644 --- a/home/init.asm +++ b/home/init.asm @@ -98,8 +98,8 @@ rLCDC_DEFAULT EQU %11100011 predef LoadSGB ld a, BANK(SFX_Shooting_Star) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a ld a, $9c ld [H_AUTOBGTRANSFERDEST + 1], a xor a @@ -127,11 +127,11 @@ ClearVram: StopAllSounds:: ld a, BANK(Audio1_UpdateMusic) - ld [wc0ef], a - ld [wc0f0], a + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a xor a - ld [wMusicHeaderPointer], a - ld [wc0ee], a - ld [wcfca], a + ld [wAudioFadeOutControl], a + ld [wNewSoundID], a + ld [wLastMusicSoundID], a dec a jp PlaySound diff --git a/home/overworld.asm b/home/overworld.asm index f8d6e7e1..eba47df2 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -658,7 +658,7 @@ CheckMapConnections:: ; 07ba (0:07ba) ld [wCurrentTileBlockMapViewPointer + 1],a .loadNewMap ; load the connected map that was entered call LoadMapHeader - call Func_2312 ; music + call PlayDefaultMusicFadeOutCurrent ld b,$09 call GoPAL_SET ; Since the sprite set shouldn't change, this will just update VRAM slots at @@ -750,16 +750,16 @@ HandleBlackOut:: ld [MBC1RomBank], a call ResetStatusAndHalveMoneyOnBlackout call SpecialWarpIn - call Func_2312 + call PlayDefaultMusicFadeOutCurrent jp SpecialEnterMap StopMusic:: - ld [wMusicHeaderPointer], a + ld [wAudioFadeOutControl], a ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .wait - ld a, [wMusicHeaderPointer] + ld a, [wAudioFadeOutControl] and a jr nz, .wait jp StopAllSounds @@ -1224,7 +1224,7 @@ CollisionCheckOnLand:: ; 0bd1 (0:0bd1) call CheckTilePassable jr nc,.noCollision .collision - ld a,[wc02a] + ld a,[wChannelSoundIDs + CH4] cp a,SFX_COLLISION ; check if collision sound is already playing jr z,.setCarry ld a,SFX_COLLISION @@ -1927,7 +1927,7 @@ CollisionCheckOnWater:: ; 0fb7 (0:0fb7) jr z,.stopSurfing ; stop surfing if the tile is passable jr .loop .collision - ld a,[wc02a] + ld a,[wChannelSoundIDs + CH4] cp a,SFX_COLLISION ; check if collision sound is already playing jr z,.setCarry ld a,SFX_COLLISION @@ -2279,9 +2279,9 @@ LoadMapHeader:: ; 107c (0:107c) add hl,bc add hl,bc ld a,[hli] - ld [wd35b],a ; music 1 + ld [wMapMusicSoundID],a ; music 1 ld a,[hl] - ld [wd35c],a ; music 2 + ld [wMapMusicROMBank],a ; music 2 pop af ld [H_LOADEDROMBANK],a ld [MBC1RomBank],a @@ -2352,8 +2352,8 @@ LoadMapData:: ; 1241 (0:1241) ld a,[W_FLAGS_D733] bit 1,a jr nz,.restoreRomBank - call Func_235f ; music related - call Func_2312 ; music related + call UpdateMusic6Times + call PlayDefaultMusicFadeOutCurrent .restoreRomBank pop af ld [H_LOADEDROMBANK],a diff --git a/home/vblank.asm b/home/vblank.asm index 6abc3756..3bdbe7cb 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -38,21 +38,21 @@ VBlank:: ld a, [H_VBLANKOCCURRED] and a - jr z, .vblanked + jr z, .skipZeroing xor a ld [H_VBLANKOCCURRED], a -.vblanked +.skipZeroing ld a, [H_FRAMECOUNTER] and a - jr z, .decced + jr z, .skipDec dec a ld [H_FRAMECOUNTER], a -.decced - call Func_28cb +.skipDec + call FadeOutAudio - ld a, [wc0ef] ; music ROM bank + ld a, [wAudioROMBank] ; music ROM bank ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a diff --git a/hram.asm b/hram.asm index 2f70b91a..3f331cfb 100644 --- a/hram.asm +++ b/hram.asm @@ -182,7 +182,9 @@ hJoy5 EQU $FFB5 hJoy6 EQU $FFB6 hJoy7 EQU $FFB7 -H_LOADEDROMBANK EQU $FFB8 +H_LOADEDROMBANK EQU $FFB8 + +hSavedROMBank EQU $FFB9 ; is automatic background transfer during V-blank enabled? ; if nonzero, yes diff --git a/scripts/ceruleancity.asm b/scripts/ceruleancity.asm index 158a683d..d5aa57c1 100755 --- a/scripts/ceruleancity.asm +++ b/scripts/ceruleancity.asm @@ -65,7 +65,7 @@ CeruleanCityScript0: ; 194c8 (6:54c8) and a jr z, .asm_19512 ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .asm_19512 ld c, BANK(Music_MeetRival) @@ -172,7 +172,7 @@ CeruleanCityScript2: ; 195b1 (6:55b1) ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, $1 diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index c52f00cf..db6fa696 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -511,7 +511,7 @@ OaksLabScript15: ; 1ceb0 (7:4eb0) ld [hJoyHeld], a call EnableAutoTextBoxDrawing ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, $15 @@ -612,7 +612,7 @@ OaksLabScript16: ; 1cf12 (7:4f12) call FillMemory ld [hl], $ff ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, $1 diff --git a/scripts/pewterpokecenter.asm b/scripts/pewterpokecenter.asm index 584878eb..25c07be6 100755 --- a/scripts/pewterpokecenter.asm +++ b/scripts/pewterpokecenter.asm @@ -59,9 +59,9 @@ PewterPokecenterText3: ; 5c59b (17:459b) ld c, 24 call DelayFrames - ld a, [wc026] + ld a, [wChannelSoundIDs] ld b, a - ld a, [wc027] + ld a, [wChannelSoundIDs + CH1] or b jr nz, .loop diff --git a/scripts/pokemontower2.asm b/scripts/pokemontower2.asm index a569b60b..5422d887 100755 --- a/scripts/pokemontower2.asm +++ b/scripts/pokemontower2.asm @@ -23,7 +23,7 @@ PokemonTower2Script0: ; 6050f (18:450f) call ArePlayerCoordsInArray ret nc ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL @@ -77,7 +77,7 @@ PokemonTower2Script1: ; 60563 (18:4563) ld [H_SPRITEINDEX], a call MoveSprite ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, $2 diff --git a/scripts/redshouse1f.asm b/scripts/redshouse1f.asm index 09ce97dc..f9c7193f 100755 --- a/scripts/redshouse1f.asm +++ b/scripts/redshouse1f.asm @@ -29,14 +29,14 @@ MomHealPokemon: ; 4818a (12:418a) call ReloadMapData predef HealParty ld a, MUSIC_PKMN_HEALED - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .next - ld a, [wc026] + ld a, [wChannelSoundIDs] cp MUSIC_PKMN_HEALED jr z, .next - ld a, [wd35b] - ld [wc0ee], a + ld a, [wMapMusicSoundID] + ld [wNewSoundID], a call PlaySound call GBFadeInFromWhite ld hl, MomHealText2 diff --git a/scripts/route22.asm b/scripts/route22.asm index 041f75e6..f6f6778e 100755 --- a/scripts/route22.asm +++ b/scripts/route22.asm @@ -89,7 +89,7 @@ Route22Script0: ; 50f00 (14:4f00) and a jr z, .asm_50f4e ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .asm_50f4e ld c, BANK(Music_MeetRival) @@ -168,7 +168,7 @@ Route22Script2: ; 50fb5 (14:4fb5) ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, [wcf0d] @@ -242,11 +242,11 @@ Route22Script_5104e: ; 5104e (14:504e) and a jr z, .skipYVisibilityTesta ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .skipYVisibilityTesta ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateTempo ld a, $2 @@ -327,7 +327,7 @@ Route22Script5: ; 510df (14:50df) ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStartAndTempo ld a, [wcf0d] diff --git a/scripts/silphco7.asm b/scripts/silphco7.asm index 525405c7..0de4b324 100755 --- a/scripts/silphco7.asm +++ b/scripts/silphco7.asm @@ -131,7 +131,7 @@ SilphCo7Script0: ; 51c23 (14:5c23) ld a, PLAYER_DIR_DOWN ld [wPlayerMovingDirection], a ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL @@ -220,7 +220,7 @@ SilphCo7Script4: ; 51cc8 (14:5cc8) ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld de, MovementData_51d1d diff --git a/scripts/ssanne2.asm b/scripts/ssanne2.asm index b95c5723..c4afd9d0 100755 --- a/scripts/ssanne2.asm +++ b/scripts/ssanne2.asm @@ -25,7 +25,7 @@ SSAnne2Script0: ; 613be (18:53be) call ArePlayerCoordsInArray ret nc ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL @@ -146,7 +146,7 @@ SSAnne2Script2: ; 6146d (18:546d) ld [H_SPRITEINDEX], a call MoveSprite ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound callba Music_RivalAlternateStart ld a, $3 diff --git a/scripts/ssanne7.asm b/scripts/ssanne7.asm index b99f5bb2..911dac7f 100755 --- a/scripts/ssanne7.asm +++ b/scripts/ssanne7.asm @@ -44,21 +44,21 @@ SSAnne7Text1: ; 618ad (18:58ad) SSAnne7RubText: ; 618ec (18:58ec) TX_FAR _SSAnne7RubText TX_ASM - ld a, [wc0ef] + ld a, [wAudioROMBank] cp BANK(Audio3_UpdateMusic) - ld [wc0f0], a + ld [wAudioSavedROMBank], a jr nz, .asm_61908 ld a, $ff - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld a, Bank(Music_PkmnHealed) - ld [wc0ef], a + ld [wAudioROMBank], a .asm_61908 ld a, MUSIC_PKMN_HEALED - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound .asm_61910 - ld a, [wc026] + ld a, [wChannelSoundIDs] cp MUSIC_PKMN_HEALED jr z, .asm_61910 call PlayDefaultMusic diff --git a/scripts/vermiliondock.asm b/scripts/vermiliondock.asm index a65b3603..8c2173cc 100755 --- a/scripts/vermiliondock.asm +++ b/scripts/vermiliondock.asm @@ -40,7 +40,7 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) SetEventForceReuseHL EVENT_SS_ANNE_LEFT ld a, $ff ld [wJoyIgnore], a - ld [wc0ee], a + ld [wNewSoundID], a call PlaySound ld c, BANK(Music_Surfing) ld a, MUSIC_SURFING diff --git a/wram.asm b/wram.asm index 872d1e8e..2fc94e8d 100755 --- a/wram.asm +++ b/wram.asm @@ -61,66 +61,146 @@ ENDM SECTION "WRAM Bank 0", WRAM0 -wc000:: ds 1 -wc001:: ds 1 -wc002:: ds 1 -wc003:: ds 1 -wc004:: ds 1 -wc005:: ds 1 -wc006:: ds 8 -wc00e:: ds 4 -wc012:: ds 4 -wc016:: ds 16 -wc026:: ds 1 -wc027:: ds 1 -wc028:: ds 2 -wc02a:: ds 1 -wc02b:: ds 1 -wc02c:: ds 1 -wc02d:: ds 1 -wc02e:: ds 8 -wc036:: ds 8 -wc03e:: ds 8 -wc046:: ds 8 -wc04e:: ds 8 -wc056:: ds 8 -wc05e:: ds 8 -wc066:: ds 8 -wc06e:: ds 8 -wc076:: ds 8 -wc07e:: ds 8 -wc086:: ds 8 -wc08e:: ds 8 -wc096:: ds 8 -wc09e:: ds 8 -wc0a6:: ds 8 -wc0ae:: ds 8 -wc0b6:: ds 8 -wc0be:: ds 8 -wc0c6:: ds 8 -wc0ce:: ds 1 -wc0cf:: ds 1 -wc0d0:: ds 1 -wc0d1:: ds 1 -wc0d2:: ds 1 -wc0d3:: ds 1 -wc0d4:: ds 1 -wc0d5:: ds 1 -wc0d6:: ds 8 -wc0de:: ds 8 -wc0e6:: ds 1 -wc0e7:: ds 1 -wc0e8:: ds 1 -wc0e9:: ds 1 -wc0ea:: ds 1 -wc0eb:: ds 1 -wc0ec:: ds 1 -wc0ed:: ds 1 -wc0ee:: ds 1 -wc0ef:: ds 1 -wc0f0:: ds 1 -wc0f1:: ds 1 -wc0f2:: ds 14 +wUnusedC000:: ; c000 + ds 1 + +wSoundID:: ; c001 + ds 1 + +wMuteAudioAndPauseMusic:: ; c002 +; bit 7: whether sound has been muted +; all bits: whether the effective is active +; Store 1 to activate effect (any value in the range [1, 127] works). +; All audio is muted and music is paused. Sfx continues playing until it +; ends normally. +; Store 0 to resume music. + ds 1 + +wDisableChannelOutputWhenSfxEnds:: ; c003 + ds 1 + +wStereoPanning:: ; c004 + ds 1 + +wSavedVolume:: ; c005 + ds 1 + +wChannelCommandPointers:: ; c006 + ds 16 + +wChannelReturnAddresses:: ; c016 + ds 16 + +wChannelSoundIDs:: ; c026 + ds 8 + +wChannelFlags1:: ; c02e + ds 8 + +wChannelFlags2:: ; c036 + ds 8 + +wChannelDuties:: ; c03e + ds 8 + +wChannelDutyCycles:: ; c046 + ds 8 + +wChannelVibratoDelayCounters:: ; c04e +; reloaded at the beginning of a note. counts down until the vibrato begins. + ds 8 + +wChannelVibratoExtents:: ; c056 + ds 8 + +wChannelVibratoRates:: ; c05e +; high nybble is rate (counter reload value) and low nybble is counter. +; time between applications of vibrato. + ds 8 + +wChannelFrequencyLowBytes:: ; c066 + ds 8 + +wChannelVibratoDelayCounterReloadValues:: ; c06e +; delay of the beginning of the vibrato from the start of the note + ds 8 + +wChannelPitchBendLengthModifiers:: ; c076 + ds 8 + +wChannelPitchBendFrequencySteps:: ; c07e + ds 8 + +wChannelPitchBendFrequencyStepsFractionalPart:: ; c086 + ds 8 + +wChannelPitchBendCurrentFrequencyFractionalPart:: ; c08e + ds 8 + +wChannelPitchBendCurrentFrequencyHighBytes:: ; c096 + ds 8 + +wChannelPitchBendCurrentFrequencyLowBytes:: ; c09e + ds 8 + +wChannelPitchBendTargetFrequencyHighBytes:: ; c0a6 + ds 8 + +wChannelPitchBendTargetFrequencyLowBytes:: ; c0ae + ds 8 + +wChannelNoteDelayCounters:: ; c0b6 +; Note delays are stored as 16-bit fixed-point numbers where the integer part +; is 8 bits and the fractional part is 8 bits. + ds 8 + +wChannelLoopCounters:: ; c0be + ds 8 + +wChannelNoteSpeeds:: ; c0c6 + ds 8 + +wChannelNoteDelayCountersFractionalPart:: ; c0ce + ds 8 + +wChannelOctaves:: ; c0d6 + ds 8 + +wChannelVolumes:: ; c0de +; also includes fade for hardware channels that support it + ds 8 + +wMusicWaveInstrument:: + ds 1 + +wSfxWaveInstrument:: + ds 1 + +wMusicTempo:: ; c0e8 + ds 2 + +wSfxTempo:: ; c0ea + ds 2 + +wSfxHeaderPointer:: ; c0ec + ds 2 + +wNewSoundID:: ; c0ee + ds 1 + +wAudioROMBank:: ; c0ef + ds 1 + +wAudioSavedROMBank:: ; c0f0 + ds 1 + +wFrequencyModifier:: ; c0f1 + ds 1 + +wTempoModifier:: ; c0f2 + ds 1 + + ds 13 SECTION "Sprite State Data", WRAM0[$c100] @@ -1289,13 +1369,35 @@ wTileInFrontOfPlayer:: ; cfc6 ; background tile number in front of the player (either 1 or 2 steps ahead) ds 1 -wMusicHeaderPointer:: ; cfc7 -; (the current music channel address - $4000) / 3 +wAudioFadeOutControl:: ; cfc7 +; The desired fade counter reload value is stored here prior to calling +; PlaySound in order to cause the current music to fade out before the new +; music begins playing. Storing 0 causes no fade out to occur and the new music +; to begin immediately. +; This variable has another use related to fade-out, as well. PlaySound stores +; the sound ID of the music that should be played after the fade-out is finished +; in this variable. FadeOutAudio checks if it's non-zero every V-Blank and +; fades out the current audio if it is. Once it has finished fading out the +; audio, it zeroes this variable and starts playing the sound ID stored in it. ds 1 -wcfc8:: ds 1 ; used with audio -wcfc9:: ds 1 ; also used with audio -wcfca:: ds 1 ; also used with audio too +wAudioFadeOutCounterReloadValue:: ; cfc8 + ds 1 + +wAudioFadeOutCounter:: ; cfc9 + ds 1 + +wLastMusicSoundID:: ; cfca +; This is used to determine whether the default music is already playing when +; attempting to play the default music (in order to avoid restarting the same +; music) and whether the music has already been stopped when attempting to +; fade out the current music (so that the new music can be begin immediately +; instead of waiting). +; It sometimes contains the sound ID of the last music played, but it may also +; contain $ff (if the music has been stopped) or 0 (because some routines zero +; it in order to prevent assumptions from being made about the current state of +; the music). + ds 1 wUpdateSpritesEnabled:: ; cfcb ; $00 = causes sprites to be hidden and the value to change to $ff @@ -2126,8 +2228,11 @@ wLetterPrintingDelayFlags:: ; d358 wPlayerID:: ; d359 ds 2 -wd35b:: ds 1 ; used with audio stuff -wd35c:: ds 1 ; storage for audio bank for current map? +wMapMusicSoundID:: ; d35b + ds 1 + +wMapMusicROMBank:: ; d35c + ds 1 wMapPalOffset:: ; d35d ; offset subtracted from FadePal4 to get the background and object palettes for the current map -- cgit v1.3.1-sl0p From 64cfbcce7a71e6e75553575490fd60cbd61a5665 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Wed, 12 Aug 2015 02:16:56 -0700 Subject: commented SGB palette stuff --- constants/misc_constants.asm | 5 + constants/palette_constants.asm | 16 ++ data/sgb_packets.asm | 76 +++--- engine/battle/animations.asm | 4 +- engine/battle/core.asm | 40 ++-- engine/battle/init_battle_variables.asm | 6 +- engine/battle/scroll_draw_trainer_pic.asm | 4 +- engine/clear_save.asm | 2 +- engine/evolution.asm | 16 +- engine/hall_of_fame.asm | 8 +- engine/intro.asm | 8 +- engine/items/items.asm | 12 +- engine/menu/bills_pc.asm | 2 +- engine/menu/diploma.asm | 4 +- engine/menu/league_pc.asm | 8 +- engine/menu/main_menu.asm | 2 +- engine/menu/naming_screen.asm | 6 +- engine/menu/party_menu.asm | 24 +- engine/menu/pokedex.asm | 12 +- engine/menu/start_sub_menus.asm | 8 +- engine/menu/status_screen.asm | 6 +- engine/mon_party_sprites.asm | 4 +- engine/palettes.asm | 373 ++++++++++++++++-------------- engine/predefs.asm | 2 +- engine/slot_machine.asm | 6 +- engine/titlescreen.asm | 4 +- engine/town_map.asm | 6 +- engine/trade.asm | 12 +- home.asm | 8 +- home/overworld.asm | 8 +- home/vblank.asm | 2 +- hram.asm | 2 + main.asm | 2 +- wram.asm | 46 +++- 34 files changed, 409 insertions(+), 335 deletions(-) (limited to 'engine/battle/animations.asm') diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 00afa755..5d940328 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -159,6 +159,11 @@ BIT_LEADING_ZEROES EQU 7 LEFT_ALIGN EQU (1 << BIT_LEFT_ALIGN) LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES) +; HP bar +HP_BAR_GREEN EQU 0 +HP_BAR_YELLOW EQU 1 +HP_BAR_RED EQU 2 + ; serial ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01 diff --git a/constants/palette_constants.asm b/constants/palette_constants.asm index 2a871462..ca2e103a 100755 --- a/constants/palette_constants.asm +++ b/constants/palette_constants.asm @@ -1,3 +1,19 @@ +SET_PAL_BATTLE_BLACK EQU $00 +SET_PAL_BATTLE EQU $01 +SET_PAL_TOWN_MAP EQU $02 +SET_PAL_STATUS_SCREEN EQU $03 +SET_PAL_POKEDEX EQU $04 +SET_PAL_SLOTS EQU $05 +SET_PAL_TITLE_SCREEN EQU $06 +SET_PAL_NIDORINO_INTRO EQU $07 +SET_PAL_GENERIC EQU $08 +SET_PAL_OVERWORLD EQU $09 +SET_PAL_PARTY_MENU EQU $0A +SET_PAL_POKEMON_WHOLE_SCREEN EQU $0B +SET_PAL_GAME_FREAK_INTRO EQU $0C +SET_PAL_TRAINER_CARD EQU $0D +UPDATE_PARTY_MENU_BLK_PACKET EQU $FC + ; super game boy palettes const_value = 0 diff --git a/data/sgb_packets.asm b/data/sgb_packets.asm index 3e5e3f0b..f810db8f 100755 --- a/data/sgb_packets.asm +++ b/data/sgb_packets.asm @@ -60,11 +60,11 @@ BlkPacket_WholeScreen: ; 7219e (1c:619e) BlkPacket_Battle: ; 721b5 (1c:61b5) ATTR_BLK 5 - ATTR_BLK_DATA %111, 2,2,0, 00,12, 19,17 - ATTR_BLK_DATA %011, 1,1,0, 01,00, 10,03 - ATTR_BLK_DATA %011, 0,0,0, 10,07, 19,10 - ATTR_BLK_DATA %011, 2,2,0, 00,04, 08,11 - ATTR_BLK_DATA %011, 3,3,0, 11,00, 19,06 + ATTR_BLK_DATA %111, 2,2,0, 00,12, 19,17 ; message box: pal 2 + ATTR_BLK_DATA %011, 1,1,0, 01,00, 10,03 ; enemy HP bar: pal 1 + ATTR_BLK_DATA %011, 0,0,0, 10,07, 19,10 ; player HP bar: pal 0 + ATTR_BLK_DATA %011, 2,2,0, 00,04, 08,11 ; player mon: pal 2 + ATTR_BLK_DATA %011, 3,3,0, 11,00, 19,06 ; enemy mon : pal 3 db $03,$00,$00,$13,$0b,$00 db $03,$00,$0c,$13,$11,$02 @@ -76,7 +76,7 @@ BlkPacket_Battle: ; 721b5 (1c:61b5) BlkPacket_StatusScreen: ; 721fa (1c:61fa) ATTR_BLK 1 - ATTR_BLK_DATA %111, 1,1,0, 01,00, 07,06 + ATTR_BLK_DATA %111, 1,1,0, 01,00, 07,06 ; mon: pal 1, HP bar: pal 0 ds 8 db $02,$00,$00,$11,$00,$03 @@ -86,7 +86,7 @@ BlkPacket_StatusScreen: ; 721fa (1c:61fa) BlkPacket_Pokedex: ; 72222 (1c:6222) ATTR_BLK 1 - ATTR_BLK_DATA %111, 1,1,0, 01,01, 08,08 + ATTR_BLK_DATA %111, 1,1,0, 01,01, 08,08 ; mon: pal 1, everything else: pal 0 ds 8 db $02,$00,$00,$11,$00,$01 @@ -97,11 +97,11 @@ BlkPacket_Pokedex: ; 72222 (1c:6222) BlkPacket_Slots: ; 7224f (1c:624f) ATTR_BLK 5 - ATTR_BLK_DATA %011, 1,1,0, 00,00, 19,11 - ATTR_BLK_DATA %011, 2,2,0, 00,04, 19,09 - ATTR_BLK_DATA %010, 3,3,0, 00,06, 19,07 - ATTR_BLK_DATA %011, 0,0,0, 04,04, 15,09 - ATTR_BLK_DATA %011, 0,0,0, 00,12, 19,17 + ATTR_BLK_DATA %011, 1,1,0, 00,00, 19,11 ; "3" rows and top of screen: pal 1 + ATTR_BLK_DATA %011, 2,2,0, 00,04, 19,09 ; "2" rows: pal 2 + ATTR_BLK_DATA %010, 3,3,0, 00,06, 19,07 ; "1" row: pal 3 + ATTR_BLK_DATA %011, 0,0,0, 04,04, 15,09 ; slot reels: pal 0 + ATTR_BLK_DATA %011, 0,0,0, 00,12, 19,17 ; message box: pal 0 db $03,$00,$00,$13,$0b,$01 db $03,$00,$04,$13,$09,$02 @@ -112,9 +112,9 @@ BlkPacket_Slots: ; 7224f (1c:624f) BlkPacket_Titlescreen: ; 7228e (1c:628e) ATTR_BLK 3 - ATTR_BLK_DATA %011, 0,0,0, 00,00, 19,07 - ATTR_BLK_DATA %010, 1,1,0, 00,08, 19,09 - ATTR_BLK_DATA %011, 2,2,0, 00,10, 19,17 + ATTR_BLK_DATA %011, 0,0,0, 00,00, 19,07 ; pokemon logo: pal 0 + ATTR_BLK_DATA %010, 1,1,0, 00,08, 19,09 ; version text: pal 1 + ATTR_BLK_DATA %011, 2,2,0, 00,10, 19,17 ; player, mon, copyright text: pal 2 ds 12 db $03,$00,$00,$13,$07,$00 @@ -124,9 +124,9 @@ BlkPacket_Titlescreen: ; 7228e (1c:628e) BlkPacket_NidorinoIntro: ; 722c1 (1c:62c1) ATTR_BLK 3 - ATTR_BLK_DATA %011, 1,1,0, 00,00, 19,03 - ATTR_BLK_DATA %011, 0,0,0, 00,04, 19,13 - ATTR_BLK_DATA %011, 1,1,0, 00,14, 19,17 + ATTR_BLK_DATA %011, 1,1,0, 00,00, 19,03 ; upper black bar: pal 1 + ATTR_BLK_DATA %011, 0,0,0, 00,04, 19,13 ; letterbox: pal 0 + ATTR_BLK_DATA %011, 1,1,0, 00,14, 19,17 ; lower black bar: pal 1 ds 12 db $03,$00,$00,$13,$03,$01 @@ -136,13 +136,13 @@ BlkPacket_NidorinoIntro: ; 722c1 (1c:62c1) BlkPacket_PartyMenu: ; 722f4 (1c:62f4) ATTR_BLK 7 - ATTR_BLK_DATA %110, 0,0,1, 01,00, 02,12 - ATTR_BLK_DATA %010, 0,0,0, 05,01, 11,01 - ATTR_BLK_DATA %010, 0,0,0, 05,03, 11,03 - ATTR_BLK_DATA %010, 0,0,0, 05,05, 11,05 - ATTR_BLK_DATA %010, 0,0,0, 05,07, 11,07 - ATTR_BLK_DATA %010, 0,0,0, 05,09, 11,09 - ATTR_BLK_DATA %010, 0,0,0, 05,11, 11,11 + ATTR_BLK_DATA %110, 0,0,1, 01,00, 02,12 ; mon sprites: pal 0, everything else: pal 1 + ATTR_BLK_DATA %010, 0,0,0, 05,01, 11,01 ; HP bar 0: pal set dynamically + ATTR_BLK_DATA %010, 0,0,0, 05,03, 11,03 ; HP bar 1: pal set dynamically + ATTR_BLK_DATA %010, 0,0,0, 05,05, 11,05 ; HP bar 2: pal set dynamically + ATTR_BLK_DATA %010, 0,0,0, 05,07, 11,07 ; HP bar 3: pal set dynamically + ATTR_BLK_DATA %010, 0,0,0, 05,09, 11,09 ; HP bar 4: pal set dynamically + ATTR_BLK_DATA %010, 0,0,0, 05,11, 11,11 ; HP bar 5: pal set dynamically ds 4 db $02,$00,$00,$11,$01,$03 @@ -158,16 +158,16 @@ BlkPacket_PartyMenu: ; 722f4 (1c:62f4) BlkPacket_TrainerCard: ; 72360 (1c:6360) ATTR_BLK 10 - ATTR_BLK_DATA %010, 0,0,0, 03,12, 04,13 - ATTR_BLK_DATA %010, 1,1,0, 07,12, 08,13 - ATTR_BLK_DATA %010, 3,3,0, 11,12, 12,13 - ATTR_BLK_DATA %010, 2,2,0, 16,11, 17,12 - ATTR_BLK_DATA %010, 1,1,0, 14,13, 15,14 - ATTR_BLK_DATA %010, 3,3,0, 16,13, 17,14 - ATTR_BLK_DATA %010, 2,2,0, 03,15, 04,16 - ATTR_BLK_DATA %010, 3,3,0, 07,15, 08,16 - ATTR_BLK_DATA %010, 2,2,0, 11,15, 12,16 - ATTR_BLK_DATA %010, 1,1,0, 15,15, 16,16 + ATTR_BLK_DATA %010, 0,0,0, 03,12, 04,13 ; Boulder Badge + ATTR_BLK_DATA %010, 1,1,0, 07,12, 08,13 ; Cascade Badge + ATTR_BLK_DATA %010, 3,3,0, 11,12, 12,13 ; Thunder Badge + ATTR_BLK_DATA %010, 2,2,0, 16,11, 17,12 ; Rainbow Badge + ATTR_BLK_DATA %010, 1,1,0, 14,13, 15,14 ; Rainbow Badge + ATTR_BLK_DATA %010, 3,3,0, 16,13, 17,14 ; Rainbow Badge + ATTR_BLK_DATA %010, 2,2,0, 03,15, 04,16 ; Soul Badge + ATTR_BLK_DATA %010, 3,3,0, 07,15, 08,16 ; Marsh Badge + ATTR_BLK_DATA %010, 2,2,0, 11,15, 12,16 ; Volcano Badge + ATTR_BLK_DATA %010, 1,1,0, 15,15, 16,16 ; Earth Badge ds 2 db $03,$03,$0c,$04,$0d,$00 @@ -184,9 +184,9 @@ BlkPacket_TrainerCard: ; 72360 (1c:6360) BlkPacket_GameFreakIntro: ; 723dd (1c:63dd) ATTR_BLK 3 - ATTR_BLK_DATA %111, 1,1,0, 05,11, 07,13 - ATTR_BLK_DATA %010, 2,2,0, 08,11, 09,13 - ATTR_BLK_DATA %011, 3,3,0, 12,11, 14,13 + ATTR_BLK_DATA %111, 1,1,0, 05,11, 07,13 ; falling stars (left): pal 1, GameFreak logo: pal 0 + ATTR_BLK_DATA %010, 2,2,0, 08,11, 09,13 ; falling stars (middle): pal 2 + ATTR_BLK_DATA %011, 3,3,0, 12,11, 14,13 ; falling stars (right): pal 3 ds 12 db $03,$00,$00,$13,$0a,$00 diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 1bd48988..6d0f0e5f 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -2170,8 +2170,8 @@ ChangeMonPic: ; 79793 (1e:5793) pop af ld [wBattleMonSpecies2], a .done - ld b, $1 - jp GoPAL_SET + ld b, SET_PAL_BATTLE + jp RunPaletteCommand AnimationHideEnemyMonPic: ; 797d8 (1e:57d8) ; Hides the enemy mon's sprite diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 9dbcf179..e2a9e5a7 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -184,8 +184,8 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c) inc a ld [H_AUTOBGTRANSFERENABLED], a call Delay3 - ld b, $1 - call GoPAL_SET + ld b, SET_PAL_BATTLE + call RunPaletteCommand call HideSprites jpab PrintBeginningBattleText @@ -976,7 +976,7 @@ AnyEnemyPokemonAliveCheck: ; 3c64f (f:464f) ; stores whether enemy ran in Z flag ReplaceFaintedEnemyMon: ; 3c664 (f:4664) - ld hl, wcf1e + ld hl, wEnemyHPBarColor ld e, $30 call GetBattleHealthBarColor callab DrawEnemyPokeballs @@ -1199,7 +1199,7 @@ ChooseNextMon: ; 3c7d8 (f:47d8) call GBPalWhiteOut call LoadHudTilePatterns call LoadScreenTilesFromBuffer1 - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call GBPalNormal call SendOutMon ld hl, wEnemyMonHP @@ -1228,8 +1228,8 @@ HandlePlayerBlackOut: ; 3c837 (f:4837) cp OAKS_LAB ret z ; starter battle in oak's lab: don't black out .notSony1Battle - ld b, $0 - call GoPAL_SET + ld b, SET_PAL_BATTLE_BLACK + call RunPaletteCommand ld hl, PlayerBlackedOutText2 ld a, [wLinkState] cp LINK_STATE_BATTLING @@ -1494,8 +1494,8 @@ EnemySendOutFirstMon: ; 3c92a (f:492a) coord hl, 0, 0 lb bc, 4, 11 call ClearScreenArea - ld b,1 - call GoPAL_SET + ld b, SET_PAL_BATTLE + call RunPaletteCommand call GBPalNormal ld hl,TrainerSentOutText call PrintText @@ -1829,8 +1829,8 @@ SendOutMon: ; 3cc91 (f:4c91) ld [W_PLAYERDISABLEDMOVE], a ld [wPlayerDisabledMoveNumber], a ld [wPlayerMonMinimized], a - ld b, $1 - call GoPAL_SET + ld b, SET_PAL_BATTLE + call RunPaletteCommand ld hl, W_ENEMYBATTSTATUS1 res UsingTrappingMove, [hl] ld a, $1 @@ -1926,7 +1926,7 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60) predef DrawHP ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a - ld hl, wcf1d + ld hl, wPlayerHPBarColor call GetBattleHealthBarColor ld hl, wBattleMonHP ld a, [hli] @@ -1935,8 +1935,8 @@ DrawPlayerHUDAndHPBar: ; 3cd60 (f:4d60) ld a, [wccf6] and a ret nz - ld a, [wcf1d] - cp $2 + ld a, [wPlayerHPBarColor] + cp HP_BAR_RED jr z, .asm_3cde6 .asm_3cdd9 ld hl, wLowHealthAlarm @@ -2039,7 +2039,7 @@ DrawEnemyHUDAndHPBar: ; 3cdec (f:4dec) call DrawHPBar ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a - ld hl, wcf1e + ld hl, wEnemyHPBarColor GetBattleHealthBarColor: ; 3ce90 (f:4e90) ld b, [hl] @@ -2047,8 +2047,8 @@ GetBattleHealthBarColor: ; 3ce90 (f:4e90) ld a, [hl] cp b ret z - ld b, $1 - jp GoPAL_SET + ld b, SET_PAL_BATTLE + jp RunPaletteCommand ; center's mon's name on the battle screen ; if the name is 1 or 2 letters long, it is printed 2 spaces more to the right than usual @@ -2397,7 +2397,7 @@ PartyMenuOrRockOrRun: call GBPalWhiteOut call LoadHudTilePatterns call LoadScreenTilesFromBuffer2 - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call GBPalNormal jp DisplayBattleMenu .partyMonDeselected @@ -2486,7 +2486,7 @@ PartyMenuOrRockOrRun: call ClearSprites call LoadHudTilePatterns call LoadScreenTilesFromBuffer1 - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call GBPalNormal ; fall through to SwitchPlayerMon @@ -6932,8 +6932,8 @@ InitWildBattle: ; 3ef8b (f:6f8b) ; common code that executes after init battle code specific to trainer or wild battles InitBattle_Common: ; 3efeb (f:6feb) - ld b, $0 - call GoPAL_SET + ld b, SET_PAL_BATTLE_BLACK + call RunPaletteCommand call SlidePlayerAndEnemySilhouettesOnScreen xor a ld [H_AUTOBGTRANSFERENABLED], a diff --git a/engine/battle/init_battle_variables.asm b/engine/battle/init_battle_variables.asm index 3c926858..071e5c67 100644 --- a/engine/battle/init_battle_variables.asm +++ b/engine/battle/init_battle_variables.asm @@ -16,9 +16,9 @@ InitBattleVariables: ; 525af (14:65af) ld [wPlayerMonNumber], a ld [wEscapedFromBattle], a ld [wMapPalOffset], a - ld hl, wcf1d - ld [hli], a - ld [hl], a + ld hl, wPlayerHPBarColor + ld [hli], a ; wPlayerHPBarColor + ld [hl], a ; wEnemyHPBarColor ld hl, wCanEvolveFlags ld b, $3c .loop diff --git a/engine/battle/scroll_draw_trainer_pic.asm b/engine/battle/scroll_draw_trainer_pic.asm index b32650e3..5949208c 100644 --- a/engine/battle/scroll_draw_trainer_pic.asm +++ b/engine/battle/scroll_draw_trainer_pic.asm @@ -3,8 +3,8 @@ _ScrollTrainerPicAfterBattle: ; 396d3 (e:56d3) ; the screen from the right. xor a ld [wEnemyMonSpecies2], a - ld b, $1 - call GoPAL_SET + ld b, SET_PAL_BATTLE + call RunPaletteCommand callab _LoadTrainerPic coord hl, 19, 0 ld c, $0 diff --git a/engine/clear_save.asm b/engine/clear_save.asm index d4f05071..adbef1a4 100755 --- a/engine/clear_save.asm +++ b/engine/clear_save.asm @@ -1,6 +1,6 @@ DoClearSaveDialogue: ; 1c98a (7:498a) call ClearScreen - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call LoadFontTilePatterns call LoadTextBoxTilePatterns ld hl, ClearSaveDataText diff --git a/engine/evolution.asm b/engine/evolution.asm index 8fbf568a..c65cc293 100755 --- a/engine/evolution.asm +++ b/engine/evolution.asm @@ -21,8 +21,8 @@ EvolveMon: ; 7bde9 (1e:7de9) ld [H_AUTOBGTRANSFERENABLED], a ld [hTilesetType], a ld a, [wEvoOldSpecies] - ld [wcf1d], a - ld c, $0 + ld [wWholeScreenPaletteMonSpecies], a + ld c, 0 call EvolutionSetWholeScreenPalette ld a, [wEvoNewSpecies] ld [wcf91], a @@ -46,7 +46,7 @@ EvolveMon: ; 7bde9 (1e:7de9) call PlayMusic ld c, 80 call DelayFrames - ld c, $1 + ld c, 1 ; set PAL_BLACK instead of mon palette call EvolutionSetWholeScreenPalette lb bc, $1, $10 .animLoop @@ -66,13 +66,13 @@ EvolveMon: ; 7bde9 (1e:7de9) call Evolution_ChangeMonPic ; show the new species pic ld a, [wEvoNewSpecies] .done - ld [wcf1d], a + ld [wWholeScreenPaletteMonSpecies], a ld a, $ff ld [wNewSoundID], a call PlaySound - ld a, [wcf1d] + ld a, [wWholeScreenPaletteMonSpecies] call PlayCry - ld c, $0 + ld c, 0 call EvolutionSetWholeScreenPalette pop af ld [wd0b5], a @@ -94,8 +94,8 @@ EvolveMon: ; 7bde9 (1e:7de9) jr .done EvolutionSetWholeScreenPalette: ; 7beb4 (1e:7eb4) - ld b, $b - jp GoPAL_SET + ld b, SET_PAL_POKEMON_WHOLE_SCREEN + jp RunPaletteCommand Evolution_LoadPic: ; 7beb9 (1e:7eb9) call GetMonHeader diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm index 062950cf..c329c1a9 100755 --- a/engine/hall_of_fame.asm +++ b/engine/hall_of_fame.asm @@ -104,7 +104,7 @@ HoFShowMonOrPlayer: ; 70278 (1c:4278) ld [wcf91], a ld [wd0b5], a ld [wBattleMonSpecies2], a - ld [wcf1d], a + ld [wWholeScreenPaletteMonSpecies], a ld a, [wHoFMonOrPlayer] and a jr z, .showMon @@ -117,9 +117,9 @@ HoFShowMonOrPlayer: ; 70278 (1c:4278) call LoadFrontSpriteByMonIndex predef LoadMonBackPic .next1 - ld b, $b - ld c, $0 - call GoPAL_SET + ld b, SET_PAL_POKEMON_WHOLE_SCREEN + ld c, 0 + call RunPaletteCommand ld a, %11100100 ld [rBGP], a ld c, $31 ; back pic diff --git a/engine/intro.asm b/engine/intro.asm index 175baa63..29aa4ef4 100755 --- a/engine/intro.asm +++ b/engine/intro.asm @@ -18,8 +18,8 @@ PlayIntro: ; 41682 (10:5682) ret PlayIntroScene: ; 4169d (10:569d) - ld b, $7 - call GoPAL_SET + ld b, SET_PAL_NIDORINO_INTRO + call RunPaletteCommand ld a, %11100100 ld [rBGP], a ld [rOBP0], a @@ -302,8 +302,8 @@ LoadIntroGraphics: ; 41852 (10:5852) jp FarCopyData2 PlayShootingStar: ; 4188a (10:588a) - ld b, $c - call GoPAL_SET + ld b, SET_PAL_GAME_FREAK_INTRO + call RunPaletteCommand callba LoadCopyrightAndTextBoxTiles ld a, $e4 ld [rBGP], a diff --git a/engine/items/items.asm b/engine/items/items.asm index 4ba3c706..418b21da 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -127,7 +127,7 @@ ItemUseBall: ; d687 (3:5687) ld hl,W_NUMSAFARIBALLS dec [hl] .skipSafariZoneCode - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand ld a,$43 ld [wd11e],a call LoadScreenTilesFromBuffer1 ;restore screenBuffer from Backup @@ -1111,7 +1111,7 @@ ItemUseMedicine: ; dabb (3:5abb) and a ; using Softboiled? ret nz ; if so, return call GBPalWhiteOut - call z,GoPAL_SET_CF1C + call z,RunDefaultPaletteCommand ld a,[W_ISINBATTLE] and a ret nz @@ -1928,7 +1928,7 @@ ItemUsePPRestore: ; e31e (3:631e) pop af ld [wWhichPokemon],a call GBPalWhiteOut - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand jp RemoveUsedItem .afterRestoringPP ; after using a (Max) Ether/Elixir ld a,[wWhichPokemon] @@ -2032,7 +2032,7 @@ ItemUsePPRestore: ; e31e (3:631e) call ItemUseNoEffect .itemNotUsed call GBPalWhiteOut - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand pop af xor a ld [wActionResultOrTookBattleTurn],a ; item use failed @@ -2125,7 +2125,7 @@ ItemUseTMHM: ; e479 (3:6479) pop af call GBPalWhiteOutWithDelay3 call ClearSprites - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand jp LoadScreenTilesFromBuffer1 ; restore saved screen .checkIfAbleToLearnMove predef CanLearnTM ; check if the pokemon can learn the move @@ -2201,7 +2201,7 @@ ItemUseNotYoursToUse: ; e586 (3:6586) jr ItemUseFailed ThrowBallAtTrainerMon: ; e58b (3:658b) - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call LoadScreenTilesFromBuffer1 ; restore saved screen call Delay3 ld a,TOSS_ANIM diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm index 072a19d3..e8e48b79 100644 --- a/engine/menu/bills_pc.asm +++ b/engine/menu/bills_pc.asm @@ -450,7 +450,7 @@ DisplayDepositWithdrawMenu: ; 2174b (8:574b) predef StatusScreen2 call LoadScreenTilesFromBuffer1 call ReloadTilesetTilePatterns - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call LoadGBPal jr .loop diff --git a/engine/menu/diploma.asm b/engine/menu/diploma.asm index 3e28bc93..630c6c23 100755 --- a/engine/menu/diploma.asm +++ b/engine/menu/diploma.asm @@ -55,8 +55,8 @@ DisplayDiploma: ; 566e2 (15:66e2) call EnableLCD callba LoadTrainerInfoTextBoxTiles - ld b, $8 - call GoPAL_SET + ld b, SET_PAL_GENERIC + call RunPaletteCommand call Delay3 call GBPalNormal ld a, $90 diff --git a/engine/menu/league_pc.asm b/engine/menu/league_pc.asm index e2dce785..5b8ae7f0 100755 --- a/engine/menu/league_pc.asm +++ b/engine/menu/league_pc.asm @@ -47,7 +47,7 @@ PKMNLeaguePC: ; 0x7657e res 6, [hl] call GBPalWhiteOutWithDelay3 call ClearScreen - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand jp GBPalNormal LeaguePCShowTeam: ; 765e5 (1d:65e5) @@ -86,15 +86,15 @@ LeaguePCShowMon: ; 76610 (1d:6610) ld [wcf91], a ld [wd0b5], a ld [wBattleMonSpecies2], a - ld [wcf1d], a + ld [wWholeScreenPaletteMonSpecies], a ld a, [hli] ld [wHoFMonLevel], a ld de, wcd6d ld bc, NAME_LENGTH call CopyData - ld b, $0B + ld b, SET_PAL_POKEMON_WHOLE_SCREEN ld c, 0 - call GoPAL_SET + call RunPaletteCommand coord hl, 12, 5 call GetMonHeader call LoadFrontSpriteByMonIndex diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 24302c46..bff0fbe7 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -24,7 +24,7 @@ MainMenu: ; 5af2 (1:5af2) ld hl,wd72e res 6,[hl] call ClearScreen - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call LoadTextBoxTilePatterns call LoadFontTilePatterns ld hl,wd730 diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm index 85111cd6..978216c8 100755 --- a/engine/menu/naming_screen.asm +++ b/engine/menu/naming_screen.asm @@ -88,8 +88,8 @@ DisplayNamingScreen: ; 6596 (1:6596) call GBPalWhiteOutWithDelay3 call ClearScreen call UpdateSprites - ld b, $8 - call GoPAL_SET + ld b, SET_PAL_GENERIC + call RunPaletteCommand call LoadHpBarAndStatusTilePatterns call LoadEDTile callba LoadMonPartySpriteGfx @@ -163,7 +163,7 @@ DisplayNamingScreen: ; 6596 (1:6596) call GBPalWhiteOutWithDelay3 call ClearScreen call ClearSprites - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call GBPalNormal xor a ld [W_SUBANIMTRANSFORM], a diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm index d83c4fbe..f3e1a138 100755 --- a/engine/menu/party_menu.asm +++ b/engine/menu/party_menu.asm @@ -29,13 +29,13 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) cp a,SWAP_MONS_PARTY_MENU jp z,.printMessage call ErasePartyMenuCursors - callba SendBlkPacket_PartyMenu + callba InitPartyMenuBlkPacket coord hl, 3, 0 ld de,wPartySpecies xor a ld c,a ld [hPartyMonIndex],a - ld [wcf2d],a + ld [wWhichPartyMenuHPBar],a .loop ld a,[de] cp a,$FF ; reached the terminator? @@ -96,7 +96,7 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) ld a,[hFlags_0xFFF6] res 0,a ld [hFlags_0xFFF6],a - call SetPartyMenuHealthBarColor ; color the HP bar (on SGB) + call SetPartyMenuHPBarColor ; color the HP bar (on SGB) pop hl jr .printLevel .teachMoveMenu @@ -188,8 +188,8 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3) .notAbleToEvolveText db "NOT ABLE@" .afterDrawingMonEntries - ld b,$0A - call GoPAL_SET + ld b, SET_PAL_PARTY_MENU + call RunPaletteCommand .printMessage ld hl,wd730 ld a,[hl] @@ -311,15 +311,15 @@ RareCandyText: ; 12ec0 (4:6ec0) db $06 db "@" -SetPartyMenuHealthBarColor: ; 12ec7 (4:6ec7) - ld hl, wcf1f - ld a, [wcf2d] +SetPartyMenuHPBarColor: ; 12ec7 (4:6ec7) + ld hl, wPartyMenuHPBarColors + ld a, [wWhichPartyMenuHPBar] ld c, a - ld b, $0 + ld b, 0 add hl, bc call GetHealthBarColor - ld b, $fc - call GoPAL_SET - ld hl, wcf2d + ld b, UPDATE_PARTY_MENU_BLK_PACKET + call RunPaletteCommand + ld hl, wWhichPartyMenuHPBar inc [hl] ret diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm index 8e69329a..a58523e8 100755 --- a/engine/menu/pokedex.asm +++ b/engine/menu/pokedex.asm @@ -12,8 +12,8 @@ ShowPokedexMenu: ; 40000 (10:4000) ld [wd11e],a ld [hJoy7],a .setUpGraphics - ld b,$08 - call GoPAL_SET + ld b, SET_PAL_GENERIC + call RunPaletteCommand callab LoadPokedexTilePatterns .doPokemonListMenu ld hl,wTopMenuItemY @@ -41,7 +41,7 @@ ShowPokedexMenu: ; 40000 (10:4000) pop af ld [wListScrollOffset],a call GBPalWhiteOutWithDelay3 - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand jp ReloadMapData .goToSideMenu call HandlePokedexSideMenu @@ -404,8 +404,8 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld a,[wd11e] ; pokemon ID ld [wcf91],a push af - ld b,04 - call GoPAL_SET + ld b, SET_PAL_POKEDEX + call RunPaletteCommand pop af ld [wd11e],a ld a,[hTilesetType] @@ -561,7 +561,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2) ld [hTilesetType],a call GBPalWhiteOut call ClearScreen - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call LoadTextBoxTilePatterns call GBPalNormal ld hl,wd72c diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index f726f128..ab8c8756 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -297,7 +297,7 @@ ErasePartyMenuCursors: ; 132ed (4:72ed) ItemMenuLoop: ; 132fc (4:72fc) call LoadScreenTilesFromBuffer2DisableBGTransfer ; restore saved screen - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand StartMenu_Item: ; 13302 (4:7302) ld a,[wLinkState] @@ -506,14 +506,14 @@ StartMenu_TrainerInfo: ; 13460 (4:7460) ld [hTilesetType],a call DrawTrainerInfo predef DrawBadges ; draw badges - ld b,$0d - call GoPAL_SET + ld b, SET_PAL_TRAINER_CARD + call RunPaletteCommand call GBPalNormal call WaitForTextScrollButtonPress ; wait for button press call GBPalWhiteOut call LoadFontTilePatterns call LoadScreenTilesFromBuffer2 ; restore saved screen - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call ReloadMapData call LoadGBPal pop af diff --git a/engine/menu/status_screen.asm b/engine/menu/status_screen.asm index fb4a0dfc..c91d5eda 100755 --- a/engine/menu/status_screen.asm +++ b/engine/menu/status_screen.asm @@ -121,10 +121,10 @@ StatusScreen: ; 12953 (4:6953) call PlaceString ; "TYPE1/" coord hl, 11, 3 predef DrawHP - ld hl, wcf25 + ld hl, wStatusScreenHPBarColor call GetHealthBarColor - ld b, $3 - call GoPAL_SET ; SGB palette + ld b, SET_PAL_STATUS_SCREEN + call RunPaletteCommand coord hl, 16, 6 ld de, wLoadedMonStatus call PrintStatusCondition diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm index e7f9d2df..c0163b1e 100755 --- a/engine/mon_party_sprites.asm +++ b/engine/mon_party_sprites.asm @@ -5,12 +5,12 @@ AnimatePartyMon_ForceSpeed1: ; 716f7 (1c:56f7) inc a jr GetAnimationSpeed -; wcf1f contains the party mon's health bar colors +; wPartyMenuHPBarColors contains the party mon's health bar colors ; 0: green ; 1: yellow ; 2: red AnimatePartyMon: ; 716ff (1c:56ff) - ld hl, wcf1f + ld hl, wPartyMenuHPBarColors ld a, [wCurrentMenuItem] ld c, a ld b, $0 diff --git a/engine/palettes.asm b/engine/palettes.asm index a325e0a3..55d488aa 100755 --- a/engine/palettes.asm +++ b/engine/palettes.asm @@ -1,33 +1,33 @@ -Func_71ddf: ; 71ddf (1c:5ddf) +_RunPaletteCommand: ; 71ddf (1c:5ddf) call GetPredefRegisters ld a, b cp $ff - jr nz, .asm_71dea - ld a, [wcf1c] -.asm_71dea - cp $fc - jp z, Func_71fc2 + jr nz, .next + ld a, [wDefaultPaletteCommand] ; use default command if command ID is $ff +.next + cp UPDATE_PARTY_MENU_BLK_PACKET + jp z, UpdatePartyMenuBlkPacket ld l, a - ld h, $0 + ld h, 0 add hl, hl - ld de, PointerTable_71f73 + ld de, SetPalFunctions add hl, de ld a, [hli] ld h, [hl] ld l, a - ld de, Func_72156 + ld de, SendSGBPackets push de jp [hl] -SendPalPacket_Black: ; 71dff (1c:5dff) +SetPal_BattleBlack: ; 71dff (1c:5dff) ld hl, PalPacket_Black ld de, BlkPacket_Battle ret ; uses PalPacket_Empty to build a packet based on mon IDs and health color -BuildBattlePalPacket: ; 71e06 (1c:5e06) +SetPal_Battle: ; 71e06 (1c:5e06) ld hl, PalPacket_Empty - ld de, wcf2d + ld de, wPalPacket ld bc, $10 call CopyData ld a, [W_PLAYERBATTSTATUS3] @@ -38,12 +38,12 @@ BuildBattlePalPacket: ; 71e06 (1c:5e06) ld hl, wEnemyMonSpecies2 call DeterminePaletteID ld c, a - ld hl, wcf2e - ld a, [wcf1d] + ld hl, wPalPacket + 1 + ld a, [wPlayerHPBarColor] add PAL_GREENBAR ld [hli], a inc hl - ld a, [wcf1e] + ld a, [wEnemyHPBarColor] add PAL_GREENBAR ld [hli], a inc hl @@ -52,21 +52,21 @@ BuildBattlePalPacket: ; 71e06 (1c:5e06) inc hl ld a, c ld [hl], a - ld hl, wcf2d + ld hl, wPalPacket ld de, BlkPacket_Battle - ld a, $1 - ld [wcf1c], a + ld a, SET_PAL_BATTLE + ld [wDefaultPaletteCommand], a ret -SendPalPacket_TownMap: ; 71e48 (1c:5e48) +SetPal_TownMap: ; 71e48 (1c:5e48) ld hl, PalPacket_TownMap ld de, BlkPacket_WholeScreen ret ; uses PalPacket_Empty to build a packet based the mon ID -BuildStatusScreenPalPacket: ; 71e4f (1c:5e4f) +SetPal_StatusScreen: ; 71e4f (1c:5e4f) ld hl, PalPacket_Empty - ld de, wcf2d + ld de, wPalPacket ld bc, $10 call CopyData ld a, [wcf91] @@ -76,67 +76,67 @@ BuildStatusScreenPalPacket: ; 71e4f (1c:5e4f) .pokemon call DeterminePaletteIDOutOfBattle push af - ld hl, wcf2e - ld a, [wcf25] + ld hl, wPalPacket + 1 + ld a, [wStatusScreenHPBarColor] add PAL_GREENBAR ld [hli], a inc hl pop af ld [hl], a - ld hl, wcf2d + ld hl, wPalPacket ld de, BlkPacket_StatusScreen ret -SendPalPacket_PartyMenu: ; 71e7b (1c:5e7b) +SetPal_PartyMenu: ; 71e7b (1c:5e7b) ld hl, PalPacket_PartyMenu - ld de, wcf2e + ld de, wPartyMenuBlkPacket ret -SendPalPacket_Pokedex: ; 71e82 (1c:5e82) +SetPal_Pokedex: ; 71e82 (1c:5e82) ld hl, PalPacket_Pokedex - ld de, wcf2d + ld de, wPalPacket ld bc, $10 call CopyData ld a, [wcf91] call DeterminePaletteIDOutOfBattle - ld hl, wcf30 + ld hl, wPalPacket + 3 ld [hl], a - ld hl, wcf2d + ld hl, wPalPacket ld de, BlkPacket_Pokedex ret -SendPalPacket_Slots: ; 71e9f (1c:5e9f) +SetPal_Slots: ; 71e9f (1c:5e9f) ld hl, PalPacket_Slots ld de, BlkPacket_Slots ret -SendPalPacket_Titlescreen: ; 71ea6 (1c:5ea6) +SetPal_TitleScreen: ; 71ea6 (1c:5ea6) ld hl, PalPacket_Titlescreen ld de, BlkPacket_Titlescreen ret ; used mostly for menus and the Oak intro -SendPalPacket_Generic: ; 71ead (1c:5ead) +SetPal_Generic: ; 71ead (1c:5ead) ld hl, PalPacket_Generic ld de, BlkPacket_WholeScreen ret -SendPalPacket_NidorinoIntro: ; 71eb4 (1c:5eb4) +SetPal_NidorinoIntro: ; 71eb4 (1c:5eb4) ld hl, PalPacket_NidorinoIntro ld de, BlkPacket_NidorinoIntro ret -SendPalPacket_GameFreakIntro: ; 71ebb (1c:5ebb) +SetPal_GameFreakIntro: ; 71ebb (1c:5ebb) ld hl, PalPacket_GameFreakIntro ld de, BlkPacket_GameFreakIntro - ld a, $8 - ld [wcf1c], a + ld a, SET_PAL_GENERIC + ld [wDefaultPaletteCommand], a ret ; uses PalPacket_Empty to build a packet based on the current map -BuildOverworldPalPacket: ; 71ec7 (1c:5ec7) +SetPal_Overworld: ; 71ec7 (1c:5ec7) ld hl, PalPacket_Empty - ld de, wcf2d + ld de, wPalPacket ld bc, $10 call CopyData ld a, [W_CURMAPTILESET] @@ -162,12 +162,12 @@ BuildOverworldPalPacket: ; 71ec7 (1c:5ec7) jr c, .town ld a, PAL_ROUTE - 1 .town - inc a ; a town's pallete ID is its map ID + 1 - ld hl, wcf2e + inc a ; a town's palette ID is its map ID + 1 + ld hl, wPalPacket + 1 ld [hld], a ld de, BlkPacket_WholeScreen - ld a, $9 - ld [wcf1c], a + ld a, SET_PAL_OVERWORLD + ld [wDefaultPaletteCommand], a ret .PokemonTowerOrAgatha ld a, PAL_GREYMON - 1 @@ -181,131 +181,143 @@ BuildOverworldPalPacket: ; 71ec7 (1c:5ec7) ; used when a Pokemon is the only thing on the screen ; such as evolution, trading and the Hall of Fame -SendPokemonPalette_WholeScreen: ; 71f17 (1c:5f17) +SetPal_PokemonWholeScreen: ; 71f17 (1c:5f17) push bc ld hl, PalPacket_Empty - ld de, wcf2d + ld de, wPalPacket ld bc, $10 call CopyData pop bc ld a, c and a - ld a, $1e - jr nz, .asm_71f31 - ld a, [wcf1d] + ld a, PAL_BLACK + jr nz, .next + ld a, [wWholeScreenPaletteMonSpecies] call DeterminePaletteIDOutOfBattle -.asm_71f31 - ld [wcf2e], a - ld hl, wcf2d +.next + ld [wPalPacket + 1], a + ld hl, wPalPacket ld de, BlkPacket_WholeScreen ret -BuildTrainerCardPalPacket: ; 71f3b (1c:5f3b) +SetPal_TrainerCard: ; 71f3b (1c:5f3b) ld hl, BlkPacket_TrainerCard - ld de, wcc5b + ld de, wTrainerCardBlkPacket ld bc, $40 call CopyData - ld de, LoopCounts_71f8f - ld hl, wcc5d + ld de, BadgeBlkDataLengths + ld hl, wTrainerCardBlkPacket + 2 ld a, [W_OBTAINEDBADGES] - ld c, $8 -.asm_71f52 + ld c, 8 +.badgeLoop srl a push af - jr c, .asm_71f62 + jr c, .haveBadge +; The player doens't have the badge, so zero the badge's blk data. push bc ld a, [de] ld c, a xor a -.asm_71f5b +.zeroBadgeDataLoop ld [hli], a dec c - jr nz, .asm_71f5b + jr nz, .zeroBadgeDataLoop pop bc - jr .asm_71f67 -.asm_71f62 + jr .nextBadge +.haveBadge +; The player does have the badge, so skip past the badge's blk data. ld a, [de] -.asm_71f63 +.skipBadgeDataLoop inc hl dec a - jr nz, .asm_71f63 -.asm_71f67 + jr nz, .skipBadgeDataLoop +.nextBadge pop af inc de dec c - jr nz, .asm_71f52 + jr nz, .badgeLoop ld hl, PalPacket_TrainerCard - ld de, wcc5b + ld de, wTrainerCardBlkPacket ret -PointerTable_71f73: ; 71f73 (1c:5f73) - dw SendPalPacket_Black - dw BuildBattlePalPacket - dw SendPalPacket_TownMap - dw BuildStatusScreenPalPacket - dw SendPalPacket_Pokedex - dw SendPalPacket_Slots - dw SendPalPacket_Titlescreen - dw SendPalPacket_NidorinoIntro - dw SendPalPacket_Generic - dw BuildOverworldPalPacket - dw SendPalPacket_PartyMenu - dw SendPokemonPalette_WholeScreen - dw SendPalPacket_GameFreakIntro - dw BuildTrainerCardPalPacket - -; each byte is the number of loops to make in .asm_71f5b for each badge -LoopCounts_71f8f: ; 71f8f (1c:5f8f) - db $06,$06,$06,$12,$06,$06,$06,$06 +SetPalFunctions: ; 71f73 (1c:5f73) + dw SetPal_BattleBlack + dw SetPal_Battle + dw SetPal_TownMap + dw SetPal_StatusScreen + dw SetPal_Pokedex + dw SetPal_Slots + dw SetPal_TitleScreen + dw SetPal_NidorinoIntro + dw SetPal_Generic + dw SetPal_Overworld + dw SetPal_PartyMenu + dw SetPal_PokemonWholeScreen + dw SetPal_GameFreakIntro + dw SetPal_TrainerCard + +; The length of the blk data of each badge on the Trainer Card. +; The Rainbow Badge has 3 entries because of its many colors. +BadgeBlkDataLengths: ; 71f8f (1c:5f8f) + db 6 ; Boulder Badge + db 6 ; Cascade Badge + db 6 ; Thunder Badge + db 6 * 3 ; Rainbow Badge + db 6 ; Soul Badge + db 6 ; Marsh Badge + db 6 ; Volcano Badge + db 6 ; Earth Badge DeterminePaletteID: ; 71f97 (1c:5f97) - bit 3, a ; bit 3 of battle status 3, set if current Pokemon is transformed - ld a, PAL_GREYMON ; if yes, use Ditto's palette + bit Transformed, a ; a is battle status 3 + ld a, PAL_GREYMON ; if the mon has used Transform, use Ditto's palette ret nz ld a, [hl] DeterminePaletteIDOutOfBattle: ; 71f9d (1c:5f9d) ld [wd11e], a - and a - jr z, .idZero + and a ; is the mon index 0? + jr z, .skipDexNumConversion push bc - predef IndexToPokedex ; turn Pokemon ID number into Pokedex number + predef IndexToPokedex pop bc ld a, [wd11e] -.idZero +.skipDexNumConversion ld e, a - ld d, $00 - ld hl, MonsterPalettes ; not just for Pokemon, Trainers use it too + ld d, 0 + ld hl, MonsterPalettes ; not just for Pokemon, Trainers use it too add hl, de ld a, [hl] ret -SendBlkPacket_PartyMenu: ; 71fb6 (1c:5fb6) +InitPartyMenuBlkPacket: ; 71fb6 (1c:5fb6) ld hl, BlkPacket_PartyMenu - ld de, wcf2e + ld de, wPartyMenuBlkPacket ld bc, $30 jp CopyData -Func_71fc2: ; 71fc2 (1c:5fc2) - ld hl, wcf1f - ld a, [wcf2d] +UpdatePartyMenuBlkPacket: ; 71fc2 (1c:5fc2) +; Update the blk packet with the palette of the HP bar that is +; specified in [wWhichPartyMenuHPBar]. + ld hl, wPartyMenuHPBarColors + ld a, [wWhichPartyMenuHPBar] ld e, a - ld d, $0 + ld d, 0 add hl, de ld e, l ld d, h ld a, [de] and a - ld e, $5 - jr z, .asm_71fdb + ld e, (1 << 2) | 1 ; green + jr z, .next dec a - ld e, $a - jr z, .asm_71fdb - ld e, $f -.asm_71fdb + ld e, (2 << 2) | 2 ; yellow + jr z, .next + ld e, (3 << 2) | 3 ; red +.next push de - ld hl, wcf37 - ld bc, $6 - ld a, [wcf2d] + ld hl, wPartyMenuBlkPacket + 8 + 1 + ld bc, 6 + ld a, [wWhichPartyMenuHPBar] call AddNTimes pop de ld [hl], e @@ -321,11 +333,9 @@ SendSGBPacket: ; 71feb (1c:5feb) .loop2 ; save B for later use push bc -; load a non-zero value in $fff9 to disable the routine that checks actual -; joypad input (said routine, located at $15f, does nothing if $fff9 is not -; zero) - ld a,$01 - ld [$fff9],a +; disable ReadJoypad to prevent it from interfering with sending the packet + ld a, 1 + ld [hDisableJoypadPolling], a ; send RESET signal (P14=LOW, P15=LOW) xor a ld [rJOYP],a @@ -367,7 +377,7 @@ SendSGBPacket: ; 71feb (1c:5feb) ld a,$30 ld [rJOYP],a xor a - ld [$fff9],a + ld [hDisableJoypadPolling],a ; wait for about 70000 cycles call Wait7000 ; restore (previously pushed) number of packets @@ -383,39 +393,39 @@ LoadSGB: ; 7202b (1c:602b) ld [wOnSGB], a call CheckSGB ret nc - ld a, $1 + ld a, 1 ld [wOnSGB], a ld a, [wGBC] and a - jr z, .asm_7203f + jr z, .notGBC ret -.asm_7203f +.notGBC di - call Func_72075 + call PrepareSuperNintendoVRAMTransfer ei - ld a, $1 - ld [wcf2d], a + ld a, 1 + ld [wCopyingSGBTileData], a ld de, ChrTrnPacket ld hl, SGBBorderGraphics - call Func_7210b + call CopyGfxToSuperNintendoVRAM xor a - ld [wcf2d], a + ld [wCopyingSGBTileData], a ld de, PctTrnPacket ld hl, BorderPalettes - call Func_7210b + call CopyGfxToSuperNintendoVRAM xor a - ld [wcf2d], a + ld [wCopyingSGBTileData], a ld de, PalTrnPacket ld hl, SuperPalettes - call Func_7210b + call CopyGfxToSuperNintendoVRAM call ClearVram ld hl, MaskEnCancelPacket jp SendSGBPacket -Func_72075: ; 72075 (1c:6075) - ld hl, PointerTable_72089 - ld c, $9 -.asm_7207a +PrepareSuperNintendoVRAMTransfer: ; 72075 (1c:6075) + ld hl, .packetPointers + ld c, 9 +.loop push bc ld a, [hli] push hl @@ -426,10 +436,11 @@ Func_72075: ; 72075 (1c:6075) inc hl pop bc dec c - jr nz, .asm_7207a + jr nz, .loop ret -PointerTable_72089: ; 72089 (1c:6089) +.packetPointers +; Only the first packet is needed. dw MaskEnFreezePacket dw DataSnd_72548 dw DataSnd_72558 @@ -441,17 +452,18 @@ PointerTable_72089: ; 72089 (1c:6089) dw DataSnd_725b8 CheckSGB: ; 7209b (1c:609b) +; Returns whether the game is running on an SGB in carry. ld hl, MltReq2Packet di call SendSGBPacket - ld a, $1 - ld [$fff9], a + ld a, 1 + ld [hDisableJoypadPolling], a ei call Wait7000 ld a, [rJOYP] and $3 cp $3 - jr nz, .asm_720fd + jr nz, .isSGB ld a, $20 ld [rJOYP], a ld a, [rJOYP] @@ -482,50 +494,50 @@ CheckSGB: ; 7209b (1c:609b) ld a, [rJOYP] and $3 cp $3 - jr nz, .asm_720fd - call Func_72102 + jr nz, .isSGB + call SendMltReq1Packet and a ret -.asm_720fd - call Func_72102 +.isSGB + call SendMltReq1Packet scf ret -Func_72102: ; 72102 (1c:6102) +SendMltReq1Packet: ; 72102 (1c:6102) ld hl, MltReq1Packet call SendSGBPacket jp Wait7000 -Func_7210b: ; 7210b (1c:610b) +CopyGfxToSuperNintendoVRAM: ; 7210b (1c:610b) di push de call DisableLCD ld a, $e4 ld [rBGP], a ld de, vChars1 - ld a, [wcf2d] + ld a, [wCopyingSGBTileData] and a - jr z, .asm_72122 - call Func_72188 - jr .asm_72128 -.asm_72122 + jr z, .notCopyingTileData + call CopySGBBorderTiles + jr .next +.notCopyingTileData ld bc, $1000 call CopyData -.asm_72128 +.next ld hl, vBGMap0 ld de, $c ld a, $80 ld c, $d -.asm_72132 +.loop ld b, $14 -.asm_72134 +.innerLoop ld [hli], a inc a dec b - jr nz, .asm_72134 + jr nz, .innerLoop add hl, de dec c - jr nz, .asm_72132 + jr nz, .loop ld a, $e3 ld [rLCDC], a pop hl @@ -548,27 +560,27 @@ Wait7000: ; 7214a (1c:614a) jr nz, .loop ret -Func_72156: ; 72156 (1c:6156) +SendSGBPackets: ; 72156 (1c:6156) ld a, [wGBC] and a - jr z, .asm_72165 + jr z, .notGBC push de - call Func_7216d + call InitGBCPalettes pop hl - call Func_72187 + call EmptyFunc5 ret -.asm_72165 +.notGBC push de call SendSGBPacket pop hl jp SendSGBPacket -Func_7216d: ; 7216d (1c:616d) - ld a, $80 - ld [$ff68], a +InitGBCPalettes: ; 7216d (1c:616d) + ld a, $80 ; index 0 with auto-increment + ld [rBGPI], a inc hl ld c, $20 -.asm_72174 +.loop ld a, [hli] inc hl add a @@ -576,37 +588,48 @@ Func_7216d: ; 7216d (1c:616d) add a ld de, SuperPalettes add e - jr nc, .asm_72180 + jr nc, .noCarry inc d -.asm_72180 +.noCarry ld a, [de] - ld [$ff69], a + ld [rBGPD], a dec c - jr nz, .asm_72174 + jr nz, .loop ret -Func_72187: ; 72187 (1c:6187) +EmptyFunc5: ; 72187 (1c:6187) ret -Func_72188: ; 72188 (1c:6188) - ld b, $80 -.asm_7218a - ld c, $10 -.asm_7218c +CopySGBBorderTiles: ; 72188 (1c:6188) +; SGB tile data is stored in a 4BPP planar format. +; Each tile is 32 bytes. The first 16 bytes contain bit planes 1 and 2, while +; the second 16 bytes contain bit planes 3 and 4. +; This function converts 2BPP planar data into this format by mapping +; 2BPP colors 0-3 to 4BPP colors 0-3. 4BPP colors 4-15 are not used. + ld b, 128 + +.tileLoop + +; Copy bit planes 1 and 2 of the tile data. + ld c, 16 +.copyLoop ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_7218c - ld c, $10 + jr nz, .copyLoop + +; Zero bit planes 3 and 4. + ld c, 16 xor a -.asm_72195 +.zeroLoop ld [de], a inc de dec c - jr nz, .asm_72195 + jr nz, .zeroLoop + dec b - jr nz, .asm_7218a + jr nz, .tileLoop ret INCLUDE "data/sgb_packets.asm" diff --git a/engine/predefs.asm b/engine/predefs.asm index d8cf030c..0abdb5b3 100755 --- a/engine/predefs.asm +++ b/engine/predefs.asm @@ -121,7 +121,7 @@ PredefPointers:: ; 4fe79 (13:7e79) add_predef SetPartyMonTypes add_predef CanLearnTM add_predef TMToMove - add_predef Func_71ddf + add_predef _RunPaletteCommand add_predef StarterDex ; 46 add_predef _AddPartyMon add_predef UpdateHPBar2 diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index b68b9294..78ce35a2 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -21,8 +21,8 @@ PromptUserToPlaySlots: ; 3730e (d:730e) call GBPalWhiteOutWithDelay3 call LoadSlotMachineTiles call LoadFontTilePatterns - ld b, $5 - call GoPAL_SET + ld b, SET_PAL_SLOTS + call RunPaletteCommand call GBPalNormal ld a, $e4 ld [rOBP0], a @@ -41,7 +41,7 @@ PromptUserToPlaySlots: ; 3730e (d:730e) call GBPalWhiteOutWithDelay3 ld a, $1 ld [wUpdateSpritesEnabled], a - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand call ReloadMapSpriteTilePatterns call ReloadTilesetTilePatterns .done diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm index 0dbe4a4c..a75d3dcf 100755 --- a/engine/titlescreen.asm +++ b/engine/titlescreen.asm @@ -134,8 +134,8 @@ ENDC call LoadScreenTilesFromBuffer2 ld a, vBGMap0 / $100 call TitleScreenCopyTileMapToVRAM - ld b, $6 - call GoPAL_SET + ld b, SET_PAL_TITLE_SCREEN + call RunPaletteCommand call GBPalNormal ld a, %11100100 ld [rOBP0], a diff --git a/engine/town_map.asm b/engine/town_map.asm index 414b6509..225de2b8 100755 --- a/engine/town_map.asm +++ b/engine/town_map.asm @@ -314,8 +314,8 @@ LoadTownMap: ; 7109b (1c:509b) jr .nextTile .done call EnableLCD - ld b, $2 - call GoPAL_SET + ld b, SET_PAL_TOWN_MAP + call RunPaletteCommand call Delay3 call GBPalNormal xor a @@ -338,7 +338,7 @@ ExitTownMap: ; 711ab (1c:51ab) call LoadPlayerSpriteGraphics call LoadFontTilePatterns call UpdateSprites - jp GoPAL_SET_CF1C + jp RunDefaultPaletteCommand DrawPlayerOrBirdSprite: ; 711c4 (1c:51c4) ; a = map number diff --git a/engine/trade.asm b/engine/trade.asm index b7c72520..16a3d6a9 100755 --- a/engine/trade.asm +++ b/engine/trade.asm @@ -268,8 +268,8 @@ Trade_DrawOpenEndOfLinkCable: ; 41298 (10:5298) call Trade_ClearTileMap ld b, vBGMap0 / $100 call CopyScreenTileBufferToVRAM - ld b, $8 - call GoPAL_SET + ld b, SET_PAL_GENERIC + call RunPaletteCommand ; This function call is pointless. It just copies blank tiles to VRAM that was ; already filled with blank tiles. @@ -727,10 +727,10 @@ Trade_CircleOAM3: ; 4159c (10:559c) Trade_LoadMonSprite: ; 415a4 (10:55a4) ld [wcf91], a ld [wd0b5], a - ld [wcf1d], a - ld b, $b - ld c, $0 - call GoPAL_SET + ld [wWholeScreenPaletteMonSpecies], a + ld b, SET_PAL_POKEMON_WHOLE_SCREEN + ld c, 0 + call RunPaletteCommand ld a, [H_AUTOBGTRANSFERENABLED] xor $1 ld [H_AUTOBGTRANSFERENABLED], a diff --git a/home.asm b/home.asm index e1fbc0f2..3206a7ad 100644 --- a/home.asm +++ b/home.asm @@ -4469,7 +4469,7 @@ RestoreScreenTilesAndReloadTilePatterns:: ; 3dbe (0:3dbe) call ReloadMapSpriteTilePatterns call LoadScreenTilesFromBuffer2 call LoadTextBoxTilePatterns - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand jr Delay3 @@ -4499,13 +4499,13 @@ GBPalWhiteOut:: ret -GoPAL_SET_CF1C:: ; 3ded (0:3ded) +RunDefaultPaletteCommand:: ; 3ded (0:3ded) ld b,$ff -GoPAL_SET:: ; 3def (0:3def) +RunPaletteCommand:: ; 3def (0:3def) ld a,[wOnSGB] and a ret z - predef_jump Func_71ddf + predef_jump _RunPaletteCommand GetHealthBarColor:: ; Return at hl the palette of diff --git a/home/overworld.asm b/home/overworld.asm index eba47df2..6b3a75c6 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -659,8 +659,8 @@ CheckMapConnections:: ; 07ba (0:07ba) .loadNewMap ; load the connected map that was entered call LoadMapHeader call PlayDefaultMusicFadeOutCurrent - ld b,$09 - call GoPAL_SET + ld b, SET_PAL_OVERWORLD + call RunPaletteCommand ; Since the sprite set shouldn't change, this will just update VRAM slots at ; $C2XE without loading any tile patterns. callba InitMapSprites @@ -2343,8 +2343,8 @@ LoadMapData:: ; 1241 (0:1241) ld a,$01 ld [wUpdateSpritesEnabled],a call EnableLCD - ld b,$09 - call GoPAL_SET + ld b, SET_PAL_OVERWORLD + call RunPaletteCommand call LoadPlayerSpriteGraphics ld a,[wd732] and a,1 << 4 | 1 << 3 ; fly warp or dungeon warp diff --git a/home/vblank.asm b/home/vblank.asm index 3bdbe7cb..8ffae9f1 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -74,7 +74,7 @@ VBlank:: callba TrackPlayTime ; keep track of time played - ld a, [$fff9] + ld a, [hDisableJoypadPolling] and a call z, ReadJoypad diff --git a/hram.asm b/hram.asm index 3f331cfb..77fb7c1e 100644 --- a/hram.asm +++ b/hram.asm @@ -317,5 +317,7 @@ hFlags_0xFFF6 EQU $FFF6 hFieldMoveMonMenuTopMenuItemX EQU $FFF7 +hDisableJoypadPolling EQU $FFF9 + hJoyInput EQU $FFF8 diff --git a/main.asm b/main.asm index 8e41af64..a61c433b 100755 --- a/main.asm +++ b/main.asm @@ -3156,7 +3156,7 @@ RedrawMapView: ; eedc (3:6edc) ld [H_AUTOBGTRANSFERENABLED], a ld [hTilesetType], a ; no flower/water BG tile animations call LoadCurrentMapView - call GoPAL_SET_CF1C + call RunDefaultPaletteCommand ld hl, wMapViewVRAMPointer ld a, [hli] ld h, [hl] diff --git a/wram.asm b/wram.asm index 47074b55..67cdd5fa 100755 --- a/wram.asm +++ b/wram.asm @@ -477,6 +477,9 @@ wNPCMovementScriptBank:: ; cc58 ds 2 +wTrainerCardBlkPacket:: ; cc5b +; $40 bytes + wSlotMachineSevenAndBarModeChance:: ; cc5b ; If a random number greater than this value is generated, then the player is ; allowed to have three 7 symbols or bar symbols line up. @@ -1283,15 +1286,40 @@ wOnSGB:: ; cf1b ; if running on SGB, it's 1, else it's 0 ds 1 -wcf1c:: ds 1 ; used with sgb palettes -wcf1d:: ds 1 ; used when displaying palettes for Pokemon -wcf1e:: ds 1 ; used to display palettes for HP bar -wcf1f:: ds 6 ; used to display HP bars in Pokemon Menu (probably palettes) -wcf25:: ds 8 ; used to display HP bar for Pokemon Status Screen (probably palettes too) -wcf2d:: ds 1 ; also used to display HP bar for Pokemon Menu (something about HP colour) -wcf2e:: ds 2 ; more HP bar palette stuff. -wcf30:: ds 7 ; used with palettes (apparently for Pokedex) -wcf37:: ds 20 ; used with palletes too (used for Party Menu) +wDefaultPaletteCommand:: ; cf1c + ds 1 + +wPlayerHPBarColor:: ; cf1d + +wWholeScreenPaletteMonSpecies:: ; cf1d +; species of the mon whose palette is used for the whole screen + ds 1 + +wEnemyHPBarColor:: ; cf1e + ds 1 + +; 0: green +; 1: yellow +; 2: red +wPartyMenuHPBarColors:: ; cf1f + ds 6 + +wStatusScreenHPBarColor:: ; cf25 + ds 1 + + ds 7 + +wCopyingSGBTileData:: ; c2fd + +wWhichPartyMenuHPBar:: ; cf2d + +wPalPacket:: ; cf2d + ds 1 + +wPartyMenuBlkPacket:: ; cf2e +; $30 bytes + ds 29 + wcf4b:: ds 1 ; storage buffer for various strings wcf4c:: ds 1 ; used with displaying EXP value, probably also overflowed with wcf4b wGainBoostedExp:: ; cf4d -- cgit v1.3.1-sl0p