Getting started with battle anims; sine and cosine

This commit is contained in:
PikalaxALT
2015-12-04 14:33:29 -05:00
parent 5b94d54a6c
commit 81ea723b04
8 changed files with 1048 additions and 847 deletions

View File

@@ -106,7 +106,7 @@ RunBattleAnimScript: ; cc163
.playframe .playframe
call Functioncc25f call Functioncc25f
call Functionccb48 call _ExecuteBGEffects
call Functioncc96e call Functioncc96e
call Function3b0c call Function3b0c
call BattleAnimRequestPals call BattleAnimRequestPals
@@ -633,7 +633,7 @@ BattleAnimCmd_Obj: ; cc41f (33:441f)
ld [BattleAnimTemps + 2], a ld [BattleAnimTemps + 2], a
call GetBattleAnimByte call GetBattleAnimByte
ld [BattleAnimTemps + 3], a ld [BattleAnimTemps + 3], a
call Functioncc9a1 call QueueBattleAnimation
ret ret
BattleAnimCmd_BGEffect: ; cc43b (33:443b) BattleAnimCmd_BGEffect: ; cc43b (33:443b)
@@ -645,7 +645,7 @@ BattleAnimCmd_BGEffect: ; cc43b (33:443b)
ld [BattleAnimTemps + 2], a ld [BattleAnimTemps + 2], a
call GetBattleAnimByte call GetBattleAnimByte
ld [BattleAnimTemps + 3], a ld [BattleAnimTemps + 3], a
call Functionccb4f call _QueueBGEffect
ret ret
BattleAnimCmd_BGP: ; cc457 (33:4457) BattleAnimCmd_BGP: ; cc457 (33:4457)
@@ -667,20 +667,20 @@ BattleAnimCmd_ResetObp0: ; cc46c (33:446c)
ld a, [hSGB] ld a, [hSGB]
and a and a
ld a, $e0 ld a, $e0
jr z, .asm_cc475 jr z, .not_sgb
ld a, $f0 ld a, $f0
.asm_cc475 .not_sgb
ld [wcfc8], a ld [wcfc8], a
ret ret
BattleAnimCmd_ClearObjs: ; cc479 (33:4479) BattleAnimCmd_ClearObjs: ; cc479 (33:4479)
ld hl, OTPartyMon3HP ld hl, ActiveAnimObjects
ld a, $a0 ld a, $a0
.asm_cc47e .loop
ld [hl], $0 ld [hl], $0
inc hl inc hl
dec a dec a
jr nz, .asm_cc47e jr nz, .loop
ret ret
BattleAnimCmd_1GFX: BattleAnimCmd_1GFX:
@@ -725,7 +725,7 @@ endr
BattleAnimCmd_IncObj: ; cc4c0 (33:44c0) BattleAnimCmd_IncObj: ; cc4c0 (33:44c0)
call GetBattleAnimByte call GetBattleAnimByte
ld e, $a ld e, $a
ld bc, OTPartyMon3HP ld bc, ActiveAnimObjects
.asm_cc4c8 .asm_cc4c8
ld hl, $0 ld hl, $0
add hl, bc add hl, bc
@@ -773,7 +773,7 @@ BattleAnimCmd_IncBGEffect: ; cc4e3 (33:44e3)
BattleAnimCmd_SetObj: ; cc506 (33:4506) BattleAnimCmd_SetObj: ; cc506 (33:4506)
call GetBattleAnimByte call GetBattleAnimByte
ld e, $a ld e, $a
ld bc, OTPartyMon3HP ld bc, ActiveAnimObjects
.asm_cc50e .asm_cc50e
ld hl, $0 ld hl, $0
add hl, bc add hl, bc
@@ -1480,12 +1480,12 @@ Functioncc94b: ; cc94b
Functioncc96e: ; cc96e Functioncc96e: ; cc96e
ld a, $0 ld a, $0
ld [w5_d418], a ld [w5_d418], a
ld hl, OTPartyMon3HP ld hl, ActiveAnimObjects
ld e, $a ld e, 10
.asm_cc978 .loop
ld a, [hl] ld a, [hl]
and a and a
jr z, .asm_cc98a jr z, .next
ld c, l ld c, l
ld b, h ld b, h
push hl push hl
@@ -1494,24 +1494,24 @@ Functioncc96e: ; cc96e
call Functioncca09 call Functioncca09
pop de pop de
pop hl pop hl
jr c, .asm_cc9a0 jr c, .done
.asm_cc98a .next
ld bc, $0018 ld bc, $0018
add hl, bc add hl, bc
dec e dec e
jr nz, .asm_cc978 jr nz, .loop
ld a, [w5_d418] ld a, [w5_d418]
ld l, a ld l, a
ld h, $c4 ld h, Sprites / $100
.asm_cc997 .loop2
ld a, l ld a, l
cp $a0 cp SpritesEnd % $100
jr nc, .asm_cc9a0 jr nc, .done
xor a xor a
ld [hli], a ld [hli], a
jr .asm_cc997 jr .loop2
.asm_cc9a0 .done
ret ret
; cc9a1 ; cc9a1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -192,7 +192,7 @@ endr
ld a, [hl] ld a, [hl]
add $3 add $3
ld [hl], a ld [hl], a
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
@@ -211,7 +211,7 @@ endr
inc a inc a
ld [hl], a ld [hl], a
ld d, $2 ld d, $2
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
@@ -252,14 +252,14 @@ endr
ld a, [hl] ld a, [hl]
push af push af
push de push de
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
ld [hl], a ld [hl], a
pop de pop de
pop af pop af
call .ApplySineWaveX call .Sprites_Cosine
ld hl, SPRITEANIMSTRUCT_XOFFSET ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc add hl, bc
@@ -297,14 +297,14 @@ endr
ld a, [hl] ld a, [hl]
push af push af
push de push de
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
ld [hl], a ld [hl], a
pop de pop de
pop af pop af
call .ApplySineWaveX call .Sprites_Cosine
ld hl, SPRITEANIMSTRUCT_XOFFSET ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc add hl, bc
@@ -399,7 +399,7 @@ endr
.asm_8d462 .asm_8d462
ld a, e ld a, e
ld d, $20 ld d, $20
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
@@ -470,7 +470,7 @@ endr
jr c, .asm_8d4cd jr c, .asm_8d4cd
dec [hl] dec [hl]
ld d, $28 ld d, $28
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
@@ -509,7 +509,7 @@ endr
ld hl, SPRITEANIMSTRUCT_0C ld hl, SPRITEANIMSTRUCT_0C
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
call ApplySineWaveY call Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
@@ -590,7 +590,7 @@ endr
push af push af
push de push de
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
@@ -598,7 +598,7 @@ endr
pop de pop de
pop af pop af
call .ApplySineWaveX call .Sprites_Cosine
ld hl, SPRITEANIMSTRUCT_XOFFSET ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc add hl, bc
@@ -638,14 +638,14 @@ rept 3
endr endr
push af push af
push de push de
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
ld [hl], a ld [hl], a
pop de pop de
pop af pop af
call .ApplySineWaveX call .Sprites_Cosine
ld hl, SPRITEANIMSTRUCT_XOFFSET ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc add hl, bc
@@ -685,7 +685,7 @@ endr
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
inc [hl] inc [hl]
call .ApplySineWaveX call .Sprites_Cosine
ld hl, SPRITEANIMSTRUCT_XOFFSET ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc add hl, bc
@@ -711,7 +711,7 @@ endr
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
inc [hl] inc [hl]
call .ApplySineWaveX call .Sprites_Cosine
ld hl, SPRITEANIMSTRUCT_XOFFSET ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc add hl, bc
@@ -747,7 +747,7 @@ endr
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
inc [hl] inc [hl]
call .ApplySineWaveX call .Sprites_Cosine
ld hl, SPRITEANIMSTRUCT_XOFFSET ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc add hl, bc
@@ -780,7 +780,7 @@ endr
xor $ff xor $ff
inc a inc a
ld d, $20 ld d, $20
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
@@ -800,7 +800,7 @@ endr
xor $ff xor $ff
inc a inc a
ld d, $20 ld d, $20
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
@@ -821,14 +821,14 @@ endr
ld a, [hl] ld a, [hl]
push af push af
push de push de
call .ApplySineWaveY call .Sprites_Sine
ld hl, SPRITEANIMSTRUCT_YOFFSET ld hl, SPRITEANIMSTRUCT_YOFFSET
add hl, bc add hl, bc
ld [hl], a ld [hl], a
pop de pop de
pop af pop af
call .ApplySineWaveX call .Sprites_Cosine
ld hl, SPRITEANIMSTRUCT_XOFFSET ld hl, SPRITEANIMSTRUCT_XOFFSET
add hl, bc add hl, bc
@@ -885,11 +885,11 @@ endr
ret ret
; 8d6de ; 8d6de
.ApplySineWaveY: ; 8d6de (23:56de) .Sprites_Sine: ; 8d6de (23:56de)
call ApplySineWaveY call Sprites_Sine
ret ret
.ApplySineWaveX: ; 8d6e2 (23:56e2) .Sprites_Cosine: ; 8d6e2 (23:56e2)
call ApplySineWaveX call Sprites_Cosine
ret ret
; 8d6e6 (23:56e6) ; 8d6e6 (23:56e6)

View File

@@ -610,26 +610,26 @@ INCLUDE "data/sprite_engine.asm"
; Unknown_8d6e6 ; Unknown_8d6e6
; Unknown_8d94d ; Unknown_8d94d
ApplySineWaveX: ; 8e72a Sprites_Cosine: ; 8e72a
add $10 add $10
ApplySineWaveY: ; 8e72c Sprites_Sine: ; 8e72c
and $3f and $3f
cp $20 cp $20
jr nc, .flip jr nc, .negative
call .ApplyOffset call .ApplySineWave
ld a, h ld a, h
ret ret
.flip .negative
and $1f and $1f
call .ApplyOffset call .ApplySineWave
ld a, h ld a, h
xor $ff ; cpl xor $ff ; cpl
inc a inc a
ret ret
; 8e741 ; 8e741
.ApplyOffset: ; 8e741 .ApplySineWave: ; 8e741
ld e, a ld e, a
ld a, d ld a, d
ld d, 0 ld d, 0
@@ -641,16 +641,16 @@ endr
inc hl inc hl
ld d, [hl] ld d, [hl]
ld hl, 0 ld hl, 0
.loop .multiply
srl a srl a
jr nc, .skip_add jr nc, .even
add hl, de add hl, de
.skip_add .even
sla e sla e
rl d rl d
and a and a
jr nz, .loop jr nz, .multiply
ret ret
; 8e75d ; 8e75d
@@ -701,7 +701,7 @@ endr
push de push de
push hl push hl
call ApplySineWaveY call Sprites_Sine
pop hl pop hl
pop de pop de
add 13 * 8 add 13 * 8
@@ -710,7 +710,7 @@ endr
pop af pop af
push de push de
push hl push hl
call ApplySineWaveX call Sprites_Cosine
pop hl pop hl
pop de pop de
add 10 * 8 + 4 add 10 * 8 + 4

View File

@@ -151,7 +151,7 @@ Function49aa2: ; 49aa2 (12:5aa2)
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
inc [hl] inc [hl]
call Function49b3b call CelebiEvent_Cosine
ld hl, $6 ld hl, $6
add hl, bc add hl, bc
ld [hl], a ld [hl], a
@@ -223,27 +223,27 @@ Function49b30: ; 49b30 (12:5b30)
call Function3b3c call Function3b3c
ret ret
Function49b3b: ; 49b3b (12:5b3b) CelebiEvent_Cosine: ; 49b3b (12:5b3b)
add $10 add $10
and $3f and $3f
cp $20 cp $20
jr nc, .asm_49b48 jr nc, .asm_49b48
call Function49b52 call .SineFunction
ld a, h ld a, h
ret ret
.asm_49b48 .asm_49b48
and $1f and $1f
call Function49b52 call .SineFunction
ld a, h ld a, h
xor $ff xor $ff
inc a inc a
ret ret
Function49b52: ; 49b52 (12:5b52) .SineFunction: ; 49b52 (12:5b52)
ld e, a ld e, a
ld a, d ld a, d
ld d, $0 ld d, $0
ld hl, Unknown_49b6e ld hl, .sinewave
rept 2 rept 2
add hl, de add hl, de
endr endr
@@ -251,19 +251,19 @@ endr
inc hl inc hl
ld d, [hl] ld d, [hl]
ld hl, 0 ld hl, 0
.asm_49b61 .multiply
srl a srl a
jr nc, .asm_49b66 jr nc, .even
add hl, de add hl, de
.asm_49b66 .even
sla e sla e
rl d rl d
and a and a
jr nz, .asm_49b61 jr nz, .multiply
ret ret
; 49b6e (12:5b6e) ; 49b6e (12:5b6e)
Unknown_49b6e: ; 49b6e .sinewave: ; 49b6e
sine_wave $100 sine_wave $100
; 49bae ; 49bae

View File

@@ -2230,24 +2230,24 @@ _Sine:: ; 84d9
cp %100000 cp %100000
jr nc, .negative jr nc, .negative
call Function84ef call .ApplySineWave
ld a, h ld a, h
ret ret
.negative .negative
and %011111 and %011111
call Function84ef call .ApplySineWave
ld a, h ld a, h
xor -1 xor -1
inc a inc a
ret ret
; 84ef ; 84ef
Function84ef: ; 84ef .ApplySineWave: ; 84ef
ld e, a ld e, a
ld a, d ld a, d
ld d, 0 ld d, 0
ld hl, SineWave ld hl, .sinewave
rept 2 rept 2
add hl, de add hl, de
endr endr
@@ -2269,7 +2269,7 @@ endr
ret ret
; 850b ; 850b
SineWave: ; 850b .sinewave: ; 850b
; A $20-word table representing a sine wave. ; A $20-word table representing a sine wave.
; 90 degrees is index $10 at a base amplitude of $100. ; 90 degrees is index $10 at a base amplitude of $100.
sine_wave $100 sine_wave $100

View File

@@ -3053,24 +3053,34 @@ w5_d192:: ds 1
w5_d193:: ds 1 w5_d193:: ds 1
w5_d194:: ds 1 w5_d194:: ds 1
w5_d195:: ds 1 w5_d195:: ds 1
ds 106 ds 106
LYOverridesBackup:: ; d200 LYOverridesBackup:: ; d200
ds SCREEN_HEIGHT_PX ds SCREEN_HEIGHT_PX
LYOverridesBackupEnd:: LYOverridesBackupEnd::
ds $100 - SCREEN_HEIGHT_PX
SECTION "Battle Animations", WRAMX [$d300], BANK [5]
SECTION "Battle Animations", WRAMX, BANK [5]
w5_d300:: ds 10 w5_d300:: ds 10
ActiveAnimObjects:: ; d30a battle_anim_struct: MACRO
ds 4 * 40 ; Placeholder until we can figure out what it all means
ds $18
endm
ds 80 ActiveAnimObjects:: ; d30a
AnimObject01:: battle_anim_struct AnimObject01
AnimObject02:: battle_anim_struct AnimObject02
AnimObject03:: battle_anim_struct AnimObject03
AnimObject04:: battle_anim_struct AnimObject04
AnimObject05:: battle_anim_struct AnimObject05
AnimObject06:: battle_anim_struct AnimObject06
AnimObject07:: battle_anim_struct AnimObject07
AnimObject08:: battle_anim_struct AnimObject08
AnimObject09:: battle_anim_struct AnimObject09
AnimObject10:: battle_anim_struct AnimObject10
ActiveAnimObjectsEnd:: ; d3aa
ActiveBGEffects:: ; d3fa ActiveBGEffects:: ; d3fa
ds 4 * 5 ds 4 * 5