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
|
2025-01-05 18:33:30 -05:00
|
|
|
DEF rMYBTN EQU $FFA0
|
2025-01-04 09:23:01 -05:00
|
|
|
DEF rMYBTNP EQU rMYBTN + 1
|
2025-01-05 18:33:30 -05:00
|
|
|
|
|
|
|
DEF INTERRUPT_LCD EQU $FF91
|
|
|
|
|
|
|
|
|
|
|
|
; tile index variables
|
|
|
|
DEF vSelectedTileIndex EQU $FFA0+2
|
|
|
|
DEF vPreviousCardIndex EQU $FFA0+3
|
|
|
|
|
|
|
|
; variables for safe transfer async function
|
|
|
|
DEF vSafeCopySource EQU $FFA0+4
|
|
|
|
DEF vSafeCopyDest EQU vSafeCopySource + 2
|
|
|
|
DEF vSafeCopyCount EQU vSafeCopyDest + 2 ; check this for safe transfer being complete
|
2025-01-07 13:15:35 -05:00
|
|
|
DEF vSafeCopyOriginalCount EQU vSafeCopyCount + 2
|
2025-01-05 18:33:30 -05:00
|
|
|
; stash previous interrupt state before using the interrupts
|
2025-01-07 13:15:35 -05:00
|
|
|
DEF vSafeCopyLYC EQU vSafeCopyOriginalCount + 2 ; stashes $FF45, the LYC register
|
2025-01-05 18:33:30 -05:00
|
|
|
DEF vSafeCopySTAT EQU vSafeCopyLYC + 1 ; stashes $FF41, the STAT register
|
|
|
|
DEF vSafeCopyInterruptFirst EQU vSafeCopySTAT + 1 ; stashes $0048 the STAT interrupt
|
|
|
|
DEF vSafeCopyInterruptSecond EQU vSafeCopyInterruptFirst + 1
|
|
|
|
DEF vSafeCopyInterruptEnable EQU vSafeCopyInterruptSecond + 1 ; stashes $FFFF, which interrupts are enabled
|
|
|
|
|
2025-01-02 22:59:10 -05:00
|
|
|
INCLUDE "hardware.inc"
|
2025-01-05 18:33:30 -05:00
|
|
|
SECTION "Interrupts", ROM0[$0]
|
|
|
|
ds $48 - @, 0
|
|
|
|
call INTERRUPT_LCD - 1
|
|
|
|
ret
|
2025-01-02 22:59:10 -05:00
|
|
|
|
|
|
|
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
|
2025-01-05 18:33:30 -05:00
|
|
|
ld hl, INTERRUPT_LCD - 1
|
|
|
|
ld [hl], a
|
2025-01-04 09:23:01 -05:00
|
|
|
|
|
|
|
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
|
2025-01-05 18:33:30 -05:00
|
|
|
ld hl, INTERRUPT_LCD + 2
|
|
|
|
ld [hl], a
|
2025-01-04 09:23:01 -05:00
|
|
|
|
|
|
|
; 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-05 18:33:30 -05:00
|
|
|
|
|
|
|
; set up the interrupt vector to just be ret.
|
|
|
|
ld hl, INTERRUPT_LCD
|
|
|
|
ld de, INTERRUPT_LCD + 2
|
|
|
|
ld a, e
|
|
|
|
ld [hl+], a
|
|
|
|
ld a, d
|
|
|
|
ld [hl+], a
|
2025-01-04 09:23:01 -05:00
|
|
|
|
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:
|
2025-01-05 18:33:30 -05:00
|
|
|
di
|
2025-01-04 09:23:01 -05:00
|
|
|
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
|
2025-01-07 13:15:35 -05:00
|
|
|
|
2025-01-04 09:23:01 -05:00
|
|
|
ld b, 144
|
|
|
|
call AwaitLine
|
|
|
|
|
|
|
|
call SCENE_DRAW - 1
|
|
|
|
jp Loop
|
|
|
|
|
|
|
|
|
2025-01-04 14:34:05 -05:00
|
|
|
;; CARD READ PAGE STARTS HERE
|
2025-01-04 09:23:01 -05:00
|
|
|
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
|
2025-01-05 18:33:30 -05:00
|
|
|
call CopyRangeUnsafe
|
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
|
2025-01-05 18:33:30 -05:00
|
|
|
call CopyRangeUnsafe
|
2025-01-04 09:23:01 -05:00
|
|
|
|
2025-01-07 13:15:35 -05:00
|
|
|
ld hl, UITilemap ; origin
|
|
|
|
ld de, $9800 ; destination
|
2025-01-02 22:59:10 -05:00
|
|
|
ld b, 18 ; height
|
|
|
|
ld c, 20 ; width
|
2025-01-07 13:15:35 -05:00
|
|
|
call CopyTilesToMapUnsafe
|
|
|
|
|
|
|
|
;ld hl, FoolTiles
|
|
|
|
;ld de, $8000
|
|
|
|
;ld bc, FoolTilesEnd - FoolTiles
|
|
|
|
;call CopyRangeUnsafe
|
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-05 18:33:30 -05:00
|
|
|
ld a, $FF
|
|
|
|
ldh [vPreviousCardIndex], a
|
2025-01-04 09:23:01 -05:00
|
|
|
ld a, 0
|
2025-01-04 14:34:05 -05:00
|
|
|
ldh [vSelectedTileIndex], a
|
2025-01-05 18:33:30 -05:00
|
|
|
call LoadCardData
|
|
|
|
ei
|
2025-01-04 09:23:01 -05:00
|
|
|
ret ; return from cardreadsetup
|
|
|
|
|
|
|
|
CardReadUpdate:
|
|
|
|
ldh a, [rMYBTNP]
|
2025-01-05 18:33:30 -05:00
|
|
|
and a, %0000_1000 ; select the down key
|
2025-01-07 13:15:35 -05:00
|
|
|
jp z, :+ ; skip the following code if down is not pressed
|
2025-01-04 14:34:05 -05:00
|
|
|
ldh a, [vSelectedTileIndex]
|
2025-01-07 13:15:35 -05:00
|
|
|
inc a ; increment when they press down because the deck has card 0 at the top
|
2025-01-04 14:34:05 -05:00
|
|
|
ldh [vSelectedTileIndex], a
|
2025-01-07 13:15:35 -05:00
|
|
|
:
|
2025-01-04 09:23:01 -05:00
|
|
|
ldh a, [rMYBTNP]
|
2025-01-05 18:33:30 -05:00
|
|
|
and a, %0000_0100 ; select the up key
|
2025-01-07 13:15:35 -05:00
|
|
|
jp z, :+ ; skip the following code if up is not pressed
|
2025-01-04 14:34:05 -05:00
|
|
|
ldh a, [vSelectedTileIndex]
|
2025-01-07 13:15:35 -05:00
|
|
|
dec a ; decrement when they press up because the deck has card 0 at the top
|
2025-01-04 14:34:05 -05:00
|
|
|
ldh [vSelectedTileIndex], a
|
2025-01-07 13:15:35 -05:00
|
|
|
:
|
|
|
|
ldh a, [vSelectedTileIndex] ; load current selected tile index
|
|
|
|
ld hl, Cards ; deck length
|
|
|
|
cp a, [hl] ; ddoes the index equal the deck length?
|
|
|
|
jp nz, :+
|
|
|
|
ld a, 0 ; if the index equals the deck length replace it with zero
|
2025-01-04 14:34:05 -05:00
|
|
|
ldh [vSelectedTileIndex], a
|
2025-01-07 13:15:35 -05:00
|
|
|
:
|
|
|
|
cp a, $FF ; if the tile index is $FF (underflowed from dec)
|
|
|
|
jp nz, :+
|
|
|
|
ld a, [hl]
|
|
|
|
dec a ;replace with deck length - 1
|
2025-01-04 14:34:05 -05:00
|
|
|
ldh [vSelectedTileIndex], a
|
2025-01-07 13:15:35 -05:00
|
|
|
:
|
2025-01-04 09:23:01 -05:00
|
|
|
ret
|
|
|
|
|
|
|
|
CardReadDraw:
|
2025-01-07 13:15:35 -05:00
|
|
|
; this function mostly just refreshes the deck view on the right side
|
|
|
|
; should probably be factored out into its own thing?
|
|
|
|
; it's also not vblank-safe; this could be up to 22 iterations of a loop...
|
|
|
|
ld a, [Cards]
|
|
|
|
srl a ; divide by two because we're drawing icons for pairs of cards
|
|
|
|
ld b, a ; length of the cards data
|
2025-01-04 09:23:01 -05:00
|
|
|
ld hl, $9800+32*4+19 ; start point
|
|
|
|
ld de, 32 ; stride
|
|
|
|
CardReadDrawCopyTile:
|
2025-01-07 13:15:35 -05:00
|
|
|
ld [hl], $81 ; load the tile for "unselected pair of tiles"
|
|
|
|
add hl, de ; step forward by stride (de is the address we're drawing to on screen)
|
|
|
|
dec b ; sets zero flag because it's an 8-bit register
|
|
|
|
jp nz, CardReadDrawCopyTile ; repeat if there's more cards in the deck to draw
|
|
|
|
ld [hl], $87 ; draw the cap at the end
|
|
|
|
|
|
|
|
; the rest of this stuff deals with drawing the set-out card for the current
|
|
|
|
; selected card
|
2025-01-04 09:23:01 -05:00
|
|
|
CardReadDrawSelectedTile:
|
2025-01-04 14:34:05 -05:00
|
|
|
ldh a, [vSelectedTileIndex]
|
2025-01-07 13:15:35 -05:00
|
|
|
srl a
|
2025-01-04 09:23:01 -05:00
|
|
|
ld b, a
|
|
|
|
ld hl, $9800+32*4+19 ; start point
|
|
|
|
ld de, 32 ; stride
|
2025-01-07 13:15:35 -05:00
|
|
|
; if the card we need to draw is in the zeroth spot, jump straight to drawing.
|
2025-01-04 09:23:01 -05:00
|
|
|
jp z, CardReadDrawDrawSelectedTile
|
|
|
|
CardReadDrawCountDownTile:
|
2025-01-07 13:15:35 -05:00
|
|
|
; otherwise, decrement b until we're there
|
2025-01-04 09:23:01 -05:00
|
|
|
add hl, de
|
|
|
|
dec b
|
|
|
|
jp nz, CardReadDrawCountDownTile
|
|
|
|
CardReadDrawDrawSelectedTile:
|
2025-01-04 14:34:05 -05:00
|
|
|
ldh a, [vSelectedTileIndex]
|
2025-01-04 09:23:01 -05:00
|
|
|
and a, 1
|
2025-01-07 13:15:35 -05:00
|
|
|
; if we're on an odd tile, draw the tile with the top card selected.
|
|
|
|
; no other tile needs to change.
|
|
|
|
ld [hl], $82
|
2025-01-04 09:23:01 -05:00
|
|
|
jp z, CardReadDrawReturn
|
2025-01-07 13:15:35 -05:00
|
|
|
; otherwise we need to draw the tile with the bottom card selected.
|
|
|
|
; this is more complicated because the tile underneath needs to change as well.
|
|
|
|
ld [hl], $90 ; draw the "bottom card is selected"
|
|
|
|
add hl, de ; look down one tile (de has stride, remember)
|
|
|
|
ld a, $81
|
|
|
|
cp a, [hl] ; check if the existing tile at that spot is $81 (cards) or not (end cap)
|
|
|
|
ld [hl], $91 ; draw the tile of "cards but the card above is selected"
|
|
|
|
jp z, CardReadDrawReturn ; if that was right, then jump to the end
|
|
|
|
ld [hl], $92 ; if that was wrong, draw "end cap but the card above is selected"
|
2025-01-04 09:23:01 -05:00
|
|
|
CardReadDrawReturn:
|
2025-01-07 13:15:35 -05:00
|
|
|
; check if the current selected tile is different from the previous;
|
|
|
|
; if it is different, then load new card data
|
2025-01-05 18:33:30 -05:00
|
|
|
ldh a, [vSelectedTileIndex]
|
|
|
|
ld hl, vPreviousCardIndex
|
|
|
|
cp a, [hl]
|
|
|
|
call nz, LoadCardData ; only load new card data if the selected card has changed
|
2025-01-04 09:23:01 -05:00
|
|
|
ret
|
|
|
|
|
2025-01-04 14:34:05 -05:00
|
|
|
CardReadTeardown:
|
|
|
|
ret
|
2025-01-04 09:23:01 -05:00
|
|
|
|
2025-01-04 14:34:05 -05:00
|
|
|
LoadCardData:
|
2025-01-05 18:33:30 -05:00
|
|
|
ld a, [vSelectedTileIndex]
|
2025-01-04 14:34:05 -05:00
|
|
|
ld [vPreviousCardIndex], a
|
2025-01-04 09:23:01 -05:00
|
|
|
|
2025-01-04 14:34:05 -05:00
|
|
|
ld b, 144
|
2025-01-05 18:33:30 -05:00
|
|
|
call AwaitLine ; wait for vblank before starting to work
|
2025-01-04 14:34:05 -05:00
|
|
|
ld a, [vSelectedTileIndex]
|
|
|
|
ld b, 0
|
|
|
|
ld c, a ; load bc from a. coming into this we have the number of the card in the card array in a
|
|
|
|
ld hl, Cards + 1 ; skip the length prefix
|
|
|
|
add hl, bc
|
|
|
|
add hl, bc ; add this twice to double the offset because it's two bytes per address
|
|
|
|
|
|
|
|
|
|
|
|
; follow the pointer we're looking at
|
|
|
|
ld a, [hl+]
|
|
|
|
ld c, a
|
|
|
|
ld a, [hl+]
|
|
|
|
ld b, a
|
|
|
|
|
|
|
|
ld h, b
|
|
|
|
ld l, c ; hl now contains the address of the card data.
|
|
|
|
|
|
|
|
; hl points to a card struct.
|
|
|
|
; card struct starts with 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
|
2025-01-07 13:23:32 -05:00
|
|
|
ld de, $9800 + 32*1 + 10
|
2025-01-04 14:34:05 -05:00
|
|
|
call PrintString
|
2025-01-07 13:23:32 -05:00
|
|
|
ld de, $9800 + 32*2 + 10
|
2025-01-04 14:34:05 -05:00
|
|
|
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
|
|
|
|
|
|
|
|
; hl now contains the address after all the strings.
|
|
|
|
; [hl+] and [hl+] read the length first, into bc
|
|
|
|
ld a, [hl+]
|
|
|
|
ld c, a
|
|
|
|
ld a, [hl+]
|
|
|
|
ld b, a ; bc has length
|
|
|
|
ld a, [hl+]
|
|
|
|
ld e, a
|
|
|
|
ld a, [hl+]
|
|
|
|
ld d, a ; de has source of tile range copy
|
|
|
|
push hl ; save the pointer to the next bit of card data (tile map)
|
2025-01-07 13:15:35 -05:00
|
|
|
|
|
|
|
ld h, d
|
|
|
|
ld l, e ; source
|
|
|
|
ld de, $9800 + 32 + 1 ; destination
|
|
|
|
ld b, 16 ; height
|
|
|
|
ld c, 8 ; width
|
|
|
|
call CopyTilesSafe
|
2025-01-04 14:34:05 -05:00
|
|
|
|
2025-01-07 13:15:35 -05:00
|
|
|
ei
|
|
|
|
WaitForSafeCopy:
|
|
|
|
ld b, 140
|
|
|
|
call AwaitLine
|
|
|
|
ldh a, [vSafeCopyCount]
|
|
|
|
ld b, a
|
|
|
|
ldh a, [vSafeCopyCount+1]
|
|
|
|
or a, b
|
|
|
|
jp nz, WaitForSafeCopy
|
|
|
|
di
|
|
|
|
|
2025-01-04 14:34:05 -05:00
|
|
|
pop hl
|
|
|
|
ld a, [hl+]
|
|
|
|
ld c, a
|
|
|
|
ld a, [hl+]
|
|
|
|
ld b, a ; bc has length
|
|
|
|
ld a, [hl+]
|
|
|
|
ld e, a
|
|
|
|
ld a, [hl+]
|
|
|
|
ld d, a ; de has source of tile range copy
|
|
|
|
|
2025-01-07 13:15:35 -05:00
|
|
|
; push hl ; we don't need to keep track of hl at this point and our stack is clean.
|
2025-01-04 14:34:05 -05:00
|
|
|
ld h, d
|
|
|
|
ld l, e ; hl takes the source
|
|
|
|
|
2025-01-07 13:15:35 -05:00
|
|
|
ld de, $8000 ; always load tile data into the same spot in vram
|
|
|
|
call CopyRangeSafe
|
|
|
|
|
|
|
|
ei
|
|
|
|
WaitForSafeCopy2:
|
|
|
|
ld b, 140
|
|
|
|
call AwaitLine
|
|
|
|
ldh a, [vSafeCopyCount]
|
|
|
|
ld b, a
|
|
|
|
ldh a, [vSafeCopyCount+1]
|
|
|
|
or a, b
|
|
|
|
jp nz, WaitForSafeCopy2
|
|
|
|
di
|
|
|
|
|
2025-01-05 18:33:30 -05:00
|
|
|
ret
|
2025-01-02 22:59:10 -05:00
|
|
|
|
|
|
|
|
2025-01-04 09:23:01 -05:00
|
|
|
Instructions:
|
|
|
|
call Instructions + 2
|
|
|
|
ret
|
|
|
|
|
2025-01-02 22:59:10 -05:00
|
|
|
|
2025-01-04 14:34:05 -05:00
|
|
|
; subroutines
|
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
|
|
|
|
2025-01-05 18:33:30 -05:00
|
|
|
CopyRangeUnsafe:
|
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
|
2025-01-05 18:33:30 -05:00
|
|
|
jp nz, CopyRangeUnsafe
|
|
|
|
ret
|
|
|
|
|
2025-01-07 13:15:35 -05:00
|
|
|
INCLUDE "CopyRangeSafe.inc"
|
2025-01-02 22:59:10 -05:00
|
|
|
|
2025-01-07 13:15:35 -05:00
|
|
|
CopyTilesToMapUnsafe:
|
2025-01-02 22:59:10 -05:00
|
|
|
; 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:
|
2025-01-07 13:15:35 -05:00
|
|
|
ld a, [hl] ; load from the tile map into a
|
|
|
|
ld [de], a ; load from a into the destination
|
2025-01-02 22:59:10 -05:00
|
|
|
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-07 13:15:35 -05:00
|
|
|
ld a, e
|
2025-01-02 22:59:10 -05:00
|
|
|
add a, 32
|
2025-01-07 13:15:35 -05:00
|
|
|
ld e, a
|
|
|
|
ld a, d
|
2025-01-02 22:59:10 -05:00
|
|
|
adc a, 0
|
2025-01-07 13:15:35 -05:00
|
|
|
ld d, a
|
|
|
|
ld a, e
|
2025-01-02 22:59:10 -05:00
|
|
|
sub a, c
|
2025-01-07 13:15:35 -05:00
|
|
|
ld e, a
|
|
|
|
ld a, d
|
2025-01-02 22:59:10 -05:00
|
|
|
sbc a, 0
|
2025-01-07 13:15:35 -05:00
|
|
|
ld d, a
|
2025-01-02 22:59:10 -05:00
|
|
|
|
2025-01-04 09:23:01 -05:00
|
|
|
dec b
|
2025-01-07 13:15:35 -05:00
|
|
|
ld a, b
|
|
|
|
cp a, 0
|
|
|
|
jp nz, CopyTilesToMapUnsafe
|
2025-01-04 09:23:01 -05:00
|
|
|
ret
|
2025-01-07 13:15:35 -05:00
|
|
|
|
|
|
|
INCLUDE "CopyTilesSafe.inc"
|
|
|
|
|
2025-01-02 22:59:10 -05:00
|
|
|
|
2025-01-04 14:34:05 -05:00
|
|
|
SECTION "Card Data", ROM0
|
2025-01-02 22:59:10 -05:00
|
|
|
|
2025-01-04 14:34:05 -05:00
|
|
|
Cards:
|
2025-01-07 13:23:32 -05:00
|
|
|
db 3
|
2025-01-04 14:34:05 -05:00
|
|
|
dw TheFool
|
|
|
|
dw TheMagician
|
2025-01-07 13:23:32 -05:00
|
|
|
dw TheHighPriestess
|
2025-01-04 09:23:01 -05:00
|
|
|
|
2025-01-07 13:23:32 -05:00
|
|
|
INCLUDE "00TheFool.inc"
|
|
|
|
INCLUDE "01TheMagician.inc"
|
|
|
|
INCLUDE "02TheHighPriestess.inc"
|
2025-01-04 14:34:05 -05:00
|
|
|
|
|
|
|
SECTION "Tile data", ROM0
|
|
|
|
|
|
|
|
Spreads:
|
|
|
|
|
|
|
|
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
|
|
|
|
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
|
|
|
|
UITilesEnd:
|
|
|
|
|
2025-01-02 22:59:10 -05:00
|
|
|
LetterTiles:
|
2025-01-04 14:34:05 -05:00
|
|
|
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
2025-01-07 13:23:32 -05:00
|
|
|
db $03,$03,$07,$07,$0f,$0f,$0e,$0e,$1c,$1c,$30,$30,$c0,$c0,$c0,$c0
|
|
|
|
db $24,$24,$6c,$6c,$6c,$6c,$48,$48,$00,$00,$00,$00,$00,$00,$00,$00
|
|
|
|
db $1a,$1a,$1a,$1a,$7f,$7f,$34,$34,$34,$34,$fe,$fe,$68,$68,$68,$68
|
|
|
|
db $08,$08,$3c,$3c,$6a,$6a,$68,$68,$3c,$3c,$0a,$0a,$6a,$6a,$3c,$3c
|
|
|
|
db $63,$63,$a6,$a6,$ac,$ac,$d8,$d8,$1b,$1b,$35,$35,$65,$65,$c6,$c6
|
|
|
|
db $18,$18,$24,$24,$28,$28,$18,$18,$2c,$2c,$66,$66,$67,$67,$39,$39
|
|
|
|
db $18,$18,$18,$18,$18,$18,$30,$30,$00,$00,$00,$00,$00,$00,$00,$00
|
|
|
|
db $04,$04,$0c,$0c,$18,$18,$10,$10,$10,$10,$18,$18,$0c,$0c,$04,$04
|
|
|
|
db $20,$20,$30,$30,$18,$18,$08,$08,$08,$08,$18,$18,$30,$30,$20,$20
|
|
|
|
db $00,$00,$08,$08,$28,$28,$1e,$1e,$78,$78,$14,$14,$10,$10,$00,$00
|
|
|
|
db $00,$00,$00,$00,$18,$18,$18,$18,$7e,$7e,$18,$18,$18,$18,$00,$00
|
|
|
|
db $00,$00,$00,$00,$00,$00,$00,$00,$0c,$0c,$0c,$0c,$0c,$0c,$18,$18
|
|
|
|
db $00,$00,$00,$00,$00,$00,$1c,$1c,$38,$38,$00,$00,$00,$00,$00,$00
|
|
|
|
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$18,$18,$18,$00,$00
|
|
|
|
db $04,$04,$0c,$0c,$0c,$0c,$18,$18,$18,$18,$30,$30,$30,$30,$20,$20
|
|
|
|
db $00,$00,$38,$38,$64,$64,$64,$64,$64,$64,$64,$64,$64,$64,$38,$38
|
|
|
|
db $08,$08,$18,$18,$38,$38,$18,$18,$18,$18,$18,$18,$18,$18,$3c,$3c
|
|
|
|
db $00,$00,$38,$38,$4c,$4c,$0c,$0c,$0c,$0c,$18,$18,$30,$30,$7c,$7c
|
|
|
|
db $00,$00,$3c,$3c,$06,$06,$06,$06,$1c,$1c,$06,$06,$06,$06,$3c,$3c
|
|
|
|
db $00,$00,$04,$04,$26,$26,$26,$26,$3e,$3e,$06,$06,$06,$06,$04,$04
|
|
|
|
db $00,$00,$7c,$7c,$64,$64,$60,$60,$78,$78,$44,$44,$04,$04,$38,$38
|
|
|
|
db $00,$00,$20,$20,$30,$30,$30,$30,$3c,$3c,$32,$32,$32,$32,$1c,$1c
|
|
|
|
db $00,$00,$7c,$7c,$4c,$4c,$0c,$0c,$3e,$3e,$18,$18,$30,$30,$20,$20
|
|
|
|
db $00,$00,$78,$78,$64,$64,$64,$64,$38,$38,$64,$64,$64,$64,$3c,$3c
|
|
|
|
db $00,$00,$38,$38,$4c,$4c,$4c,$4c,$3c,$3c,$0c,$0c,$0c,$0c,$18,$18
|
|
|
|
db $00,$00,$00,$00,$18,$18,$18,$18,$00,$00,$18,$18,$18,$18,$00,$00
|
|
|
|
db $00,$00,$00,$00,$0c,$0c,$0c,$0c,$00,$00,$0c,$0c,$0c,$0c,$18,$18
|
|
|
|
db $00,$00,$0c,$0c,$18,$18,$30,$30,$60,$60,$30,$30,$18,$18,$0c,$0c
|
|
|
|
db $00,$00,$00,$00,$3c,$3c,$3c,$3c,$00,$00,$3c,$3c,$3c,$3c,$00,$00
|
|
|
|
db $00,$00,$30,$30,$18,$18,$0c,$0c,$06,$06,$0c,$0c,$18,$18,$30,$30
|
|
|
|
db $38,$38,$6c,$6c,$24,$24,$0c,$0c,$18,$18,$18,$18,$00,$00,$18,$18
|
|
|
|
db $3c,$3c,$62,$62,$59,$59,$45,$45,$5d,$5d,$5d,$5d,$63,$63,$38,$38
|
|
|
|
db $00,$00,$38,$38,$34,$34,$32,$32,$3e,$3e,$32,$32,$32,$32,$32,$32
|
|
|
|
db $00,$00,$7c,$7c,$32,$32,$32,$32,$3c,$3c,$32,$32,$32,$32,$1c,$1c
|
|
|
|
db $00,$00,$3c,$3c,$72,$72,$62,$62,$60,$60,$60,$60,$62,$62,$3c,$3c
|
|
|
|
db $00,$00,$f8,$f8,$64,$64,$62,$62,$62,$62,$62,$62,$62,$62,$3c,$3c
|
|
|
|
db $00,$00,$fc,$fc,$60,$60,$60,$60,$78,$78,$60,$60,$60,$60,$3c,$3c
|
|
|
|
db $00,$00,$fc,$fc,$60,$60,$60,$60,$78,$78,$60,$60,$60,$60,$20,$20
|
|
|
|
db $00,$00,$78,$78,$64,$64,$60,$60,$60,$60,$6e,$6e,$64,$64,$3c,$3c
|
|
|
|
db $00,$00,$40,$40,$62,$62,$62,$62,$7e,$7e,$62,$62,$62,$62,$22,$22
|
|
|
|
db $00,$00,$10,$10,$18,$18,$18,$18,$18,$18,$18,$18,$18,$18,$08,$08
|
|
|
|
db $00,$00,$08,$08,$0c,$0c,$0c,$0c,$0c,$0c,$4c,$4c,$6c,$6c,$3c,$3c
|
|
|
|
db $00,$00,$40,$40,$64,$64,$68,$68,$70,$70,$68,$68,$64,$64,$22,$22
|
|
|
|
db $00,$00,$20,$20,$30,$30,$30,$30,$30,$30,$30,$30,$32,$32,$1e,$1e
|
|
|
|
db $00,$00,$3e,$3e,$6a,$6a,$6a,$6a,$6a,$6a,$62,$62,$62,$62,$22,$22
|
|
|
|
db $00,$00,$72,$72,$6a,$6a,$6a,$6a,$6a,$6a,$66,$66,$62,$62,$22,$22
|
|
|
|
db $00,$00,$3c,$3c,$66,$66,$62,$62,$62,$62,$62,$62,$32,$32,$1e,$1e
|
|
|
|
db $00,$00,$f8,$f8,$64,$64,$64,$64,$7c,$7c,$60,$60,$60,$60,$20,$20
|
|
|
|
db $00,$00,$38,$38,$64,$64,$62,$62,$62,$62,$6a,$6a,$64,$64,$3b,$3b
|
|
|
|
db $00,$00,$f8,$f8,$64,$64,$64,$64,$7c,$7c,$68,$68,$64,$64,$23,$23
|
|
|
|
db $00,$00,$38,$38,$64,$64,$60,$60,$38,$38,$04,$04,$64,$64,$38,$38
|
|
|
|
db $00,$00,$7e,$7e,$5a,$5a,$18,$18,$18,$18,$18,$18,$18,$18,$08,$08
|
|
|
|
db $00,$00,$40,$40,$62,$62,$62,$62,$62,$62,$62,$62,$62,$62,$3c,$3c
|
|
|
|
db $00,$00,$40,$40,$62,$62,$62,$62,$62,$62,$24,$24,$34,$34,$18,$18
|
|
|
|
db $00,$00,$c3,$c3,$62,$62,$62,$62,$6a,$6a,$6a,$6a,$6a,$6a,$34,$34
|
|
|
|
db $00,$00,$42,$42,$62,$62,$34,$34,$18,$18,$3c,$3c,$66,$66,$42,$42
|
|
|
|
db $00,$00,$4c,$4c,$4c,$4c,$4c,$4c,$3c,$3c,$0c,$0c,$4c,$4c,$78,$78
|
|
|
|
db $00,$00,$7e,$7e,$46,$46,$0c,$0c,$18,$18,$30,$30,$62,$62,$7e,$7e
|
|
|
|
db $7c,$7c,$60,$60,$60,$60,$60,$60,$60,$60,$60,$60,$60,$60,$7c,$7c
|
|
|
|
db $20,$20,$30,$30,$30,$30,$18,$18,$18,$18,$0c,$0c,$0c,$0c,$04,$04
|
|
|
|
db $3e,$3e,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$3e,$3e
|
|
|
|
db $18,$18,$3c,$3c,$66,$66,$42,$42,$00,$00,$00,$00,$00,$00,$00,$00
|
|
|
|
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7c,$7c,$3e,$3e
|
|
|
|
db $30,$30,$18,$18,$0c,$0c,$04,$04,$00,$00,$00,$00,$00,$00,$00,$00
|
2025-01-04 14:34:05 -05:00
|
|
|
db $00,$00,$00,$00,$38,$38,$0c,$0c,$3c,$3c,$4c,$4c,$3a,$3a,$00,$00
|
|
|
|
db $00,$00,$30,$30,$30,$30,$3c,$3c,$32,$32,$32,$32,$3c,$3c,$00,$00
|
|
|
|
db $00,$00,$00,$00,$1c,$1c,$30,$30,$30,$30,$30,$30,$1c,$1c,$00,$00
|
|
|
|
db $00,$00,$0c,$0c,$0c,$0c,$3c,$3c,$4c,$4c,$4c,$4c,$3c,$3c,$00,$00
|
|
|
|
db $00,$00,$00,$00,$38,$38,$64,$64,$78,$78,$60,$60,$3c,$3c,$00,$00
|
|
|
|
db $00,$00,$0e,$0e,$18,$18,$3c,$3c,$18,$18,$18,$18,$18,$18,$00,$00
|
|
|
|
db $00,$00,$00,$00,$3c,$3c,$4c,$4c,$4c,$4c,$3c,$3c,$0c,$0c,$38,$38
|
|
|
|
db $00,$00,$60,$60,$60,$60,$78,$78,$64,$64,$64,$64,$64,$64,$00,$00
|
|
|
|
db $00,$00,$10,$10,$00,$00,$38,$38,$18,$18,$18,$18,$3c,$3c,$00,$00
|
2025-01-07 13:23:32 -05:00
|
|
|
db $00,$00,$08,$08,$00,$00,$0c,$0c,$0c,$0c,$0c,$0c,$2c,$2c,$18,$18
|
2025-01-04 14:34:05 -05:00
|
|
|
db $00,$00,$60,$60,$68,$68,$68,$68,$70,$70,$68,$68,$64,$64,$00,$00
|
2025-01-07 13:23:32 -05:00
|
|
|
db $00,$00,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$18,$18,$00,$00
|
2025-01-04 14:34:05 -05:00
|
|
|
db $00,$00,$00,$00,$74,$74,$6a,$6a,$6a,$6a,$6a,$6a,$6a,$6a,$00,$00
|
|
|
|
db $00,$00,$00,$00,$78,$78,$64,$64,$64,$64,$64,$64,$64,$64,$00,$00
|
|
|
|
db $00,$00,$00,$00,$38,$38,$64,$64,$64,$64,$64,$64,$38,$38,$00,$00
|
|
|
|
db $00,$00,$00,$00,$78,$78,$64,$64,$64,$64,$78,$78,$60,$60,$60,$60
|
|
|
|
db $00,$00,$00,$00,$3c,$3c,$4c,$4c,$4c,$4c,$3c,$3c,$0c,$0c,$0e,$0e
|
|
|
|
db $00,$00,$00,$00,$1c,$1c,$30,$30,$30,$30,$30,$30,$30,$30,$00,$00
|
|
|
|
db $00,$00,$00,$00,$38,$38,$60,$60,$38,$38,$0c,$0c,$78,$78,$00,$00
|
|
|
|
db $00,$00,$30,$30,$78,$78,$30,$30,$30,$30,$30,$30,$1c,$1c,$00,$00
|
|
|
|
db $00,$00,$00,$00,$64,$64,$64,$64,$64,$64,$64,$64,$3c,$3c,$00,$00
|
|
|
|
db $00,$00,$00,$00,$64,$64,$64,$64,$64,$64,$28,$28,$10,$10,$00,$00
|
|
|
|
db $00,$00,$00,$00,$62,$62,$6a,$6a,$6a,$6a,$6a,$6a,$34,$34,$00,$00
|
|
|
|
db $00,$00,$00,$00,$64,$64,$38,$38,$18,$18,$2c,$2c,$46,$46,$00,$00
|
|
|
|
db $00,$00,$00,$00,$4c,$4c,$4c,$4c,$4c,$4c,$3c,$3c,$0c,$0c,$38,$38
|
|
|
|
db $00,$00,$00,$00,$7e,$7e,$0c,$0c,$18,$18,$30,$30,$7e,$7e,$00,$00
|
2025-01-07 13:23:32 -05:00
|
|
|
db $3c,$3c,$60,$60,$30,$30,$60,$60,$60,$60,$30,$30,$60,$60,$3c,$3c
|
|
|
|
db $20,$20,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$10,$10
|
|
|
|
db $3c,$3c,$06,$06,$0c,$0c,$06,$06,$06,$06,$0c,$0c,$06,$06,$3c,$3c
|
|
|
|
db $00,$00,$00,$00,$31,$31,$7b,$7b,$de,$de,$8c,$8c,$00,$00,$00,$00
|
|
|
|
db $c0,$c0,$a0,$a0,$b8,$b8,$b0,$b0,$da,$da,$12,$12,$1a,$1a,$03,$03
|
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:
|