diff options
author | Astatin <[email protected]> | 2025-06-06 13:28:00 +0200 |
---|---|---|
committer | Astatin <[email protected]> | 2025-06-06 13:28:00 +0200 |
commit | 9690f6f39bdabcaa62211fd10027c3dba3169e94 (patch) | |
tree | 94311f4eb788d61a9dadd8c12d64367dbbab13a5 | |
parent | 103260bbab1f6816d578cafb641e7458b66eea15 (diff) |
Divide by 4 the size of tree tiledata
-rw-r--r-- | entity/list.gbasm | 16 | ||||
-rw-r--r-- | map/loading.gbasm | 72 | ||||
-rw-r--r-- | scripts/generate-tiledata.py | 16 | ||||
-rw-r--r-- | sprites/bg/tree-tileset.png | bin | 585 -> 738 bytes | |||
-rw-r--r-- | tiles.gbasm | 9 | ||||
-rw-r--r-- | tileset.gbasm | 86 |
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 Binary files differindex ea55834..bb43d21 100644 --- a/sprites/bg/tree-tileset.png +++ b/sprites/bg/tree-tileset.png 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: |