diff options
author | U-Fish-PC\Daniel <corrnondacqb@yahoo.com> | 2014-05-22 18:13:20 -0400 |
---|---|---|
committer | U-Fish-PC\Daniel <corrnondacqb@yahoo.com> | 2014-05-22 18:13:20 -0400 |
commit | 15427f532085846ab6b51719be687951a094cb6c (patch) | |
tree | edea9b189e91641a12dd521756894df84aeeace7 /engine/intro.asm | |
parent | ea3ba4cde3706b7c77efb705555ec0c86321cbe2 (diff) |
Pull a lot of engine out of main.asm
Diffstat (limited to 'engine/intro.asm')
-rwxr-xr-x | engine/intro.asm | 448 |
1 files changed, 448 insertions, 0 deletions
diff --git a/engine/intro.asm b/engine/intro.asm new file mode 100755 index 00000000..89c344db --- /dev/null +++ b/engine/intro.asm @@ -0,0 +1,448 @@ +PlayIntro: ; 41682 (10:5682) + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + inc a + ld [H_AUTOBGTRANSFERENABLED], a + call PlayShootingStar + call PlayIntroScene + call GBFadeOut2 + xor a + ld [$ffae], a + ld [H_AUTOBGTRANSFERENABLED], a + call CleanLCD_OAM + call DelayFrame + ret + +PlayIntroScene: ; 4169d (10:569d) + ld b, $7 + call GoPAL_SET + ld a, %11100100 + ld [rBGP], a + ld [rOBP0], a + ld [rOBP1], a + xor a + ld [$ffae], a + ld b, $3 + call Func_4183f + ld a, 0 + ld [W_BASECOORDX], a + ld a, 80 + ld [W_BASECOORDY], a + ld bc, $606 + call Func_417c7 + ld de, $28ff + call Func_4180e + ret c + +; hip + ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 + call PlaySound + xor a + ld [$d09f], a + ld de, IntroNidorinoAnimation1 + call AnimateIntroNidorino +; hop + ld a, (SFX_1f_60 - SFX_Headers_1f) / 3 + call PlaySound + ld de, IntroNidorinoAnimation2 + call AnimateIntroNidorino + ld c, $a + call CheckForUserInterruption + ret c + +; hip + ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 + call PlaySound + ld de, IntroNidorinoAnimation1 + call AnimateIntroNidorino +; hop + ld a, (SFX_1f_60 - SFX_Headers_1f) / 3 + call PlaySound + ld de, IntroNidorinoAnimation2 + call AnimateIntroNidorino + ld c, $1e + call CheckForUserInterruption + ret c + +; raise + ld b, $4 + call Func_4183f + ld a, (SFX_1f_61 - SFX_Headers_1f) / 3 + call PlaySound + ld de, $401 + call Func_4180e + ld c, $1e + call CheckForUserInterruption + ret c + +; slash + ld b, $5 + call Func_4183f + ld a, (SFX_1f_62 - SFX_Headers_1f) / 3 + call PlaySound + ld de, $800 + call Func_4180e +; hip + ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 + call PlaySound + ld a, $24 + ld [$d09f], a + ld de, IntroNidorinoAnimation3 + call AnimateIntroNidorino + ld c, $1e + call CheckForUserInterruption + ret c + + ld de, $401 + call Func_4180e + ld b, $3 + call Func_4183f + ld c, $3c + call CheckForUserInterruption + ret c + +; hip + ld a, (SFX_1f_5f - SFX_Headers_1f) / 3 + call PlaySound + xor a + ld [$d09f], a + ld de, IntroNidorinoAnimation4 ; $5931 + call AnimateIntroNidorino +; hop + ld a, (SFX_1f_60 - SFX_Headers_1f) / 3 + call PlaySound + ld de, IntroNidorinoAnimation5 ; $593c + call AnimateIntroNidorino + ld c, $14 + call CheckForUserInterruption + ret c + + ld a, $24 + ld [$d09f], a + ld de, IntroNidorinoAnimation6 ; $5947 + call AnimateIntroNidorino + ld c, $1e + call CheckForUserInterruption + ret c + +; lunge + ld a, (SFX_1f_5e - SFX_Headers_1f) / 3 + call PlaySound + ld a, $48 + ld [$d09f], a + ld de, IntroNidorinoAnimation7 ; $5950 + jp AnimateIntroNidorino + +AnimateIntroNidorino: ; 41793 (10:5793) + ld a, [de] + cp $50 + ret z + ld [W_BASECOORDY], a ; $d082 + inc de + ld a, [de] + ld [W_BASECOORDX], a ; $d081 + push de + ld c, $24 + call Func_417ae + ld c, 5 + call DelayFrames + pop de + inc de + jr AnimateIntroNidorino + +Func_417ae: ; 417ae (10:57ae) + ld hl, wOAMBuffer + ld a, [$d09f] + ld d, a +.asm_417b5 + ld a, [W_BASECOORDY] ; $d082 + add [hl] + ld [hli], a + ld a, [W_BASECOORDX] ; $d081 + add [hl] + ld [hli], a + ld a, d + ld [hli], a + inc hl + inc d + dec c + jr nz, .asm_417b5 + ret + +Func_417c7: ; 417c7 (10:57c7) + ld hl, wOAMBuffer + ld d, $0 +.asm_417cc + push bc + ld a, [W_BASECOORDY] ; $d082 + ld e, a +.asm_417d1 + ld a, e + add $8 + ld e, a + ld [hli], a + ld a, [W_BASECOORDX] ; $d081 + ld [hli], a + ld a, d + ld [hli], a + ld a, $80 + ld [hli], a + inc d + dec c + jr nz, .asm_417d1 + ld a, [W_BASECOORDX] ; $d081 + add $8 + ld [W_BASECOORDX], a ; $d081 + pop bc + dec b + jr nz, .asm_417cc + ret + +Func_417f0: ; 417f0 (10:57f0) + ld hl, $9c00 + ld bc, $240 + jr asm_417fe + +Func_417f8: ; 417f8 (10:57f8) + FuncCoord 0, 4 ; $c3f0 + ld hl, Coord + ld bc, $c8 +asm_417fe: ; 417fe (10:57fe) + ld [hl], $0 + inc hl + dec bc + ld a, b + or c + jr nz, asm_417fe + ret + +Func_41807: ; 41807 (10:5807) + ld a, $1 +.asm_41809 + ld [hli], a + dec c + jr nz, .asm_41809 + ret + +Func_4180e: ; 4180e (10:580e) + ld a, e + cp $ff + jr z, .asm_4181d + cp $1 + jr z, .asm_4182d + ld a, [$ffae] + dec a + dec a + jr .asm_41831 +.asm_4181d + push de + ld a, $2 + ld [W_BASECOORDX], a ; $d081 + xor a + ld [W_BASECOORDY], a ; $d082 + ld c, $24 + call Func_417ae + pop de +.asm_4182d + ld a, [$ffae] + inc a + inc a +.asm_41831 + ld [$ffae], a + push de + ld c, $2 + call CheckForUserInterruption + pop de + ret c + dec d + jr nz, Func_4180e + ret + +Func_4183f: ; 4183f (10:583f) + FuncCoord 13, 7 ; $c439 + ld hl, Coord + +Func_41842: ; 41842 (10:5842) + ld c, $0 + ld a, $31 + jp Predef ; indirect jump to Func_79dda + +Func_41849: ; 41849 (10:5849) + ld a, $33 + call Predef ; indirect jump to Func_79869 + ld a, b + jp PlaySound + +LoadIntroGraphics: ; 41852 (10:5852) + ld hl, FightIntroBackMon ; $5a99 + ld de, $9000 + ld bc, $600 + ld a, BANK(FightIntroBackMon) + call FarCopyData2 + ld hl, GameFreakIntro ; $5959 + ld de, $9600 + ld bc, $140 + ld a, BANK(GameFreakIntro) + call FarCopyData2 + ld hl, GameFreakIntro ; $5959 + ld de, $8800 + ld bc, $140 + ld a, BANK(GameFreakIntro) + call FarCopyData2 + ld hl, FightIntroFrontMon ; $6099 + ld de, $8000 + ld bc, $6c0 + ld a, BANK(FightIntroFrontMon) + jp FarCopyData2 + +PlayShootingStar: ; 4188a (10:588a) + ld b, $c + call GoPAL_SET + callba LoadCopyrightAndTextBoxTiles + ld a, $e4 + ld [rBGP], a ; $ff47 + ld c, $b4 + call DelayFrames + call ClearScreen + call DisableLCD + xor a + ld [W_CUROPPONENT], a ; $d059 + call Func_418e9 + call LoadIntroGraphics + call EnableLCD + ld hl, rLCDC ; $ff40 + res 5, [hl] + set 3, [hl] + ld c, $40 + call DelayFrames + callba AnimateShootingStar + push af + pop af + jr c, .asm_418d0 + ld c, $28 + call DelayFrames +.asm_418d0 + ld a, Bank(Func_7d8ea) + ld [$c0ef], a + ld [$c0f0], a + ld a, MUSIC_INTRO_BATTLE + ld [$c0ee], a + call PlaySound + call Func_417f8 + call CleanLCD_OAM + jp Delay3 + +Func_418e9: ; 418e9 (10:58e9) + call Func_417f0 + ld hl, wTileMap + ld c, $50 + call Func_41807 + FuncCoord 0, 14 ; $c4b8 + ld hl, Coord + ld c, $50 + call Func_41807 + ld hl, $9c00 + ld c, $80 + call Func_41807 + ld hl, $9dc0 + ld c, $80 + jp Func_41807 + +Func_4190c: ; 4190c (10:590c) + ret + +IntroNidorinoAnimation0: ; 4190d (10:590d) + db 0, 0 + db $50 + +IntroNidorinoAnimation1: ; 41910 (10:5910) +; This is a sequence of pixel movements for part of the Nidorino animation. This +; list describes how Nidorino should hop. +; First byte is y movement, second byte is x movement + db 0, 0 + db -2, 2 + db -1, 2 + db 1, 2 + db 2, 2 + db $50 ; list terminator + +IntroNidorinoAnimation2: ; 4191b (10:591b) +; This is a sequence of pixel movements for part of the Nidorino animation. +; First byte is y movement, second byte is x movement + db 0, 0 + db -2, -2 + db -1, -2 + db 1, -2 + db 2, -2 + db $50 ; list terminator + +IntroNidorinoAnimation3: ; 41926 (10:5926) +; This is a sequence of pixel movements for part of the Nidorino animation. +; First byte is y movement, second byte is x movement + db 0, 0 + db -12, 6 + db -8, 6 + db 8, 6 + db 12, 6 + db $50 ; list terminator + +IntroNidorinoAnimation4: ; 41931 (10:5931) +; This is a sequence of pixel movements for part of the Nidorino animation. +; First byte is y movement, second byte is x movement + db 0, 0 + db -8, -4 + db -4, -4 + db 4, -4 + db 8, -4 + db $50 ; list terminator + +IntroNidorinoAnimation5: ; 4193c (10:593c) +; This is a sequence of pixel movements for part of the Nidorino animation. +; First byte is y movement, second byte is x movement + db 0, 0 + db -8, 4 + db -4, 4 + db 4, 4 + db 8, 4 + db $50 ; list terminator + +IntroNidorinoAnimation6: ; 41947 (10:5947) +; This is a sequence of pixel movements for part of the Nidorino animation. +; First byte is y movement, second byte is x movement + db 0, 0 + db 2, 0 + db 2, 0 + db 0, 0 + db $50 ; list terminator + +IntroNidorinoAnimation7: ; 41950 (10:5950) +; This is a sequence of pixel movements for part of the Nidorino animation. +; First byte is y movement, second byte is x movement + db -8, -16 + db -7, -14 + db -6, -12 + db -4, -10 + db $50 ; list terminator + +GameFreakIntro: ; 41959 (10:5959) + INCBIN "gfx/gamefreak_intro.h8.2bpp" + INCBIN "gfx/gamefreak_logo.2bpp" + ds $10 ; blank tile + +FightIntroBackMon: ; 41a99 (10:5a99) + INCBIN "gfx/intro_fight.2bpp" + +FightIntroFrontMon: ; 42099 (10:6099) + +IF _RED + INCBIN "gfx/red/intro_nido_1.6x6.2bpp" + INCBIN "gfx/red/intro_nido_2.6x6.2bpp" + INCBIN "gfx/red/intro_nido_3.6x6.2bpp" + ds $10 ; blank tile +ENDC +IF _BLUE + INCBIN "gfx/blue/intro_purin_1.6x6.2bpp" + INCBIN "gfx/blue/intro_purin_2.6x6.2bpp" + INCBIN "gfx/blue/intro_purin_3.6x6.2bpp" + ds $10 ; blank tile +ENDC |