summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rwxr-xr-xengine/dma_transfer.asm625
-rw-r--r--engine/gbc_only.asm149
-rwxr-xr-xengine/init_gender.asm2
-rwxr-xr-xengine/print_party.asm362
-rw-r--r--engine/unused_title.asm556
5 files changed, 1693 insertions, 1 deletions
diff --git a/engine/dma_transfer.asm b/engine/dma_transfer.asm
new file mode 100755
index 000000000..a0dad0dde
--- /dev/null
+++ b/engine/dma_transfer.asm
@@ -0,0 +1,625 @@
+HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransferToWRAMBank3
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransferToWRAMBank3
+ ret
+; 10402d
+
+HDMATransferTileMapToWRAMBank3:: ; 10402d
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransferToWRAMBank3
+ ret
+; 104047
+
+HDMATransferAttrMapToWRAMBank3: ; 104047
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransferToWRAMBank3
+ ret
+; 104061
+
+ReloadMapPart:: ; 104061
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ call DelayFrame
+
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ pop af
+ ld [rVBK], a
+ ei
+
+ ret
+
+Mobile_ReloadMapPart: ; 104099
+ ld hl, ReloadMapPart ; useless
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ call DelayFrame
+
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_NoDI
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_NoDI
+ pop af
+ ld [rVBK], a
+ ei
+
+ ret
+; 1040d4
+
+; XXX
+ ld hl, .unreferenced_1040da
+ jp CallInSafeGFXMode
+
+.unreferenced_1040da
+ ld a, $1
+ ld [rVBK], a
+ ld a, $3
+ ld [rSVBK], a
+ ld de, w3_d800
+ ld a, [hBGMapAddress + 1]
+ ld [rHDMA1], a
+ ld a, [hBGMapAddress]
+ ld [rHDMA2], a
+ ld a, d
+ ld [rHDMA3], a
+ ld a, e
+ ld [rHDMA4], a
+ ld a, $23
+ ld [hDMATransfer], a
+ call WaitDMATransfer
+ ret
+; 1040fb
+
+; XXX
+ ld hl, .unreferenced_104101
+ jp CallInSafeGFXMode
+
+.unreferenced_104101
+ ld a, $1
+ ld [rVBK], a
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, w3_d800
+ call HDMATransferToWRAMBank3
+ ret
+; 104110
+
+OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110
+; OpenText
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ ; Transfer AttrMap and Tilemap to BGMap
+ ; Fill vBGAttrs with $00
+ ; Fill vBGTiles with " "
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ call DelayFrame
+
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait123Scanlines_toBGMap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait123Scanlines_toBGMap
+ pop af
+ ld [rVBK], a
+ ei
+ ret
+; 104148
+
+Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148)
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ ; Transfer AttrMap and Tilemap to BGMap
+ ; Fill vBGAttrs with $00
+ ; Fill vBGTiles with $ff
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ ld c, $ff
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteMap
+
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ ret
+; 104177
+
+CallInSafeGFXMode: ; 104177
+ ld a, [hBGMapMode]
+ push af
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld [hMapAnims], a
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [rVBK]
+ push af
+
+ call ._hl_
+
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [hMapAnims], a
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 10419c
+
+._hl_ ; 10419c
+ jp hl
+; 10419d
+
+
+HDMATransferToWRAMBank3: ; 10419d (41:419d)
+ call _LoadHDMAParameters
+ ld a, $23
+ ld [hDMATransfer], a
+
+WaitDMATransfer: ; 104a14
+.loop
+ call DelayFrame
+ ld a, [hDMATransfer]
+ and a
+ jr nz, .loop
+ ret
+
+HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad)
+; HDMA transfer from hl to [hBGMapAddress]
+; hBGMapAddress -> de
+; 2 * SCREEN_HEIGHT -> c
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, 2 * SCREEN_HEIGHT
+ jr HDMATransfer_Wait127Scanlines
+
+HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7)
+; HDMA transfer from hl to [hBGMapAddress]
+; hBGMapAddress -> de
+; 2 * SCREEN_HEIGHT -> c
+; $7b --> b
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, 2 * SCREEN_HEIGHT
+ jr HDMATransfer_Wait123Scanlines
+; 1041c1 (41:41c1)
+
+HDMATransfer_NoDI: ; 1041c1
+; HDMA transfer from hl to [hBGMapAddress]
+; [hBGMapAddress] --> de
+; 2 * SCREEN_HEIGHT --> c
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, 2 * SCREEN_HEIGHT
+
+ ; [rHDMA1, rHDMA2] = hl & $fff0
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ and $f0
+ ld [rHDMA2], a
+ ; [rHDMA3, rHDMA4] = de & $1ff0
+ ld a, d
+ and $1f
+ ld [rHDMA3], a
+ ld a, e
+ and $f0
+ ld [rHDMA4], a
+ ; b = c | %10000000
+ ld a, c
+ dec c
+ or $80
+ ld b, a
+ ; d = $7f - c + 1
+ ld a, $7f
+ sub c
+ ld d, a
+ ; while [rLY] >= d: pass
+.loop1
+ ld a, [rLY]
+ cp d
+ jr nc, .loop1
+ ; while not [rSTAT] & 3: pass
+.loop2
+ ld a, [rSTAT]
+ and $3
+ jr z, .loop2
+ ; load the 5th byte of HDMA
+ ld a, b
+ ld [rHDMA5], a
+ ; wait until rLY advances (c + 1) times
+ ld a, [rLY]
+ inc c
+ ld hl, rLY
+.loop3
+ cp [hl]
+ jr z, .loop3
+ ld a, [hl]
+ dec c
+ jr nz, .loop3
+ ld hl, rHDMA5
+ res 7, [hl]
+ ret
+; 104205
+
+HDMATransfer_Wait123Scanlines:
+ ld b, $7b
+ jr _continue_HDMATransfer
+
+
+HDMATransfer_Wait127Scanlines:
+ ld b, $7f
+_continue_HDMATransfer:
+; a lot of waiting around for hardware registers
+ ; [rHDMA1, rHDMA2] = hl & $fff0
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ and $f0 ; high nybble
+ ld [rHDMA2], a
+ ; [rHDMA3, rHDMA4] = de & $1ff0
+ ld a, d
+ and $1f ; lower 5 bits
+ ld [rHDMA3], a
+ ld a, e
+ and $f0 ; high nybble
+ ld [rHDMA4], a
+ ; e = c | %10000000
+ ld a, c
+ dec c
+ or $80
+ ld e, a
+ ; d = b - c + 1
+ ld a, b
+ sub c
+ ld d, a
+ ; while [rLY] >= d: pass
+.ly_loop
+ ld a, [rLY]
+ cp d
+ jr nc, .ly_loop
+
+ di
+ ; while [rSTAT] & 3: pass
+.rstat_loop_1
+ ld a, [rSTAT]
+ and $3
+ jr nz, .rstat_loop_1
+ ; while not [rSTAT] & 3: pass
+.rstat_loop_2
+ ld a, [rSTAT]
+ and $3
+ jr z, .rstat_loop_2
+ ; load the 5th byte of HDMA
+ ld a, e
+ ld [rHDMA5], a
+ ; wait until rLY advances (c + 1) times
+ ld a, [rLY]
+ inc c
+ ld hl, rLY
+.final_ly_loop
+ cp [hl]
+ jr z, .final_ly_loop
+ ld a, [hl]
+ dec c
+ jr nz, .final_ly_loop
+ ld hl, rHDMA5
+ res 7, [hl]
+ ei
+
+ ret
+; 10424e
+
+
+_LoadHDMAParameters: ; 10424e (41:424e)
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ ld [rHDMA2], a
+ ld a, [hBGMapAddress + 1]
+ and $1f
+ ld [rHDMA3], a
+ ld a, [hBGMapAddress]
+ ld [rHDMA4], a
+ ret
+
+CutAndPasteTilemap: ; 10425f (41:425f)
+ ld c, " "
+ jr CutAndPasteMap
+
+CutAndPasteAttrMap: ; 104263 (41:4263)
+ ld c, $0
+
+CutAndPasteMap: ; 104265 (41:4265)
+; back up the value of c to hMapObjectIndexBuffer
+ ld a, [hMapObjectIndexBuffer]
+ push af
+ ld a, c
+ ld [hMapObjectIndexBuffer], a
+
+; for each row on the screen
+ ld c, SCREEN_HEIGHT
+.loop1
+; for each tile in the row
+ ld b, SCREEN_WIDTH
+.loop2
+; copy from de to hl
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .loop2
+
+; load the original value of c into hl 12 times
+ ld a, [hMapObjectIndexBuffer]
+ ld b, BG_MAP_WIDTH - SCREEN_WIDTH
+.loop3
+ ld [hli], a
+ dec b
+ jr nz, .loop3
+
+ dec c
+ jr nz, .loop1
+
+; restore the original value of hMapObjectIndexBuffer
+ pop af
+ ld [hMapObjectIndexBuffer], a
+ ret
+
+
+_Get2bpp:: ; 104284
+ ; 2bpp when [rLCDC] & $80
+ ; switch to WRAM bank 6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ push bc
+ push hl
+
+ ; Copy c tiles of the 2bpp from b:de to wScratchTileMap
+ ld a, b ; bank
+ ld l, c ; number of tiles
+ ld h, $0
+ ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile)
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld b, h
+ ld c, l
+ ld h, d ; address
+ ld l, e
+ ld de, wScratchTileMap
+ call FarCopyBytes
+
+ pop hl
+ pop bc
+
+ push bc
+ call DelayFrame
+ pop bc
+
+ ld d, h
+ ld e, l
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines
+
+ ; restore the previous bank
+ pop af
+ ld [rSVBK], a
+ ret
+; 1042b2
+
+_Get1bpp:: ; 1042b2
+ ; 1bpp when [rLCDC] & $80
+.loop
+ ld a, c
+ cp $10
+ jp c, .bankswitch
+ jp z, .bankswitch
+ push bc
+ push hl
+ push de
+ ld c, $10
+ call .bankswitch
+ pop de
+ ld hl, $80
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ lb bc, 1, 0
+ add hl, bc
+ pop bc
+ ld a, c
+ sub $10
+ ld c, a
+ jr .loop
+; 1042d6
+
+.bankswitch ; 1042d6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ push bc
+ push hl
+
+ ld a, b
+ ld l, c
+ ld h, $0
+ add hl, hl ; multiply by 8
+ add hl, hl ; multiply by 8
+ add hl, hl ; multiply by 8
+ ld c, l
+ ld b, h
+ ld h, d
+ ld l, e
+ ld de, wScratchTileMap
+ call FarCopyBytesDouble_DoubleBankSwitch
+
+ pop hl
+ pop bc
+
+ push bc
+ call DelayFrame
+ pop bc
+
+ ld d, h
+ ld e, l
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 104303
+
+HDMATransfer_OnlyTopFourRows: ; 104303
+ ld hl, .Function
+ jp CallInSafeGFXMode
+; 104309
+
+.Function:
+ ld hl, wScratchTileMap
+ decoord 0, 0
+ call .Copy
+ ld hl, wScratchTileMap + $80
+ decoord 0, 0, AttrMap
+ call .Copy
+ ld a, $1
+ ld [rVBK], a
+ ld c, $8
+ ld hl, wScratchTileMap + $80
+ debgcoord 0, 0, VBGMap1
+ call HDMATransfer_Wait127Scanlines
+ ld a, $0
+ ld [rVBK], a
+ ld c, $8
+ ld hl, wScratchTileMap
+ debgcoord 0, 0, VBGMap1
+ call HDMATransfer_Wait127Scanlines
+ ret
+
+.Copy: ; 10433a (41:433a)
+ ld b, 4
+.outer_loop
+ ld c, SCREEN_WIDTH
+.inner_loop
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .inner_loop
+ ld a, l
+ add BG_MAP_WIDTH - SCREEN_WIDTH
+ ld l, a
+ ld a, h
+ adc $0
+ ld h, a
+ dec b
+ jr nz, .outer_loop
+ ret
+; 104350
diff --git a/engine/gbc_only.asm b/engine/gbc_only.asm
new file mode 100644
index 000000000..a77a44d72
--- /dev/null
+++ b/engine/gbc_only.asm
@@ -0,0 +1,149 @@
+GBCOnlyScreen: ; 4ea82
+
+ ld a, [hCGB]
+ and a
+ ret nz
+
+ ld de, MUSIC_NONE
+ call PlayMusic
+
+ call ClearTileMap
+
+ ld hl, GBCOnlyGFX
+ ld de, $d000
+ ld a, [rSVBK]
+ push af
+ ld a, 0
+ ld [rSVBK], a
+ call Decompress
+ pop af
+ ld [rSVBK], a
+
+ ld de, $d000
+ ld hl, VTiles2
+ lb bc, BANK(GBCOnlyGFX), $54
+ call Get2bpp
+
+ ld de, Font
+ ld hl, VTiles1
+ lb bc, BANK(Font), $80
+ call Get1bpp
+
+ call DrawGBCOnlyScreen
+
+ call WaitBGMap
+
+; better luck next time
+.loop
+ call DelayFrame
+ jr .loop
+; 4eac5
+
+
+DrawGBCOnlyScreen: ; 4eac5
+
+ call DrawGBCOnlyBorder
+
+ ; Pokemon
+ hlcoord 3, 2
+ ld b, 14
+ ld c, 4
+ ld a, $8
+ call DrawGBCOnlyGraphic
+
+ ; Crystal
+ hlcoord 5, 6
+ ld b, 10
+ ld c, 2
+ ld a, $40
+ call DrawGBCOnlyGraphic
+
+ ld de, GBCOnlyString
+ hlcoord 1, 10
+ call PlaceString
+
+ ret
+; 4eaea
+
+
+DrawGBCOnlyBorder: ; 4eaea
+
+ hlcoord 0, 0
+ ld [hl], 0 ; top-left
+
+ inc hl
+ ld a, 1 ; top
+ call .FillRow
+
+ ld [hl], 2 ; top-right
+
+ hlcoord 0, 1
+ ld a, 3 ; left
+ call .FillColumn
+
+ hlcoord 19, 1
+ ld a, 4 ; right
+ call .FillColumn
+
+ hlcoord 0, 17
+ ld [hl], 5 ; bottom-left
+
+ inc hl
+ ld a, 6 ; bottom
+ call .FillRow
+
+ ld [hl], 7 ; bottom-right
+ ret
+; 4eb15
+
+.FillRow: ; 4eb15
+ ld c, SCREEN_WIDTH - 2
+.next_column
+ ld [hli], a
+ dec c
+ jr nz, .next_column
+ ret
+; 4eb1c
+
+.FillColumn: ; 4eb1c
+ ld de, SCREEN_WIDTH
+ ld c, SCREEN_HEIGHT - 2
+.next_row
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .next_row
+ ret
+; 4eb27
+
+
+DrawGBCOnlyGraphic: ; 4eb27
+ ld de, SCREEN_WIDTH
+.y
+ push bc
+ push hl
+.x
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .x
+ pop hl
+ add hl, de
+ pop bc
+ dec c
+ jr nz, .y
+ ret
+; 4eb38
+
+
+GBCOnlyString: ; 4eb38
+ db "This Game Pak is"
+ next "designed only for"
+ next "use on the"
+ next "Game Boy Color.@"
+; 4eb76
+
+
+GBCOnlyGFX: ; 4eb76
+INCBIN "gfx/sgb/gbc_only.2bpp.lz"
+; 4f0bc
diff --git a/engine/init_gender.asm b/engine/init_gender.asm
index 3ae856029..dfb3fbdd4 100755
--- a/engine/init_gender.asm
+++ b/engine/init_gender.asm
@@ -20,7 +20,7 @@ InitCrystalData: ; 48000
ret
; 4802f
-INCLUDE "misc/mobile_12.asm"
+INCLUDE "mobile/mobile_12.asm"
InitGender: ; 48dcb (12:4dcb)
call InitGenderScreen
diff --git a/engine/print_party.asm b/engine/print_party.asm
new file mode 100755
index 000000000..9bf98767b
--- /dev/null
+++ b/engine/print_party.asm
@@ -0,0 +1,362 @@
+PrintPage1: ; 1dc1b0
+ hlcoord 0, 0
+ decoord 0, 0, wPrinterTileMapBuffer
+ ld bc, 17 * SCREEN_WIDTH
+ call CopyBytes
+ hlcoord 17, 1, wPrinterTileMapBuffer
+ ld a, $62
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 17, 2, wPrinterTileMapBuffer
+ ld a, $64
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 1, 9, wPrinterTileMapBuffer
+ ld a, " "
+ ld [hli], a
+ ld [hl], a
+ hlcoord 1, 10, wPrinterTileMapBuffer
+ ld a, $61
+ ld [hli], a
+ ld [hl], a
+ hlcoord 2, 11, wPrinterTileMapBuffer
+ lb bc, 5, 18
+ call ClearBox
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ push af
+ ld a, [wd265]
+ ld b, a
+ ld c, 1 ; get page 1
+ callba GetDexEntryPagePointer
+ pop af
+ ld a, b
+ hlcoord 1, 11, wPrinterTileMapBuffer
+ call nz, FarString
+ hlcoord 19, 0, wPrinterTileMapBuffer
+ ld [hl], $35
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld b, $f
+.column_loop
+ ld [hl], $37
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ ld [hl], $3a
+ ret
+; 1dc213
+
+PrintPage2: ; 1dc213
+ hlcoord 0, 0, wPrinterTileMapBuffer
+ ld bc, 8 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 0, wPrinterTileMapBuffer
+ ld a, $36
+ ld b, 6
+ call .FillColumn
+ hlcoord 19, 0, wPrinterTileMapBuffer
+ ld a, $37
+ ld b, 6
+ call .FillColumn
+ hlcoord 0, 6, wPrinterTileMapBuffer
+ ld [hl], $38
+ inc hl
+ ld a, $39
+ ld bc, SCREEN_HEIGHT
+ call ByteFill
+ ld [hl], $3a
+ hlcoord 0, 7, wPrinterTileMapBuffer
+ ld bc, SCREEN_WIDTH
+ ld a, $32
+ call ByteFill
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ push af
+ ld a, [wd265]
+ ld b, a
+ ld c, 2 ; get page 2
+ callba GetDexEntryPagePointer
+ pop af
+ hlcoord 1, 1, wPrinterTileMapBuffer
+ ld a, b
+ call nz, FarString
+ ret
+; 1dc26a
+
+.FillColumn: ; 1dc26a
+ push de
+ ld de, SCREEN_WIDTH
+.column_loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ pop de
+ ret
+; 1dc275
+
+GBPrinterStrings:
+GBPrinterString_Null: db "@"
+GBPrinterString_CheckingLink: next " CHECKING LINK...@"
+GBPrinterString_Transmitting: next " TRANSMITTING...@"
+GBPrinterString_Printing: next " PRINTING...@"
+GBPrinterString_PrinterError1:
+ db " Printer Error 1"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError2:
+ db " Printer Error 2"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError3:
+ db " Printer Error 3"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError4:
+ db " Printer Error 4"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+; 1dc381
+
+PrintPartyMonPage1: ; 1dc381
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call LoadFontsBattleExtra
+
+ ld de, GBPrinterHPIcon
+ ld hl, VTiles2 tile $71
+ lb bc, BANK(GBPrinterHPIcon), 1
+ call Request1bpp
+
+ ld de, GBPrinterLvIcon
+ ld hl, VTiles2 tile $6e
+ lb bc, BANK(GBPrinterLvIcon), 1
+ call Request1bpp
+
+ ld de, ShinyIconGFX
+ ld hl, VTiles2 tile $3f
+ lb bc, BANK(ShinyIconGFX), 1
+ call Get2bpp
+
+ xor a
+ ld [MonType], a
+ callba CopyPkmnToTempMon
+ hlcoord 0, 7
+ ld b, 9
+ ld c, 18
+ call TextBox
+ hlcoord 8, 2
+ ld a, [TempMonLevel]
+ call PrintLevel_Force3Digits
+ hlcoord 12, 2
+ ld [hl], "◀" ; Filled left triangle
+ inc hl
+ ld de, TempMonMaxHP
+ lb bc, 2, 3
+ call PrintNum
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ ld [CurSpecies], a
+ ld hl, PartyMonNicknames
+ call Function1dc50e
+ hlcoord 8, 4
+ call PlaceString
+ hlcoord 9, 6
+ ld [hl], "/"
+ call GetPokemonName
+ hlcoord 10, 6
+ call PlaceString
+ hlcoord 8, 0
+ ld [hl], "№"
+ inc hl
+ ld [hl], "."
+ inc hl
+ ld de, wd265
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ hlcoord 1, 9
+ ld de, String1dc550
+ call PlaceString
+ ld hl, PartyMonOT
+ call Function1dc50e
+ hlcoord 4, 9
+ call PlaceString
+ hlcoord 1, 11
+ ld de, String1dc559
+ call PlaceString
+ hlcoord 4, 11
+ ld de, TempMonID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ hlcoord 1, 14
+ ld de, String1dc554
+ call PlaceString
+ hlcoord 7, 14
+ ld a, [TempMonMoves + 0]
+ call Function1dc51a
+ call Function1dc52c
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ ld hl, wBoxAlignment
+ xor a
+ ld [hl], a
+ ld a, [CurPartySpecies]
+ cp UNOWN
+ jr z, .asm_1dc469
+ inc [hl]
+
+.asm_1dc469
+ hlcoord 0, 0
+ call _PrepMonFrontpic
+ call WaitBGMap
+ ld b, SCGB_STATS_SCREEN_HP_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; 1dc47b
+
+PrintPartyMonPage2: ; 1dc47b
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call LoadFontsBattleExtra
+ xor a
+ ld [MonType], a
+ callba CopyPkmnToTempMon
+ hlcoord 0, 0
+ ld b, 15
+ ld c, 18
+ call TextBox
+ ld bc, SCREEN_WIDTH
+ decoord 0, 0
+ hlcoord 0, 1
+ call CopyBytes
+ hlcoord 7, 0
+ ld a, [TempMonMoves + 1]
+ call Function1dc51a
+ hlcoord 7, 2
+ ld a, [TempMonMoves + 2]
+ call Function1dc51a
+ hlcoord 7, 4
+ ld a, [TempMonMoves + 3]
+ call Function1dc51a
+ hlcoord 7, 7
+ ld de, String1dc55d
+ call PlaceString
+ hlcoord 16, 7
+ ld de, TempMonAttack
+ call .PrintTempMonStats
+ hlcoord 16, 9
+ ld de, TempMonDefense
+ call .PrintTempMonStats
+ hlcoord 16, 11
+ ld de, TempMonSpclAtk
+ call .PrintTempMonStats
+ hlcoord 16, 13
+ ld de, TempMonSpclDef
+ call .PrintTempMonStats
+ hlcoord 16, 15
+ ld de, TempMonSpeed
+ call .PrintTempMonStats
+ call WaitBGMap
+ ld b, SCGB_STATS_SCREEN_HP_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; 1dc507
+
+.PrintTempMonStats: ; 1dc507
+ lb bc, 2, 3
+ call PrintNum
+ ret
+; 1dc50e
+
+Function1dc50e: ; 1dc50e
+ ld bc, NAME_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ret
+; 1dc51a
+
+Function1dc51a: ; 1dc51a
+ and a
+ jr z, .no_move
+
+ ld [wd265], a
+ call GetMoveName
+ jr .got_string
+
+.no_move
+ ld de, String1dc584
+
+.got_string
+ call PlaceString
+ ret
+; 1dc52c
+
+Function1dc52c: ; 1dc52c
+ callba GetGender
+ ld a, " "
+ jr c, .got_gender
+ ld a, "♂"
+ jr nz, .got_gender
+ ld a, "♀"
+
+.got_gender
+ hlcoord 17, 2
+ ld [hl], a
+ ld bc, TempMonDVs
+ callba CheckShininess
+ ret nc
+ hlcoord 18, 2
+ ld [hl], "<SHINY>"
+ ret
+; 1dc550
+
+String1dc550: ; 1dc550
+ db "OT/@"
+
+String1dc554: ; 1dc554
+ db "MOVE@"
+
+String1dc559: ; 1dc559
+ db "<ID>№.@"
+
+String1dc55d: ; 1dc55d
+ db "ATTACK"
+ next "DEFENSE"
+ next "SPCL.ATK"
+ next "SPCL.DEF"
+ next "SPEED"
+ db "@"
+
+String1dc584: ; 1dc584
+ db "------------@"
+; 1dc591
+
+GBPrinterHPIcon: ; 1dc591
+INCBIN "gfx/printer/hp.1bpp"
+
+GBPrinterLvIcon: ; 1dc599
+INCBIN "gfx/printer/lv.1bpp"
diff --git a/engine/unused_title.asm b/engine/unused_title.asm
new file mode 100644
index 000000000..6cd79237b
--- /dev/null
+++ b/engine/unused_title.asm
@@ -0,0 +1,556 @@
+UnusedTitleScreen: ; 10c000
+
+ call ClearBGPalettes
+ call ClearTileMap
+ call DisableLCD
+ xor a
+ ld [hBGMapMode], a
+
+ ld hl, wJumptableIndex
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+ ld hl, UnusedTitleBG_GFX
+ ld de, VTiles2
+ ld bc, VBGMap0 - VTiles2
+ call CopyBytes
+
+ ld hl, UnusedTitleBG_GFX + $800
+ ld de, VTiles1
+ ld bc, VTiles2 - VTiles1
+ call CopyBytes
+
+ ld hl, UnusedTitleFG_GFX
+ ld de, VTiles0
+ ld bc, VTiles1 - VTiles0
+ call CopyBytes
+
+ ld hl, UnusedTitleBG_Tilemap
+ debgcoord 0, 0
+ ld bc, 32 * 32
+.copy
+ ld a, 0
+ ld [rVBK], a
+ ld a, [hli]
+ ld [de], a
+ ld a, 1
+ ld [rVBK], a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .copy
+
+ ld hl, UnusedTitleFG_OAM
+ ld de, Sprites
+ ld bc, $a0
+ call CopyBytes
+
+ call EnableLCD
+ ld a, [rLCDC]
+ set 1, a
+ set 2, a
+ ld [rLCDC], a
+
+ call DelayFrame
+
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld hl, UnusedTitleBG_Palettes
+ ld de, UnknBGPals
+ ld bc, $40
+ call CopyBytes
+
+ ld hl, UnusedTitleFG_Palettes
+ ld de, UnknOBPals
+ ld bc, $40
+ call CopyBytes
+
+ ld hl, UnusedTitleBG_Palettes
+ ld de, BGPals
+ ld bc, $40
+ call CopyBytes
+
+ ld hl, UnusedTitleFG_Palettes
+ ld de, OBPals
+ ld bc, $40
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, $1
+ ld [hCGBPalUpdate], a
+
+ ld de, MUSIC_TITLE
+ call PlayMusic
+
+ ret
+; 10c0b1
+
+UnusedTitleBG_GFX: ; 10c0b1
+INCBIN "gfx/title/old_bg.2bpp"
+; 10d0b1
+
+UnusedTitleBG_Tilemap: ; 10d0b1
+; 32x32 (tile, attributes)
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $01,$00, $02,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $03,$00, $04,$00, $05,$01, $06,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $07,$05, $08,$05, $09,$05, $0a,$05, $0b,$00, $0c,$00, $0d,$00, $0e,$00, $0f,$01, $10,$01, $11,$01, $12,$01, $13,$05, $14,$05, $15,$05, $16,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $17,$04, $18,$04, $19,$04, $1a,$04, $1b,$00, $1c,$00, $1d,$02, $1e,$02, $1f,$07, $20,$07, $21,$01, $22,$01, $23,$04, $24,$04, $25,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $27,$04, $28,$04, $29,$04, $2a,$04, $2b,$00, $2c,$00, $2d,$03, $2e,$01, $2f,$01, $30,$01, $31,$01, $32,$01, $33,$04, $34,$04, $35,$04, $36,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $37,$04, $38,$04, $39,$04, $3a,$04, $3b,$00, $3c,$00, $3d,$01, $00,$00, $00,$00, $3e,$07, $3f,$01, $40,$01, $41,$04, $42,$04, $43,$04, $44,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $45,$04, $46,$04, $47,$04, $48,$04, $49,$00, $3c,$00, $4a,$01, $00,$00, $00,$00, $4b,$07, $3f,$01, $4c,$01, $4d,$06, $4e,$06, $4f,$06, $50,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $51,$04, $52,$06, $53,$06, $54,$06, $55,$00, $3c,$00, $56,$01, $00,$00, $00,$00, $57,$07, $58,$01, $59,$01, $5a,$06, $5b,$06, $5c,$06, $5d,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $5e,$06, $5f,$06, $60,$06, $61,$06, $62,$00, $63,$00, $64,$03, $65,$01, $66,$01, $67,$07, $68,$01, $69,$01, $26,$04, $6a,$06, $26,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $6b,$00, $6c,$05, $6d,$05, $6e,$05, $6f,$00, $70,$02, $71,$02, $72,$01, $73,$00, $74,$02, $75,$01, $76,$01, $77,$05, $78,$05, $79,$05, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $7a,$00, $7b,$00, $7c,$00, $7d,$00, $0f,$01, $7e,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $a2,$00, $80,$00, $81,$00, $82,$00, $83,$00, $84,$07, $85,$01, $86,$01, $87,$01, $88,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $89,$00, $8a,$00, $8b,$00, $8c,$07, $8d,$01, $8e,$01, $8f,$01, $90,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $91,$01, $92,$01, $93,$01, $94,$01, $95,$01, $00,$00, $00,$00, $00,$00, $96,$05, $97,$05, $98,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $99,$05, $9a,$05, $9b,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9c,$05, $9d,$05, $9e,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9f,$05, $a0,$05, $a1,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+; 10d8b1
+
+UnusedTitleBG_Palettes: ; 10d8b1
+ RGB 00, 00, 00
+ RGB 25, 15, 28
+ RGB 22, 11, 28
+ RGB 19, 08, 26
+
+ RGB 00, 00, 00
+ RGB 17, 07, 22
+ RGB 13, 07, 16
+ RGB 19, 08, 26
+
+ RGB 25, 15, 28
+ RGB 22, 11, 28
+ RGB 19, 08, 26
+ RGB 17, 07, 22
+
+ RGB 22, 11, 28
+ RGB 19, 08, 26
+ RGB 17, 07, 22
+ RGB 13, 07, 16
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 22, 10, 31
+ RGB 19, 08, 26
+ RGB 17, 07, 22
+
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 20, 04, 20
+ RGB 16, 08, 16
+ RGB 24, 00, 24
+
+ rept 54
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ endr
+; 10dab1
+
+UnusedTitleFG_GFX: ; 10dab1
+INCBIN "gfx/title/old_fg.2bpp"
+; 10eab1
+
+UnusedTitleFG_Palettes: ; 10eab1
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 22, 00
+ RGB 31, 27, 00
+ RGB 31, 31, 00
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 16, 31, 00
+ RGB 22, 31, 00
+ RGB 27, 31, 00
+ RGB 31, 31, 00
+
+
+ RGB 31, 00, 18
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 16, 31, 00
+ RGB 22, 31, 00
+ RGB 27, 31, 00
+ RGB 31, 31, 00
+
+ RGB 24, 18, 31
+ RGB 31, 31, 00
+ RGB 31, 31, 01
+ RGB 31, 31, 03
+
+ RGB 31, 31, 05
+ RGB 31, 31, 08
+ RGB 31, 31, 10
+ RGB 31, 31, 12
+
+ RGB 31, 31, 14
+ RGB 31, 31, 16
+ RGB 31, 31, 18
+ RGB 31, 31, 20
+
+ RGB 31, 31, 22
+ RGB 31, 31, 25
+ RGB 31, 31, 27
+ RGB 31, 31, 29
+
+ RGB 24, 06, 06
+ RGB 01, 01, 01
+ RGB 03, 03, 03
+ RGB 05, 05, 05
+
+ RGB 08, 08, 08
+ RGB 10, 10, 10
+ RGB 12, 12, 12
+ RGB 14, 14, 14
+
+ RGB 16, 16, 16
+ RGB 18, 18, 18
+ RGB 20, 20, 20
+ RGB 22, 22, 22
+
+ RGB 25, 25, 25
+ RGB 27, 27, 27
+ RGB 29, 29, 29
+ RGB 31, 31, 31
+
+ RGB 18, 24, 18
+ RGB 31, 29, 01
+ RGB 31, 27, 03
+ RGB 31, 25, 05
+
+ RGB 31, 22, 08
+ RGB 31, 20, 10
+ RGB 31, 18, 12
+ RGB 31, 16, 14
+
+ RGB 31, 14, 16
+ RGB 31, 12, 18
+ RGB 31, 10, 20
+ RGB 31, 08, 22
+
+ RGB 31, 05, 25
+ RGB 31, 03, 27
+ RGB 31, 01, 29
+ RGB 31, 00, 31
+
+ RGB 18, 06, 31
+ RGB 00, 31, 31
+ RGB 00, 31, 29
+ RGB 00, 31, 27
+
+ RGB 00, 31, 25
+ RGB 00, 31, 22
+ RGB 00, 31, 20
+ RGB 00, 31, 18
+
+ RGB 00, 31, 16
+ RGB 00, 31, 14
+ RGB 00, 31, 12
+ RGB 00, 31, 10
+
+ RGB 00, 31, 08
+ RGB 00, 31, 05
+ RGB 00, 31, 03
+ RGB 00, 31, 01
+
+ RGB 12, 31, 06
+ RGB 00, 00, 31
+ RGB 00, 01, 31
+ RGB 00, 03, 31
+
+ RGB 00, 05, 31
+ RGB 00, 08, 31
+ RGB 00, 10, 31
+ RGB 00, 12, 31
+
+ RGB 00, 14, 31
+ RGB 00, 16, 31
+ RGB 00, 18, 31
+ RGB 00, 20, 31
+
+ RGB 00, 22, 31
+ RGB 00, 25, 31
+ RGB 00, 27, 31
+ RGB 00, 29, 31
+
+ RGB 00, 00, 00
+ RGB 06, 00, 04
+ RGB 19, 02, 09
+ RGB 28, 04, 11
+
+ RGB 31, 07, 16
+ RGB 31, 17, 23
+ RGB 31, 26, 30
+ RGB 07, 05, 10
+
+ RGB 14, 10, 18
+ RGB 20, 20, 25
+ RGB 25, 27, 31
+ RGB 09, 05, 06
+
+ RGB 23, 16, 13
+ RGB 30, 23, 22
+ RGB 31, 28, 28
+ RGB 31, 31, 31
+
+ RGB 06, 31, 31
+ RGB 04, 00, 04
+ RGB 11, 02, 04
+ RGB 17, 02, 04
+
+ RGB 24, 05, 04
+ RGB 28, 07, 04
+ RGB 31, 11, 04
+ RGB 02, 01, 15
+
+ RGB 04, 11, 22
+ RGB 12, 25, 25
+ RGB 20, 31, 31
+ RGB 09, 04, 03
+
+ RGB 22, 11, 08
+ RGB 27, 19, 16
+ RGB 30, 28, 26
+ RGB 31, 31, 31
+
+ RGB 06, 18, 06
+ RGB 04, 04, 02
+ RGB 07, 07, 02
+ RGB 18, 18, 04
+
+ RGB 24, 24, 06
+ RGB 27, 27, 11
+ RGB 31, 31, 20
+ RGB 02, 03, 10
+
+ RGB 04, 05, 13
+ RGB 06, 10, 25
+ RGB 08, 15, 31
+ RGB 04, 00, 06
+
+ RGB 11, 07, 14
+ RGB 21, 16, 23
+ RGB 29, 26, 31
+ RGB 31, 31, 31
+
+ RGB 06, 00, 18
+ RGB 00, 04, 03
+ RGB 02, 09, 05
+ RGB 11, 19, 07
+
+ RGB 16, 24, 08
+ RGB 22, 31, 09
+ RGB 24, 31, 18
+ RGB 03, 01, 03
+
+ RGB 10, 04, 10
+ RGB 20, 08, 20
+ RGB 31, 17, 31
+ RGB 01, 03, 06
+
+ RGB 05, 09, 10
+ RGB 15, 21, 21
+ RGB 23, 25, 25
+ RGB 31, 31, 31
+
+ RGB 00, 18, 31
+ RGB 00, 05, 07
+ RGB 00, 08, 13
+ RGB 00, 12, 17
+
+ RGB 01, 20, 24
+ RGB 04, 27, 31
+ RGB 14, 31, 31
+ RGB 04, 02, 02
+
+ RGB 15, 01, 03
+ RGB 26, 04, 07
+ RGB 31, 13, 16
+ RGB 00, 05, 02
+
+ RGB 01, 11, 03
+ RGB 06, 21, 06
+ RGB 13, 31, 16
+ RGB 31, 31, 31
+
+ RGB 00, 06, 06
+ RGB 00, 01, 08
+ RGB 00, 05, 14
+ RGB 00, 08, 19
+
+ RGB 02, 14, 26
+ RGB 04, 21, 31
+ RGB 06, 26, 31
+ RGB 13, 00, 00
+
+ RGB 27, 07, 00
+ RGB 31, 17, 05
+ RGB 31, 25, 16
+ RGB 02, 04, 00
+
+ RGB 07, 11, 03
+ RGB 17, 19, 05
+ RGB 27, 31, 16
+ RGB 31, 31, 31
+
+ RGB 02, 00, 00
+ RGB 04, 01, 06
+ RGB 11, 03, 14
+ RGB 16, 04, 19
+
+ RGB 20, 07, 22
+ RGB 26, 12, 27
+ RGB 26, 20, 31
+ RGB 04, 07, 00
+
+ RGB 16, 20, 07
+ RGB 24, 28, 15
+ RGB 29, 31, 24
+ RGB 05, 02, 02
+
+ RGB 15, 04, 02
+ RGB 24, 11, 10
+ RGB 31, 22, 20
+ RGB 31, 31, 31
+
+ RGB 00, 00, 14
+ RGB 12, 00, 00
+ RGB 27, 05, 00
+ RGB 31, 15, 05
+
+ RGB 31, 26, 13
+ RGB 31, 30, 21
+ RGB 05, 07, 16
+ RGB 04, 16, 20
+
+ RGB 04, 24, 26
+ RGB 08, 31, 31
+ RGB 23, 31, 31
+ RGB 00, 00, 00
+
+ RGB 05, 05, 05
+ RGB 17, 17, 15
+ RGB 28, 28, 24
+ RGB 31, 31, 31
+; 10ecb1
+
+UnusedTitleFG_OAM: ; 10ecb1
+ db $18, $38, $00, $01, $18, $40, $02, $01, $18, $48, $04, $01, $18, $50, $06, $01
+ db $18, $58, $08, $01, $18, $60, $0a, $01, $18, $68, $0c, $01, $18, $70, $0e, $01
+
+ db $28, $38, $10, $00, $28, $40, $12, $00, $28, $48, $14, $00, $28, $50, $16, $00
+ db $28, $58, $18, $00, $28, $60, $1a, $00, $28, $68, $1c, $00, $28, $70, $1e, $00
+
+ db $38, $38, $20, $00, $38, $40, $22, $00, $38, $48, $24, $00, $38, $50, $26, $00
+ db $38, $58, $28, $00, $38, $60, $2a, $00, $38, $68, $2c, $00, $38, $70, $2e, $00
+
+ db $48, $38, $30, $02, $48, $40, $32, $02, $48, $48, $34, $02, $48, $50, $36, $02
+ db $48, $58, $38, $02, $48, $60, $3a, $02, $48, $68, $3c, $02, $48, $70, $3e, $02
+
+ db $58, $38, $40, $01, $58, $40, $42, $01, $58, $48, $44, $01, $58, $50, $46, $01
+ db $58, $58, $48, $01, $58, $60, $4a, $01, $58, $68, $4c, $01, $58, $70, $4e, $01
+; 10ed51
+
+
+Function10ed51: ; 10ed51
+ call _TitleScreen
+.loop
+ call JoyTextDelay
+ ld a, [hJoyLast]
+ ld b, a
+ and 1
+ jr nz, .done
+ call SuicuneFrameIterator
+ call DelayFrame
+ jr .loop
+.done
+ ret
+; 10ed67