diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/data/palettes1.asm | 2 | ||||
-rw-r--r-- | src/engine/bank01.asm | 26 | ||||
-rwxr-xr-x | src/engine/bank03.asm | 2 | ||||
-rw-r--r-- | src/engine/bank04.asm | 4 | ||||
-rw-r--r-- | src/engine/bank06.asm | 12 | ||||
-rw-r--r-- | src/engine/bank07.asm | 53 | ||||
-rw-r--r-- | src/engine/bank20.asm | 23 | ||||
-rw-r--r-- | src/engine/home.asm | 25 | ||||
-rw-r--r-- | src/wram.asm | 11 |
9 files changed, 83 insertions, 75 deletions
diff --git a/src/data/palettes1.asm b/src/data/palettes1.asm index 75b7c10..8514090 100644 --- a/src/data/palettes1.asm +++ b/src/data/palettes1.asm @@ -1,4 +1,4 @@ -; palette data are read by Func_80418, expected to be structured as so:
+; palette data are read by LoadPaletteData, expected to be structured as so:
; the first byte has possible values of 0, 1 or 2
; - if 0, nothing is done;
; - if 1, then the next byte is written to OBP0 (or to OBP1 if wd4ca == $1);
diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index ba06c56..46f5919 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -218,7 +218,7 @@ MainDuelLoop: ; 40ee (1:40ee) ldtx hl, LostDuelText .handle_duel_finished - call Func_3b6a + call PlayDuelAnimation ld a, c call PlaySong ld a, OPPONENT_TURN @@ -1523,7 +1523,7 @@ PlayTurnDuelistDrawAnimation: ; 49a8 (1:49a8) ld e, DUEL_ANIM_OPP_DRAW .got_duelist ld a, e - call Func_3b6a + call PlayDuelAnimation .loop_anim call DoFrame @@ -2229,11 +2229,11 @@ PlayShuffleAndDrawCardsAnimation: ; 4e98 (1:4e98) ld hl, sp+$03 ; play animation 3 times ld a, [hl] - call Func_3b6a + call PlayDuelAnimation ld a, [hl] - call Func_3b6a + call PlayDuelAnimation ld a, [hl] - call Func_3b6a + call PlayDuelAnimation .loop_shuffle_anim call DoFrame @@ -2255,7 +2255,7 @@ PlayShuffleAndDrawCardsAnimation: ; 4e98 (1:4e98) ; get the draw animation from input value of c ld hl, sp+$00 ld a, [hl] - call Func_3b6a + call PlayDuelAnimation .loop_drawing_anim call DoFrame @@ -2328,11 +2328,11 @@ Func_4f2d: ; 4f2d (1:4f2d) .load_anim ; play animation 3 times ld a, e - call Func_3b6a + call PlayDuelAnimation ld a, e - call Func_3b6a + call PlayDuelAnimation ld a, e - call Func_3b6a + call PlayDuelAnimation .loop_anim call DoFrame @@ -6942,7 +6942,7 @@ Func_6cab: ; 6cab (1:6cab) pop af ; play animation - call Func_3b6a + call PlayDuelAnimation .loop_anim call DoFrame call CheckAnyAnimationPlaying @@ -7844,7 +7844,7 @@ _TossCoin: ; 71ad (1:71ad) .asm_7223 call Func_3b21 ld a, DUEL_ANIM_COIN_SPIN - call Func_3b6a + call PlayDuelAnimation ld a, [wCoinTossDuelistType] or a @@ -7871,7 +7871,7 @@ _TossCoin: ; 71ad (1:71ad) ; load the correct tossing animation ; and wait for it to finish ld a, d - call Func_3b6a + call PlayDuelAnimation ld a, [wCoinTossDuelistType] or a jr z, .wait_anim @@ -7901,7 +7901,7 @@ _TossCoin: ; 71ad (1:71ad) .show_result ld a, b - call Func_3b6a + call PlayDuelAnimation ; load correct sound effect ; the sound of the coin toss result diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm index 2e3f0d9..79a7edf 100755 --- a/src/engine/bank03.asm +++ b/src/engine/bank03.asm @@ -570,7 +570,7 @@ Func_c4b9: ; c4b9 (3:44b9) ld [wVRAMTileOffset], a ld [wd4cb], a ld a, $1d - farcall Func_80418 + farcall LoadPaletteData ld b, $0 ld a, [wConsole] cp $2 diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index e4db318..13666ec 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -1632,11 +1632,11 @@ HandleAnimationFrame: ; 12b13 (4:6b13) adc 0 ld [hl], a - ld de, wd23e + ld de, wLoadedPalData ld bc, SPRITE_FRAME_OFFSET_SIZE call CopyBankedDataToDE pop hl ; beginning of current sprite_anim_buffer - ld de, wd23e + ld de, wLoadedPalData ld a, [de] call GetAnimFramePointerFromOffset inc de diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm index 09d9de1..1eb85be 100644 --- a/src/engine/bank06.asm +++ b/src/engine/bank06.asm @@ -1084,7 +1084,7 @@ Func_18f9c: ; 18f9c (6:4f9c) cp $04 jr z, .asm_4fd3 ld a, $96 - call Func_3b6a + call PlayDuelAnimation .asm_4fd3 pop de .asm_4fd4 @@ -1140,12 +1140,12 @@ Func_19014: ; 19014 (6:5014) jr z, .shake_3 .play_anim - call Func_3b6a + call PlayDuelAnimation jr Func_18f9c.asm_4fd4 .show_damage ld a, $97 - call Func_3b6a + call PlayDuelAnimation ld a, [wce81] ld [wd4b3], a @@ -1160,12 +1160,12 @@ Func_19014: ; 19014 (6:5014) pop de ld a, $8c - call Func_3b6a + call PlayDuelAnimation ld a, [wDuelDisplayedScreen] cp DUEL_MAIN_SCENE jr nz, .asm_5054 ld a, $98 - call Func_3b6a + call PlayDuelAnimation .asm_5054 jp Func_18f9c.asm_4fd4 @@ -1203,7 +1203,7 @@ Func_19079: ; 19079 (6:5079) ld [wDuelAnimLocationParam], a call Func_1909d ld a, $96 - call Func_3b6a + call PlayDuelAnimation jp Func_18f9c.asm_4fd4 PointerTable_006_508f: ; 1908f (6:508f) diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index 4695918..d664eb8 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -573,8 +573,8 @@ Func_1c8bc: ; 1c8bc (7:48bc) ld [wd42a], a ld [wd4c0], a xor a - ld [wd4ac], a - ld [wd4ad], a + ld [wDuelAnimBufferCurPos], a + ld [wDuelAnimBufferSize], a ld [wd4b3], a call Func_1ccbc call Func_3ca0 @@ -583,7 +583,7 @@ Func_1c8bc: ; 1c8bc (7:48bc) ret ; 0x1c8ef -Func_1c8ef: ; 1c8ef (7:48ef) +PlayLoadedDuelAnimation: ; 1c8ef (7:48ef) ld a, [wDoFrameFunction + 0] cp LOW(Func_3ba2) jr nz, .error @@ -603,7 +603,7 @@ Func_1c8ef: ; 1c8ef (7:48ef) push hl push bc push de - call Func_1cab3 + call GetAnimationData ; hl: pointer ld a, [wAnimationsDisabled] @@ -684,7 +684,7 @@ Func_1c8ef: ; 1c8ef (7:48ef) ld [wd4cb], a ld a, [hli] ; ANIM_PALETTE_ID - farcall Func_80418 + farcall LoadPaletteData ld a, [hli] ; ANIM_SPRITE_ANIM_ID push af @@ -830,18 +830,20 @@ AnimationCoordinates: anim_coords 56, 40, $00 anim_coords 24, 40, $00 -Func_1ca31: ; 1ca31 (7:4a31) +; appends to end of wDuelAnimBuffer +; the current duel animation +LoadDuelAnimationToBuffer: ; 1ca31 (7:4a31) push hl push bc - ld a, [wd4ac] + ld a, [wDuelAnimBufferCurPos] ld b, a - ld hl, wd4ad + ld hl, wDuelAnimBufferSize ld a, [hl] ld c, a add DUEL_ANIM_STRUCT_SIZE and %01111111 cp b - jp z, .asm_007_4a6b + jp z, .skip ld [hl], a ld b, $00 @@ -864,25 +866,27 @@ Func_1ca31: ; 1ca31 (7:4a31) ld a, [wDuelAnimReturnBank] ld [hl], a -.asm_007_4a6b +.skip pop bc pop hl ret -Func_1ca6e: ; 1ca6e (7:4a6e) +; loads the animations from wDuelAnimBuffer +; in acending order, starting at wDuelAnimBufferCurPos +PlayBufferedDuelAnimations: ; 1ca6e (7:4a6e) push hl push bc -.asm_1ca70 - ld a, [wd4ad] +.next_duel_anim + ld a, [wDuelAnimBufferSize] ld b, a - ld a, [wd4ac] + ld a, [wDuelAnimBufferCurPos] cp b - jr z, .asm_1cab0 + jr z, .skip ld c, a add DUEL_ANIM_STRUCT_SIZE and %01111111 - ld [wd4ac], a + ld [wDuelAnimBufferCurPos], a ld b, $00 ld hl, wDuelAnimBuffer @@ -904,18 +908,19 @@ Func_1ca6e: ; 1ca6e (7:4a6e) ld a, [hl] ld [wDuelAnimReturnBank], a - call Func_1c8ef + call PlayLoadedDuelAnimation call CheckAnyAnimationPlaying - jr nc, .asm_1ca70 + jr nc, .next_duel_anim -.asm_1cab0 +.skip pop bc pop hl ret ; 0x1cab3 ; gets data from Animations for anim ID in a -Func_1cab3: ; 1cab3 (7:4ab3) +; outputs the pointer to the data in hl +GetAnimationData: ; 1cab3 (7:4ab3) push bc ld a, [wTempAnimation] ld l, a @@ -965,7 +970,7 @@ Func_1cac5: ; 1cac5 (7:4ac5) .asm_1cafb cp $ff jr nz, .asm_1cb02 - call Func_1ca6e + call PlayBufferedDuelAnimations .asm_1cb02 ret @@ -1016,8 +1021,8 @@ Func_1cb18: ; 1cb18 (7:4b18) dec c jr nz, .asm_1cb3b xor a - ld [wd4ac], a - ld [wd4ad], a + ld [wDuelAnimBufferCurPos], a + ld [wDuelAnimBufferSize], a .asm_1cb57 pop de pop bc @@ -1049,7 +1054,7 @@ Func_1cb5e: ; 1cb5e (7:4b5e) ld [wd4cb], a ld a, $25 - farcall Func_80418 + farcall LoadPaletteData call Func_1cba6 ld hl, wd4b3 diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index c2a8cdf..dfc8304 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -33,7 +33,7 @@ Func_80077: ; 80077 (20:4077) call Func_803b9 ld a, [wTempPointerBank] ld [wd23d], a - ld de, wd23e + ld de, wLoadedPalData ld bc, $0006 call CopyBankedDataToDE ld l, e @@ -87,7 +87,7 @@ Func_800e0: ; 800e0 (20:40e0) sla [hl] .asm_800f0 ld c, $40 - ld hl, wd23e + ld hl, wLoadedPalData xor a .asm_800f6 ld [hli], a @@ -101,13 +101,13 @@ Func_800e0: ; 800e0 (20:40e0) ld b, $00 ld a, [$d28e] ld c, a - ld de, wd23e + ld de, wLoadedPalData call Func_3be4 ld a, [wd12f] ld b, a pop de push de - ld hl, wd23e + ld hl, wLoadedPalData call Func_8016e ld a, [wConsole] cp $02 @@ -116,7 +116,7 @@ Func_800e0: ; 800e0 (20:40e0) ld a, [wd12f] ld c, a ld b, $00 - ld hl, wd23e + ld hl, wLoadedPalData add hl, bc pop de push de @@ -422,7 +422,7 @@ Func_803b9: ; 803b9 (20:43b9) ; b = palette index ; c = palette size ; hl = palette data to copy -LoadPaletteData: ; 803ec (20:43ec) +LoadPaletteDataFromHL: ; 803ec (20:43ec) push hl push bc push de @@ -466,13 +466,14 @@ LoadPaletteData: ; 803ec (20:43ec) ret ; 0x80418 -Func_80418: ; 80418 (20:4418) +; loads palette index a +LoadPaletteData: ; 80418 (20:4418) push hl push bc push de call CopyPaletteDataToBuffer - ld hl, wd23e + ld hl, wLoadedPalData ld a, [hli] ; number palettes ld c, a or a @@ -513,7 +514,7 @@ Func_80418: ; 80418 (20:4418) ; ensure it's a palette index starting from wObjectPalettesCGB or NUM_BACKGROUND_PALETTES ld b, a - call LoadPaletteData + call LoadPaletteDataFromHL .done pop de @@ -522,7 +523,7 @@ Func_80418: ; 80418 (20:4418) ret ; 0x80456 -; copies palette data of index in a to wd23e +; copies palette data of index in a to wLoadedPalData CopyPaletteDataToBuffer: ; 80456 (20:4456) push hl push bc @@ -545,7 +546,7 @@ CopyPaletteDataToBuffer: ; 80456 (20:4456) ld c, a ld b, $00 - ld de, wd23e + ld de, wLoadedPalData call CopyBankedDataToDE pop de pop bc diff --git a/src/engine/home.asm b/src/engine/home.asm index cc16ca3..476f182 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -11115,9 +11115,12 @@ CheckAnyAnimationPlaying: ; 3b52 (0:3b52) pop hl ret +; plays duel animation +; the animations are loaded to a buffer +; and played in order, so they can be stacked ; input: ; - a = animation index -Func_3b6a: ; 3b6a (0:3b6a) +PlayDuelAnimation: ; 3b6a (0:3b6a) ld [wTempAnimation], a ; hold an animation temporarily ldh a, [hBankROM] push af @@ -11126,25 +11129,25 @@ Func_3b6a: ; 3b6a (0:3b6a) push hl push bc push de - ld a, BANK(Func_1ca31) + ld a, BANK(LoadDuelAnimationToBuffer) call BankswitchROM ld a, [wTempAnimation] cp $61 - jr nc, .asm_3b90 + jr nc, .load_buffer - ld hl, wd4ad - ld a, [wd4ac] + ld hl, wDuelAnimBufferSize + ld a, [wDuelAnimBufferCurPos] cp [hl] - jr nz, .asm_3b90 + jr nz, .load_buffer call CheckAnyAnimationPlaying - jr nc, .asm_3b95 + jr nc, .play_anim -.asm_3b90 - call Func_1ca31 +.load_buffer + call LoadDuelAnimationToBuffer jr .done -.asm_3b95 - call Func_1c8ef +.play_anim + call PlayLoadedDuelAnimation jr .done .done diff --git a/src/wram.asm b/src/wram.asm index 34f2333..4fbe652 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -2129,10 +2129,9 @@ wd23c:: ; d23c wd23d:: ; d23d ds $1 -wd23e:: ; d23e - ds $1 - - ds $50 +; palette loaded from Palette* data +wLoadedPalData:: ; d23e + ds $51 wd28f:: ; d28f ds $1 @@ -2383,10 +2382,10 @@ wDuelAnimBuffer:: ; d42c duel_anim_struct wDuelAnim15 duel_anim_struct wDuelAnim16 -wd4ac:: ; d4ac +wDuelAnimBufferCurPos:: ; d4ac ds $1 -wd4ad:: ; d4ad +wDuelAnimBufferSize:: ; d4ad ds $1 ; used to know what coordinate offsets to use to place animations |