pokeyellow/engine/intro.asm
luckytyphlosion 043e932765 engine/trade.asm, trade2.asm, intro.asm, overworld/emotion_bubbles.asm
Also document Func_1681 (GetFarByte) and fix Missingno's dex entry
2015-12-23 15:40:59 -05:00

154 lines
2.8 KiB
NASM
Executable File

MOVE_GENGAR_RIGHT EQU $00
MOVE_GENGAR_LEFT EQU $01
MOVE_NIDORINO_RIGHT EQU $ff
PlayIntro: ; 41997 (10:5997)
xor a
ld [hJoyHeld], a
inc a
ld [H_AUTOBGTRANSFERENABLED], a
call PlayShootingStar
callab PlayIntroScene ; 3e:582d
xor a
ld [hSCX], a
ld [H_AUTOBGTRANSFERENABLED], a
call ClearSprites
call DelayFrame
ret
InitIntroNidorinoOAM: ; 419b4 (10:59b4)
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, $80
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: ; 419dd (10:59dd)
ld hl, vBGMap1
ld bc, $240
jr IntroClearCommon
IntroClearMiddleOfScreen: ; 419e5 (10:59e5)
; 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: ; 419eb (10:59eb)
ld [hl], $0
inc hl
dec bc
ld a, b
or c
jr nz, IntroClearCommon
ret
IntroPlaceBlackTiles: ; 419f4 (10:59f4)
ld a, $1
.loop
ld [hli], a
dec c
jr nz, .loop
ret
CopyTileIDsFromList_ZeroBaseTileID: ; 419fb (10:59fb)
ld c, 0
predef_jump CopyTileIDsFromList
PlayShootingStar: ; 41a02 (10:5a02)
ld b, SET_PAL_GAME_FREAK_INTRO
call RunPaletteCommand
callba LoadCopyrightAndTextBoxTiles
ld a, %11100100
ld [rBGP], a
call UpdateGBCPal_BGP
ld c, 180
call DelayFrames
call ClearScreen
call DisableLCD
xor a
ld [wCurOpponent], a
call IntroDrawBlackBars
; write the black and white tiles
ld hl, vChars2
ld bc, $10
xor a
call FillMemory
ld hl, vChars2 + $10
ld bc, $10
ld a, $ff
call FillMemory
; copy gamefreak logo and others
ld hl, GameFreakIntro
ld de, vChars2 + $600
ld bc, GameFreakIntroEnd - GameFreakIntro
ld a, BANK(GameFreakIntro)
call FarCopyData
ld hl, GameFreakIntro
ld de, vChars1
ld bc, GameFreakIntroEnd - GameFreakIntro
ld a, BANK(GameFreakIntro)
call FarCopyData
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
call IntroClearMiddleOfScreen
call ClearSprites
jp Delay3
IntroDrawBlackBars: ; 41a82 (10:5a82)
; 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, $80
call IntroPlaceBlackTiles
ld hl, vBGMap1 + $1c0
ld c, $80
jp IntroPlaceBlackTiles
EmptyFunc4: ; 41aa5 (10:5aa5)
ret
GameFreakIntro: ; 41959 (10:5aa6)
INCBIN "gfx/gamefreak_intro.2bpp"
INCBIN "gfx/gamefreak_logo.2bpp"
ds $10 ; blank tile
GameFreakIntroEnd: