gb-tarot/tarot.asm

651 lines
25 KiB
NASM
Raw Normal View History

2025-01-02 22:59:10 -05:00
; From https://gbdev.io/gb-asm-tutorial/part1/hello_world.html
2025-01-04 09:23:01 -05:00
; FF80 CALL
; FF81 LOW
; FF82 HIGH
; FF83 RET
; pattern repeats for the first 16 bytes so we can have some call vectors for the scene system
DEF SCENE_SETUP EQU $FF81
DEF SCENE_UPDATE EQU SCENE_SETUP + 4 ; call then ret is 3+1 bytes
DEF SCENE_DRAW EQU SCENE_UPDATE + 4
DEF SCENE_TEARDOWN EQU SCENE_DRAW + 4
DEF rMYBTN EQU $FF90
DEF rMYBTNP EQU rMYBTN + 1
2025-01-02 22:59:10 -05:00
INCLUDE "hardware.inc"
SECTION "Header", ROM0[$100]
jp EntryPoint
ds $150 - @, 0 ; Make room for the header
EntryPoint:
; Shut down audio circuitry
ld a, 0
ld [rNR52], a
2025-01-04 09:23:01 -05:00
ld a, [Instructions] ; get the value of a call instruction so we can shove it into our handles
ld hl, SCENE_SETUP - 1
ld [hl], a
ld hl, SCENE_UPDATE - 1
ld [hl], a
ld hl, SCENE_DRAW - 1
ld [hl], a
ld hl, SCENE_TEARDOWN - 1
ld [hl], a
ld a, [Instructions + 3] ; get the value of a ret instruction
ld hl, SCENE_SETUP + 2
ld [hl], a
ld hl, SCENE_UPDATE + 2
ld [hl], a
ld hl, SCENE_DRAW + 2
ld [hl], a
ld hl, SCENE_TEARDOWN + 2
ld [hl], a
; set up our scene vectors
ld hl, SCENE_SETUP
ld de, CardReadSetup
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
ld hl, SCENE_UPDATE
ld de, CardReadUpdate
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
ld hl, SCENE_DRAW
ld de, CardReadDraw
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
ld hl, SCENE_TEARDOWN
ld de, CardReadTeardown
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
2025-01-02 22:59:10 -05:00
; Do not turn the LCD off outside of VBlank
WaitVBlank:
ld a, [rLY]
cp 144
jp c, WaitVBlank
2025-01-04 09:23:01 -05:00
call SCENE_SETUP - 1
Loop:
ld hl, rP1
ld [hl], P1F_GET_DPAD
ld a, [hl]
ld a, [hl]
ld a, [hl]
ld a, [hl]
cpl
and a, %00001111
ld b, a
ld [hl], P1F_GET_BTN
ld a, [hl]
ld a, [hl]
ld a, [hl]
ld a, [hl]
cpl
and a, %00001111
swap a
or a, b
ld b, a
ld a, [rMYBTN]
cpl
and a, b
ld [rMYBTNP], a
ld a, b
ld [rMYBTN], a
call SCENE_UPDATE - 1
ld b, 144
call AwaitLine
call SCENE_DRAW - 1
jp Loop
CardReadSetup:
; Turn the LCD off
2025-01-02 22:59:10 -05:00
ld a, 0
ld [rLCDC], a
2025-01-04 09:23:01 -05:00
ld hl, UITiles ; source
ld de, $8800 ; destination of copy
2025-01-02 22:59:10 -05:00
ld bc, UITilesEnd - UITiles ; length to copy
call CopyRange
2025-01-04 09:23:01 -05:00
ld hl, BGTiles ; source
ld de, $8000 ; destination of copy
2025-01-02 22:59:10 -05:00
ld bc, BGTilesEnd - BGTiles ; length to copy
call CopyRange
2025-01-04 09:23:01 -05:00
ld hl, LetterTiles ; map the small font into vram at ascii locations
ld de, $8000 + (127 + $21)*16
2025-01-02 22:59:10 -05:00
ld bc, LetterTilesEnd - LetterTiles
call CopyRange
2025-01-04 09:23:01 -05:00
ld hl, BigLetterTiles
ld de, $8000 + (128 + 16 + 32)*16
2025-01-02 22:59:10 -05:00
ld bc, BigLetterTilesEnd - BigLetterTiles
2025-01-04 09:23:01 -05:00
; call CopyRange
2025-01-02 22:59:10 -05:00
ld de, UITilemap ; origin
ld hl, $9800 ; destination
ld b, 18 ; height
ld c, 20 ; width
call CopyTilesToMap
2025-01-04 09:23:01 -05:00
2025-01-02 22:59:10 -05:00
ld de, BGTilemap ; origin
2025-01-04 09:23:01 -05:00
ld hl, $9800 + 32 + 1 ; destination
2025-01-02 22:59:10 -05:00
ld b, 16 ; height
ld c, 8 ; width
call CopyTilesToMap
2025-01-04 09:23:01 -05:00
; TheFool is a sequence of length-prefixed strings in memory
; so when we're done writing one, hl will be correctly placed to read the next
; length-prefixed print doesn't require passing a length
; so all we have to set is the destination for each
ld hl, TheFool
ld de, $9800 + 32*5 + 10
call PrintString
ld de, $9800 + 32*6 + 10
call PrintString
ld de, $9800 + 32*7 + 10
call PrintString
ld de, $9800 + 32*8 + 10
call PrintString
2025-01-02 22:59:10 -05:00
ld de, BigLetters
ld hl, $9800 + 32*1 + 10
ld b, 2
ld c, 8
call CopyTilesToMap
2025-01-04 09:23:01 -05:00
2025-01-02 22:59:10 -05:00
; Turn the LCD on
ld a, LCDCF_BLK01 | LCDCF_ON | LCDCF_BGON
ld [rLCDC], a
; During the first (blank) frame, initialize display registers
ld a, %11100100
ld [rBGP], a
2025-01-04 09:23:01 -05:00
ld a, 0
ldh [$FF90+2], a
ret ; return from cardreadsetup
CardReadUpdate:
ldh a, [rMYBTNP]
and a, %0000_1000 ; check if down is held
jp z, CardReadUpdateDoneDown
ldh a, [$FF90+2]
inc a ; increment when they press down because the stack has card 0 at the top
ldh [$FF90+2], a
CardReadUpdateDoneDown:
ldh a, [rMYBTNP]
and a, %0000_0100
jp z, CardReadUpdateDoneUp
ldh a, [$FF90+2]
dec a ; decrement when they press up because the stack has card 0 at the top
ldh [$FF90+2], a
CardReadUpdateDoneUp:
ldh a, [$FF90+2]
cp a, 22
jp nz, CardReadUpdateDoneZero
ld a, 0
ldh [$FF90+2], a
CardReadUpdateDoneZero:
cp a, $FF
jp nz, CardReadUpdateReturn
ld a, 21
ldh [$FF90+2], a
CardReadUpdateReturn:
ret
CardReadDraw:
ld b, 11 ; 11 rows, and we stop before drawing row zero
ld hl, $9800+32*4+19 ; start point
ld de, 32 ; stride
CardReadDrawCopyTile:
ld a, $81
ld [hl], a
add hl, de
dec b
jp nz, CardReadDrawCopyTile
ld a, $87
ld [hl], a ; draw the cap at the end
CardReadDrawSelectedTile:
ldh a, [$FF90+2]
ld b, a
srl b
ld hl, $9800+32*4+19 ; start point
ld de, 32 ; stride
jp z, CardReadDrawDrawSelectedTile
CardReadDrawCountDownTile:
add hl, de
dec b
jp nz, CardReadDrawCountDownTile
CardReadDrawDrawSelectedTile:
ldh a, [$FF90+2]
and a, 1
jp z, CardReadDraw_PickTileWithTop
ld a, $90
ld [hl], a
add hl, de
ld a, $81
cp a, [hl]
ld a, $91
ld [hl], a
jp z, CardReadDrawReturn
ld a, $92
ld [hl], a
jp CardReadDrawReturn
CardReadDraw_PickTileWithTop:
ld a, $82
ld [hl], a
CardReadDrawReturn:
ret
CardReadTeardown:
ret
2025-01-02 22:59:10 -05:00
2025-01-04 09:23:01 -05:00
Instructions:
call Instructions + 2
ret
TheFool:
db 8, "THE FOOL"
db 6, "-begin"
db 5, "-leap"
db 8, "-naivete"
TheMagician:
db 3, "THE"
db 8, "MAGICIAN"
; subroutines
2025-01-02 22:59:10 -05:00
2025-01-04 09:23:01 -05:00
PrintString: ; write ascii string which has been prefixed by its length.
ld b, [hl]
inc hl
PrintBChars: ;write ascii characters. will not respect newlines or anything like that
; hl should be the source of ascii text
; de should be the location in the tile map to start writing at
; b should be the length
ld a, [hli]
or a, %10000000
ld [de], a
inc de
dec b
jp nz, PrintBChars
ret
2025-01-02 22:59:10 -05:00
2025-01-04 09:23:01 -05:00
AwaitLine: ; put the line you want to reach in b
ld a, [rLY]
cp b
jp nz, AwaitLine
ret
2025-01-02 22:59:10 -05:00
CopyRange:
2025-01-04 09:23:01 -05:00
; hl is source
; de is destination
2025-01-02 22:59:10 -05:00
; bc is length to copy
2025-01-04 09:23:01 -05:00
ld a, [hli]
ld [de], a
2025-01-02 22:59:10 -05:00
inc de
dec bc
2025-01-04 09:23:01 -05:00
ld a, b
2025-01-02 22:59:10 -05:00
or a, c ; check if bc is zero
jp nz, CopyRange
ret
CopyTilesToMap:
; copy tiles from where they are linearly packed at an origin (de)
; to a rectangle in the tilemap in vram (hl)
; assuming it has height in b and width in c.
push bc
CopyTile:
ld a, [de] ; load from the tile map into a
ld [hl], a ; load from a into the destination
inc hl ; this is slower than using hli but i'm trying to work with this here
inc de
dec c
; check if we've completed a line?
ld a, 0
or a, c ; check if c is zero, if it's not zero go back and copy more bytes
jp nz, CopyTile
DoneWithLine:
pop bc
2025-01-04 09:23:01 -05:00
2025-01-02 22:59:10 -05:00
ld a, l
add a, 32
2025-01-04 09:23:01 -05:00
ld l, a
ld a, h
2025-01-02 22:59:10 -05:00
adc a, 0
ld h, a
ld a, l
sub a, c
2025-01-04 09:23:01 -05:00
ld l, a
ld a, h
2025-01-02 22:59:10 -05:00
sbc a, 0
2025-01-04 09:23:01 -05:00
ld h, a
2025-01-02 22:59:10 -05:00
2025-01-04 09:23:01 -05:00
dec b
jp nz, CopyTilesToMap
ret
2025-01-02 22:59:10 -05:00
SECTION "Tile data", ROM0
2025-01-04 09:23:01 -05:00
Spreads:
2025-01-02 22:59:10 -05:00
UITiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $0f,$0f,$10,$10,$10,$10,$10,$10,$0f,$0f,$10,$10,$10,$10,$10,$10
db $7f,$7f,$80,$80,$80,$80,$80,$80,$7f,$7f,$10,$10,$10,$10,$10,$10
db $00,$3c,$3c,$7e,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3
db $42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$3c,$7e,$00,$3c
db $00,$3c,$3c,$7e,$42,$c3,$5a,$db,$5a,$db,$5a,$db,$5a,$db,$5a,$db
db $5a,$db,$5a,$db,$5a,$db,$5a,$db,$5a,$db,$42,$c3,$3c,$7e,$00,$3c
db $0f,$0f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ce,$f0,$c6,$f8,$0e,$f0,$16,$e8,$5e,$a0,$fe,$00,$fc,$00,$00,$00
db $ce,$f0,$c6,$f8,$ce,$f0,$c6,$f8,$ce,$f0,$c6,$f8,$ce,$f0,$c6,$f8
db $00,$00,$fc,$00,$fe,$00,$ae,$50,$1e,$e0,$06,$f8,$ce,$f0,$c6,$f8
db $00,$00,$3f,$00,$7f,$00,$7a,$05,$68,$17,$70,$0f,$63,$1f,$73,$0f
db $63,$1f,$73,$0f,$60,$1f,$78,$07,$75,$0a,$7f,$00,$3f,$00,$00,$00
db $00,$00,$ff,$00,$ff,$00,$aa,$55,$00,$ff,$00,$ff,$ff,$ff,$ff,$ff
db $63,$1f,$73,$0f,$63,$1f,$73,$0f,$63,$1f,$73,$0f,$63,$1f,$73,$0f
db $ff,$ff,$ff,$ff,$00,$ff,$00,$ff,$55,$aa,$ff,$00,$ff,$00,$00,$00
2025-01-04 09:23:01 -05:00
db $0f,$0f,$10,$10,$10,$10,$10,$10,$7f,$7f,$80,$80,$80,$80,$80,$80
db $7f,$7f,$10,$10,$10,$10,$10,$10,$0f,$0f,$10,$10,$10,$10,$10,$10
db $7f,$7f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
2025-01-02 22:59:10 -05:00
UITilesEnd:
BGTiles:
2025-01-04 09:23:01 -05:00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
2025-01-02 22:59:10 -05:00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$01,$00,$02
db $00,$00,$00,$00,$00,$1f,$00,$60,$00,$80,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$c0,$00,$20,$00,$10,$00,$10,$00,$08
db $00,$02,$00,$02,$00,$02,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$60,$00,$1f
db $00,$08,$00,$08,$00,$08,$00,$10,$00,$10,$00,$20,$00,$c0,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01
db $00,$00,$00,$00,$00,$00,$01,$1f,$0e,$3e,$10,$60,$3c,$c4,$ff,$03
db $00,$00,$00,$00,$00,$00,$f8,$f8,$00,$3c,$7c,$7c,$00,$38,$20,$21
db $00,$01,$01,$02,$01,$02,$03,$04,$07,$08,$0f,$10,$1f,$20,$1f,$20
db $f0,$0c,$e0,$10,$e0,$10,$c0,$20,$c0,$21,$80,$43,$80,$42,$01,$85
db $f0,$fe,$20,$2b,$10,$53,$e8,$eb,$8c,$8e,$42,$43,$00,$01,$00,$03
db $00,$00,$00,$00,$00,$80,$00,$c0,$00,$40,$00,$20,$00,$60,$00,$20
db $3f,$40,$3e,$41,$1d,$22,$0a,$14,$01,$0c,$02,$08,$05,$08,$02,$08
2025-01-04 09:23:01 -05:00
db $00,$f4,$a0,$1a,$50,$05,$a8,$02,$50,$05,$aa,$00,$55,$00,$aa,$01
2025-01-02 22:59:10 -05:00
db $80,$85,$00,$05,$00,$81,$00,$63,$02,$3d,$1f,$e0,$1c,$e3,$bd,$3c
db $00,$20,$00,$a0,$00,$20,$00,$20,$1f,$3f,$00,$aa,$01,$ab,$01,$6b
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$c0,$c0,$c0,$c0
db $05,$08,$02,$08,$04,$0b,$00,$0c,$00,$08,$00,$00,$00,$00,$00,$00
2025-01-04 09:23:01 -05:00
db $54,$01,$a9,$02,$00,$fe,$01,$02,$00,$02,$01,$04,$02,$04,$01,$04
2025-01-02 22:59:10 -05:00
db $46,$5c,$8f,$8e,$82,$8e,$86,$8d,$8c,$89,$ca,$b9,$7c,$89,$72,$8d
db $a6,$1e,$50,$08,$a8,$04,$54,$02,$a8,$02,$54,$02,$a8,$02,$54,$02
db $20,$20,$10,$10,$08,$08,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04
2025-01-04 09:23:01 -05:00
db $02,$04,$01,$04,$02,$04,$01,$04,$02,$04,$01,$04,$02,$04,$01,$06
2025-01-02 22:59:10 -05:00
db $78,$85,$3c,$43,$bc,$43,$3c,$43,$be,$41,$5e,$21,$9e,$21,$5d,$22
db $a8,$02,$54,$02,$a8,$02,$54,$02,$a8,$02,$50,$04,$a8,$04,$50,$04
db $04,$04,$04,$04,$04,$04,$04,$04,$04,$0c,$08,$08,$08,$18,$10,$30
2025-01-04 09:23:01 -05:00
db $00,$02,$01,$02,$00,$03,$00,$07,$00,$18,$00,$60,$00,$80,$00,$00
db $9c,$22,$1d,$62,$0c,$b2,$05,$1a,$04,$0a,$01,$06,$00,$82,$01,$82
2025-01-02 22:59:10 -05:00
db $a8,$04,$50,$04,$a8,$05,$53,$0f,$a0,$08,$50,$08,$a0,$08,$50,$08
db $20,$60,$40,$c0,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
2025-01-04 09:23:01 -05:00
db $00,$82,$01,$82,$00,$82,$01,$82,$00,$c1,$00,$c0,$00,$60,$00,$70
2025-01-02 22:59:10 -05:00
db $a0,$08,$40,$38,$80,$48,$00,$84,$00,$04,$00,$04,$00,$04,$00,$08
db $00,$30,$00,$30,$00,$30,$00,$10,$00,$10,$00,$10,$00,$10,$00,$10
db $00,$08,$00,$08,$00,$08,$00,$08,$00,$08,$00,$10,$00,$10,$00,$08
db $00,$10,$00,$10,$00,$10,$00,$10,$00,$10,$00,$08,$00,$04,$00,$06
db $00,$08,$00,$08,$00,$08,$00,$04,$00,$0c,$00,$0c,$00,$38,$38,$c4
db $00,$03,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $78,$84,$fc,$02,$7e,$81,$3e,$41,$1f,$20,$0f,$10,$07,$08,$03,$04
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$80,$40,$c0,$20
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$00,$18
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$fc,$00,$03
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f0
db $01,$02,$00,$01,$00,$03,$00,$0f,$00,$70,$00,$80,$00,$c0,$00,$e0
db $c0,$30,$e0,$18,$00,$fc,$00,$0c,$00,$04,$00,$04,$00,$04,$00,$04
db $00,$08,$00,$04,$00,$04,$00,$04,$00,$04,$00,$04,$00,$03,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80
db $00,$0f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$ff,$00,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$fc,$00,$83,$00,$7c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$80,$00,$00,$00,$00,$00,$80,$00,$c0,$00,$20,$00,$20,$00,$20
db $00,$20,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
2025-01-04 09:23:01 -05:00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$02,$00,$03
db $00,$0c,$00,$10,$00,$20,$00,$40,$00,$80,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$02,$00,$0b,$00,$2f,$00,$b8,$00,$e0
db $00,$01,$01,$02,$01,$02,$03,$04,$07,$08,$07,$08,$0f,$10,$1f,$20
db $00,$30,$00,$30,$00,$18,$00,$0c,$00,$0e,$00,$06,$00,$03,$00,$01
db $1f,$e0,$3e,$41,$1c,$22,$18,$24,$00,$18,$00,$08,$00,$08,$00,$90
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3c,$00,$33
db $00,$e0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$83,$00,$8e,$00,$d8,$80,$70,$c0,$30,$c0,$20,$80,$40,$00,$80
db $00,$80,$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,$01,$00,$06
db $00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
2025-01-02 22:59:10 -05:00
BGTilesEnd:
LetterTiles:
2025-01-04 10:11:23 -05:00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
2025-01-04 09:23:01 -05:00
db $04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$00,$00,$04,$04
db $28,$28,$28,$28,$28,$28,$08,$08,$00,$00,$00,$00,$00,$00,$00,$00
db $04,$04,$24,$24,$2c,$2c,$28,$28,$fc,$fc,$28,$28,$fe,$fe,$28,$28
db $38,$38,$60,$60,$e0,$e0,$70,$70,$30,$30,$20,$20,$e0,$e0,$60,$60
db $e0,$e0,$b0,$b0,$b2,$b2,$e4,$e4,$08,$08,$16,$16,$35,$35,$27,$27
db $1c,$1c,$74,$74,$60,$60,$38,$38,$3d,$3d,$37,$37,$3e,$3e,$3c,$3c
db $00,$00,$18,$18,$10,$10,$10,$10,$00,$00,$00,$00,$00,$00,$00,$00
db $08,$08,$10,$10,$20,$20,$20,$20,$20,$20,$20,$20,$30,$30,$10,$10
db $00,$00,$00,$00,$0e,$0e,$02,$02,$02,$02,$06,$06,$0c,$0c,$18,$18
db $02,$02,$46,$46,$6c,$6c,$78,$78,$7c,$7c,$68,$68,$0c,$0c,$00,$00
db $08,$08,$08,$08,$08,$08,$08,$08,$7c,$7c,$08,$08,$08,$08,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$08,$08,$08,$08,$18,$18,$10,$10
db $00,$00,$00,$00,$00,$00,$3c,$3c,$20,$20,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$20,$20,$00,$00
db $00,$00,$00,$00,$02,$02,$04,$04,$0c,$0c,$08,$08,$10,$10,$10,$10
db $00,$00,$00,$00,$3c,$3c,$24,$24,$24,$24,$3c,$3c,$00,$00,$00,$00
db $00,$00,$04,$04,$04,$04,$04,$04,$04,$04,$0c,$0c,$08,$08,$00,$00
db $00,$00,$0c,$0c,$12,$12,$12,$12,$02,$02,$0e,$0e,$07,$07,$00,$00
db $00,$00,$00,$00,$38,$38,$08,$08,$18,$18,$18,$18,$00,$00,$00,$00
db $02,$02,$32,$32,$26,$26,$3e,$3e,$24,$24,$04,$04,$00,$00,$00,$00
db $00,$00,$00,$00,$3e,$3e,$20,$20,$38,$38,$08,$08,$38,$38,$20,$20
db $00,$00,$00,$00,$30,$30,$20,$20,$58,$58,$68,$68,$7c,$7c,$3c,$3c
db $00,$00,$1e,$1e,$03,$03,$03,$03,$02,$02,$04,$04,$04,$04,$00,$00
db $00,$00,$3c,$3c,$24,$24,$38,$38,$18,$18,$1c,$1c,$38,$38,$00,$00
db $00,$00,$00,$00,$3e,$3e,$64,$64,$7c,$7c,$0c,$0c,$08,$08,$10,$10
db $00,$00,$00,$00,$10,$10,$00,$00,$00,$00,$10,$10,$10,$10,$00,$00
db $00,$00,$08,$08,$00,$00,$00,$00,$0c,$0c,$04,$04,$0c,$0c,$18,$18
db $00,$00,$04,$04,$1c,$1c,$30,$30,$60,$60,$78,$78,$1e,$1e,$02,$02
db $00,$00,$00,$00,$00,$00,$3c,$3c,$40,$40,$78,$78,$00,$00,$00,$00
db $00,$00,$20,$20,$30,$30,$18,$18,$0c,$0c,$1c,$1c,$30,$30,$00,$00
db $0c,$0c,$3c,$3c,$24,$24,$0c,$0c,$08,$08,$08,$08,$00,$00,$08,$08
db $00,$00,$04,$04,$1e,$1e,$3f,$3f,$36,$36,$3e,$3e,$1c,$1c,$00,$00
2025-01-02 22:59:10 -05:00
db $00,$00,$10,$10,$28,$28,$28,$28,$7c,$7c,$44,$44,$82,$82,$82,$82
db $00,$00,$7c,$7c,$22,$22,$22,$22,$3c,$3c,$22,$22,$22,$22,$7c,$7c
db $00,$00,$3c,$3c,$42,$42,$40,$40,$40,$40,$40,$40,$42,$42,$3c,$3c
db $00,$00,$78,$78,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$78,$78
db $00,$00,$7c,$7c,$44,$44,$40,$40,$78,$78,$40,$40,$44,$44,$7c,$7c
db $00,$00,$7c,$7c,$24,$24,$20,$20,$38,$38,$20,$20,$20,$20,$20,$20
db $00,$00,$38,$38,$44,$44,$40,$40,$4c,$4c,$44,$44,$44,$44,$38,$38
db $00,$00,$44,$44,$44,$44,$44,$44,$7c,$7c,$44,$44,$44,$44,$44,$44
db $00,$00,$38,$38,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$38,$38
db $00,$00,$0e,$0e,$04,$04,$04,$04,$04,$04,$04,$04,$44,$44,$38,$38
2025-01-04 09:23:01 -05:00
db $00,$00,$48,$48,$50,$50,$60,$60,$60,$60,$50,$50,$48,$48,$44,$44
db $00,$00,$70,$70,$20,$20,$20,$20,$20,$20,$20,$20,$22,$22,$7e,$7e
2025-01-02 22:59:10 -05:00
db $00,$00,$42,$42,$66,$66,$5a,$5a,$42,$42,$42,$42,$42,$42,$42,$42
db $00,$00,$64,$64,$64,$64,$54,$54,$54,$54,$4c,$4c,$4c,$4c,$44,$44
db $00,$00,$38,$38,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$38,$38
db $00,$00,$78,$78,$44,$44,$44,$44,$44,$44,$78,$78,$40,$40,$40,$40
db $00,$00,$38,$38,$44,$44,$44,$44,$44,$44,$4c,$4c,$44,$44,$3a,$3a
db $00,$00,$78,$78,$44,$44,$44,$44,$7c,$7c,$48,$48,$48,$48,$44,$44
db $00,$00,$1c,$1c,$22,$22,$20,$20,$1c,$1c,$02,$02,$62,$62,$1c,$1c
db $00,$00,$7c,$7c,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10
2025-01-04 10:11:23 -05:00
db $00,$00,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$3c,$3c
2025-01-02 22:59:10 -05:00
db $00,$00,$44,$44,$44,$44,$28,$28,$28,$28,$28,$28,$10,$10,$10,$10
db $00,$00,$82,$82,$82,$82,$44,$44,$54,$54,$54,$54,$28,$28,$28,$28
db $00,$00,$44,$44,$28,$28,$28,$28,$10,$10,$28,$28,$28,$28,$44,$44
db $00,$00,$44,$44,$28,$28,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10
db $00,$00,$7c,$7c,$08,$08,$08,$08,$10,$10,$20,$20,$20,$20,$7c,$7c
2025-01-04 10:11:23 -05:00
db $00,$00,$3c,$3c,$20,$20,$20,$20,$20,$20,$20,$20,$3c,$3c,$00,$00
2025-01-04 09:23:01 -05:00
db $00,$00,$c0,$c0,$c0,$c0,$40,$40,$60,$60,$20,$20,$10,$10,$18,$18
db $18,$18,$0f,$0f,$03,$03,$02,$02,$02,$02,$02,$02,$12,$12,$1e,$1e
db $08,$08,$1c,$1c,$34,$34,$04,$04,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3e,$3e,$00,$00
db $20,$20,$18,$18,$0c,$0c,$04,$04,$00,$00,$00,$00,$00,$00,$00,$00
2025-01-04 10:11:23 -05:00
db $00,$00,$00,$00,$38,$38,$04,$04,$3c,$3c,$44,$44,$3a,$3a,$00,$00
db $00,$00,$20,$20,$20,$20,$3c,$3c,$22,$22,$22,$22,$3c,$3c,$00,$00
db $00,$00,$00,$00,$1c,$1c,$20,$20,$20,$20,$20,$20,$1c,$1c,$00,$00
db $00,$00,$04,$04,$04,$04,$3c,$3c,$44,$44,$44,$44,$3c,$3c,$00,$00
db $00,$00,$00,$00,$38,$38,$44,$44,$78,$78,$40,$40,$3c,$3c,$00,$00
db $00,$00,$0c,$0c,$10,$10,$38,$38,$10,$10,$10,$10,$10,$10,$00,$00
db $00,$00,$00,$00,$3c,$3c,$44,$44,$44,$44,$3c,$3c,$04,$04,$38,$38
db $00,$00,$40,$40,$40,$40,$78,$78,$44,$44,$44,$44,$44,$44,$00,$00
db $00,$00,$10,$10,$00,$00,$30,$30,$10,$10,$10,$10,$38,$38,$00,$00
db $00,$00,$04,$04,$00,$00,$04,$04,$04,$04,$04,$04,$24,$24,$18,$18
db $00,$00,$20,$20,$28,$28,$28,$28,$30,$30,$28,$28,$24,$24,$00,$00
db $00,$00,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$0c,$0c,$00,$00
db $00,$00,$00,$00,$68,$68,$54,$54,$54,$54,$54,$54,$54,$54,$00,$00
db $00,$00,$00,$00,$78,$78,$44,$44,$44,$44,$44,$44,$44,$44,$00,$00
db $00,$00,$00,$00,$38,$38,$44,$44,$44,$44,$44,$44,$38,$38,$00,$00
db $00,$00,$00,$00,$78,$78,$44,$44,$44,$44,$78,$78,$40,$40,$40,$40
db $00,$00,$00,$00,$3c,$3c,$44,$44,$44,$44,$3c,$3c,$04,$04,$06,$06
db $00,$00,$00,$00,$1c,$1c,$20,$20,$20,$20,$20,$20,$20,$20,$00,$00
db $00,$00,$00,$00,$38,$38,$40,$40,$38,$38,$04,$04,$78,$78,$00,$00
db $00,$00,$10,$10,$38,$38,$10,$10,$10,$10,$10,$10,$0c,$0c,$00,$00
db $00,$00,$00,$00,$44,$44,$44,$44,$44,$44,$44,$44,$3c,$3c,$00,$00
db $00,$00,$00,$00,$44,$44,$44,$44,$44,$44,$28,$28,$10,$10,$00,$00
db $00,$00,$00,$00,$44,$44,$54,$54,$54,$54,$54,$54,$28,$28,$00,$00
db $00,$00,$00,$00,$44,$44,$28,$28,$10,$10,$28,$28,$44,$44,$00,$00
db $00,$00,$00,$00,$44,$44,$44,$44,$44,$44,$3c,$3c,$04,$04,$38,$38
db $00,$00,$00,$00,$7c,$7c,$08,$08,$10,$10,$20,$20,$7c,$7c,$00,$00
2025-01-04 09:23:01 -05:00
db $0e,$0e,$18,$18,$0c,$0c,$0c,$0c,$38,$38,$08,$08,$18,$18,$1c,$1c
db $20,$20,$30,$30,$20,$20,$10,$10,$10,$10,$10,$10,$00,$00,$00,$00
db $30,$30,$38,$38,$10,$10,$10,$10,$10,$10,$18,$18,$18,$18,$30,$30
db $00,$00,$00,$00,$32,$32,$3c,$3c,$78,$78,$00,$00,$00,$00,$00,$00
db $06,$06,$7c,$7c,$5f,$5f,$5b,$5b,$5e,$5e,$72,$72,$03,$03,$00,$00
2025-01-02 22:59:10 -05:00
LetterTilesEnd:
BigLetterTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ee,$ee,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44
db $7c,$7c,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$ee,$ee
db $10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$38,$38
db $38,$38,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10
db $70,$70,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$42,$42,$fe,$fe
db $fe,$fe,$42,$42,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40
db $48,$48,$44,$44,$44,$44,$44,$44,$44,$44,$42,$42,$42,$42,$e3,$e3
db $fc,$fc,$42,$42,$42,$42,$42,$42,$42,$42,$7c,$7c,$48,$48,$48,$48
db $42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$3c,$3c
db $3c,$3c,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42
db $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$70,$70
db $7c,$7c,$22,$22,$22,$22,$22,$22,$22,$22,$3c,$3c,$20,$20,$20,$20
db $38,$38,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$ee,$ee
db $10,$10,$28,$28,$28,$28,$28,$28,$28,$28,$28,$28,$28,$28,$28,$28
db $ce,$ce,$44,$44,$64,$64,$54,$54,$54,$54,$54,$54,$54,$54,$54,$54
db $54,$54,$54,$54,$54,$54,$54,$54,$54,$54,$4c,$4c,$44,$44,$e6,$e6
db $fe,$fe,$92,$92,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10
db $7e,$7e,$22,$22,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
db $38,$38,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$70,$70
db $70,$70,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
db $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$22,$22,$7e,$7e
db $42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$fc,$fc
db $f8,$f8,$44,$44,$42,$42,$42,$42,$44,$44,$78,$78,$44,$44,$42,$42
db $ee,$ee,$44,$44,$44,$44,$44,$44,$44,$44,$7c,$7c,$44,$44,$44,$44
db $44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$ee,$ee
db $7e,$7e,$22,$22,$20,$20,$20,$20,$20,$20,$38,$38,$20,$20,$20,$20
db $fe,$fe,$42,$42,$40,$40,$40,$40,$40,$40,$70,$70,$40,$40,$40,$40
db $40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$40,$42,$42,$fe,$fe
db $3c,$3c,$42,$42,$42,$42,$42,$42,$40,$40,$40,$40,$40,$40,$40,$40
db $40,$40,$40,$40,$40,$40,$40,$40,$42,$42,$42,$42,$42,$42,$3c,$3c
db $42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$44,$44,$f8,$f8
db $f8,$f8,$44,$44,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42
db $80,$80,$80,$80,$8f,$8f,$8a,$8a,$82,$82,$82,$82,$44,$44,$38,$38
db $38,$38,$44,$44,$82,$82,$82,$82,$82,$82,$80,$80,$80,$80,$80,$80
db $04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$44,$44,$44,$44,$38,$38
db $0e,$0e,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04
db $ee,$ee,$44,$44,$44,$44,$48,$48,$50,$50,$60,$60,$50,$50,$48,$48
db $54,$54,$54,$54,$54,$54,$54,$54,$44,$44,$44,$44,$44,$44,$ee,$ee
db $c6,$c6,$6c,$6c,$54,$54,$54,$54,$54,$54,$54,$54,$54,$54,$54,$54
db $42,$42,$42,$42,$42,$42,$42,$42,$4a,$4a,$4c,$4c,$4c,$4c,$36,$36
db $3c,$3c,$42,$42,$42,$42,$40,$40,$40,$40,$3c,$3c,$02,$02,$02,$02
db $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$42,$42,$42,$42,$3c,$3c
db $44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$28,$28,$10,$10
db $44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$38,$38
db $44,$44,$54,$54,$54,$54,$54,$54,$54,$54,$54,$54,$54,$54,$28,$28
db $10,$10,$10,$10,$28,$28,$28,$28,$28,$28,$44,$44,$44,$44,$ee,$ee
db $ee,$ee,$44,$44,$44,$44,$28,$28,$28,$28,$28,$28,$10,$10,$10,$10
db $ee,$ee,$44,$44,$44,$44,$28,$28,$10,$10,$10,$10,$10,$10,$10,$10
db $fe,$fe,$82,$82,$04,$04,$04,$04,$08,$08,$08,$08,$08,$08,$10,$10
db $10,$10,$20,$20,$20,$20,$20,$20,$40,$40,$40,$40,$82,$82,$fe,$fe
BigLetterTilesEnd:
SECTION "Tilemap", ROM0
UITilemap:
db $8b, $8d, $8d, $8d, $8d, $8d, $8d, $8d, $8d, $8a, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
2025-01-04 09:23:01 -05:00
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $85, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $83, $86, $83, $83, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $84, $83, $84, $84, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $84, $80, $80, $80, $80, $80, $80
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
db $8c, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $88, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80
2025-01-02 22:59:10 -05:00
UITilemapEnd:
BGTilemap:
2025-01-04 09:23:01 -05:00
db $00, $00, $01, $02, $03, $00, $00, $00
2025-01-02 22:59:10 -05:00
db $00, $00, $04, $05, $06, $00, $00, $00
db $00, $00, $07, $08, $09, $00, $00, $00
db $00, $00, $0a, $0b, $0c, $0d, $00, $00
db $00, $00, $0e, $0f, $10, $11, $12, $00
db $00, $00, $13, $14, $15, $16, $17, $00
db $00, $00, $00, $18, $19, $1a, $1b, $00
2025-01-04 09:23:01 -05:00
db $00, $00, $42, $1c, $1d, $1e, $1f, $00
db $00, $38, $39, $3a, $20, $21, $00, $00
db $3e, $3b, $40, $00, $22, $23, $00, $00
db $3c, $3d, $41, $00, $24, $25, $00, $00
db $43, $3f, $00, $00, $26, $27, $28, $00
db $00, $29, $2a, $2b, $00, $2c, $2d, $00
db $00, $2e, $2f, $30, $31, $32, $33, $34
db $00, $35, $36, $00, $00, $00, $00, $00
db $00, $00, $37, $00, $00, $00, $00, $00
2025-01-02 22:59:10 -05:00
BGTilemapEnd:
BigLetters:
db $c1, $b1, $b6, $b0, $c2, $ba, $ba, $c4
db $b3, $b2, $b5, $b0, $c3, $b9, $b9, $c5
BigLettersEnd: