.de map_tile_bank1_ptr, 2
.de map_tile_bank2_ptr, 2
.de map_tile_bank3_ptr, 2
+.de map_tile_id_table, 2
.de map_header_size, 0
; the map header is followed by MAP_W * MAP_H bytes
.de map_tiles, MAP_W * MAP_H
; where each tile has values and its current state. The map can be drawn from this.
l1:
- mapdef 0, map_r_nop, 0, 0, 0, bank8000, bank8800, bank8C00, bank9000
+ mapdef 0, map_r_nop, 0, 0, 0, bank8000, bank8800, bank8C00, bank9000, tile_id_table
.db TWL, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
.db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
.db TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS, TGS
; inputs:
; de: map ptr
map_tiles_load:
+ ld hl, map_tile_id_table
+ add hl, de
+ ; store tile id table
+ ; in map_tile_id_table
+ ld a, [hl+]
+ ld [map_tmp_tile_id_table], a
+ ld a, [hl+]
+ ld [map_tmp_tile_id_table+1], a
+
ld hl, map_tiles
add hl, de
push hl
push hl
add a, a ; * 2 because it is a ptr table
- ld hl, tile_id_table
ld b, 0
ld c, a
+
+ ld hl, tile_id_table
+ ld a, [map_tmp_tile_id_table]
+ ld l, a
+ ld a, [map_tmp_tile_id_table+1]
+ ld h, a
+
add hl, bc ; hl = ptr offset
; load ptr into de (source)
; ptr to top left corner of SCRN
; where the map should be drawn
map_vram_tl: .adv 2
+map_tmp_tile_id_table: .adv 2
; ptr to current tile to be updated
tiles: .adv t_size * MAP_TILES