From 4d5fd88d6071465267818b31a77f0fb6e86d9140 Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Wed, 23 Dec 2020 00:38:06 +0000 Subject: Initial disasm of banks 7 and 20 --- src/engine/bank01.asm | 82 +++-- src/engine/bank03.asm | 2 +- src/engine/bank04.asm | 150 ++++++++- src/engine/bank07.asm | 705 ++++++++++++++++++++++++++++++++++++--- src/engine/bank20.asm | 897 ++++++++++++++++++++++++++++++++++++++++++++++++-- src/engine/home.asm | 29 +- 6 files changed, 1725 insertions(+), 140 deletions(-) (limited to 'src/engine') diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index a7184a6..9f54bb1 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -7714,19 +7714,20 @@ Func_7195: ; 7195 (1:7195) ret _TossCoin: ; 71ad (1:71ad) - ld [wcd9c], a + ld [wCoinTossTotalNum], a ld a, [wDuelDisplayedScreen] cp COIN_TOSS - jr z, .asm_71c1 + jr z, .print_text xor a - ld [wcd9f], a + ld [wCoinTossNumTossed], a call EmptyScreen call LoadDuelCoinTossResultTiles -.asm_71c1 - ld a, [wcd9f] +.print_text +; no need to print text if this is not the first coin toss + ld a, [wCoinTossNumTossed] or a - jr nz, .asm_71ec + jr nz, .clear_text_pointer ld a, COIN_TOSS ld [wDuelDisplayedScreen], a lb de, 0, 12 @@ -7743,47 +7744,53 @@ _TossCoin: ; 71ad (1:71ad) ld l, a call PrintText -.asm_71ec +.clear_text_pointer ld hl, wCoinTossScreenTextID xor a ld [hli], a ld [hl], a + +; store duelist type and reset number of heads call EnableLCD ld a, DUELVARS_DUELIST_TYPE call GetTurnDuelistVariable - ld [wcd9e], a + ld [wCoinTossDuelistType], a call ExchangeRNG xor a ld [wCoinTossNumHeads], a -.asm_7204 - ld a, [wcd9c] - cp $2 +.print_coin_tally +; skip printing text if it's only one coin toss + ld a, [wCoinTossTotalNum] + cp 2 jr c, .asm_7223 + +; write "#coin/#total coins" lb bc, 15, 11 - ld a, [wcd9f] - inc a + ld a, [wCoinTossNumTossed] + inc a ; current coin number is wCoinTossNumTossed + 1 call WriteTwoDigitNumberInTxSymbolFormat ld b, 17 ld a, SYM_SLASH call WriteByteToBGMap0 inc b - ld a, [wcd9c] + ld a, [wCoinTossTotalNum] call WriteTwoDigitNumberInTxSymbolFormat .asm_7223 call Func_3b21 ld a, $58 call Func_3b6a - ld a, [wcd9e] + + ld a, [wCoinTossDuelistType] or a jr z, .asm_7236 - call $7324 + call Func_7324 jr .asm_723c .asm_7236 call WaitForWideTextBoxInput - call $72ff + call Func_72ff .asm_723c call Func_3b21 @@ -7798,11 +7805,11 @@ _TossCoin: ; 71ad (1:71ad) .asm_724d ld a, d call Func_3b6a - ld a, [wcd9e] + ld a, [wCoinTossDuelistType] or a jr z, .asm_725e ld a, e - call $7310 + call Func_7310 ld e, a jr .asm_726c @@ -7813,7 +7820,7 @@ _TossCoin: ; 71ad (1:71ad) pop de jr c, .asm_725e ld a, e - call $72ff + call Func_72ff .asm_726c ld b, $5c @@ -7829,7 +7836,7 @@ _TossCoin: ; 71ad (1:71ad) .asm_727c ld a, b call Func_3b6a - ld a, [wcd9e] + ld a, [wCoinTossDuelistType] or a jr z, .asm_728a ld a, $1 @@ -7846,13 +7853,13 @@ _TossCoin: ; 71ad (1:71ad) .asm_7292 ld a, d call PlaySFX - ld a, [wcd9c] + ld a, [wCoinTossTotalNum] dec a jr z, .asm_72b9 ld a, c push af ld e, $0 - ld a, [wcd9f] + ld a, [wCoinTossNumTossed] .asm_72a3 cp $a jr c, .asm_72ad @@ -7870,17 +7877,17 @@ _TossCoin: ; 71ad (1:71ad) call FillRectangle .asm_72b9 - ld hl, wcd9f + ld hl, wCoinTossNumTossed inc [hl] - ld a, [wcd9e] + ld a, [wCoinTossDuelistType] or a jr z, .asm_72dc ld a, [hl] - ld hl, wcd9c + ld hl, wCoinTossTotalNum cp [hl] call z, WaitForWideTextBoxInput - call $7324 - ld a, [wcd9c] + call Func_7324 + ld a, [wCoinTossTotalNum] ld hl, wCoinTossNumHeads or [hl] jr nz, .asm_72e2 @@ -7889,14 +7896,14 @@ _TossCoin: ; 71ad (1:71ad) .asm_72dc call WaitForWideTextBoxInput - call $72ff + call Func_72ff .asm_72e2 call Func_3b31 - ld a, [wcd9f] - ld hl, wcd9c + ld a, [wCoinTossNumTossed] + ld hl, wCoinTossTotalNum cp [hl] - jp c, .asm_7204 + jp c, .print_coin_tally call ExchangeRNG call Func_3b31 call Func_3b21 @@ -7922,17 +7929,19 @@ Func_7310: ; 7310 (1:7310) ldh [hff96], a ld a, [wDuelType] cp DUELTYPE_LINK - jr z, .asm_7338 + jr z, Func_7338 .asm_7319 call DoFrame call CheckAnyAnimationPlaying jr c, .asm_7319 ldh a, [hff96] ret + +Func_7324: ; 7324 (1:7324) ldh [hff96], a ld a, [wDuelType] cp DUELTYPE_LINK - jr z, .asm_7338 + jr z, Func_7338 ld a, 30 .asm_732f call DoFrame @@ -7940,10 +7949,11 @@ Func_7310: ; 7310 (1:7310) jr nz, .asm_732f ldh a, [hff96] ret -.asm_7338 + +Func_7338: ; 7338 (1:7338) call DoFrame call SerialRecvByte - jr c, .asm_7338 + jr c, Func_7338 call Func_7344 ret ; 0x7344 diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm index 37e09c2..1b5d5f1 100644 --- a/src/engine/bank03.asm +++ b/src/engine/bank03.asm @@ -567,7 +567,7 @@ Func_c49c: ; c49c (3:449c) Func_c4b9: ; c4b9 (3:44b9) xor a - ld [wd4ca], a + ld [wVRAMTileOffset], a ld [wd4cb], a ld a, $1d farcall Func_80418 diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index e3f65f0..e67216b 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -1288,8 +1288,44 @@ endr Unknown_128fb: ; 128fb INCROM $128fb, $1296e +; disables all sprite animations +; and clears memory related to sprites Func_1296e: ; 1296e (4:696e) - INCROM $1296e, $1299f + push af + ld a, [wd5d7] + or a + jr z, .asm_12977 + pop af + ret + +.asm_12977 + pop af + push bc + push hl + xor a + ld [wWhichSprite], a + call GetFirstSpriteAnimBufferProperty + lb bc, 0, SPRITE_ANIM_LENGTH + +; disable all sprite animations +.loop_sprites + xor a + ld [hl], a ; set SPRITE_ANIM_ENABLED to 0 + add hl, bc + ld a, [wWhichSprite] + inc a + ld [wWhichSprite], a + cp SPRITE_ANIM_BUFFER_CAPACITY + jr nz, .loop_sprites + + call Func_12bf3 + call ZeroObjectPositions + ld hl, wVBlankOAMCopyToggle + inc [hl] + pop hl + pop bc + ret +; 0x1299f ; creates a new entry in SpriteAnimBuffer, else loads the sprite if need be CreateSpriteAndAnimBufferEntry: ; 1299f (4:699f) @@ -1359,7 +1395,37 @@ FillNewSpriteAnimBufferEntry: ; 129d9 (4:69d9) ret ; 0x129fa - INCROM $129fa, $12a21 +Func_129fa: ; 129fa (4:69fa) + ld a, [wWhichSprite] + push af + ld a, [wd5d7] + or a + jr z, .asm_12a06 + pop af + ret +.asm_12a06 + pop af + push hl + push bc + ld c, SPRITE_ANIM_ENABLED + call GetSpriteAnimBufferProperty_SpriteInA + ld [hl], $00 + pop bc + pop hl + ret +; 0x12a13 + +Func_12a13: ; 12a13 (4:6a13) + ld a, [wWhichSprite] + push hl + push bc + ld c, SPRITE_ANIM_COUNTER + call GetSpriteAnimBufferProperty_SpriteInA + ld a, [hl] + pop bc + pop hl + ret +; 0x12a21 HandleAllSpriteAnimations: ; 12a21 (4:6a21) push af @@ -1475,6 +1541,9 @@ StartNewSpriteAnimation: ; 12ab5 (4:6ab5) cp [hl] pop hl ret z + ; fallthrough + +StartSpriteAnimation: ; 12ac0 (4:6ac0) push hl call LoadSpriteAnimPointers call HandleAnimationFrame @@ -1482,7 +1551,26 @@ StartNewSpriteAnimation: ; 12ab5 (4:6ab5) ret ; 0x12ac9 - INCROM $12ac9, $12ae2 +Func_12ac9: ; 12ac9 (4:6ac9) + push bc + ld b, a + ld a, c + or a + ld a, b + pop bc + jr z, StartSpriteAnimation + + push hl + push bc + call LoadSpriteAnimPointers + ld a, $ff + call GetAnimFramePointerFromOffset + pop bc + ld a, c + call SetAnimationCounterAndLoop + pop hl + ret +; 0x12ae2 ; Given an animation ID, fills the current sprite's Animation Pointer and Frame Offset Pointer ; a - Animation ID for current sprite @@ -1582,11 +1670,12 @@ HandleAnimationFrame: ; 12b13 (4:6b13) pop bc ret -; Calls GetAnimationFramePointer after setting up wTempPointerBank and wd4ca +; Calls GetAnimationFramePointer after setting up wTempPointerBank +; and wVRAMTileOffset ; a - frame offset from Animation Data ; hl - beginning of Sprite Anim Buffer GetAnimFramePointerFromOffset: ; 12b6a (4:6b6a) - ld [wd4ca], a + ld [wVRAMTileOffset], a push hl push bc push de @@ -1638,9 +1727,26 @@ Func_12ba7: ; 12ba7 (4:6ba7) INCROM $12ba7, $12bcd Func_12bcd: ; 12bcd (4:6bcd) - INCROM $12bcd, $12c05 + INCROM $12bcd, $12bf3 + +; clears wSpriteVRAMBufferSize and wSpriteVRAMBuffer +Func_12bf3: ; 12bf3 (4:6bf3) + push hl + push bc + xor a + ld [wSpriteVRAMBufferSize], a + ld c, $40 + ld hl, wSpriteVRAMBuffer +.asm_12bfe + ld [hli], a + dec c + jr nz, .asm_12bfe + pop bc + pop hl + ret +; 0x12c05 -; gets some value based on the sprite in b and wd5d8 +; gets some value based on the sprite in a and wSpriteVRAMBuffer ; loads the sprites data if it doesn't already exist Func_12c05: ; 12c05 (4:6c05) push hl @@ -1648,9 +1754,9 @@ Func_12c05: ; 12c05 (4:6c05) push de ld b, a ld d, $0 - ld a, [wd618] + ld a, [wSpriteVRAMBufferSize] ld c, a - ld hl, wd5d8 + ld hl, wSpriteVRAMBuffer or a jr z, .tryToAddSprite @@ -1661,40 +1767,43 @@ Func_12c05: ; 12c05 (4:6c05) jr z, .foundSpriteMatch inc hl ld a, [hli] - add [hl] + add [hl] ; add tile size to tile offset ld d, a inc hl dec c jr nz, .findSpriteMatchLoop + .tryToAddSprite - ld a, [wd618] + ld a, [wSpriteVRAMBufferSize] cp $10 jr nc, .quitFail inc a - ld [wd618], a + ld [wSpriteVRAMBufferSize], a ; increase number of entries by 1 inc hl push hl ld a, b - ld [hli], a + ld [hli], a ; store sprite index call Func_12c4f push af ld a, d - ld [hli], a + ld [hli], a ; store tile offset pop af - ld [hl], a + ld [hl], a ; store tile size pop hl + .foundSpriteMatch dec hl - inc [hl] + inc [hl] ; mark this entry as valid inc hl inc hl ld a, [hli] add [hl] cp $81 - jr nc, .quitFail + jr nc, .quitFail ; exceeds total tile size ld a, d or a jr .quitSucceed + .quitFail debug_ret xor a @@ -1705,12 +1814,17 @@ Func_12c05: ; 12c05 (4:6c05) pop hl ret +; input: +; a = sprite index within the data map +; d = tile offset in VRAM +; output: +; a = number of tiles in sprite Func_12c4f: ; 12c4f (4:6c4f) push af xor a ld [wd4cb], a ld a, d - ld [wd4ca], a + ld [wVRAMTileOffset], a pop af farcall Func_8025b ret diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index 375a161..a8fe73a 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -598,7 +598,8 @@ Func_1c8ef: ; 1c8ef (7:48ef) ld a, [wTempAnimation] ld [wd4bf], a cp $61 - jp nc, $4b5e ; asm_007_4b5e + jp nc, Func_1cb5e + push hl push bc push de @@ -632,7 +633,7 @@ Func_1c8ef: ; 1c8ef (7:48ef) add hl, bc ld a, [hl] rlca - add $48 + add LOW(.address) ; $48 ld l, a ; LO ld a, HIGH(.address) ; $49 adc 0 @@ -654,6 +655,7 @@ Func_1c8ef: ; 1c8ef (7:48ef) dw Func_1c94a Func_1c94a: ; 1c94a (7:494a) +; if any of the first 3 bytes is $00, return carry ld e, l ld d, h ld c, 3 @@ -664,23 +666,25 @@ Func_1c94a: ; 1c94a (7:494a) inc de dec c jr nz, .loop + ld a, [hli] farcall CreateSpriteAndAnimBufferEntry ld a, [wWhichSprite] ld [wAnimationQueue], a ; push an animation to the queue + xor a - ld [wd4ca], a + ld [wVRAMTileOffset], a ld [wd4cb], a + ld a, [hli] - farcall $20, $4418 - ld a, [hli] + farcall Func_80418 + ld a, [hli] push af ld a, [hli] ld [wd42b], a call Func_1c980 pop af - farcall StartNewSpriteAnimation or a jr .return @@ -703,11 +707,11 @@ Func_1c980: ; 1c980 (7:4980) or [hl] ld [hli], a ld a, b - ld [hli], a - ld [hl], c + ld [hli], a ; SPRITE_ANIM_COORD_X + ld [hl], c ; SPRITE_ANIM_COORD_Y pop af - ld bc, $000c + lb bc, 0, SPRITE_ANIM_FLAGS - SPRITE_ANIM_COORD_Y add hl, bc ld c, a and %00000011 @@ -717,6 +721,10 @@ Func_1c980: ; 1c980 (7:4980) pop hl ret +; output: +; a = anim flags +; b = x coordinate +; c = y coordinate Func_1c9a2: ; 1c9a2 (7:49a2) push hl ld c, 0 @@ -725,17 +733,18 @@ Func_1c9a2: ; 1c9a2 (7:49a2) jr nz, .calc_addr ld a, [wd4ae] - add a + add a ; 2 * [wd4ae] ld c, a - add a - add c - add a + add a ; 4 * [wd4ae] + add c ; 6 * [wd4ae] + add a ; 12 * [wd4ae] ld c, a + ld a, [wd4af] cp PLAYER_TURN jr z, .player_turn - ld a, $06 + ld a, 6 add c ld c, a .player_turn @@ -746,6 +755,7 @@ Func_1c9a2: ; 1c9a2 (7:49a2) ld hl, Data_1c9e0 add hl, bc ld c, [hl] + .calc_addr ld a, c add a ; a = c * 2 @@ -802,29 +812,30 @@ Data_1c9e0: db $0e macro_1ca04: MACRO - dw \1 + db \1 db \2 + db \3 ENDM Data_1ca04: -; value(2), flag(1) - macro_1ca04 $5858, $08 - macro_1ca04 $5028, $00 - macro_1ca04 $3088, $63 - macro_1ca04 $4858, $00 - macro_1ca04 $6018, $00 - macro_1ca04 $6038, $00 - macro_1ca04 $6058, $00 - macro_1ca04 $6078, $00 - macro_1ca04 $6098, $00 - macro_1ca04 $5058, $00 - macro_1ca04 $2898, $00 - macro_1ca04 $2878, $00 - macro_1ca04 $2858, $00 - macro_1ca04 $2838, $00 - macro_1ca04 $2818, $00 - -Func_1ca31: ; 1ca31 (7:4a6b) +; x coord, y coord, animation flags + macro_1ca04 $58, $58, %00001000 + macro_1ca04 $28, $50, %00000000 + macro_1ca04 $88, $30, %01100011 + macro_1ca04 $58, $48, %00000000 + macro_1ca04 $18, $60, %00000000 + macro_1ca04 $38, $60, %00000000 + macro_1ca04 $58, $60, %00000000 + macro_1ca04 $78, $60, %00000000 + macro_1ca04 $98, $60, %00000000 + macro_1ca04 $58, $50, %00000000 + macro_1ca04 $98, $28, %00000000 + macro_1ca04 $78, $28, %00000000 + macro_1ca04 $58, $28, %00000000 + macro_1ca04 $38, $28, %00000000 + macro_1ca04 $18, $28, %00000000 + +Func_1ca31: ; 1ca31 (7:4a31) push hl push bc ld a, [wd4ac] @@ -837,8 +848,9 @@ Func_1ca31: ; 1ca31 (7:4a6b) cp b jp z, .asm_007_4a6b ld [hl], a - ld b, 0 - ld hl, $d42c + + ld b, $00 + ld hl, wd42c add hl, bc ld a, [wTempAnimation] ld [hli], a @@ -848,20 +860,64 @@ Func_1ca31: ; 1ca31 (7:4a6b) ld [hli], a ld a, [wd4b0] ld [hli], a - ld a, [$d4b1] + ld a, [wd4b1] ld [hli], a - ld a, [$d4b2] + ld a, [wd4b2] ld [hli], a - ld a, [$d4b3] + ld a, [wd4b3] ld [hli], a ld a, [wd4be] ld [hl], a + .asm_007_4a6b pop bc pop hl ret - INCROM $1ca6e, $1cab3 +Func_1ca6e: ; 1ca6e (7:4a6e) + push hl + push bc +.asm_1ca70 + ld a, [wd4ad] + ld b, a + ld a, [wd4ac] + cp b + jr z, .asm_1cab0 + + ld c, a + add $08 + and $7f + ld [wd4ac], a + + ld b, $00 + ld hl, wd42c + add hl, bc + ld a, [hli] + ld [wTempAnimation], a + ld a, [hli] + ld [wd4ae], a + ld a, [hli] + ld [wd4af], a + ld a, [hli] + ld [wd4b0], a + ld a, [hli] + ld [wd4b1], a + ld a, [hli] + ld [wd4b2], a + ld a, [hli] + ld [wd4b3], a + ld a, [hl] + ld [wd4be], a + + call Func_1c8ef + call CheckAnyAnimationPlaying + jr nc, .asm_1ca70 + +.asm_1cab0 + pop bc + pop hl + ret +; 0x1cab3 Func_1cab3: ; 1cab3 (7:4ab3) push bc @@ -873,12 +929,64 @@ Func_1cab3: ; 1cab3 (7:4ab3) ld c, l add hl, hl ; hl = anim * 4 add hl, bc ; hl = anim * 6 - ld bc, $4e32 + ld bc, Data_1ce32 add hl, bc pop bc ret - INCROM $1cac5, $1cb18 +Func_1cac5: ; 1cac5 (7:4ac5) + ld a, [wd42a] + cp $ff + jr nz, .asm_1cb03 + + ld a, [wd4c0] + or a + jr z, .asm_1cafb + cp $80 + jr z, .asm_1cb11 + ld hl, wAnimationQueue + ld c, $07 +.asm_1cadb + push af + push bc + ld a, [hl] + cp $ff + jr z, .asm_1caf4 + ld [wWhichSprite], a + farcall Func_12a13 + cp $ff + jr nz, .asm_1caf4 + farcall Func_129fa + ld a, $ff + ld [hl], a +.asm_1caf4 + pop bc + pop af + and [hl] + inc hl + dec c + jr nz, .asm_1cadb +.asm_1cafb + cp $ff + jr nz, .asm_1cb02 + call Func_1ca6e +.asm_1cb02 + ret + +.asm_1cb03 + ld hl, wd4b9 + ld a, [hli] + ld h, [hl] + ld l, a + call CallHL2 + ld a, [wd42a] + jr .asm_1cafb + +.asm_1cb11 + ld a, $ff + ld [wd4c0], a + jr .asm_1cafb +; 0x1cb18 Func_1cb18: ; 1cb18 (7:4b18) push hl @@ -924,7 +1032,236 @@ Func_1cb18: ; 1cb18 (7:4b18) jr .asm_1cb57 ; 0x1cb5e - INCROM $1cb5e, $1ccbc +Func_1cb5e: ; 1cb5e (7:4b5e) + cp $96 + jp nc, Func_1ce03 + cp $8c + jp nz, Func_1cc76 + jr .asm_1cb6a ; redundant +.asm_1cb6a + ld a, [wd4b2] + cp $03 + jr nz, .asm_1cb76 + ld a, [wd4b1] + cp $e8 +.asm_1cb76 + ret nc + + xor a + ld [wd4b8], a + ld [wVRAMTileOffset], a + ld [wd4cb], a + + ld a, $25 + farcall Func_80418 + call Func_1cba6 + + ld hl, wd4b3 + bit 0, [hl] + call nz, Func_1cc3e + + ld a, $12 + ld [wd4b8], a + bit 1, [hl] + call nz, Func_1cc4e + + bit 2, [hl] + call nz, Func_1cc66 + + xor a + ld [wd4b3], a + ret +; 0x1cba6 + +Func_1cba6: ; 1cba6 (7:4ba6) + call Func_1cc03 + xor a + ld [wd4b7], a + + ld hl, wd4b4 + ld de, wAnimationQueue + 1 +.asm_1cbb3 + push hl + push de + ld a, [hl] + or a + jr z, .asm_1cbbc + call Func_1cbcc + +.asm_1cbbc + pop de + pop hl + inc hl + inc de + ld a, [wd4b7] + inc a + ld [wd4b7], a + cp $03 + jr c, .asm_1cbb3 + ret +; 0x1cbcc + +Func_1cbcc: ; 1cbcc (7:4bcc) + push af + ld a, $2e + farcall CreateSpriteAndAnimBufferEntry + ld a, [wWhichSprite] + ld [de], a + ld a, $80 + ld [wd42b], a + ld c, SPRITE_ANIM_COORD_X + call GetSpriteAnimBufferProperty + call Func_1c9a2 + + ld a, [wd4b7] + add $fd + ld e, a + ld a, $4b + adc 0 + ld d, a + ld a, [de] + add b + + ld [hli], a ; SPRITE_ANIM_COORD_X + ld [hl], c ; SPRITE_ANIM_COORD_Y + + ld a, [wd4b8] + ld c, a + pop af + farcall Func_12ac9 + ret +; 0x1cbfd + + INCROM $1cbfd, $1cc03 + +Func_1cc03: ; 1cc03 (7:4c03) + ld a, [wd4b1] + ld l, a + ld a, [wd4b2] + ld h, a + + ld de, wd4b4 + ld bc, -100 + call .Func_1cc2f + ld bc, -10 + call .Func_1cc2f + + ld a, l + add $4f + ld [de], a + ld hl, wd4b4 + ld c, 2 +.asm_1cc23 + ld a, [hl] + cp $4f + jr nz, .asm_1cc2e + ld [hl], $00 + inc hl + dec c + jr nz, .asm_1cc23 +.asm_1cc2e + ret +; 0x1cc2f + +.Func_1cc2f + ld a, $4e +.loop + inc a + add hl, bc + jr c, .loop + + ld [de], a + inc de + ld a, l + sub c + ld l, a + ld a, h + sbc b + ld h, a + ret +; 0x1cc3e + +Func_1cc3e: ; 1cc3e (7:4c3e) + push hl + ld a, $03 + ld [wd4b7], a + ld de, wAnimationQueue + 4 + ld a, $5b + call Func_1cbcc + pop hl + ret +; 0x1cc4e + +Func_1cc4e: ; 1cc4e (7:4c4e) + push hl + ld a, $04 + ld [wd4b7], a + ld de, wAnimationQueue + 5 + ld a, $5a + call Func_1cbcc + ld a, [wd4b8] + add $12 + ld [wd4b8], a + pop hl + ret +; 0x1cc66 + +Func_1cc66: ; 1cc66 (7:4c66) + push hl + ld a, $05 + ld [wd4b7], a + ld de, wAnimationQueue + 6 + ld a, $59 + call Func_1cbcc + pop hl + ret +; 0x1cc76 + +Func_1cc76: ; 1cc76 (7:4c76) + ld a, [wd421] + or a + jr nz, .asm_1cc9e + ld a, [wTempAnimation] + ld [wd42a], a + sub $61 + add a + add a + ld c, a + ld b, $00 + ld hl, Data_1cc9f + add hl, bc + ld a, [hli] + ld [wd4b9], a + ld c, a + ld a, [hli] + ld [wd4b9 + 1], a + ld b, a + ld a, [hl] + ld [wd4bb], a + call CallBC +.asm_1cc9e + ret +; 0x1cc9f + +macro_1cc9f: MACRO + dw \1 + db \2 + db \3 +ENDM + +Data_1cc9f: ; 1cc9f (7:4c9f) + macro_1cc9f Func_1cce4, $18, $00 + macro_1cc9f Func_1cce9, $20, $00 + macro_1cc9f Func_1cd10, $18, $00 + macro_1cc9f Func_1cd15, $20, $00 + macro_1cc9f Func_1cd76, $08, $00 + macro_1cc9f Func_1cdc3, $3f, $00 + +Func_1ccb7: ; 1ccb7 (7:4cb7) + ld a, [wd4bb] + or a + ret nz + ; fallthrough Func_1ccbc: ; 1ccbc (7:4cbc) ld a, $ff @@ -941,7 +1278,289 @@ Func_1ccbc: ; 1ccbc (7:4cbc) ret ; 0x1ccd4 - INCROM $1ccd4, $1d078 + INCROM $1ccd4, $1cce4 + +Func_1cce4: ; 1cce4 (7:4ce4) + ld hl, $4d55 + jr Func_1ccee + +Func_1cce9: ; 1cce9 (7:4ce9) + ld hl, $4d61 + jr Func_1ccee + +Func_1ccee: ; 1ccee (7:4cee) + ld a, l + ld [wd4bc], a + ld a, h + ld [wd4bc + 1], a + + ld hl, wd4b9 + ld [hl], LOW(.asm_1ccff) + inc hl + ld [hl], HIGH(.asm_1ccff) + ret + +.asm_1ccff + call Func_1cd71 + call Func_1cd3c + jp nc, Func_1ccb7 + ldh a, [hSCX] + add [hl] + ldh [hSCX], a + jp Func_1ccb7 +; 0x1cd10 + +Func_1cd10: ; 1cd10 (7:4d10) + ld hl, $4d55 + jr Func_1cd1a + +Func_1cd15: ; 1cd15 (7:4d15) + ld hl, $4d61 + jr Func_1cd1a + +Func_1cd1a: ; 1cd1a (7:4d1a) + ld a, l + ld [wd4bc], a + ld a, h + ld [wd4bc + 1], a + ld hl, wd4b9 + ld [hl], LOW(.asm_1cd2b) + inc hl + ld [hl], HIGH(.asm_1cd2b) + ret + +.asm_1cd2b + call Func_1cd71 + call Func_1cd3c + jp nc, Func_1ccb7 + ldh a, [hSCY] + add [hl] + ldh [hSCY], a + jp Func_1ccb7 +; 0x1cd3c + +Func_1cd3c: ; 1cd3c (7:4d3c) + ld hl, wd4bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd4bb] + cp [hl] + ret nc + inc hl + push hl + inc hl + ld a, l + ld [wd4bc], a + ld a, h + ld [wd4bc + 1], a + pop hl + scf + ret +; 0x1cd55 + + INCROM $1cd55, $1cd71 + +Func_1cd71: ; 1cd71 (7:4d71) + ld hl, wd4bb + dec [hl] + ret +; 0x1cd76 + +Func_1cd76: ; 1cd76 (7:4d76) + ld hl, wd4b9 + ld [hl], $a3 + inc hl + ld [hl], $4d + ld a, [wBGP] + ld [wd4bc], a + ld hl, wBackgroundPalettesCGB + ld de, wd297 + ld bc, 8 palettes + call CopyDataHLtoDE_SaveRegisters + ld de, $7fff + ld hl, wBackgroundPalettesCGB + ld bc, $20 + call FillMemoryWithDE + xor a + call SetBGP + call FlushAllPalettes + call Func_1cd71 + ld a, [wd4bb] + or a + ret nz + ld hl, wd297 + ld de, wBackgroundPalettesCGB + ld bc, 8 palettes + call CopyDataHLtoDE_SaveRegisters + ld a, [wd4bc] + call SetBGP + call FlushAllPalettes + jp Func_1ccbc +; 0x1cdc3 + +Func_1cdc3: ; 1cdc3 (7:4dc3) + ld hl, wd4b9 + ld [hl], $df + inc hl + ld [hl], $4d + xor a + ld [wApplyBGScroll], a + ld hl, $cace + ld [hl], $a6 + inc hl + ld [hl], $3e + ld a, $01 + ld [wBGScrollMod], a + call EnableInt_LYCoincidence + ld a, [$d4bb] + srl a + srl a + srl a + and $07 + ld c, a + ld b, $00 + ld hl, $4dfb + add hl, bc + ld a, [hl] + ld [wBGScrollMod], a + call Func_1cd71 + jp Func_1ccb7 +; 0x1cdfb + + INCROM $1cdfb, $1ce03 + +Func_1ce03: ; 1ce03 (7:4e03) + cp $9e + jr z, .asm_1ce17 + sub $96 + add a + ld c, a + ld b, $00 + ld hl, $4e22 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp Func_3bb5 +.asm_1ce17 + ld a, [wd4b1] + ld l, a + ld a, [wd4b2] + ld h, a + jp Func_3bb5 +; 0x1ce22 + + INCROM $1ce22, $1ce32 + +macro_1ce32: MACRO + db \1 + db \2 + db \3 + db \4 + db \5 + db \6 +ENDM + +Data_1ce32: ; 1ce32 (7:4e32) + macro_1ce32 $00, $00, $00, $00, $00, $00 + macro_1ce32 $28, $1f, $47, %10000000, $11, $00 + macro_1ce32 $29, $20, $48, %10000000, $12, $00 + macro_1ce32 $2a, $21, $49, %10000000, $13, $00 + macro_1ce32 $2b, $22, $4a, %10000000, $14, $00 + macro_1ce32 $2c, $23, $4b, %10000000, $15, $00 + macro_1ce32 $2d, $24, $4c, %10000000, $16, $00 + macro_1ce32 $2d, $24, $4d, %10000000, $16, $00 + macro_1ce32 $2d, $24, $4e, %10000000, $17, $00 + macro_1ce32 $2e, $25, $00, $00, $00, $00 + macro_1ce32 $2f, $26, $5c, $00, $18, $00 + macro_1ce32 $30, $27, $5e, $00, $19, $00 + macro_1ce32 $31, $28, $5f, $00, $1a, $00 + macro_1ce32 $32, $29, $60, %00000100, $1b, $00 + macro_1ce32 $33, $2a, $61, $00, $1c, $00 + macro_1ce32 $33, $2a, $62, $00, $1d, $00 + macro_1ce32 $34, $2b, $63, %00000100, $1e, $00 + macro_1ce32 $35, $2c, $64, $00, $1f, $00 + macro_1ce32 $36, $2d, $69, %00000100, $20, $00 + macro_1ce32 $37, $2e, $6a, $00, $21, $00 + macro_1ce32 $38, $2f, $6b, %00000100, $22, $00 + macro_1ce32 $39, $30, $6c, $00, $23, $00 + macro_1ce32 $3a, $31, $6d, %00000100, $24, $00 + macro_1ce32 $3b, $32, $6e, $00, $25, $00 + macro_1ce32 $3c, $33, $6f, $00, $26, $00 + macro_1ce32 $3d, $34, $70, %01000000 | %00000010, $27, $00 + macro_1ce32 $3e, $35, $71, %01000000 | %00000010, $28, $00 + macro_1ce32 $3f, $36, $72, $00, $29, $00 + macro_1ce32 $3f, $36, $73, $00, $2a, $00 + macro_1ce32 $40, $37, $74, $00, $2b, $00 + macro_1ce32 $40, $37, $75, $00, $52, $00 + macro_1ce32 $40, $37, $76, $00, $53, $00 + macro_1ce32 $41, $38, $77, %00100000 | %00000001, $2c, $00 + macro_1ce32 $42, $39, $78, $00, $2d, $00 + macro_1ce32 $43, $3a, $7a, $00, $2d, $00 + macro_1ce32 $44, $3b, $7b, $00, $2e, $00 + macro_1ce32 $42, $39, $79, $00, $2f, $00 + macro_1ce32 $45, $3c, $7c, %00100000 | %00000001, $30, $00 + macro_1ce32 $46, $3d, $7d, $00, $31, $00 + macro_1ce32 $47, $3e, $7e, $00, $32, $00 + macro_1ce32 $48, $3f, $7f, $00, $33, $00 + macro_1ce32 $49, $40, $80, $00, $34, $00 + macro_1ce32 $4a, $41, $81, $00, $35, $00 + macro_1ce32 $4b, $42, $82, $00, $36, $00 + macro_1ce32 $4c, $43, $83, $00, $37, $00 + macro_1ce32 $4d, $44, $84, $00, $38, $00 + macro_1ce32 $4e, $45, $85, $00, $39, $00 + macro_1ce32 $4f, $46, $86, $00, $3a, $00 + macro_1ce32 $50, $47, $87, %00100000 | %00000001, $3b, $00 + macro_1ce32 $51, $48, $88, $00, $3c, $00 + macro_1ce32 $52, $49, $89, $00, $3d, $00 + macro_1ce32 $53, $4a, $8a, $00, $3e, $00 + macro_1ce32 $54, $4b, $8b, $00, $3f, $00 + macro_1ce32 $55, $4c, $8c, %00000100, $40, $00 + macro_1ce32 $56, $4d, $8d, $00, $41, $00 + macro_1ce32 $57, $4e, $8e, $00, $42, $00 + macro_1ce32 $58, $4f, $8f, %00000100, $43, $00 + macro_1ce32 $59, $50, $90, $00, $44, $00 + macro_1ce32 $5a, $51, $92, $00, $45, $00 + macro_1ce32 $5b, $52, $93, $00, $46, $00 + macro_1ce32 $5c, $53, $94, $00, $47, $00 + macro_1ce32 $5c, $53, $95, $00, $48, $00 + macro_1ce32 $5d, $54, $97, $00, $49, $00 + macro_1ce32 $5e, $55, $99, $00, $4a, $00 + macro_1ce32 $4a, $56, $81, $00, $4b, $00 + macro_1ce32 $5c, $53, $96, $00, $47, $00 + macro_1ce32 $2d, $24, $4d, %10000000, $16, $00 + macro_1ce32 $2d, $24, $4e, %10000000, $17, $00 + macro_1ce32 $2f, $26, $5c, $00, $18, $00 + macro_1ce32 $3a, $31, $6d, %00000100, $24, $00 + macro_1ce32 $5f, $57, $9a, %10000000, $11, $00 + macro_1ce32 $35, $2c, $65, %00000100, $5c, $00 + macro_1ce32 $35, $2c, $66, %00000100, $00, $00 + macro_1ce32 $5d, $54, $98, %00000100, $4c, $00 + macro_1ce32 $59, $50, $91, %00000100, $4d, $00 + macro_1ce32 $60, $58, $9b, $00, $4e, $00 + macro_1ce32 $61, $59, $9c, $00, $4f, $00 + macro_1ce32 $62, $5a, $9d, $00, $50, $00 + macro_1ce32 $35, $2c, $67, %0000100, $51, $00 + macro_1ce32 $35, $2c, $68, %0000100, $51, $00 + macro_1ce32 $63, $5b, $9e, %10000000 | %00001000 | %00000100, $00, $00 + macro_1ce32 $63, $5b, $9f, %10000000 | %00001000 | %00000100, $07, $00 + macro_1ce32 $63, $5b, $a0, %10000000 | %00001000 | %00000100, $07, $00 + macro_1ce32 $63, $5b, $a1, %10000000 | %00001000 | %00000100, $07, $00 + macro_1ce32 $63, $5b, $a2, %10000000 | %00000100, $00, $00 + macro_1ce32 $63, $5b, $a3, %10000000 | %00001000 | %00000100, $00, $00 + macro_1ce32 $63, $5b, $a4, %10000000 | %00001000 | %00000100, $00, $00 + macro_1ce32 $63, $5b, $a5, %10000000 | %00001000 | %00000100, $00, $00 + macro_1ce32 $64, $5c, $a7, %10000000 | %00001000 | %00000100, $00, $00 + macro_1ce32 $64, $5c, $a8, %10000000 | %00001000 | %00000100, $0b, $00 + macro_1ce32 $64, $5c, $a9, %10000000 | %00001000 | %00000100, $0b, $00 + macro_1ce32 $64, $5c, $aa, %10000000 | %00000100, $00, $00 + macro_1ce32 $64, $5c, $ab, %10000000 | %00000100, $00, $00 + macro_1ce32 $65, $5d, $ac, %10000000 | %00000100, $00, $00 + macro_1ce32 $65, $5d, $ad, %10000000 | %00000100, $00, $00 + macro_1ce32 $65, $5d, $ae, %10000000 | %00000100, $00, $00 + macro_1ce32 $63, $5b, $a6, %10000000 | %00000100, $00, $00 +; 0x1d078 Func_1d078: ; 1d078 (7:5078) ld a, [wd627] diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index 14292f9..9594926 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -26,7 +26,7 @@ Func_80077: ; 80077 (20:4077) push bc push de call BCCoordToBGMap0Address - ld hl, wd4c2 + ld hl, wVRAMPointer ld [hl], e inc hl ld [hl], d @@ -66,9 +66,9 @@ Func_800bd: ; 800bd (20:40bd) ld d, a ld b, $c0 call Func_08bf - ld a, [wd4c2] + ld a, [wVRAMPointer] ld e, a - ld a, [wd4c3] + ld a, [wVRAMPointer + 1] ld d, a call Func_800e0 pop de @@ -311,36 +311,46 @@ LoadGraphicsPointerFromHL: ; 80229 (20:4229) INCROM $80238, $8025b +; loads graphics data from third map data pointers +; input: +; a = sprite index within the data map +; output: +; a = number of tiles in sprite Func_8025b: ; 8025b (20:425b) push hl ld l, $4 call GetMapDataPointer call LoadGraphicsPointerFromHL - ld a, [hl] + ld a, [hl] ; tile size push af - ld [wd4c8], a - ld a, $10 - ld [wd4c7], a - call Func_80274 + ld [wCurSpriteNumTiles], a + ld a, TILE_SIZE + ld [wCurSpriteTileSize], a + call LoadGfxDataFromTempPointerToVRAMBank pop af pop hl ret -Func_80274: ; 80274 (20:4274) - call Func_8029f - jr asm_8027c +; loads graphics data pointed by wTempPointer in wTempPointerBank +; to the VRAM bank according to wd4cb, in address pointed by wVRAMPointer +LoadGfxDataFromTempPointerToVRAMBank: ; 80274 (20:4274) + call GetTileOffsetPointerAndSwitchVRAM + jr LoadGfxDataFromTempPointer Func_80279: ; 80279 (20:4279) call Func_802bb -asm_8027c: + +; loads graphics data pointed by wTempPointer in wTempPointerBank +; to wVRAMPointer +LoadGfxDataFromTempPointer: push hl push bc push de - ld a, [wd4c8] + ld a, [wCurSpriteNumTiles] ld b, a - ld a, [wd4c7] + ld a, [wCurSpriteTileSize] ld c, a - ld hl, wd4c2 + ld hl, wVRAMPointer ld e, [hl] inc hl ld d, [hl] @@ -350,23 +360,30 @@ asm_8027c: ld l, a inc hl inc hl - call Func_395a + call CopyGfxDataFromTempBank call BankswitchVRAM0 pop de pop bc pop hl ret -Func_8029f: ; 8029f (20:429f) - ld a, [wd4ca] +; convert wVRAMTileOffset to address in VRAM +; and stores it in wVRAMPointer +; switches VRAM according to wd4cb +GetTileOffsetPointerAndSwitchVRAM: ; 8029f (20:429f) +; address of the tile offset is wVRAMTileOffset * $10 + $8000 + ld a, [wVRAMTileOffset] swap a push af and $f0 - ld [wd4c2], a + ld [wVRAMPointer], a pop af and $f - add $80 - ld [wd4c3], a + add HIGH(v0Tiles0) ; $80 + ld [wVRAMPointer + 1], a + +; if bottom bit in wd4cb is not set = VRAM0 +; if bottom bit in wd4cb is set = VRAM1 ld a, [wd4cb] and $1 call BankswitchVRAM @@ -377,10 +394,10 @@ Func_802bb: ; 802bb (20:42bb) push af xor $80 ld [wd4ca], a - call Func_8029f - ld a, [wd4c3] + call GetTileOffsetPointerAndSwitchVRAM + ld a, [wVRAMPointer + 1] add $8 - ld [wd4c3], a + ld [wVRAMPointer + 1], a pop af ld [wd4ca], a ret @@ -398,10 +415,145 @@ Func_803b9: ; 803b9 (20:43b9) ret ; 0x803c9 - INCROM $803c9, $80418 + INCROM $803c9, $803ec + +; copies from palette data in hl c bytes to palette index b +; in WRAM, starting from wBackgroundPalettesCGB +; b = palette index +; c = palette size +; hl = palette data to copy +LoadPaletteData: ; 803ec (20:43ec) + push hl + push bc + push de + ld a, b + cp NUM_BACKGROUND_PALETTES + NUM_OBJECT_PALETTES ; total palettes available + jr nc, .fail_return + + add a ; 2 * index + add a ; 4 * index + add a ; 8 * index + add LOW(wBackgroundPalettesCGB) + ld e, a + ld a, HIGH(wBackgroundPalettesCGB) + adc 0 + ld d, a + + ld a, c + cp $09 + jr nc, .fail_return + + add a ; 2 * size + add a ; 4 * size + add a ; 8 * size + ld c, a +.loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .loop + call FlushAllPalettes + jr .success_return + +.fail_return + debug_ret + +.success_return + pop de + pop bc + pop hl + ret +; 0x80418 Func_80418: ; 80418 (20:4418) - INCROM $80418, $80480 + push hl + push bc + push de + call CopyPaletteDataToBuffer + + ld hl, wd23e + ld a, [hli] ; number palettes + ld c, a + or a + jr z, .check_palette_size + + ld a, [wd4ca] + cp $01 + jr z, .obp1 + + ld a, [hli] ; pallete for OBP0 + push hl + push bc + call SetOBP0 + pop bc + pop hl + dec c + jr z, .check_palette_size + +.obp1 + ld a, [hli] + push hl + push bc + call SetOBP1 ; pallete for OBP1 + pop bc + pop hl + dec c + jr z, .check_palette_size + inc hl + +.check_palette_size + ld a, [hli] + or a + jr z, .done + +; non-zero size, so load it from data + ld c, a + ld a, [wd4cb] + ; ensure it's a palette index starting from wObjectPalettesCGB + or NUM_BACKGROUND_PALETTES + ld b, a + call LoadPaletteData + +.done + pop de + pop bc + pop hl + ret +; 0x80456 + +; copies palette data of index in a to wd23e +CopyPaletteDataToBuffer: ; 80456 (20:4456) + push hl + push bc + push de + ld l, $08 + call GetMapDataPointer + call LoadGraphicsPointerFromHL + +; size parameter + ld a, [hl] + ld b, a + and $0f + inc a + ld c, a + ld a, b + and $f0 + srl a + inc a + add c + ld c, a + ld b, $00 + + ld de, wd23e + call CopyBankedDataToDE + pop de + pop bc + pop hl + ret +; 0x8047b + + INCROM $8047b, $80480 Func_80480: ; 80480 (20:4480) INCROM $80480, $804d8 @@ -524,7 +676,6 @@ SpriteNullAnimationFrame: db 0 ; might be closer to "screen specific data" than map data -; data in each section is 4 bytes long. MapDataPointers: ; 80e5d (20:4e5d) dw MapDataPointers_80e67 dw MapDataPointers_8100f @@ -533,17 +684,699 @@ MapDataPointers: ; 80e5d (20:4e5d) dw MapDataPointers_81697 MapDataPointers_80e67: ; 80e67 (20:4e67) - INCROM $80e67, $8100f + db $1b, $59, $00, $00 + db $22, $5a, $00, $00 + db $13, $5c, $00, $01 + db $2e, $5d, $00, $01 + db $d1, $5e, $00, $01 + db $f5, $5e, $00, $01 + db $26, $5f, $00, $01 + db $eb, $5f, $00, $01 + db $43, $61, $00, $01 + db $50, $61, $00, $01 + db $60, $61, $00, $02 + db $22, $62, $00, $02 + db $36, $63, $00, $03 + db $00, $64, $00, $03 + db $1d, $65, $00, $03 + db $e7, $65, $00, $03 + db $04, $67, $00, $03 + db $ce, $67, $00, $03 + db $eb, $68, $00, $03 + db $b5, $69, $00, $03 + db $d2, $6a, $00, $03 + db $9c, $6b, $00, $03 + db $b9, $6c, $00, $03 + db $83, $6d, $00, $03 + db $a0, $6e, $00, $03 + db $6a, $6f, $00, $03 + db $87, $70, $00, $03 + db $51, $71, $00, $03 + db $6e, $72, $00, $03 + db $21, $73, $00, $03 + db $24, $74, $00, $04 + db $45, $75, $00, $04 + db $db, $76, $00, $05 + db $8c, $77, $00, $05 + db $8d, $78, $00, $06 + db $d6, $79, $00, $06 + db $00, $40, $01, $07 + db $88, $41, $01, $07 + db $bb, $43, $01, $08 + db $33, $45, $01, $08 + db $2e, $47, $01, $09 + db $d8, $48, $01, $09 + db $73, $4b, $01, $0a + db $6f, $4c, $01, $0a + db $fe, $4d, $01, $0b + db $1d, $4f, $01, $0b + db $b6, $50, $01, $0c + db $91, $51, $01, $0c + db $15, $53, $01, $0d + db $b3, $54, $01, $0d + db $0a, $57, $01, $0e + db $ce, $57, $01, $0e + db $f1, $7b, $00, $0e + db $03, $7c, $00, $0e + db $ef, $58, $01, $0f + db $79, $5a, $01, $0f + db $1a, $7c, $00, $0f + db $26, $7c, $00, $0f + db $e2, $5c, $01, $10 + db $f4, $5d, $01, $10 + db $7c, $5f, $01, $11 + db $7f, $60, $01, $11 + db $36, $7c, $00, $12 + db $7d, $61, $01, $12 + db $93, $61, $01, $12 + db $a9, $61, $01, $12 + db $bf, $61, $01, $12 + db $d5, $61, $01, $12 + db $eb, $61, $01, $12 + db $01, $62, $01, $12 + db $17, $62, $01, $13 + db $da, $62, $01, $13 + db $64, $63, $01, $13 + db $43, $64, $01, $13 + db $df, $64, $01, $14 + db $b5, $65, $01, $14 + db $47, $66, $01, $15 + db $b8, $66, $01, $16 + db $3e, $67, $01, $17 + db $af, $67, $01, $18 + db $33, $68, $01, $19 + db $a4, $68, $01, $1a + db $25, $69, $01, $1b + db $96, $69, $01, $1c + db $14, $6a, $01, $1d + db $85, $6a, $01, $1e + db $28, $6b, $01, $1f + db $99, $6b, $01, $20 + db $34, $6c, $01, $21 + db $a5, $6c, $01, $22 + db $37, $6d, $01, $23 + db $cc, $6d, $01, $24 + db $8a, $6e, $01, $25 + db $18, $6f, $01, $25 + db $c0, $6f, $01, $25 + db $4f, $70, $01, $26 + db $a5, $71, $01, $27 + db $97, $73, $01, $28 + db $b7, $73, $01, $29 + db $e5, $73, $01, $2a + db $13, $74, $01, $2b + db $38, $75, $01, $2c + db $9f, $76, $01, $2d + db $f6, $76, $01, $2d + db $7c, $77, $01, $2e + db $c4, $77, $01, $2f MapDataPointers_8100f: ; 8100f (20:500f) - INCROM $8100f, $8116b + db $00, $40, $02, $c1 + db $12, $4c, $02, $97 + db $28, $78, $01, $4d + db $84, $55, $02, $81 + db $96, $5d, $02, $78 + db $18, $65, $02, $63 + db $4a, $6b, $02, $3c + db $0c, $6f, $02, $a1 + db $00, $40, $03, $83 + db $1e, $79, $02, $57 + db $32, $48, $03, $3a + db $d4, $4b, $03, $52 + db $f6, $50, $03, $57 + db $68, $56, $03, $9d + db $3a, $60, $03, $4e + db $1c, $65, $03, $cf + db $0e, $72, $03, $79 + db $00, $40, $04, $bd + db $a0, $79, $03, $48 + db $d2, $4b, $04, $6d + db $a4, $52, $04, $5d + db $76, $58, $04, $60 + db $78, $5e, $04, $56 + db $da, $63, $04, $60 + db $dc, $69, $04, $56 + db $3e, $6f, $04, $60 + db $40, $75, $04, $56 + db $00, $40, $05, $60 + db $02, $46, $05, $56 + db $64, $4b, $05, $60 + db $66, $51, $05, $60 + db $68, $57, $05, $60 + db $6a, $5d, $05, $60 + db $6c, $63, $05, $60 + db $6e, $69, $05, $60 + db $70, $6f, $05, $61 + db $82, $75, $05, $61 + db $fa, $7c, $01, $04 + db $00, $40, $06, $f4 + db $42, $4f, $06, $3b + db $3c, $7d, $01, $04 + db $7e, $7d, $01, $24 + db $a2, $7a, $04, $24 + db $f4, $62, $06, $dc + db $b6, $70, $06, $d4 + db $e4, $7c, $04, $24 + db $22, $7e, $03, $18 + db $94, $7b, $05, $31 + db $00, $40, $07, $24 + db $42, $42, $07, $24 + db $84, $44, $07, $24 + db $c6, $46, $07, $24 + db $08, $49, $07, $24 + db $4a, $4b, $07, $24 + db $8c, $4d, $07, $24 + db $ce, $4f, $07, $24 + db $10, $52, $07, $24 + db $52, $54, $07, $24 + db $94, $56, $07, $24 + db $d6, $58, $07, $24 + db $18, $5b, $07, $24 + db $5a, $5d, $07, $24 + db $9c, $5f, $07, $24 + db $de, $61, $07, $24 + db $20, $64, $07, $24 + db $62, $66, $07, $24 + db $a4, $68, $07, $24 + db $e6, $6a, $07, $24 + db $28, $6d, $07, $24 + db $6a, $6f, $07, $24 + db $ac, $71, $07, $24 + db $ee, $73, $07, $24 + db $30, $76, $07, $24 + db $72, $78, $07, $24 + db $b4, $7a, $07, $24 + db $f6, $7c, $07, $24 + db $00, $40, $08, $24 + db $42, $42, $08, $24 + db $84, $44, $08, $24 + db $c6, $46, $08, $24 + db $08, $49, $08, $24 + db $4a, $4b, $08, $24 + db $8c, $4d, $08, $24 + db $ce, $4f, $08, $24 + db $10, $52, $08, $24 + db $52, $54, $08, $24 + db $94, $56, $08, $24 MapDataPointers_8116b: ; 8116b (20:516b) - INCROM $8116b, $81333 + db $90, $7e, $02, $14 + db $a6, $7e, $05, $14 + db $f8, $7d, $06, $14 + db $d6, $58, $08, $14 + db $18, $5a, $08, $14 + db $5a, $5b, $08, $14 + db $9c, $5c, $08, $14 + db $de, $5d, $08, $14 + db $20, $5f, $08, $1b + db $d2, $60, $08, $14 + db $14, $62, $08, $14 + db $56, $63, $08, $14 + db $98, $64, $08, $14 + db $da, $65, $08, $14 + db $1c, $67, $08, $14 + db $5e, $68, $08, $14 + db $a0, $69, $08, $14 + db $e2, $6a, $08, $14 + db $24, $6c, $08, $14 + db $66, $6d, $08, $14 + db $a8, $6e, $08, $14 + db $ea, $6f, $08, $14 + db $2c, $71, $08, $14 + db $6e, $72, $08, $14 + db $b0, $73, $08, $14 + db $f2, $74, $08, $14 + db $34, $76, $08, $14 + db $76, $77, $08, $14 + db $b8, $78, $08, $14 + db $fa, $79, $08, $14 + db $3c, $7b, $08, $14 + db $7e, $7c, $08, $14 + db $c0, $7d, $08, $14 + db $26, $7f, $04, $08 + db $00, $40, $09, $14 + db $42, $41, $09, $14 + db $84, $42, $09, $14 + db $3a, $7f, $06, $08 + db $c6, $43, $09, $16 + db $38, $7f, $07, $0a + db $02, $7f, $08, $0b + db $28, $45, $09, $06 + db $8a, $45, $09, $08 + db $c0, $7f, $01, $02 + db $a4, $7f, $03, $04 + db $0c, $46, $09, $09 + db $9e, $46, $09, $12 + db $c0, $47, $09, $09 + db $52, $48, $09, $11 + db $a8, $7f, $04, $03 + db $64, $49, $09, $2d + db $36, $4c, $09, $0d + db $08, $4d, $09, $1c + db $ca, $4e, $09, $4c + db $bc, $7f, $06, $03 + db $8c, $53, $09, $1b + db $3e, $55, $09, $07 + db $b0, $55, $09, $0c + db $ee, $7f, $06, $01 + db $72, $56, $09, $22 + db $94, $58, $09, $20 + db $96, $5a, $09, $0a + db $38, $5b, $09, $25 + db $8a, $5d, $09, $18 + db $0c, $5f, $09, $1b + db $be, $60, $09, $08 + db $40, $61, $09, $0d + db $12, $62, $09, $22 + db $34, $64, $09, $0c + db $f6, $64, $09, $25 + db $48, $67, $09, $22 + db $6a, $69, $09, $0c + db $2c, $6a, $09, $4c + db $ee, $6e, $09, $08 + db $70, $6f, $09, $07 + db $e2, $7f, $01, $01 + db $e2, $6f, $09, $1a + db $84, $71, $09, $0a + db $26, $72, $09, $2e + db $08, $75, $09, $08 + db $8a, $75, $09, $07 + db $fc, $75, $09, $1c + db $b4, $7f, $08, $04 + db $be, $77, $09, $08 + db $40, $78, $09, $0b + db $d2, $7f, $02, $01 + db $f2, $78, $09, $1c + db $b4, $7a, $09, $16 + db $16, $7c, $09, $10 + db $18, $7d, $09, $0f + db $0a, $7e, $09, $07 + db $7c, $7e, $09, $0a + db $1e, $7f, $09, $09 + db $da, $7f, $04, $02 + db $da, $7f, $07, $02 + db $b0, $7f, $09, $03 + db $00, $40, $0a, $08 + db $82, $40, $0a, $0f + db $74, $41, $0a, $03 + db $a6, $41, $0a, $05 + db $f8, $41, $0a, $17 + db $6a, $43, $0a, $36 + db $cc, $46, $0a, $0b + db $7e, $47, $0a, $06 + db $e0, $47, $0a, $16 + db $42, $49, $0a, $20 + db $44, $4b, $0a, $14 + db $86, $4c, $0a, $04 + db $c8, $4c, $0a, $04 + db $0a, $4d, $0a, $04 + db $4c, $4d, $0a, $04 + db $8e, $4d, $0a, $04 + db $d0, $4d, $0a, $04 + db $12, $4e, $0a, $04 ; pointer low, pointer high, bank (minus $20), unknown SpriteAnimationPointers: ; 81333 (20:5333) - INCROM $81333, $81697 + db $54, $4e, $0a, $00 + db $4c, $7c, $00, $00 + db $e4, $7f, $02, $00 + db $e6, $7f, $03, $00 + db $29, $4f, $0a, $00 + db $e8, $7f, $05, $00 + db $e2, $7f, $09, $00 + db $fe, $4f, $0a, $00 + db $0d, $50, $0a, $00 + db $64, $50, $0a, $00 + db $7b, $50, $0a, $00 + db $f5, $7f, $03, $00 + db $f4, $7f, $01, $00 + db $d2, $50, $0a, $00 + db $dd, $50, $0a, $00 + db $b2, $51, $0a, $00 + db $c1, $51, $0a, $00 + db $d8, $51, $0a, $00 + db $e7, $51, $0a, $00 + db $bc, $52, $0a, $00 + db $cb, $52, $0a, $00 + db $e2, $52, $0a, $00 + db $f1, $52, $0a, $00 + db $c6, $53, $0a, $00 + db $d5, $53, $0a, $00 + db $ec, $53, $0a, $00 + db $fb, $53, $0a, $00 + db $d0, $54, $0a, $00 + db $df, $54, $0a, $00 + db $f6, $54, $0a, $00 + db $05, $55, $0a, $00 + db $da, $55, $0a, $00 + db $e9, $55, $0a, $00 + db $00, $56, $0a, $00 + db $0f, $56, $0a, $00 + db $e4, $56, $0a, $00 + db $f3, $56, $0a, $00 + db $0a, $57, $0a, $00 + db $19, $57, $0a, $00 + db $ee, $57, $0a, $00 + db $fd, $57, $0a, $00 + db $14, $58, $0a, $00 + db $23, $58, $0a, $00 + db $f8, $58, $0a, $00 + db $07, $59, $0a, $00 + db $1e, $59, $0a, $00 + db $2d, $59, $0a, $00 + db $84, $59, $0a, $00 + db $9b, $59, $0a, $00 + db $f2, $59, $0a, $00 + db $fd, $59, $0a, $00 + db $08, $5a, $0a, $00 + db $13, $5a, $0a, $00 + db $71, $5a, $0a, $00 + db $80, $5a, $0a, $00 + db $8f, $5a, $0a, $00 + db $ed, $5a, $0a, $00 + db $fc, $5a, $0a, $00 + db $0b, $5b, $0a, $00 + db $6e, $5b, $0a, $00 + db $13, $5d, $0a, $00 + db $6a, $5d, $0a, $00 + db $c1, $5d, $0a, $00 + db $18, $5e, $0a, $00 + db $6f, $5e, $0a, $00 + db $c6, $5e, $0a, $00 + db $6b, $60, $0a, $00 + db $c2, $60, $0a, $00 + db $19, $61, $0a, $00 + db $70, $61, $0a, $00 + db $c7, $61, $0a, $00 + db $1e, $62, $0a, $00 + db $06, $63, $0a, $00 + db $e7, $63, $0a, $00 + db $d5, $64, $0a, $00 + db $18, $66, $0a, $00 + db $0f, $67, $0a, $00 + db $9b, $68, $0a, $00 + db $ba, $68, $0a, $00 + db $e1, $68, $0a, $00 + db $d7, $69, $0a, $00 + db $5e, $6a, $0a, $00 + db $e5, $6a, $0a, $00 + db $6c, $6b, $0a, $00 + db $f3, $6b, $0a, $00 + db $7a, $6c, $0a, $00 + db $01, $6d, $0a, $00 + db $88, $6d, $0a, $00 + db $0f, $6e, $0a, $00 + db $96, $6e, $0a, $00 + db $1d, $6f, $0a, $00 + db $a4, $6f, $0a, $00 + db $2b, $70, $0a, $00 + db $fb, $70, $0a, $00 + db $06, $71, $0a, $00 + db $bb, $72, $0a, $00 + db $05, $74, $0a, $00 + db $6e, $76, $0a, $00 + db $c1, $79, $0a, $00 + db $0c, $7a, $0a, $00 + db $00, $40, $0b, $00 + db $cf, $7b, $0a, $00 + db $fe, $7b, $0a, $00 + db $11, $7c, $0a, $00 + db $78, $7c, $0a, $00 + db $eb, $7c, $0a, $00 + db $a6, $7e, $0a, $00 + db $03, $48, $0b, $00 + db $16, $4a, $0b, $00 + db $4c, $4b, $0b, $00 + db $b6, $50, $0b, $00 + db $64, $53, $0b, $00 + db $c1, $54, $0b, $00 + db $29, $58, $0b, $00 + db $eb, $5a, $0b, $00 + db $c5, $5d, $0b, $00 + db $0c, $5e, $0b, $00 + db $ee, $5f, $0b, $00 + db $59, $60, $0b, $00 + db $d4, $60, $0b, $00 + db $bb, $62, $0b, $00 + db $86, $65, $0b, $00 + db $d9, $65, $0b, $00 + db $7f, $67, $0b, $00 + db $db, $6d, $0b, $00 + db $f0, $6f, $0b, $00 + db $1b, $71, $0b, $00 + db $36, $73, $0b, $00 + db $29, $78, $0b, $00 + db $9f, $79, $0b, $00 + db $8e, $7e, $0b, $00 + db $00, $40, $0c, $00 + db $b4, $41, $0c, $00 + db $b6, $45, $0c, $00 + db $d5, $49, $0c, $00 + db $7b, $4c, $0c, $00 + db $c6, $4d, $0c, $00 + db $fd, $4e, $0c, $00 + db $e2, $4f, $0c, $00 + db $45, $51, $0c, $00 + db $21, $54, $0c, $00 + db $01, $57, $0c, $00 + db $a0, $5a, $0c, $00 + db $bc, $5c, $0c, $00 + db $b1, $5d, $0c, $00 + db $51, $5e, $0c, $00 + db $d4, $5e, $0c, $00 + db $7c, $60, $0c, $00 + db $e3, $62, $0c, $00 + db $ec, $7f, $0a, $00 + db $c1, $7f, $0b, $00 + db $d2, $64, $0c, $00 + db $f4, $65, $0c, $00 + db $63, $66, $0c, $00 + db $17, $67, $0c, $00 + db $7f, $67, $0c, $00 + db $63, $69, $0c, $00 + db $ea, $69, $0c, $00 + db $e7, $6d, $0c, $00 + db $f3, $73, $0c, $00 + db $1e, $74, $0c, $00 + db $49, $74, $0c, $00 + db $dc, $7f, $0b, $00 + db $74, $74, $0c, $00 + db $97, $74, $0c, $00 + db $ba, $74, $0c, $00 + db $f3, $7f, $0b, $00 + db $dd, $74, $0c, $00 + db $cd, $75, $0c, $00 + db $5c, $76, $0c, $00 + db $eb, $76, $0c, $00 + db $f6, $76, $0c, $00 + db $01, $77, $0c, $00 + db $e9, $78, $0c, $00 + db $f8, $78, $0c, $00 + db $07, $79, $0c, $00 + db $34, $7d, $0c, $00 + db $c3, $7d, $0c, $00 + db $00, $40, $0d, $00 + db $d2, $7d, $0c, $00 + db $61, $7e, $0c, $00 + db $2d, $44, $0d, $00 + db $70, $7e, $0c, $00 + db $41, $4a, $0d, $00 + db $7f, $7e, $0c, $00 + db $55, $50, $0d, $00 + db $8e, $7e, $0c, $00 + db $6f, $52, $0d, $00 + db $9d, $7e, $0c, $00 + db $ac, $7e, $0c, $00 + db $3e, $7f, $0c, $00 + db $89, $54, $0d, $00 + db $eb, $54, $0d, $00 + db $69, $56, $0d, $00 + db $d4, $57, $0d, $00 + db $ca, $59, $0d, $00 + db $a0, $7f, $0c, $00 + db $91, $5a, $0d, $00 + db $cf, $5c, $0d, $00 + db $d2, $5d, $0d, $00 + db $f5, $5d, $0d, $00 + db $0b, $60, $0d, $00 + db $d2, $60, $0d, $00 + db $1d, $61, $0d, $00 + db $ab, $62, $0d, $00 + db $d6, $63, $0d, $00 + db $09, $64, $0d, $00 + db $b7, $65, $0d, $00 + db $e2, $66, $0d, $00 + db $15, $67, $0d, $00 + db $33, $69, $0d, $00 + db $36, $6a, $0d, $00 + db $59, $6a, $0d, $00 + db $e7, $6b, $0d, $00 + db $ae, $6c, $0d, $00 + db $31, $6d, $0d, $00 + db $67, $70, $0d, $00 MapDataPointers_81697: ; 81697 (20:5697) - INCROM $81697, $84000 + db $8a, $73, $0d, $81 + db $cd, $73, $0d, $80 + db $0f, $74, $0d, $80 + db $51, $74, $0d, $80 + db $93, $74, $0d, $80 + db $d5, $74, $0d, $80 + db $17, $75, $0d, $80 + db $59, $75, $0d, $80 + db $9b, $75, $0d, $80 + db $dd, $75, $0d, $80 + db $1f, $76, $0d, $80 + db $61, $76, $0d, $80 + db $a3, $76, $0d, $80 + db $e5, $76, $0d, $80 + db $27, $77, $0d, $80 + db $69, $77, $0d, $80 + db $ab, $77, $0d, $80 + db $ed, $77, $0d, $80 + db $2f, $78, $0d, $80 + db $71, $78, $0d, $80 + db $b3, $78, $0d, $80 + db $f5, $78, $0d, $80 + db $37, $79, $0d, $80 + db $79, $79, $0d, $80 + db $bb, $79, $0d, $80 + db $fd, $79, $0d, $80 + db $3f, $7a, $0d, $80 + db $81, $7a, $0d, $80 + db $c3, $7a, $0d, $80 + db $05, $7b, $0d, $82 + db $49, $7b, $0d, $82 + db $eb, $7f, $0c, $11 + db $8d, $7b, $0d, $11 + db $98, $7b, $0d, $11 + db $a3, $7b, $0d, $11 + db $ae, $7b, $0d, $11 + db $b9, $7b, $0d, $11 + db $c4, $7b, $0d, $11 + db $cf, $7b, $0d, $11 + db $da, $7b, $0d, $11 + db $e5, $7b, $0d, $11 + db $f0, $7b, $0d, $11 + db $fb, $7b, $0d, $11 + db $06, $7c, $0d, $11 + db $11, $7c, $0d, $11 + db $1c, $7c, $0d, $11 + db $27, $7c, $0d, $11 + db $32, $7c, $0d, $11 + db $3d, $7c, $0d, $11 + db $48, $7c, $0d, $11 + db $53, $7c, $0d, $11 + db $5e, $7c, $0d, $11 + db $69, $7c, $0d, $11 + db $74, $7c, $0d, $11 + db $7f, $7c, $0d, $11 + db $8a, $7c, $0d, $11 + db $95, $7c, $0d, $11 + db $a0, $7c, $0d, $11 + db $ab, $7c, $0d, $11 + db $b6, $7c, $0d, $11 + db $c1, $7c, $0d, $11 + db $cc, $7c, $0d, $11 + db $d7, $7c, $0d, $11 + db $e2, $7c, $0d, $11 + db $ed, $7c, $0d, $11 + db $f8, $7c, $0d, $11 + db $03, $7d, $0d, $11 + db $0e, $7d, $0d, $11 + db $19, $7d, $0d, $11 + db $24, $7d, $0d, $11 + db $2f, $7d, $0d, $11 + db $3a, $7d, $0d, $11 + db $45, $7d, $0d, $11 + db $50, $7d, $0d, $11 + db $5b, $7d, $0d, $11 + db $66, $7d, $0d, $11 + db $71, $7d, $0d, $11 + db $7c, $7d, $0d, $11 + db $87, $7d, $0d, $11 + db $92, $7d, $0d, $11 + db $9d, $7d, $0d, $11 + db $a8, $7d, $0d, $11 + db $b3, $7d, $0d, $11 + db $be, $7d, $0d, $11 + db $c9, $7d, $0d, $11 + db $d4, $7d, $0d, $11 + db $df, $7d, $0d, $11 + db $ea, $7d, $0d, $11 + db $f5, $7d, $0d, $11 + db $00, $7e, $0d, $11 + db $0b, $7e, $0d, $11 + db $16, $7e, $0d, $11 + db $21, $7e, $0d, $11 + db $2c, $7e, $0d, $11 + db $37, $7e, $0d, $80 + db $79, $7e, $0d, $80 + db $bb, $7e, $0d, $80 + db $fd, $7e, $0d, $80 + db $3f, $7f, $0d, $80 + db $81, $7f, $0d, $80 + db $00, $40, $0e, $80 + db $c3, $7f, $0d, $70 + db $42, $40, $0e, $70 + db $7c, $40, $0e, $70 + db $b6, $40, $0e, $70 + db $f0, $40, $0e, $70 + db $2a, $41, $0e, $70 + db $64, $41, $0e, $70 + db $fd, $7f, $0d, $01 + db $fb, $7f, $02, $01 + db $5b, $7c, $00, $00 + db $9e, $41, $0e, $81 + db $e1, $41, $0e, $81 + db $24, $42, $0e, $81 + db $67, $42, $0e, $42 + db $8b, $42, $0e, $42 + db $af, $42, $0e, $42 + db $f6, $7f, $08, $10 + db $d3, $42, $0e, $60 + db $f6, $7f, $0c, $10 + db $05, $43, $0e, $10 + db $0f, $43, $0e, $10 + db $19, $43, $0e, $10 + db $23, $43, $0e, $10 + db $2d, $43, $0e, $10 + db $37, $43, $0e, $10 + db $41, $43, $0e, $10 + db $4b, $43, $0e, $10 + db $55, $43, $0e, $10 + db $5f, $43, $0e, $10 + db $69, $43, $0e, $10 + db $73, $43, $0e, $10 + db $7d, $43, $0e, $10 + db $87, $43, $0e, $10 + db $91, $43, $0e, $10 + db $9b, $43, $0e, $10 + db $a5, $43, $0e, $10 + db $af, $43, $0e, $10 + db $b9, $43, $0e, $10 + db $c3, $43, $0e, $10 + db $cd, $43, $0e, $10 + db $d7, $43, $0e, $10 + db $e1, $43, $0e, $10 + db $eb, $43, $0e, $10 + db $f5, $43, $0e, $10 + db $ff, $43, $0e, $10 + db $09, $44, $0e, $10 + db $13, $44, $0e, $10 + db $1d, $44, $0e, $10 + db $27, $44, $0e, $10 + db $31, $44, $0e, $10 + db $3b, $44, $0e, $10 + db $45, $44, $0e, $10 + db $4f, $44, $0e, $10 + db $59, $44, $0e, $10 + db $63, $44, $0e, $10 + db $6d, $44, $0e, $10 + db $77, $44, $0e, $10 + db $81, $44, $0e, $10 + db $8b, $44, $0e, $10 + db $95, $44, $0e, $10 + + INCROM $8191b, $84000 diff --git a/src/engine/home.asm b/src/engine/home.asm index a5125c4..ac9e9c0 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -10739,7 +10739,8 @@ GetPermissionByteOfMapPosition: ; 3946 (0:3946) pop bc ret -Func_395a: ; 395a (0:395a) +; copy c bytes of data from hl in bank wTempPointerBank to de, b times. +CopyGfxDataFromTempBank: ; 395a (0:395a) ldh a, [hBankROM] push af ld a, [wTempPointerBank] @@ -11072,7 +11073,6 @@ Func_3b21: ; 3b21 (0:3b21) ld a, BANK(Func_1c8bc) call BankswitchROM call Func_1c8bc - pop af call BankswitchROM ret @@ -11115,32 +11115,39 @@ CheckAnyAnimationPlaying: ; 3b52 (0:3b52) pop hl ret +; input: +; - a = animation index Func_3b6a: ; 3b6a (0:3b6a) ld [wTempAnimation], a ; hold an animation temporarily ldh a, [hBankROM] push af ld [wd4be], a + push hl push bc push de - ld a, $07 + ld a, BANK(Func_1ca31) call BankswitchROM ld a, [wTempAnimation] cp $61 jr nc, .asm_3b90 + ld hl, wd4ad ld a, [wd4ac] cp [hl] jr nz, .asm_3b90 call CheckAnyAnimationPlaying jr nc, .asm_3b95 + .asm_3b90 - call $4a31 - jr .asm_3b9a + call Func_1ca31 + jr .done + .asm_3b95 - call $48ef - jr .asm_3b9a -.asm_3b9a + call Func_1c8ef + jr .done + +.done pop de pop bc pop hl @@ -11151,9 +11158,9 @@ Func_3b6a: ; 3b6a (0:3b6a) Func_3ba2: ; 3ba2 (0:3ba2) ldh a, [hBankROM] push af - ld a, $07 + ld a, BANK(Func_1cac5) call BankswitchROM - call $4ac5 + call Func_1cac5 call Func_3cb4 pop af call BankswitchROM @@ -11535,6 +11542,8 @@ GetAnimationFramePointer: ; 3d72 (0:3d72) call BankswitchROM ret +; return hl pointing to the start of a sprite in wSpriteAnimBuffer. +; the sprite is identified by its index in wWhichSprite. GetFirstSpriteAnimBufferProperty: ; 3db7 (0:3db7) push bc ld c, SPRITE_ANIM_ENABLED -- cgit v1.2.3 From 0670b743021a398689328ef886ccfe3b9d06693b Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Wed, 23 Dec 2020 14:34:11 +0000 Subject: Extract Palette data --- src/engine/bank07.asm | 14 ++- src/engine/bank20.asm | 340 ++++++++++++++++++++++++++------------------------ 2 files changed, 186 insertions(+), 168 deletions(-) (limited to 'src/engine') diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index a8fe73a..7e1b16a 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -1281,11 +1281,11 @@ Func_1ccbc: ; 1ccbc (7:4cbc) INCROM $1ccd4, $1cce4 Func_1cce4: ; 1cce4 (7:4ce4) - ld hl, $4d55 + ld hl, Data_1cd55 jr Func_1ccee Func_1cce9: ; 1cce9 (7:4ce9) - ld hl, $4d61 + ld hl, Data_1cd61 jr Func_1ccee Func_1ccee: ; 1ccee (7:4cee) @@ -1311,11 +1311,11 @@ Func_1ccee: ; 1ccee (7:4cee) ; 0x1cd10 Func_1cd10: ; 1cd10 (7:4d10) - ld hl, $4d55 + ld hl, Data_1cd55 jr Func_1cd1a Func_1cd15: ; 1cd15 (7:4d15) - ld hl, $4d61 + ld hl, Data_1cd61 jr Func_1cd1a Func_1cd1a: ; 1cd1a (7:4d1a) @@ -1359,7 +1359,11 @@ Func_1cd3c: ; 1cd3c (7:4d3c) ret ; 0x1cd55 - INCROM $1cd55, $1cd71 +Data_1cd55: ; 1cd55 (7:4d55) + db $15, $02, $11, $fe, $0d, $02, $09, $fe, $05, $01, $01, $ff + +Data_1cd61: ; 1cd61 (7:4d61) + db $1d, $04, $19, $fc, $15, $04, $11, $fc, $0d, $03, $09, $fd, $05, $02, $01, $fe Func_1cd71: ; 1cd71 (7:4d71) ld hl, wd4bb diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index 9594926..bcb1e26 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -417,7 +417,7 @@ Func_803b9: ; 803b9 (20:43b9) INCROM $803c9, $803ec -; copies from palette data in hl c bytes to palette index b +; copies from palette data in hl c*8 bytes to palette index b ; in WRAM, starting from wBackgroundPalettesCGB ; b = palette index ; c = palette size @@ -1216,167 +1216,181 @@ SpriteAnimationPointers: ; 81333 (20:5333) db $31, $6d, $0d, $00 db $67, $70, $0d, $00 +; \1 = palette pointer +; \2 = number of palettes +; \3 = number of OBJ colors +palette_pointer: MACRO + dw \1 + db BANK(\1) - BANK(MapDataPointers_81697) + db (\2 << 4) + \3 +ENDM + MapDataPointers_81697: ; 81697 (20:5697) - db $8a, $73, $0d, $81 - db $cd, $73, $0d, $80 - db $0f, $74, $0d, $80 - db $51, $74, $0d, $80 - db $93, $74, $0d, $80 - db $d5, $74, $0d, $80 - db $17, $75, $0d, $80 - db $59, $75, $0d, $80 - db $9b, $75, $0d, $80 - db $dd, $75, $0d, $80 - db $1f, $76, $0d, $80 - db $61, $76, $0d, $80 - db $a3, $76, $0d, $80 - db $e5, $76, $0d, $80 - db $27, $77, $0d, $80 - db $69, $77, $0d, $80 - db $ab, $77, $0d, $80 - db $ed, $77, $0d, $80 - db $2f, $78, $0d, $80 - db $71, $78, $0d, $80 - db $b3, $78, $0d, $80 - db $f5, $78, $0d, $80 - db $37, $79, $0d, $80 - db $79, $79, $0d, $80 - db $bb, $79, $0d, $80 - db $fd, $79, $0d, $80 - db $3f, $7a, $0d, $80 - db $81, $7a, $0d, $80 - db $c3, $7a, $0d, $80 - db $05, $7b, $0d, $82 - db $49, $7b, $0d, $82 - db $eb, $7f, $0c, $11 - db $8d, $7b, $0d, $11 - db $98, $7b, $0d, $11 - db $a3, $7b, $0d, $11 - db $ae, $7b, $0d, $11 - db $b9, $7b, $0d, $11 - db $c4, $7b, $0d, $11 - db $cf, $7b, $0d, $11 - db $da, $7b, $0d, $11 - db $e5, $7b, $0d, $11 - db $f0, $7b, $0d, $11 - db $fb, $7b, $0d, $11 - db $06, $7c, $0d, $11 - db $11, $7c, $0d, $11 - db $1c, $7c, $0d, $11 - db $27, $7c, $0d, $11 - db $32, $7c, $0d, $11 - db $3d, $7c, $0d, $11 - db $48, $7c, $0d, $11 - db $53, $7c, $0d, $11 - db $5e, $7c, $0d, $11 - db $69, $7c, $0d, $11 - db $74, $7c, $0d, $11 - db $7f, $7c, $0d, $11 - db $8a, $7c, $0d, $11 - db $95, $7c, $0d, $11 - db $a0, $7c, $0d, $11 - db $ab, $7c, $0d, $11 - db $b6, $7c, $0d, $11 - db $c1, $7c, $0d, $11 - db $cc, $7c, $0d, $11 - db $d7, $7c, $0d, $11 - db $e2, $7c, $0d, $11 - db $ed, $7c, $0d, $11 - db $f8, $7c, $0d, $11 - db $03, $7d, $0d, $11 - db $0e, $7d, $0d, $11 - db $19, $7d, $0d, $11 - db $24, $7d, $0d, $11 - db $2f, $7d, $0d, $11 - db $3a, $7d, $0d, $11 - db $45, $7d, $0d, $11 - db $50, $7d, $0d, $11 - db $5b, $7d, $0d, $11 - db $66, $7d, $0d, $11 - db $71, $7d, $0d, $11 - db $7c, $7d, $0d, $11 - db $87, $7d, $0d, $11 - db $92, $7d, $0d, $11 - db $9d, $7d, $0d, $11 - db $a8, $7d, $0d, $11 - db $b3, $7d, $0d, $11 - db $be, $7d, $0d, $11 - db $c9, $7d, $0d, $11 - db $d4, $7d, $0d, $11 - db $df, $7d, $0d, $11 - db $ea, $7d, $0d, $11 - db $f5, $7d, $0d, $11 - db $00, $7e, $0d, $11 - db $0b, $7e, $0d, $11 - db $16, $7e, $0d, $11 - db $21, $7e, $0d, $11 - db $2c, $7e, $0d, $11 - db $37, $7e, $0d, $80 - db $79, $7e, $0d, $80 - db $bb, $7e, $0d, $80 - db $fd, $7e, $0d, $80 - db $3f, $7f, $0d, $80 - db $81, $7f, $0d, $80 - db $00, $40, $0e, $80 - db $c3, $7f, $0d, $70 - db $42, $40, $0e, $70 - db $7c, $40, $0e, $70 - db $b6, $40, $0e, $70 - db $f0, $40, $0e, $70 - db $2a, $41, $0e, $70 - db $64, $41, $0e, $70 - db $fd, $7f, $0d, $01 - db $fb, $7f, $02, $01 - db $5b, $7c, $00, $00 - db $9e, $41, $0e, $81 - db $e1, $41, $0e, $81 - db $24, $42, $0e, $81 - db $67, $42, $0e, $42 - db $8b, $42, $0e, $42 - db $af, $42, $0e, $42 - db $f6, $7f, $08, $10 - db $d3, $42, $0e, $60 - db $f6, $7f, $0c, $10 - db $05, $43, $0e, $10 - db $0f, $43, $0e, $10 - db $19, $43, $0e, $10 - db $23, $43, $0e, $10 - db $2d, $43, $0e, $10 - db $37, $43, $0e, $10 - db $41, $43, $0e, $10 - db $4b, $43, $0e, $10 - db $55, $43, $0e, $10 - db $5f, $43, $0e, $10 - db $69, $43, $0e, $10 - db $73, $43, $0e, $10 - db $7d, $43, $0e, $10 - db $87, $43, $0e, $10 - db $91, $43, $0e, $10 - db $9b, $43, $0e, $10 - db $a5, $43, $0e, $10 - db $af, $43, $0e, $10 - db $b9, $43, $0e, $10 - db $c3, $43, $0e, $10 - db $cd, $43, $0e, $10 - db $d7, $43, $0e, $10 - db $e1, $43, $0e, $10 - db $eb, $43, $0e, $10 - db $f5, $43, $0e, $10 - db $ff, $43, $0e, $10 - db $09, $44, $0e, $10 - db $13, $44, $0e, $10 - db $1d, $44, $0e, $10 - db $27, $44, $0e, $10 - db $31, $44, $0e, $10 - db $3b, $44, $0e, $10 - db $45, $44, $0e, $10 - db $4f, $44, $0e, $10 - db $59, $44, $0e, $10 - db $63, $44, $0e, $10 - db $6d, $44, $0e, $10 - db $77, $44, $0e, $10 - db $81, $44, $0e, $10 - db $8b, $44, $0e, $10 - db $95, $44, $0e, $10 + palette_pointer Palette0, 8, 1 + palette_pointer Palette1, 8, 0 + palette_pointer Palette2, 8, 0 + palette_pointer Palette3, 8, 0 + palette_pointer Palette4, 8, 0 + palette_pointer Palette5, 8, 0 + palette_pointer Palette6, 8, 0 + palette_pointer Palette7, 8, 0 + palette_pointer Palette8, 8, 0 + palette_pointer Palette9, 8, 0 + palette_pointer Palette10, 8, 0 + palette_pointer Palette11, 8, 0 + palette_pointer Palette12, 8, 0 + palette_pointer Palette13, 8, 0 + palette_pointer Palette14, 8, 0 + palette_pointer Palette15, 8, 0 + palette_pointer Palette16, 8, 0 + palette_pointer Palette17, 8, 0 + palette_pointer Palette18, 8, 0 + palette_pointer Palette19, 8, 0 + palette_pointer Palette20, 8, 0 + palette_pointer Palette21, 8, 0 + palette_pointer Palette22, 8, 0 + palette_pointer Palette23, 8, 0 + palette_pointer Palette24, 8, 0 + palette_pointer Palette25, 8, 0 + palette_pointer Palette26, 8, 0 + palette_pointer Palette27, 8, 0 + palette_pointer Palette28, 8, 0 + palette_pointer Palette29, 8, 2 + palette_pointer Palette30, 8, 2 + palette_pointer Palette31, 1, 1 + palette_pointer Palette32, 1, 1 + palette_pointer Palette33, 1, 1 + palette_pointer Palette34, 1, 1 + palette_pointer Palette35, 1, 1 + palette_pointer Palette36, 1, 1 + palette_pointer Palette37, 1, 1 + palette_pointer Palette38, 1, 1 + palette_pointer Palette39, 1, 1 + palette_pointer Palette40, 1, 1 + palette_pointer Palette41, 1, 1 + palette_pointer Palette42, 1, 1 + palette_pointer Palette43, 1, 1 + palette_pointer Palette44, 1, 1 + palette_pointer Palette45, 1, 1 + palette_pointer Palette46, 1, 1 + palette_pointer Palette47, 1, 1 + palette_pointer Palette48, 1, 1 + palette_pointer Palette49, 1, 1 + palette_pointer Palette50, 1, 1 + palette_pointer Palette51, 1, 1 + palette_pointer Palette52, 1, 1 + palette_pointer Palette53, 1, 1 + palette_pointer Palette54, 1, 1 + palette_pointer Palette55, 1, 1 + palette_pointer Palette56, 1, 1 + palette_pointer Palette57, 1, 1 + palette_pointer Palette58, 1, 1 + palette_pointer Palette59, 1, 1 + palette_pointer Palette60, 1, 1 + palette_pointer Palette61, 1, 1 + palette_pointer Palette62, 1, 1 + palette_pointer Palette63, 1, 1 + palette_pointer Palette64, 1, 1 + palette_pointer Palette65, 1, 1 + palette_pointer Palette66, 1, 1 + palette_pointer Palette67, 1, 1 + palette_pointer Palette68, 1, 1 + palette_pointer Palette69, 1, 1 + palette_pointer Palette70, 1, 1 + palette_pointer Palette71, 1, 1 + palette_pointer Palette72, 1, 1 + palette_pointer Palette73, 1, 1 + palette_pointer Palette74, 1, 1 + palette_pointer Palette75, 1, 1 + palette_pointer Palette76, 1, 1 + palette_pointer Palette77, 1, 1 + palette_pointer Palette78, 1, 1 + palette_pointer Palette79, 1, 1 + palette_pointer Palette80, 1, 1 + palette_pointer Palette81, 1, 1 + palette_pointer Palette82, 1, 1 + palette_pointer Palette83, 1, 1 + palette_pointer Palette84, 1, 1 + palette_pointer Palette85, 1, 1 + palette_pointer Palette86, 1, 1 + palette_pointer Palette87, 1, 1 + palette_pointer Palette88, 1, 1 + palette_pointer Palette89, 1, 1 + palette_pointer Palette90, 1, 1 + palette_pointer Palette91, 1, 1 + palette_pointer Palette92, 1, 1 + palette_pointer Palette93, 1, 1 + palette_pointer Palette94, 8, 0 + palette_pointer Palette95, 8, 0 + palette_pointer Palette96, 8, 0 + palette_pointer Palette97, 8, 0 + palette_pointer Palette98, 8, 0 + palette_pointer Palette99, 8, 0 + palette_pointer Palette100, 8, 0 + palette_pointer Palette101, 7, 0 + palette_pointer Palette102, 7, 0 + palette_pointer Palette103, 7, 0 + palette_pointer Palette104, 7, 0 + palette_pointer Palette105, 7, 0 + palette_pointer Palette106, 7, 0 + palette_pointer Palette107, 7, 0 + palette_pointer Palette108, 0, 1 + palette_pointer Palette109, 0, 1 + palette_pointer Palette110, 0, 0 + palette_pointer Palette111, 8, 1 + palette_pointer Palette112, 8, 1 + palette_pointer Palette113, 8, 1 + palette_pointer Palette114, 4, 2 + palette_pointer Palette115, 4, 2 + palette_pointer Palette116, 4, 2 + palette_pointer Palette117, 1, 0 + palette_pointer Palette118, 6, 0 + palette_pointer Palette119, 1, 0 + palette_pointer Palette120, 1, 0 + palette_pointer Palette121, 1, 0 + palette_pointer Palette122, 1, 0 + palette_pointer Palette123, 1, 0 + palette_pointer Palette124, 1, 0 + palette_pointer Palette125, 1, 0 + palette_pointer Palette126, 1, 0 + palette_pointer Palette127, 1, 0 + palette_pointer Palette128, 1, 0 + palette_pointer Palette129, 1, 0 + palette_pointer Palette130, 1, 0 + palette_pointer Palette131, 1, 0 + palette_pointer Palette132, 1, 0 + palette_pointer Palette133, 1, 0 + palette_pointer Palette134, 1, 0 + palette_pointer Palette135, 1, 0 + palette_pointer Palette136, 1, 0 + palette_pointer Palette137, 1, 0 + palette_pointer Palette138, 1, 0 + palette_pointer Palette139, 1, 0 + palette_pointer Palette140, 1, 0 + palette_pointer Palette141, 1, 0 + palette_pointer Palette142, 1, 0 + palette_pointer Palette143, 1, 0 + palette_pointer Palette144, 1, 0 + palette_pointer Palette145, 1, 0 + palette_pointer Palette146, 1, 0 + palette_pointer Palette147, 1, 0 + palette_pointer Palette148, 1, 0 + palette_pointer Palette149, 1, 0 + palette_pointer Palette150, 1, 0 + palette_pointer Palette151, 1, 0 + palette_pointer Palette152, 1, 0 + palette_pointer Palette153, 1, 0 + palette_pointer Palette154, 1, 0 + palette_pointer Palette155, 1, 0 + palette_pointer Palette156, 1, 0 + palette_pointer Palette157, 1, 0 + palette_pointer Palette158, 1, 0 + palette_pointer Palette159, 1, 0 + palette_pointer Palette160, 1, 0 + + INCROM $8191b, $83c5b + +Palette110:: ; 83c5b (20:3c5b) + db $00, $00 - INCROM $8191b, $84000 + INCROM $83c5d, $84000 -- cgit v1.2.3 From d25383b1ea8b7f80393694167ad28759b8a06269 Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Wed, 23 Dec 2020 19:49:48 +0000 Subject: Replace hardcoded gfx pointers to respective gfx --- src/engine/bank07.asm | 195 +++++++++--------- src/engine/bank20.asm | 562 +++++++++++++++++++++++++------------------------- 2 files changed, 382 insertions(+), 375 deletions(-) (limited to 'src/engine') diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index 7e1b16a..f29e0e2 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -1467,103 +1467,104 @@ macro_1ce32: MACRO ENDM Data_1ce32: ; 1ce32 (7:4e32) - macro_1ce32 $00, $00, $00, $00, $00, $00 - macro_1ce32 $28, $1f, $47, %10000000, $11, $00 - macro_1ce32 $29, $20, $48, %10000000, $12, $00 - macro_1ce32 $2a, $21, $49, %10000000, $13, $00 - macro_1ce32 $2b, $22, $4a, %10000000, $14, $00 - macro_1ce32 $2c, $23, $4b, %10000000, $15, $00 - macro_1ce32 $2d, $24, $4c, %10000000, $16, $00 - macro_1ce32 $2d, $24, $4d, %10000000, $16, $00 - macro_1ce32 $2d, $24, $4e, %10000000, $17, $00 - macro_1ce32 $2e, $25, $00, $00, $00, $00 - macro_1ce32 $2f, $26, $5c, $00, $18, $00 - macro_1ce32 $30, $27, $5e, $00, $19, $00 - macro_1ce32 $31, $28, $5f, $00, $1a, $00 - macro_1ce32 $32, $29, $60, %00000100, $1b, $00 - macro_1ce32 $33, $2a, $61, $00, $1c, $00 - macro_1ce32 $33, $2a, $62, $00, $1d, $00 - macro_1ce32 $34, $2b, $63, %00000100, $1e, $00 - macro_1ce32 $35, $2c, $64, $00, $1f, $00 - macro_1ce32 $36, $2d, $69, %00000100, $20, $00 - macro_1ce32 $37, $2e, $6a, $00, $21, $00 - macro_1ce32 $38, $2f, $6b, %00000100, $22, $00 - macro_1ce32 $39, $30, $6c, $00, $23, $00 - macro_1ce32 $3a, $31, $6d, %00000100, $24, $00 - macro_1ce32 $3b, $32, $6e, $00, $25, $00 - macro_1ce32 $3c, $33, $6f, $00, $26, $00 - macro_1ce32 $3d, $34, $70, %01000000 | %00000010, $27, $00 - macro_1ce32 $3e, $35, $71, %01000000 | %00000010, $28, $00 - macro_1ce32 $3f, $36, $72, $00, $29, $00 - macro_1ce32 $3f, $36, $73, $00, $2a, $00 - macro_1ce32 $40, $37, $74, $00, $2b, $00 - macro_1ce32 $40, $37, $75, $00, $52, $00 - macro_1ce32 $40, $37, $76, $00, $53, $00 - macro_1ce32 $41, $38, $77, %00100000 | %00000001, $2c, $00 - macro_1ce32 $42, $39, $78, $00, $2d, $00 - macro_1ce32 $43, $3a, $7a, $00, $2d, $00 - macro_1ce32 $44, $3b, $7b, $00, $2e, $00 - macro_1ce32 $42, $39, $79, $00, $2f, $00 - macro_1ce32 $45, $3c, $7c, %00100000 | %00000001, $30, $00 - macro_1ce32 $46, $3d, $7d, $00, $31, $00 - macro_1ce32 $47, $3e, $7e, $00, $32, $00 - macro_1ce32 $48, $3f, $7f, $00, $33, $00 - macro_1ce32 $49, $40, $80, $00, $34, $00 - macro_1ce32 $4a, $41, $81, $00, $35, $00 - macro_1ce32 $4b, $42, $82, $00, $36, $00 - macro_1ce32 $4c, $43, $83, $00, $37, $00 - macro_1ce32 $4d, $44, $84, $00, $38, $00 - macro_1ce32 $4e, $45, $85, $00, $39, $00 - macro_1ce32 $4f, $46, $86, $00, $3a, $00 - macro_1ce32 $50, $47, $87, %00100000 | %00000001, $3b, $00 - macro_1ce32 $51, $48, $88, $00, $3c, $00 - macro_1ce32 $52, $49, $89, $00, $3d, $00 - macro_1ce32 $53, $4a, $8a, $00, $3e, $00 - macro_1ce32 $54, $4b, $8b, $00, $3f, $00 - macro_1ce32 $55, $4c, $8c, %00000100, $40, $00 - macro_1ce32 $56, $4d, $8d, $00, $41, $00 - macro_1ce32 $57, $4e, $8e, $00, $42, $00 - macro_1ce32 $58, $4f, $8f, %00000100, $43, $00 - macro_1ce32 $59, $50, $90, $00, $44, $00 - macro_1ce32 $5a, $51, $92, $00, $45, $00 - macro_1ce32 $5b, $52, $93, $00, $46, $00 - macro_1ce32 $5c, $53, $94, $00, $47, $00 - macro_1ce32 $5c, $53, $95, $00, $48, $00 - macro_1ce32 $5d, $54, $97, $00, $49, $00 - macro_1ce32 $5e, $55, $99, $00, $4a, $00 - macro_1ce32 $4a, $56, $81, $00, $4b, $00 - macro_1ce32 $5c, $53, $96, $00, $47, $00 - macro_1ce32 $2d, $24, $4d, %10000000, $16, $00 - macro_1ce32 $2d, $24, $4e, %10000000, $17, $00 - macro_1ce32 $2f, $26, $5c, $00, $18, $00 - macro_1ce32 $3a, $31, $6d, %00000100, $24, $00 - macro_1ce32 $5f, $57, $9a, %10000000, $11, $00 - macro_1ce32 $35, $2c, $65, %00000100, $5c, $00 - macro_1ce32 $35, $2c, $66, %00000100, $00, $00 - macro_1ce32 $5d, $54, $98, %00000100, $4c, $00 - macro_1ce32 $59, $50, $91, %00000100, $4d, $00 - macro_1ce32 $60, $58, $9b, $00, $4e, $00 - macro_1ce32 $61, $59, $9c, $00, $4f, $00 - macro_1ce32 $62, $5a, $9d, $00, $50, $00 - macro_1ce32 $35, $2c, $67, %0000100, $51, $00 - macro_1ce32 $35, $2c, $68, %0000100, $51, $00 - macro_1ce32 $63, $5b, $9e, %10000000 | %00001000 | %00000100, $00, $00 - macro_1ce32 $63, $5b, $9f, %10000000 | %00001000 | %00000100, $07, $00 - macro_1ce32 $63, $5b, $a0, %10000000 | %00001000 | %00000100, $07, $00 - macro_1ce32 $63, $5b, $a1, %10000000 | %00001000 | %00000100, $07, $00 - macro_1ce32 $63, $5b, $a2, %10000000 | %00000100, $00, $00 - macro_1ce32 $63, $5b, $a3, %10000000 | %00001000 | %00000100, $00, $00 - macro_1ce32 $63, $5b, $a4, %10000000 | %00001000 | %00000100, $00, $00 - macro_1ce32 $63, $5b, $a5, %10000000 | %00001000 | %00000100, $00, $00 - macro_1ce32 $64, $5c, $a7, %10000000 | %00001000 | %00000100, $00, $00 - macro_1ce32 $64, $5c, $a8, %10000000 | %00001000 | %00000100, $0b, $00 - macro_1ce32 $64, $5c, $a9, %10000000 | %00001000 | %00000100, $0b, $00 - macro_1ce32 $64, $5c, $aa, %10000000 | %00000100, $00, $00 - macro_1ce32 $64, $5c, $ab, %10000000 | %00000100, $00, $00 - macro_1ce32 $65, $5d, $ac, %10000000 | %00000100, $00, $00 - macro_1ce32 $65, $5d, $ad, %10000000 | %00000100, $00, $00 - macro_1ce32 $65, $5d, $ae, %10000000 | %00000100, $00, $00 - macro_1ce32 $63, $5b, $a6, %10000000 | %00000100, $00, $00 +; sprite id, ?, ?, anim flags, ?, ? + macro_1ce32 $00, $00, $00, $00, $00, $00 ; $00 + macro_1ce32 $28, $1f, $47, %10000000, $11, $00 ; $01 + macro_1ce32 $29, $20, $48, %10000000, $12, $00 ; $02 + macro_1ce32 $2a, $21, $49, %10000000, $13, $00 ; $03 + macro_1ce32 $2b, $22, $4a, %10000000, $14, $00 ; $04 + macro_1ce32 $2c, $23, $4b, %10000000, $15, $00 ; $05 + macro_1ce32 $2d, $24, $4c, %10000000, $16, $00 ; $06 + macro_1ce32 $2d, $24, $4d, %10000000, $16, $00 ; $07 + macro_1ce32 $2d, $24, $4e, %10000000, $17, $00 ; $08 + macro_1ce32 $2e, $25, $00, $00, $00, $00 ; $09 + macro_1ce32 $2f, $26, $5c, $00, $18, $00 ; $0a + macro_1ce32 $30, $27, $5e, $00, $19, $00 ; $0b + macro_1ce32 $31, $28, $5f, $00, $1a, $00 ; $0c + macro_1ce32 $32, $29, $60, %00000100, $1b, $00 ; $0d + macro_1ce32 $33, $2a, $61, $00, $1c, $00 ; $0e + macro_1ce32 $33, $2a, $62, $00, $1d, $00 ; $0f + macro_1ce32 $34, $2b, $63, %00000100, $1e, $00 ; $10 + macro_1ce32 $35, $2c, $64, $00, $1f, $00 ; $11 + macro_1ce32 $36, $2d, $69, %00000100, $20, $00 ; $12 + macro_1ce32 $37, $2e, $6a, $00, $21, $00 ; $13 + macro_1ce32 $38, $2f, $6b, %00000100, $22, $00 ; $14 + macro_1ce32 $39, $30, $6c, $00, $23, $00 ; $15 + macro_1ce32 $3a, $31, $6d, %00000100, $24, $00 ; $16 + macro_1ce32 $3b, $32, $6e, $00, $25, $00 ; $17 + macro_1ce32 $3c, $33, $6f, $00, $26, $00 ; $18 + macro_1ce32 $3d, $34, $70, %01000000 | %00000010, $27, $00 ; $19 + macro_1ce32 $3e, $35, $71, %01000000 | %00000010, $28, $00 ; $1a + macro_1ce32 $3f, $36, $72, $00, $29, $00 ; $1b + macro_1ce32 $3f, $36, $73, $00, $2a, $00 ; $1c + macro_1ce32 $40, $37, $74, $00, $2b, $00 ; $1d + macro_1ce32 $40, $37, $75, $00, $52, $00 ; $1e + macro_1ce32 $40, $37, $76, $00, $53, $00 ; $1f + macro_1ce32 $41, $38, $77, %00100000 | %00000001, $2c, $00 ; $20 + macro_1ce32 $42, $39, $78, $00, $2d, $00 ; $21 + macro_1ce32 $43, $3a, $7a, $00, $2d, $00 ; $22 + macro_1ce32 $44, $3b, $7b, $00, $2e, $00 ; $23 + macro_1ce32 $42, $39, $79, $00, $2f, $00 ; $24 + macro_1ce32 $45, $3c, $7c, %00100000 | %00000001, $30, $00 ; $25 + macro_1ce32 $46, $3d, $7d, $00, $31, $00 ; $26 + macro_1ce32 $47, $3e, $7e, $00, $32, $00 ; $27 + macro_1ce32 $48, $3f, $7f, $00, $33, $00 ; $28 + macro_1ce32 $49, $40, $80, $00, $34, $00 ; $29 + macro_1ce32 $4a, $41, $81, $00, $35, $00 ; $2a + macro_1ce32 $4b, $42, $82, $00, $36, $00 ; $2b + macro_1ce32 $4c, $43, $83, $00, $37, $00 ; $2c + macro_1ce32 $4d, $44, $84, $00, $38, $00 ; $2d + macro_1ce32 $4e, $45, $85, $00, $39, $00 ; $2e + macro_1ce32 $4f, $46, $86, $00, $3a, $00 ; $2f + macro_1ce32 $50, $47, $87, %00100000 | %00000001, $3b, $00 ; $30 + macro_1ce32 $51, $48, $88, $00, $3c, $00 ; $31 + macro_1ce32 $52, $49, $89, $00, $3d, $00 ; $32 + macro_1ce32 $53, $4a, $8a, $00, $3e, $00 ; $33 + macro_1ce32 $54, $4b, $8b, $00, $3f, $00 ; $34 + macro_1ce32 $55, $4c, $8c, %00000100, $40, $00 ; $35 + macro_1ce32 $56, $4d, $8d, $00, $41, $00 ; $36 + macro_1ce32 $57, $4e, $8e, $00, $42, $00 ; $37 + macro_1ce32 $58, $4f, $8f, %00000100, $43, $00 ; $38 + macro_1ce32 $59, $50, $90, $00, $44, $00 ; $39 + macro_1ce32 $5a, $51, $92, $00, $45, $00 ; $3a + macro_1ce32 $5b, $52, $93, $00, $46, $00 ; $3b + macro_1ce32 $5c, $53, $94, $00, $47, $00 ; $3c + macro_1ce32 $5c, $53, $95, $00, $48, $00 ; $3d + macro_1ce32 $5d, $54, $97, $00, $49, $00 ; $3e + macro_1ce32 $5e, $55, $99, $00, $4a, $00 ; $3f + macro_1ce32 $4a, $56, $81, $00, $4b, $00 ; $40 + macro_1ce32 $5c, $53, $96, $00, $47, $00 ; $41 + macro_1ce32 $2d, $24, $4d, %10000000, $16, $00 ; $42 + macro_1ce32 $2d, $24, $4e, %10000000, $17, $00 ; $43 + macro_1ce32 $2f, $26, $5c, $00, $18, $00 ; $44 + macro_1ce32 $3a, $31, $6d, %00000100, $24, $00 ; $45 + macro_1ce32 $5f, $57, $9a, %10000000, $11, $00 ; $46 + macro_1ce32 $35, $2c, $65, %00000100, $5c, $00 ; $47 + macro_1ce32 $35, $2c, $66, %00000100, $00, $00 ; $48 + macro_1ce32 $5d, $54, $98, %00000100, $4c, $00 ; $49 + macro_1ce32 $59, $50, $91, %00000100, $4d, $00 ; $4a + macro_1ce32 $60, $58, $9b, $00, $4e, $00 ; $4b + macro_1ce32 $61, $59, $9c, $00, $4f, $00 ; $4c + macro_1ce32 $62, $5a, $9d, $00, $50, $00 ; $4d + macro_1ce32 $35, $2c, $67, %0000100, $51, $00 ; $4e + macro_1ce32 $35, $2c, $68, %0000100, $51, $00 ; $4f + macro_1ce32 $63, $5b, $9e, %10000000 | %00001000 | %00000100, $00, $00 ; $50 + macro_1ce32 $63, $5b, $9f, %10000000 | %00001000 | %00000100, $07, $00 ; $51 + macro_1ce32 $63, $5b, $a0, %10000000 | %00001000 | %00000100, $07, $00 ; $52 + macro_1ce32 $63, $5b, $a1, %10000000 | %00001000 | %00000100, $07, $00 ; $53 + macro_1ce32 $63, $5b, $a2, %10000000 | %00000100, $00, $00 ; $54 + macro_1ce32 $63, $5b, $a3, %10000000 | %00001000 | %00000100, $00, $00 ; $55 + macro_1ce32 $63, $5b, $a4, %10000000 | %00001000 | %00000100, $00, $00 ; $56 + macro_1ce32 $63, $5b, $a5, %10000000 | %00001000 | %00000100, $00, $00 ; $57 + macro_1ce32 $64, $5c, $a7, %10000000 | %00001000 | %00000100, $00, $00 ; $58 + macro_1ce32 $64, $5c, $a8, %10000000 | %00001000 | %00000100, $0b, $00 ; $59 + macro_1ce32 $64, $5c, $a9, %10000000 | %00001000 | %00000100, $0b, $00 ; $5a + macro_1ce32 $64, $5c, $aa, %10000000 | %00000100, $00, $00 ; $5b + macro_1ce32 $64, $5c, $ab, %10000000 | %00000100, $00, $00 ; $5c + macro_1ce32 $65, $5d, $ac, %10000000 | %00000100, $00, $00 ; $5d + macro_1ce32 $65, $5d, $ad, %10000000 | %00000100, $00, $00 ; $5e + macro_1ce32 $65, $5d, $ae, %10000000 | %00000100, $00, $00 ; $5f + macro_1ce32 $63, $5b, $a6, %10000000 | %00000100, $00, $00 ; $60 ; 0x1d078 Func_1d078: ; 1d078 (7:5078) diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index bcb1e26..469b5f2 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -321,7 +321,7 @@ Func_8025b: ; 8025b (20:425b) ld l, $4 call GetMapDataPointer call LoadGraphicsPointerFromHL - ld a, [hl] ; tile size + ld a, [hl] ; sprite number of tiles push af ld [wCurSpriteNumTiles], a ld a, TILE_SIZE @@ -880,121 +880,128 @@ MapDataPointers_8100f: ; 8100f (20:500f) db $52, $54, $08, $24 db $94, $56, $08, $24 +; \1 = gfx pointer +; \2 = number of tiles +gfx_pointer: MACRO + dwb \1, BANK(\1) - BANK(MapDataPointers_8116b) + db \2 +ENDM + MapDataPointers_8116b: ; 8116b (20:516b) - db $90, $7e, $02, $14 - db $a6, $7e, $05, $14 - db $f8, $7d, $06, $14 - db $d6, $58, $08, $14 - db $18, $5a, $08, $14 - db $5a, $5b, $08, $14 - db $9c, $5c, $08, $14 - db $de, $5d, $08, $14 - db $20, $5f, $08, $1b - db $d2, $60, $08, $14 - db $14, $62, $08, $14 - db $56, $63, $08, $14 - db $98, $64, $08, $14 - db $da, $65, $08, $14 - db $1c, $67, $08, $14 - db $5e, $68, $08, $14 - db $a0, $69, $08, $14 - db $e2, $6a, $08, $14 - db $24, $6c, $08, $14 - db $66, $6d, $08, $14 - db $a8, $6e, $08, $14 - db $ea, $6f, $08, $14 - db $2c, $71, $08, $14 - db $6e, $72, $08, $14 - db $b0, $73, $08, $14 - db $f2, $74, $08, $14 - db $34, $76, $08, $14 - db $76, $77, $08, $14 - db $b8, $78, $08, $14 - db $fa, $79, $08, $14 - db $3c, $7b, $08, $14 - db $7e, $7c, $08, $14 - db $c0, $7d, $08, $14 - db $26, $7f, $04, $08 - db $00, $40, $09, $14 - db $42, $41, $09, $14 - db $84, $42, $09, $14 - db $3a, $7f, $06, $08 - db $c6, $43, $09, $16 - db $38, $7f, $07, $0a - db $02, $7f, $08, $0b - db $28, $45, $09, $06 - db $8a, $45, $09, $08 - db $c0, $7f, $01, $02 - db $a4, $7f, $03, $04 - db $0c, $46, $09, $09 - db $9e, $46, $09, $12 - db $c0, $47, $09, $09 - db $52, $48, $09, $11 - db $a8, $7f, $04, $03 - db $64, $49, $09, $2d - db $36, $4c, $09, $0d - db $08, $4d, $09, $1c - db $ca, $4e, $09, $4c - db $bc, $7f, $06, $03 - db $8c, $53, $09, $1b - db $3e, $55, $09, $07 - db $b0, $55, $09, $0c - db $ee, $7f, $06, $01 - db $72, $56, $09, $22 - db $94, $58, $09, $20 - db $96, $5a, $09, $0a - db $38, $5b, $09, $25 - db $8a, $5d, $09, $18 - db $0c, $5f, $09, $1b - db $be, $60, $09, $08 - db $40, $61, $09, $0d - db $12, $62, $09, $22 - db $34, $64, $09, $0c - db $f6, $64, $09, $25 - db $48, $67, $09, $22 - db $6a, $69, $09, $0c - db $2c, $6a, $09, $4c - db $ee, $6e, $09, $08 - db $70, $6f, $09, $07 - db $e2, $7f, $01, $01 - db $e2, $6f, $09, $1a - db $84, $71, $09, $0a - db $26, $72, $09, $2e - db $08, $75, $09, $08 - db $8a, $75, $09, $07 - db $fc, $75, $09, $1c - db $b4, $7f, $08, $04 - db $be, $77, $09, $08 - db $40, $78, $09, $0b - db $d2, $7f, $02, $01 - db $f2, $78, $09, $1c - db $b4, $7a, $09, $16 - db $16, $7c, $09, $10 - db $18, $7d, $09, $0f - db $0a, $7e, $09, $07 - db $7c, $7e, $09, $0a - db $1e, $7f, $09, $09 - db $da, $7f, $04, $02 - db $da, $7f, $07, $02 - db $b0, $7f, $09, $03 - db $00, $40, $0a, $08 - db $82, $40, $0a, $0f - db $74, $41, $0a, $03 - db $a6, $41, $0a, $05 - db $f8, $41, $0a, $17 - db $6a, $43, $0a, $36 - db $cc, $46, $0a, $0b - db $7e, $47, $0a, $06 - db $e0, $47, $0a, $16 - db $42, $49, $0a, $20 - db $44, $4b, $0a, $14 - db $86, $4c, $0a, $04 - db $c8, $4c, $0a, $04 - db $0a, $4d, $0a, $04 - db $4c, $4d, $0a, $04 - db $8e, $4d, $0a, $04 - db $d0, $4d, $0a, $04 - db $12, $4e, $0a, $04 + gfx_pointer OWSpritePlayer, $14 ; $00 + gfx_pointer RonaldOWGfx, $14 ; $01 + gfx_pointer DoctorMasonOWGfx, $14 ; $02 + gfx_pointer OWSprite0, $14 ; $03 + gfx_pointer OWSprite1, $14 ; $04 + gfx_pointer OWSprite2, $14 ; $05 + gfx_pointer OWSprite3, $14 ; $06 + gfx_pointer OWSprite4, $14 ; $07 + gfx_pointer OWSprite5, $1b ; $08 + gfx_pointer OWSprite6, $14 ; $09 + gfx_pointer OWSprite7, $14 ; $0a + gfx_pointer OWSprite8, $14 ; $0b + gfx_pointer OWSprite9, $14 ; $0c + gfx_pointer OWSprite10, $14 ; $0d + gfx_pointer OWSprite11, $14 ; $0e + gfx_pointer OWSprite12, $14 ; $0f + gfx_pointer OWSprite13, $14 ; $10 + gfx_pointer OWSprite14, $14 ; $11 + gfx_pointer OWSprite15, $14 ; $12 + gfx_pointer OWSprite16, $14 ; $13 + gfx_pointer OWSprite17, $14 ; $14 + gfx_pointer OWSprite18, $14 ; $15 + gfx_pointer OWSprite19, $14 ; $16 + gfx_pointer OWSprite20, $14 ; $17 + gfx_pointer OWSprite21, $14 ; $18 + gfx_pointer OWSprite22, $14 ; $19 + gfx_pointer OWSprite23, $14 ; $1a + gfx_pointer OWSprite24, $14 ; $1b + gfx_pointer OWSprite25, $14 ; $1c + gfx_pointer OWSprite26, $14 ; $1d + gfx_pointer OWSprite27, $14 ; $1e + gfx_pointer OWSprite28, $14 ; $1f + gfx_pointer OWSprite29, $14 ; $20 + gfx_pointer HelpDeskLadyGfx, $08 ; $21 + gfx_pointer OWSprite30, $14 ; $22 + gfx_pointer OWSprite31, $14 ; $23 + gfx_pointer OWSprite32, $14 ; $24 + gfx_pointer OverworldMapOAMGfx, $08 ; $25 + gfx_pointer Duel0Gfx, $16 ; $26 + gfx_pointer Duel63Gfx, $0a ; $27 + gfx_pointer Duel65Gfx, $0b ; $28 + gfx_pointer Duel1Gfx, $06 ; $29 + gfx_pointer Duel2Gfx, $08 ; $2a + gfx_pointer Duel55Gfx, $02 ; $2b + gfx_pointer Duel58Gfx, $04 ; $2c + gfx_pointer Duel3Gfx, $09 ; $2d + gfx_pointer Duel4Gfx, $12 ; $2e + gfx_pointer Duel5Gfx, $09 ; $2f + gfx_pointer Duel6Gfx, $11 ; $30 + gfx_pointer Duel59Gfx, $03 ; $31 + gfx_pointer Duel7Gfx, $2d ; $32 + gfx_pointer Duel8Gfx, $0d ; $33 + gfx_pointer Duel9Gfx, $1c ; $34 + gfx_pointer Duel10Gfx, $4c ; $35 + gfx_pointer Duel61Gfx, $03 ; $36 + gfx_pointer Duel11Gfx, $1b ; $37 + gfx_pointer Duel12Gfx, $07 ; $38 + gfx_pointer Duel13Gfx, $0c ; $39 + gfx_pointer Duel62Gfx, $01 ; $3a + gfx_pointer Duel14Gfx, $22 ; $3b + gfx_pointer Duel15Gfx, $20 ; $3c + gfx_pointer Duel16Gfx, $0a ; $3d + gfx_pointer Duel17Gfx, $25 ; $3e + gfx_pointer Duel18Gfx, $18 ; $3f + gfx_pointer Duel19Gfx, $1b ; $40 + gfx_pointer Duel20Gfx, $08 ; $41 + gfx_pointer Duel21Gfx, $0d ; $42 + gfx_pointer Duel22Gfx, $22 ; $43 + gfx_pointer Duel23Gfx, $0c ; $44 + gfx_pointer Duel24Gfx, $25 ; $45 + gfx_pointer Duel25Gfx, $22 ; $46 + gfx_pointer Duel26Gfx, $0c ; $47 + gfx_pointer Duel27Gfx, $4c ; $48 + gfx_pointer Duel28Gfx, $08 ; $49 + gfx_pointer Duel29Gfx, $07 ; $4a + gfx_pointer Duel56Gfx, $01 ; $4b + gfx_pointer Duel30Gfx, $1a ; $4c + gfx_pointer Duel31Gfx, $0a ; $4d + gfx_pointer Duel32Gfx, $2e ; $4e + gfx_pointer Duel33Gfx, $08 ; $4f + gfx_pointer Duel34Gfx, $07 ; $50 + gfx_pointer Duel35Gfx, $1c ; $51 + gfx_pointer Duel66Gfx, $04 ; $52 + gfx_pointer Duel36Gfx, $08 ; $53 + gfx_pointer Duel37Gfx, $0b ; $54 + gfx_pointer Duel57Gfx, $01 ; $55 + gfx_pointer Duel38Gfx, $1c ; $56 + gfx_pointer Duel39Gfx, $16 ; $57 + gfx_pointer Duel40Gfx, $10 ; $58 + gfx_pointer Duel41Gfx, $0f ; $59 + gfx_pointer Duel42Gfx, $07 ; $5a + gfx_pointer Duel43Gfx, $0a ; $5b + gfx_pointer Duel44Gfx, $09 ; $5c + gfx_pointer Duel60Gfx, $02 ; $5d + gfx_pointer Duel64Gfx, $02 ; $5e + gfx_pointer Duel45Gfx, $03 ; $5f + gfx_pointer Duel46Gfx, $08 ; $60 + gfx_pointer Duel47Gfx, $0f ; $61 + gfx_pointer Duel48Gfx, $03 ; $62 + gfx_pointer Duel49Gfx, $05 ; $63 + gfx_pointer Duel50Gfx, $17 ; $64 + gfx_pointer Duel51Gfx, $36 ; $65 + gfx_pointer Duel52Gfx, $0b ; $66 + gfx_pointer Duel53Gfx, $06 ; $67 + gfx_pointer Duel54Gfx, $16 ; $68 + gfx_pointer BoosterPackOAMGfx, $20 ; $69 + gfx_pointer PressStartGfx, $14 ; $6a + gfx_pointer GrassGfx, $04 ; $6b + gfx_pointer FireGfx, $04 ; $6c + gfx_pointer WaterGfx, $04 ; $6d + gfx_pointer ColorlessGfx, $04 ; $6e + gfx_pointer LightningGfx, $04 ; $6f + gfx_pointer PsychicGfx, $04 ; $70 + gfx_pointer FightingGfx, $04 ; $71 ; pointer low, pointer high, bank (minus $20), unknown SpriteAnimationPointers: ; 81333 (20:5333) @@ -1220,173 +1227,172 @@ SpriteAnimationPointers: ; 81333 (20:5333) ; \2 = number of palettes ; \3 = number of OBJ colors palette_pointer: MACRO - dw \1 - db BANK(\1) - BANK(MapDataPointers_81697) + dwb \1, BANK(\1) - BANK(MapDataPointers_81697) db (\2 << 4) + \3 ENDM MapDataPointers_81697: ; 81697 (20:5697) - palette_pointer Palette0, 8, 1 - palette_pointer Palette1, 8, 0 - palette_pointer Palette2, 8, 0 - palette_pointer Palette3, 8, 0 - palette_pointer Palette4, 8, 0 - palette_pointer Palette5, 8, 0 - palette_pointer Palette6, 8, 0 - palette_pointer Palette7, 8, 0 - palette_pointer Palette8, 8, 0 - palette_pointer Palette9, 8, 0 - palette_pointer Palette10, 8, 0 - palette_pointer Palette11, 8, 0 - palette_pointer Palette12, 8, 0 - palette_pointer Palette13, 8, 0 - palette_pointer Palette14, 8, 0 - palette_pointer Palette15, 8, 0 - palette_pointer Palette16, 8, 0 - palette_pointer Palette17, 8, 0 - palette_pointer Palette18, 8, 0 - palette_pointer Palette19, 8, 0 - palette_pointer Palette20, 8, 0 - palette_pointer Palette21, 8, 0 - palette_pointer Palette22, 8, 0 - palette_pointer Palette23, 8, 0 - palette_pointer Palette24, 8, 0 - palette_pointer Palette25, 8, 0 - palette_pointer Palette26, 8, 0 - palette_pointer Palette27, 8, 0 - palette_pointer Palette28, 8, 0 - palette_pointer Palette29, 8, 2 - palette_pointer Palette30, 8, 2 - palette_pointer Palette31, 1, 1 - palette_pointer Palette32, 1, 1 - palette_pointer Palette33, 1, 1 - palette_pointer Palette34, 1, 1 - palette_pointer Palette35, 1, 1 - palette_pointer Palette36, 1, 1 - palette_pointer Palette37, 1, 1 - palette_pointer Palette38, 1, 1 - palette_pointer Palette39, 1, 1 - palette_pointer Palette40, 1, 1 - palette_pointer Palette41, 1, 1 - palette_pointer Palette42, 1, 1 - palette_pointer Palette43, 1, 1 - palette_pointer Palette44, 1, 1 - palette_pointer Palette45, 1, 1 - palette_pointer Palette46, 1, 1 - palette_pointer Palette47, 1, 1 - palette_pointer Palette48, 1, 1 - palette_pointer Palette49, 1, 1 - palette_pointer Palette50, 1, 1 - palette_pointer Palette51, 1, 1 - palette_pointer Palette52, 1, 1 - palette_pointer Palette53, 1, 1 - palette_pointer Palette54, 1, 1 - palette_pointer Palette55, 1, 1 - palette_pointer Palette56, 1, 1 - palette_pointer Palette57, 1, 1 - palette_pointer Palette58, 1, 1 - palette_pointer Palette59, 1, 1 - palette_pointer Palette60, 1, 1 - palette_pointer Palette61, 1, 1 - palette_pointer Palette62, 1, 1 - palette_pointer Palette63, 1, 1 - palette_pointer Palette64, 1, 1 - palette_pointer Palette65, 1, 1 - palette_pointer Palette66, 1, 1 - palette_pointer Palette67, 1, 1 - palette_pointer Palette68, 1, 1 - palette_pointer Palette69, 1, 1 - palette_pointer Palette70, 1, 1 - palette_pointer Palette71, 1, 1 - palette_pointer Palette72, 1, 1 - palette_pointer Palette73, 1, 1 - palette_pointer Palette74, 1, 1 - palette_pointer Palette75, 1, 1 - palette_pointer Palette76, 1, 1 - palette_pointer Palette77, 1, 1 - palette_pointer Palette78, 1, 1 - palette_pointer Palette79, 1, 1 - palette_pointer Palette80, 1, 1 - palette_pointer Palette81, 1, 1 - palette_pointer Palette82, 1, 1 - palette_pointer Palette83, 1, 1 - palette_pointer Palette84, 1, 1 - palette_pointer Palette85, 1, 1 - palette_pointer Palette86, 1, 1 - palette_pointer Palette87, 1, 1 - palette_pointer Palette88, 1, 1 - palette_pointer Palette89, 1, 1 - palette_pointer Palette90, 1, 1 - palette_pointer Palette91, 1, 1 - palette_pointer Palette92, 1, 1 - palette_pointer Palette93, 1, 1 - palette_pointer Palette94, 8, 0 - palette_pointer Palette95, 8, 0 - palette_pointer Palette96, 8, 0 - palette_pointer Palette97, 8, 0 - palette_pointer Palette98, 8, 0 - palette_pointer Palette99, 8, 0 - palette_pointer Palette100, 8, 0 - palette_pointer Palette101, 7, 0 - palette_pointer Palette102, 7, 0 - palette_pointer Palette103, 7, 0 - palette_pointer Palette104, 7, 0 - palette_pointer Palette105, 7, 0 - palette_pointer Palette106, 7, 0 - palette_pointer Palette107, 7, 0 - palette_pointer Palette108, 0, 1 - palette_pointer Palette109, 0, 1 - palette_pointer Palette110, 0, 0 - palette_pointer Palette111, 8, 1 - palette_pointer Palette112, 8, 1 - palette_pointer Palette113, 8, 1 - palette_pointer Palette114, 4, 2 - palette_pointer Palette115, 4, 2 - palette_pointer Palette116, 4, 2 - palette_pointer Palette117, 1, 0 - palette_pointer Palette118, 6, 0 - palette_pointer Palette119, 1, 0 - palette_pointer Palette120, 1, 0 - palette_pointer Palette121, 1, 0 - palette_pointer Palette122, 1, 0 - palette_pointer Palette123, 1, 0 - palette_pointer Palette124, 1, 0 - palette_pointer Palette125, 1, 0 - palette_pointer Palette126, 1, 0 - palette_pointer Palette127, 1, 0 - palette_pointer Palette128, 1, 0 - palette_pointer Palette129, 1, 0 - palette_pointer Palette130, 1, 0 - palette_pointer Palette131, 1, 0 - palette_pointer Palette132, 1, 0 - palette_pointer Palette133, 1, 0 - palette_pointer Palette134, 1, 0 - palette_pointer Palette135, 1, 0 - palette_pointer Palette136, 1, 0 - palette_pointer Palette137, 1, 0 - palette_pointer Palette138, 1, 0 - palette_pointer Palette139, 1, 0 - palette_pointer Palette140, 1, 0 - palette_pointer Palette141, 1, 0 - palette_pointer Palette142, 1, 0 - palette_pointer Palette143, 1, 0 - palette_pointer Palette144, 1, 0 - palette_pointer Palette145, 1, 0 - palette_pointer Palette146, 1, 0 - palette_pointer Palette147, 1, 0 - palette_pointer Palette148, 1, 0 - palette_pointer Palette149, 1, 0 - palette_pointer Palette150, 1, 0 - palette_pointer Palette151, 1, 0 - palette_pointer Palette152, 1, 0 - palette_pointer Palette153, 1, 0 - palette_pointer Palette154, 1, 0 - palette_pointer Palette155, 1, 0 - palette_pointer Palette156, 1, 0 - palette_pointer Palette157, 1, 0 - palette_pointer Palette158, 1, 0 - palette_pointer Palette159, 1, 0 - palette_pointer Palette160, 1, 0 + palette_pointer Palette0, 8, 1 ; $00 + palette_pointer Palette1, 8, 0 ; $01 + palette_pointer Palette2, 8, 0 ; $02 + palette_pointer Palette3, 8, 0 ; $03 + palette_pointer Palette4, 8, 0 ; $04 + palette_pointer Palette5, 8, 0 ; $05 + palette_pointer Palette6, 8, 0 ; $06 + palette_pointer Palette7, 8, 0 ; $07 + palette_pointer Palette8, 8, 0 ; $08 + palette_pointer Palette9, 8, 0 ; $09 + palette_pointer Palette10, 8, 0 ; $0a + palette_pointer Palette11, 8, 0 ; $0b + palette_pointer Palette12, 8, 0 ; $0c + palette_pointer Palette13, 8, 0 ; $0d + palette_pointer Palette14, 8, 0 ; $0e + palette_pointer Palette15, 8, 0 ; $0f + palette_pointer Palette16, 8, 0 ; $10 + palette_pointer Palette17, 8, 0 ; $11 + palette_pointer Palette18, 8, 0 ; $12 + palette_pointer Palette19, 8, 0 ; $13 + palette_pointer Palette20, 8, 0 ; $14 + palette_pointer Palette21, 8, 0 ; $15 + palette_pointer Palette22, 8, 0 ; $16 + palette_pointer Palette23, 8, 0 ; $17 + palette_pointer Palette24, 8, 0 ; $18 + palette_pointer Palette25, 8, 0 ; $19 + palette_pointer Palette26, 8, 0 ; $1a + palette_pointer Palette27, 8, 0 ; $1b + palette_pointer Palette28, 8, 0 ; $1c + palette_pointer Palette29, 8, 2 ; $1d + palette_pointer Palette30, 8, 2 ; $1e + palette_pointer Palette31, 1, 1 ; $1f + palette_pointer Palette32, 1, 1 ; $20 + palette_pointer Palette33, 1, 1 ; $21 + palette_pointer Palette34, 1, 1 ; $22 + palette_pointer Palette35, 1, 1 ; $23 + palette_pointer Palette36, 1, 1 ; $24 + palette_pointer Palette37, 1, 1 ; $25 + palette_pointer Palette38, 1, 1 ; $26 + palette_pointer Palette39, 1, 1 ; $27 + palette_pointer Palette40, 1, 1 ; $28 + palette_pointer Palette41, 1, 1 ; $29 + palette_pointer Palette42, 1, 1 ; $2a + palette_pointer Palette43, 1, 1 ; $2b + palette_pointer Palette44, 1, 1 ; $2c + palette_pointer Palette45, 1, 1 ; $2d + palette_pointer Palette46, 1, 1 ; $2e + palette_pointer Palette47, 1, 1 ; $2f + palette_pointer Palette48, 1, 1 ; $30 + palette_pointer Palette49, 1, 1 ; $31 + palette_pointer Palette50, 1, 1 ; $32 + palette_pointer Palette51, 1, 1 ; $33 + palette_pointer Palette52, 1, 1 ; $34 + palette_pointer Palette53, 1, 1 ; $35 + palette_pointer Palette54, 1, 1 ; $36 + palette_pointer Palette55, 1, 1 ; $37 + palette_pointer Palette56, 1, 1 ; $38 + palette_pointer Palette57, 1, 1 ; $39 + palette_pointer Palette58, 1, 1 ; $3a + palette_pointer Palette59, 1, 1 ; $3b + palette_pointer Palette60, 1, 1 ; $3c + palette_pointer Palette61, 1, 1 ; $3d + palette_pointer Palette62, 1, 1 ; $3e + palette_pointer Palette63, 1, 1 ; $3f + palette_pointer Palette64, 1, 1 ; $40 + palette_pointer Palette65, 1, 1 ; $41 + palette_pointer Palette66, 1, 1 ; $42 + palette_pointer Palette67, 1, 1 ; $43 + palette_pointer Palette68, 1, 1 ; $44 + palette_pointer Palette69, 1, 1 ; $45 + palette_pointer Palette70, 1, 1 ; $46 + palette_pointer Palette71, 1, 1 ; $47 + palette_pointer Palette72, 1, 1 ; $48 + palette_pointer Palette73, 1, 1 ; $49 + palette_pointer Palette74, 1, 1 ; $4a + palette_pointer Palette75, 1, 1 ; $4b + palette_pointer Palette76, 1, 1 ; $4c + palette_pointer Palette77, 1, 1 ; $4d + palette_pointer Palette78, 1, 1 ; $4e + palette_pointer Palette79, 1, 1 ; $4f + palette_pointer Palette80, 1, 1 ; $50 + palette_pointer Palette81, 1, 1 ; $51 + palette_pointer Palette82, 1, 1 ; $52 + palette_pointer Palette83, 1, 1 ; $53 + palette_pointer Palette84, 1, 1 ; $54 + palette_pointer Palette85, 1, 1 ; $55 + palette_pointer Palette86, 1, 1 ; $56 + palette_pointer Palette87, 1, 1 ; $57 + palette_pointer Palette88, 1, 1 ; $58 + palette_pointer Palette89, 1, 1 ; $59 + palette_pointer Palette90, 1, 1 ; $a5 + palette_pointer Palette91, 1, 1 ; $5b + palette_pointer Palette92, 1, 1 ; $5c + palette_pointer Palette93, 1, 1 ; $5d + palette_pointer Palette94, 8, 0 ; $5e + palette_pointer Palette95, 8, 0 ; $5f + palette_pointer Palette96, 8, 0 ; $60 + palette_pointer Palette97, 8, 0 ; $61 + palette_pointer Palette98, 8, 0 ; $62 + palette_pointer Palette99, 8, 0 ; $63 + palette_pointer Palette100, 8, 0 ; $64 + palette_pointer Palette101, 7, 0 ; $65 + palette_pointer Palette102, 7, 0 ; $66 + palette_pointer Palette103, 7, 0 ; $67 + palette_pointer Palette104, 7, 0 ; $68 + palette_pointer Palette105, 7, 0 ; $69 + palette_pointer Palette106, 7, 0 ; $6a + palette_pointer Palette107, 7, 0 ; $6b + palette_pointer Palette108, 0, 1 ; $6c + palette_pointer Palette109, 0, 1 ; $6d + palette_pointer Palette110, 0, 0 ; $6e + palette_pointer Palette111, 8, 1 ; $6f + palette_pointer Palette112, 8, 1 ; $70 + palette_pointer Palette113, 8, 1 ; $71 + palette_pointer Palette114, 4, 2 ; $72 + palette_pointer Palette115, 4, 2 ; $73 + palette_pointer Palette116, 4, 2 ; $74 + palette_pointer Palette117, 1, 0 ; $75 + palette_pointer Palette118, 6, 0 ; $76 + palette_pointer Palette119, 1, 0 ; $77 + palette_pointer Palette120, 1, 0 ; $78 + palette_pointer Palette121, 1, 0 ; $79 + palette_pointer Palette122, 1, 0 ; $7a + palette_pointer Palette123, 1, 0 ; $7b + palette_pointer Palette124, 1, 0 ; $7c + palette_pointer Palette125, 1, 0 ; $7d + palette_pointer Palette126, 1, 0 ; $7e + palette_pointer Palette127, 1, 0 ; $7f + palette_pointer Palette128, 1, 0 ; $80 + palette_pointer Palette129, 1, 0 ; $81 + palette_pointer Palette130, 1, 0 ; $82 + palette_pointer Palette131, 1, 0 ; $83 + palette_pointer Palette132, 1, 0 ; $84 + palette_pointer Palette133, 1, 0 ; $85 + palette_pointer Palette134, 1, 0 ; $86 + palette_pointer Palette135, 1, 0 ; $87 + palette_pointer Palette136, 1, 0 ; $88 + palette_pointer Palette137, 1, 0 ; $89 + palette_pointer Palette138, 1, 0 ; $8a + palette_pointer Palette139, 1, 0 ; $8b + palette_pointer Palette140, 1, 0 ; $8c + palette_pointer Palette141, 1, 0 ; $8d + palette_pointer Palette142, 1, 0 ; $8e + palette_pointer Palette143, 1, 0 ; $8f + palette_pointer Palette144, 1, 0 ; $90 + palette_pointer Palette145, 1, 0 ; $91 + palette_pointer Palette146, 1, 0 ; $92 + palette_pointer Palette147, 1, 0 ; $93 + palette_pointer Palette148, 1, 0 ; $94 + palette_pointer Palette149, 1, 0 ; $95 + palette_pointer Palette150, 1, 0 ; $96 + palette_pointer Palette151, 1, 0 ; $97 + palette_pointer Palette152, 1, 0 ; $98 + palette_pointer Palette153, 1, 0 ; $99 + palette_pointer Palette154, 1, 0 ; $9a + palette_pointer Palette155, 1, 0 ; $9b + palette_pointer Palette156, 1, 0 ; $9c + palette_pointer Palette157, 1, 0 ; $9d + palette_pointer Palette158, 1, 0 ; $9e + palette_pointer Palette159, 1, 0 ; $9f + palette_pointer Palette160, 1, 0 ; $a0 INCROM $8191b, $83c5b -- cgit v1.2.3 From 0a1e2b2c6600143c848905fd6d1c54a58bfc4329 Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Thu, 24 Dec 2020 16:55:24 +0000 Subject: Identify and unpack frame animation data --- src/engine/bank04.asm | 5 +- src/engine/bank07.asm | 20 +-- src/engine/bank20.asm | 451 ++++++++++++++++++++++++++------------------------ src/engine/home.asm | 4 +- 4 files changed, 248 insertions(+), 232 deletions(-) (limited to 'src/engine') diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index e67216b..c8f1f88 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -1596,6 +1596,7 @@ LoadSpriteAnimPointers: ; 12ae2 (4:6ae2) ld a, [wTempPointer + 1] ld [hli], a ld b, a + ; offset pointer = pointer + $3 ld a, $3 add c ld [hli], a @@ -1619,6 +1620,7 @@ HandleAnimationFrame: ; 12b13 (4:6b13) add hl, bc ld a, [hli] ld [wTempPointerBank], a + inc hl inc hl ld a, [hl] ; SPRITE_ANIM_FRAME_OFFSET_POINTER @@ -1629,6 +1631,7 @@ HandleAnimationFrame: ; 12b13 (4:6b13) ld [wTempPointer + 1], a adc 0 ld [hl], a + ld de, wd23e ld bc, SPRITE_FRAME_OFFSET_SIZE call CopyBankedDataToDE @@ -1708,7 +1711,7 @@ SetAnimationCounterAndLoop: ; 12b89 (4:6b89) ld bc, SPRITE_ANIM_POINTER - SPRITE_ANIM_COUNTER add hl, bc ld a, [hli] - add 3 ; skip base bank/pointer at beginning of data structure + add $3 ; skip base bank/pointer at beginning of data structure ld c, a ld a, [hli] adc 0 diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index f29e0e2..caf3c48 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -610,26 +610,26 @@ Func_1c8ef: ; 1c8ef (7:48ef) jr z, .check_to_play_sfx push hl - ld bc, $0003 + lb bc, 0, $03 add hl, bc ld a, [hl] and %10000000 pop hl - jr z, .return + .check_to_play_sfx push hl - ld bc, $0004 + lb bc, 0, $04 add hl, bc ld a, [hl] pop hl - or a jr z, .calc_addr call PlaySFX + .calc_addr push hl - ld bc, $0005 + lb bc, 0, $05 add hl, bc ld a, [hl] rlca @@ -652,9 +652,9 @@ Func_1c8ef: ; 1c8ef (7:48ef) ret .address - dw Func_1c94a + dw .asm_1c94a -Func_1c94a: ; 1c94a (7:494a) +.asm_1c94a ; 1c94a (7:494a) ; if any of the first 3 bytes is $00, return carry ld e, l ld d, h @@ -687,11 +687,11 @@ Func_1c94a: ; 1c94a (7:494a) pop af farcall StartNewSpriteAnimation or a - jr .return + jr .done .return_with_carry scf -.return +.done ret Func_1c980: ; 1c980 (7:4980) @@ -1467,7 +1467,7 @@ macro_1ce32: MACRO ENDM Data_1ce32: ; 1ce32 (7:4e32) -; sprite id, ?, ?, anim flags, ?, ? +; sprite ID, palette ID, anim ID, anim flags, sound fx ID, ? macro_1ce32 $00, $00, $00, $00, $00, $00 ; $00 macro_1ce32 $28, $1f, $47, %10000000, $11, $00 ; $01 macro_1ce32 $29, $20, $48, %10000000, $12, $00 ; $02 diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index 469b5f2..4e33470 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -1003,225 +1003,230 @@ MapDataPointers_8116b: ; 8116b (20:516b) gfx_pointer PsychicGfx, $04 ; $70 gfx_pointer FightingGfx, $04 ; $71 -; pointer low, pointer high, bank (minus $20), unknown +; \1 = anim data pointer +anim_data_pointer: MACRO + dwb \1, BANK(\1) - BANK(SpriteAnimationPointers) + db $00 ; unused (padding?) +ENDM + SpriteAnimationPointers: ; 81333 (20:5333) - db $54, $4e, $0a, $00 - db $4c, $7c, $00, $00 - db $e4, $7f, $02, $00 - db $e6, $7f, $03, $00 - db $29, $4f, $0a, $00 - db $e8, $7f, $05, $00 - db $e2, $7f, $09, $00 - db $fe, $4f, $0a, $00 - db $0d, $50, $0a, $00 - db $64, $50, $0a, $00 - db $7b, $50, $0a, $00 - db $f5, $7f, $03, $00 - db $f4, $7f, $01, $00 - db $d2, $50, $0a, $00 - db $dd, $50, $0a, $00 - db $b2, $51, $0a, $00 - db $c1, $51, $0a, $00 - db $d8, $51, $0a, $00 - db $e7, $51, $0a, $00 - db $bc, $52, $0a, $00 - db $cb, $52, $0a, $00 - db $e2, $52, $0a, $00 - db $f1, $52, $0a, $00 - db $c6, $53, $0a, $00 - db $d5, $53, $0a, $00 - db $ec, $53, $0a, $00 - db $fb, $53, $0a, $00 - db $d0, $54, $0a, $00 - db $df, $54, $0a, $00 - db $f6, $54, $0a, $00 - db $05, $55, $0a, $00 - db $da, $55, $0a, $00 - db $e9, $55, $0a, $00 - db $00, $56, $0a, $00 - db $0f, $56, $0a, $00 - db $e4, $56, $0a, $00 - db $f3, $56, $0a, $00 - db $0a, $57, $0a, $00 - db $19, $57, $0a, $00 - db $ee, $57, $0a, $00 - db $fd, $57, $0a, $00 - db $14, $58, $0a, $00 - db $23, $58, $0a, $00 - db $f8, $58, $0a, $00 - db $07, $59, $0a, $00 - db $1e, $59, $0a, $00 - db $2d, $59, $0a, $00 - db $84, $59, $0a, $00 - db $9b, $59, $0a, $00 - db $f2, $59, $0a, $00 - db $fd, $59, $0a, $00 - db $08, $5a, $0a, $00 - db $13, $5a, $0a, $00 - db $71, $5a, $0a, $00 - db $80, $5a, $0a, $00 - db $8f, $5a, $0a, $00 - db $ed, $5a, $0a, $00 - db $fc, $5a, $0a, $00 - db $0b, $5b, $0a, $00 - db $6e, $5b, $0a, $00 - db $13, $5d, $0a, $00 - db $6a, $5d, $0a, $00 - db $c1, $5d, $0a, $00 - db $18, $5e, $0a, $00 - db $6f, $5e, $0a, $00 - db $c6, $5e, $0a, $00 - db $6b, $60, $0a, $00 - db $c2, $60, $0a, $00 - db $19, $61, $0a, $00 - db $70, $61, $0a, $00 - db $c7, $61, $0a, $00 - db $1e, $62, $0a, $00 - db $06, $63, $0a, $00 - db $e7, $63, $0a, $00 - db $d5, $64, $0a, $00 - db $18, $66, $0a, $00 - db $0f, $67, $0a, $00 - db $9b, $68, $0a, $00 - db $ba, $68, $0a, $00 - db $e1, $68, $0a, $00 - db $d7, $69, $0a, $00 - db $5e, $6a, $0a, $00 - db $e5, $6a, $0a, $00 - db $6c, $6b, $0a, $00 - db $f3, $6b, $0a, $00 - db $7a, $6c, $0a, $00 - db $01, $6d, $0a, $00 - db $88, $6d, $0a, $00 - db $0f, $6e, $0a, $00 - db $96, $6e, $0a, $00 - db $1d, $6f, $0a, $00 - db $a4, $6f, $0a, $00 - db $2b, $70, $0a, $00 - db $fb, $70, $0a, $00 - db $06, $71, $0a, $00 - db $bb, $72, $0a, $00 - db $05, $74, $0a, $00 - db $6e, $76, $0a, $00 - db $c1, $79, $0a, $00 - db $0c, $7a, $0a, $00 - db $00, $40, $0b, $00 - db $cf, $7b, $0a, $00 - db $fe, $7b, $0a, $00 - db $11, $7c, $0a, $00 - db $78, $7c, $0a, $00 - db $eb, $7c, $0a, $00 - db $a6, $7e, $0a, $00 - db $03, $48, $0b, $00 - db $16, $4a, $0b, $00 - db $4c, $4b, $0b, $00 - db $b6, $50, $0b, $00 - db $64, $53, $0b, $00 - db $c1, $54, $0b, $00 - db $29, $58, $0b, $00 - db $eb, $5a, $0b, $00 - db $c5, $5d, $0b, $00 - db $0c, $5e, $0b, $00 - db $ee, $5f, $0b, $00 - db $59, $60, $0b, $00 - db $d4, $60, $0b, $00 - db $bb, $62, $0b, $00 - db $86, $65, $0b, $00 - db $d9, $65, $0b, $00 - db $7f, $67, $0b, $00 - db $db, $6d, $0b, $00 - db $f0, $6f, $0b, $00 - db $1b, $71, $0b, $00 - db $36, $73, $0b, $00 - db $29, $78, $0b, $00 - db $9f, $79, $0b, $00 - db $8e, $7e, $0b, $00 - db $00, $40, $0c, $00 - db $b4, $41, $0c, $00 - db $b6, $45, $0c, $00 - db $d5, $49, $0c, $00 - db $7b, $4c, $0c, $00 - db $c6, $4d, $0c, $00 - db $fd, $4e, $0c, $00 - db $e2, $4f, $0c, $00 - db $45, $51, $0c, $00 - db $21, $54, $0c, $00 - db $01, $57, $0c, $00 - db $a0, $5a, $0c, $00 - db $bc, $5c, $0c, $00 - db $b1, $5d, $0c, $00 - db $51, $5e, $0c, $00 - db $d4, $5e, $0c, $00 - db $7c, $60, $0c, $00 - db $e3, $62, $0c, $00 - db $ec, $7f, $0a, $00 - db $c1, $7f, $0b, $00 - db $d2, $64, $0c, $00 - db $f4, $65, $0c, $00 - db $63, $66, $0c, $00 - db $17, $67, $0c, $00 - db $7f, $67, $0c, $00 - db $63, $69, $0c, $00 - db $ea, $69, $0c, $00 - db $e7, $6d, $0c, $00 - db $f3, $73, $0c, $00 - db $1e, $74, $0c, $00 - db $49, $74, $0c, $00 - db $dc, $7f, $0b, $00 - db $74, $74, $0c, $00 - db $97, $74, $0c, $00 - db $ba, $74, $0c, $00 - db $f3, $7f, $0b, $00 - db $dd, $74, $0c, $00 - db $cd, $75, $0c, $00 - db $5c, $76, $0c, $00 - db $eb, $76, $0c, $00 - db $f6, $76, $0c, $00 - db $01, $77, $0c, $00 - db $e9, $78, $0c, $00 - db $f8, $78, $0c, $00 - db $07, $79, $0c, $00 - db $34, $7d, $0c, $00 - db $c3, $7d, $0c, $00 - db $00, $40, $0d, $00 - db $d2, $7d, $0c, $00 - db $61, $7e, $0c, $00 - db $2d, $44, $0d, $00 - db $70, $7e, $0c, $00 - db $41, $4a, $0d, $00 - db $7f, $7e, $0c, $00 - db $55, $50, $0d, $00 - db $8e, $7e, $0c, $00 - db $6f, $52, $0d, $00 - db $9d, $7e, $0c, $00 - db $ac, $7e, $0c, $00 - db $3e, $7f, $0c, $00 - db $89, $54, $0d, $00 - db $eb, $54, $0d, $00 - db $69, $56, $0d, $00 - db $d4, $57, $0d, $00 - db $ca, $59, $0d, $00 - db $a0, $7f, $0c, $00 - db $91, $5a, $0d, $00 - db $cf, $5c, $0d, $00 - db $d2, $5d, $0d, $00 - db $f5, $5d, $0d, $00 - db $0b, $60, $0d, $00 - db $d2, $60, $0d, $00 - db $1d, $61, $0d, $00 - db $ab, $62, $0d, $00 - db $d6, $63, $0d, $00 - db $09, $64, $0d, $00 - db $b7, $65, $0d, $00 - db $e2, $66, $0d, $00 - db $15, $67, $0d, $00 - db $33, $69, $0d, $00 - db $36, $6a, $0d, $00 - db $59, $6a, $0d, $00 - db $e7, $6b, $0d, $00 - db $ae, $6c, $0d, $00 - db $31, $6d, $0d, $00 - db $67, $70, $0d, $00 + anim_data_pointer AnimData0 ; $00 + anim_data_pointer AnimData1 ; $01 + anim_data_pointer AnimData2 ; $02 + anim_data_pointer AnimData3 ; $03 + anim_data_pointer AnimData4 ; $04 + anim_data_pointer AnimData5 ; $05 + anim_data_pointer AnimData6 ; $06 + anim_data_pointer AnimData7 ; $07 + anim_data_pointer AnimData8 ; $08 + anim_data_pointer AnimData9 ; $09 + anim_data_pointer AnimData10 ; $0a + anim_data_pointer AnimData11 ; $0b + anim_data_pointer AnimData12 ; $0c + anim_data_pointer AnimData13 ; $0d + anim_data_pointer AnimData14 ; $0e + anim_data_pointer AnimData15 ; $0f + anim_data_pointer AnimData16 ; $10 + anim_data_pointer AnimData17 ; $11 + anim_data_pointer AnimData18 ; $12 + anim_data_pointer AnimData19 ; $13 + anim_data_pointer AnimData20 ; $14 + anim_data_pointer AnimData21 ; $15 + anim_data_pointer AnimData22 ; $16 + anim_data_pointer AnimData23 ; $17 + anim_data_pointer AnimData24 ; $18 + anim_data_pointer AnimData25 ; $19 + anim_data_pointer AnimData26 ; $1a + anim_data_pointer AnimData27 ; $1b + anim_data_pointer AnimData28 ; $1c + anim_data_pointer AnimData29 ; $1d + anim_data_pointer AnimData30 ; $1e + anim_data_pointer AnimData31 ; $1f + anim_data_pointer AnimData32 ; $20 + anim_data_pointer AnimData33 ; $21 + anim_data_pointer AnimData34 ; $22 + anim_data_pointer AnimData35 ; $23 + anim_data_pointer AnimData36 ; $24 + anim_data_pointer AnimData37 ; $25 + anim_data_pointer AnimData38 ; $26 + anim_data_pointer AnimData39 ; $27 + anim_data_pointer AnimData40 ; $28 + anim_data_pointer AnimData41 ; $29 + anim_data_pointer AnimData42 ; $2a + anim_data_pointer AnimData43 ; $2b + anim_data_pointer AnimData44 ; $2c + anim_data_pointer AnimData45 ; $2d + anim_data_pointer AnimData46 ; $2e + anim_data_pointer AnimData47 ; $2f + anim_data_pointer AnimData48 ; $30 + anim_data_pointer AnimData49 ; $31 + anim_data_pointer AnimData50 ; $32 + anim_data_pointer AnimData51 ; $33 + anim_data_pointer AnimData52 ; $34 + anim_data_pointer AnimData53 ; $35 + anim_data_pointer AnimData54 ; $36 + anim_data_pointer AnimData55 ; $37 + anim_data_pointer AnimData56 ; $38 + anim_data_pointer AnimData57 ; $39 + anim_data_pointer AnimData58 ; $3a + anim_data_pointer AnimData59 ; $3b + anim_data_pointer AnimData60 ; $3c + anim_data_pointer AnimData61 ; $3d + anim_data_pointer AnimData62 ; $3e + anim_data_pointer AnimData63 ; $3f + anim_data_pointer AnimData64 ; $40 + anim_data_pointer AnimData65 ; $41 + anim_data_pointer AnimData66 ; $42 + anim_data_pointer AnimData67 ; $43 + anim_data_pointer AnimData68 ; $44 + anim_data_pointer AnimData69 ; $45 + anim_data_pointer AnimData70 ; $46 + anim_data_pointer AnimData71 ; $47 + anim_data_pointer AnimData72 ; $48 + anim_data_pointer AnimData73 ; $49 + anim_data_pointer AnimData74 ; $4a + anim_data_pointer AnimData75 ; $4b + anim_data_pointer AnimData76 ; $4c + anim_data_pointer AnimData77 ; $4d + anim_data_pointer AnimData78 ; $4e + anim_data_pointer AnimData79 ; $4f + anim_data_pointer AnimData80 ; $50 + anim_data_pointer AnimData81 ; $51 + anim_data_pointer AnimData82 ; $52 + anim_data_pointer AnimData83 ; $53 + anim_data_pointer AnimData84 ; $54 + anim_data_pointer AnimData85 ; $55 + anim_data_pointer AnimData86 ; $56 + anim_data_pointer AnimData87 ; $57 + anim_data_pointer AnimData88 ; $58 + anim_data_pointer AnimData89 ; $59 + anim_data_pointer AnimData90 ; $5a + anim_data_pointer AnimData91 ; $5b + anim_data_pointer AnimData92 ; $5c + anim_data_pointer AnimData93 ; $5d + anim_data_pointer AnimData94 ; $5e + anim_data_pointer AnimData95 ; $5f + anim_data_pointer AnimData96 ; $60 + anim_data_pointer AnimData97 ; $61 + anim_data_pointer AnimData98 ; $62 + anim_data_pointer AnimData99 ; $63 + anim_data_pointer AnimData100 ; $64 + anim_data_pointer AnimData101 ; $65 + anim_data_pointer AnimData102 ; $66 + anim_data_pointer AnimData103 ; $67 + anim_data_pointer AnimData104 ; $68 + anim_data_pointer AnimData105 ; $69 + anim_data_pointer AnimData106 ; $6a + anim_data_pointer AnimData107 ; $6b + anim_data_pointer AnimData108 ; $6c + anim_data_pointer AnimData109 ; $6d + anim_data_pointer AnimData110 ; $6e + anim_data_pointer AnimData111 ; $6f + anim_data_pointer AnimData112 ; $70 + anim_data_pointer AnimData113 ; $71 + anim_data_pointer AnimData114 ; $72 + anim_data_pointer AnimData115 ; $73 + anim_data_pointer AnimData116 ; $74 + anim_data_pointer AnimData117 ; $75 + anim_data_pointer AnimData118 ; $76 + anim_data_pointer AnimData119 ; $77 + anim_data_pointer AnimData120 ; $78 + anim_data_pointer AnimData121 ; $79 + anim_data_pointer AnimData122 ; $7a + anim_data_pointer AnimData123 ; $7b + anim_data_pointer AnimData124 ; $7c + anim_data_pointer AnimData125 ; $7d + anim_data_pointer AnimData126 ; $7e + anim_data_pointer AnimData127 ; $7f + anim_data_pointer AnimData128 ; $80 + anim_data_pointer AnimData129 ; $81 + anim_data_pointer AnimData130 ; $82 + anim_data_pointer AnimData131 ; $83 + anim_data_pointer AnimData132 ; $84 + anim_data_pointer AnimData133 ; $85 + anim_data_pointer AnimData134 ; $86 + anim_data_pointer AnimData135 ; $87 + anim_data_pointer AnimData136 ; $88 + anim_data_pointer AnimData137 ; $89 + anim_data_pointer AnimData138 ; $8a + anim_data_pointer AnimData139 ; $8b + anim_data_pointer AnimData140 ; $8c + anim_data_pointer AnimData141 ; $8d + anim_data_pointer AnimData142 ; $8e + anim_data_pointer AnimData143 ; $8f + anim_data_pointer AnimData144 ; $90 + anim_data_pointer AnimData145 ; $91 + anim_data_pointer AnimData146 ; $92 + anim_data_pointer AnimData147 ; $93 + anim_data_pointer AnimData148 ; $94 + anim_data_pointer AnimData149 ; $95 + anim_data_pointer AnimData150 ; $96 + anim_data_pointer AnimData151 ; $97 + anim_data_pointer AnimData152 ; $98 + anim_data_pointer AnimData153 ; $99 + anim_data_pointer AnimData154 ; $9a + anim_data_pointer AnimData155 ; $9b + anim_data_pointer AnimData156 ; $9c + anim_data_pointer AnimData157 ; $9d + anim_data_pointer AnimData158 ; $9e + anim_data_pointer AnimData159 ; $9f + anim_data_pointer AnimData160 ; $a0 + anim_data_pointer AnimData161 ; $a1 + anim_data_pointer AnimData162 ; $a2 + anim_data_pointer AnimData163 ; $a3 + anim_data_pointer AnimData164 ; $a4 + anim_data_pointer AnimData165 ; $a5 + anim_data_pointer AnimData166 ; $a6 + anim_data_pointer AnimData167 ; $a7 + anim_data_pointer AnimData168 ; $a8 + anim_data_pointer AnimData169 ; $a9 + anim_data_pointer AnimData170 ; $aa + anim_data_pointer AnimData171 ; $ab + anim_data_pointer AnimData172 ; $ac + anim_data_pointer AnimData173 ; $ad + anim_data_pointer AnimData174 ; $ae + anim_data_pointer AnimData175 ; $af + anim_data_pointer AnimData176 ; $b0 + anim_data_pointer AnimData177 ; $b1 + anim_data_pointer AnimData178 ; $b2 + anim_data_pointer AnimData179 ; $b3 + anim_data_pointer AnimData180 ; $b4 + anim_data_pointer AnimData181 ; $b5 + anim_data_pointer AnimData182 ; $b6 + anim_data_pointer AnimData183 ; $b7 + anim_data_pointer AnimData184 ; $b8 + anim_data_pointer AnimData185 ; $b9 + anim_data_pointer AnimData186 ; $ba + anim_data_pointer AnimData187 ; $bb + anim_data_pointer AnimData188 ; $bc + anim_data_pointer AnimData189 ; $bd + anim_data_pointer AnimData190 ; $be + anim_data_pointer AnimData191 ; $bf + anim_data_pointer AnimData192 ; $c0 + anim_data_pointer AnimData193 ; $c1 + anim_data_pointer AnimData194 ; $c2 + anim_data_pointer AnimData195 ; $c3 + anim_data_pointer AnimData196 ; $c4 + anim_data_pointer AnimData197 ; $c5 + anim_data_pointer AnimData198 ; $c6 + anim_data_pointer AnimData199 ; $c7 + anim_data_pointer AnimData200 ; $c8 + anim_data_pointer AnimData201 ; $c9 + anim_data_pointer AnimData202 ; $ca + anim_data_pointer AnimData203 ; $cb + anim_data_pointer AnimData204 ; $cc + anim_data_pointer AnimData205 ; $cd + anim_data_pointer AnimData206 ; $ce + anim_data_pointer AnimData207 ; $cf + anim_data_pointer AnimData208 ; $d0 + anim_data_pointer AnimData209 ; $d1 + anim_data_pointer AnimData210 ; $d2 + anim_data_pointer AnimData211 ; $d3 + anim_data_pointer AnimData212 ; $d4 + anim_data_pointer AnimData213 ; $d5 + anim_data_pointer AnimData214 ; $d6 + anim_data_pointer AnimData215 ; $d7 + anim_data_pointer AnimData216 ; $d8 ; \1 = palette pointer ; \2 = number of palettes @@ -1394,9 +1399,15 @@ MapDataPointers_81697: ; 81697 (20:5697) palette_pointer Palette159, 1, 0 ; $9f palette_pointer Palette160, 1, 0 ; $a0 - INCROM $8191b, $83c5b + INCROM $8191b, $83c4c + +AnimData1:: ; 83c4c (20:7c4c) + frame_table AnimFrameTable0 + frame_data 3, 16, 0, 0 + frame_data 4, 16, 0, 0 + frame_data 0, 0, 0, 0 -Palette110:: ; 83c5b (20:3c5b) +Palette110:: ; 83c5b (20:7c5b) db $00, $00 INCROM $83c5d, $84000 diff --git a/src/engine/home.asm b/src/engine/home.asm index ac9e9c0..a7c9f6d 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -11477,7 +11477,7 @@ DrawSpriteAnimationFrame: ; 3cc4 (0:3cc4) and (1 << OAM_X_FLIP) | (1 << OAM_Y_FLIP) | (1 << OAM_PRIORITY) or b ld b, a - inc hl + inc hl ; unnecessary call SetOneObjectAttributes .endCurrentIteration pop hl @@ -11514,6 +11514,7 @@ GetAnimationFramePointer: ; 3d72 (0:3d72) ld a, [wTempPointerBank] call BankswitchROM ld a, [hli] + push af ld a, [wd4ca] rlca @@ -11525,6 +11526,7 @@ GetAnimationFramePointer: ; 3d72 (0:3d72) adc 0 ld d, a pop af + .loadPointer add BANK(SpriteNullAnimationPointer) pop hl -- cgit v1.2.3 From 86303d1158a19845896b118cc18112871aa9612f Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Sat, 26 Dec 2020 14:57:08 +0000 Subject: Identify anim flags, restructure data and renames sprite constants --- src/engine/bank03.asm | 9 +- src/engine/bank04.asm | 6 +- src/engine/bank06.asm | 2 +- src/engine/bank07.asm | 1017 ++++++++++++++++++++++++++++++++++++++++--------- src/engine/bank20.asm | 228 +++++------ 5 files changed, 958 insertions(+), 304 deletions(-) (limited to 'src/engine') diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm index 1b5d5f1..6f99e6a 100644 --- a/src/engine/bank03.asm +++ b/src/engine/bank03.asm @@ -268,8 +268,8 @@ Func_c1f8: ; c1f8 (3:41f8) ld [wd112], a ld [wd3b8], a call EnableSRAM - ld a, [s0a007] - ld [wd421], a + ld a, [sAnimationsDisabled] + ld [wAnimationsDisabled], a ld a, [s0a006] ld [wTextSpeed], a call DisableSRAM @@ -579,10 +579,13 @@ Func_c4b9: ; c4b9 (3:44b9) .asm_c4d1 ld a, b ld [wd337], a - ld a, $0 + + ; load Player's sprite for overworld + ld a, SPRITE_OW_PLAYER farcall CreateSpriteAndAnimBufferEntry ld a, [wWhichSprite] ld [wPlayerSpriteIndex], a + ld b, $2 ld a, [wCurMap] cp OVERWORLD_MAP diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index c8f1f88..439ab52 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -1175,8 +1175,8 @@ MainMenu_NewGame: ; 12704 (4:6704) call DisplayPlayerNamingScreen farcall Func_1996e call EnableSRAM - ld a, [s0a007] - ld [wd421], a + ld a, [sAnimationsDisabled] + ld [wAnimationsDisabled], a ld a, [s0a006] ld [wTextSpeed], a call DisableSRAM @@ -1481,7 +1481,7 @@ LoadSpriteDataForAnimationFrame: ; 12a5b (4:6a5b) ld bc, SPRITE_ANIM_FLAGS - SPRITE_ANIM_TILE_ID add hl, bc ld a, [hl] - and 1 << SPRITE_ANIM_FLAG_SKIP_DRAW + and 1 << SPRITE_ANIM_FLAG_UNSKIPPABLE jr nz, .quit ld bc, SPRITE_ANIM_FRAME_BANK - SPRITE_ANIM_FLAGS add hl, bc diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm index 4dcad9d..2260d7e 100644 --- a/src/engine/bank06.asm +++ b/src/engine/bank06.asm @@ -1466,7 +1466,7 @@ Func_1996e: ; 1996e (6:596e) ld [s0a006], a ld [wTextSpeed], a xor a - ld [s0a007], a + ld [sAnimationsDisabled], a ld [s0a009], a ld [s0a004], a ld [s0a005], a diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index caf3c48..8b63166 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -605,21 +605,23 @@ Func_1c8ef: ; 1c8ef (7:48ef) push de call Func_1cab3 ; hl: pointer - ld a, [wd421] + + ld a, [wAnimationsDisabled] or a jr z, .check_to_play_sfx - + ; animations are disabled push hl - lb bc, 0, $03 + ld bc, ANIM_SPRITE_ANIM_FLAGS add hl, bc ld a, [hl] - and %10000000 + ; if flag is set, play animation anyway + and (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) pop hl jr z, .return .check_to_play_sfx push hl - lb bc, 0, $04 + ld bc, ANIM_SOUND_FX_ID add hl, bc ld a, [hl] pop hl @@ -628,8 +630,12 @@ Func_1c8ef: ; 1c8ef (7:48ef) call PlaySFX .calc_addr +; this data field is always $00, +; so this calculation is unnecessary +; seems like there was supposed to be +; more than 1 function to handle animation push hl - lb bc, 0, $05 + ld bc, ANIM_HANDLER_FUNCTION add hl, bc ld a, [hl] rlca @@ -652,13 +658,14 @@ Func_1c8ef: ; 1c8ef (7:48ef) ret .address - dw .asm_1c94a + dw .handler_func -.asm_1c94a ; 1c94a (7:494a) -; if any of the first 3 bytes is $00, return carry +.handler_func ; 1c94a (7:494a) +; if any of ANIM_SPRITE_ID, ANIM_PALETTE_ID and ANIM_SPRITE_ANIM_ID +; are 0, then return ld e, l ld d, h - ld c, 3 + ld c, ANIM_SPRITE_ANIM_ID + 1 .loop ld a, [de] or a @@ -667,7 +674,7 @@ Func_1c8ef: ; 1c8ef (7:48ef) dec c jr nz, .loop - ld a, [hli] + ld a, [hli] ; ANIM_SPRITE_ID farcall CreateSpriteAndAnimBufferEntry ld a, [wWhichSprite] ld [wAnimationQueue], a ; push an animation to the queue @@ -676,15 +683,16 @@ Func_1c8ef: ; 1c8ef (7:48ef) ld [wVRAMTileOffset], a ld [wd4cb], a - ld a, [hli] + ld a, [hli] ; ANIM_PALETTE_ID farcall Func_80418 + ld a, [hli] ; ANIM_SPRITE_ANIM_ID - ld a, [hli] push af - ld a, [hli] - ld [wd42b], a + ld a, [hli] ; ANIM_SPRITE_ANIM_FLAGS + ld [wAnimFlags], a call Func_1c980 pop af + farcall StartNewSpriteAnimation or a jr .done @@ -703,7 +711,7 @@ Func_1c980: ; 1c980 (7:4980) call Func_1c9a2 push af - and %01100000 + and (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_5) or [hl] ld [hli], a ld a, b @@ -711,10 +719,10 @@ Func_1c980: ; 1c980 (7:4980) ld [hl], c ; SPRITE_ANIM_COORD_Y pop af - lb bc, 0, SPRITE_ANIM_FLAGS - SPRITE_ANIM_COORD_Y + ld bc, SPRITE_ANIM_FLAGS - SPRITE_ANIM_COORD_Y add hl, bc ld c, a - and %00000011 + and (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) or [hl] ld [hl], a pop bc @@ -728,8 +736,8 @@ Func_1c980: ; 1c980 (7:4980) Func_1c9a2: ; 1c9a2 (7:49a2) push hl ld c, 0 - ld a, [wd42b] - and %00000100 + ld a, [wAnimFlags] + and (1 << SPRITE_ANIM_FLAG_SPEED) jr nz, .calc_addr ld a, [wd4ae] @@ -768,48 +776,20 @@ Func_1c9a2: ; 1c9a2 (7:49a2) inc hl ld c, [hl] inc hl - ld a, [wd42b] + ld a, [wAnimFlags] and [hl] pop hl ret Data_1c9e0: - db $01 - db $01 - db $01 - db $01 - db $01 - db $01 - db $02 - db $02 - db $02 - db $02 - db $02 - db $02 - db $03 - db $04 - db $05 - db $06 - db $07 - db $08 - db $03 - db $04 - db $05 - db $06 - db $07 - db $08 - db $09 - db $0a - db $0b - db $0c - db $0d - db $0e - db $09 - db $0a - db $0b - db $0c - db $0d - db $0e + db $01, $01, $01, $01, $01, $01 ; player + db $02, $02, $02, $02, $02, $02 ; opponent + + db $03, $04, $05, $06, $07, $08 ; player + db $03, $04, $05, $06, $07, $08 ; opponent + + db $09, $0a, $0b, $0c, $0d, $0e ; player + db $09, $0a, $0b, $0c, $0d, $0e ; opponent macro_1ca04: MACRO db \1 @@ -819,21 +799,21 @@ ENDM Data_1ca04: ; x coord, y coord, animation flags - macro_1ca04 $58, $58, %00001000 - macro_1ca04 $28, $50, %00000000 - macro_1ca04 $88, $30, %01100011 - macro_1ca04 $58, $48, %00000000 - macro_1ca04 $18, $60, %00000000 - macro_1ca04 $38, $60, %00000000 - macro_1ca04 $58, $60, %00000000 - macro_1ca04 $78, $60, %00000000 - macro_1ca04 $98, $60, %00000000 - macro_1ca04 $58, $50, %00000000 - macro_1ca04 $98, $28, %00000000 - macro_1ca04 $78, $28, %00000000 - macro_1ca04 $58, $28, %00000000 - macro_1ca04 $38, $28, %00000000 - macro_1ca04 $18, $28, %00000000 + macro_1ca04 $58, $58, (1 << SPRITE_ANIM_FLAG_3) + macro_1ca04 $28, $50, $00 + macro_1ca04 $88, $30, (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) + macro_1ca04 $58, $48, $00 + macro_1ca04 $18, $60, $00 + macro_1ca04 $38, $60, $00 + macro_1ca04 $58, $60, $00 + macro_1ca04 $78, $60, $00 + macro_1ca04 $98, $60, $00 + macro_1ca04 $58, $50, $00 + macro_1ca04 $98, $28, $00 + macro_1ca04 $78, $28, $00 + macro_1ca04 $58, $28, $00 + macro_1ca04 $38, $28, $00 + macro_1ca04 $18, $28, $00 Func_1ca31: ; 1ca31 (7:4a31) push hl @@ -919,6 +899,7 @@ Func_1ca6e: ; 1ca6e (7:4a6e) ret ; 0x1cab3 +; gets data from Animations for anim ID in a Func_1cab3: ; 1cab3 (7:4ab3) push bc ld a, [wTempAnimation] @@ -929,7 +910,7 @@ Func_1cab3: ; 1cab3 (7:4ab3) ld c, l add hl, hl ; hl = anim * 4 add hl, bc ; hl = anim * 6 - ld bc, Data_1ce32 + ld bc, Animations add hl, bc pop bc ret @@ -1107,8 +1088,8 @@ Func_1cbcc: ; 1cbcc (7:4bcc) farcall CreateSpriteAndAnimBufferEntry ld a, [wWhichSprite] ld [de], a - ld a, $80 - ld [wd42b], a + ld a, (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) + ld [wAnimFlags], a ld c, SPRITE_ANIM_COORD_X call GetSpriteAnimBufferProperty call Func_1c9a2 @@ -1218,7 +1199,7 @@ Func_1cc66: ; 1cc66 (7:4c66) ; 0x1cc76 Func_1cc76: ; 1cc76 (7:4c76) - ld a, [wd421] + ld a, [wAnimationsDisabled] or a jr nz, .asm_1cc9e ld a, [wTempAnimation] @@ -1457,114 +1438,784 @@ Func_1ce03: ; 1ce03 (7:4e03) INCROM $1ce22, $1ce32 -macro_1ce32: MACRO - db \1 - db \2 - db \3 - db \4 - db \5 - db \6 -ENDM +; data for each animation ID (see src/constants/sprite_constants.asm) +Animations: ; 1ce32 (7:4e32) + ; $00 + db $00 ; sprite ID + db $00 ; paletteID + db $00 ; anim ID + db $00 ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $01 + db $28 ; sprite ID + db $1f ; paletteID + db $47 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $11 ; sound FX ID + db $00 ; handler function + + ; $02 + db $29 ; sprite ID + db $20 ; paletteID + db $48 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $12 ; sound FX ID + db $00 ; handler function + + ; $03 + db $2a ; sprite ID + db $21 ; paletteID + db $49 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $13 ; sound FX ID + db $00 ; handler function + + ; $04 + db $2b ; sprite ID + db $22 ; paletteID + db $4a ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $14 ; sound FX ID + db $00 ; handler function + + ; $05 + db $2c ; sprite ID + db $23 ; paletteID + db $4b ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $15 ; sound FX ID + db $00 ; handler function + + ; $06 + db $2d ; sprite ID + db $24 ; paletteID + db $4c ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $16 ; sound FX ID + db $00 ; handler function + + ; $07 + db $2d ; sprite ID + db $24 ; paletteID + db $4d ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $16 ; sound FX ID + db $00 ; handler function + + ; $08 + db $2d ; sprite ID + db $24 ; paletteID + db $4e ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $17 ; sound FX ID + db $00 ; handler function + + ; $09 + db $2e ; sprite ID + db $25 ; paletteID + db $00 ; anim ID + db $00 ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $0a + db $2f ; sprite ID + db $26 ; paletteID + db $5c ; anim ID + db $00 ; anim flags + db $18 ; sound FX ID + db $00 ; handler function + + ; $0b + db $30 ; sprite ID + db $27 ; paletteID + db $5e ; anim ID + db $00 ; anim flags + db $19 ; sound FX ID + db $00 ; handler function + + ; $0c + db $31 ; sprite ID + db $28 ; paletteID + db $5f ; anim ID + db $00 ; anim flags + db $1a ; sound FX ID + db $00 ; handler function + + ; $0d + db $32 ; sprite ID + db $29 ; paletteID + db $60 ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $1b ; sound FX ID + db $00 ; handler function + + ; $0e + db $33 ; sprite ID + db $2a ; paletteID + db $61 ; anim ID + db $00 ; anim flags + db $1c ; sound FX ID + db $00 ; handler function + + ; $0f + db $33 ; sprite ID + db $2a ; paletteID + db $62 ; anim ID + db $00 ; anim flags + db $1d ; sound FX ID + db $00 ; handler function + + ; $10 + db $34 ; sprite ID + db $2b ; paletteID + db $63 ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $1e ; sound FX ID + db $00 ; handler function + + ; $11 + db $35 ; sprite ID + db $2c ; paletteID + db $64 ; anim ID + db $00 ; anim flags + db $1f ; sound FX ID + db $00 ; handler function + + ; $12 + db $36 ; sprite ID + db $2d ; paletteID + db $69 ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $20 ; sound FX ID + db $00 ; handler function + + ; $13 + db $37 ; sprite ID + db $2e ; paletteID + db $6a ; anim ID + db $00 ; anim flags + db $21 ; sound FX ID + db $00 ; handler function + + ; $14 + db $38 ; sprite ID + db $2f ; paletteID + db $6b ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $22 ; sound FX ID + db $00 ; handler function + + ; $15 + db $39 ; sprite ID + db $30 ; paletteID + db $6c ; anim ID + db $00 ; anim flags + db $23 ; sound FX ID + db $00 ; handler function + + ; $16 + db $3a ; sprite ID + db $31 ; paletteID + db $6d ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $24 ; sound FX ID + db $00 ; handler function + + ; $17 + db $3b ; sprite ID + db $32 ; paletteID + db $6e ; anim ID + db $00 ; anim flags + db $25 ; sound FX ID + db $00 ; handler function + + ; $18 + db $3c ; sprite ID + db $33 ; paletteID + db $6f ; anim ID + db $00 ; anim flags + db $26 ; sound FX ID + db $00 ; handler function + + ; $19 + db $3d ; sprite ID + db $34 ; paletteID + db $70 ; anim ID + db (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) ; anim flags + db $27 ; sound FX ID + db $00 ; handler function + + ; $1a + db $3e ; sprite ID + db $35 ; paletteID + db $71 ; anim ID + db (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) ; anim flags + db $28 ; sound FX ID + db $00 ; handler function + + ; $1b + db $3f ; sprite ID + db $36 ; paletteID + db $72 ; anim ID + db $00 ; anim flags + db $29 ; sound FX ID + db $00 ; handler function + + ; $1c + db $3f ; sprite ID + db $36 ; paletteID + db $73 ; anim ID + db $00 ; anim flags + db $2a ; sound FX ID + db $00 ; handler function + + ; $1d + db $40 ; sprite ID + db $37 ; paletteID + db $74 ; anim ID + db $00 ; anim flags + db $2b ; sound FX ID + db $00 ; handler function + + ; $1e + db $40 ; sprite ID + db $37 ; paletteID + db $75 ; anim ID + db $00 ; anim flags + db $52 ; sound FX ID + db $00 ; handler function + + ; $1f + db $40 ; sprite ID + db $37 ; paletteID + db $76 ; anim ID + db $00 ; anim flags + db $53 ; sound FX ID + db $00 ; handler function + + ; $20 + db $41 ; sprite ID + db $38 ; paletteID + db $77 ; anim ID + db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags + db $2c ; sound FX ID + db $00 ; handler function + + ; $21 + db $42 ; sprite ID + db $39 ; paletteID + db $78 ; anim ID + db $00 ; anim flags + db $2d ; sound FX ID + db $00 ; handler function + + ; $22 + db $43 ; sprite ID + db $3a ; paletteID + db $7a ; anim ID + db $00 ; anim flags + db $2d ; sound FX ID + db $00 ; handler function + + ; $23 + db $44 ; sprite ID + db $3b ; paletteID + db $7b ; anim ID + db $00 ; anim flags + db $2e ; sound FX ID + db $00 ; handler function + + ; $24 + db $42 ; sprite ID + db $39 ; paletteID + db $79 ; anim ID + db $00 ; anim flags + db $2f ; sound FX ID + db $00 ; handler function + + ; $25 + db $45 ; sprite ID + db $3c ; paletteID + db $7c ; anim ID + db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags + db $30 ; sound FX ID + db $00 ; handler function + + ; $26 + db $46 ; sprite ID + db $3d ; paletteID + db $7d ; anim ID + db $00 ; anim flags + db $31 ; sound FX ID + db $00 ; handler function + + ; $27 + db $47 ; sprite ID + db $3e ; paletteID + db $7e ; anim ID + db $00 ; anim flags + db $32 ; sound FX ID + db $00 ; handler function + + ; $28 + db $48 ; sprite ID + db $3f ; paletteID + db $7f ; anim ID + db $00 ; anim flags + db $33 ; sound FX ID + db $00 ; handler function + + ; $29 + db $49 ; sprite ID + db $40 ; paletteID + db $80 ; anim ID + db $00 ; anim flags + db $34 ; sound FX ID + db $00 ; handler function + + ; $2a + db $4a ; sprite ID + db $41 ; paletteID + db $81 ; anim ID + db $00 ; anim flags + db $35 ; sound FX ID + db $00 ; handler function + + ; $2b + db $4b ; sprite ID + db $42 ; paletteID + db $82 ; anim ID + db $00 ; anim flags + db $36 ; sound FX ID + db $00 ; handler function + + ; $2c + db $4c ; sprite ID + db $43 ; paletteID + db $83 ; anim ID + db $00 ; anim flags + db $37 ; sound FX ID + db $00 ; handler function + + ; $2d + db $4d ; sprite ID + db $44 ; paletteID + db $84 ; anim ID + db $00 ; anim flags + db $38 ; sound FX ID + db $00 ; handler function + + ; $2e + db $4e ; sprite ID + db $45 ; paletteID + db $85 ; anim ID + db $00 ; anim flags + db $39 ; sound FX ID + db $00 ; handler function + + ; $2f + db $4f ; sprite ID + db $46 ; paletteID + db $86 ; anim ID + db $00 ; anim flags + db $3a ; sound FX ID + db $00 ; handler function + + ; $30 + db $50 ; sprite ID + db $47 ; paletteID + db $87 ; anim ID + db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags + db $3b ; sound FX ID + db $00 ; handler function + + ; $31 + db $51 ; sprite ID + db $48 ; paletteID + db $88 ; anim ID + db $00 ; anim flags + db $3c ; sound FX ID + db $00 ; handler function + + ; $32 + db $52 ; sprite ID + db $49 ; paletteID + db $89 ; anim ID + db $00 ; anim flags + db $3d ; sound FX ID + db $00 ; handler function + + ; $33 + db $53 ; sprite ID + db $4a ; paletteID + db $8a ; anim ID + db $00 ; anim flags + db $3e ; sound FX ID + db $00 ; handler function + + ; $34 + db $54 ; sprite ID + db $4b ; paletteID + db $8b ; anim ID + db $00 ; anim flags + db $3f ; sound FX ID + db $00 ; handler function + + ; $35 + db $55 ; sprite ID + db $4c ; paletteID + db $8c ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $40 ; sound FX ID + db $00 ; handler function + + ; $36 + db $56 ; sprite ID + db $4d ; paletteID + db $8d ; anim ID + db $00 ; anim flags + db $41 ; sound FX ID + db $00 ; handler function + + ; $37 + db $57 ; sprite ID + db $4e ; paletteID + db $8e ; anim ID + db $00 ; anim flags + db $42 ; sound FX ID + db $00 ; handler function + + ; $38 + db $58 ; sprite ID + db $4f ; paletteID + db $8f ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $43 ; sound FX ID + db $00 ; handler function + + ; $39 + db $59 ; sprite ID + db $50 ; paletteID + db $90 ; anim ID + db $00 ; anim flags + db $44 ; sound FX ID + db $00 ; handler function + + ; $3a + db $5a ; sprite ID + db $51 ; paletteID + db $92 ; anim ID + db $00 ; anim flags + db $45 ; sound FX ID + db $00 ; handler function + + ; $3b + db $5b ; sprite ID + db $52 ; paletteID + db $93 ; anim ID + db $00 ; anim flags + db $46 ; sound FX ID + db $00 ; handler function + + ; $3c + db $5c ; sprite ID + db $53 ; paletteID + db $94 ; anim ID + db $00 ; anim flags + db $47 ; sound FX ID + db $00 ; handler function + + ; $3d + db $5c ; sprite ID + db $53 ; paletteID + db $95 ; anim ID + db $00 ; anim flags + db $48 ; sound FX ID + db $00 ; handler function + + ; $3e + db $5d ; sprite ID + db $54 ; paletteID + db $97 ; anim ID + db $00 ; anim flags + db $49 ; sound FX ID + db $00 ; handler function + + ; $3f + db $5e ; sprite ID + db $55 ; paletteID + db $99 ; anim ID + db $00 ; anim flags + db $4a ; sound FX ID + db $00 ; handler function + + ; $40 + db $4a ; sprite ID + db $56 ; paletteID + db $81 ; anim ID + db $00 ; anim flags + db $4b ; sound FX ID + db $00 ; handler function + + ; $41 + db $5c ; sprite ID + db $53 ; paletteID + db $96 ; anim ID + db $00 ; anim flags + db $47 ; sound FX ID + db $00 ; handler function + + ; $42 + db $2d ; sprite ID + db $24 ; paletteID + db $4d ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $16 ; sound FX ID + db $00 ; handler function + + ; $43 + db $2d ; sprite ID + db $24 ; paletteID + db $4e ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $17 ; sound FX ID + db $00 ; handler function + + ; $44 + db $2f ; sprite ID + db $26 ; paletteID + db $5c ; anim ID + db $00 ; anim flags + db $18 ; sound FX ID + db $00 ; handler function + + ; $45 + db $3a ; sprite ID + db $31 ; paletteID + db $6d ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $24 ; sound FX ID + db $00 ; handler function + + ; $46 + db $5f ; sprite ID + db $57 ; paletteID + db $9a ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags + db $11 ; sound FX ID + db $00 ; handler function + + ; $47 + db $35 ; sprite ID + db $2c ; paletteID + db $65 ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $5c ; sound FX ID + db $00 ; handler function + + ; $48 + db $35 ; sprite ID + db $2c ; paletteID + db $66 ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $49 + db $5d ; sprite ID + db $54 ; paletteID + db $98 ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $4c ; sound FX ID + db $00 ; handler function + + ; $4a + db $59 ; sprite ID + db $50 ; paletteID + db $91 ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $4d ; sound FX ID + db $00 ; handler function + + ; $4b + db $60 ; sprite ID + db $58 ; paletteID + db $9b ; anim ID + db $00 ; anim flags + db $4e ; sound FX ID + db $00 ; handler function + + ; $4c + db $61 ; sprite ID + db $59 ; paletteID + db $9c ; anim ID + db $00 ; anim flags + db $4f ; sound FX ID + db $00 ; handler function + + ; $4d + db $62 ; sprite ID + db $5a ; paletteID + db $9d ; anim ID + db $00 ; anim flags + db $50 ; sound FX ID + db $00 ; handler function + + ; $4e + db $35 ; sprite ID + db $2c ; paletteID + db $67 ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $51 ; sound FX ID + db $00 ; handler function + + ; $4f + db $35 ; sprite ID + db $2c ; paletteID + db $68 ; anim ID + db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $51 ; sound FX ID + db $00 ; handler function + + ; $50 + db $63 ; sprite ID + db $5b ; paletteID + db $9e ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $51 + db $63 ; sprite ID + db $5b ; paletteID + db $9f ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $07 ; sound FX ID + db $00 ; handler function + + ; $52 + db $63 ; sprite ID + db $5b ; paletteID + db $a0 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $07 ; sound FX ID + db $00 ; handler function + + ; $53 + db $63 ; sprite ID + db $5b ; paletteID + db $a1 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $07 ; sound FX ID + db $00 ; handler function + + ; $54 + db $63 ; sprite ID + db $5b ; paletteID + db $a2 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $55 + db $63 ; sprite ID + db $5b ; paletteID + db $a3 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $56 + db $63 ; sprite ID + db $5b ; paletteID + db $a4 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $57 + db $63 ; sprite ID + db $5b ; paletteID + db $a5 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $58 + db $64 ; sprite ID + db $5c ; paletteID + db $a7 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $59 + db $64 ; sprite ID + db $5c ; paletteID + db $a8 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $0b ; sound FX ID + db $00 ; handler function + + ; $5a + db $64 ; sprite ID + db $5c ; paletteID + db $a9 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $0b ; sound FX ID + db $00 ; handler function + + ; $5b + db $64 ; sprite ID + db $5c ; paletteID + db $aa ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $5c + db $64 ; sprite ID + db $5c ; paletteID + db $ab ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $5d + db $65 ; sprite ID + db $5d ; paletteID + db $ac ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $5e + db $65 ; sprite ID + db $5d ; paletteID + db $ad ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $5f + db $65 ; sprite ID + db $5d ; paletteID + db $ae ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function + + ; $60 + db $63 ; sprite ID + db $5b ; paletteID + db $a6 ; anim ID + db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags + db $00 ; sound FX ID + db $00 ; handler function -Data_1ce32: ; 1ce32 (7:4e32) -; sprite ID, palette ID, anim ID, anim flags, sound fx ID, ? - macro_1ce32 $00, $00, $00, $00, $00, $00 ; $00 - macro_1ce32 $28, $1f, $47, %10000000, $11, $00 ; $01 - macro_1ce32 $29, $20, $48, %10000000, $12, $00 ; $02 - macro_1ce32 $2a, $21, $49, %10000000, $13, $00 ; $03 - macro_1ce32 $2b, $22, $4a, %10000000, $14, $00 ; $04 - macro_1ce32 $2c, $23, $4b, %10000000, $15, $00 ; $05 - macro_1ce32 $2d, $24, $4c, %10000000, $16, $00 ; $06 - macro_1ce32 $2d, $24, $4d, %10000000, $16, $00 ; $07 - macro_1ce32 $2d, $24, $4e, %10000000, $17, $00 ; $08 - macro_1ce32 $2e, $25, $00, $00, $00, $00 ; $09 - macro_1ce32 $2f, $26, $5c, $00, $18, $00 ; $0a - macro_1ce32 $30, $27, $5e, $00, $19, $00 ; $0b - macro_1ce32 $31, $28, $5f, $00, $1a, $00 ; $0c - macro_1ce32 $32, $29, $60, %00000100, $1b, $00 ; $0d - macro_1ce32 $33, $2a, $61, $00, $1c, $00 ; $0e - macro_1ce32 $33, $2a, $62, $00, $1d, $00 ; $0f - macro_1ce32 $34, $2b, $63, %00000100, $1e, $00 ; $10 - macro_1ce32 $35, $2c, $64, $00, $1f, $00 ; $11 - macro_1ce32 $36, $2d, $69, %00000100, $20, $00 ; $12 - macro_1ce32 $37, $2e, $6a, $00, $21, $00 ; $13 - macro_1ce32 $38, $2f, $6b, %00000100, $22, $00 ; $14 - macro_1ce32 $39, $30, $6c, $00, $23, $00 ; $15 - macro_1ce32 $3a, $31, $6d, %00000100, $24, $00 ; $16 - macro_1ce32 $3b, $32, $6e, $00, $25, $00 ; $17 - macro_1ce32 $3c, $33, $6f, $00, $26, $00 ; $18 - macro_1ce32 $3d, $34, $70, %01000000 | %00000010, $27, $00 ; $19 - macro_1ce32 $3e, $35, $71, %01000000 | %00000010, $28, $00 ; $1a - macro_1ce32 $3f, $36, $72, $00, $29, $00 ; $1b - macro_1ce32 $3f, $36, $73, $00, $2a, $00 ; $1c - macro_1ce32 $40, $37, $74, $00, $2b, $00 ; $1d - macro_1ce32 $40, $37, $75, $00, $52, $00 ; $1e - macro_1ce32 $40, $37, $76, $00, $53, $00 ; $1f - macro_1ce32 $41, $38, $77, %00100000 | %00000001, $2c, $00 ; $20 - macro_1ce32 $42, $39, $78, $00, $2d, $00 ; $21 - macro_1ce32 $43, $3a, $7a, $00, $2d, $00 ; $22 - macro_1ce32 $44, $3b, $7b, $00, $2e, $00 ; $23 - macro_1ce32 $42, $39, $79, $00, $2f, $00 ; $24 - macro_1ce32 $45, $3c, $7c, %00100000 | %00000001, $30, $00 ; $25 - macro_1ce32 $46, $3d, $7d, $00, $31, $00 ; $26 - macro_1ce32 $47, $3e, $7e, $00, $32, $00 ; $27 - macro_1ce32 $48, $3f, $7f, $00, $33, $00 ; $28 - macro_1ce32 $49, $40, $80, $00, $34, $00 ; $29 - macro_1ce32 $4a, $41, $81, $00, $35, $00 ; $2a - macro_1ce32 $4b, $42, $82, $00, $36, $00 ; $2b - macro_1ce32 $4c, $43, $83, $00, $37, $00 ; $2c - macro_1ce32 $4d, $44, $84, $00, $38, $00 ; $2d - macro_1ce32 $4e, $45, $85, $00, $39, $00 ; $2e - macro_1ce32 $4f, $46, $86, $00, $3a, $00 ; $2f - macro_1ce32 $50, $47, $87, %00100000 | %00000001, $3b, $00 ; $30 - macro_1ce32 $51, $48, $88, $00, $3c, $00 ; $31 - macro_1ce32 $52, $49, $89, $00, $3d, $00 ; $32 - macro_1ce32 $53, $4a, $8a, $00, $3e, $00 ; $33 - macro_1ce32 $54, $4b, $8b, $00, $3f, $00 ; $34 - macro_1ce32 $55, $4c, $8c, %00000100, $40, $00 ; $35 - macro_1ce32 $56, $4d, $8d, $00, $41, $00 ; $36 - macro_1ce32 $57, $4e, $8e, $00, $42, $00 ; $37 - macro_1ce32 $58, $4f, $8f, %00000100, $43, $00 ; $38 - macro_1ce32 $59, $50, $90, $00, $44, $00 ; $39 - macro_1ce32 $5a, $51, $92, $00, $45, $00 ; $3a - macro_1ce32 $5b, $52, $93, $00, $46, $00 ; $3b - macro_1ce32 $5c, $53, $94, $00, $47, $00 ; $3c - macro_1ce32 $5c, $53, $95, $00, $48, $00 ; $3d - macro_1ce32 $5d, $54, $97, $00, $49, $00 ; $3e - macro_1ce32 $5e, $55, $99, $00, $4a, $00 ; $3f - macro_1ce32 $4a, $56, $81, $00, $4b, $00 ; $40 - macro_1ce32 $5c, $53, $96, $00, $47, $00 ; $41 - macro_1ce32 $2d, $24, $4d, %10000000, $16, $00 ; $42 - macro_1ce32 $2d, $24, $4e, %10000000, $17, $00 ; $43 - macro_1ce32 $2f, $26, $5c, $00, $18, $00 ; $44 - macro_1ce32 $3a, $31, $6d, %00000100, $24, $00 ; $45 - macro_1ce32 $5f, $57, $9a, %10000000, $11, $00 ; $46 - macro_1ce32 $35, $2c, $65, %00000100, $5c, $00 ; $47 - macro_1ce32 $35, $2c, $66, %00000100, $00, $00 ; $48 - macro_1ce32 $5d, $54, $98, %00000100, $4c, $00 ; $49 - macro_1ce32 $59, $50, $91, %00000100, $4d, $00 ; $4a - macro_1ce32 $60, $58, $9b, $00, $4e, $00 ; $4b - macro_1ce32 $61, $59, $9c, $00, $4f, $00 ; $4c - macro_1ce32 $62, $5a, $9d, $00, $50, $00 ; $4d - macro_1ce32 $35, $2c, $67, %0000100, $51, $00 ; $4e - macro_1ce32 $35, $2c, $68, %0000100, $51, $00 ; $4f - macro_1ce32 $63, $5b, $9e, %10000000 | %00001000 | %00000100, $00, $00 ; $50 - macro_1ce32 $63, $5b, $9f, %10000000 | %00001000 | %00000100, $07, $00 ; $51 - macro_1ce32 $63, $5b, $a0, %10000000 | %00001000 | %00000100, $07, $00 ; $52 - macro_1ce32 $63, $5b, $a1, %10000000 | %00001000 | %00000100, $07, $00 ; $53 - macro_1ce32 $63, $5b, $a2, %10000000 | %00000100, $00, $00 ; $54 - macro_1ce32 $63, $5b, $a3, %10000000 | %00001000 | %00000100, $00, $00 ; $55 - macro_1ce32 $63, $5b, $a4, %10000000 | %00001000 | %00000100, $00, $00 ; $56 - macro_1ce32 $63, $5b, $a5, %10000000 | %00001000 | %00000100, $00, $00 ; $57 - macro_1ce32 $64, $5c, $a7, %10000000 | %00001000 | %00000100, $00, $00 ; $58 - macro_1ce32 $64, $5c, $a8, %10000000 | %00001000 | %00000100, $0b, $00 ; $59 - macro_1ce32 $64, $5c, $a9, %10000000 | %00001000 | %00000100, $0b, $00 ; $5a - macro_1ce32 $64, $5c, $aa, %10000000 | %00000100, $00, $00 ; $5b - macro_1ce32 $64, $5c, $ab, %10000000 | %00000100, $00, $00 ; $5c - macro_1ce32 $65, $5d, $ac, %10000000 | %00000100, $00, $00 ; $5d - macro_1ce32 $65, $5d, $ad, %10000000 | %00000100, $00, $00 ; $5e - macro_1ce32 $65, $5d, $ae, %10000000 | %00000100, $00, $00 ; $5f - macro_1ce32 $63, $5b, $a6, %10000000 | %00000100, $00, $00 ; $60 ; 0x1d078 Func_1d078: ; 1d078 (7:5078) diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index 4e33470..e0db1f7 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -888,120 +888,120 @@ gfx_pointer: MACRO ENDM MapDataPointers_8116b: ; 8116b (20:516b) - gfx_pointer OWSpritePlayer, $14 ; $00 - gfx_pointer RonaldOWGfx, $14 ; $01 - gfx_pointer DoctorMasonOWGfx, $14 ; $02 - gfx_pointer OWSprite0, $14 ; $03 - gfx_pointer OWSprite1, $14 ; $04 - gfx_pointer OWSprite2, $14 ; $05 - gfx_pointer OWSprite3, $14 ; $06 - gfx_pointer OWSprite4, $14 ; $07 - gfx_pointer OWSprite5, $1b ; $08 - gfx_pointer OWSprite6, $14 ; $09 - gfx_pointer OWSprite7, $14 ; $0a - gfx_pointer OWSprite8, $14 ; $0b - gfx_pointer OWSprite9, $14 ; $0c - gfx_pointer OWSprite10, $14 ; $0d - gfx_pointer OWSprite11, $14 ; $0e - gfx_pointer OWSprite12, $14 ; $0f - gfx_pointer OWSprite13, $14 ; $10 - gfx_pointer OWSprite14, $14 ; $11 - gfx_pointer OWSprite15, $14 ; $12 - gfx_pointer OWSprite16, $14 ; $13 - gfx_pointer OWSprite17, $14 ; $14 - gfx_pointer OWSprite18, $14 ; $15 - gfx_pointer OWSprite19, $14 ; $16 - gfx_pointer OWSprite20, $14 ; $17 - gfx_pointer OWSprite21, $14 ; $18 - gfx_pointer OWSprite22, $14 ; $19 - gfx_pointer OWSprite23, $14 ; $1a - gfx_pointer OWSprite24, $14 ; $1b - gfx_pointer OWSprite25, $14 ; $1c - gfx_pointer OWSprite26, $14 ; $1d - gfx_pointer OWSprite27, $14 ; $1e - gfx_pointer OWSprite28, $14 ; $1f - gfx_pointer OWSprite29, $14 ; $20 - gfx_pointer HelpDeskLadyGfx, $08 ; $21 - gfx_pointer OWSprite30, $14 ; $22 - gfx_pointer OWSprite31, $14 ; $23 - gfx_pointer OWSprite32, $14 ; $24 - gfx_pointer OverworldMapOAMGfx, $08 ; $25 - gfx_pointer Duel0Gfx, $16 ; $26 - gfx_pointer Duel63Gfx, $0a ; $27 - gfx_pointer Duel65Gfx, $0b ; $28 - gfx_pointer Duel1Gfx, $06 ; $29 - gfx_pointer Duel2Gfx, $08 ; $2a - gfx_pointer Duel55Gfx, $02 ; $2b - gfx_pointer Duel58Gfx, $04 ; $2c - gfx_pointer Duel3Gfx, $09 ; $2d - gfx_pointer Duel4Gfx, $12 ; $2e - gfx_pointer Duel5Gfx, $09 ; $2f - gfx_pointer Duel6Gfx, $11 ; $30 - gfx_pointer Duel59Gfx, $03 ; $31 - gfx_pointer Duel7Gfx, $2d ; $32 - gfx_pointer Duel8Gfx, $0d ; $33 - gfx_pointer Duel9Gfx, $1c ; $34 - gfx_pointer Duel10Gfx, $4c ; $35 - gfx_pointer Duel61Gfx, $03 ; $36 - gfx_pointer Duel11Gfx, $1b ; $37 - gfx_pointer Duel12Gfx, $07 ; $38 - gfx_pointer Duel13Gfx, $0c ; $39 - gfx_pointer Duel62Gfx, $01 ; $3a - gfx_pointer Duel14Gfx, $22 ; $3b - gfx_pointer Duel15Gfx, $20 ; $3c - gfx_pointer Duel16Gfx, $0a ; $3d - gfx_pointer Duel17Gfx, $25 ; $3e - gfx_pointer Duel18Gfx, $18 ; $3f - gfx_pointer Duel19Gfx, $1b ; $40 - gfx_pointer Duel20Gfx, $08 ; $41 - gfx_pointer Duel21Gfx, $0d ; $42 - gfx_pointer Duel22Gfx, $22 ; $43 - gfx_pointer Duel23Gfx, $0c ; $44 - gfx_pointer Duel24Gfx, $25 ; $45 - gfx_pointer Duel25Gfx, $22 ; $46 - gfx_pointer Duel26Gfx, $0c ; $47 - gfx_pointer Duel27Gfx, $4c ; $48 - gfx_pointer Duel28Gfx, $08 ; $49 - gfx_pointer Duel29Gfx, $07 ; $4a - gfx_pointer Duel56Gfx, $01 ; $4b - gfx_pointer Duel30Gfx, $1a ; $4c - gfx_pointer Duel31Gfx, $0a ; $4d - gfx_pointer Duel32Gfx, $2e ; $4e - gfx_pointer Duel33Gfx, $08 ; $4f - gfx_pointer Duel34Gfx, $07 ; $50 - gfx_pointer Duel35Gfx, $1c ; $51 - gfx_pointer Duel66Gfx, $04 ; $52 - gfx_pointer Duel36Gfx, $08 ; $53 - gfx_pointer Duel37Gfx, $0b ; $54 - gfx_pointer Duel57Gfx, $01 ; $55 - gfx_pointer Duel38Gfx, $1c ; $56 - gfx_pointer Duel39Gfx, $16 ; $57 - gfx_pointer Duel40Gfx, $10 ; $58 - gfx_pointer Duel41Gfx, $0f ; $59 - gfx_pointer Duel42Gfx, $07 ; $5a - gfx_pointer Duel43Gfx, $0a ; $5b - gfx_pointer Duel44Gfx, $09 ; $5c - gfx_pointer Duel60Gfx, $02 ; $5d - gfx_pointer Duel64Gfx, $02 ; $5e - gfx_pointer Duel45Gfx, $03 ; $5f - gfx_pointer Duel46Gfx, $08 ; $60 - gfx_pointer Duel47Gfx, $0f ; $61 - gfx_pointer Duel48Gfx, $03 ; $62 - gfx_pointer Duel49Gfx, $05 ; $63 - gfx_pointer Duel50Gfx, $17 ; $64 - gfx_pointer Duel51Gfx, $36 ; $65 - gfx_pointer Duel52Gfx, $0b ; $66 - gfx_pointer Duel53Gfx, $06 ; $67 - gfx_pointer Duel54Gfx, $16 ; $68 - gfx_pointer BoosterPackOAMGfx, $20 ; $69 - gfx_pointer PressStartGfx, $14 ; $6a - gfx_pointer GrassGfx, $04 ; $6b - gfx_pointer FireGfx, $04 ; $6c - gfx_pointer WaterGfx, $04 ; $6d - gfx_pointer ColorlessGfx, $04 ; $6e - gfx_pointer LightningGfx, $04 ; $6f - gfx_pointer PsychicGfx, $04 ; $70 - gfx_pointer FightingGfx, $04 ; $71 + gfx_pointer OWPlayerGfx, $14 ; SPRITE_OW_PLAYER + gfx_pointer OWRonaldGfx, $14 ; SPRITE_OW_RONALD + gfx_pointer OWDrMasonGfx, $14 ; SPRITE_OW_DRMASON + gfx_pointer OWIshiharaGfx, $14 ; SPRITE_OW_ISHIHARA + gfx_pointer OWImakuniGfx, $14 ; SPRITE_OW_IMAKUNI + gfx_pointer OWNikkiGfx, $14 ; SPRITE_OW_NIKKI + gfx_pointer OWRickGfx, $14 ; SPRITE_OW_RICK + gfx_pointer OWKenGfx, $14 ; SPRITE_OW_KEN + gfx_pointer OWAmyGfx, $1b ; SPRITE_OW_AMY + gfx_pointer OWIsaacGfx, $14 ; SPRITE_OW_ISAAC + gfx_pointer OWMitchGfx, $14 ; SPRITE_OW_MITCH + gfx_pointer OWGeneGfx, $14 ; SPRITE_OW_GENE + gfx_pointer OWMurrayGfx, $14 ; SPRITE_OW_MURRAY + gfx_pointer OWCourtneyGfx, $14 ; SPRITE_OW_COURTNEY + gfx_pointer OWSteveGfx, $14 ; SPRITE_OW_STEVE + gfx_pointer OWJackGfx, $14 ; SPRITE_OW_JACK + gfx_pointer OWRodGfx, $14 ; SPRITE_OW_ROD + gfx_pointer OWBoyGfx, $14 ; SPRITE_OW_BOY + gfx_pointer OWLadGfx, $14 ; SPRITE_OW_LAD + gfx_pointer OWSpecsGfx, $14 ; SPRITE_OW_SPECS + gfx_pointer OWButchGfx, $14 ; SPRITE_OW_BUTCH + gfx_pointer OWManiaGfx, $14 ; SPRITE_OW_MANIA + gfx_pointer OWJoshuaGfx, $14 ; SPRITE_OW_JOSHUA + gfx_pointer OWHoodGfx, $14 ; SPRITE_OW_HOOD + gfx_pointer OWTechGfx, $14 ; SPRITE_OW_TECH + gfx_pointer OWChapGfx, $14 ; SPRITE_OW_CHAP + gfx_pointer OWManGfx, $14 ; SPRITE_OW_MAN + gfx_pointer OWPappyGfx, $14 ; SPRITE_OW_PAPPY + gfx_pointer OWGirlGfx, $14 ; SPRITE_OW_GIRL + gfx_pointer OWLass1Gfx, $14 ; SPRITE_OW_LASS1 + gfx_pointer OWLass2Gfx, $14 ; SPRITE_OW_LASS2 + gfx_pointer OWLass3Gfx, $14 ; SPRITE_OW_LASS3 + gfx_pointer OWSwimmerGfx, $14 ; SPRITE_OW_SWIMMER + gfx_pointer OWClerkGfx, $08 ; SPRITE_OW_CLERK + gfx_pointer OWGalGfx, $14 ; SPRITE_OW_GAL + gfx_pointer OWWomanGfx, $14 ; SPRITE_OW_WOMAN + gfx_pointer OWGrannyGfx, $14 ; SPRITE_OW_GRANNY + gfx_pointer OverworldMapOAMGfx, $08 ; SPRITE_OW_MAP_OAM + gfx_pointer Duel0Gfx, $16 ; SPRITE_DUEL_0 + gfx_pointer Duel63Gfx, $0a ; SPRITE_DUEL_63 + gfx_pointer DuelGlowGfx, $0b ; SPRITE_DUEL_GLOW + gfx_pointer Duel1Gfx, $06 ; SPRITE_DUEL_1 + gfx_pointer Duel2Gfx, $08 ; SPRITE_DUEL_2 + gfx_pointer Duel55Gfx, $02 ; SPRITE_DUEL_55 + gfx_pointer Duel58Gfx, $04 ; SPRITE_DUEL_58 + gfx_pointer Duel3Gfx, $09 ; SPRITE_DUEL_3 + gfx_pointer Duel4Gfx, $12 ; SPRITE_DUEL_4 + gfx_pointer Duel5Gfx, $09 ; SPRITE_DUEL_5 + gfx_pointer Duel6Gfx, $11 ; SPRITE_DUEL_6 + gfx_pointer Duel59Gfx, $03 ; SPRITE_DUEL_59 + gfx_pointer Duel7Gfx, $2d ; SPRITE_DUEL_7 + gfx_pointer Duel8Gfx, $0d ; SPRITE_DUEL_8 + gfx_pointer Duel9Gfx, $1c ; SPRITE_DUEL_9 + gfx_pointer Duel10Gfx, $4c ; SPRITE_DUEL_10 + gfx_pointer Duel61Gfx, $03 ; SPRITE_DUEL_61 + gfx_pointer Duel11Gfx, $1b ; SPRITE_DUEL_11 + gfx_pointer Duel12Gfx, $07 ; SPRITE_DUEL_12 + gfx_pointer Duel13Gfx, $0c ; SPRITE_DUEL_13 + gfx_pointer Duel62Gfx, $01 ; SPRITE_DUEL_62 + gfx_pointer Duel14Gfx, $22 ; SPRITE_DUEL_14 + gfx_pointer Duel15Gfx, $20 ; SPRITE_DUEL_15 + gfx_pointer Duel16Gfx, $0a ; SPRITE_DUEL_16 + gfx_pointer Duel17Gfx, $25 ; SPRITE_DUEL_17 + gfx_pointer Duel18Gfx, $18 ; SPRITE_DUEL_18 + gfx_pointer Duel19Gfx, $1b ; SPRITE_DUEL_19 + gfx_pointer Duel20Gfx, $08 ; SPRITE_DUEL_20 + gfx_pointer Duel21Gfx, $0d ; SPRITE_DUEL_21 + gfx_pointer Duel22Gfx, $22 ; SPRITE_DUEL_22 + gfx_pointer Duel23Gfx, $0c ; SPRITE_DUEL_23 + gfx_pointer Duel24Gfx, $25 ; SPRITE_DUEL_24 + gfx_pointer Duel25Gfx, $22 ; SPRITE_DUEL_25 + gfx_pointer Duel26Gfx, $0c ; SPRITE_DUEL_26 + gfx_pointer Duel27Gfx, $4c ; SPRITE_DUEL_27 + gfx_pointer Duel28Gfx, $08 ; SPRITE_DUEL_28 + gfx_pointer Duel29Gfx, $07 ; SPRITE_DUEL_29 + gfx_pointer Duel56Gfx, $01 ; SPRITE_DUEL_56 + gfx_pointer Duel30Gfx, $1a ; SPRITE_DUEL_30 + gfx_pointer Duel31Gfx, $0a ; SPRITE_DUEL_31 + gfx_pointer Duel32Gfx, $2e ; SPRITE_DUEL_32 + gfx_pointer Duel33Gfx, $08 ; SPRITE_DUEL_33 + gfx_pointer Duel34Gfx, $07 ; SPRITE_DUEL_34 + gfx_pointer Duel35Gfx, $1c ; SPRITE_DUEL_35 + gfx_pointer Duel66Gfx, $04 ; SPRITE_DUEL_66 + gfx_pointer Duel36Gfx, $08 ; SPRITE_DUEL_36 + gfx_pointer Duel37Gfx, $0b ; SPRITE_DUEL_37 + gfx_pointer Duel57Gfx, $01 ; SPRITE_DUEL_57 + gfx_pointer Duel38Gfx, $1c ; SPRITE_DUEL_38 + gfx_pointer Duel39Gfx, $16 ; SPRITE_DUEL_39 + gfx_pointer Duel40Gfx, $10 ; SPRITE_DUEL_40 + gfx_pointer Duel41Gfx, $0f ; SPRITE_DUEL_41 + gfx_pointer Duel42Gfx, $07 ; SPRITE_DUEL_42 + gfx_pointer Duel43Gfx, $0a ; SPRITE_DUEL_43 + gfx_pointer Duel44Gfx, $09 ; SPRITE_DUEL_44 + gfx_pointer Duel60Gfx, $02 ; SPRITE_DUEL_60 + gfx_pointer Duel64Gfx, $02 ; SPRITE_DUEL_64 + gfx_pointer Duel45Gfx, $03 ; SPRITE_DUEL_45 + gfx_pointer Duel46Gfx, $08 ; SPRITE_DUEL_46 + gfx_pointer Duel47Gfx, $0f ; SPRITE_DUEL_47 + gfx_pointer Duel48Gfx, $03 ; SPRITE_DUEL_48 + gfx_pointer Duel49Gfx, $05 ; SPRITE_DUEL_49 + gfx_pointer Duel50Gfx, $17 ; SPRITE_DUEL_50 + gfx_pointer Duel51Gfx, $36 ; SPRITE_DUEL_51 + gfx_pointer Duel52Gfx, $0b ; SPRITE_DUEL_52 + gfx_pointer Duel53Gfx, $06 ; SPRITE_DUEL_53 + gfx_pointer Duel54Gfx, $16 ; SPRITE_DUEL_54 + gfx_pointer BoosterPackOAMGfx, $20 ; SPRITE_BOOSTER_PACK_OAM + gfx_pointer PressStartGfx, $14 ; SPRITE_PRESS_START + gfx_pointer GrassGfx, $04 ; SPRITE_GRASS + gfx_pointer FireGfx, $04 ; SPRITE_FIRE + gfx_pointer WaterGfx, $04 ; SPRITE_WATER + gfx_pointer ColorlessGfx, $04 ; SPRITE_COLORLESS + gfx_pointer LightningGfx, $04 ; SPRITE_LIGHTNING + gfx_pointer PsychicGfx, $04 ; SPRITE_PSYCHIC + gfx_pointer FightingGfx, $04 ; SPRITE_FIGHTING ; \1 = anim data pointer anim_data_pointer: MACRO -- cgit v1.2.3 From b016f02688759c90e96567033dc1478ab0cd73ef Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Sat, 26 Dec 2020 19:23:07 +0000 Subject: Work on animation-related WRAM and sprite IDs --- src/engine/bank01.asm | 4 +- src/engine/bank04.asm | 6 +- src/engine/bank06.asm | 22 +-- src/engine/bank07.asm | 484 ++++++++++++++++++++++++++------------------------ src/engine/home.asm | 1 + 5 files changed, 266 insertions(+), 251 deletions(-) (limited to 'src/engine') diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index 9f54bb1..6cdca34 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -6894,8 +6894,8 @@ Func_6cab: ; 6cab (1:6cab) .asm_6ccb xor a ld [wd4b0], a - ld a, $00 - ld [wd4ae], a + ld a, DUEL_ANIM_SCREEN_MAIN_SCENE + ld [wDuelAnimationScreen], a pop af call Func_3b6a .asm_6cd8 diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm index 439ab52..c3f423d 100644 --- a/src/engine/bank04.asm +++ b/src/engine/bank04.asm @@ -494,7 +494,7 @@ LoadOverworldMapSelection: ; 10f61 (4:4f61) INCLUDE "data/overworld_indexes.asm" Func_10fbc: ; 10fbc (4:4fbc) - ld a, $25 + ld a, SPRITE_OW_MAP_OAM farcall CreateSpriteAndAnimBufferEntry ld c, SPRITE_ANIM_COORD_X call GetSpriteAnimBufferProperty @@ -517,7 +517,7 @@ Func_10fde: ; 10fde (4:4fde) ld [wd33d], a xor a ld [wd33e], a - ld a, $25 + ld a, SPRITE_OW_MAP_OAM call CreateSpriteAndAnimBufferEntry ld a, [wWhichSprite] ld [wd33b], a @@ -859,7 +859,7 @@ LoadNPCSpriteData: ; 11857 (4:5857) ld a, [hli] ld [wTempNPC], a ld a, [hli] - ld [wd3b3], a + ld [wNPCSpriteID], a ld a, [hli] ld [wd3b1], a ld a, [hli] diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm index 2260d7e..addf336 100644 --- a/src/engine/bank06.asm +++ b/src/engine/bank06.asm @@ -1073,8 +1073,8 @@ Func_18f9c: ; 18f9c (6:4f9c) call Func_3b21 pop de push de - ld a, $00 - ld [wd4ae], a + ld a, DUEL_ANIM_SCREEN_MAIN_SCENE + ld [wDuelAnimationScreen], a ld a, $01 ld [$d4b3], a xor a @@ -1212,8 +1212,8 @@ Func_1909d: ; 1909d (6:509d) jr z, .asm_50ad cp $01 ret nz - ld a, $00 - ld [wd4ae], a + ld a, DUEL_ANIM_SCREEN_MAIN_SCENE + ld [wDuelAnimationScreen], a ret .asm_50ad ld a, [wd4b0] @@ -1239,24 +1239,24 @@ Func_1909d: ; 1909d (6:509d) .asm_50d2 ld l, $04 ld h, $c2 - ld a, $01 + ld a, DUEL_ANIM_SCREEN_PLAYER_PLAY_AREA jr .asm_50f0 .asm_50da ld l, $04 ld h, $c3 - ld a, $01 + ld a, DUEL_ANIM_SCREEN_PLAYER_PLAY_AREA jr .asm_50f0 .asm_50e2 ld l, $05 ld h, $c3 - ld a, $02 + ld a, DUEL_ANIM_SCREEN_OPP_PLAY_AREA jr .asm_50f0 .asm_50ea ld l, $05 ld h, $c2 - ld a, $02 + ld a, DUEL_ANIM_SCREEN_OPP_PLAY_AREA .asm_50f0: - ld [wd4ae], a + ld [wDuelAnimationScreen], a ret ; this part is not perfectly analyzed. @@ -1267,8 +1267,8 @@ Func_1909d: ; 1909d (6:509d) Func_190fb: ; 190fb (6:50fb) cp $01 jr nz, .asm_510e - ld a, $00 - ld [wd4ae], a + ld a, DUEL_ANIM_SCREEN_MAIN_SCENE + ld [wDuelAnimationScreen], a ld a, [wDuelDisplayedScreen] cp $01 jr z, .asm_510e diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index 8b63166..e3b366b 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -153,7 +153,7 @@ Func_1c485: ; 1c485 (7:4485) .foundEmptyIndex ld a, b ld [wLoadedNPCTempIndex], a - ld a, [wd3b3] + ld a, [wNPCSpriteID] farcall CreateSpriteAndAnimBufferEntry jr c, .exit ld a, [wLoadedNPCTempIndex] @@ -690,7 +690,7 @@ Func_1c8ef: ; 1c8ef (7:48ef) push af ld a, [hli] ; ANIM_SPRITE_ANIM_FLAGS ld [wAnimFlags], a - call Func_1c980 + call LoadAnimCoordsAndFlags pop af farcall StartNewSpriteAnimation @@ -702,13 +702,15 @@ Func_1c8ef: ; 1c8ef (7:48ef) .done ret -Func_1c980: ; 1c980 (7:4980) +; loads the correct coordinates/flags for +; sprite animation in wAnimationQueue +LoadAnimCoordsAndFlags: ; 1c980 (7:4980) push hl push bc ld a, [wAnimationQueue] ld c, SPRITE_ANIM_ATTRIBUTES call GetSpriteAnimBufferProperty_SpriteInA - call Func_1c9a2 + call GetAnimCoordsAndFlags push af and (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_5) @@ -721,7 +723,7 @@ Func_1c980: ; 1c980 (7:4980) ld bc, SPRITE_ANIM_FLAGS - SPRITE_ANIM_COORD_Y add hl, bc - ld c, a + ld c, a ; useless and (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) or [hl] ld [hl], a @@ -729,38 +731,42 @@ Func_1c980: ; 1c980 (7:4980) pop hl ret +; outputs x and y coordinates for the sprite animation +; taking into account who the turn duelist is. +; also returns in a the allowed animation flags of +; the configuration that is selected. ; output: ; a = anim flags ; b = x coordinate ; c = y coordinate -Func_1c9a2: ; 1c9a2 (7:49a2) +GetAnimCoordsAndFlags: ; 1c9a2 (7:49a2) push hl ld c, 0 ld a, [wAnimFlags] and (1 << SPRITE_ANIM_FLAG_SPEED) jr nz, .calc_addr - ld a, [wd4ae] - add a ; 2 * [wd4ae] + ld a, [wDuelAnimationScreen] + add a ; 2 * [wDuelAnimationScreen] ld c, a - add a ; 4 * [wd4ae] - add c ; 6 * [wd4ae] - add a ; 12 * [wd4ae] + add a ; 4 * [wDuelAnimationScreen] + add c ; 6 * [wDuelAnimationScreen] + add a ; 12 * [wDuelAnimationScreen] ld c, a ld a, [wd4af] cp PLAYER_TURN - jr z, .player_turn - + jr z, .player_side +; opponent side ld a, 6 add c ld c, a -.player_turn +.player_side ld a, [wd4b0] add c ; a = [wd4b0] + c ld c, a ld b, 0 - ld hl, Data_1c9e0 + ld hl, AnimationCoordinatesIndex add hl, bc ld c, [hl] @@ -770,50 +776,59 @@ Func_1c9a2: ; 1c9a2 (7:49a2) add c ; a = c * 3 ld c, a ld b, 0 - ld hl, Data_1ca04 + ld hl, AnimationCoordinates add hl, bc - ld b, [hl] + ld b, [hl] ; x coord inc hl - ld c, [hl] + ld c, [hl] ; y coord inc hl ld a, [wAnimFlags] - and [hl] + and [hl] ; flags pop hl ret -Data_1c9e0: +AnimationCoordinatesIndex: +; animations in the Duel Main Scene db $01, $01, $01, $01, $01, $01 ; player db $02, $02, $02, $02, $02, $02 ; opponent +; animations in the Player's Play Area, for each Play Area Pokemon db $03, $04, $05, $06, $07, $08 ; player db $03, $04, $05, $06, $07, $08 ; opponent +; animations in the Opponent's Play Area, for each Play Area Pokemon db $09, $0a, $0b, $0c, $0d, $0e ; player db $09, $0a, $0b, $0c, $0d, $0e ; opponent -macro_1ca04: MACRO +anim_coords: MACRO db \1 db \2 db \3 ENDM -Data_1ca04: +AnimationCoordinates: ; x coord, y coord, animation flags - macro_1ca04 $58, $58, (1 << SPRITE_ANIM_FLAG_3) - macro_1ca04 $28, $50, $00 - macro_1ca04 $88, $30, (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) - macro_1ca04 $58, $48, $00 - macro_1ca04 $18, $60, $00 - macro_1ca04 $38, $60, $00 - macro_1ca04 $58, $60, $00 - macro_1ca04 $78, $60, $00 - macro_1ca04 $98, $60, $00 - macro_1ca04 $58, $50, $00 - macro_1ca04 $98, $28, $00 - macro_1ca04 $78, $28, $00 - macro_1ca04 $58, $28, $00 - macro_1ca04 $38, $28, $00 - macro_1ca04 $18, $28, $00 + anim_coords 88, 88, (1 << SPRITE_ANIM_FLAG_3) + +; animations in the Duel Main Scene + anim_coords 40, 80, $00 + anim_coords 136, 48, (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) + +; animations in the Player's Play Area, for each Play Area Pokemon + anim_coords 88, 72, $00 + anim_coords 24, 96, $00 + anim_coords 56, 96, $00 + anim_coords 88, 96, $00 + anim_coords 120, 96, $00 + anim_coords 152, 96, $00 + +; animations in the Opponent's Play Area, for each Play Area Pokemon + anim_coords 88, 80, $00 + anim_coords 152, 40, $00 + anim_coords 120, 40, $00 + anim_coords 88, 40, $00 + anim_coords 56, 40, $00 + anim_coords 24, 40, $00 Func_1ca31: ; 1ca31 (7:4a31) push hl @@ -834,7 +849,7 @@ Func_1ca31: ; 1ca31 (7:4a31) add hl, bc ld a, [wTempAnimation] ld [hli], a - ld a, [wd4ae] + ld a, [wDuelAnimationScreen] ld [hli], a ld a, [wd4af] ld [hli], a @@ -875,7 +890,7 @@ Func_1ca6e: ; 1ca6e (7:4a6e) ld a, [hli] ld [wTempAnimation], a ld a, [hli] - ld [wd4ae], a + ld [wDuelAnimationScreen], a ld a, [hli] ld [wd4af], a ld a, [hli] @@ -1084,7 +1099,7 @@ Func_1cba6: ; 1cba6 (7:4ba6) Func_1cbcc: ; 1cbcc (7:4bcc) push af - ld a, $2e + ld a, SPRITE_DUEL_4 farcall CreateSpriteAndAnimBufferEntry ld a, [wWhichSprite] ld [de], a @@ -1092,7 +1107,7 @@ Func_1cbcc: ; 1cbcc (7:4bcc) ld [wAnimFlags], a ld c, SPRITE_ANIM_COORD_X call GetSpriteAnimBufferProperty - call Func_1c9a2 + call GetAnimCoordsAndFlags ld a, [wd4b7] add $fd @@ -1442,780 +1457,779 @@ Func_1ce03: ; 1ce03 (7:4e03) Animations: ; 1ce32 (7:4e32) ; $00 db $00 ; sprite ID - db $00 ; paletteID + db $00 ; palette ID db $00 ; anim ID db $00 ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $01 - db $28 ; sprite ID - db $1f ; paletteID + db SPRITE_DUEL_GLOW ; sprite ID + db $1f ; palette ID db $47 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $11 ; sound FX ID db $00 ; handler function ; $02 - db $29 ; sprite ID - db $20 ; paletteID + db SPRITE_DUEL_1 ; sprite ID + db $20 ; palette ID db $48 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $12 ; sound FX ID db $00 ; handler function ; $03 - db $2a ; sprite ID - db $21 ; paletteID + db SPRITE_DUEL_2 ; sprite ID + db $21 ; palette ID db $49 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $13 ; sound FX ID db $00 ; handler function ; $04 - db $2b ; sprite ID - db $22 ; paletteID + db SPRITE_DUEL_55 ; sprite ID + db $22 ; palette ID db $4a ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $14 ; sound FX ID db $00 ; handler function ; $05 - db $2c ; sprite ID - db $23 ; paletteID + db SPRITE_DUEL_58 ; sprite ID + db $23 ; palette ID db $4b ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $15 ; sound FX ID db $00 ; handler function ; $06 - db $2d ; sprite ID - db $24 ; paletteID + db SPRITE_DUEL_3 ; sprite ID + db $24 ; palette ID db $4c ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $16 ; sound FX ID db $00 ; handler function ; $07 - db $2d ; sprite ID - db $24 ; paletteID + db SPRITE_DUEL_3 ; sprite ID + db $24 ; palette ID db $4d ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $16 ; sound FX ID db $00 ; handler function ; $08 - db $2d ; sprite ID - db $24 ; paletteID + db SPRITE_DUEL_3 ; sprite ID + db $24 ; palette ID db $4e ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $17 ; sound FX ID db $00 ; handler function ; $09 - db $2e ; sprite ID - db $25 ; paletteID + db SPRITE_DUEL_4 ; sprite ID + db $25 ; palette ID db $00 ; anim ID db $00 ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $0a - db $2f ; sprite ID - db $26 ; paletteID + db SPRITE_DUEL_5 ; sprite ID + db $26 ; palette ID db $5c ; anim ID db $00 ; anim flags db $18 ; sound FX ID db $00 ; handler function ; $0b - db $30 ; sprite ID - db $27 ; paletteID + db SPRITE_DUEL_6 ; sprite ID + db $27 ; palette ID db $5e ; anim ID db $00 ; anim flags db $19 ; sound FX ID db $00 ; handler function ; $0c - db $31 ; sprite ID - db $28 ; paletteID + db SPRITE_DUEL_59 ; sprite ID + db $28 ; palette ID db $5f ; anim ID db $00 ; anim flags db $1a ; sound FX ID db $00 ; handler function ; $0d - db $32 ; sprite ID - db $29 ; paletteID + db SPRITE_DUEL_7 ; sprite ID + db $29 ; palette ID db $60 ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $1b ; sound FX ID db $00 ; handler function ; $0e - db $33 ; sprite ID - db $2a ; paletteID + db SPRITE_DUEL_8 ; sprite ID + db $2a ; palette ID db $61 ; anim ID db $00 ; anim flags db $1c ; sound FX ID db $00 ; handler function ; $0f - db $33 ; sprite ID - db $2a ; paletteID + db SPRITE_DUEL_8 ; sprite ID + db $2a ; palette ID db $62 ; anim ID db $00 ; anim flags db $1d ; sound FX ID db $00 ; handler function ; $10 - db $34 ; sprite ID - db $2b ; paletteID + db SPRITE_DUEL_9 ; sprite ID + db $2b ; palette ID db $63 ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $1e ; sound FX ID db $00 ; handler function ; $11 - db $35 ; sprite ID - db $2c ; paletteID + db SPRITE_DUEL_10 ; sprite ID + db $2c ; palette ID db $64 ; anim ID db $00 ; anim flags db $1f ; sound FX ID db $00 ; handler function ; $12 - db $36 ; sprite ID - db $2d ; paletteID + db SPRITE_DUEL_61 ; sprite ID + db $2d ; palette ID db $69 ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $20 ; sound FX ID db $00 ; handler function ; $13 - db $37 ; sprite ID - db $2e ; paletteID + db SPRITE_DUEL_11 ; sprite ID + db $2e ; palette ID db $6a ; anim ID db $00 ; anim flags db $21 ; sound FX ID db $00 ; handler function ; $14 - db $38 ; sprite ID - db $2f ; paletteID + db SPRITE_DUEL_12 ; sprite ID + db $2f ; palette ID db $6b ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $22 ; sound FX ID db $00 ; handler function ; $15 - db $39 ; sprite ID - db $30 ; paletteID + db SPRITE_DUEL_13 ; sprite ID + db $30 ; palette ID db $6c ; anim ID db $00 ; anim flags db $23 ; sound FX ID db $00 ; handler function ; $16 - db $3a ; sprite ID - db $31 ; paletteID + db SPRITE_DUEL_62 ; sprite ID + db $31 ; palette ID db $6d ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $24 ; sound FX ID db $00 ; handler function ; $17 - db $3b ; sprite ID - db $32 ; paletteID + db SPRITE_DUEL_14 ; sprite ID + db $32 ; palette ID db $6e ; anim ID db $00 ; anim flags db $25 ; sound FX ID db $00 ; handler function ; $18 - db $3c ; sprite ID - db $33 ; paletteID + db SPRITE_DUEL_15 ; sprite ID + db $33 ; palette ID db $6f ; anim ID db $00 ; anim flags db $26 ; sound FX ID db $00 ; handler function ; $19 - db $3d ; sprite ID - db $34 ; paletteID + db SPRITE_DUEL_16 ; sprite ID + db $34 ; palette ID db $70 ; anim ID db (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) ; anim flags db $27 ; sound FX ID db $00 ; handler function ; $1a - db $3e ; sprite ID - db $35 ; paletteID + db SPRITE_DUEL_17 ; sprite ID + db $35 ; palette ID db $71 ; anim ID db (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) ; anim flags db $28 ; sound FX ID db $00 ; handler function ; $1b - db $3f ; sprite ID - db $36 ; paletteID + db SPRITE_DUEL_18 ; sprite ID + db $36 ; palette ID db $72 ; anim ID db $00 ; anim flags db $29 ; sound FX ID db $00 ; handler function ; $1c - db $3f ; sprite ID - db $36 ; paletteID + db SPRITE_DUEL_18 ; sprite ID + db $36 ; palette ID db $73 ; anim ID db $00 ; anim flags db $2a ; sound FX ID db $00 ; handler function ; $1d - db $40 ; sprite ID - db $37 ; paletteID + db SPRITE_DUEL_19 ; sprite ID + db $37 ; palette ID db $74 ; anim ID db $00 ; anim flags db $2b ; sound FX ID db $00 ; handler function ; $1e - db $40 ; sprite ID - db $37 ; paletteID + db SPRITE_DUEL_19 ; sprite ID + db $37 ; palette ID db $75 ; anim ID db $00 ; anim flags db $52 ; sound FX ID db $00 ; handler function ; $1f - db $40 ; sprite ID - db $37 ; paletteID + db SPRITE_DUEL_19 ; sprite ID + db $37 ; palette ID db $76 ; anim ID db $00 ; anim flags db $53 ; sound FX ID db $00 ; handler function ; $20 - db $41 ; sprite ID - db $38 ; paletteID + db SPRITE_DUEL_20 ; sprite ID + db $38 ; palette ID db $77 ; anim ID db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags db $2c ; sound FX ID db $00 ; handler function ; $21 - db $42 ; sprite ID - db $39 ; paletteID + db SPRITE_DUEL_21 ; sprite ID + db $39 ; palette ID db $78 ; anim ID db $00 ; anim flags db $2d ; sound FX ID db $00 ; handler function ; $22 - db $43 ; sprite ID - db $3a ; paletteID + db SPRITE_DUEL_22 ; sprite ID + db $3a ; palette ID db $7a ; anim ID db $00 ; anim flags db $2d ; sound FX ID db $00 ; handler function ; $23 - db $44 ; sprite ID - db $3b ; paletteID + db SPRITE_DUEL_23 ; sprite ID + db $3b ; palette ID db $7b ; anim ID db $00 ; anim flags db $2e ; sound FX ID db $00 ; handler function ; $24 - db $42 ; sprite ID - db $39 ; paletteID + db SPRITE_DUEL_21 ; sprite ID + db $39 ; palette ID db $79 ; anim ID db $00 ; anim flags db $2f ; sound FX ID db $00 ; handler function ; $25 - db $45 ; sprite ID - db $3c ; paletteID + db SPRITE_DUEL_24 ; sprite ID + db $3c ; palette ID db $7c ; anim ID db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags db $30 ; sound FX ID db $00 ; handler function ; $26 - db $46 ; sprite ID - db $3d ; paletteID + db SPRITE_DUEL_25 ; sprite ID + db $3d ; palette ID db $7d ; anim ID db $00 ; anim flags db $31 ; sound FX ID db $00 ; handler function ; $27 - db $47 ; sprite ID - db $3e ; paletteID + db SPRITE_DUEL_26 ; sprite ID + db $3e ; palette ID db $7e ; anim ID db $00 ; anim flags db $32 ; sound FX ID db $00 ; handler function ; $28 - db $48 ; sprite ID - db $3f ; paletteID + db SPRITE_DUEL_27 ; sprite ID + db $3f ; palette ID db $7f ; anim ID db $00 ; anim flags db $33 ; sound FX ID db $00 ; handler function ; $29 - db $49 ; sprite ID - db $40 ; paletteID + db SPRITE_DUEL_28 ; sprite ID + db $40 ; palette ID db $80 ; anim ID db $00 ; anim flags db $34 ; sound FX ID db $00 ; handler function ; $2a - db $4a ; sprite ID - db $41 ; paletteID + db SPRITE_DUEL_29 ; sprite ID + db $41 ; palette ID db $81 ; anim ID db $00 ; anim flags db $35 ; sound FX ID db $00 ; handler function ; $2b - db $4b ; sprite ID - db $42 ; paletteID + db SPRITE_DUEL_56 ; sprite ID + db $42 ; palette ID db $82 ; anim ID db $00 ; anim flags db $36 ; sound FX ID db $00 ; handler function ; $2c - db $4c ; sprite ID - db $43 ; paletteID + db SPRITE_DUEL_30 ; sprite ID + db $43 ; palette ID db $83 ; anim ID db $00 ; anim flags db $37 ; sound FX ID db $00 ; handler function ; $2d - db $4d ; sprite ID - db $44 ; paletteID + db SPRITE_DUEL_31 ; sprite ID + db $44 ; palette ID db $84 ; anim ID db $00 ; anim flags db $38 ; sound FX ID db $00 ; handler function ; $2e - db $4e ; sprite ID - db $45 ; paletteID + db SPRITE_DUEL_32 ; sprite ID + db $45 ; palette ID db $85 ; anim ID db $00 ; anim flags db $39 ; sound FX ID db $00 ; handler function ; $2f - db $4f ; sprite ID - db $46 ; paletteID + db SPRITE_DUEL_33 ; sprite ID + db $46 ; palette ID db $86 ; anim ID db $00 ; anim flags db $3a ; sound FX ID db $00 ; handler function ; $30 - db $50 ; sprite ID - db $47 ; paletteID + db SPRITE_DUEL_34 ; sprite ID + db $47 ; palette ID db $87 ; anim ID db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags db $3b ; sound FX ID db $00 ; handler function ; $31 - db $51 ; sprite ID - db $48 ; paletteID + db SPRITE_DUEL_35 ; sprite ID + db $48 ; palette ID db $88 ; anim ID db $00 ; anim flags db $3c ; sound FX ID db $00 ; handler function ; $32 - db $52 ; sprite ID - db $49 ; paletteID + db SPRITE_DUEL_66 ; sprite ID + db $49 ; palette ID db $89 ; anim ID db $00 ; anim flags db $3d ; sound FX ID db $00 ; handler function ; $33 - db $53 ; sprite ID - db $4a ; paletteID + db SPRITE_DUEL_36 ; sprite ID + db $4a ; palette ID db $8a ; anim ID db $00 ; anim flags db $3e ; sound FX ID db $00 ; handler function ; $34 - db $54 ; sprite ID - db $4b ; paletteID + db SPRITE_DUEL_37 ; sprite ID + db $4b ; palette ID db $8b ; anim ID db $00 ; anim flags db $3f ; sound FX ID db $00 ; handler function ; $35 - db $55 ; sprite ID - db $4c ; paletteID + db SPRITE_DUEL_57 ; sprite ID + db $4c ; palette ID db $8c ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $40 ; sound FX ID db $00 ; handler function ; $36 - db $56 ; sprite ID - db $4d ; paletteID + db SPRITE_DUEL_38 ; sprite ID + db $4d ; palette ID db $8d ; anim ID db $00 ; anim flags db $41 ; sound FX ID db $00 ; handler function ; $37 - db $57 ; sprite ID - db $4e ; paletteID + db SPRITE_DUEL_39 ; sprite ID + db $4e ; palette ID db $8e ; anim ID db $00 ; anim flags db $42 ; sound FX ID db $00 ; handler function ; $38 - db $58 ; sprite ID - db $4f ; paletteID + db SPRITE_DUEL_40 ; sprite ID + db $4f ; palette ID db $8f ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $43 ; sound FX ID db $00 ; handler function ; $39 - db $59 ; sprite ID - db $50 ; paletteID + db SPRITE_DUEL_41 ; sprite ID + db $50 ; palette ID db $90 ; anim ID db $00 ; anim flags db $44 ; sound FX ID db $00 ; handler function ; $3a - db $5a ; sprite ID - db $51 ; paletteID + db SPRITE_DUEL_42 ; sprite ID + db $51 ; palette ID db $92 ; anim ID db $00 ; anim flags db $45 ; sound FX ID db $00 ; handler function ; $3b - db $5b ; sprite ID - db $52 ; paletteID + db SPRITE_DUEL_43 ; sprite ID + db $52 ; palette ID db $93 ; anim ID db $00 ; anim flags db $46 ; sound FX ID db $00 ; handler function ; $3c - db $5c ; sprite ID - db $53 ; paletteID + db SPRITE_DUEL_44 ; sprite ID + db $53 ; palette ID db $94 ; anim ID db $00 ; anim flags db $47 ; sound FX ID db $00 ; handler function ; $3d - db $5c ; sprite ID - db $53 ; paletteID + db SPRITE_DUEL_44 ; sprite ID + db $53 ; palette ID db $95 ; anim ID db $00 ; anim flags db $48 ; sound FX ID db $00 ; handler function ; $3e - db $5d ; sprite ID - db $54 ; paletteID + db SPRITE_DUEL_60 ; sprite ID + db $54 ; palette ID db $97 ; anim ID db $00 ; anim flags db $49 ; sound FX ID db $00 ; handler function ; $3f - db $5e ; sprite ID - db $55 ; paletteID + db SPRITE_DUEL_64 ; sprite ID + db $55 ; palette ID db $99 ; anim ID db $00 ; anim flags db $4a ; sound FX ID db $00 ; handler function ; $40 - db $4a ; sprite ID - db $56 ; paletteID + db SPRITE_DUEL_29 ; sprite ID + db $56 ; palette ID db $81 ; anim ID db $00 ; anim flags db $4b ; sound FX ID db $00 ; handler function ; $41 - db $5c ; sprite ID - db $53 ; paletteID + db SPRITE_DUEL_44 ; sprite ID + db $53 ; palette ID db $96 ; anim ID db $00 ; anim flags db $47 ; sound FX ID db $00 ; handler function ; $42 - db $2d ; sprite ID - db $24 ; paletteID + db SPRITE_DUEL_3 ; sprite ID + db $24 ; palette ID db $4d ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $16 ; sound FX ID db $00 ; handler function ; $43 - db $2d ; sprite ID - db $24 ; paletteID + db SPRITE_DUEL_3 ; sprite ID + db $24 ; palette ID db $4e ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $17 ; sound FX ID db $00 ; handler function ; $44 - db $2f ; sprite ID - db $26 ; paletteID + db SPRITE_DUEL_5 ; sprite ID + db $26 ; palette ID db $5c ; anim ID db $00 ; anim flags db $18 ; sound FX ID db $00 ; handler function ; $45 - db $3a ; sprite ID - db $31 ; paletteID + db SPRITE_DUEL_62 ; sprite ID + db $31 ; palette ID db $6d ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $24 ; sound FX ID db $00 ; handler function ; $46 - db $5f ; sprite ID - db $57 ; paletteID + db SPRITE_DUEL_45 ; sprite ID + db $57 ; palette ID db $9a ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags db $11 ; sound FX ID db $00 ; handler function ; $47 - db $35 ; sprite ID - db $2c ; paletteID + db SPRITE_DUEL_10 ; sprite ID + db $2c ; palette ID db $65 ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $5c ; sound FX ID db $00 ; handler function ; $48 - db $35 ; sprite ID - db $2c ; paletteID + db SPRITE_DUEL_10 ; sprite ID + db $2c ; palette ID db $66 ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $49 - db $5d ; sprite ID - db $54 ; paletteID + db SPRITE_DUEL_60 ; sprite ID + db $54 ; palette ID db $98 ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $4c ; sound FX ID db $00 ; handler function ; $4a - db $59 ; sprite ID - db $50 ; paletteID + db SPRITE_DUEL_41 ; sprite ID + db $50 ; palette ID db $91 ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $4d ; sound FX ID db $00 ; handler function ; $4b - db $60 ; sprite ID - db $58 ; paletteID + db SPRITE_DUEL_46 ; sprite ID + db $58 ; palette ID db $9b ; anim ID db $00 ; anim flags db $4e ; sound FX ID db $00 ; handler function ; $4c - db $61 ; sprite ID - db $59 ; paletteID + db SPRITE_DUEL_47 ; sprite ID + db $59 ; palette ID db $9c ; anim ID db $00 ; anim flags db $4f ; sound FX ID db $00 ; handler function ; $4d - db $62 ; sprite ID - db $5a ; paletteID + db SPRITE_DUEL_48 ; sprite ID + db $5a ; palette ID db $9d ; anim ID db $00 ; anim flags db $50 ; sound FX ID db $00 ; handler function ; $4e - db $35 ; sprite ID - db $2c ; paletteID + db SPRITE_DUEL_10 ; sprite ID + db $2c ; palette ID db $67 ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $51 ; sound FX ID db $00 ; handler function ; $4f - db $35 ; sprite ID - db $2c ; paletteID + db SPRITE_DUEL_10 ; sprite ID + db $2c ; palette ID db $68 ; anim ID db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $51 ; sound FX ID db $00 ; handler function ; $50 - db $63 ; sprite ID - db $5b ; paletteID + db SPRITE_DUEL_49 ; sprite ID + db $5b ; palette ID db $9e ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $51 - db $63 ; sprite ID - db $5b ; paletteID + db SPRITE_DUEL_49 ; sprite ID + db $5b ; palette ID db $9f ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $07 ; sound FX ID db $00 ; handler function ; $52 - db $63 ; sprite ID - db $5b ; paletteID + db SPRITE_DUEL_49 ; sprite ID + db $5b ; palette ID db $a0 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $07 ; sound FX ID db $00 ; handler function ; $53 - db $63 ; sprite ID - db $5b ; paletteID + db SPRITE_DUEL_49 ; sprite ID + db $5b ; palette ID db $a1 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $07 ; sound FX ID db $00 ; handler function ; $54 - db $63 ; sprite ID - db $5b ; paletteID + db SPRITE_DUEL_49 ; sprite ID + db $5b ; palette ID db $a2 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $55 - db $63 ; sprite ID - db $5b ; paletteID + db SPRITE_DUEL_49 ; sprite ID + db $5b ; palette ID db $a3 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $56 - db $63 ; sprite ID - db $5b ; paletteID + db SPRITE_DUEL_49 ; sprite ID + db $5b ; palette ID db $a4 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $57 - db $63 ; sprite ID - db $5b ; paletteID + db SPRITE_DUEL_49 ; sprite ID + db $5b ; palette ID db $a5 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $58 - db $64 ; sprite ID - db $5c ; paletteID + db SPRITE_DUEL_50 ; sprite ID + db $5c ; palette ID db $a7 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $59 - db $64 ; sprite ID - db $5c ; paletteID + db SPRITE_DUEL_50 ; sprite ID + db $5c ; palette ID db $a8 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $0b ; sound FX ID db $00 ; handler function ; $5a - db $64 ; sprite ID - db $5c ; paletteID + db SPRITE_DUEL_50 ; sprite ID + db $5c ; palette ID db $a9 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $0b ; sound FX ID db $00 ; handler function ; $5b - db $64 ; sprite ID - db $5c ; paletteID + db SPRITE_DUEL_50 ; sprite ID + db $5c ; palette ID db $aa ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $5c - db $64 ; sprite ID - db $5c ; paletteID + db SPRITE_DUEL_50 ; sprite ID + db $5c ; palette ID db $ab ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $5d - db $65 ; sprite ID - db $5d ; paletteID + db SPRITE_DUEL_51 ; sprite ID + db $5d ; palette ID db $ac ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $5e - db $65 ; sprite ID - db $5d ; paletteID + db SPRITE_DUEL_51 ; sprite ID + db $5d ; palette ID db $ad ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $5f - db $65 ; sprite ID - db $5d ; paletteID + db SPRITE_DUEL_51 ; sprite ID + db $5d ; palette ID db $ae ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function ; $60 - db $63 ; sprite ID - db $5b ; paletteID + db SPRITE_DUEL_49 ; sprite ID + db $5b ; palette ID db $a6 ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags db $00 ; sound FX ID db $00 ; handler function - ; 0x1d078 Func_1d078: ; 1d078 (7:5078) diff --git a/src/engine/home.asm b/src/engine/home.asm index a7c9f6d..a0cc5cb 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -11355,6 +11355,7 @@ WaitForSongToFinish: ; 3c96 (0:3c96) Func_3ca0: ; 3ca0 (0:3ca0) xor a ld [wd5d7], a + ; fallthrough Func_3ca4: ; 3ca4 (0:3ca4) ldh a, [hBankROM] -- cgit v1.2.3 From 0432a2eae3841ababfe4a049031b4e18558e2d94 Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Sun, 27 Dec 2020 14:20:32 +0000 Subject: Label and document shuffling animation --- src/engine/bank01.asm | 101 ++++++++++++++++++++++++++++++++------------------ src/engine/bank07.asm | 6 +-- src/engine/bank20.asm | 2 +- 3 files changed, 69 insertions(+), 40 deletions(-) (limited to 'src/engine') diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index 6cdca34..6528e55 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -1522,13 +1522,15 @@ Func_49a8: ; 49a8 (1:49a8) .asm_49b5 ld a, e call Func_3b6a -.asm_49b9 + +.loop_anim call DoFrame call CheckSkipDelayAllowed - jr c, .asm_49c6 + jr c, .done_anim call CheckAnyAnimationPlaying - jr c, .asm_49b9 -.asm_49c6 + jr c, .loop_anim + +.done_anim call Func_3b31 ret @@ -1749,7 +1751,7 @@ Func_4b60: ; 4b60 (1:4b60) call SwapTurn call InitializeDuelVariables call SwapTurn - call Func_4e84 + call PlayShuffleAndDrawCardsAnimation_BothDuelists call ShuffleDeckAndDrawSevenCards ldh [hTemp_ffa0], a call SwapTurn @@ -1771,7 +1773,7 @@ Func_4b60: ; 4b60 (1:4b60) .ensure_player_basic_pkmn_loop call DisplayNoBasicPokemonInHandScreenAndText call InitializeDuelVariables - call Func_4e6e + call PlayShuffleAndDrawCardsAnimation_SingleDuelist call ShuffleDeckAndDrawSevenCards jr c, .ensure_player_basic_pkmn_loop jr .hand_cards_ok @@ -1781,7 +1783,7 @@ Func_4b60: ; 4b60 (1:4b60) .ensure_opp_basic_pkmn_loop call DisplayNoBasicPokemonInHandScreenAndText call InitializeDuelVariables - call Func_4e6e + call PlayShuffleAndDrawCardsAnimation_SingleDuelist call ShuffleDeckAndDrawSevenCards jr c, .ensure_opp_basic_pkmn_loop call SwapTurn @@ -2170,31 +2172,37 @@ DisplayPracticeDuelPlayerHandScreen: ; 4e40 (1:4e40) call EnableLCD ret -Func_4e6e: ; 4e6e (1:4e6e) +PlayShuffleAndDrawCardsAnimation_SingleDuelist: ; 4e6e (1:4e6e) ld b, $51 ld c, $56 ldh a, [hWhoseTurn] cp PLAYER_TURN - jr z, .asm_4e7c + jr z, .play_anim ld b, $52 ld c, $57 -.asm_4e7c +.play_anim ldtx hl, ShufflesTheDeckText ldtx de, Drew7CardsText - jr Func_4e98 + jr PlayShuffleAndDrawCardsAnimation -Func_4e84: ; 4e84 (1:4e84) +PlayShuffleAndDrawCardsAnimation_BothDuelists: ; 4e84 (1:4e84) ld b, $53 ld c, $55 ldtx hl, EachPlayerShuffleOpponentsDeckText ldtx de, EachPlayerDraw7CardsText ld a, [wDuelType] cp DUELTYPE_PRACTICE - jr nz, Func_4e98 + jr nz, PlayShuffleAndDrawCardsAnimation ldtx hl, ThisIsJustPracticeDoNotShuffleText ; fallthrough -Func_4e98: ; 4e98 (1:4e98) +; animate the shuffle and drawing screen +; input: +; b = shuffling animation index +; c = drawing animation index +; hl = text to print while shuffling +; de = text to print while drawing +PlayShuffleAndDrawCardsAnimation: ; 4e98 (1:4e98) push bc push de push hl @@ -2211,41 +2219,48 @@ Func_4e98: ; 4e98 (1:4e98) cp DUELTYPE_PRACTICE jr nz, .not_practice call WaitForWideTextBoxInput - jr .asm_4ee0 + jr .print_deck_info + .not_practice call Func_3b21 ld hl, sp+$03 + +; play animation 3 times ld a, [hl] call Func_3b6a ld a, [hl] call Func_3b6a ld a, [hl] call Func_3b6a -.asm_4ed0 + +.loop_shuffle_anim call DoFrame call CheckSkipDelayAllowed jr c, .asm_4edd call CheckAnyAnimationPlaying - jr c, .asm_4ed0 + jr c, .loop_shuffle_anim .asm_4edd call Func_3b31 -.asm_4ee0 + +.print_deck_info xor a ld [wNumCardsBeingDrawn], a call PrintDeckAndHandIconsAndNumberOfCards call Func_3b21 pop hl call DrawWideTextBox_PrintText -.asm_4eee +.draw_card ld hl, sp+$00 ld a, [hl] call Func_3b6a -.asm_4ef4 + +.loop_drawing_anim call DoFrame call CheckSkipDelayAllowed - jr c, .asm_4f28 + jr c, .done call CheckAnyAnimationPlaying - jr c, .asm_4ef4 + jr c, .loop_drawing_anim + ld hl, wNumCardsBeingDrawn inc [hl] ld hl, sp+$00 @@ -2253,21 +2268,24 @@ Func_4e98: ; 4e98 (1:4e98) cp $55 jr nz, .asm_4f11 call PrintDeckAndHandIconsAndNumberOfCards.not_cgb - jr .asm_4f14 + jr .check_num_cards .asm_4f11 call PrintNumberOfHandAndDeckCards -.asm_4f14 + +.check_num_cards ld a, [wNumCardsBeingDrawn] cp 7 - jr c, .asm_4eee + jr c, .draw_card + ld c, 30 .wait_loop call DoFrame call CheckSkipDelayAllowed - jr c, .asm_4f28 + jr c, .done dec c jr nz, .wait_loop -.asm_4f28 + +.done call Func_3b31 pop bc ret @@ -2282,50 +2300,61 @@ Func_4f2d: ; 4f2d (1:4f2d) .skip_draw_scene ld a, SHUFFLE_DECK ld [wDuelDisplayedScreen], a + +; if duelist has only one card in deck, +; skip shuffling animation ld a, DUELVARS_NUMBER_OF_CARDS_NOT_IN_DECK call GetTurnDuelistVariable ld a, DECK_SIZE sub [hl] cp 2 jr c, .one_card_in_deck + ldtx hl, ShufflesTheDeckText call DrawWideTextBox_PrintText call EnableLCD call Func_3b21 + +; load correct animation depending on turn duelist ld e, $51 ldh a, [hWhoseTurn] cp PLAYER_TURN - jr z, .asm_4f64 + jr z, .load_anim ld e, $52 -.asm_4f64 +.load_anim +; play animation 3 times ld a, e call Func_3b6a ld a, e call Func_3b6a ld a, e call Func_3b6a -.asm_4f70 + +.loop_anim call DoFrame call CheckSkipDelayAllowed - jr c, .asm_4f7d + jr c, .done_anim call CheckAnyAnimationPlaying - jr c, .asm_4f70 -.asm_4f7d + jr c, .loop_anim + +.done_anim call Func_3b31 ld a, $01 ret + .one_card_in_deck +; no animation, just print text and delay ld l, a ld h, $00 call LoadTxRam3 ldtx hl, DeckHasXCardsText call DrawWideTextBox_PrintText call EnableLCD - ld a, $3c -.asm_4f94 + ld a, 60 +.loop_wait call DoFrame dec a - jr nz, .asm_4f94 + jr nz, .loop_wait ld a, $01 ret diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index e3b366b..c18eefc 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -2200,7 +2200,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; handler function ; $5d - db SPRITE_DUEL_51 ; sprite ID + db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID db $5d ; palette ID db $ac ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags @@ -2208,7 +2208,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; handler function ; $5e - db SPRITE_DUEL_51 ; sprite ID + db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID db $5d ; palette ID db $ad ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags @@ -2216,7 +2216,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; handler function ; $5f - db SPRITE_DUEL_51 ; sprite ID + db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID db $5d ; palette ID db $ae ; anim ID db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index e0db1f7..86758d2 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -989,7 +989,7 @@ MapDataPointers_8116b: ; 8116b (20:516b) gfx_pointer Duel48Gfx, $03 ; SPRITE_DUEL_48 gfx_pointer Duel49Gfx, $05 ; SPRITE_DUEL_49 gfx_pointer Duel50Gfx, $17 ; SPRITE_DUEL_50 - gfx_pointer Duel51Gfx, $36 ; SPRITE_DUEL_51 + gfx_pointer Duel51Gfx, $36 ; SPRITE_DUEL_WON_LOST_DRAW gfx_pointer Duel52Gfx, $0b ; SPRITE_DUEL_52 gfx_pointer Duel53Gfx, $06 ; SPRITE_DUEL_53 gfx_pointer Duel54Gfx, $16 ; SPRITE_DUEL_54 -- cgit v1.2.3 From 852767639eb7e5305236ff3331ce8d6f27db0854 Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Sun, 27 Dec 2020 18:36:37 +0000 Subject: Define duel animations, move -> attack --- src/engine/bank01.asm | 6 +- src/engine/bank06.asm | 4 +- src/engine/bank07.asm | 194 +++++++++++++++++++++++++------------------------- 3 files changed, 102 insertions(+), 102 deletions(-) (limited to 'src/engine') diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index 6528e55..f249535 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -188,7 +188,7 @@ MainDuelLoop: ; 40ee (1:40ee) jr z, .active_duelist_won_battle cp TURN_PLAYER_LOST jr z, .active_duelist_lost_battle - ld a, $5f + ld a, DUEL_ANIM_DRAW ld c, MUSIC_DARK_DIDDLY ldtx hl, DuelWasADrawText jr .handle_duel_finished @@ -200,7 +200,7 @@ MainDuelLoop: ; 40ee (1:40ee) .player_won_battle xor a ; DUEL_WIN ld [wDuelResult], a - ld a, $5d + ld a, DUEL_ANIM_WIN ld c, MUSIC_MATCH_VICTORY ldtx hl, WonDuelText jr .handle_duel_finished @@ -212,7 +212,7 @@ MainDuelLoop: ; 40ee (1:40ee) .opponent_won_battle ld a, DUEL_LOSS ld [wDuelResult], a - ld a, $5e + ld a, DUEL_ANIM_LOSS ld c, MUSIC_MATCH_LOSS ldtx hl, LostDuelText diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm index addf336..b9b4659 100644 --- a/src/engine/bank06.asm +++ b/src/engine/bank06.asm @@ -1058,7 +1058,7 @@ Func_18f9c: ; 18f9c (6:4f9c) ld l, a ld h, 0 add hl, hl - ld de, PointerTable_MoveAnimation + ld de, PointerTable_AttackAnimation .asm_4fa8 add hl, de ld e, [hl] @@ -1366,7 +1366,7 @@ Func_19168: ; 19168 (6:5168) ret -INCLUDE "data/move_animations.asm" +INCLUDE "data/attack_animations.asm" INCROM $19674, $1991f diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index c18eefc..80bba5f 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -1455,7 +1455,7 @@ Func_1ce03: ; 1ce03 (7:4e03) ; data for each animation ID (see src/constants/sprite_constants.asm) Animations: ; 1ce32 (7:4e32) - ; $00 + ; DUEL_ANIM_NONE db $00 ; sprite ID db $00 ; palette ID db $00 ; anim ID @@ -1463,7 +1463,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $01 + ; DUEL_ANIM_GLOW db SPRITE_DUEL_GLOW ; sprite ID db $1f ; palette ID db $47 ; anim ID @@ -1471,7 +1471,7 @@ Animations: ; 1ce32 (7:4e32) db $11 ; sound FX ID db $00 ; handler function - ; $02 + ; DUEL_ANIM_2 db SPRITE_DUEL_1 ; sprite ID db $20 ; palette ID db $48 ; anim ID @@ -1479,7 +1479,7 @@ Animations: ; 1ce32 (7:4e32) db $12 ; sound FX ID db $00 ; handler function - ; $03 + ; DUEL_ANIM_3 db SPRITE_DUEL_2 ; sprite ID db $21 ; palette ID db $49 ; anim ID @@ -1487,7 +1487,7 @@ Animations: ; 1ce32 (7:4e32) db $13 ; sound FX ID db $00 ; handler function - ; $04 + ; DUEL_ANIM_4 db SPRITE_DUEL_55 ; sprite ID db $22 ; palette ID db $4a ; anim ID @@ -1495,7 +1495,7 @@ Animations: ; 1ce32 (7:4e32) db $14 ; sound FX ID db $00 ; handler function - ; $05 + ; DUEL_ANIM_5 db SPRITE_DUEL_58 ; sprite ID db $23 ; palette ID db $4b ; anim ID @@ -1503,7 +1503,7 @@ Animations: ; 1ce32 (7:4e32) db $15 ; sound FX ID db $00 ; handler function - ; $06 + ; DUEL_ANIM_6 db SPRITE_DUEL_3 ; sprite ID db $24 ; palette ID db $4c ; anim ID @@ -1511,7 +1511,7 @@ Animations: ; 1ce32 (7:4e32) db $16 ; sound FX ID db $00 ; handler function - ; $07 + ; DUEL_ANIM_HIT db SPRITE_DUEL_3 ; sprite ID db $24 ; palette ID db $4d ; anim ID @@ -1519,7 +1519,7 @@ Animations: ; 1ce32 (7:4e32) db $16 ; sound FX ID db $00 ; handler function - ; $08 + ; DUEL_ANIM_8 db SPRITE_DUEL_3 ; sprite ID db $24 ; palette ID db $4e ; anim ID @@ -1527,7 +1527,7 @@ Animations: ; 1ce32 (7:4e32) db $17 ; sound FX ID db $00 ; handler function - ; $09 + ; DUEL_ANIM_SHOW_DAMAGE db SPRITE_DUEL_4 ; sprite ID db $25 ; palette ID db $00 ; anim ID @@ -1535,7 +1535,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $0a + ; DUEL_ANIM_THUNDER_SHOCK db SPRITE_DUEL_5 ; sprite ID db $26 ; palette ID db $5c ; anim ID @@ -1543,7 +1543,7 @@ Animations: ; 1ce32 (7:4e32) db $18 ; sound FX ID db $00 ; handler function - ; $0b + ; DUEL_ANIM_11 db SPRITE_DUEL_6 ; sprite ID db $27 ; palette ID db $5e ; anim ID @@ -1551,7 +1551,7 @@ Animations: ; 1ce32 (7:4e32) db $19 ; sound FX ID db $00 ; handler function - ; $0c + ; DUEL_ANIM_12 db SPRITE_DUEL_59 ; sprite ID db $28 ; palette ID db $5f ; anim ID @@ -1559,7 +1559,7 @@ Animations: ; 1ce32 (7:4e32) db $1a ; sound FX ID db $00 ; handler function - ; $0d + ; DUEL_ANIM_13 db SPRITE_DUEL_7 ; sprite ID db $29 ; palette ID db $60 ; anim ID @@ -1567,7 +1567,7 @@ Animations: ; 1ce32 (7:4e32) db $1b ; sound FX ID db $00 ; handler function - ; $0e + ; DUEL_ANIM_14 db SPRITE_DUEL_8 ; sprite ID db $2a ; palette ID db $61 ; anim ID @@ -1575,7 +1575,7 @@ Animations: ; 1ce32 (7:4e32) db $1c ; sound FX ID db $00 ; handler function - ; $0f + ; DUEL_ANIM_15 db SPRITE_DUEL_8 ; sprite ID db $2a ; palette ID db $62 ; anim ID @@ -1583,7 +1583,7 @@ Animations: ; 1ce32 (7:4e32) db $1d ; sound FX ID db $00 ; handler function - ; $10 + ; DUEL_ANIM_16 db SPRITE_DUEL_9 ; sprite ID db $2b ; palette ID db $63 ; anim ID @@ -1591,7 +1591,7 @@ Animations: ; 1ce32 (7:4e32) db $1e ; sound FX ID db $00 ; handler function - ; $11 + ; DUEL_ANIM_17 db SPRITE_DUEL_10 ; sprite ID db $2c ; palette ID db $64 ; anim ID @@ -1599,7 +1599,7 @@ Animations: ; 1ce32 (7:4e32) db $1f ; sound FX ID db $00 ; handler function - ; $12 + ; DUEL_ANIM_18 db SPRITE_DUEL_61 ; sprite ID db $2d ; palette ID db $69 ; anim ID @@ -1607,7 +1607,7 @@ Animations: ; 1ce32 (7:4e32) db $20 ; sound FX ID db $00 ; handler function - ; $13 + ; DUEL_ANIM_19 db SPRITE_DUEL_11 ; sprite ID db $2e ; palette ID db $6a ; anim ID @@ -1615,7 +1615,7 @@ Animations: ; 1ce32 (7:4e32) db $21 ; sound FX ID db $00 ; handler function - ; $14 + ; DUEL_ANIM_20 db SPRITE_DUEL_12 ; sprite ID db $2f ; palette ID db $6b ; anim ID @@ -1623,7 +1623,7 @@ Animations: ; 1ce32 (7:4e32) db $22 ; sound FX ID db $00 ; handler function - ; $15 + ; DUEL_ANIM_21 db SPRITE_DUEL_13 ; sprite ID db $30 ; palette ID db $6c ; anim ID @@ -1631,7 +1631,7 @@ Animations: ; 1ce32 (7:4e32) db $23 ; sound FX ID db $00 ; handler function - ; $16 + ; DUEL_ANIM_22 db SPRITE_DUEL_62 ; sprite ID db $31 ; palette ID db $6d ; anim ID @@ -1639,7 +1639,7 @@ Animations: ; 1ce32 (7:4e32) db $24 ; sound FX ID db $00 ; handler function - ; $17 + ; DUEL_ANIM_23 db SPRITE_DUEL_14 ; sprite ID db $32 ; palette ID db $6e ; anim ID @@ -1647,7 +1647,7 @@ Animations: ; 1ce32 (7:4e32) db $25 ; sound FX ID db $00 ; handler function - ; $18 + ; DUEL_ANIM_24 db SPRITE_DUEL_15 ; sprite ID db $33 ; palette ID db $6f ; anim ID @@ -1655,7 +1655,7 @@ Animations: ; 1ce32 (7:4e32) db $26 ; sound FX ID db $00 ; handler function - ; $19 + ; DUEL_ANIM_25 db SPRITE_DUEL_16 ; sprite ID db $34 ; palette ID db $70 ; anim ID @@ -1663,7 +1663,7 @@ Animations: ; 1ce32 (7:4e32) db $27 ; sound FX ID db $00 ; handler function - ; $1a + ; DUEL_ANIM_26 db SPRITE_DUEL_17 ; sprite ID db $35 ; palette ID db $71 ; anim ID @@ -1671,7 +1671,7 @@ Animations: ; 1ce32 (7:4e32) db $28 ; sound FX ID db $00 ; handler function - ; $1b + ; DUEL_ANIM_27 db SPRITE_DUEL_18 ; sprite ID db $36 ; palette ID db $72 ; anim ID @@ -1679,7 +1679,7 @@ Animations: ; 1ce32 (7:4e32) db $29 ; sound FX ID db $00 ; handler function - ; $1c + ; DUEL_ANIM_28 db SPRITE_DUEL_18 ; sprite ID db $36 ; palette ID db $73 ; anim ID @@ -1687,7 +1687,7 @@ Animations: ; 1ce32 (7:4e32) db $2a ; sound FX ID db $00 ; handler function - ; $1d + ; DUEL_ANIM_29 db SPRITE_DUEL_19 ; sprite ID db $37 ; palette ID db $74 ; anim ID @@ -1695,7 +1695,7 @@ Animations: ; 1ce32 (7:4e32) db $2b ; sound FX ID db $00 ; handler function - ; $1e + ; DUEL_ANIM_30 db SPRITE_DUEL_19 ; sprite ID db $37 ; palette ID db $75 ; anim ID @@ -1703,7 +1703,7 @@ Animations: ; 1ce32 (7:4e32) db $52 ; sound FX ID db $00 ; handler function - ; $1f + ; DUEL_ANIM_31 db SPRITE_DUEL_19 ; sprite ID db $37 ; palette ID db $76 ; anim ID @@ -1711,7 +1711,7 @@ Animations: ; 1ce32 (7:4e32) db $53 ; sound FX ID db $00 ; handler function - ; $20 + ; DUEL_ANIM_32 db SPRITE_DUEL_20 ; sprite ID db $38 ; palette ID db $77 ; anim ID @@ -1719,7 +1719,7 @@ Animations: ; 1ce32 (7:4e32) db $2c ; sound FX ID db $00 ; handler function - ; $21 + ; DUEL_ANIM_33 db SPRITE_DUEL_21 ; sprite ID db $39 ; palette ID db $78 ; anim ID @@ -1727,7 +1727,7 @@ Animations: ; 1ce32 (7:4e32) db $2d ; sound FX ID db $00 ; handler function - ; $22 + ; DUEL_ANIM_34 db SPRITE_DUEL_22 ; sprite ID db $3a ; palette ID db $7a ; anim ID @@ -1735,7 +1735,7 @@ Animations: ; 1ce32 (7:4e32) db $2d ; sound FX ID db $00 ; handler function - ; $23 + ; DUEL_ANIM_35 db SPRITE_DUEL_23 ; sprite ID db $3b ; palette ID db $7b ; anim ID @@ -1743,7 +1743,7 @@ Animations: ; 1ce32 (7:4e32) db $2e ; sound FX ID db $00 ; handler function - ; $24 + ; DUEL_ANIM_FURY_SWIPES db SPRITE_DUEL_21 ; sprite ID db $39 ; palette ID db $79 ; anim ID @@ -1751,7 +1751,7 @@ Animations: ; 1ce32 (7:4e32) db $2f ; sound FX ID db $00 ; handler function - ; $25 + ; DUEL_ANIM_37 db SPRITE_DUEL_24 ; sprite ID db $3c ; palette ID db $7c ; anim ID @@ -1759,7 +1759,7 @@ Animations: ; 1ce32 (7:4e32) db $30 ; sound FX ID db $00 ; handler function - ; $26 + ; DUEL_ANIM_38 db SPRITE_DUEL_25 ; sprite ID db $3d ; palette ID db $7d ; anim ID @@ -1767,7 +1767,7 @@ Animations: ; 1ce32 (7:4e32) db $31 ; sound FX ID db $00 ; handler function - ; $27 + ; DUEL_ANIM_39 db SPRITE_DUEL_26 ; sprite ID db $3e ; palette ID db $7e ; anim ID @@ -1775,7 +1775,7 @@ Animations: ; 1ce32 (7:4e32) db $32 ; sound FX ID db $00 ; handler function - ; $28 + ; DUEL_ANIM_40 db SPRITE_DUEL_27 ; sprite ID db $3f ; palette ID db $7f ; anim ID @@ -1783,7 +1783,7 @@ Animations: ; 1ce32 (7:4e32) db $33 ; sound FX ID db $00 ; handler function - ; $29 + ; DUEL_ANIM_41 db SPRITE_DUEL_28 ; sprite ID db $40 ; palette ID db $80 ; anim ID @@ -1791,7 +1791,7 @@ Animations: ; 1ce32 (7:4e32) db $34 ; sound FX ID db $00 ; handler function - ; $2a + ; DUEL_ANIM_42 db SPRITE_DUEL_29 ; sprite ID db $41 ; palette ID db $81 ; anim ID @@ -1799,7 +1799,7 @@ Animations: ; 1ce32 (7:4e32) db $35 ; sound FX ID db $00 ; handler function - ; $2b + ; DUEL_ANIM_43 db SPRITE_DUEL_56 ; sprite ID db $42 ; palette ID db $82 ; anim ID @@ -1807,7 +1807,7 @@ Animations: ; 1ce32 (7:4e32) db $36 ; sound FX ID db $00 ; handler function - ; $2c + ; DUEL_ANIM_44 db SPRITE_DUEL_30 ; sprite ID db $43 ; palette ID db $83 ; anim ID @@ -1815,7 +1815,7 @@ Animations: ; 1ce32 (7:4e32) db $37 ; sound FX ID db $00 ; handler function - ; $2d + ; DUEL_ANIM_45 db SPRITE_DUEL_31 ; sprite ID db $44 ; palette ID db $84 ; anim ID @@ -1823,7 +1823,7 @@ Animations: ; 1ce32 (7:4e32) db $38 ; sound FX ID db $00 ; handler function - ; $2e + ; DUEL_ANIM_46 db SPRITE_DUEL_32 ; sprite ID db $45 ; palette ID db $85 ; anim ID @@ -1831,7 +1831,7 @@ Animations: ; 1ce32 (7:4e32) db $39 ; sound FX ID db $00 ; handler function - ; $2f + ; DUEL_ANIM_47 db SPRITE_DUEL_33 ; sprite ID db $46 ; palette ID db $86 ; anim ID @@ -1839,7 +1839,7 @@ Animations: ; 1ce32 (7:4e32) db $3a ; sound FX ID db $00 ; handler function - ; $30 + ; DUEL_ANIM_48 db SPRITE_DUEL_34 ; sprite ID db $47 ; palette ID db $87 ; anim ID @@ -1847,7 +1847,7 @@ Animations: ; 1ce32 (7:4e32) db $3b ; sound FX ID db $00 ; handler function - ; $31 + ; DUEL_ANIM_49 db SPRITE_DUEL_35 ; sprite ID db $48 ; palette ID db $88 ; anim ID @@ -1855,7 +1855,7 @@ Animations: ; 1ce32 (7:4e32) db $3c ; sound FX ID db $00 ; handler function - ; $32 + ; DUEL_ANIM_50 db SPRITE_DUEL_66 ; sprite ID db $49 ; palette ID db $89 ; anim ID @@ -1863,7 +1863,7 @@ Animations: ; 1ce32 (7:4e32) db $3d ; sound FX ID db $00 ; handler function - ; $33 + ; DUEL_ANIM_51 db SPRITE_DUEL_36 ; sprite ID db $4a ; palette ID db $8a ; anim ID @@ -1871,7 +1871,7 @@ Animations: ; 1ce32 (7:4e32) db $3e ; sound FX ID db $00 ; handler function - ; $34 + ; DUEL_ANIM_52 db SPRITE_DUEL_37 ; sprite ID db $4b ; palette ID db $8b ; anim ID @@ -1879,7 +1879,7 @@ Animations: ; 1ce32 (7:4e32) db $3f ; sound FX ID db $00 ; handler function - ; $35 + ; DUEL_ANIM_53 db SPRITE_DUEL_57 ; sprite ID db $4c ; palette ID db $8c ; anim ID @@ -1887,7 +1887,7 @@ Animations: ; 1ce32 (7:4e32) db $40 ; sound FX ID db $00 ; handler function - ; $36 + ; DUEL_ANIM_54 db SPRITE_DUEL_38 ; sprite ID db $4d ; palette ID db $8d ; anim ID @@ -1895,7 +1895,7 @@ Animations: ; 1ce32 (7:4e32) db $41 ; sound FX ID db $00 ; handler function - ; $37 + ; DUEL_ANIM_55 db SPRITE_DUEL_39 ; sprite ID db $4e ; palette ID db $8e ; anim ID @@ -1903,7 +1903,7 @@ Animations: ; 1ce32 (7:4e32) db $42 ; sound FX ID db $00 ; handler function - ; $38 + ; DUEL_ANIM_56 db SPRITE_DUEL_40 ; sprite ID db $4f ; palette ID db $8f ; anim ID @@ -1911,7 +1911,7 @@ Animations: ; 1ce32 (7:4e32) db $43 ; sound FX ID db $00 ; handler function - ; $39 + ; DUEL_ANIM_57 db SPRITE_DUEL_41 ; sprite ID db $50 ; palette ID db $90 ; anim ID @@ -1919,7 +1919,7 @@ Animations: ; 1ce32 (7:4e32) db $44 ; sound FX ID db $00 ; handler function - ; $3a + ; DUEL_ANIM_58 db SPRITE_DUEL_42 ; sprite ID db $51 ; palette ID db $92 ; anim ID @@ -1927,7 +1927,7 @@ Animations: ; 1ce32 (7:4e32) db $45 ; sound FX ID db $00 ; handler function - ; $3b + ; DUEL_ANIM_59 db SPRITE_DUEL_43 ; sprite ID db $52 ; palette ID db $93 ; anim ID @@ -1935,7 +1935,7 @@ Animations: ; 1ce32 (7:4e32) db $46 ; sound FX ID db $00 ; handler function - ; $3c + ; DUEL_ANIM_60 db SPRITE_DUEL_44 ; sprite ID db $53 ; palette ID db $94 ; anim ID @@ -1943,7 +1943,7 @@ Animations: ; 1ce32 (7:4e32) db $47 ; sound FX ID db $00 ; handler function - ; $3d + ; DUEL_ANIM_61 db SPRITE_DUEL_44 ; sprite ID db $53 ; palette ID db $95 ; anim ID @@ -1951,7 +1951,7 @@ Animations: ; 1ce32 (7:4e32) db $48 ; sound FX ID db $00 ; handler function - ; $3e + ; DUEL_ANIM_62 db SPRITE_DUEL_60 ; sprite ID db $54 ; palette ID db $97 ; anim ID @@ -1959,7 +1959,7 @@ Animations: ; 1ce32 (7:4e32) db $49 ; sound FX ID db $00 ; handler function - ; $3f + ; DUEL_ANIM_63 db SPRITE_DUEL_64 ; sprite ID db $55 ; palette ID db $99 ; anim ID @@ -1967,7 +1967,7 @@ Animations: ; 1ce32 (7:4e32) db $4a ; sound FX ID db $00 ; handler function - ; $40 + ; DUEL_ANIM_64 db SPRITE_DUEL_29 ; sprite ID db $56 ; palette ID db $81 ; anim ID @@ -1975,7 +1975,7 @@ Animations: ; 1ce32 (7:4e32) db $4b ; sound FX ID db $00 ; handler function - ; $41 + ; DUEL_ANIM_65 db SPRITE_DUEL_44 ; sprite ID db $53 ; palette ID db $96 ; anim ID @@ -1983,7 +1983,7 @@ Animations: ; 1ce32 (7:4e32) db $47 ; sound FX ID db $00 ; handler function - ; $42 + ; DUEL_ANIM_66 db SPRITE_DUEL_3 ; sprite ID db $24 ; palette ID db $4d ; anim ID @@ -1991,7 +1991,7 @@ Animations: ; 1ce32 (7:4e32) db $16 ; sound FX ID db $00 ; handler function - ; $43 + ; DUEL_ANIM_67 db SPRITE_DUEL_3 ; sprite ID db $24 ; palette ID db $4e ; anim ID @@ -1999,7 +1999,7 @@ Animations: ; 1ce32 (7:4e32) db $17 ; sound FX ID db $00 ; handler function - ; $44 + ; DUEL_ANIM_68 db SPRITE_DUEL_5 ; sprite ID db $26 ; palette ID db $5c ; anim ID @@ -2007,7 +2007,7 @@ Animations: ; 1ce32 (7:4e32) db $18 ; sound FX ID db $00 ; handler function - ; $45 + ; DUEL_ANIM_69 db SPRITE_DUEL_62 ; sprite ID db $31 ; palette ID db $6d ; anim ID @@ -2015,7 +2015,7 @@ Animations: ; 1ce32 (7:4e32) db $24 ; sound FX ID db $00 ; handler function - ; $46 + ; DUEL_ANIM_70 db SPRITE_DUEL_45 ; sprite ID db $57 ; palette ID db $9a ; anim ID @@ -2023,7 +2023,7 @@ Animations: ; 1ce32 (7:4e32) db $11 ; sound FX ID db $00 ; handler function - ; $47 + ; DUEL_ANIM_71 db SPRITE_DUEL_10 ; sprite ID db $2c ; palette ID db $65 ; anim ID @@ -2031,7 +2031,7 @@ Animations: ; 1ce32 (7:4e32) db $5c ; sound FX ID db $00 ; handler function - ; $48 + ; DUEL_ANIM_72 db SPRITE_DUEL_10 ; sprite ID db $2c ; palette ID db $66 ; anim ID @@ -2039,7 +2039,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $49 + ; DUEL_ANIM_73 db SPRITE_DUEL_60 ; sprite ID db $54 ; palette ID db $98 ; anim ID @@ -2047,7 +2047,7 @@ Animations: ; 1ce32 (7:4e32) db $4c ; sound FX ID db $00 ; handler function - ; $4a + ; DUEL_ANIM_74 db SPRITE_DUEL_41 ; sprite ID db $50 ; palette ID db $91 ; anim ID @@ -2055,7 +2055,7 @@ Animations: ; 1ce32 (7:4e32) db $4d ; sound FX ID db $00 ; handler function - ; $4b + ; DUEL_ANIM_75 db SPRITE_DUEL_46 ; sprite ID db $58 ; palette ID db $9b ; anim ID @@ -2063,7 +2063,7 @@ Animations: ; 1ce32 (7:4e32) db $4e ; sound FX ID db $00 ; handler function - ; $4c + ; DUEL_ANIM_76 db SPRITE_DUEL_47 ; sprite ID db $59 ; palette ID db $9c ; anim ID @@ -2071,7 +2071,7 @@ Animations: ; 1ce32 (7:4e32) db $4f ; sound FX ID db $00 ; handler function - ; $4d + ; DUEL_ANIM_77 db SPRITE_DUEL_48 ; sprite ID db $5a ; palette ID db $9d ; anim ID @@ -2079,7 +2079,7 @@ Animations: ; 1ce32 (7:4e32) db $50 ; sound FX ID db $00 ; handler function - ; $4e + ; DUEL_ANIM_78 db SPRITE_DUEL_10 ; sprite ID db $2c ; palette ID db $67 ; anim ID @@ -2087,7 +2087,7 @@ Animations: ; 1ce32 (7:4e32) db $51 ; sound FX ID db $00 ; handler function - ; $4f + ; DUEL_ANIM_79 db SPRITE_DUEL_10 ; sprite ID db $2c ; palette ID db $68 ; anim ID @@ -2095,7 +2095,7 @@ Animations: ; 1ce32 (7:4e32) db $51 ; sound FX ID db $00 ; handler function - ; $50 + ; DUEL_ANIM_80 db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $9e ; anim ID @@ -2103,7 +2103,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $51 + ; DUEL_ANIM_81 db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $9f ; anim ID @@ -2111,7 +2111,7 @@ Animations: ; 1ce32 (7:4e32) db $07 ; sound FX ID db $00 ; handler function - ; $52 + ; DUEL_ANIM_82 db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a0 ; anim ID @@ -2119,7 +2119,7 @@ Animations: ; 1ce32 (7:4e32) db $07 ; sound FX ID db $00 ; handler function - ; $53 + ; DUEL_ANIM_83 db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a1 ; anim ID @@ -2127,7 +2127,7 @@ Animations: ; 1ce32 (7:4e32) db $07 ; sound FX ID db $00 ; handler function - ; $54 + ; DUEL_ANIM_84 db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a2 ; anim ID @@ -2135,7 +2135,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $55 + ; DUEL_ANIM_85 db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a3 ; anim ID @@ -2143,7 +2143,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $56 + ; DUEL_ANIM_86 db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a4 ; anim ID @@ -2151,7 +2151,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $57 + ; DUEL_ANIM_87 db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a5 ; anim ID @@ -2159,7 +2159,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $58 + ; DUEL_ANIM_88 db SPRITE_DUEL_50 ; sprite ID db $5c ; palette ID db $a7 ; anim ID @@ -2167,7 +2167,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $59 + ; DUEL_ANIM_89 db SPRITE_DUEL_50 ; sprite ID db $5c ; palette ID db $a8 ; anim ID @@ -2175,7 +2175,7 @@ Animations: ; 1ce32 (7:4e32) db $0b ; sound FX ID db $00 ; handler function - ; $5a + ; DUEL_ANIM_90 db SPRITE_DUEL_50 ; sprite ID db $5c ; palette ID db $a9 ; anim ID @@ -2183,7 +2183,7 @@ Animations: ; 1ce32 (7:4e32) db $0b ; sound FX ID db $00 ; handler function - ; $5b + ; DUEL_ANIM_91 db SPRITE_DUEL_50 ; sprite ID db $5c ; palette ID db $aa ; anim ID @@ -2191,7 +2191,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $5c + ; DUEL_ANIM_92 db SPRITE_DUEL_50 ; sprite ID db $5c ; palette ID db $ab ; anim ID @@ -2199,7 +2199,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $5d + ; DUEL_ANIM_WIN db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID db $5d ; palette ID db $ac ; anim ID @@ -2207,7 +2207,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $5e + ; DUEL_ANIM_LOSS db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID db $5d ; palette ID db $ad ; anim ID @@ -2215,7 +2215,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $5f + ; DUEL_ANIM_DRAW db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID db $5d ; palette ID db $ae ; anim ID @@ -2223,7 +2223,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; $60 + ; DUEL_ANIM_96 db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a6 ; anim ID -- cgit v1.2.3 From 17a72f3153e76159ee18f441dae28d348142e8d0 Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Mon, 28 Dec 2020 15:51:55 +0000 Subject: Identify some animations and coin toss function --- src/engine/bank01.asm | 231 +++++++++++++++++++++++++++++++------------------- src/engine/bank06.asm | 19 +++-- src/engine/bank07.asm | 34 ++++---- 3 files changed, 170 insertions(+), 114 deletions(-) (limited to 'src/engine') diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index f249535..279d58c 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -183,16 +183,18 @@ MainDuelLoop: ; 40ee (1:40ee) pop af ldh [hWhoseTurn], a call Func_3b21 + +; animate the duel result screen +; load the correct music and animation depending on result ld a, [wDuelFinished] cp TURN_PLAYER_WON jr z, .active_duelist_won_battle cp TURN_PLAYER_LOST jr z, .active_duelist_lost_battle - ld a, DUEL_ANIM_DRAW + ld a, DUEL_ANIM_DUEL_DRAW ld c, MUSIC_DARK_DIDDLY ldtx hl, DuelWasADrawText jr .handle_duel_finished - .active_duelist_won_battle ldh a, [hWhoseTurn] cp PLAYER_TURN @@ -200,11 +202,10 @@ MainDuelLoop: ; 40ee (1:40ee) .player_won_battle xor a ; DUEL_WIN ld [wDuelResult], a - ld a, DUEL_ANIM_WIN + ld a, DUEL_ANIM_DUEL_WIN ld c, MUSIC_MATCH_VICTORY ldtx hl, WonDuelText jr .handle_duel_finished - .active_duelist_lost_battle ldh a, [hWhoseTurn] cp PLAYER_TURN @@ -212,7 +213,7 @@ MainDuelLoop: ; 40ee (1:40ee) .opponent_won_battle ld a, DUEL_LOSS ld [wDuelResult], a - ld a, DUEL_ANIM_LOSS + ld a, DUEL_ANIM_DUEL_LOSS ld c, MUSIC_MATCH_LOSS ldtx hl, LostDuelText @@ -1491,7 +1492,7 @@ DisplayDrawNCardsScreen: ; 4935 (1:4935) call DrawWideTextBox_PrintText call EnableLCD .anim_drawing_cards_loop - call Func_49a8 + call PlayTurnDuelistDrawAnimation ld hl, wNumCardsBeingDrawn inc [hl] call PrintNumberOfHandAndDeckCards @@ -1512,14 +1513,15 @@ DisplayDrawNCardsScreen: ; 4935 (1:4935) pop hl ret -Func_49a8: ; 49a8 (1:49a8) +; animates the screen for Turn Duelist drawing a card +PlayTurnDuelistDrawAnimation: ; 49a8 (1:49a8) call Func_3b21 - ld e, $56 + ld e, DUEL_ANIM_PLAYER_DRAW ldh a, [hWhoseTurn] cp PLAYER_TURN - jr z, .asm_49b5 - ld e, $57 -.asm_49b5 + jr z, .got_duelist + ld e, DUEL_ANIM_OPP_DRAW +.got_duelist ld a, e call Func_3b6a @@ -1773,7 +1775,7 @@ Func_4b60: ; 4b60 (1:4b60) .ensure_player_basic_pkmn_loop call DisplayNoBasicPokemonInHandScreenAndText call InitializeDuelVariables - call PlayShuffleAndDrawCardsAnimation_SingleDuelist + call PlayShuffleAndDrawCardsAnimation_TurnDuelist call ShuffleDeckAndDrawSevenCards jr c, .ensure_player_basic_pkmn_loop jr .hand_cards_ok @@ -1783,7 +1785,7 @@ Func_4b60: ; 4b60 (1:4b60) .ensure_opp_basic_pkmn_loop call DisplayNoBasicPokemonInHandScreenAndText call InitializeDuelVariables - call PlayShuffleAndDrawCardsAnimation_SingleDuelist + call PlayShuffleAndDrawCardsAnimation_TurnDuelist call ShuffleDeckAndDrawSevenCards jr c, .ensure_opp_basic_pkmn_loop call SwapTurn @@ -2172,22 +2174,22 @@ DisplayPracticeDuelPlayerHandScreen: ; 4e40 (1:4e40) call EnableLCD ret -PlayShuffleAndDrawCardsAnimation_SingleDuelist: ; 4e6e (1:4e6e) - ld b, $51 - ld c, $56 +PlayShuffleAndDrawCardsAnimation_TurnDuelist: ; 4e6e (1:4e6e) + ld b, DUEL_ANIM_PLAYER_SHUFFLE + ld c, DUEL_ANIM_PLAYER_DRAW ldh a, [hWhoseTurn] cp PLAYER_TURN jr z, .play_anim - ld b, $52 - ld c, $57 + ld b, DUEL_ANIM_OPP_SHUFFLE + ld c, DUEL_ANIM_OPP_DRAW .play_anim ldtx hl, ShufflesTheDeckText ldtx de, Drew7CardsText jr PlayShuffleAndDrawCardsAnimation PlayShuffleAndDrawCardsAnimation_BothDuelists: ; 4e84 (1:4e84) - ld b, $53 - ld c, $55 + ld b, DUEL_ANIM_BOTH_SHUFFLE + ld c, DUEL_ANIM_BOTH_DRAW ldtx hl, EachPlayerShuffleOpponentsDeckText ldtx de, EachPlayerDraw7CardsText ld a, [wDuelType] @@ -2222,10 +2224,10 @@ PlayShuffleAndDrawCardsAnimation: ; 4e98 (1:4e98) jr .print_deck_info .not_practice +; get the shuffling animation from input value of b call Func_3b21 ld hl, sp+$03 - -; play animation 3 times + ; play animation 3 times ld a, [hl] call Func_3b6a ld a, [hl] @@ -2236,10 +2238,10 @@ PlayShuffleAndDrawCardsAnimation: ; 4e98 (1:4e98) .loop_shuffle_anim call DoFrame call CheckSkipDelayAllowed - jr c, .asm_4edd + jr c, .done_shuffle call CheckAnyAnimationPlaying jr c, .loop_shuffle_anim -.asm_4edd +.done_shuffle call Func_3b31 .print_deck_info @@ -2250,6 +2252,7 @@ PlayShuffleAndDrawCardsAnimation: ; 4e98 (1:4e98) pop hl call DrawWideTextBox_PrintText .draw_card +; get the draw animation from input value of c ld hl, sp+$00 ld a, [hl] call Func_3b6a @@ -2265,11 +2268,12 @@ PlayShuffleAndDrawCardsAnimation: ; 4e98 (1:4e98) inc [hl] ld hl, sp+$00 ld a, [hl] - cp $55 - jr nz, .asm_4f11 + cp DUEL_ANIM_BOTH_DRAW + jr nz, .one_duelist_shuffled + ; if both duelists shuffled call PrintDeckAndHandIconsAndNumberOfCards.not_cgb jr .check_num_cards -.asm_4f11 +.one_duelist_shuffled call PrintNumberOfHandAndDeckCards .check_num_cards @@ -2316,11 +2320,11 @@ Func_4f2d: ; 4f2d (1:4f2d) call Func_3b21 ; load correct animation depending on turn duelist - ld e, $51 + ld e, DUEL_ANIM_PLAYER_SHUFFLE ldh a, [hWhoseTurn] cp PLAYER_TURN jr z, .load_anim - ld e, $52 + ld e, DUEL_ANIM_OPP_SHUFFLE .load_anim ; play animation 3 times ld a, e @@ -6778,6 +6782,7 @@ HandleBetweenTurnsEvents: ; 6baf (1:6baf) call DiscardAttachedDefenders call SwapTurn ret + .something_to_handle ; either: ; 1. turn holder's arena Pokemon is paralyzed, asleep, poisoned or double poisoned @@ -6789,6 +6794,7 @@ HandleBetweenTurnsEvents: ; 6baf (1:6baf) call DrawDuelBoxMessage ldtx hl, BetweenTurnsText call DrawWideTextBox_WaitForInput + ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable call GetCardIDFromDeckIndex @@ -6797,24 +6803,27 @@ HandleBetweenTurnsEvents: ; 6baf (1:6baf) ld l, DUELVARS_ARENA_CARD_STATUS ld a, [hl] or a - jr z, .asm_6c1a - call Func_6d3f - jr c, .asm_6c1a - call Func_6cfa + jr z, .discard_pluspower + ; has status condition + call HandlePoisonDamage + jr c, .discard_pluspower + call HandleSleepCheck ld a, [hl] and CNF_SLP_PRZ cp PARALYZED - jr nz, .asm_6c1a + jr nz, .discard_pluspower + ; heal paralysis ld a, DOUBLE_POISONED and [hl] ld [hl], a call Func_6c7e ldtx hl, IsCuredOfParalysisText call Func_6ce4 - ld a, $3e + ld a, DUEL_ANIM_HEAL call Func_6cab call WaitForWideTextBoxInput -.asm_6c1a + +.discard_pluspower call DiscardAttachedPluspowers call SwapTurn ld a, DUELVARS_ARENA_CARD @@ -6826,13 +6835,13 @@ HandleBetweenTurnsEvents: ; 6baf (1:6baf) ld a, [hl] or a jr z, .asm_6c3a - call Func_6d3f + call HandlePoisonDamage jr c, .asm_6c3a - call Func_6cfa + call HandleSleepCheck .asm_6c3a call DiscardAttachedDefenders call SwapTurn - call $6e4c + call Func_6e4c ret ; discard any PLUSPOWER attached to the turn holder's arena and/or bench Pokemon @@ -6894,6 +6903,7 @@ Func_6c7e: ; 6c7e (1:6c7e) call DrawDuelMainScene call SwapTurn ret + .asm_6c98 ld hl, wWhoseTurn ldh a, [hWhoseTurn] @@ -6904,33 +6914,39 @@ Func_6c7e: ; 6c7e (1:6c7e) call SwapTurn ret +; input: +; a = animation ID Func_6cab: ; 6cab (1:6cab) push af ld a, [wDuelType] or a - jr nz, .asm_6cc6 + jr nz, .store_duelist_turn ld a, [wWhoseTurn] cp PLAYER_TURN - jr z, .asm_6cc6 + jr z, .store_duelist_turn call SwapTurn ldh a, [hWhoseTurn] ld [wd4af], a call SwapTurn jr .asm_6ccb -.asm_6cc6 + +.store_duelist_turn ldh a, [hWhoseTurn] ld [wd4af], a + .asm_6ccb xor a ld [wd4b0], a ld a, DUEL_ANIM_SCREEN_MAIN_SCENE ld [wDuelAnimationScreen], a pop af + +; play animation call Func_3b6a -.asm_6cd8 +.loop_anim call DoFrame call CheckAnyAnimationPlaying - jr c, .asm_6cd8 + jr c, .loop_anim call Func_6c7e.asm_6c98 ret @@ -6949,11 +6965,15 @@ Func_6ce4: ; 6ce4 (1:6ce4) call DrawWideTextBox_PrintText ret -Func_6cfa: ; 6cfa (1:6cfa) +; handles the sleep check for the NonTurn Duelist +; heals sleep status if coin is heads, else +; it plays sleeping animation +HandleSleepCheck: ; 6cfa (1:6cfa) ld a, [hl] and CNF_SLP_PRZ cp ASLEEP - ret nz + ret nz ; quit if not asleep + push hl ld a, [wTempNonTurnDuelistCardID] ld e, a @@ -6967,17 +6987,20 @@ Func_6cfa: ; 6cfa (1:6cfa) ld [hl], a ldtx de, PokemonsSleepCheckText call TossCoin - ld a, $03 + ld a, DUEL_ANIM_SLEEP ldtx hl, IsStillAsleepText - jr nc, .asm_6d2d + jr nc, .tails + +; coin toss was heads, cure sleep status pop hl push hl ld a, DOUBLE_POISONED and [hl] ld [hl], a - ld a, $3e + ld a, DUEL_ANIM_HEAL ldtx hl, IsCuredOfSleepText -.asm_6d2d + +.tails push af push hl call Func_6c7e @@ -6989,10 +7012,12 @@ Func_6cfa: ; 6cfa (1:6cfa) call WaitForWideTextBoxInput ret -Func_6d3f: ; 6d3f (1:6d3f) +HandlePoisonDamage: ; 6d3f (1:6d3f) or a bit POISONED_F , [hl] - ret z + ret z ; quit if not poisoned + +; load damage and text according to normal/double poison push hl bit DOUBLE_POISONED_F, [hl] ld a, PSN_DAMAGE @@ -7000,18 +7025,24 @@ Func_6d3f: ; 6d3f (1:6d3f) jr z, .not_double_poisoned ld a, DBLPSN_DAMAGE ldtx hl, Received20DamageDueToPoisonText + .not_double_poisoned push af ld [wd4b1], a xor a ld [wd4b2], a + push hl call Func_6c7e pop hl call Func_6ce4 - ld a, $05 + +; play animation + ld a, DUEL_ANIM_POISON call Func_6cab pop af + +; deal poison damage ld e, a ld d, $00 ld a, DUELVARS_ARENA_CARD_HP @@ -7021,6 +7052,7 @@ Func_6d3f: ; 6d3f (1:6d3f) ld a, $8c call Func_6cab pop hl + call PrintKnockedOutIfHLZero push af call WaitForWideTextBoxInput @@ -7157,6 +7189,9 @@ ApplyStatusConditionToArenaPokemon: ; 6e38 (1:6e38) Func_6e49: ; 6e49 (1:6e49) call HandleDestinyBondSubstatus + ; fallthrough + +Func_6e4c: ; 6e4c (1:6e4c) call ClearDamageReductionSubstatus2OfKnockedOutPokemon xor a ld [wcce8], a @@ -7808,7 +7843,7 @@ _TossCoin: ; 71ad (1:71ad) .asm_7223 call Func_3b21 - ld a, $58 + ld a, DUEL_ANIM_COIN_SPIN call Func_3b6a ld a, [wCoinTossDuelistType] @@ -7823,81 +7858,94 @@ _TossCoin: ; 71ad (1:71ad) .asm_723c call Func_3b21 - ld d, $5a - ld e, $0 + ld d, DUEL_ANIM_COIN_TOSS2 + ld e, $0 ; heads call UpdateRNGSources rra - jr c, .asm_724d - ld d, $59 - ld e, $1 - -.asm_724d + jr c, .got_result + ld d, DUEL_ANIM_COIN_TOSS1 + ld e, $1 ; tails + +.got_result +; already decided on coin toss result, +; load the correct tossing animation +; and wait for it to finish ld a, d call Func_3b6a ld a, [wCoinTossDuelistType] or a - jr z, .asm_725e + jr z, .wait_anim ld a, e call Func_7310 ld e, a - jr .asm_726c - -.asm_725e + jr .done_toss_anim +.wait_anim push de call DoFrame call CheckAnyAnimationPlaying pop de - jr c, .asm_725e + jr c, .wait_anim ld a, e call Func_72ff -.asm_726c - ld b, $5c - ld c, $34 +.done_toss_anim + ld b, DUEL_ANIM_COIN_HEADS + ld c, $34 ; tile for circle ld a, e or a - jr z, .asm_727c - ld b, $5b - ld c, $30 + jr z, .show_result + ld b, DUEL_ANIM_COIN_TAILS + ld c, $30 ; tile for cross ld hl, wCoinTossNumHeads inc [hl] -.asm_727c +.show_result ld a, b call Func_3b6a + +; load correct sound effect +; the sound of the coin toss result +; is dependant on whether it was the Player +; or the Opponent to get heads/tails ld a, [wCoinTossDuelistType] or a - jr z, .asm_728a + jr z, .check_sfx ld a, $1 - xor e + xor e ; invert result in case it's not Player ld e, a - -.asm_728a +.check_sfx ld d, SFX_54 ld a, e or a - jr nz, .asm_7292 + jr nz, .got_sfx ld d, SFX_55 - -.asm_7292 +.got_sfx ld a, d call PlaySFX + +; in case it's a multiple coin toss scenario, +; then the result needs to be registered on screen +; with a circle (o) or a cross (x) ld a, [wCoinTossTotalNum] dec a - jr z, .asm_72b9 + jr z, .incr_num_coin_tossed ; skip if not more than 1 coin toss ld a, c push af - ld e, $0 + ld e, 0 ld a, [wCoinTossNumTossed] +; calculate the offset to draw the circle/cross .asm_72a3 - cp $a - jr c, .asm_72ad + ; if < 10, then the offset is simply calculated + ; from wCoinTossNumTossed * 2... + cp 10 + jr c, .got_offset + ; ...else the y-offset is added for each multiple of 10 inc e inc e - sub $a + sub 10 jr .asm_72a3 -.asm_72ad +.got_offset add a ld d, a lb bc, 2, 2 @@ -7905,9 +7953,10 @@ _TossCoin: ; 71ad (1:71ad) pop af call FillRectangle -.asm_72b9 +.incr_num_coin_tossed ld hl, wCoinTossNumTossed inc [hl] + ld a, [wCoinTossDuelistType] or a jr z, .asm_72dc @@ -7936,6 +7985,8 @@ _TossCoin: ; 71ad (1:71ad) call ExchangeRNG call Func_3b31 call Func_3b21 + +; return carry if at least 1 heads ld a, [wCoinTossNumHeads] or a ret z @@ -7959,10 +8010,10 @@ Func_7310: ; 7310 (1:7310) ld a, [wDuelType] cp DUELTYPE_LINK jr z, Func_7338 -.asm_7319 +.loop_anim call DoFrame call CheckAnyAnimationPlaying - jr c, .asm_7319 + jr c, .loop_anim ldh a, [hff96] ret @@ -7971,6 +8022,8 @@ Func_7324: ; 7324 (1:7324) ld a, [wDuelType] cp DUELTYPE_LINK jr z, Func_7338 + +; delay coin flip for AI opponent ld a, 30 .asm_732f call DoFrame diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm index b9b4659..62e1bbd 100644 --- a/src/engine/bank06.asm +++ b/src/engine/bank06.asm @@ -1055,6 +1055,7 @@ Func_18f9c: ; 18f9c (6:4f9c) ld a, [wLoadedMoveAnimation] or a ret z + ld l, a ld h, 0 add hl, hl @@ -1129,17 +1130,19 @@ Func_19013: ; 19013 (6:5013) Func_19014: ; 19014 (6:5014) ld a, [de] inc de - cp $09 + cp DUEL_ANIM_SHOW_DAMAGE jr z, .asm_502b - cp $fa + cp DUEL_ANIM_SHAKE1 jr z, .asm_5057 - cp $fb + cp DUEL_ANIM_SHAKE2 jr z, .asm_505d - cp $fc + cp DUEL_ANIM_SHAKE3 jr z, .asm_5063 -.asm_5026 + +.play_anim call Func_3b6a jr Func_18f9c.asm_4fd4 + .asm_502b ld a, $97 call Func_3b6a @@ -1178,13 +1181,13 @@ Func_19014: ; 19014 (6:5014) ldh a, [hWhoseTurn] cp $c2 ld a, c - jr z, .asm_5026 + jr z, .play_anim ld a, [wDuelType] cp $00 ld a, c - jr z, .asm_5026 + jr z, .play_anim ld a, b - jr .asm_5026 + jr .play_anim Func_19079: ; 19079 (6:5079) ld a, [de] diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index 80bba5f..71d0131 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -1479,7 +1479,7 @@ Animations: ; 1ce32 (7:4e32) db $12 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_3 + ; DUEL_ANIM_SLEEP db SPRITE_DUEL_2 ; sprite ID db $21 ; palette ID db $49 ; anim ID @@ -1495,7 +1495,7 @@ Animations: ; 1ce32 (7:4e32) db $14 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_5 + ; DUEL_ANIM_POISON db SPRITE_DUEL_58 ; sprite ID db $23 ; palette ID db $4b ; anim ID @@ -1951,7 +1951,7 @@ Animations: ; 1ce32 (7:4e32) db $48 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_62 + ; DUEL_ANIM_HEAL db SPRITE_DUEL_60 ; sprite ID db $54 ; palette ID db $97 ; anim ID @@ -2103,7 +2103,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_81 + ; DUEL_ANIM_PLAYER_SHUFFLE db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $9f ; anim ID @@ -2111,7 +2111,7 @@ Animations: ; 1ce32 (7:4e32) db $07 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_82 + ; DUEL_ANIM_OPP_SHUFFLE db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a0 ; anim ID @@ -2119,7 +2119,7 @@ Animations: ; 1ce32 (7:4e32) db $07 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_83 + ; DUEL_ANIM_BOTH_SHUFFLE db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a1 ; anim ID @@ -2135,7 +2135,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_85 + ; DUEL_ANIM_BOTH_DRAW db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a3 ; anim ID @@ -2143,7 +2143,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_86 + ; DUEL_ANIM_PLAYER_DRAW db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a4 ; anim ID @@ -2151,7 +2151,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_87 + ; DUEL_ANIM_OPP_DRAW db SPRITE_DUEL_49 ; sprite ID db $5b ; palette ID db $a5 ; anim ID @@ -2159,7 +2159,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_88 + ; DUEL_ANIM_COIN_SPIN db SPRITE_DUEL_50 ; sprite ID db $5c ; palette ID db $a7 ; anim ID @@ -2167,7 +2167,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_89 + ; DUEL_ANIM_COIN_TOSS1 db SPRITE_DUEL_50 ; sprite ID db $5c ; palette ID db $a8 ; anim ID @@ -2175,7 +2175,7 @@ Animations: ; 1ce32 (7:4e32) db $0b ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_90 + ; DUEL_ANIM_COIN_TOSS2 db SPRITE_DUEL_50 ; sprite ID db $5c ; palette ID db $a9 ; anim ID @@ -2183,7 +2183,7 @@ Animations: ; 1ce32 (7:4e32) db $0b ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_91 + ; DUEL_ANIM_COIN_TAILS db SPRITE_DUEL_50 ; sprite ID db $5c ; palette ID db $aa ; anim ID @@ -2191,7 +2191,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_92 + ; DUEL_ANIM_COIN_HEADS db SPRITE_DUEL_50 ; sprite ID db $5c ; palette ID db $ab ; anim ID @@ -2199,7 +2199,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_WIN + ; DUEL_ANIM_DUEL_WIN db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID db $5d ; palette ID db $ac ; anim ID @@ -2207,7 +2207,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_LOSS + ; DUEL_ANIM_DUEL_LOSS db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID db $5d ; palette ID db $ad ; anim ID @@ -2215,7 +2215,7 @@ Animations: ; 1ce32 (7:4e32) db $00 ; sound FX ID db $00 ; handler function - ; DUEL_ANIM_DRAW + ; DUEL_ANIM_DUEL_DRAW db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID db $5d ; palette ID db $ae ; anim ID -- cgit v1.2.3 From 5862276d9e47bb61a37103532611f545d216d869 Mon Sep 17 00:00:00 2001 From: ElectroDeoxys Date: Mon, 4 Jan 2021 17:50:56 +0000 Subject: Convert to rgb values, apply misc fixes --- src/engine/bank20.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/engine') diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index 86758d2..c2a8cdf 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -492,10 +492,10 @@ Func_80418: ; 80418 (20:4418) jr z, .check_palette_size .obp1 - ld a, [hli] + ld a, [hli] ; pallete for OBP1 push hl push bc - call SetOBP1 ; pallete for OBP1 + call SetOBP1 pop bc pop hl dec c -- cgit v1.2.3