map: Added map header for future expansion purposes
authorLukas Krickl <lukas@krickl.dev>
Mon, 12 May 2025 05:12:14 +0000 (07:12 +0200)
committerLukas Krickl <lukas@krickl.dev>
Mon, 12 May 2025 05:12:14 +0000 (07:12 +0200)
maps/default_map.s
src/defs.s
src/map.s
tools/tms2map.py

index b5580b45d843a6f56d7ef9cc9ff162097e00cb0b..d937e1b80e0cf5039ae49b09a2aea77e7f30aeb2 100644 (file)
@@ -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
index ffd08789ee0a073465e778614b207d452aad1618..ee028187a16baef64898b1bea57bb7d1018ad50f 100644 (file)
 .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
index 06bcc8a906d02552f1127e20cfc5f24565b8479d..6b961ba77dd26048785b5e01e12ee3a5ea6944ce 100644 (file)
--- 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
 
index 61f5099952f755c95a242f07c7fc93afe7fae326..f250822ed084a1e32f4d66573a10bf72c4dac00c 100755 (executable)
@@ -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":