summaryrefslogtreecommitdiff
path: root/engine/intro.asm
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2020-07-02 23:30:21 -0400
committerRangi <remy.oukaour+rangi42@gmail.com>2020-07-02 23:30:21 -0400
commitf275790aec4a796ed969b099364abfdf25385967 (patch)
treec56edfd01a61e9aa0e3c3ee8a046e66b5a1984e4 /engine/intro.asm
parent5559d51c863b6fb529ea0494d857950a36fe85b7 (diff)
Add subdirectories to engine/ similar to pokecrystal
Diffstat (limited to 'engine/intro.asm')
-rwxr-xr-xengine/intro.asm470
1 files changed, 0 insertions, 470 deletions
diff --git a/engine/intro.asm b/engine/intro.asm
deleted file mode 100755
index 9a13c96f..00000000
--- a/engine/intro.asm
+++ /dev/null
@@ -1,470 +0,0 @@
-const_value = -1
- const MOVE_NIDORINO_RIGHT
- const MOVE_GENGAR_RIGHT
- const MOVE_GENGAR_LEFT
-
-ANIMATION_END EQU 80
-
-const_value = 3
- const GENGAR_INTRO_TILES1
- const GENGAR_INTRO_TILES2
- const GENGAR_INTRO_TILES3
-
-PlayIntro:
- xor a
- ld [hJoyHeld], a
- inc a
- ld [H_AUTOBGTRANSFERENABLED], a
- call PlayShootingStar
- call PlayIntroScene
- call GBFadeOutToWhite
- xor a
- ld [hSCX], a
- ld [H_AUTOBGTRANSFERENABLED], a
- call ClearSprites
- call DelayFrame
- ret
-
-PlayIntroScene:
- ld b, SET_PAL_NIDORINO_INTRO
- call RunPaletteCommand
- ldPal a, BLACK, DARK_GRAY, LIGHT_GRAY, WHITE
- ld [rBGP], a
- ld [rOBP0], a
- ld [rOBP1], a
- xor a
- ld [hSCX], a
- ld b, GENGAR_INTRO_TILES1
- call IntroCopyTiles
- ld a, 0
- ld [wBaseCoordX], a
- ld a, 80
- ld [wBaseCoordY], a
- lb bc, 6, 6
- call InitIntroNidorinoOAM
- lb de, 80 / 2, MOVE_NIDORINO_RIGHT
- call IntroMoveMon
- ret c
-
-; hip
- ld a, SFX_INTRO_HIP
- call PlaySound
- xor a
- ld [wIntroNidorinoBaseTile], a
- ld de, IntroNidorinoAnimation1
- call AnimateIntroNidorino
-; hop
- ld a, SFX_INTRO_HOP
- call PlaySound
- ld de, IntroNidorinoAnimation2
- call AnimateIntroNidorino
- ld c, 10
- call CheckForUserInterruption
- ret c
-
-; hip
- ld a, SFX_INTRO_HIP
- call PlaySound
- ld de, IntroNidorinoAnimation1
- call AnimateIntroNidorino
-; hop
- ld a, SFX_INTRO_HOP
- call PlaySound
- ld de, IntroNidorinoAnimation2
- call AnimateIntroNidorino
- ld c, 30
- call CheckForUserInterruption
- ret c
-
-; raise
- ld b, GENGAR_INTRO_TILES2
- call IntroCopyTiles
- ld a, SFX_INTRO_RAISE
- call PlaySound
- lb de, 8 / 2, MOVE_GENGAR_LEFT
- call IntroMoveMon
- ld c, 30
- call CheckForUserInterruption
- ret c
-
-; slash
- ld b, GENGAR_INTRO_TILES3
- call IntroCopyTiles
- ld a, SFX_INTRO_CRASH
- call PlaySound
- lb de, 16 / 2, MOVE_GENGAR_RIGHT
- call IntroMoveMon
-; hip
- ld a, SFX_INTRO_HIP
- call PlaySound
- ld a, (FightIntroFrontMon2 - FightIntroFrontMon) / BYTES_PER_TILE
- ld [wIntroNidorinoBaseTile], a
- ld de, IntroNidorinoAnimation3
- call AnimateIntroNidorino
- ld c, 30
- call CheckForUserInterruption
- ret c
-
- lb de, 8 / 2, MOVE_GENGAR_LEFT
- call IntroMoveMon
- ld b, GENGAR_INTRO_TILES1
- call IntroCopyTiles
- ld c, 60
- call CheckForUserInterruption
- ret c
-
-; hip
- ld a, SFX_INTRO_HIP
- call PlaySound
- xor a
- ld [wIntroNidorinoBaseTile], a
- ld de, IntroNidorinoAnimation4
- call AnimateIntroNidorino
-; hop
- ld a, SFX_INTRO_HOP
- call PlaySound
- ld de, IntroNidorinoAnimation5
- call AnimateIntroNidorino
- ld c, 20
- call CheckForUserInterruption
- ret c
-
- ld a, (FightIntroFrontMon2 - FightIntroFrontMon) / BYTES_PER_TILE
- ld [wIntroNidorinoBaseTile], a
- ld de, IntroNidorinoAnimation6
- call AnimateIntroNidorino
- ld c, 30
- call CheckForUserInterruption
- ret c
-
-; lunge
- ld a, SFX_INTRO_LUNGE
- call PlaySound
- ld a, (FightIntroFrontMon3 - FightIntroFrontMon) / BYTES_PER_TILE
- ld [wIntroNidorinoBaseTile], a
- ld de, IntroNidorinoAnimation7
- jp AnimateIntroNidorino
-
-AnimateIntroNidorino:
- ld a, [de]
- cp ANIMATION_END
- ret z
- ld [wBaseCoordY], a
- inc de
- ld a, [de]
- ld [wBaseCoordX], a
- push de
- ld c, 6 * 6
- call UpdateIntroNidorinoOAM
- ld c, 5
- call DelayFrames
- pop de
- inc de
- jr AnimateIntroNidorino
-
-UpdateIntroNidorinoOAM:
- ld hl, wOAMBuffer
- ld a, [wIntroNidorinoBaseTile]
- ld d, a
-.loop
- ld a, [wBaseCoordY]
- add [hl]
- ld [hli], a ; Y
- ld a, [wBaseCoordX]
- add [hl]
- ld [hli], a ; X
- ld a, d
- ld [hli], a ; tile
- inc hl
- inc d
- dec c
- jr nz, .loop
- ret
-
-InitIntroNidorinoOAM:
- ld hl, wOAMBuffer
- ld d, 0
-.loop
- push bc
- ld a, [wBaseCoordY]
- ld e, a
-.innerLoop
- ld a, e
- add 8
- ld e, a
- ld [hli], a ; Y
- ld a, [wBaseCoordX]
- ld [hli], a ; X
- ld a, d
- ld [hli], a ; tile
- ld a, OAM_BEHIND_BG
- ld [hli], a ; attributes
- inc d
- dec c
- jr nz, .innerLoop
- ld a, [wBaseCoordX]
- add 8
- ld [wBaseCoordX], a
- pop bc
- dec b
- jr nz, .loop
- ret
-
-IntroClearScreen:
- ld hl, vBGMap1
- ld bc, BG_MAP_WIDTH * SCREEN_HEIGHT
- jr IntroClearCommon
-
-IntroClearMiddleOfScreen:
-; clear the area of the tile map between the black bars on the top and bottom
- coord hl, 0, 4
- ld bc, SCREEN_WIDTH * 10
-
-IntroClearCommon:
- ld [hl], 0
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, IntroClearCommon
- ret
-
-IntroPlaceBlackTiles:
- ld a, 1
-.loop
- ld [hli], a
- dec c
- jr nz, .loop
- ret
-
-IntroMoveMon:
-; d = number of times to move the mon (2 pixels each time)
- ld a, e
- cp MOVE_NIDORINO_RIGHT
- jr z, .moveNidorinoRight
- cp MOVE_GENGAR_LEFT
- jr z, .moveGengarLeft
-; move Gengar right
- ld a, [hSCX]
- dec a
- dec a
- jr .next
-.moveNidorinoRight
- push de
- ld a, 2
- ld [wBaseCoordX], a
- xor a
- ld [wBaseCoordY], a
- ld c, 6 * 6
- call UpdateIntroNidorinoOAM
- pop de
-.moveGengarLeft
- ld a, [hSCX]
- inc a
- inc a
-.next
- ld [hSCX], a
- push de
- ld c, 2
- call CheckForUserInterruption
- pop de
- ret c
- dec d
- jr nz, IntroMoveMon
- ret
-
-IntroCopyTiles:
- coord hl, 13, 7
-
-CopyTileIDsFromList_ZeroBaseTileID:
- ld c, 0
- predef_jump CopyTileIDsFromList
-
-PlayMoveSoundB:
-; unused
- predef GetMoveSoundB
- ld a, b
- jp PlaySound
-
-LoadIntroGraphics:
- ld hl, FightIntroBackMon
- ld de, vChars2
- ld bc, FightIntroBackMonEnd - FightIntroBackMon
- ld a, BANK(FightIntroBackMon)
- call FarCopyData2
- ld hl, GameFreakIntro
- ld de, vChars2 + (FightIntroBackMonEnd - FightIntroBackMon)
- ld bc, GameFreakIntroEnd - GameFreakIntro
- ld a, BANK(GameFreakIntro)
- call FarCopyData2
- ld hl, GameFreakIntro
- ld de, vChars1
- ld bc, GameFreakIntroEnd - GameFreakIntro
- ld a, BANK(GameFreakIntro)
- call FarCopyData2
- ld hl, FightIntroFrontMon
- ld de, vChars0
- ld bc, FightIntroFrontMonEnd - FightIntroFrontMon
- ld a, BANK(FightIntroFrontMon)
- jp FarCopyData2
-
-PlayShootingStar:
- ld b, SET_PAL_GAME_FREAK_INTRO
- call RunPaletteCommand
- callba LoadCopyrightAndTextBoxTiles
- ldPal a, BLACK, DARK_GRAY, LIGHT_GRAY, WHITE
- ld [rBGP], a
- ld c, 180
- call DelayFrames
- call ClearScreen
- call DisableLCD
- xor a
- ld [wCurOpponent], a
- call IntroDrawBlackBars
- call LoadIntroGraphics
- call EnableLCD
- ld hl, rLCDC
- res 5, [hl]
- set 3, [hl]
- ld c, 64
- call DelayFrames
- callba AnimateShootingStar
- push af
- pop af
- jr c, .next ; skip the delay if the user interrupted the animation
- ld c, 40
- call DelayFrames
-.next
- ld a, BANK(Music_IntroBattle)
- ld [wAudioROMBank], a
- ld [wAudioSavedROMBank], a
- ld a, MUSIC_INTRO_BATTLE
- ld [wNewSoundID], a
- call PlaySound
- call IntroClearMiddleOfScreen
- call ClearSprites
- jp Delay3
-
-IntroDrawBlackBars:
-; clear the screen and draw black bars on the top and bottom
- call IntroClearScreen
- coord hl, 0, 0
- ld c, SCREEN_WIDTH * 4
- call IntroPlaceBlackTiles
- coord hl, 0, 14
- ld c, SCREEN_WIDTH * 4
- call IntroPlaceBlackTiles
- ld hl, vBGMap1
- ld c, BG_MAP_WIDTH * 4
- call IntroPlaceBlackTiles
- ld hl, vBGMap1 + BG_MAP_WIDTH * 14
- ld c, BG_MAP_WIDTH * 4
- jp IntroPlaceBlackTiles
-
-EmptyFunc4:
- ret
-
-IntroNidorinoAnimation0:
- db 0, 0
- db ANIMATION_END
-
-IntroNidorinoAnimation1:
-; 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 ANIMATION_END
-
-IntroNidorinoAnimation2:
-; 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 ANIMATION_END
-
-IntroNidorinoAnimation3:
-; 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 ANIMATION_END
-
-IntroNidorinoAnimation4:
-; 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 ANIMATION_END
-
-IntroNidorinoAnimation5:
-; 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 ANIMATION_END
-
-IntroNidorinoAnimation6:
-; 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 ANIMATION_END
-
-IntroNidorinoAnimation7:
-; 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 ANIMATION_END
-
-GameFreakIntro:
- INCBIN "gfx/intro_credits/gamefreak_presents.2bpp"
- INCBIN "gfx/intro_credits/gamefreak_logo.2bpp"
- ds 16, $00 ; blank tile
-GameFreakIntroEnd:
-
-FightIntroBackMon:
- INCBIN "gfx/intro_credits/gengar.2bpp"
-FightIntroBackMonEnd:
-
-FightIntroFrontMon:
-
-IF DEF(_RED)
- INCBIN "gfx/intro_credits/red_nidorino_1.2bpp"
-FightIntroFrontMon2:
- INCBIN "gfx/intro_credits/red_nidorino_2.2bpp"
-FightIntroFrontMon3:
- INCBIN "gfx/intro_credits/red_nidorino_3.2bpp"
-ENDC
-
-IF DEF(_BLUE)
- INCBIN "gfx/intro_credits/blue_jigglypuff_1.2bpp"
-FightIntroFrontMon2:
- INCBIN "gfx/intro_credits/blue_jigglypuff_2.2bpp"
-FightIntroFrontMon3:
- INCBIN "gfx/intro_credits/blue_jigglypuff_3.2bpp"
-ENDC
-
-FightIntroFrontMonEnd:
-
- ds 16, $00 ; blank tile