This commit is contained in:
Randy Thiemann 2023-10-11 08:18:12 +02:00
parent b29f44c1c0
commit eab34d8f0b
14 changed files with 521 additions and 372 deletions

View File

@ -10,6 +10,4 @@ ROMNAME := out
ROMEXT := gb ROMEXT := gb
ASFLAGS += -h ASFLAGS += -h
LDFLAGS += -d LDFLAGS += -d
ASFLAGS += -v
LDFLAGS += -v
LDFLAGS += -t LDFLAGS += -t

View File

@ -3,8 +3,8 @@
; * Libraries and Defines * ; * Libraries and Defines *
; * * ; * *
; ***************************************************************************** ; *****************************************************************************
INCLUDE "hardware.inc" INCLUDE "vendor/hardware.inc"
INCLUDE "structs.asm" INCLUDE "vendor/structs.asm"
; ***************************************************************************** ; *****************************************************************************
; * * ; * *
@ -14,12 +14,37 @@ INCLUDE "structs.asm"
SECTION "General Game Variables", WRAM0 SECTION "General Game Variables", WRAM0
wLCDCCtr:: db wLCDCCtr:: db
wEvenFrame:: db wEvenFrame:: db
wField:: ds 200 wField:: ds (10*22)
wRNGSeed:: ds 4 wRNGSeed:: ds 4
wFill:: db
SECTION "Important Game Variables", HRAM SECTION "Important Game Variables", HRAM
hUnused:: ds 126 hScore:: ds 6
hCLevel:: ds 6
hNLevel:: ds 6
; *****************************************************************************
; * *
; * Static Data *
; * *
; *****************************************************************************
SECTION "Static Data", ROM0
sPieceXOffsets::
db 0, 8, 16, 24 ; I
db 0, 8, 8, 16 ; Z
db 0, 8, 8, 16 ; S
db 0, 8, 16, 16 ; J
db 0, 0, 8, 16 ; L
db 8, 8, 16, 16 ; O
db 0, 8, 8, 16 ; T
sPieceYOffsets::
db 0, 0, 0, 0 ; I
db 0, 0, 7, 7 ; Z
db 7, 7, 0, 0 ; S
db 0, 0, 0, 7 ; J
db 0, 7, 0, 0 ; L
db 0, 7, 0, 7 ; O
db 0, 0, 7, 0 ; T
; ***************************************************************************** ; *****************************************************************************
@ -41,6 +66,7 @@ DEF PALETTE_LIGHTER_0 EQU %11100100
DEF PALETTE_LIGHTER_1 EQU %10010000 DEF PALETTE_LIGHTER_1 EQU %10010000
DEF PALETTE_LIGHTER_2 EQU %01000000 DEF PALETTE_LIGHTER_2 EQU %01000000
DEF PALETTE_LIGHTER_3 EQU %00000000 DEF PALETTE_LIGHTER_3 EQU %00000000
DEF FIELD_TOP_LEFT EQU $9800+(0*32)+1
DEF FIELD_ROW_1 EQU $9800+(0*32)+1 DEF FIELD_ROW_1 EQU $9800+(0*32)+1
DEF FIELD_ROW_2 EQU $9800+(1*32)+1 DEF FIELD_ROW_2 EQU $9800+(1*32)+1
DEF FIELD_ROW_3 EQU $9800+(2*32)+1 DEF FIELD_ROW_3 EQU $9800+(2*32)+1
@ -61,6 +87,17 @@ DEF FIELD_ROW_17 EQU $9800+(16*32)+1
DEF FIELD_ROW_18 EQU $9800+(17*32)+1 DEF FIELD_ROW_18 EQU $9800+(17*32)+1
DEF FIELD_ROW_19 EQU $9800+(18*32)+1 DEF FIELD_ROW_19 EQU $9800+(18*32)+1
DEF FIELD_ROW_20 EQU $9800+(19*32)+1 DEF FIELD_ROW_20 EQU $9800+(19*32)+1
DEF TILE_FIELD_EMPTY EQU 7
DEF TILE_PIECE_0 EQU 10
DEF TILE_0 EQU 110
DEF NEXT_BASE_X EQU 120
DEF NEXT_BASE_Y EQU 40
DEF HOLD_BASE_X EQU 120
DEF HOLD_BASE_Y EQU 80
DEF DIGIT_BASE_X EQU 112
DEF SCORE_BASE_Y EQU 115
DEF CLEVEL_BASE_Y EQU 136
DEF NLEVEL_BASE_Y EQU 148
; ***************************************************************************** ; *****************************************************************************
@ -94,6 +131,29 @@ MACRO wait_vblank_end
jr z, .waitvbe\@ jr z, .waitvbe\@
ENDM ENDM
; Sets the background palette to A.
MACRO set_bg_palette
ldh [rBGP], a
ENDM
; Sets the object0 palette to A.
MACRO set_obj0_palette
ldh [rOBP0], a
ENDM
; Sets the object1 palette to A.
MACRO set_obj1_palette
ldh [rOBP1], a
ENDM
; Sets all palettes to A.
MACRO set_all_palettes
set_bg_palette a
set_obj0_palette a
set_obj1_palette a
ENDM
; Writes two bytes to a register pair. ; Writes two bytes to a register pair.
MACRO lb MACRO lb
ld \1, (LOW(\2) << 8) | LOW(\3) ld \1, (LOW(\2) << 8) | LOW(\3)

View File

@ -1,15 +1,18 @@
SECTION "Hardware Control Functions", ROM0 SECTION "Hardware Control Functions", ROM0
SetBGPalette::
ldh [rBGP], a
ret
DisableAudio:: DisableAudio::
xor a, a xor a, a
ldh [rNR52], a ldh [rNR52], a
ret ret
DisableLCDKeepingSettings::
ldh a, [rLCDC]
and LOW(~LCDCF_ON)
wait_vram
ldh [rLCDC], a
ret
DisableLCD:: DisableLCD::
wait_vram wait_vram
xor a, a xor a, a
@ -18,6 +21,14 @@ DisableLCD::
EnableLCD:: EnableLCD::
ld a, LCDCF_ON | LCDCF_BGON ldh a, [rLCDC]
or LCDCF_ON | LCDCF_BGON | LCDCF_OBJON
ldh [rLCDC], a
ret
SetTileDataBanks::
ldh a, [rLCDC]
or LCDCF_BLK01
ldh [rLCDC], a ldh [rLCDC], a
ret ret

View File

@ -22,3 +22,13 @@ SafeMemCopy::
or a, c or a, c
jp nz, SafeMemCopy jp nz, SafeMemCopy
ret ret
; Sets memory from hl to hl+bc to d
UnsafeMemSet::
ld [hl], d
inc hl
dec bc
ld a, b
or a, c
jp nz, UnsafeMemSet
ret

322
src/include/sprites.asm Normal file
View File

@ -0,0 +1,322 @@
SECTION "Shadow OAM", WRAM0, ALIGN[8]
UNION
wShadowOAM:: ds 160
NEXTU
wSPRNext1:: ds 4
wSPRNext2:: ds 4
wSPRNext3:: ds 4
wSPRNext4:: ds 4
wSPRHold1:: ds 4
wSPRHold2:: ds 4
wSPRHold3:: ds 4
wSPRHold4:: ds 4
wSPRScore1:: ds 4
wSPRScore2:: ds 4
wSPRScore3:: ds 4
wSPRScore4:: ds 4
wSPRScore5:: ds 4
wSPRScore6:: ds 4
wSPRCLevel1:: ds 4
wSPRCLevel2:: ds 4
wSPRCLevel3:: ds 4
wSPRCLevel4:: ds 4
wSPRCLevel5:: ds 4
wSPRCLevel6:: ds 4
wSPRNLevel1:: ds 4
wSPRNLevel2:: ds 4
wSPRNLevel3:: ds 4
wSPRNLevel4:: ds 4
wSPRNLevel5:: ds 4
wSPRNLevel6:: ds 4
wSPRUnused:: ds (14 * 4)
ENDU
SECTION "OAM DMA Code", ROM0
OAMDMA::
LOAD "OAM DMA", HRAM
hOAMDMA::
ld a, HIGH(wShadowOAM)
ldh [rDMA], a
ld a, 40
: dec a
jr nz, :-
ret
ENDL
OAMDMAEnd::
SECTION "OAM Functions", ROM0
CopyOAMHandler::
ld de, OAMDMA
ld hl, hOAMDMA
ld bc, OAMDMAEnd - OAMDMA
call UnsafeMemCopy
ret
ClearOAM::
ld hl, _OAMRAM
ld bc, $9F
ld d, 0
call UnsafeMemSet
ld hl, wShadowOAM
ld bc, $9F
ld d, 0
call UnsafeMemSet
ret
SECTION "Domain Specific Functions", ROM0
; Index of next piece in A.
ApplyNext::
; Correct tile
add a, TILE_PIECE_0
ld [wSPRNext1+2], a
ld [wSPRNext2+2], a
ld [wSPRNext3+2], a
ld [wSPRNext4+2], a
sub a, TILE_PIECE_0
; X positions
ld hl, sPieceXOffsets
ld de, sPieceYOffsets
cp 0
jp z, .skipoffn
.getoffn
inc hl
inc de
dec a
jp nz, .getoffn
.skipoffn
ld a, [hl+]
add a, NEXT_BASE_X
ld [wSPRNext1+1], a
ld a, [hl+]
add a, NEXT_BASE_X
ld [wSPRNext2+1], a
ld a, [hl+]
add a, NEXT_BASE_X
ld [wSPRNext3+1], a
ld a, [hl]
add a, NEXT_BASE_X
ld [wSPRNext4+1], a
; Y positions
ld h, d
ld l, e
ld a, [hl+]
add a, NEXT_BASE_Y
ld [wSPRNext1+0], a
ld a, [hl+]
add a, NEXT_BASE_Y
ld [wSPRNext2+0], a
ld a, [hl+]
add a, NEXT_BASE_Y
ld [wSPRNext3+0], a
ld a, [hl]
add a, NEXT_BASE_Y
ld [wSPRNext4+0], a
ret
; Index of hold piece in A.
ApplyHold::
cp 255
jp nz, .doApplyHold
ld hl, wSPRHold1
ld bc, 16
ld d, 0
call UnsafeMemSet
ret
.doApplyHold
; Correct tile
add a, TILE_PIECE_0
ld [wSPRHold1+2], a
ld [wSPRHold2+2], a
ld [wSPRHold3+2], a
ld [wSPRHold4+2], a
sub a, TILE_PIECE_0
; X positions
ld hl, sPieceXOffsets
ld de, sPieceYOffsets
cp 0
jp z, .skipoffh
.getoffh
inc hl
inc de
dec a
jp nz, .getoffh
.skipoffh
ld a, [hl+]
add a, HOLD_BASE_X
ld [wSPRHold1+1], a
ld a, [hl+]
add a, HOLD_BASE_X
ld [wSPRHold2+1], a
ld a, [hl+]
add a, HOLD_BASE_X
ld [wSPRHold3+1], a
ld a, [hl]
add a, HOLD_BASE_X
ld [wSPRHold4+1], a
; Y positions
ld h, d
ld l, e
ld a, [hl+]
add a, HOLD_BASE_Y
ld [wSPRHold1+0], a
ld a, [hl+]
add a, HOLD_BASE_Y
ld [wSPRHold2+0], a
ld a, [hl+]
add a, HOLD_BASE_Y
ld [wSPRHold3+0], a
ld a, [hl]
add a, HOLD_BASE_Y
ld [wSPRHold4+0], a
ret
; Address of first sprite in hl.
; Address of first digit in de.
ApplyNumbers::
inc hl
inc hl
ld bc, 4
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
ld a, [de]
add a, TILE_0
ld [hl], a
add hl, bc
inc de
ret
SetNumberSpritePositions::
ld a, DIGIT_BASE_X
ld hl, wSPRScore1
ld [hl], SCORE_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRScore2
ld [hl], SCORE_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRScore3
ld [hl], SCORE_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRScore4
ld [hl], SCORE_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRScore5
ld [hl], SCORE_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRScore6
ld [hl], SCORE_BASE_Y
inc hl
ld [hl], a
ld a, DIGIT_BASE_X
ld hl, wSPRCLevel1
ld [hl], CLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRCLevel2
ld [hl], CLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRCLevel3
ld [hl], CLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRCLevel4
ld [hl], CLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRCLevel5
ld [hl], CLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRCLevel6
ld [hl], CLEVEL_BASE_Y
inc hl
ld [hl], a
ld a, DIGIT_BASE_X
ld hl, wSPRNLevel1
ld [hl], NLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRNLevel2
ld [hl], NLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRNLevel3
ld [hl], NLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRNLevel4
ld [hl], NLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRNLevel5
ld [hl], NLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ld hl, wSPRNLevel6
ld [hl], NLEVEL_BASE_Y
inc hl
ld [hl], a
add a, 8
ret

View File

@ -2,6 +2,7 @@ INCLUDE "globals.asm"
INCLUDE "memcpy.asm" INCLUDE "memcpy.asm"
INCLUDE "hardwarectl.asm" INCLUDE "hardwarectl.asm"
INCLUDE "interrupts.asm" INCLUDE "interrupts.asm"
INCLUDE "sprites.asm"
INCLUDE "res/tiles.inc" INCLUDE "res/tiles.inc"
INCLUDE "res/gameplay_map.inc" INCLUDE "res/gameplay_map.inc"
@ -9,27 +10,47 @@ SECTION "Code Entry Point", ROM0
MainEntryPoint:: MainEntryPoint::
; Turn off LCD during initialization. ; Turn off LCD during initialization.
call DisableLCD call DisableLCD
; Save some power and turn off the audio.
call DisableAudio call DisableAudio
; We use a single set of tiles for the entire game, so we copy it at the start. ; We use a single set of tiles for the entire game, so we copy it at the start.
ld de, Tiles ld de, Tiles
ld hl, $9000 ld hl, _VRAM
ld bc, TilesEnd - Tiles ld bc, TilesEnd - Tiles
call UnsafeMemCopy call UnsafeMemCopy
; Also to the second bank of tile data.
ld de, Tiles
ld hl, _VRAM + $800
ld bc, TilesEnd - Tiles
call UnsafeMemCopy
; Make sure both sprites and bg use the same tile data.
call SetTileDataBanks
; The tilemap is just for testing for now. ; The tilemap is just for testing for now.
ld de, GameplayTilemap ld de, GameplayTilemap
ld hl, $9800 ld hl, $9800
ld bc, GameplayTilemapEnd - GameplayTilemap ld bc, GameplayTilemapEnd - GameplayTilemap
call UnsafeMemCopy call UnsafeMemCopy
ld a, PALETTE_REGULAR ; Clear OAM.
call SetBGPalette call ClearOAM
call CopyOAMHandler
call SetNumberSpritePositions
; Set up the palettes.
ld a, PALETTE_REGULAR
set_all_palettes
; Zero out the ram where needed.
call InitializeVariables call InitializeVariables
; Set up the interrupt handlers.
call InitializeLCDCInterrupt call InitializeLCDCInterrupt
; And turn it back on before we start. ; And turn the LCD back on before we start.
call EnableLCD call EnableLCD
; Make sure the first game loop starts just like all the future ones. ; Make sure the first game loop starts just like all the future ones.
@ -41,27 +62,30 @@ GameLoop::
call GetInput call GetInput
call HandleTimers call HandleTimers
ld bc, 20*10
ld hl, wField
: ld a, [wFill]
ld [hl+], a
dec bc
ld a, b
or a, c
jp nz, :-
ld a, [wFill]
inc a
ld [wFill], a
; Handle gameplay here ; Handle gameplay here
; TODO ; TODO
ld a, 0
call ApplyNext
ld a, 4
call ApplyHold
ld hl, wSPRScore1
ld de, hScore
call ApplyNumbers
ld hl, wSPRCLevel1
ld de, hCLevel
call ApplyNumbers
ld hl, wSPRNLevel1
ld de, hNLevel
call ApplyNumbers
GameLoopEnd: GameLoopEnd:
wait_vblank wait_vblank
call hOAMDMA
call BlitField call BlitField
jp GameLoop jp GameLoop
@ -76,15 +100,23 @@ SECTION "Functions", ROM0
InitializeVariables: InitializeVariables:
xor a, a xor a, a
ld [wLCDCCtr], a ld [wLCDCCtr], a
ld hl, wField
ld bc, 10*22
ld d, TILE_FIELD_EMPTY
call UnsafeMemSet
ld hl, hScore
ld bc, (6*3)
ld d, 0
call UnsafeMemSet
ret ret
BlitField: BlitField:
; The first 16 rows can be blitted without checking for vram access. ; The first 14 rows can be blitted without checking for vram access.
ld de, wField ld de, wField + (2*10)
DEF row = 0 DEF row = 0
REPT 16 REPT 14
ld hl, FIELD_ROW_1+(32*row) ld hl, FIELD_TOP_LEFT+(32*row)
REPT 10 REPT 10
ld a, [de] ld a, [de]
ld [hl+], a ld [hl+], a
@ -93,9 +125,9 @@ BlitField:
DEF row += 1 DEF row += 1
ENDR ENDR
; The last 4 rows need some care. ; The last 6 rows need some care.
REPT 4 REPT 6
ld hl, FIELD_ROW_1+(32*row) ld hl, FIELD_TOP_LEFT+(32*row)
REPT 2 REPT 2
: ldh a, [rSTAT] : ldh a, [rSTAT]
and STATF_LCD and STATF_LCD

Binary file not shown.

View File

@ -240,18 +240,18 @@ Tiles::
DB $00,$C6,$00,$C6,$00,$7C,$00,$00 DB $00,$C6,$00,$C6,$00,$7C,$00,$00
DB $00,$7C,$00,$C6,$00,$C6,$00,$7E DB $00,$7C,$00,$C6,$00,$C6,$00,$7E
DB $00,$06,$00,$C6,$00,$7C,$00,$00 DB $00,$06,$00,$C6,$00,$7C,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $3C,$FF,$3C,$FF,$3C,$FF,$3C,$FF
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $3C,$FF,$3C,$FF,$3C,$FF,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $99,$7E,$99,$7E,$99,$7E,$99,$7E
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $99,$7E,$99,$7E,$99,$7E,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $C3,$3C,$C3,$3C,$C3,$3C,$C3,$3C
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $C3,$3C,$C3,$3C,$C3,$3C,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $66,$18,$66,$18,$66,$18,$66,$18
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $66,$18,$66,$18,$66,$18,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $3C,$00,$3C,$00,$3C,$00,$3C,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $3C,$00,$3C,$00,$3C,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $18,$00,$18,$00,$18,$00,$18,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $18,$00,$18,$00,$18,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00 DB $00,$00,$00,$00,$00,$00,$00,$00

View File

@ -1,5 +1,5 @@
#Emulicious settings file #Emulicious settings file
#Tue Oct 10 08:21:37 CEST 2023 #Wed Oct 11 08:17:53 CEST 2023
SouthPanelHeight=635 SouthPanelHeight=635
GameBoyErrorBreakpointMessage6= GameBoyErrorBreakpointMessage6=
GameBoyErrorBreakpointMessage5= GameBoyErrorBreakpointMessage5=
@ -18,7 +18,11 @@ Key19=72
GameBoyErrorBreakpointMessage0= GameBoyErrorBreakpointMessage0=
Key18=71 Key18=71
Key17=76 Key17=76
WindowMemoryTracerWindowY=631
WindowPaletteViewerY=619
Key16=74 Key16=74
WindowMemoryTracerWindowX=383
WindowPaletteViewerX=262
GameBoyErrorBreakpointEnabled9=false GameBoyErrorBreakpointEnabled9=false
DebuggerEventFiltersGameBoy= DebuggerEventFiltersGameBoy=
Key15=75 Key15=75
@ -42,6 +46,7 @@ GameBoyErrorBreakpointEnabled3=false
Gamepad0Key5=-1 Gamepad0Key5=-1
GameBoyErrorBreakpointEnabled2=false GameBoyErrorBreakpointEnabled2=false
Gamepad0Key4=-1 Gamepad0Key4=-1
WindowVideoViewerOpen=true
GameBoyErrorBreakpointEnabled1=false GameBoyErrorBreakpointEnabled1=false
Gamepad0Key3=-1 Gamepad0Key3=-1
GameBoyErrorBreakpointEnabled0=false GameBoyErrorBreakpointEnabled0=false
@ -49,14 +54,17 @@ Gamepad0Key2=-1
Gamepad0Key1=-1 Gamepad0Key1=-1
AudioSync=false AudioSync=false
Gamepad0Key0=-1 Gamepad0Key0=-1
WindowTilemapViewerOpen=true WindowTilemapViewerOpen=false
SMSInputDeviceB=1 SMSInputDeviceB=1
SMSInputDeviceA=1 SMSInputDeviceA=1
DataExecutionBreakpointEnabled=false DataExecutionBreakpointEnabled=false
GameBoyErrorBreakpointCondition32= GameBoyErrorBreakpointCondition32=
WindowEventViewerWindowY=489 WindowEventViewerWindowY=489
WindowEventViewerWindowX=1472 WindowEventViewerWindowX=1472
DebuggerWestPanelSelectedTab=0 WindowSpriteViewerHeight=527
WindowSpriteViewerWidth=370
DebuggerWestPanelSelectedTab=1
WindowMemoryTracerWindowHeight=289
Gamepad0Key37=-1 Gamepad0Key37=-1
Gamepad0Key36=-1 Gamepad0Key36=-1
SMSbuttonsGamepad=-1 SMSbuttonsGamepad=-1
@ -88,11 +96,15 @@ Gamepad0Key22=-1
Gamepad0Key21=-1 Gamepad0Key21=-1
Gamepad0Key20=-1 Gamepad0Key20=-1
UninitializedMemoryBreakpointEnabled=false UninitializedMemoryBreakpointEnabled=false
RegistersGameBoy=AF,BC,DE,HL,SP,PC,LCDC,STAT,LY,DIV,IE,IF
WindowMemoryTracerWindowOpen=false
Gamepad0Key19=-1 Gamepad0Key19=-1
WindowDebuggerHeight=987 WindowDebuggerHeight=987
Gamepad0Key18=-1 Gamepad0Key18=-1
Gamepad0Key17=-1 Gamepad0Key17=-1
WindowSpriteViewerY=512
Gamepad0Key16=-1 Gamepad0Key16=-1
WindowSpriteViewerX=320
Gamepad0Key15=-1 Gamepad0Key15=-1
Gamepad0Key14=-1 Gamepad0Key14=-1
Gamepad0Key13=-1 Gamepad0Key13=-1
@ -104,6 +116,9 @@ DataExecutionBreakpointSuspend=true
SMSbuttonsKeyboard=false SMSbuttonsKeyboard=false
GBGamepad=-1 GBGamepad=-1
WindowEventViewerWindowOpen=true WindowEventViewerWindowOpen=true
WindowPaletteViewerHeight=313
WindowMemoryTracerWindowWidth=243
WindowVideoViewerWidth=980
StretchToWindow=false StretchToWindow=false
Gamepad1Key37=-1 Gamepad1Key37=-1
Gamepad1Key36=-1 Gamepad1Key36=-1
@ -115,6 +130,7 @@ Gamepad1Key32=-1
Gamepad1Key31=-1 Gamepad1Key31=-1
Gamepad1Key30=-1 Gamepad1Key30=-1
InterruptBreakpointCondition= InterruptBreakpointCondition=
WindowPaletteViewerOpen=false
SMSGamepadAThreshold=50 SMSGamepadAThreshold=50
Gamepad1Key29=-1 Gamepad1Key29=-1
Gamepad1Key28=-1 Gamepad1Key28=-1
@ -132,9 +148,11 @@ Gamepad1Key21=-1
Gamepad1Key20=-1 Gamepad1Key20=-1
StackSplitLocation=320 StackSplitLocation=320
FontSize=13 FontSize=13
CombineVideoViewers=true
WindowEmuliciousHeight=781 WindowEmuliciousHeight=781
CodeFontSize=13 CodeFontSize=13
WindowTilemapViewerY=544 WindowTilemapViewerY=544
MemoryTracer=true
GBGamepadKeyboard=false GBGamepadKeyboard=false
UninitializedMemoryBreakpointSuspend=true UninitializedMemoryBreakpointSuspend=true
WindowTilemapViewerX=1013 WindowTilemapViewerX=1013
@ -145,6 +163,7 @@ Gamepad1Key19=-1
Gamepad1Key18=-1 Gamepad1Key18=-1
BankSwapAtPCBreakpointEnabled=false BankSwapAtPCBreakpointEnabled=false
Gamepad1Key17=-1 Gamepad1Key17=-1
WindowPaletteViewerWidth=485
Gamepad1Key16=-1 Gamepad1Key16=-1
Gamepad1Key15=-1 Gamepad1Key15=-1
Recent0=C\:\\workspace\\dmgtris\\bin\\out.gb Recent0=C\:\\workspace\\dmgtris\\bin\\out.gb
@ -173,7 +192,9 @@ GameBoyErrorBreakpointMessage32=
BankSwapAtPCBreakpointCondition= BankSwapAtPCBreakpointCondition=
WindowTilemapViewerWidth=404 WindowTilemapViewerWidth=404
SMSbuttonsThreshold=50 SMSbuttonsThreshold=50
WindowTileViewerY=549
Gamepad1Key9=-1 Gamepad1Key9=-1
WindowTileViewerX=271
Gamepad1Key8=-1 Gamepad1Key8=-1
UninitializedMemoryBreakpointCondition= UninitializedMemoryBreakpointCondition=
Gamepad1Key7=-1 Gamepad1Key7=-1
@ -184,7 +205,9 @@ Gamepad1Key5=-1
GameBoyErrorBreakpointSuspend17=true GameBoyErrorBreakpointSuspend17=true
Gamepad1Key4=-1 Gamepad1Key4=-1
GameBoyErrorBreakpointSuspend16=true GameBoyErrorBreakpointSuspend16=true
WindowVideoViewerY=275
Gamepad1Key3=-1 Gamepad1Key3=-1
WindowVideoViewerX=946
Gamepad1Key2=-1 Gamepad1Key2=-1
Gamepad1Key1=-1 Gamepad1Key1=-1
Gamepad1Key0=-1 Gamepad1Key0=-1
@ -192,6 +215,8 @@ GameBoyErrorBreakpointSuspend10=true
WindowTilemapViewerHeight=744 WindowTilemapViewerHeight=744
WindowEventViewerWindowDivider=309 WindowEventViewerWindowDivider=309
GameBoyErrorBreakpointMessage20= GameBoyErrorBreakpointMessage20=
MemoryTracerDisplayFileOffsetsForROM=true
WindowTileViewerWidth=467
WindowDebuggerY=158 WindowDebuggerY=158
WindowDebuggerX=939 WindowDebuggerX=939
Key37=-1 Key37=-1
@ -199,6 +224,7 @@ Key36=-1
Key35=-1 Key35=-1
GameBoyErrorBreakpointCondition9= GameBoyErrorBreakpointCondition9=
GameBoyErrorBreakpointEnabled32=false GameBoyErrorBreakpointEnabled32=false
WindowTileViewerOpen=false
Key34=-1 Key34=-1
GameBoyErrorBreakpointCondition8= GameBoyErrorBreakpointCondition8=
Key33=-1 Key33=-1
@ -211,7 +237,7 @@ DebuggerMemoryTabVisibleRect=0,0,0,0
Key31=-1 Key31=-1
GameBoyErrorBreakpointCondition5= GameBoyErrorBreakpointCondition5=
GameBoyErrorBreakpointMessage17= GameBoyErrorBreakpointMessage17=
OutlineWidth=324 OutlineWidth=425
WindowEventViewerWindowWidth=930 WindowEventViewerWindowWidth=930
Key30=-1 Key30=-1
GameBoyErrorBreakpointCondition4= GameBoyErrorBreakpointCondition4=
@ -231,22 +257,25 @@ Key3=10
Key2=192 Key2=192
Key1=75 Key1=75
Key0=74 Key0=74
WindowVideoViewerHeight=1027
Update=2 Update=2
Key29=-1 Key29=-1
Key28=10 Key28=10
Key27=-1 Key27=-1
WindowSpriteViewerOpen=false
Key26=-1 Key26=-1
Key25=-1 Key25=-1
Key24=-1 Key24=-1
WindowTileViewerHeight=453
Key23=10 Key23=10
GameBoyErrorBreakpointEnabled20=false GameBoyErrorBreakpointEnabled20=false
Key22=-1 Key22=-1
Key21=-1 Key21=-1
Key20=-1 Key20=-1
BankSwapAtPCBreakpointSuspend=true BankSwapAtPCBreakpointSuspend=true
WindowEmuliciousY=385 WindowEmuliciousY=376
WindowEmuliciousX=97 WindowEmuliciousX=146
DebuggerMemorySelectedTab=RAM DebuggerMemorySelectedTab=HRAM
WindowDebuggerWidth=1110 WindowDebuggerWidth=1110
GameBoyErrorBreakpointMessage9= GameBoyErrorBreakpointMessage9=
GameBoyErrorBreakpointMessage8= GameBoyErrorBreakpointMessage8=

View File

@ -1,4 +1,5 @@
[General] [General]
GBRPath=c:\workspace\dmgtris\ GBRPath=c:\workspace\dmgtris\src\res\
[Recently used files] [Recently used files]
F0=c:\workspace\dmgtris\tiles.gbr F0=c:\workspace\dmgtris\src\res\tiles.gbr
F1=c:\workspace\dmgtris\tiles.gbr

View File

@ -1,30 +0,0 @@
; TILES.INC
;
; Include File.
;
; Info:
; Section : Tiles
; Bank : 0
; Form : All tiles as one unit.
; Format : Gameboy 4 color.
; Compression : None.
; Counter : None.
; Tile size : 8 x 8
; Tiles : 0 to 127
;
; Palette colors : None.
; SGB Palette : None.
; CGB Palette : None.
;
; Convert to metatiles : No.
;
; This file was generated by GBTD v2.2
; Bank of tiles.
TileLabelBank EQU 0
; Start of tile array.
GLOBAL TileLabel
; End of TILES.INC

View File

@ -1,284 +0,0 @@
; TILES.Z80
;
; Tile Source File.
;
; Info:
; Section : Tiles
; Bank : 0
; Form : All tiles as one unit.
; Format : Gameboy 4 color.
; Compression : None.
; Counter : None.
; Tile size : 8 x 8
; Tiles : 0 to 127
;
; Palette colors : None.
; SGB Palette : None.
; CGB Palette : None.
;
; Convert to metatiles : No.
;
; This file was generated by GBTD v2.2
SECTION "Tiles", ROM0
; Start of tile array.
TileLabel::
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $67,$1F,$67,$1F,$67,$1F,$67,$1F
DB $67,$1F,$67,$1F,$67,$1F,$00,$00
DB $E6,$F8,$E6,$F8,$E6,$F8,$E6,$F8
DB $E6,$F8,$E6,$F8,$E6,$F8,$00,$00
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$FF
DB $00,$FF,$FF,$00,$FF,$00,$00,$00
DB $67,$1F,$67,$1F,$67,$1F,$60,$1F
DB $60,$1F,$7F,$00,$7F,$00,$00,$00
DB $E6,$F8,$E6,$F8,$E6,$F8,$06,$F8
DB $06,$F8,$FE,$00,$FE,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$01,$00,$00,$00
DB $00,$00,$00,$00,$00,$FF,$FF,$FF
DB $00,$FF,$00,$00,$00,$00,$00,$00
DB $80,$80,$E0,$E0,$F8,$F8,$FE,$FE
DB $F8,$F8,$E0,$E0,$80,$80,$00,$00
DB $00,$FF,$7E,$99,$66,$BD,$66,$BD
DB $66,$BD,$7E,$99,$00,$FF,$00,$00
DB $00,$FF,$36,$C9,$6C,$93,$5A,$A5
DB $36,$C9,$6C,$93,$00,$FF,$00,$00
DB $00,$FF,$00,$BD,$3C,$81,$00,$81
DB $3C,$81,$00,$BD,$00,$FF,$00,$00
DB $00,$FF,$3C,$C3,$5A,$A5,$7E,$81
DB $5A,$A5,$3C,$C3,$00,$FF,$00,$00
DB $00,$FF,$5A,$A5,$42,$BD,$42,$BD
DB $42,$BD,$5A,$A5,$00,$FF,$00,$00
DB $00,$FF,$7E,$81,$7E,$81,$7E,$81
DB $7E,$81,$7E,$81,$00,$FF,$00,$00
DB $00,$FF,$54,$AB,$2A,$D5,$54,$AB
DB $2A,$D5,$54,$AB,$00,$FF,$00,$00
DB $FF,$FF,$FF,$99,$E7,$BD,$E7,$BD
DB $E7,$BD,$FF,$99,$FF,$FF,$00,$00
DB $FF,$FF,$B7,$C9,$ED,$93,$DB,$A5
DB $B7,$C9,$ED,$93,$FF,$FF,$00,$00
DB $FF,$FF,$81,$BD,$BD,$81,$81,$81
DB $BD,$81,$81,$BD,$FF,$FF,$00,$00
DB $FF,$FF,$BD,$C3,$DB,$A5,$FF,$81
DB $DB,$A5,$BD,$C3,$FF,$FF,$00,$00
DB $FF,$FF,$DB,$A5,$C3,$BD,$C3,$BD
DB $C3,$BD,$DB,$A5,$FF,$FF,$00,$00
DB $FF,$FF,$FF,$81,$FF,$81,$FF,$81
DB $FF,$81,$FF,$81,$FF,$FF,$00,$00
DB $FF,$FF,$D5,$AB,$AB,$D5,$D5,$AB
DB $AB,$D5,$D5,$AB,$FF,$FF,$00,$00
DB $00,$FF,$7E,$99,$66,$BD,$66,$BD
DB $66,$BD,$FE,$BB,$FF,$FF,$00,$00
DB $00,$FF,$36,$C9,$6C,$93,$5A,$A5
DB $36,$C9,$EE,$BB,$FF,$FF,$00,$00
DB $00,$FF,$00,$BD,$3C,$81,$00,$81
DB $3C,$81,$AA,$BF,$FF,$FF,$00,$00
DB $00,$FF,$3C,$C3,$5A,$A5,$7E,$81
DB $5A,$A5,$BE,$EB,$FF,$FF,$00,$00
DB $00,$FF,$5A,$A5,$42,$BD,$42,$BD
DB $42,$BD,$FA,$AF,$FF,$FF,$00,$00
DB $00,$FF,$7E,$81,$7E,$81,$7E,$81
DB $7E,$81,$FE,$AB,$FF,$FF,$00,$00
DB $00,$FF,$54,$AB,$2A,$D5,$54,$AB
DB $2A,$D5,$FE,$AB,$FF,$FF,$00,$00
DB $00,$FF,$7E,$99,$66,$BD,$66,$BD
DB $EE,$BF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$36,$C9,$6C,$93,$5A,$A5
DB $BE,$EB,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$00,$BD,$3C,$81,$00,$81
DB $BE,$AB,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$3C,$C3,$5A,$A5,$7E,$81
DB $FA,$AF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$5A,$A5,$42,$BD,$42,$BD
DB $EA,$BF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$7E,$81,$7E,$81,$7E,$81
DB $FE,$AB,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$54,$AB,$2A,$D5,$54,$AB
DB $AA,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$7E,$99,$66,$BD,$EE,$BF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$36,$C9,$6C,$93,$FA,$AF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$00,$BD,$3C,$81,$AA,$AB
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$3C,$C3,$5A,$A5,$FE,$AB
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$5A,$A5,$42,$BD,$EA,$BF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$7E,$81,$7E,$81,$FE,$AB
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$54,$AB,$2A,$D5,$FE,$AB
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$7E,$99,$EE,$BF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$36,$C9,$EE,$BB,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$00,$BD,$BE,$AB,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$3C,$C3,$FA,$AF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$5A,$A5,$EA,$BF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$7E,$81,$FE,$AB,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$54,$AB,$AA,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$FE,$BB,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$BE,$EB,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$AA,$BF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$BE,$EB,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$FA,$AF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$FE,$AB,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$FF,$FE,$AB,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $AA,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $AA,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $AA,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $AA,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $AA,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $AA,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $AA,$FF,$FF,$FF,$FF,$FF,$FF,$FF
DB $FF,$FF,$FF,$FF,$FF,$FF,$00,$00
DB $00,$00,$00,$00,$FF,$FF,$FF,$00
DB $FF,$FF,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$F0,$F0,$F8,$08
DB $FC,$E4,$1C,$14,$1C,$14,$00,$00
DB $00,$00,$00,$00,$07,$07,$0F,$08
DB $1F,$13,$1C,$14,$1C,$14,$00,$00
DB $1C,$14,$1C,$14,$FC,$E4,$F8,$08
DB $F0,$F0,$00,$00,$00,$00,$00,$00
DB $1C,$14,$1C,$14,$1F,$13,$0F,$08
DB $07,$07,$00,$00,$00,$00,$00,$00
DB $1C,$14,$1C,$14,$FC,$E4,$F8,$08
DB $FC,$E4,$1C,$14,$1C,$14,$00,$00
DB $1C,$14,$1C,$14,$1F,$13,$0F,$08
DB $1F,$13,$1C,$14,$1C,$14,$00,$00
DB $1C,$14,$1C,$14,$1C,$14,$1C,$14
DB $1C,$14,$1C,$14,$1C,$14,$00,$00
DB $38,$38,$6C,$6C,$C6,$C6,$FE,$FE
DB $C6,$C6,$C6,$C6,$C6,$C6,$00,$00
DB $FC,$FC,$C6,$C6,$C6,$C6,$FC,$FC
DB $C6,$C6,$C6,$C6,$FC,$FC,$00,$00
DB $7C,$7C,$C6,$C6,$C0,$C0,$C0,$C0
DB $C0,$C0,$C6,$C6,$7C,$7C,$00,$00
DB $FC,$FC,$C6,$C6,$C6,$C6,$C6,$C6
DB $C6,$C6,$C6,$C6,$FC,$FC,$00,$00
DB $FE,$FE,$C0,$C0,$C0,$C0,$F8,$F8
DB $C0,$C0,$C0,$C0,$FE,$FE,$00,$00
DB $FE,$FE,$C0,$C0,$C0,$C0,$F8,$F8
DB $C0,$C0,$C0,$C0,$C0,$C0,$00,$00
DB $7C,$7C,$C6,$C6,$C0,$C0,$CE,$CE
DB $C6,$C6,$C6,$C6,$7C,$7C,$00,$00
DB $C6,$C6,$C6,$C6,$C6,$C6,$FE,$FE
DB $C6,$C6,$C6,$C6,$C6,$C6,$00,$00
DB $60,$60,$60,$60,$60,$60,$60,$60
DB $60,$60,$60,$60,$60,$60,$00,$00
DB $0C,$0C,$0C,$0C,$0C,$0C,$0C,$0C
DB $CC,$CC,$CC,$CC,$78,$78,$00,$00
DB $C6,$C6,$C6,$C6,$CC,$CC,$F8,$F8
DB $CC,$CC,$C6,$C6,$C6,$C6,$00,$00
DB $60,$60,$60,$60,$60,$60,$60,$60
DB $60,$60,$60,$60,$7C,$7C,$00,$00
DB $C6,$C6,$EE,$EE,$FE,$FE,$D6,$D6
DB $C6,$C6,$C6,$C6,$C6,$C6,$00,$00
DB $C6,$C6,$E6,$E6,$F6,$F6,$DE,$DE
DB $CE,$CE,$C6,$C6,$C6,$C6,$00,$00
DB $7C,$7C,$C6,$C6,$C6,$C6,$C6,$C6
DB $C6,$C6,$C6,$C6,$7C,$7C,$00,$00
DB $FC,$FC,$C6,$C6,$C6,$C6,$FC,$FC
DB $C0,$C0,$C0,$C0,$C0,$C0,$00,$00
DB $7C,$7C,$C6,$C6,$C6,$C6,$C6,$C6
DB $D6,$D6,$DE,$DE,$7C,$7C,$00,$00
DB $FC,$FC,$C6,$C6,$C6,$C6,$FC,$FC
DB $F8,$F8,$DC,$DC,$CE,$CE,$00,$00
DB $7E,$7E,$C0,$C0,$C0,$C0,$7C,$7C
DB $06,$06,$06,$06,$FC,$FC,$00,$00
DB $FC,$FC,$30,$30,$30,$30,$30,$30
DB $30,$30,$30,$30,$30,$30,$00,$00
DB $C6,$C6,$C6,$C6,$C6,$C6,$C6,$C6
DB $C6,$C6,$C6,$C6,$7C,$7C,$00,$00
DB $C6,$C6,$C6,$C6,$6C,$6C,$6C,$6C
DB $6C,$6C,$38,$38,$38,$38,$00,$00
DB $C6,$C6,$C6,$C6,$C6,$C6,$C6,$C6
DB $D6,$D6,$D6,$D6,$6C,$6C,$00,$00
DB $C6,$C6,$C6,$C6,$6C,$6C,$38,$38
DB $6C,$6C,$C6,$C6,$C6,$C6,$00,$00
DB $C6,$C6,$EE,$EE,$7C,$7C,$38,$38
DB $70,$70,$E0,$E0,$C0,$C0,$00,$00
DB $FE,$FE,$0C,$0C,$18,$18,$30,$30
DB $60,$60,$C0,$C0,$FE,$FE,$00,$00
DB $7C,$7C,$CE,$CE,$D6,$D6,$D6,$D6
DB $D6,$D6,$E6,$E6,$7C,$7C,$00,$00
DB $38,$38,$78,$78,$D8,$D8,$18,$18
DB $18,$18,$18,$18,$18,$18,$00,$00
DB $7C,$7C,$C6,$C6,$C6,$C6,$0C,$0C
DB $38,$38,$E0,$E0,$FE,$FE,$00,$00
DB $7C,$7C,$C6,$C6,$06,$06,$0C,$0C
DB $06,$06,$C6,$C6,$7C,$7C,$00,$00
DB $1C,$1C,$3C,$3C,$6C,$6C,$CC,$CC
DB $FE,$FE,$0C,$0C,$0C,$0C,$00,$00
DB $FE,$FE,$C0,$C0,$C0,$C0,$FC,$FC
DB $06,$06,$06,$06,$FC,$FC,$00,$00
DB $7C,$7C,$C6,$C6,$C0,$C0,$FC,$FC
DB $C6,$C6,$C6,$C6,$7C,$7C,$00,$00
DB $FE,$FE,$0C,$0C,$18,$18,$18,$18
DB $30,$30,$30,$30,$30,$30,$00,$00
DB $7C,$7C,$C6,$C6,$C6,$C6,$7C,$7C
DB $C6,$C6,$C6,$C6,$7C,$7C,$00,$00
DB $7C,$7C,$C6,$C6,$C6,$C6,$7E,$7E
DB $06,$06,$C6,$C6,$7C,$7C,$00,$00
DB $00,$7C,$00,$CE,$00,$D6,$00,$D6
DB $00,$D6,$00,$E6,$00,$7C,$00,$00
DB $00,$38,$00,$78,$00,$D8,$00,$18
DB $00,$18,$00,$18,$00,$18,$00,$00
DB $00,$7C,$00,$C6,$00,$C6,$00,$0C
DB $00,$38,$00,$E0,$00,$FE,$00,$00
DB $00,$7C,$00,$C6,$00,$06,$00,$0C
DB $00,$06,$00,$C6,$00,$7C,$00,$00
DB $00,$1C,$00,$3C,$00,$6C,$00,$CC
DB $00,$FE,$00,$0C,$00,$0C,$00,$00
DB $00,$FE,$00,$C0,$00,$C0,$00,$FC
DB $00,$06,$00,$06,$00,$FC,$00,$00
DB $00,$7C,$00,$C6,$00,$C0,$00,$FC
DB $00,$C6,$00,$C6,$00,$7C,$00,$00
DB $00,$FE,$00,$0C,$00,$18,$00,$18
DB $00,$30,$00,$30,$00,$30,$00,$00
DB $00,$7C,$00,$C6,$00,$C6,$00,$7C
DB $00,$C6,$00,$C6,$00,$7C,$00,$00
DB $00,$7C,$00,$C6,$00,$C6,$00,$7E
DB $00,$06,$00,$C6,$00,$7C,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
; End of TILES.Z80