$(AS) $(FLAGS) -o $(NAME).gb -l ${NAME}.lst -s $(NAME).$(SYMTYPE) -S $(SYMTYPE) -I ./src -I ./tiles -I ./maps src/main.s
test:
- $(AS) $(FLAGS) -o $(TEST_NAME).gb -l ${TEST_NAME}.lst -s $(TEST_NAME).mlb -S mlb -I ./src -I ./tiles src/main.s
+ $(AS) $(FLAGS) -o $(TEST_NAME).gb -l ${TEST_NAME}.lst -s $(TEST_NAME).mlb -S mlb -I ./src -I ./tiles -I ./maps src/main.s
.PHONY: tiles
tiles:
./tools/png2chr.py assets/tiles/bank8C00.png > tiles/bank8C00.inc
./tools/png2chr.py assets/tiles/bank9000.png > tiles/bank9000.inc
+.PHONY: maps
+maps:
+ ./tools/tmx2map.py assets/maps/spawn.tmx > maps/spawn.inc
--- /dev/null
+; this map was generated by tmx2map.py
+
+.db 0x1, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x1, 0x2, 0x0, 0x3, 0x4, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x4, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1
+.db 0x2, 0x1, 0x2, 0x1, 0x2, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x3, 0x4, 0x3, 0x4, 0x3
+.db 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1
+.db 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x3, 0x4, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1
+.db 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x3, 0x4, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
+.db 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x2
l1:
mapdef 0, map_r_nop, 0, 0, bank8000, bank8800, bank8C00, bank9000, tile_id_table
- .db 01, 02, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 03, 04, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 01, 02, 01, 02, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 03, 04, 03, 04, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
- .db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 01, 02
+#include "spawn.inc"
--- /dev/null
+#!/usr/bin/env python
+import sys
+import os
+import xml.etree.ElementTree as ET
+
+TILE_SIZE = 8
+
+if len(sys.argv) < 2:
+ print("Usage: tmx2map.py <source>")
+ sys.exit(-1)
+
+
+src = sys.argv[1]
+
+tile_id_table = {
+ # wall
+ 65 : 1,
+ 66 : 2,
+ 81 : 3,
+ 82 : 4
+}
+
+default_tile_id = 0
+
+def print_bg_data(data):
+ print("; this map was generated by tmx2map.py")
+ split = data.split(",")
+
+ for i, b in enumerate(split):
+ end = ', '
+ if i % 8 == 0:
+ print("\n.db ", end = '')
+
+
+ val = int(b.strip())
+ if val in tile_id_table:
+ val = tile_id_table[val]
+ else:
+ val = default_tile_id
+
+ if (i+1) % 8 == 0:
+ end = ''
+
+ if i == len(data) - 1:
+ end = '\n'
+ print(hex(val), end=end)
+ print("")
+
+def convert(src):
+ tree = ET.parse(src)
+ root = tree.getroot()
+
+ for child in root:
+ if child.tag == "layer":
+ for data in child:
+ print_bg_data(data.text)
+
+convert(src)
+