summaryrefslogtreecommitdiff
path: root/engine/battle/1c.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/battle/1c.asm')
-rwxr-xr-xengine/battle/1c.asm74
1 files changed, 40 insertions, 34 deletions
diff --git a/engine/battle/1c.asm b/engine/battle/1c.asm
index b905777b..ce0296f7 100755
--- a/engine/battle/1c.asm
+++ b/engine/battle/1c.asm
@@ -1,85 +1,91 @@
-Func_708ca: ; 708ca (1c:48ca)
+MarowakAnim: ; 708ca (1c:48ca)
+; animate the ghost being unveiled as a Marowak
ld a, $e4
- ld [rOBP1], a ; $ff49
- call Func_7092a
+ ld [rOBP1], a
+ call CopyMonPicFromBGToSpriteVRAM ; cover the BG ghost pic with a sprite ghost pic that looks the same
+; now that the ghost pic is being displayed using sprites, clear the ghost pic from the BG tilemap
hlCoord 12, 0
ld bc, $707
call ClearScreenArea
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
- ld a, $91
+ ld [H_AUTOBGTRANSFERENABLED], a ; disable BG transfer so we don't see the Marowak too soon
+; replace ghost pic with Marowak in BG
+ ld a, MAROWAK
ld [wHPBarMaxHP], a
ld a, $1
- ld [H_WHOSETURN], a ; $fff3
+ ld [H_WHOSETURN], a
callab Func_79793
+ ; alternate between black and light grey 8 times.
+ ; this makes the ghost's body appear to flash
ld d, $80
- call Func_704f3
-.asm_708f6
- ld c, $a
+ call FlashSprite8Times
+.fadeOutGhostLoop
+ ld c, 10
call DelayFrames
- ld a, [rOBP1] ; $ff49
+ ld a, [rOBP1]
sla a
sla a
- ld [rOBP1], a ; $ff49
- jr nz, .asm_708f6
+ ld [rOBP1], a
+ jr nz, .fadeOutGhostLoop
call ClearSprites
- call Func_7092a
+ call CopyMonPicFromBGToSpriteVRAM ; copy Marowak pic from BG to sprite VRAM
ld b, $e4
-.asm_7090d
- ld c, $a
+.fadeInMarowakLoop
+ ld c, 10
call DelayFrames
- ld a, [rOBP1] ; $ff49
+ ld a, [rOBP1]
srl b
rra
srl b
rra
- ld [rOBP1], a ; $ff49
+ ld [rOBP1], a
ld a, b
and a
- jr nz, .asm_7090d
+ jr nz, .fadeInMarowakLoop
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+ ld [H_AUTOBGTRANSFERENABLED], a ; enable BG transfer so the BG Marowak pic will be visible after the sprite one is cleared
call Delay3
jp ClearSprites
-Func_7092a: ; 7092a (1c:492a)
+; copies a mon pic's from background VRAM to sprite VRAM and sets up OAM
+CopyMonPicFromBGToSpriteVRAM: ; 7092a (1c:492a)
ld de, vFrontPic
ld hl, vSprites
ld bc, 7 * 7
call CopyVideoData
ld a, $10
- ld [W_BASECOORDY], a ; wd082
+ ld [W_BASECOORDY], a
ld a, $70
- ld [W_BASECOORDX], a ; wd081
+ ld [W_BASECOORDX], a
ld hl, wOAMBuffer
ld bc, $606
ld d, $8
-.asm_70948
+.oamLoop
push bc
- ld a, [W_BASECOORDY] ; wd082
+ ld a, [W_BASECOORDY]
ld e, a
-.asm_7094d
+.oamInnerLoop
ld a, e
add $8
ld e, a
ld [hli], a
- ld a, [W_BASECOORDX] ; wd081
+ ld a, [W_BASECOORDX]
ld [hli], a
ld a, d
ld [hli], a
- ld a, $10
+ ld a, $10 ; use OBP1
ld [hli], a
inc d
dec c
- jr nz, .asm_7094d
+ jr nz, .oamInnerLoop
inc d
- ld a, [W_BASECOORDX] ; wd081
+ ld a, [W_BASECOORDX]
add $8
- ld [W_BASECOORDX], a ; wd081
+ ld [W_BASECOORDX], a
pop bc
dec b
- jr nz, .asm_70948
+ jr nz, .oamLoop
ret
BattleTransition: ; 7096d (1c:496d)
@@ -270,9 +276,9 @@ BattleTransitionTile: ; 70a59 (1c:4a59)
BattleTransition_BlackScreen: ; 70a69 (1c:4a69)
ld a, $ff
- ld [rBGP], a ; $ff47
- ld [rOBP0], a ; $ff48
- ld [rOBP1], a ; $ff49
+ ld [rBGP], a
+ ld [rOBP0], a
+ ld [rOBP1], a
ret
; for non-dungeon trainer battles