store 4 cells per byte, raised resolution to 40x36, no rendering yet
This commit is contained in:
388
Code/main.asm
388
Code/main.asm
@@ -118,7 +118,7 @@ Start:
|
||||
; init buffer 0
|
||||
ld hl, Buffer0
|
||||
ld de, DefaultMap
|
||||
ld bc, 32 * 32
|
||||
ld bc, 20 * 18
|
||||
call MemoryCopy
|
||||
|
||||
; display bg 9800
|
||||
@@ -139,8 +139,8 @@ Start:
|
||||
|
||||
.topleft
|
||||
; handle top left corner
|
||||
ld bc, TopLeftCorner
|
||||
call Conway
|
||||
ld hl, TopLeftCorner
|
||||
call ConwayGroup
|
||||
|
||||
; advance to next cell in top row
|
||||
ld hl, New
|
||||
@@ -154,8 +154,8 @@ Start:
|
||||
ld [XLoop], a
|
||||
|
||||
; handle top row cell
|
||||
ld bc, TopRow
|
||||
call Conway
|
||||
ld hl, TopRow
|
||||
call ConwayGroup
|
||||
|
||||
; advance to next cell in top row
|
||||
ld hl, New
|
||||
@@ -170,8 +170,8 @@ Start:
|
||||
|
||||
; handle top right corner
|
||||
.topright
|
||||
ld bc, TopRightCorner
|
||||
call Conway
|
||||
ld hl, TopRightCorner
|
||||
call ConwayGroup
|
||||
|
||||
; advance pointers to next row
|
||||
ld hl, New
|
||||
@@ -184,8 +184,8 @@ Start:
|
||||
ld [YLoop], a
|
||||
|
||||
; handle first element in row
|
||||
ld bc, LeftColumn
|
||||
call Conway
|
||||
ld hl, LeftColumn
|
||||
call ConwayGroup
|
||||
|
||||
; advance to next cell
|
||||
ld hl, New
|
||||
@@ -198,8 +198,8 @@ Start:
|
||||
ld [XLoop], a
|
||||
|
||||
; handle element inside row
|
||||
ld bc, Inner
|
||||
call Conway
|
||||
ld hl, Inner
|
||||
call ConwayGroup
|
||||
|
||||
; advance to next cell
|
||||
ld hl, New
|
||||
@@ -214,8 +214,8 @@ Start:
|
||||
|
||||
; handle last element in row
|
||||
.rightcolumn
|
||||
ld bc, RightColumn
|
||||
call Conway
|
||||
ld hl, RightColumn
|
||||
call ConwayGroup
|
||||
|
||||
; advance to next row
|
||||
ld hl, New
|
||||
@@ -236,8 +236,8 @@ Start:
|
||||
|
||||
; handle bottom left element
|
||||
.bottomleft
|
||||
ld bc, BottomLeftCorner
|
||||
call Conway
|
||||
ld hl, BottomLeftCorner
|
||||
call ConwayGroup
|
||||
|
||||
; advance to next cell in bottom row
|
||||
ld hl, New
|
||||
@@ -251,8 +251,8 @@ Start:
|
||||
ld [XLoop], a
|
||||
|
||||
; handle top row cell
|
||||
ld bc, BottomRow
|
||||
call Conway
|
||||
ld hl, BottomRow
|
||||
call ConwayGroup
|
||||
|
||||
; advance to next cell in top row
|
||||
ld hl, New
|
||||
@@ -267,8 +267,8 @@ Start:
|
||||
|
||||
; handle last element
|
||||
.bottomright
|
||||
ld bc, BottomRightCorner
|
||||
call Conway
|
||||
ld hl, BottomRightCorner
|
||||
call ConwayGroup
|
||||
|
||||
; increment new pointer to first byte after buffer
|
||||
ld hl, New
|
||||
@@ -338,32 +338,48 @@ Start:
|
||||
|
||||
jp .mainloop
|
||||
|
||||
SECTION "Table based conway's game of life step for one cell", ROM0
|
||||
; bc = pointer to neighbor offsets
|
||||
SECTION "Load cell group and 8 neighbors to HRAM, then compute", ROM0
|
||||
; hl = pointer to neighbor offsets
|
||||
; destroys all registers
|
||||
Conway:
|
||||
; reset alive counter
|
||||
xor a
|
||||
ld [Alive], a
|
||||
ConwayGroup:
|
||||
; save pointer to neighbors
|
||||
push hl
|
||||
|
||||
; pointer to HRAM
|
||||
ld c, LOW(Cells)
|
||||
|
||||
; load old pointer into hl
|
||||
ld hl, Old
|
||||
ld a, [hl+]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
|
||||
; load cell group
|
||||
ld a, [hl]
|
||||
|
||||
; write cell group into hram
|
||||
ld [$FF00+c], a
|
||||
|
||||
; increment hram pointer
|
||||
inc c
|
||||
|
||||
; counter to 8
|
||||
ld b, 8
|
||||
|
||||
.loop
|
||||
; restore pointer to neighbors
|
||||
pop hl
|
||||
|
||||
; load offset into de
|
||||
ld h, b
|
||||
ld l, c
|
||||
ld a, [hl+]
|
||||
ld e, a
|
||||
ld a, [hl+]
|
||||
ld d, a
|
||||
|
||||
; check end of list
|
||||
or a, e ; (a still contains d)
|
||||
jr z, .decide
|
||||
; save incremented pointer to neighbors
|
||||
push hl
|
||||
|
||||
; advance bc to next neighbor
|
||||
ld b, h
|
||||
ld c, l
|
||||
|
||||
; load old pointer
|
||||
; load old pointer into hl
|
||||
ld hl, Old
|
||||
ld a, [hl+]
|
||||
ld h, [hl]
|
||||
@@ -375,100 +391,158 @@ Conway:
|
||||
; load neighbor
|
||||
ld a, [hl]
|
||||
|
||||
; check neighbor is alive
|
||||
or a, 0
|
||||
jr z, .loop
|
||||
; store neighbor into hram
|
||||
ld [$FF00+c], a
|
||||
|
||||
; increment alive
|
||||
ld hl, Alive
|
||||
inc [hl]
|
||||
; increment pointer into hram
|
||||
inc c
|
||||
|
||||
; continue to next neighbor
|
||||
jr .loop
|
||||
; decrement counter
|
||||
dec b
|
||||
|
||||
.decide
|
||||
; load old pointer
|
||||
ld hl, Old
|
||||
ld a, [hl+]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
; continue to next neighbor if any
|
||||
jr nz, .loop
|
||||
|
||||
; load status
|
||||
ld a, [hl]
|
||||
.compute
|
||||
; remove pointer to offsets from stack
|
||||
pop hl
|
||||
|
||||
; check if alive
|
||||
or a, 0
|
||||
jr nz, .alive
|
||||
; reset result
|
||||
xor a
|
||||
ldh [Result], a
|
||||
|
||||
.dead
|
||||
; load live neighbor count
|
||||
ld a, [Alive]
|
||||
; compute all 4 cells
|
||||
ld hl, TopLeftMask
|
||||
call Conway
|
||||
|
||||
; check if there is 3 neighbors
|
||||
cp a, 3
|
||||
jr nz, .writedead
|
||||
ld hl, TopRightMask
|
||||
call Conway
|
||||
|
||||
ld hl, BottomLeftMask
|
||||
call Conway
|
||||
|
||||
ld hl, BottomRightMask
|
||||
call Conway
|
||||
|
||||
.writealive
|
||||
; load new pointer
|
||||
ld hl, New
|
||||
ld a, [hl+]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
|
||||
; write alive
|
||||
ld a, 1
|
||||
; load result
|
||||
ldh a, [Result]
|
||||
|
||||
; save result to new buffer
|
||||
ld [hl], a
|
||||
|
||||
ret
|
||||
|
||||
SECTION "Conway cell compute", ROM0
|
||||
; hl = pointer to cell group masks
|
||||
Conway:
|
||||
|
||||
; reset alive counter
|
||||
xor a
|
||||
ldh [Alive], a
|
||||
|
||||
; load cells pointer to first neighbor
|
||||
ld c, LOW(Cells + 1)
|
||||
|
||||
.loop
|
||||
; load next mask
|
||||
ld a, [hl+]
|
||||
|
||||
; check end of table
|
||||
cp a, $FF
|
||||
jr z, .decide
|
||||
|
||||
; move mask to d
|
||||
ld d, a
|
||||
|
||||
; load data
|
||||
ld a, [$FF00+c]
|
||||
|
||||
; mask data
|
||||
and a, d
|
||||
|
||||
; count bits set
|
||||
ld de, BitsSet
|
||||
add a, e
|
||||
ld e, a
|
||||
ld a, [de]
|
||||
ld b, a
|
||||
|
||||
; add to alive
|
||||
ldh a, [Alive]
|
||||
add a, b
|
||||
ldh [Alive], a
|
||||
|
||||
; increment cells pointer
|
||||
inc c
|
||||
|
||||
; loop over all neighbors
|
||||
jr .loop
|
||||
|
||||
; load current group mask
|
||||
.decide
|
||||
ld b, [hl]
|
||||
|
||||
; load current cell group
|
||||
ldh a, [Cells]
|
||||
|
||||
; mask data
|
||||
and a, b
|
||||
|
||||
; load alive count
|
||||
ldh a, [Alive]
|
||||
|
||||
jr z, .dead
|
||||
.alive
|
||||
; load live neighbor count
|
||||
ld a, [Alive]
|
||||
; check if there is two or three neighbors
|
||||
bit 1, a
|
||||
ret z
|
||||
|
||||
; check if there is 3 neighbors
|
||||
cp a, 3
|
||||
jr z, .writealive
|
||||
.writealive
|
||||
; add mask to result
|
||||
ldh a, [Result]
|
||||
or a, b
|
||||
ldh [Result], a
|
||||
ret
|
||||
|
||||
; check if there is 2 neighbors
|
||||
.dead
|
||||
; check if there is two neighbors
|
||||
cp a, 2
|
||||
jr z, .writealive
|
||||
|
||||
.writedead
|
||||
; load new pointer
|
||||
ld hl, New
|
||||
ld a, [hl+]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
|
||||
; write alive
|
||||
xor a ; a = 0
|
||||
ld [hl], a
|
||||
|
||||
ret
|
||||
|
||||
SECTION "V-Blank Interrupt Handler", ROM0[$40]
|
||||
VBlankInterruptHandler:
|
||||
reti
|
||||
; save A and flags
|
||||
push af
|
||||
|
||||
; set max number of cells to render
|
||||
ld a, 10
|
||||
ldh [RenderCount], a
|
||||
|
||||
; render
|
||||
jp Render
|
||||
;push af
|
||||
;
|
||||
;; set max number of cells to render
|
||||
;ld a, 10
|
||||
;ldh [RenderCount], a
|
||||
;
|
||||
;; render
|
||||
;jp Render
|
||||
|
||||
SECTION "LCD Stat Interrupt Handler", ROM0[$48]
|
||||
LCDStatInterruptHandler:
|
||||
reti
|
||||
; save A and flags
|
||||
push af
|
||||
|
||||
; set max number of cells to render
|
||||
ld a, 1
|
||||
ldh [RenderCount], a
|
||||
|
||||
; render
|
||||
jp Render
|
||||
;push af
|
||||
;
|
||||
;; set max number of cells to render
|
||||
;ld a, 1
|
||||
;ldh [RenderCount], a
|
||||
;
|
||||
;; render
|
||||
;jp Render
|
||||
|
||||
SECTION "Render", ROM0
|
||||
Render:
|
||||
@@ -605,69 +679,85 @@ Render:
|
||||
; return from v-blank or lcd interrupt
|
||||
reti
|
||||
|
||||
SECTION "Automata buffers", WRAM0[$C000]
|
||||
Buffer0: ds 32 * 32
|
||||
Buffer1: ds 32 * 32
|
||||
SECTION "Automata buffer 0", WRAM0, ALIGN[9]
|
||||
Buffer0: ds 20 * 18
|
||||
|
||||
SECTION "Update Memory", HRAM
|
||||
; update
|
||||
Old: ds 2
|
||||
New: ds 2
|
||||
SECTION "Automata buffer 0", WRAM0, ALIGN[9]
|
||||
Buffer1: ds 20 * 18
|
||||
|
||||
SECTION "Compute Memory", HRAM
|
||||
Old: ds 2 ; pointer to bufferX
|
||||
New: ds 2 ; pointer to bufferX
|
||||
Alive: ds 1
|
||||
XLoop: ds 1
|
||||
YLoop: ds 1
|
||||
; render
|
||||
RenderCount: ds 1
|
||||
Video: ds 2
|
||||
Rendered: ds 2
|
||||
Cells: ds 9
|
||||
Result: ds 1
|
||||
|
||||
SECTION "Render Memory", HRAM
|
||||
RenderCount: ds 1 ; max number of tiles to render before leaving
|
||||
Video: ds 2 ; pointer to tilemap
|
||||
Rendered: ds 2 ; pointer to bufferX
|
||||
|
||||
SECTION "Game of Life neighboring cells offset tables", ROM0
|
||||
; for a looping grid of 32x32 cells
|
||||
TopLeftCorner: dw 1, 33, 32, 63, 31, 1023, 992, 993, 0
|
||||
TopRightCorner: dw -31, 1, 32, 31, -1, 991, 992, 961, 0
|
||||
BottomLeftCorner: dw 1, -991, -992, -961, 31, -1, -32, -31, 0
|
||||
BottomRightCorner: dw -31, -1023, -992, -993, -1, -33, -32, -63, 0
|
||||
TopRow: dw 1, 33, 32, 31, -1, 991, 992, 993, 0
|
||||
BottomRow: dw 1, -991, -992, -993, -1, -33, -32, -31, 0
|
||||
LeftColumn: dw 1, 33, 32, 63, 31, -1, -32, -31, 0
|
||||
RightColumn: dw -31, 1, 32, 31, -1, -33, -32, -63, 0
|
||||
Inner: dw 1, 33, 32, 31, -1, -33, -32, -31, 0
|
||||
; for a looping grid of 20x18 cells
|
||||
; order matters R, BR, B, BL, L, TL, T, TR
|
||||
TopLeftCorner: dw 1, 21, 20, 39, 19, 359, 340, 341
|
||||
TopRightCorner: dw -19, 1, 20, 19, -1, 339, 340, 321
|
||||
BottomLeftCorner: dw 1, -339, -340, -321, 19, -1, -20, -19
|
||||
BottomRightCorner: dw -19, -359, -340, -341, -1, -21, -20, -39
|
||||
TopRow: dw 1, 21, 20, 19, -1, 339, 340, 341
|
||||
BottomRow: dw 1, -339, -340, -341, -1, -21, -20, -19
|
||||
LeftColumn: dw 1, 21, 20, 39, 19, -1, -20, -19
|
||||
RightColumn: dw -19, 1, 20, 19, -1, -21, -20, -39
|
||||
Inner: dw 1, 21, 20, 19, -1, -21, -20, -19
|
||||
|
||||
SECTION "Game of Life neighboring masks", ROM0
|
||||
; order matters I, R, BR, B, BL, L, TL, T, TR, SELF, END
|
||||
TopLeftMask: db 14, 0, 0, 0, 0, 10, 8, 12, 0, 1, $FF
|
||||
TopRightMask: db 13, 5, 0, 0, 0, 0, 0, 12, 4, 2, $FF
|
||||
BottomLeftMask: db 11, 0, 0, 3, 2, 10, 0, 0, 0, 4, $FF
|
||||
BottomRightMask: db 7, 5, 1, 3, 0, 0, 0, 0, 0, 8, $FF
|
||||
|
||||
SECTION "Bits Set", ROM0, ALIGN[4]
|
||||
BitsSet:
|
||||
db 0; 0 = 0000
|
||||
db 1; 1 = 0001
|
||||
db 1; 2 = 0010
|
||||
db 2; 3 = 0011
|
||||
db 1; 4 = 0100
|
||||
db 2; 5 = 0101
|
||||
db 2; 6 = 0110
|
||||
db 3; 7 = 0111
|
||||
db 1; 8 = 1000
|
||||
db 2; 9 = 1001
|
||||
db 2; 10 = 1010
|
||||
db 3; 11 = 1011
|
||||
db 2; 12 = 1100
|
||||
db 3; 13 = 1101
|
||||
db 3; 14 = 1110
|
||||
db 4; 15 = 1111
|
||||
|
||||
SECTION "Default Map", ROM0
|
||||
DefaultMap:
|
||||
db 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
|
||||
SECTION "Graphics", ROM0
|
||||
Tiles:
|
||||
|
||||
Reference in New Issue
Block a user