aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.gbasm2
-rw-r--r--map.gbasm60
-rw-r--r--scripts/parse_sprite_png.py13
-rw-r--r--sprites/tree-tileset.pngbin583 -> 585 bytes
-rw-r--r--tiles.gbasm80
5 files changed, 135 insertions, 20 deletions
diff --git a/main.gbasm b/main.gbasm
index 7f30a8e..2fe27a1 100644
--- a/main.gbasm
+++ b/main.gbasm
@@ -7,7 +7,7 @@ Entrypoint:
CALL =Initialize_Bunny
; LCDC
- LD A, $97
+ LD A, $87
LD $reg_lcd_controller, A
EI
diff --git a/map.gbasm b/map.gbasm
index 9692367..5e04844 100644
--- a/map.gbasm
+++ b/map.gbasm
@@ -129,25 +129,77 @@ Load_Block: ; X in A, Y in B (X and B being AND with 0x0f)
POP BC
POP AF
+ PUSH AF
+ PUSH DE
+
+ LD C, $00
+ LD D, A
+
+ ; Checking down block
+ LD A, D
+ INC B
+ CALL =Is_Solid
+ OR C
+ LD C, A
+ DEC B
+ SLA C
+
+ ; Checking up block
+ LD A, D
+ DEC B
+ CALL =Is_Solid
+ OR C
+ LD C, A
+ INC B
+ SLA C
+
+ ; Checking right block
+ LD A, D
+ INC A
+ CALL =Is_Solid
+ OR C
+ LD C, A
+ SLA C
+
+ ; Checking left block
+ LD A, D
+ DEC A
+ CALL =Is_Solid
+ OR C
+ LD C, A
+ SLA C
+
+ SLA C
+
+ LD A, C
+ ADD $20
+ LD C, A
+
+ POP DE
+ POP AF
+
CALL =Is_Solid
CP $00
JR Z, =Load_Block.Empty
Load_Block.Solid:
- LD A, $20
+ LD A, C
LD (DE), A
LD A, E
OR $20
LD E, A
- LD A, $22
+ LD A, C
+ OR $02
LD (DE), A
INC E
- LD A, $23
+ LD A, C
+ OR $03
LD (DE), A
LD A, E
AND $DF
LD E, A
- LD A, $21
+ LD A, C
+ OR $01
LD (DE), A
JR =Load_Block.End
diff --git a/scripts/parse_sprite_png.py b/scripts/parse_sprite_png.py
index 1fcc4ab..49889fc 100644
--- a/scripts/parse_sprite_png.py
+++ b/scripts/parse_sprite_png.py
@@ -7,8 +7,13 @@ file = Image.open(sys.argv[1]).convert("RGB")
px_array = np.asarray(file)
def getpx(sprite_nb, x, y):
- sprite_line = int(sprite_nb / (file.width / 8))
- sprite_column = int(sprite_nb % (file.width / 8))
+ double_sprite_nb = int(sprite_nb / 4)
+ sprite_double_line = int(double_sprite_nb / (file.width / 16))
+ sprite_double_column = int(double_sprite_nb % (file.width / 16))
+ sprite_tile_y = 1 if sprite_nb & 0b10 else 0
+ sprite_tile_x = 1 if sprite_nb & 0b01 else 0
+ sprite_line = sprite_double_line * 2 + sprite_tile_y
+ sprite_column = sprite_double_column * 2 + sprite_tile_x
return [int(x) for x in px_array[int(sprite_line * 8 + y)][int(sprite_column * 8 + x)]]
@@ -36,6 +41,10 @@ for nb in range(0, sprite_nb):
if abs(db) < min(abs(dw), abs(dlg), abs(ddg)):
print("#", end = '')
+ if abs(ddg) < min(abs(dw), abs(dlg), abs(db)):
+ print(";", end = '')
+ if abs(dlg) < min(abs(dw), abs(ddg), abs(db)):
+ print(".", end = '')
else:
print(" ", end = '')
print("\n", end = '')
diff --git a/sprites/tree-tileset.png b/sprites/tree-tileset.png
index 2248190..ea55834 100644
--- a/sprites/tree-tileset.png
+++ b/sprites/tree-tileset.png
Binary files differ
diff --git a/tiles.gbasm b/tiles.gbasm
index bba72b9..81a8a10 100644
--- a/tiles.gbasm
+++ b/tiles.gbasm
@@ -1,15 +1,69 @@
BG_Tile_Image_Data:
- ; Leaf wall front
- .DB $ff, $b3, $4c, $ff, $28, $d7, $ba, $47, $e4, $ef, $41, $ff, $47, $b8, $cd, $3d
- .DB $bd, $5a, $e7, $fd, $2a, $d7, $aa, $6d, $82, $fe, $83, $ff, $bc, $c7, $c3, $ee
- .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $fc, $bd, $e7, $e7, $00, $00
- .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $e7, $ef, $bc, $bc, $00, $00
+ .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $4d, $7d
+ .DB $f0, $f0, $b0, $d0, $38, $f8, $8c, $7c, $86, $fe, $be, $c6, $c2, $ee, $c2, $ee
+ .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $6d, $5a, $6d, $7d, $3f, $3f, $00, $00
+ .DB $16, $fe, $74, $dc, $34, $bc, $4e, $fe, $6a, $d6, $c6, $fe, $fc, $fc, $00, $00
+ .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d
+ .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8c, $fc, $86, $fe, $be, $c6, $c2, $ee
+ .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $fc, $bd, $ef, $ef, $00, $00
+ .DB $16, $fe, $74, $dc, $34, $bc, $4e, $fe, $6a, $d6, $c6, $fe, $fc, $fc, $00, $00
+ .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $4d, $7d
+ .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee
+ .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $6d, $5a, $6d, $7d, $3f, $3f, $00, $00
+ .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $ef, $ef, $38, $38, $00, $00
+ .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $c1, $ff, $c7, $b8, $cd, $3d
+ .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8c, $fc, $87, $ff, $bd, $c7, $c3, $ee
+ .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $fd, $bd, $e7, $e7, $00, $00
+ .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $e3, $ef, $3e, $3e, $00, $00
+ .DB $3f, $27, $3c, $3f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $4d, $7d
+ .DB $bf, $dd, $fb, $ff, $3f, $db, $be, $7e, $86, $fe, $82, $fe, $bf, $c3, $c1, $e7
+ .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $6d, $5a, $6d, $7d, $3f, $3f, $00, $00
+ .DB $1b, $ff, $7a, $de, $3a, $be, $47, $ff, $65, $db, $e3, $ef, $3e, $3e, $00, $00
+ .DB $ff, $a7, $5c, $ff, $38, $f7, $ba, $67, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d
+ .DB $be, $da, $f6, $fe, $3e, $d6, $bc, $7c, $8c, $fc, $84, $fc, $be, $c6, $c2, $ee
+ .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $fc, $bd, $ef, $ef, $00, $00
+ .DB $16, $fe, $74, $dc, $34, $bc, $4e, $fe, $6a, $d6, $c6, $fe, $fc, $fc, $00, $00
+ .DB $3f, $27, $3c, $3f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $4d, $7d
+ .DB $bd, $da, $f7, $fd, $3a, $d7, $ba, $7d, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee
+ .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $6d, $5a, $6d, $7d, $3f, $3f, $00, $00
+ .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $ef, $ef, $38, $38, $00, $00
+ .DB $ff, $a7, $5c, $ff, $38, $f7, $ba, $67, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d
+ .DB $bd, $da, $f7, $fd, $3a, $d7, $ba, $7d, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee
+ .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $fd, $bd, $e7, $e7, $00, $00
+ .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $e3, $ef, $3e, $3e, $00, $00
+ .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $6d, $7d
+ .DB $f0, $f0, $b0, $d0, $38, $f8, $8c, $7c, $86, $fe, $be, $c6, $c2, $ee, $92, $fe
+ .DB $30, $3f, $22, $3f, $6d, $73, $58, $6f, $6d, $7a, $2c, $3d, $22, $3f, $37, $23
+ .DB $76, $de, $34, $bc, $4c, $fc, $6e, $d6, $42, $ee, $9e, $fa, $72, $a6, $be, $5a
+ .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d
+ .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8c, $fc, $86, $fe, $be, $c6, $c2, $ee
+ .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $cc, $bd, $a2, $ff, $37, $e3
+ .DB $12, $fe, $76, $de, $34, $bc, $4c, $fc, $6e, $d6, $c2, $ee, $1e, $fa, $f2, $26
+ .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $6d, $7d
+ .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee
+ .DB $30, $3f, $22, $3f, $6d, $73, $58, $6f, $6d, $7a, $2c, $3d, $22, $3f, $37, $23
+ .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $c1, $ef, $1c, $fb, $f0, $27
+ .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $c1, $ff, $c7, $b8, $cd, $3d
+ .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8c, $fc, $87, $ff, $bd, $c7, $c3, $ee
+ .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $cc, $bd, $a2, $ff, $37, $e2
+ .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $c1, $ef, $1c, $fb, $f0, $27
+ .DB $3f, $27, $3c, $3f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $6d, $7d
+ .DB $bf, $dd, $fb, $ff, $3f, $db, $be, $7e, $86, $fe, $82, $fe, $bf, $c3, $c3, $e7
+ .DB $30, $3f, $22, $3f, $6d, $73, $58, $6f, $6d, $7a, $2c, $3d, $22, $3f, $37, $23
+ .DB $76, $de, $34, $bc, $4c, $fc, $6e, $d6, $42, $ee, $9e, $fa, $72, $a6, $be, $5a
+ .DB $ff, $a7, $5c, $ff, $38, $f7, $ba, $67, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d
+ .DB $be, $da, $f6, $fe, $3e, $d6, $bc, $7c, $8c, $fc, $84, $fc, $bc, $c4, $c6, $ee
+ .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $cc, $bd, $a2, $ff, $37, $e3
+ .DB $12, $fe, $76, $de, $34, $bc, $4c, $fc, $6e, $d6, $c2, $ee, $1e, $fa, $f2, $26
+ .DB $3f, $27, $3c, $3f, $38, $37, $3a, $27, $64, $6f, $61, $7f, $47, $78, $4d, $7d
+ .DB $bd, $da, $f7, $fd, $3a, $d7, $ba, $7d, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee
+ .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $4d, $7a, $4c, $7d, $42, $7f, $77, $63
+ .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $c1, $ef, $1c, $fb, $f0, $27
+ .DB $ff, $a7, $5c, $ff, $38, $f7, $ba, $67, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d
+ .DB $bd, $da, $f7, $fd, $3a, $d7, $ba, $7d, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee
+ .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $cc, $bd, $a2, $ff, $37, $e3
+ .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $c1, $ef, $1c, $fb, $f0, $27
- ; Leaf wall side
- .DB $2d, $2d, $3b, $37, $7b, $7f, $75, $6e, $5d, $5e, $75, $6d, $3f, $3b, $73, $7f
- .DB $8a, $b9, $e7, $1c, $d4, $af, $a4, $df, $f2, $ef, $d3, $ae, $09, $7c, $53, $be
- .DB $6f, $7d, $5a, $5b, $6b, $7d, $3b, $37, $2f, $27, $77, $7f, $4c, $5d, $77, $6e
- .DB $83, $ff, $ea, $ef, $d9, $b6, $1d, $7c, $61, $be, $99, $ef, $8e, $df, $d6, $6d
OBJ_Tile_Image_Data:
; Bunny Side
@@ -67,15 +121,15 @@ Load_Tile:
LD BC, $00c0
CALL =memcpy
CALL =Load_Number_Font
- LD HL, $8200
+ LD HL, $9200
LD DE, =BG_Tile_Image_Data
- LD BC, $0080
+ LD BC, $0400
CALL =memcpy
RET
Load_Number_Font: ; Load number font into the tilemap at tiles 0x10-0x1f
- LD HL, $8100
+ LD HL, $9100
LD DE, =Number_Font_Data
LD B, $80