+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
.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
; 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
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:
def convert(src, name):
tree = ET.parse(src)
root = tree.getroot()
+
+ print_header(name)
for child in root:
if child.tag == "layer":