513 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			513 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
PUSHS UNION "Screen Variables", WRAM0[SCREEN_VARS_START]
 | 
						|
vPreviousSpreadIndex: db 
 | 
						|
vPreviousSpreadCard: db 
 | 
						|
POPS
 | 
						|
 | 
						|
ScreenSpreadSelect:
 | 
						|
  dw SpreadSelectSetup
 | 
						|
  dw SpreadSelectUpdate
 | 
						|
  dw SpreadSelectDraw
 | 
						|
  dw SpreadSelectTeardown
 | 
						|
  
 | 
						|
SpreadSelectSetup:
 | 
						|
  ld a, [vSelectedSpreadIndex]
 | 
						|
  ld [vPreviousSpreadIndex], a
 | 
						|
  ld a, [vSelectedSpreadCard]
 | 
						|
  ld [vPreviousSpreadCard], a 
 | 
						|
  ld a, 1
 | 
						|
  ld [vBlocked], a
 | 
						|
  
 | 
						|
  call UpdateCurrentSpread
 | 
						|
  
 | 
						|
  ld hl, .asyncTask
 | 
						|
  call Async_Spawn_HL
 | 
						|
 | 
						|
  ret  
 | 
						|
  
 | 
						|
.asyncTask: ; setup task to be executed async
 | 
						|
 | 
						|
  ld a, HIGH(ZEROES)
 | 
						|
  ld de, SAFE_DMA_LOCATION
 | 
						|
  call RunDMA
 | 
						|
  
 | 
						|
  ld hl, SpreadSelectTilemap
 | 
						|
  ld de, _SCRN0
 | 
						|
  ld b, 18
 | 
						|
  ld c, 20
 | 
						|
  call CopyTilesToMap
 | 
						|
  
 | 
						|
  ld hl, CardPartTiles
 | 
						|
  ld de, _VRAM + $1000 - ($10)*16
 | 
						|
  ld bc, CardPartTilesEnd - CardPartTiles
 | 
						|
  call CopyRange
 | 
						|
  
 | 
						|
  call DrawSpreadTask
 | 
						|
  ld a, 0 
 | 
						|
  ld [vBlocked], a 
 | 
						|
  ret 
 | 
						|
  
 | 
						|
SpreadSelectUpdate:
 | 
						|
  call ScrollBackgroundTile
 | 
						|
 | 
						|
  ld hl, rMYBTNP
 | 
						|
  bit 5, [hl]
 | 
						|
    jp z, .doneB
 | 
						|
    ld hl, ScreenMainMenu
 | 
						|
    call ChangeScene
 | 
						|
    ret
 | 
						|
  .doneB
 | 
						|
  bit 4, [hl]
 | 
						|
    jp z, .doneA
 | 
						|
    
 | 
						|
    ld hl, ScreenCardRead
 | 
						|
    call ChangeScene
 | 
						|
    ret
 | 
						|
  .doneA
 | 
						|
 | 
						|
  ;up and down
 | 
						|
  ld a, [vSelectedSpreadIndex]
 | 
						|
  
 | 
						|
  bit 3, [hl]  ; select the down key
 | 
						|
  jp z, .doneDown ; skip the following code if down is not pressed
 | 
						|
    inc a ; increment when they press down
 | 
						|
  .doneDown
 | 
						|
  bit 2, [hl] ; select up key
 | 
						|
  jp z, .doneUp ; skip the following code if up is not pressed
 | 
						|
    dec a ; decrement when they press up because the deck has card 0 at the top
 | 
						|
  .doneUp
 | 
						|
  ld hl, Spreads 
 | 
						|
  call ArrayClampLooping
 | 
						|
  ld [vSelectedSpreadIndex], a ; save clamped index
 | 
						|
 | 
						|
  ; left and righgt
 | 
						|
  ld a, [vSelectedSpreadCard]
 | 
						|
  ld hl, rMYBTNP
 | 
						|
  bit 1, [hl]
 | 
						|
  jp z, .doneLeft ; skip the following code if left is not pressed
 | 
						|
    dec a 
 | 
						|
  .doneLeft
 | 
						|
  bit 0, [hl]
 | 
						|
  jp z, .doneRight ; skip the following code if right is not pressed
 | 
						|
    inc a 
 | 
						|
  .doneRight
 | 
						|
  ld hl, vCurrentSpread
 | 
						|
  ld c, [hl]
 | 
						|
  inc hl
 | 
						|
  ld b, [hl]
 | 
						|
  ld h, b 
 | 
						|
  ld l, c 
 | 
						|
  ; hl has current spread, a has index 
 | 
						|
  call ArrayClampLooping
 | 
						|
  ld [vSelectedSpreadCard], a 
 | 
						|
  
 | 
						|
 | 
						|
  ld a, [vSelectedSpreadIndex]
 | 
						|
  ld hl, vPreviousSpreadIndex
 | 
						|
  cp a, [hl]
 | 
						|
  jp nz, .spreadChanged ; update the spread if the spread changed
 | 
						|
  
 | 
						|
  ld a, [vSelectedSpreadCard]
 | 
						|
  ld hl, vPreviousSpreadCard
 | 
						|
  cp a, [hl]
 | 
						|
  jp nz, .cardChanged ; update the spread if the card changed
 | 
						|
 
 | 
						|
  ret
 | 
						|
  
 | 
						|
.spreadChanged
 | 
						|
  ld a, [vBlocked]
 | 
						|
  cp a, 0
 | 
						|
  ret nz ; early return if we're blocked
 | 
						|
  ld a, 1
 | 
						|
  ld [vBlocked], a ; block!
 | 
						|
  
 | 
						|
  ld a, [vSelectedSpreadIndex]
 | 
						|
  ld [vPreviousSpreadIndex], a
 | 
						|
  ld a, 0
 | 
						|
  ld [vSelectedSpreadCard], a
 | 
						|
  ld [vPreviousSpreadCard], a 
 | 
						|
  call UpdateCurrentSpread
 | 
						|
  
 | 
						|
  ; execute an async call to DrawSpreadAsync.
 | 
						|
  ld hl, DrawSpreadTask
 | 
						|
  call Async_Spawn_HL
 | 
						|
  
 | 
						|
  ret
 | 
						|
 | 
						|
.cardChanged
 | 
						|
  ld a, [vBlocked]
 | 
						|
  cp a, 0 
 | 
						|
  ret nz ; early return if the async threadd is in use
 | 
						|
  ld a, 1
 | 
						|
  ld [vBlocked], a ; block!
 | 
						|
  
 | 
						|
  ld a, [vSelectedSpreadIndex]
 | 
						|
  ld [vPreviousSpreadIndex], a
 | 
						|
  ld a, [vSelectedSpreadCard]
 | 
						|
  ld [vPreviousSpreadCard], a 
 | 
						|
  call UpdateCurrentSpread
 | 
						|
  
 | 
						|
  ; execute an async call to DrawSpread.
 | 
						|
  ld hl, DrawSpreadTaskWithoutRefreshingBackgroundFirst
 | 
						|
  call Async_Spawn_HL
 | 
						|
  
 | 
						|
  ret
 | 
						|
 | 
						|
UpdateCurrentSpread:
 | 
						|
  ; find the correct spread address
 | 
						|
  ld hl, Spreads
 | 
						|
  inc hl ; skip length of spreads
 | 
						|
  ld a, [vSelectedSpreadIndex]
 | 
						|
  inc a ; we're decing at the start so we inc first to prepare...
 | 
						|
  ld d, 0
 | 
						|
.findSpread
 | 
						|
  dec a
 | 
						|
  jp z, .spreadFound
 | 
						|
  
 | 
						|
  ld e, [hl] ; skip cards in spread
 | 
						|
  inc hl 
 | 
						|
  add hl, de
 | 
						|
  
 | 
						|
.skipCardDescription ; e has number of cards in spread
 | 
						|
  call PassList
 | 
						|
  call PassList ; one card description has two strings
 | 
						|
  dec e ; this will not work if the spreadd had zero cardss. i will overflow.
 | 
						|
  jp nz, .skipCardDescription
 | 
						|
  
 | 
						|
  ld e, [hl] ; skip title of spread
 | 
						|
  inc hl
 | 
						|
  add hl, de
 | 
						|
  
 | 
						|
  ld e, [hl] ; skip description
 | 
						|
  inc hl
 | 
						|
  add hl, de
 | 
						|
  
 | 
						|
  jp .findSpread
 | 
						|
.spreadFound
 | 
						|
  ld a, l 
 | 
						|
  ld [vCurrentSpread], a
 | 
						|
  ld a, h
 | 
						|
  ld [vCurrentSpread+1], a ; save the current spread (hl) into vcurrentspread. 
 | 
						|
  ret
 | 
						|
  
 | 
						|
DrawSpreadTask: ; draw the spread large in the middle of the screen, and descs
 | 
						|
  ; clear the space to scrolling background tiles
 | 
						|
  ld de, _SCRN0 + 32*5 + 3
 | 
						|
  ld hl, ONES
 | 
						|
  ld b, 8
 | 
						|
  ld c, 14
 | 
						|
  call CopyTilesToMap
 | 
						|
DrawSpreadTaskWithoutRefreshingBackgroundFirst:
 | 
						|
  ; step past the spread layout to get to the spread description
 | 
						|
  ld a, [vCurrentSpread]
 | 
						|
  ld l, a 
 | 
						|
  ld a, [vCurrentSpread+1]
 | 
						|
  ld h, a
 | 
						|
  ld e, [hl] ; e holds length of spread
 | 
						|
  call PassList ; step past spread layout
 | 
						|
  
 | 
						|
.PassCardPositionDescriptions
 | 
						|
  call PassList ; step past one pdesc
 | 
						|
  call PassList ; step past two pdesc
 | 
						|
  dec e ; we've looked at one 
 | 
						|
  jp nz, .PassCardPositionDescriptions
 | 
						|
 | 
						|
  ; now hl is pointing at the title string
 | 
						|
  ld de, _SCRN0 + 32 + 1
 | 
						|
  call PrintString
 | 
						|
 | 
						|
  ; now hl is pointing at the  description
 | 
						|
  ld de, _SCRN0 + (32*2) + 1
 | 
						|
  call PrintString
 | 
						|
  
 | 
						|
  call DrawSpreadCards
 | 
						|
  
 | 
						|
  ld a, 0 
 | 
						|
  ld [vBlocked], a
 | 
						|
  ret
 | 
						|
 | 
						|
DrawSpreadCards:
 | 
						|
  ld hl, _SCRN0 + 32*5 + 3
 | 
						|
  ld a, [vSelectedSpreadCard]
 | 
						|
  ld d, 0
 | 
						|
  ld e, a ; e contains the selected index
 | 
						|
  call DrawSpreadBig ; draw the large cards for the spread
 | 
						|
 | 
						|
.drawSpreadPositionDescription
 | 
						|
  ld a, [vCurrentSpread]
 | 
						|
  ld l, a 
 | 
						|
  ld a, [vCurrentSpread+1]
 | 
						|
  ld h, a ; hl points at beginning of card postion list
 | 
						|
  call PassList ; hl points at first card description
 | 
						|
  ld a, [vSelectedSpreadCard]
 | 
						|
  ld e, a 
 | 
						|
  cp a, 0 
 | 
						|
  jp z, .printIt
 | 
						|
.stepForwardCardDescription
 | 
						|
  call PassList
 | 
						|
  call PassList
 | 
						|
  dec e
 | 
						|
  jp nz, .stepForwardCardDescription
 | 
						|
.printIt
 | 
						|
  ld de, _SCRN0 + 32*15 + 6
 | 
						|
  call PrintString
 | 
						|
  ld de, _SCRN0 + 32*16 + 6
 | 
						|
  call PrintString
 | 
						|
 | 
						|
  ret
 | 
						|
 | 
						|
SpreadSelectDraw:
 | 
						|
  ld a, [vCurrentBackgroundTile]
 | 
						|
  ld l, a 
 | 
						|
  ld a, [vCurrentBackgroundTile+1]
 | 
						|
  ld h, a 
 | 
						|
  ld de, _VRAM + $1000 + 1*16
 | 
						|
  call CopyOneTileData
 | 
						|
 | 
						|
  ret
 | 
						|
SpreadSelectTeardown:
 | 
						|
  ret  
 | 
						|
 | 
						|
DrawSpreadBig:
 | 
						|
; hl for location on screen
 | 
						|
; current spread address in vCurrentSpread
 | 
						|
; e for index of selected card
 | 
						|
  ld a, [vCurrentSpread]
 | 
						|
  ld c, a 
 | 
						|
  ld a, [vCurrentSpread+1]
 | 
						|
  ld b, a 
 | 
						|
  ld a, [bc]
 | 
						|
  cp a, 0 ; length of spread
 | 
						|
  jp z, .doneDrawingSpread ; return early if the spread is empty
 | 
						|
  ld d, a ; length of spread in d
 | 
						|
  inc d
 | 
						|
.drawCards
 | 
						|
 | 
						|
  dec d
 | 
						|
  jp z, .doneWithSpread ; if we're drawing zero remaining cards, stop drawing
 | 
						|
  inc bc ; step forward
 | 
						|
  push hl  ; need this bc drawsmallcard changes hl
 | 
						|
  ld a, [bc]
 | 
						|
  call DrawBigCard
 | 
						|
  pop hl  
 | 
						|
  jp .drawCards
 | 
						|
.doneWithSpread 
 | 
						|
; stack has spread address
 | 
						|
; d is zero
 | 
						|
; e should have currently selected index
 | 
						|
  ld b, h
 | 
						|
  ld c, l ; stash hl in bc for a mo; this should be a location in vram
 | 
						|
  
 | 
						|
  ld a, [vCurrentSpread]
 | 
						|
  ld l, a
 | 
						|
  ld a, [vCurrentSpread+1]
 | 
						|
  ld h, a 
 | 
						|
  ;spread address in hl
 | 
						|
 | 
						|
  inc hl ; skip the tiles length
 | 
						|
  
 | 
						|
  ld d, 0
 | 
						|
  ld a, [vSelectedSpreadCard]
 | 
						|
  ld e, a 
 | 
						|
  
 | 
						|
  add hl, de
 | 
						|
  ld a, [hl] ; load card descriptor into a 
 | 
						|
  
 | 
						|
  ld h, b
 | 
						|
  ld l, c; retrieve vram address
 | 
						|
  call DrawBigCardSelected
 | 
						|
  
 | 
						|
.doneDrawingSpread
 | 
						|
  ret
 | 
						|
 | 
						|
DrawBigCard: ; starting from screen location hl, draw a card at 
 | 
						|
;the location described in a
 | 
						|
  push de
 | 
						|
  ld d, a 
 | 
						|
  swap a
 | 
						|
  and a, %0000_1111
 | 
						|
  sla a
 | 
						|
  ld e, a 
 | 
						|
 | 
						|
  ld a, d
 | 
						|
  and a, %0000_1111
 | 
						|
 | 
						|
  ld d, 0
 | 
						|
  add hl, de ; step right
 | 
						|
  
 | 
						|
  ld e, 64
 | 
						|
  jp z, .drawCard
 | 
						|
.stepDown
 | 
						|
  add hl, de ; step down
 | 
						|
  dec a
 | 
						|
  jp nz, .stepDown
 | 
						|
.drawCard
 | 
						|
  ld de, 32
 | 
						|
  ld [hl], -16 + $1
 | 
						|
  inc hl 
 | 
						|
  ld [hl], -16 + $2
 | 
						|
  add hl, de
 | 
						|
  ld [hl], -16 + $4
 | 
						|
  dec hl 
 | 
						|
  ld [hl], -16 + $3
 | 
						|
  add hl, de 
 | 
						|
  ld [hl], -16 + $3
 | 
						|
  inc hl 
 | 
						|
  ld [hl], -16 + $4
 | 
						|
  add hl, de
 | 
						|
  ld [hl], -16 + $6
 | 
						|
  dec hl 
 | 
						|
  ld [hl], -16 + $5
 | 
						|
  
 | 
						|
  pop de
 | 
						|
  ret 
 | 
						|
 | 
						|
DrawBigCardSelected: ; starting from screen location hl, draw a card at 
 | 
						|
;the location described in a
 | 
						|
  push de
 | 
						|
  push af 
 | 
						|
  swap a
 | 
						|
  ld d, 0
 | 
						|
  and a, %0000_1111
 | 
						|
  sla a
 | 
						|
  ld e, a 
 | 
						|
  add hl, de ; step right
 | 
						|
  
 | 
						|
  ld e, 64
 | 
						|
  pop af
 | 
						|
  and a, %0000_1111
 | 
						|
  jp z, .drawCard
 | 
						|
.stepDown
 | 
						|
  add hl, de ; step down
 | 
						|
  dec a
 | 
						|
  jp nz, .stepDown
 | 
						|
.drawCard
 | 
						|
  ld de, 32
 | 
						|
  ld [hl], -16 + $7
 | 
						|
  inc hl 
 | 
						|
  ld [hl], -16 + $8
 | 
						|
  add hl, de
 | 
						|
  ld [hl], -16 + $a
 | 
						|
  dec hl 
 | 
						|
  ld [hl], -16 + $9
 | 
						|
  add hl, de 
 | 
						|
  ld [hl], -16 + $b
 | 
						|
  inc hl 
 | 
						|
  ld [hl], -16 + $c
 | 
						|
  add hl, de
 | 
						|
  ld [hl], -16 + $e
 | 
						|
  dec hl 
 | 
						|
  ld [hl], -16 + $d
 | 
						|
  
 | 
						|
  pop de
 | 
						|
  ret 
 | 
						|
 | 
						|
DrawSpreadMinimap:
 | 
						|
; hl for location on screen
 | 
						|
; bc for current spread address
 | 
						|
; a for index of selected card
 | 
						|
  push af
 | 
						|
  push bc
 | 
						|
  
 | 
						|
  ld a, [bc]
 | 
						|
  ld d, 0
 | 
						|
  ld e, a ; length of spread in de
 | 
						|
.drawCards
 | 
						|
  ld a, e 
 | 
						|
  cp a, 0
 | 
						|
  jp z, .doneWithSpread ; if we're drawing zero remaining cards, stop drawing
 | 
						|
  dec e
 | 
						|
  inc bc ; step forward
 | 
						|
  
 | 
						|
  push hl ; need this bc drawsmallcard changes hl
 | 
						|
  push bc
 | 
						|
  ld a, [bc]
 | 
						|
  ld bc, $1716
 | 
						|
  call DrawSmallCard
 | 
						|
  pop bc
 | 
						|
  pop hl
 | 
						|
  
 | 
						|
  jp .drawCards
 | 
						|
.doneWithSpread 
 | 
						|
  pop bc ; stack: af 
 | 
						|
  pop af
 | 
						|
  ld d, 0
 | 
						|
  ld e, a ; index of selected card in spread
 | 
						|
  inc e ; skip the length
 | 
						|
  
 | 
						|
  push hl ; stack: hl
 | 
						|
  ld h, b
 | 
						|
  ld l, c ; put bc in hl temporarily so we can add to hl 
 | 
						|
  
 | 
						|
  add hl, de
 | 
						|
  
 | 
						|
  ld a, [hl]
 | 
						|
  pop hl ; stack: empty
 | 
						|
  ld bc, $1918
 | 
						|
  call DrawSmallCard
 | 
						|
  
 | 
						|
  ret
 | 
						|
  
 | 
						|
DrawSmallCard: ; starting from screen location hl, draw a card at 
 | 
						|
;the location described in a, top and bottom sprite in b and c
 | 
						|
  push de
 | 
						|
  push af 
 | 
						|
  swap a
 | 
						|
  ld d, 0
 | 
						|
  and a, %0000_1111
 | 
						|
  ld e, a 
 | 
						|
  add hl, de ; step right
 | 
						|
  
 | 
						|
  ld e, 32
 | 
						|
  pop af
 | 
						|
  and a, %0000_1111
 | 
						|
  jp z, .drawCard
 | 
						|
:
 | 
						|
  dec a
 | 
						|
  add hl, de ; step down
 | 
						|
  cp a, 0
 | 
						|
  jp nz, :-
 | 
						|
.drawCard
 | 
						|
  ld [hl], b
 | 
						|
  add hl, de
 | 
						|
  ld [hl], c
 | 
						|
  
 | 
						|
  pop de
 | 
						|
  ret 
 | 
						|
  
 | 
						|
CardPartTiles:
 | 
						|
  db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
 | 
						|
	db $00,$ff,$7f,$ff,$7f,$ff,$60,$ff,$6f,$ff,$6d,$fa,$6a,$fd,$6d,$fa
 | 
						|
	db $00,$ff,$fe,$ff,$fe,$ff,$06,$ff,$f6,$ff,$56,$bf,$b6,$5f,$56,$bf
 | 
						|
	db $6a,$fd,$6d,$fa,$6a,$fd,$6d,$fa,$6a,$fd,$6d,$fa,$6a,$fd,$6d,$fa
 | 
						|
	db $b6,$5f,$56,$bf,$b6,$5f,$56,$bf,$b6,$5f,$56,$bf,$b6,$5f,$56,$bf
 | 
						|
	db $6a,$fd,$6d,$fa,$6a,$fd,$6f,$ff,$60,$ff,$7f,$ff,$7f,$ff,$00,$ff
 | 
						|
	db $b6,$5f,$56,$bf,$b6,$5f,$f6,$ff,$06,$ff,$fe,$ff,$fe,$ff,$00,$ff
 | 
						|
	db $ff,$00,$80,$7f,$80,$7f,$9f,$7f,$9f,$7f,$98,$78,$99,$79,$9a,$7a
 | 
						|
	db $ff,$00,$01,$fe,$01,$fe,$f9,$fe,$f9,$fe,$19,$1e,$19,$1e,$d9,$de
 | 
						|
	db $9a,$7a,$99,$79,$98,$78,$9c,$78,$99,$78,$9b,$79,$9b,$7a,$9b,$7a
 | 
						|
	db $d9,$de,$99,$9e,$d9,$de,$f9,$de,$99,$9e,$d9,$9e,$d9,$9e,$d9,$5e
 | 
						|
	db $98,$78,$98,$7b,$99,$7a,$9a,$7c,$9f,$7b,$99,$79,$99,$79,$98,$78
 | 
						|
	db $59,$5e,$19,$fe,$f9,$1e,$19,$1e,$d9,$de,$d9,$de,$59,$5e,$19,$1e
 | 
						|
	db $98,$79,$98,$79,$98,$78,$9f,$7f,$9f,$7f,$80,$7f,$80,$7f,$ff,$00
 | 
						|
	db $19,$9e,$19,$9e,$19,$1e,$f9,$fe,$f9,$fe,$01,$fe,$01,$fe,$ff,$00
 | 
						|
CardPartTilesEnd:
 | 
						|
SpreadSelectTilemap:
 | 
						|
  db $09, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $08
 | 
						|
	db $03, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $04
 | 
						|
	db $03, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $04
 | 
						|
	db $06, $05, $05, $05, $05, $05, $05, $05, $05, $05, $05, $05, $05, $05, $05, $05, $05, $05, $05, $07
 | 
						|
	db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $09, $02, $02, $02, $02, $02, $02, $02, $02, $08, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $03, $00, $00, $00, $00, $00, $00, $00, $00, $04, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $03, $00, $00, $00, $00, $00, $00, $00, $00, $04, $01, $01, $01, $01, $01
 | 
						|
	db $01, $01, $01, $01, $01, $06, $05, $05, $05, $05, $05, $05, $05, $05, $07, $01, $01, $01, $01, $01
 | 
						|
SpreadSelectTilemapEnd: |