From: Lukas Krickl Date: Mon, 12 May 2025 05:12:14 +0000 (+0200) Subject: map: Added map header for future expansion purposes X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=3f5708057c52602d644ee635a94420a0c07fb618;p=gbrg%2F.git map: Added map header for future expansion purposes --- diff --git a/maps/default_map.s b/maps/default_map.s index b5580b4..d937e1b 100644 --- a/maps/default_map.s +++ b/maps/default_map.s @@ -1,3 +1,7 @@ +default_map_header: +.db 0, 0, 0, 0 ; flags +dw default_map_bg + default_map_bg: .db 0x65,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 diff --git a/src/defs.s b/src/defs.s index ffd0878..ee02818 100644 --- a/src/defs.s +++ b/src/defs.s @@ -106,3 +106,11 @@ .de bge_tile_ptr, 2 .de bge_new_tile, 1 .de bge_size, 0 + + ; map header struct +.se 0 +.de map_flags_1, 1 +.de map_flags_2, 1 +.de map_flags_3, 1 +.de map_flags_4, 1 +.de map_bg_ptr, 2 diff --git a/src/map.s b/src/map.s index 06bcc8a..6b961ba 100644 --- a/src/map.s +++ b/src/map.s @@ -1,18 +1,34 @@ ; initial map setup map_init: - ld hl, default_map_bg + ld hl, default_map_header call tile_map_load call cells_draw_all ret - + + ; loads a map + ; inputs: + ; hl: map header +tile_map_load: + ; load bg ptr + ld de, map_bg_ptr + add hl, de ; hl = bg_ptr + ld a, [hl+] + ld d, a + ld a, [hl+] + ld h, a + ld l, d + ; hl = bg ptr + call tile_map_bg_load + ret + ; loads a tile map into cells ; and to cell memory ; inputs: - ; hl: map -tile_map_load: + ; hl: map bg data +tile_map_bg_load: ; first clear push_all diff --git a/tools/tms2map.py b/tools/tms2map.py index 61f5099..f250822 100755 --- a/tools/tms2map.py +++ b/tools/tms2map.py @@ -47,6 +47,10 @@ def print_data(data, name, layer): print(",", end='') print(hex(TILE_FLAGS[int(byte)-1]), end=end) +def print_header(name): + print(name + "_header:") + print(".db 0, 0, 0, 0 ; flags") + print("dw " + name + "_bg\n") def get_flag(tile): for child in tile: @@ -67,6 +71,8 @@ def get_flags(tileset): def convert(src, name): tree = ET.parse(src) root = tree.getroot() + + print_header(name) for child in root: if child.tag == "layer":