summaryrefslogtreecommitdiff
path: root/engine/title.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/title.asm')
-rw-r--r--engine/title.asm402
1 files changed, 0 insertions, 402 deletions
diff --git a/engine/title.asm b/engine/title.asm
deleted file mode 100644
index f311f2342..000000000
--- a/engine/title.asm
+++ /dev/null
@@ -1,402 +0,0 @@
-_TitleScreen: ; 10ed67
-
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
-
-; Turn BG Map update off
- xor a
- ld [hBGMapMode], a
-
-; Reset timing variables
- ld hl, wJumptableIndex
- ld [hli], a ; wJumptableIndex
- ld [hli], a ; wIntroSceneFrameCounter
- ld [hli], a ; wTitleScreenTimer
- ld [hl], a ; wTitleScreenTimer + 1
-
-; Turn LCD off
- call DisableLCD
-
-
-; VRAM bank 1
- ld a, 1
- ld [rVBK], a
-
-
-; Decompress running Suicune gfx
- ld hl, TitleSuicuneGFX
- ld de, vTiles1
- call Decompress
-
-
-; Clear screen palettes
- hlbgcoord 0, 0
- ld bc, 20 * BG_MAP_WIDTH
- xor a
- call ByteFill
-
-
-; Fill tile palettes:
-
-; BG Map 1:
-
-; line 0 (copyright)
- hlbgcoord 0, 0, vBGMap1
- ld bc, BG_MAP_WIDTH
- ld a, 7 ; palette
- call ByteFill
-
-
-; BG Map 0:
-
-; Apply logo gradient:
-
-; lines 3-4
- hlbgcoord 0, 3
- ld bc, 2 * BG_MAP_WIDTH
- ld a, 2
- call ByteFill
-; line 5
- hlbgcoord 0, 5
- ld bc, BG_MAP_WIDTH
- ld a, 3
- call ByteFill
-; line 6
- hlbgcoord 0, 6
- ld bc, BG_MAP_WIDTH
- ld a, 4
- call ByteFill
-; line 7
- hlbgcoord 0, 7
- ld bc, BG_MAP_WIDTH
- ld a, 5
- call ByteFill
-; lines 8-9
- hlbgcoord 0, 8
- ld bc, 2 * BG_MAP_WIDTH
- ld a, 6
- call ByteFill
-
-
-; 'CRYSTAL VERSION'
- hlbgcoord 5, 9
- ld bc, NAME_LENGTH ; length of version text
- ld a, 1
- call ByteFill
-
-; Suicune gfx
- hlbgcoord 0, 12
- ld bc, 6 * BG_MAP_WIDTH ; the rest of the screen
- ld a, 0 | VRAM_BANK_1
- call ByteFill
-
-
-; Back to VRAM bank 0
- ld a, $0
- ld [rVBK], a
-
-
-; Decompress logo
- ld hl, TitleLogoGFX
- ld de, vTiles1
- call Decompress
-
-; Decompress background crystal
- ld hl, TitleCrystalGFX
- ld de, vTiles0
- call Decompress
-
-
-; Clear screen tiles
- hlbgcoord 0, 0
- ld bc, 64 * BG_MAP_WIDTH
- ld a, " "
- call ByteFill
-
-; Draw Pokemon logo
- hlcoord 0, 3
- lb bc, 7, 20
- ld d, $80
- ld e, $14
- call DrawTitleGraphic
-
-; Draw copyright text
- hlbgcoord 3, 0, vBGMap1
- lb bc, 1, 13
- ld d, $c
- ld e, $10
- call DrawTitleGraphic
-
-; Initialize running Suicune?
- ld d, $0
- call LoadSuicuneFrame
-
-; Initialize background crystal
- call InitializeBackground
-
-; Save WRAM bank
- ld a, [rSVBK]
- push af
-; WRAM bank 5
- ld a, BANK(wBGPals1)
- ld [rSVBK], a
-
-; Update palette colors
- ld hl, TitleScreenPalettes
- ld de, wBGPals1
- ld bc, 16 palettes
- call CopyBytes
-
- ld hl, TitleScreenPalettes
- ld de, wBGPals2
- ld bc, 16 palettes
- call CopyBytes
-
-; Restore WRAM bank
- pop af
- ld [rSVBK], a
-
-
-; LY/SCX trickery starts here
-
- ld a, [rSVBK]
- push af
- ld a, BANK(wLYOverrides)
- ld [rSVBK], a
-
-; Make alternating lines come in from opposite sides
-
-; (This part is actually totally pointless, you can't
-; see anything until these values are overwritten!)
-
- ld b, 80 / 2 ; alternate for 80 lines
- ld hl, wLYOverrides
-.loop
-; $00 is the middle position
- ld [hl], +112 ; coming from the left
- inc hl
- ld [hl], -112 ; coming from the right
- inc hl
- dec b
- jr nz, .loop
-
-; Make sure the rest of the buffer is empty
- ld hl, wLYOverrides + 80
- xor a
- ld bc, wLYOverridesEnd - (wLYOverrides + 80)
- call ByteFill
-
-; Let LCD Stat know we're messing around with SCX
- ld a, rSCX - $ff00
- ld [hLCDCPointer], a
-
- pop af
- ld [rSVBK], a
-
-
-; Reset audio
- call ChannelsOff
- call EnableLCD
-
-; Set sprite size to 8x16
- ld a, [rLCDC]
- set rLCDC_SPRITE_SIZE, a
- ld [rLCDC], a
-
- ld a, +112
- ld [hSCX], a
- ld a, 8
- ld [hSCY], a
- ld a, 7
- ld [hWX], a
- ld a, -112
- ld [hWY], a
-
- ld a, $1
- ld [hCGBPalUpdate], a
-
-; Update BG Map 0 (bank 0)
- ld [hBGMapMode], a
-
- xor a
- ld [wBGPals1 + 2], a
-
-; Play starting sound effect
- call SFXChannelsOff
- ld de, SFX_TITLE_SCREEN_ENTRANCE
- call PlaySFX
-
- ret
-; 10eea7
-
-SuicuneFrameIterator: ; 10eea7
- ld hl, wBGPals1 + 2
- ld a, [hl]
- ld c, a
- inc [hl]
-
-; Only do this once every eight frames
- and %111
- ret nz
-
- ld a, c
- and %11000
- sla a
- swap a
- ld e, a
- ld d, $0
- ld hl, .Frames
- add hl, de
- ld d, [hl]
- xor a
- ld [hBGMapMode], a
- call LoadSuicuneFrame
- ld a, $1
- ld [hBGMapMode], a
- ld a, $3
- ld [hBGMapThird], a
- ret
-; 10eece
-
-.Frames: ; 10eece
- db $80 ; vTiles4 tile $00
- db $88 ; vTiles4 tile $08
- db $00 ; vTiles5 tile $00
- db $08 ; vTiles5 tile $08
-; 10eed2
-
-
-LoadSuicuneFrame: ; 10eed2
- hlcoord 6, 12
- ld b, 6
-.bgrows
- ld c, 8
-.col
- ld a, d
- ld [hli], a
- inc d
- dec c
- jr nz, .col
- ld a, SCREEN_WIDTH - 8
- add l
- ld l, a
- ld a, 0
- adc h
- ld h, a
- ld a, 8
- add d
- ld d, a
- dec b
- jr nz, .bgrows
- ret
-; 10eeef
-
-DrawTitleGraphic: ; 10eeef
-; input:
-; hl: draw location
-; b: height
-; c: width
-; d: tile to start drawing from
-; e: number of tiles to advance for each bgrows
-.bgrows
- push de
- push bc
- push hl
-.col
- ld a, d
- ld [hli], a
- inc d
- dec c
- jr nz, .col
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- pop de
- ld a, e
- add d
- ld d, a
- dec b
- jr nz, .bgrows
- ret
-; 10ef06
-
-InitializeBackground: ; 10ef06
- ld hl, wVirtualOAMSprite00
- ld d, -$22
- ld e, $0
- ld c, 5
-.loop
- push bc
- call .InitColumn
- pop bc
- ld a, $10
- add d
- ld d, a
- dec c
- jr nz, .loop
- ret
-; 10ef1c
-
-.InitColumn: ; 10ef1c
- ld c, $6
- ld b, $40
-.loop2
- ld a, d
- ld [hli], a ; y
- ld a, b
- ld [hli], a ; x
- add $8
- ld b, a
- ld a, e
- ld [hli], a ; tile id
- inc e
- inc e
- ld a, 0 | PRIORITY
- ld [hli], a ; attributes
- dec c
- jr nz, .loop2
- ret
-; 10ef32
-
-
-AnimateTitleCrystal: ; 10ef32
-; Move the title screen crystal downward until it's fully visible
-
-; Stop at y=6
-; y is really from the bottom of the sprite, which is two tiles high
- ld hl, wVirtualOAMSprite00YCoord
- ld a, [hl]
- cp 6 + 2 * TILE_WIDTH
- ret z
-
-; Move all 30 parts of the crystal down by 2
- ld c, 30
-.loop
- ld a, [hl]
- add 2
- ld [hli], a ; y
-rept SPRITEOAMSTRUCT_LENGTH + -1
- inc hl
-endr
- dec c
- jr nz, .loop
-
- ret
-; 10ef46
-
-TitleSuicuneGFX: ; 10ef46
-INCBIN "gfx/title/suicune.2bpp.lz"
-; 10f326
-
-TitleLogoGFX: ; 10f326
-INCBIN "gfx/title/logo.2bpp.lz"
-; 10fcee
-
-TitleCrystalGFX: ; 10fcee
-INCBIN "gfx/title/crystal.2bpp.lz"
-; 10fede
-
-TitleScreenPalettes:
-INCLUDE "gfx/title/title.pal"