aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-06-06 13:28:00 +0200
committerAstatin <[email protected]>2025-06-06 13:28:00 +0200
commit9690f6f39bdabcaa62211fd10027c3dba3169e94 (patch)
tree94311f4eb788d61a9dadd8c12d64367dbbab13a5
parent103260bbab1f6816d578cafb641e7458b66eea15 (diff)
Divide by 4 the size of tree tiledata
-rw-r--r--entity/list.gbasm16
-rw-r--r--map/loading.gbasm72
-rw-r--r--scripts/generate-tiledata.py16
-rw-r--r--sprites/bg/tree-tileset.pngbin585 -> 738 bytes
-rw-r--r--tiles.gbasm9
-rw-r--r--tileset.gbasm86
6 files changed, 108 insertions, 91 deletions
diff --git a/entity/list.gbasm b/entity/list.gbasm
index 3b6649a..34e9a77 100644
--- a/entity/list.gbasm
+++ b/entity/list.gbasm
@@ -1,7 +1,7 @@
Entity_list:
.Fox:
; Sprite address
- .DB =OBJ_Tile_Image_Data.Fox
+ .DB =Entity_Tile_Image_Data.Fox
; Turn Jump Table index
.DB $02
@@ -25,7 +25,7 @@ Entity_list:
.Frog:
; Sprite address
- .DB =OBJ_Tile_Image_Data.Frog
+ .DB =Entity_Tile_Image_Data.Frog
; Turn Jump Table index
.DB $08
@@ -49,7 +49,7 @@ Entity_list:
.Cat:
; Sprite address
- .DB =OBJ_Tile_Image_Data.Cat
+ .DB =Entity_Tile_Image_Data.Cat
; Turn Jump Table index
.DB $03
@@ -73,7 +73,7 @@ Entity_list:
.Penguin:
; Sprite address
- .DB =OBJ_Tile_Image_Data.Penguin
+ .DB =Entity_Tile_Image_Data.Penguin
; Turn Jump Table index
.DB $04
@@ -97,7 +97,7 @@ Entity_list:
.Mouse:
; Sprite address
- .DB =OBJ_Tile_Image_Data.Mouse
+ .DB =Entity_Tile_Image_Data.Mouse
; Turn Jump Table index
.DB $07
@@ -121,7 +121,7 @@ Entity_list:
.Fimsh:
; Sprite address
- .DB =OBJ_Tile_Image_Data.Fimsh
+ .DB =Entity_Tile_Image_Data.Fimsh
; Turn Jump Table index
.DB $06
@@ -145,7 +145,7 @@ Entity_list:
.QuestGoalBunny:
; Sprite address
- .DB =OBJ_Tile_Image_Data.Bunny
+ .DB =Entity_Tile_Image_Data.Bunny
; Turn Jump Table index
.DB $05
@@ -169,7 +169,7 @@ Entity_list:
.Bug:
; Sprite address
- .DB =OBJ_Tile_Image_Data.Bug
+ .DB =Entity_Tile_Image_Data.Bug
; Turn Jump Table index
.DB $09
diff --git a/map/loading.gbasm b/map/loading.gbasm
index c0ea14f..dddf1a3 100644
--- a/map/loading.gbasm
+++ b/map/loading.gbasm
@@ -212,13 +212,8 @@ Load_Block: ; X in A, Y in B
CALL =Is_Solid
OR C
LD C, A
- SLA C
- SLA C
-
- LD A, C
- ADD $20
- LD C, A
+ INC C
LD A, $mem_map_loading_flags
SET 2, A
@@ -310,24 +305,61 @@ Display_Main_Prepared_Block:
LD E, A
LD A, $mem_prepared_block_tile
+ CP $00
+ JR Z, =.Empty
+ DEC A
LD C, A
+ AND 0b0101
+ SCF
+ CCF
+ RR A
+ RR A
+ RLC A
+ ADD $20
+
LD (DE), A
+
LD A, E
OR $20
LD E, A
+
LD A, C
- OR $02
+ AND 0b1001
+ SCF
+ CCF
+ RR A
+ RR A
+ RLC A
+ SCF
+ CCF
+ RR A
+ RR A
+ RLC A
+ ADD $28
LD (DE), A
+
INC E
+
LD A, C
- OR $03
+ AND 0b1010
+ SRA A
+ RR A
+ RR A
+ RLC A
+ ADD $2c
+
LD (DE), A
+
LD A, E
AND $DF
LD E, A
+
LD A, C
- OR $01
+ AND 0b0110
+ SRA A
+ ADD $24
+
LD (DE), A
.End:
@@ -337,6 +369,28 @@ Display_Main_Prepared_Block:
POP AF
RET
+ .Empty:
+ XOR A
+ LD (DE), A
+ LD A, E
+ OR $20
+ LD E, A
+ XOR A
+ LD (DE), A
+ INC E
+ XOR A
+ LD (DE), A
+ LD A, E
+ AND $DF
+ LD E, A
+ XOR A
+ LD (DE), A
+
+ POP DE
+ POP BC
+ POP AF
+ RET
+
Is_Solid: ; X in A, Y in B, Result A
PUSH BC
diff --git a/scripts/generate-tiledata.py b/scripts/generate-tiledata.py
index 729fc50..105ac00 100644
--- a/scripts/generate-tiledata.py
+++ b/scripts/generate-tiledata.py
@@ -3,9 +3,9 @@ import parse_sprite_png
sprite_idx = 0x0
-def get_sprite_png_parse_output(png, tallmode=False, sprite_1bpp_mode=False):
+def get_sprite_png_parse_output(png, tallmode=False, sprite_1bpp_mode=False, sprite_8x8=False):
global sprite_idx
- result = parse_sprite_png.parseSprite(png, sprite_8x16=tallmode, sprite_1bpp=sprite_1bpp_mode).split("\n")
+ result = parse_sprite_png.parseSprite(png, sprite_8x16=tallmode, sprite_8x8=sprite_8x8, sprite_1bpp=sprite_1bpp_mode).split("\n")
for r in result:
if r.startswith(".DB"):
print("\t{} ; 0x{:02x}".format(r, sprite_idx))
@@ -19,7 +19,11 @@ print("GUI_Border_Data.end:")
sprite_idx = 0x20
print("BG_Tile_Image_Data:")
print("\n\t; Trees")
-get_sprite_png_parse_output("./sprites/bg/tree-tileset.png")
+get_sprite_png_parse_output("./sprites/bg/tree-tileset.png", sprite_8x8=True)
+print("BG_Tile_Image_Data.end:")
+
+sprite_idx = 0x60
+print("OBJ_Tile_Image_Data:")
print("\n\t; Stairs")
get_sprite_png_parse_output("./sprites/bg/stairs.png")
print("\n\t; Carrot")
@@ -28,7 +32,7 @@ print("\n\t; Leaf")
get_sprite_png_parse_output("./sprites/bg/leaf.png")
print("\n\t; Box")
get_sprite_png_parse_output("./sprites/bg/box.png")
-print("BG_Tile_Image_Data.end:")
+print("OBJ_Tile_Image_Data.end:")
sprite_idx = 0xf0
print("Small_sprites:")
@@ -54,7 +58,7 @@ get_sprite_png_parse_output("./sprites/font.png")
print("\nFont_Data.end:")
sprite_idx = 0x02
-print("\nOBJ_Tile_Image_Data:")
+print("\nEntity_Tile_Image_Data:")
print("\n.Bunny:")
print("\n\t; Bunny side")
get_sprite_png_parse_output("./sprites/bunny/bunny-side.png", tallmode=True)
@@ -135,7 +139,7 @@ get_sprite_png_parse_output("./sprites/frog/back.png", tallmode=True)
print("\n\t; Frog front")
get_sprite_png_parse_output("./sprites/frog/front.png", tallmode=True)
print("\n.Frog.end:")
-print("\nOBJ_Tile_Image_Data.end:")
+print("\nEntity_Tile_Image_Data.end:")
sprite_idx = 0x60
print("\nAnimation_Sprites_Data:")
diff --git a/sprites/bg/tree-tileset.png b/sprites/bg/tree-tileset.png
index ea55834..bb43d21 100644
--- a/sprites/bg/tree-tileset.png
+++ b/sprites/bg/tree-tileset.png
Binary files differ
diff --git a/tiles.gbasm b/tiles.gbasm
index b30a114..2f9eca8 100644
--- a/tiles.gbasm
+++ b/tiles.gbasm
@@ -1,7 +1,7 @@
Load_Tile:
LD HL, $8020
- LD DE, =OBJ_Tile_Image_Data.Bunny
- LD BC, =OBJ_Tile_Image_Data.Bunny.end-=OBJ_Tile_Image_Data.Bunny
+ LD DE, =Entity_Tile_Image_Data.Bunny
+ LD BC, =Entity_Tile_Image_Data.Bunny.end-=Entity_Tile_Image_Data.Bunny
CALL =memcpy
LD HL, $8800
@@ -19,6 +19,11 @@ Load_Tile:
LD BC, =BG_Tile_Image_Data.end-=BG_Tile_Image_Data
CALL =memcpy
+ LD HL, $9600
+ LD DE, =OBJ_Tile_Image_Data
+ LD BC, =OBJ_Tile_Image_Data.end-=OBJ_Tile_Image_Data
+ CALL =memcpy
+
LD HL, $8f00
LD DE, =Small_sprites
LD BC, =Small_sprites.end-=Small_sprites
diff --git a/tileset.gbasm b/tileset.gbasm
index f4479f9..7cd0aa1 100644
--- a/tileset.gbasm
+++ b/tileset.gbasm
@@ -18,69 +18,23 @@ BG_Tile_Image_Data:
; Trees
.DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $4d, $7d ; 0x20
- .DB $f0, $f0, $b0, $d0, $38, $f8, $8c, $7c, $86, $fe, $be, $c6, $c2, $ee, $c2, $ee ; 0x21
- .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $6d, $5a, $6d, $7d, $3f, $3f, $00, $00 ; 0x22
- .DB $16, $fe, $74, $dc, $34, $bc, $4e, $fe, $6a, $d6, $c6, $fe, $fc, $fc, $00, $00 ; 0x23
- .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d ; 0x24
- .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8c, $fc, $86, $fe, $be, $c6, $c2, $ee ; 0x25
- .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $fc, $bd, $ef, $ef, $00, $00 ; 0x26
- .DB $16, $fe, $74, $dc, $34, $bc, $4e, $fe, $6a, $d6, $c6, $fe, $fc, $fc, $00, $00 ; 0x27
- .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $4d, $7d ; 0x28
- .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee ; 0x29
- .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $6d, $5a, $6d, $7d, $3f, $3f, $00, $00 ; 0x2a
- .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $ef, $ef, $38, $38, $00, $00 ; 0x2b
- .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $c1, $ff, $c7, $b8, $cd, $3d ; 0x2c
- .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8c, $fc, $87, $ff, $bd, $c7, $c3, $ee ; 0x2d
- .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $fd, $bd, $e7, $e7, $00, $00 ; 0x2e
- .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $e3, $ef, $3e, $3e, $00, $00 ; 0x2f
- .DB $3f, $27, $3c, $3f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $4d, $7d ; 0x30
- .DB $bf, $dd, $fb, $ff, $3f, $db, $be, $7e, $86, $fe, $82, $fe, $bf, $c3, $c1, $e7 ; 0x31
- .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $6d, $5a, $6d, $7d, $3f, $3f, $00, $00 ; 0x32
- .DB $1b, $ff, $7a, $de, $3a, $be, $47, $ff, $65, $db, $e3, $ef, $3e, $3e, $00, $00 ; 0x33
- .DB $ff, $a7, $5c, $ff, $38, $f7, $ba, $67, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d ; 0x34
- .DB $be, $da, $f6, $fe, $3e, $d6, $bc, $7c, $8c, $fc, $84, $fc, $be, $c6, $c2, $ee ; 0x35
- .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $fc, $bd, $ef, $ef, $00, $00 ; 0x36
- .DB $16, $fe, $74, $dc, $34, $bc, $4e, $fe, $6a, $d6, $c6, $fe, $fc, $fc, $00, $00 ; 0x37
- .DB $3f, $27, $3c, $3f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $4d, $7d ; 0x38
- .DB $bd, $da, $f7, $fd, $3a, $d7, $ba, $7d, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee ; 0x39
- .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $6d, $5a, $6d, $7d, $3f, $3f, $00, $00 ; 0x3a
- .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $ef, $ef, $38, $38, $00, $00 ; 0x3b
- .DB $ff, $a7, $5c, $ff, $38, $f7, $ba, $67, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d ; 0x3c
- .DB $bd, $da, $f7, $fd, $3a, $d7, $ba, $7d, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee ; 0x3d
- .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $fd, $bd, $e7, $e7, $00, $00 ; 0x3e
- .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $e3, $ef, $3e, $3e, $00, $00 ; 0x3f
- .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $6d, $7d ; 0x40
- .DB $f0, $f0, $b0, $d0, $38, $f8, $8c, $7c, $86, $fe, $be, $c6, $c2, $ee, $92, $fe ; 0x41
- .DB $30, $3f, $22, $3f, $6d, $73, $58, $6f, $6d, $7a, $2c, $3d, $22, $3f, $37, $23 ; 0x42
- .DB $76, $de, $34, $bc, $4c, $fc, $6e, $d6, $42, $ee, $9e, $fa, $72, $a6, $be, $5a ; 0x43
- .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d ; 0x44
- .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8c, $fc, $86, $fe, $be, $c6, $c2, $ee ; 0x45
- .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $cc, $bd, $a2, $ff, $37, $e3 ; 0x46
- .DB $12, $fe, $76, $de, $34, $bc, $4c, $fc, $6e, $d6, $c2, $ee, $1e, $fa, $f2, $26 ; 0x47
- .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $6d, $7d ; 0x48
- .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee ; 0x49
- .DB $30, $3f, $22, $3f, $6d, $73, $58, $6f, $6d, $7a, $2c, $3d, $22, $3f, $37, $23 ; 0x4a
- .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $c1, $ef, $1c, $fb, $f0, $27 ; 0x4b
- .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $64, $6f, $c1, $ff, $c7, $b8, $cd, $3d ; 0x4c
- .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8c, $fc, $87, $ff, $bd, $c7, $c3, $ee ; 0x4d
- .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $cc, $bd, $a2, $ff, $37, $e2 ; 0x4e
- .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $c1, $ef, $1c, $fb, $f0, $27 ; 0x4f
- .DB $3f, $27, $3c, $3f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $6d, $7d ; 0x50
- .DB $bf, $dd, $fb, $ff, $3f, $db, $be, $7e, $86, $fe, $82, $fe, $bf, $c3, $c3, $e7 ; 0x51
- .DB $30, $3f, $22, $3f, $6d, $73, $58, $6f, $6d, $7a, $2c, $3d, $22, $3f, $37, $23 ; 0x52
- .DB $76, $de, $34, $bc, $4c, $fc, $6e, $d6, $42, $ee, $9e, $fa, $72, $a6, $be, $5a ; 0x53
- .DB $ff, $a7, $5c, $ff, $38, $f7, $ba, $67, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d ; 0x54
- .DB $be, $da, $f6, $fe, $3e, $d6, $bc, $7c, $8c, $fc, $84, $fc, $bc, $c4, $c6, $ee ; 0x55
- .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $cc, $bd, $a2, $ff, $37, $e3 ; 0x56
- .DB $12, $fe, $76, $de, $34, $bc, $4c, $fc, $6e, $d6, $c2, $ee, $1e, $fa, $f2, $26 ; 0x57
- .DB $3f, $27, $3c, $3f, $38, $37, $3a, $27, $64, $6f, $61, $7f, $47, $78, $4d, $7d ; 0x58
- .DB $bd, $da, $f7, $fd, $3a, $d7, $ba, $7d, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee ; 0x59
- .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $4d, $7a, $4c, $7d, $42, $7f, $77, $63 ; 0x5a
- .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $c1, $ef, $1c, $fb, $f0, $27 ; 0x5b
- .DB $ff, $a7, $5c, $ff, $38, $f7, $ba, $67, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d ; 0x5c
- .DB $bd, $da, $f7, $fd, $3a, $d7, $ba, $7d, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee ; 0x5d
- .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $cc, $bd, $a2, $ff, $37, $e3 ; 0x5e
- .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $c1, $ef, $1c, $fb, $f0, $27 ; 0x5f
+ .DB $07, $07, $1c, $1f, $38, $37, $3a, $27, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d ; 0x21
+ .DB $3f, $27, $3c, $3f, $38, $37, $3a, $27, $64, $6f, $41, $7f, $47, $78, $4d, $7d ; 0x22
+ .DB $ff, $a7, $5c, $ff, $38, $f7, $ba, $67, $e4, $ef, $c1, $ff, $c7, $b8, $cd, $3d ; 0x23
+ .DB $f0, $f0, $b0, $d0, $38, $f8, $8c, $7c, $86, $fe, $be, $c6, $c2, $ee, $c2, $ee ; 0x24
+ .DB $80, $80, $f0, $f0, $30, $d0, $b8, $78, $8c, $fc, $87, $ff, $bd, $c7, $c3, $ee ; 0x25
+ .DB $be, $da, $f6, $fe, $3e, $d6, $bc, $7c, $8c, $fc, $84, $fc, $be, $c6, $c2, $ee ; 0x26
+ .DB $bd, $da, $f7, $fd, $3a, $d7, $ba, $7d, $8e, $fe, $87, $ff, $bd, $c7, $c3, $ee ; 0x27
+ .DB $70, $7f, $22, $3f, $6d, $73, $58, $6f, $6d, $5a, $6d, $7d, $3f, $3f, $00, $00 ; 0x28
+ .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $fc, $bd, $ef, $ef, $00, $00 ; 0x29
+ .DB $30, $3f, $22, $3f, $6d, $73, $58, $6f, $6d, $7a, $2c, $3d, $22, $3f, $37, $23 ; 0x2a
+ .DB $70, $7f, $82, $ff, $2d, $d3, $58, $af, $6d, $1a, $cc, $bd, $a2, $ff, $37, $e3 ; 0x2b
+ .DB $16, $fe, $74, $dc, $34, $bc, $4e, $fe, $6a, $d6, $c6, $fe, $fc, $fc, $00, $00 ; 0x2c
+ .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $e3, $ef, $3e, $3e, $00, $00 ; 0x2d
+ .DB $12, $fe, $76, $de, $34, $bc, $4c, $fc, $6e, $d6, $c2, $ee, $1e, $fa, $f2, $26 ; 0x2e
+ .DB $13, $ff, $76, $df, $35, $ba, $48, $fd, $69, $d7, $c1, $ef, $1c, $fb, $f0, $27 ; 0x2f
+BG_Tile_Image_Data.end:
+OBJ_Tile_Image_Data:
; Stairs
.DB $ff, $ff, $d5, $ff, $aa, $ff, $d5, $ff, $ab, $ff, $df, $ff, $b1, $f1, $f1, $f1 ; 0x60
@@ -105,7 +59,7 @@ BG_Tile_Image_Data:
.DB $00, $00, $00, $00, $00, $00, $fc, $fc, $3e, $06, $fa, $0e, $f2, $fe, $d2, $3e ; 0x6d
.DB $bf, $86, $f9, $f9, $8b, $89, $9f, $8f, $ff, $80, $80, $ff, $7f, $7f, $00, $00 ; 0x6e
.DB $d2, $3e, $f2, $fe, $d2, $3e, $d2, $3e, $92, $7e, $14, $fc, $f8, $f8, $00, $00 ; 0x6f
-BG_Tile_Image_Data.end:
+OBJ_Tile_Image_Data.end:
Small_sprites:
; Heart
@@ -192,7 +146,7 @@ Font_Data:
Font_Data.end:
-OBJ_Tile_Image_Data:
+Entity_Tile_Image_Data:
.Bunny:
@@ -392,7 +346,7 @@ OBJ_Tile_Image_Data:
.Frog.end:
-OBJ_Tile_Image_Data.end:
+Entity_Tile_Image_Data.end:
Animation_Sprites_Data: