aboutsummaryrefslogtreecommitdiffstats
path: root/engine/yellow_intro.asm
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2020-11-04 15:16:20 -0500
committerRangi <remy.oukaour+rangi42@gmail.com>2020-11-04 19:44:31 -0500
commitaae999f72bd81a3156c7e00da4ebf499f52da5a6 (patch)
tree32fef70a31af3a0b5ad2b0d34042c312574fb42d /engine/yellow_intro.asm
parentMerge branch 'master' of https://github.com/pret/pokered (diff)
downloadpokeyellow-aae999f72bd81a3156c7e00da4ebf499f52da5a6.tar.gz
pokeyellow-aae999f72bd81a3156c7e00da4ebf499f52da5a6.tar.xz
pokeyellow-aae999f72bd81a3156c7e00da4ebf499f52da5a6.zip
Start reorganizing pokeyellow
Diffstat (limited to 'engine/yellow_intro.asm')
-rwxr-xr-xengine/yellow_intro.asm1081
1 files changed, 0 insertions, 1081 deletions
diff --git a/engine/yellow_intro.asm b/engine/yellow_intro.asm
deleted file mode 100755
index 324ba86d..00000000
--- a/engine/yellow_intro.asm
+++ /dev/null
@@ -1,1081 +0,0 @@
-PlayIntroScene:
- ldh a, [rIE]
- push af
- xor a
- ldh [rIF], a
- ld a, $f
- ldh [rIE], a
- ld a, $8
- ldh [rSTAT], a
- call InitYellowIntroGFXAndMusic
- call DelayFrame
-.loop
- ld a, [wYellowIntroCurrentScene]
- bit 7, a
- jr nz, .go_to_title_screen
- call JoypadLowSensitivity
- ldh a, [hJoyPressed]
- and A_BUTTON | B_BUTTON | START
- jr nz, .go_to_title_screen
- call Func_f98fc
- ld a, $0
- ld [wCurrentAnimatedObjectOAMBufferOffset], a
- call RunObjectAnimations
- ld a, [wYellowIntroCurrentScene]
- cp $7
- call z, Func_f98a2
- cp $b
- call z, Func_f98cb
- call DelayFrame
- jr .loop
-
-.go_to_title_screen
- call YellowIntro_BlankPalettes
- xor a
- ldh [hLCDCPointer], a
- call DelayFrame
- xor a
- ldh [rIF], a
- pop af
- ldh [rIE], a
- ld a, $90
- ldh [hWY], a
- call ClearObjectAnimationBuffers
- ld hl, wTileMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call Bank3E_FillMemory
- call YellowIntro_BlankOAMBuffer
- ld a, $1
- ldh [hAutoBGTransferEnabled], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- xor a
- ldh [hAutoBGTransferEnabled], a
- ret
-
-Func_f98a2:
- ld a, [wOAMBuffer + 8 * 4 + 3]
- or $1
- ld [wOAMBuffer + 8 * 4 + 3], a
- ld a, [wOAMBuffer + 14 * 4 + 3]
- or $1
- ld [wOAMBuffer + 14 * 4 + 3], a
- ld a, [wOAMBuffer + 16 * 4 + 3]
- or $1
- ld [wOAMBuffer + 16 * 4 + 3], a
- ld a, [wOAMBuffer + 18 * 4 + 3]
- or $1
- ld [wOAMBuffer + 18 * 4 + 3], a
- ld a, [wOAMBuffer + 19 * 4 + 3]
- or $1
- ld [wOAMBuffer + 19 * 4 + 3], a
- ret
-
-Func_f98cb:
- ld a, [wOAMBuffer + 18 * 4 + 3]
- or $1
- ld [wOAMBuffer + 18 * 4 + 3], a
- ld a, [wOAMBuffer + 19 * 4 + 3]
- or $1
- ld [wOAMBuffer + 19 * 4 + 3], a
- ld a, [wOAMBuffer + 20 * 4 + 3]
- or $1
- ld [wOAMBuffer + 20 * 4 + 3], a
- ld a, [wOAMBuffer + 25 * 4 + 3]
- or $1
- ld [wOAMBuffer + 25 * 4 + 3], a
- ld a, [wOAMBuffer + 26 * 4 + 3]
- or $1
- ld [wOAMBuffer + 26 * 4 + 3], a
- ld a, [wOAMBuffer + 28 * 4 + 3]
- or $1
- ld [wOAMBuffer + 28 * 4 + 3], a
- ret
-
-Func_f98fc:
- ld a, [wYellowIntroCurrentScene]
- ld hl, Jumptable_f9906
- call Func_fa06e
- jp hl
-
-Jumptable_f9906:
- dw YellowIntroScene0 ; running pika 1
- dw YellowIntroScene1 ; wait last
- dw YellowIntroScene2 ; pikachu kick
- dw YellowIntroScene3 ; wait last
- dw YellowIntroScene4 ; running pika 2
- dw YellowIntroScene5 ; wait last
- dw YellowIntroScene6 ; surfing pika
- dw YellowIntroScene7 ; wait last
- dw YellowIntroScene8 ; running pika 3
- dw YellowIntroScene9 ; wait last
- dw YellowIntroScene10 ; flying pika
- dw YellowIntroScene11 ; wait last
- dw YellowIntroScene12 ; pika close up
- dw YellowIntroScene13 ; wait last
- dw YellowIntroScene14 ; pika thunderbolt
- dw YellowIntroScene15 ; wait last
- dw YellowIntroScene16 ; fade to white
- dw YellowIntroScene17 ; wait and quit
-
-YellowIntro_NextScene:
- ld hl, wYellowIntroCurrentScene
- inc [hl]
- ret
-
-YellowIntroScene0:
- xor a
- ldh [hLCDCPointer], a
- lb de, $58, $58
- ld a, $1
- call YellowIntro_SpawnAnimatedObjectAndSavePointer
- xor a
- ldh [hSCX], a
- ldh [hSCY], a
- ld a, $90
- ldh [hWY], a
- ld a, $e4
- ldh [rBGP], a
- ldh [rOBP0], a
- ld a, $c4
- ldh [rOBP1], a
- call UpdateGBCPal_BGP
- call UpdateGBCPal_OBP0
- call UpdateGBCPal_OBP1
- ld a, 130
- ld [wYellowIntroSceneTimer], a
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene1:
- call YellowIntro_CheckFrameTimerDecrement
- ret nc
- call YellowIntro_MaskCurrentAnimatedObjectStruct
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene2:
- call YellowIntro_BlankPalsDelay2AndDisableLCD
- ld c, $8
- call UpdateMusicCTimes
- xor a
- ldh [hLCDCPointer], a
- ld hl, vBGMap0
- ld bc, $400
- xor a
- call Bank3E_FillMemory
- call YellowIntroScene2_PlaceGraphic
- lb de, $58, $b8 ; overloaded
- ld a, $4 ; overloaded
- call LoadYellowIntroFlyingSpeedBars
- ld a, $1
- call Func_f9e9a
- call YellowIntro_SetTimerFor128Frames
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene2_PlaceGraphic:
- ld hl, $98d4 ; (20, 6)
- ld de, $20
- ld b, $6
- ld a, $90
-.row
- ld c, $6
- push af
- push hl
-.col
- ld [hli], a
- inc a
- dec c
- jr nz, .col
- pop hl
- add hl, de
- pop af
- add $10
- dec b
- jr nz, .row
- ldh a, [hGBC]
- and a
- jr z, .dmg_sgb
- ; We can actually set palettes!
- ld hl, $98d4 ; (20, 6)
- ld de, $20
- ld b, $6
- ld a, $1
- ldh [rVBK], a
-.attr_row
- ld c, $6
- push hl
-.attr_col
- ld [hli], a
- dec c
- jr nz, .attr_col
- pop hl
- add hl, de
- dec b
- jr nz, .attr_row
- xor a
- ldh [rVBK], a
-.dmg_sgb
- ret
-
-LoadYellowIntroFlyingSpeedBars:
- ld hl, YellowIntroFlyingSpeedBarData
- ld a, $8
-.loop
-; Spawn object $8 at indicated coordinates with indicated speeds
- push af
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld a, [hli]
- push hl
- push af
- ld a, $8
- call SpawnAnimatedObject
- pop af
- ld hl, $b
- add hl, bc
- ld [hl], a
- pop hl
- pop af
- dec a
- jr nz, .loop
- ret
-
-YellowIntroFlyingSpeedBarData:
- ; y, x, speed
- db $d0, $20, $02
- db $f0, $30, $04
- db $d0, $40, $06
- db $c0, $50, $08
- db $e0, $60, $08
- db $c0, $70, $06
- db $e0, $80, $04
- db $f0, $90, $02
-
-YellowIntroScene3:
- call YellowIntro_CheckFrameTimerDecrement
- jr c, .expired
- ldh a, [hSCX]
- cp $68
- ret z
- add $4
- ldh [hSCX], a
- ret
-
-.expired
- call MaskAllAnimatedObjectStructs
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene4:
- call YellowIntro_BlankPalsDelay2AndDisableLCD
- ld c, $5
- call UpdateMusicCTimes
- ldh a, [hGBC]
- and a
- jr z, .dmg_sgb
- ; We can actually set palettes!
- ld hl, $98d4
- ld de, $20
- ld b, $6
- ld a, $1
- ldh [rVBK], a
- xor a
-.attr_row
- ld c, $6
- push hl
-.attr_col
- ld [hli], a
- dec c
- jr nz, .attr_col
- pop hl
- add hl, de
- dec b
- jr nz, .attr_row
- xor a
- ldh [rVBK], a
-.dmg_sgb
- xor a
- ldh [hLCDCPointer], a
- call Func_f9e5f
- lb de, $58, $58
- ld a, $2
- call YellowIntro_SpawnAnimatedObjectAndSavePointer
- xor a
- call Func_f9e9a
- call YellowIntro_SetTimerFor128Frames
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene5:
- call YellowIntro_CheckFrameTimerDecrement
- ret nc
- call YellowIntro_MaskCurrentAnimatedObjectStruct
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene6:
- call YellowIntro_BlankPalsDelay2AndDisableLCD
- ld c, $5
- call UpdateMusicCTimes
- ld a, rSCY - $ff00
- ldh [hLCDCPointer], a
- call YellowIntro_Copy8BitSineWave
- ld hl, vBGMap0
- ld bc, $60
- xor a
- call Bank3E_FillMemory
- ld hl, $9860
- ld c, $10
- ld a, $20
-.asm_f9a8b
- ld [hli], a
- inc a
- ld [hli], a
- dec a
- dec c
- jr nz, .asm_f9a8b
- ld hl, $9880
- ld bc, $300
- ld a, $10
- call Bank3E_FillMemory
- lb de, $40, $f8
- ld a, $5
- call YellowIntro_SpawnAnimatedObjectAndSavePointer
- ld a, $1
- call Func_f9e9a
- call YellowIntro_SetTimerFor88Frames
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene7:
- call YellowIntro_CheckFrameTimerDecrement
- jr c, .expired
- ld hl, hSCX
- inc [hl]
- inc [hl]
- ld hl, wLYOverridesBuffer
- ld de, wLYOverridesBuffer + 1
- ld a, [hl]
- push af
- ld c, $ff
-.shift_loop
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .shift_loop
- pop af
- ld [hl], a
- call Request7TileTransferFromC810ToC710
- ret
-
-.expired
- call YellowIntro_MaskCurrentAnimatedObjectStruct
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene8:
- call YellowIntro_BlankPalsDelay2AndDisableLCD
- ld c, $5
- call UpdateMusicCTimes
- xor a
- ldh [hLCDCPointer], a
- call Func_f9e5f
- lb de, $58, $58
- ld a, $3
- call YellowIntro_SpawnAnimatedObjectAndSavePointer
- xor a
- call Func_f9e9a
- call YellowIntro_SetTimerFor128Frames
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene9:
- call YellowIntro_CheckFrameTimerDecrement
- ret nc
- call YellowIntro_MaskCurrentAnimatedObjectStruct
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene10:
- call YellowIntro_BlankPalsDelay2AndDisableLCD
- ld c, $5
- call UpdateMusicCTimes
- xor a
- ldh [hLCDCPointer], a
- ld hl, vBGMap0
- ld bc, $400
- xor a
- call Bank3E_FillMemory
- ld hl, vBGMap0
- ld bc, $100
- ld a, $2
- call Bank3E_FillMemory
- ld hl, $9900
- ld de, Unkn_f9b6e
- lb bc, 6, 20
- call .FillBGMapBox
- ld hl, $988c
- ld de, Unkn_f9be6
- lb bc, 3, 4
- call .FillBGMapBox
- ld hl, $98e3
- ld de, Unkn_f9bf2
- lb bc, 2, 2
- call .FillBGMapBox
- lb de, $98, $58
- ld a, $6
- call YellowIntro_SpawnAnimatedObjectAndSavePointer
- ld a, $1
- call Func_f9e9a
- call YellowIntro_SetTimerFor128Frames
- call YellowIntro_NextScene
- ret
-
-.FillBGMapBox:
-.fill_row
- push bc
- push hl
-.fill_col
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .fill_col
- pop hl
- ld bc, $20
- add hl, bc
- pop bc
- dec b
- jr nz, .fill_row
- ret
-
-Unkn_f9b6e: INCBIN "gfx/unknown_f9b6e.map"
-Unkn_f9be6: INCBIN "gfx/unknown_f9be6.map"
-Unkn_f9bf2: INCBIN "gfx/unknown_f9bf2.map"
-
-YellowIntroScene11:
- call YellowIntro_CheckFrameTimerDecrement
- jr c, .expired
- ld a, [wYellowIntroSceneTimer]
- and $7
- ret nz
- ld a, [wYellowIntroSceneTimer]
- and $8
- sla a
- sla a
- sla a
- ld e, a
- ld d, $0
- ld hl, YellowIntroCloudGFX1
- add hl, de
- ld a, l
- ldh [hVBlankCopySource], a
- ld a, h
- ldh [hVBlankCopySource + 1], a
- xor a
- ldh [hVBlankCopyDest], a
- ld a, $96
- ldh [hVBlankCopyDest + 1], a
- ld a, $4
- ldh [hVBlankCopySize], a
- ret
-
-.expired
- call YellowIntro_MaskCurrentAnimatedObjectStruct
- call YellowIntro_NextScene
- ret
-
-YellowIntroCloudGFX1: INCBIN "gfx/unknown_f9c2c.2bpp"
-YellowIntroCloudGFX2: INCBIN "gfx/unknown_f9c6c.2bpp" ; indirectly referenced
-
-YellowIntroScene12:
- call YellowIntro_BlankPalsDelay2AndDisableLCD
- ld c, $5
- call UpdateMusicCTimes
- xor a
- ldh [hLCDCPointer], a
- ld hl, vBGMap0
- ld bc, $80
- ld a, $1
- call Bank3E_FillMemory
- ld hl, $9880
- ld bc, $140
- xor a
- call Bank3E_FillMemory
- ld hl, $99c0
- ld bc, $80
- ld a, $1
- call Bank3E_FillMemory
-
- ; paste 8x12 graphic into vBGMap0 at (5, 6) starting at tile 4, skipping 4 vtiles at the end of each row
- ld hl, $98c5
- ld de, $20
- ld a, $4
- ld b, 8
-.row
- ld c, 12
- push hl
-.col
- ld [hli], a
- inc a
- dec c
- jr nz, .col
- pop hl
- add hl, de
- add $4
- dec b
- jr nz, .row
-
- ld hl, $98c4 ; (4, 6)
- ld [hl], $3
- ld hl, $98e4 ; (4, 7)
- ld [hl], $74
- ld hl, $99a5 ; (5, 5)
- ld [hl], $0
- lb de, $60, $58
- ld a, $9
- call YellowIntro_SpawnAnimatedObjectAndSavePointer
- xor a
- call Func_f9e9a
- call YellowIntro_SetTimerFor128Frames
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene13:
- call YellowIntro_CheckFrameTimerDecrement
- ret nc
- lb de, $68, $58
- ld a, $a
- call SpawnAnimatedObject
- call YellowIntro_NextScene
- ret
-
-YellowIntroScene14:
- ld de, YellowIntroPalSequence_f9dd6
- call YellowIntro_LoadDMGPalAndIncrementCounter
- jr c, .expired
- ldh [rBGP], a
- ldh [rOBP0], a
- and $f0
- ldh [rOBP1], a
- call UpdateGBCPal_BGP
- call UpdateGBCPal_OBP0
- call UpdateGBCPal_OBP1
- ret
-
-.expired
- call MaskAllAnimatedObjectStructs
- call YellowIntro_BlankOAMBuffer
- ld hl, wTileMap
- ld bc, $50
- ld a, $1
- call Bank3E_FillMemory
- hlcoord 0, 4
- ld bc, CopyVideoDataAlternate
- xor a
- call Bank3E_FillMemory
- hlcoord 0, 14
- ld bc, $50
- ld a, $1
- call Bank3E_FillMemory
- ld a, $1
- ldh [hAutoBGTransferEnabled], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- xor a
- ldh [hAutoBGTransferEnabled], a
- ld a, $e4
- ldh [rOBP0], a
- ldh [rBGP], a
- call UpdateGBCPal_BGP
- call UpdateGBCPal_OBP0
- lb de, $58, $58
- ld a, $7
- call YellowIntro_SpawnAnimatedObjectAndSavePointer
- call YellowIntro_NextScene
- ld a, $28
- ld [wYellowIntroSceneTimer], a
- ret
-
-YellowIntroScene15:
- call YellowIntro_CheckFrameTimerDecrement
- jr c, .expired
- ld a, [wYellowIntroSceneTimer]
- and $3
- ret nz
- ldh a, [rOBP0]
- xor $ff
- ldh [rOBP0], a
- ldh a, [rBGP]
- xor $3
- ldh [rBGP], a
- call UpdateGBCPal_BGP
- call UpdateGBCPal_OBP0
- ret
-
-.expired
- xor a
- ldh [hLCDCPointer], a
- ld a, $e4
- ldh [rBGP], a
- ldh [rOBP0], a
- call UpdateGBCPal_BGP
- call UpdateGBCPal_OBP0
- call YellowIntro_NextScene
-YellowIntroScene16:
- ld de, YellowIntroPalSequence_f9e0a
- call YellowIntro_LoadDMGPalAndIncrementCounter
- jr c, .expired
- ldh [rOBP0], a
- ldh [rBGP], a
- call UpdateGBCPal_BGP
- call UpdateGBCPal_OBP0
- ret
-
-.expired
- call YellowIntro_NextScene
- ret
-
-YellowIntroPalSequence_f9dd6:
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $e4
- db $e4, $c0, $c0, $ff
-
-YellowIntroPalSequence_f9e0a:
- db $e4, $90, $90, $40
- db $40, $00, $00, $ff
-
-YellowIntroScene17:
- ld c, 64
- call DelayFrames
- ld hl, wYellowIntroCurrentScene
- set 7, [hl]
- ret
-
-YellowIntro_SpawnAnimatedObjectAndSavePointer:
- call SpawnAnimatedObject
- ld a, c
- ld [wYellowIntroAnimatedObjectStructPointer], a
- ld a, b
- ld [wYellowIntroAnimatedObjectStructPointer + 1], a
- ret
-
-YellowIntro_MaskCurrentAnimatedObjectStruct:
- ld a, [wYellowIntroAnimatedObjectStructPointer]
- ld c, a
- ld a, [wYellowIntroAnimatedObjectStructPointer + 1]
- ld b, a
- call MaskCurrentAnimatedObjectStruct
- ret
-
-YellowIntro_SetTimerFor128Frames:
- ld a, 128
- ld [wYellowIntroSceneTimer], a
- ret
-
-YellowIntro_SetTimerFor88Frames:
- ld a, 88
- ld [wYellowIntroSceneTimer], a
- ret
-
-YellowIntro_CheckFrameTimerDecrement:
- ld hl, wYellowIntroSceneTimer
- ld a, [hl]
- and a
- jr z, .asm_f9e4b
- dec [hl]
- and a
- ret
-
-.asm_f9e4b
- scf
- ret
-
-YellowIntro_LoadDMGPalAndIncrementCounter:
- ld hl, wYellowIntroSceneTimer
- ld a, [hl]
- inc [hl]
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- cp $ff
- jr z, .asm_f9e5d
- and a
- ret
-
-.asm_f9e5d
- scf
- ret
-
-Func_f9e5f:
- ld hl, vBGMap0
- ld bc, $80
- ld a, $1
- call Bank3E_FillMemory
- ld hl, $9880
- ld bc, $140
- xor a
- call Bank3E_FillMemory
- ld hl, $99c0
- ld bc, $80
- ld a, $1
- call Bank3E_FillMemory
- ret
-
-YellowIntro_BlankPalsDelay2AndDisableLCD:
- xor a
- ldh [rBGP], a
- ldh [rOBP0], a
- ldh [rOBP1], a
- call UpdateGBCPal_BGP
- call UpdateGBCPal_OBP0
- call UpdateGBCPal_OBP1
- call DelayFrame
- call DelayFrame
- call DisableLCD
- ret
-
-Func_f9e9a:
- ld e, a
- callfar YellowIntroPaletteAction
- xor a
- ldh [hSCX], a
- ldh [hSCY], a
- ld a, $90
- ldh [hWY], a
- ld a, $e3
- ldh [rLCDC], a
- ld a, $e4
- ldh [rBGP], a
- ldh [rOBP0], a
- ld a, $e0
- ldh [rOBP1], a
- call UpdateGBCPal_BGP
- call UpdateGBCPal_OBP0
- call UpdateGBCPal_OBP1
- ret
-
-YellowIntro_Copy8BitSineWave:
- ; Copy this sine wave into wLYOverridesBuffer 8 times (end just before wc900)
- ld de, wLYOverridesBuffer
- ld a, $8
-.loop
- push af
- ld hl, .SineWave
- ld bc, .SineWaveEnd - .SineWave
- call Bank3E_CopyData
- pop af
- dec a
- jr nz, .loop
- ret
-
-.SineWave:
-; a sine wave with amplitude 4
- db 0, 0, 1, 2, 2, 3, 3, 3
- db 4, 3, 3, 3, 2, 2, 1, 0
- db 0, 0, -1, -2, -2, -3, -3, -3
- db -4, -3, -3, -3, -2, -2, -1, 0
-.SineWaveEnd:
-
-Request7TileTransferFromC810ToC710:
- ld a, $10
- ldh [hVBlankCopySource], a
- ld a, wLYOverridesBuffer / $100
- ldh [hVBlankCopySource + 1], a
- ld a, $10
- ldh [hVBlankCopyDest], a
- ld a, wLYOverrides / $100
- ldh [hVBlankCopyDest + 1], a
- ld a, $7
- ldh [hVBlankCopySize], a
- ret
-
-InitYellowIntroGFXAndMusic:
- xor a
- ldh [hAutoBGTransferEnabled], a
- ldh [hSCX], a
- ldh [hSCY], a
- ldh [hAutoBGTransferDest], a
- ld a, $98
- ldh [hAutoBGTransferDest + 1], a
- call YellowIntro_BlankTileMap
- ld hl, wTileMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $1
- call Bank3E_FillMemory
- hlcoord 0, 4
- ld bc, CopyVideoDataAlternate
- xor a
- call Bank3E_FillMemory
- ld a, $1
- ldh [hAutoBGTransferEnabled], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- xor a
- ldh [hAutoBGTransferEnabled], a
- ld de, $6b5a
- ld hl, $8000
- ld bc, $3eff
- call CopyVideoData
- ld de, $635a
- ld hl, $9000
- ld bc, $3e80
- call CopyVideoData
- call ClearObjectAnimationBuffers
- call LoadYellowIntroObjectAnimationDataPointers
- ld b, $8
- call RunPaletteCommand
- xor a
- ld hl, wYellowIntroCurrentScene
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld a, MUSIC_YELLOW_INTRO
- ld c, BANK(Music_YellowIntro)
- call PlayMusic
- ret
-
-LoadYellowIntroObjectAnimationDataPointers:
- ld a, YellowIntro_AnimatedObjectSpawnStateData % $100
- ld [wAnimatedObjectSpawnStateDataPointer], a
- ld a, YellowIntro_AnimatedObjectSpawnStateData / $100
- ld [wAnimatedObjectSpawnStateDataPointer + 1], a
- ld a, YellowIntro_AnimatedObjectJumptable % $100
- ld [wAnimatedObjectJumptablePointer], a
- ld a, YellowIntro_AnimatedObjectJumptable / $100
- ld [wAnimatedObjectJumptablePointer + 1], a
- ld a, YellowIntro_AnimatedObjectOAMData % $100
- ld [wAnimatedObjectOAMDataPointer], a
- ld a, YellowIntro_AnimatedObjectOAMData / $100
- ld [wAnimatedObjectOAMDataPointer + 1], a
- ld a, YellowIntro_AnimatedObjectFramesData % $100
- ld [wAnimatedObjectFramesDataPointer], a
- ld a, YellowIntro_AnimatedObjectFramesData / $100
- ld [wAnimatedObjectFramesDataPointer + 1], a
- ret
-
-YellowIntro_BlankTileMap:
- ld hl, wTileMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7f
- call Bank3E_FillMemory
- ret
-
-Bank3E_CopyData:
-.loop
- ld a, [hli]
- ld [de], a
- inc de
- dec bc
- ld a, c
- or b
- jr nz, .loop
- ret
-
-Bank3E_FillMemory:
- push de
- ld e, a
-.loop
- ld a, e
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .loop
- pop de
- ret
-
-YellowIntro_BlankOAMBuffer:
- ld hl, wOAMBuffer
- ld bc, wOAMBufferEnd - wOAMBuffer
- xor a
- call Bank3E_FillMemory
- ret
-
-YellowIntro_BlankPalettes:
- xor a
- ldh [rBGP], a
- ldh [rOBP0], a
- ldh [rOBP1], a
- call UpdateGBCPal_BGP
- call UpdateGBCPal_OBP0
- call UpdateGBCPal_OBP1
- ret
-
-YellowIntro_AnimatedObjectSpawnStateData:
- db $00, $00, $00
- db $01, $01, $00
- db $02, $01, $00
- db $03, $01, $00
- db $04, $02, $00
- db $05, $03, $00
- db $06, $04, $00
- db $07, $01, $00
- db $08, $05, $00
- db $09, $01, $00
- db $0a, $01, $00
-
-YellowIntro_AnimatedObjectJumptable:
- dw Func_fa007
- dw Func_fa007
- dw Func_fa008
- dw Func_fa014
- dw Func_fa02b
- dw Func_fa062
-
-Func_fa007:
- ret
-
-Func_fa008:
- ld hl, $4
- add hl, bc
- ld a, [hl]
- cp $58
- ret z
- sub $4
- ld [hl], a
- ret
-
-Func_fa014:
- ld hl, $4
- add hl, bc
- ld a, [hl]
- cp $58
- jr z, .asm_fa020
- add $4
- ld [hl], a
-.asm_fa020
- ld hl, $5
- add hl, bc
- cp $58
- ret z
- add $1
- ld [hl], a
- ret
-
-Func_fa02b:
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, Jumptable_fa03b
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-Jumptable_fa03b:
- dw Func_fa03f
- dw Func_fa051
-
-Func_fa03f:
- ld hl, $5
- add hl, bc
- ld a, [hl]
- cp $58
- jr z, .asm_fa04c
- sub $2
- ld [hl], a
- ret
-
-.asm_fa04c
- ld hl, $b
- add hl, bc
- inc [hl]
-Func_fa051:
- ld hl, $c
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $8
- call Func_fa079
- ld hl, $7
- add hl, bc
- ld [hl], a
- ret
-
-Func_fa062:
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $4
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-Func_fa06e:
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-Func_fa077: ; cosine
- add $10
-Func_fa079:
- and $3f
- cp $20
- jr nc, .asm_fa084
- call Func_fa08e
- ld a, h
- ret
-
-.asm_fa084
- and $1f
- call Func_fa08e
- ld a, h
- xor $ff
- inc a
- ret
-
-Func_fa08e:
- ld e, a
- ld a, d
- ld d, $0
- ld hl, Unkn_fa0aa
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $0
-.asm_fa09d
- srl a
- jr nc, .asm_fa0a2
- add hl, de
-.asm_fa0a2
- sla e
- rl d
- and a
- jr nz, .asm_fa09d
- ret
-
-Unkn_fa0aa:
- sine_wave $100