From: Lukas Krickl Date: Sun, 14 Dec 2025 15:47:46 +0000 (+0100) Subject: map: reworked tile bank in map header to use a bank table instead X-Git-Url: https://git.krickl.dev/?a=commitdiff_plain;h=7cfd46b83246d9afc0b923b87ced8109b8ff3515;p=gbrg%2F.git map: reworked tile bank in map header to use a bank table instead --- diff --git a/src/defs.s b/src/defs.s index 895f1bb..c016454 100644 --- a/src/defs.s +++ b/src/defs.s @@ -71,10 +71,7 @@ ; maps to map property tile_bank0, tile_bank1, tile_bank2, tile_bank3 ; note that tile_bank1 and tile_bank2 are 128 bytes each ; whereas bank0 and bank3 are 256 bytes -.de map_tile_bank0_ptr, 2 -.de map_tile_bank1_ptr, 2 -.de map_tile_bank2_ptr, 2 -.de map_tile_bank3_ptr, 2 +.de map_tile_bank_table, 2 .de map_tile_id_table, 2 .de map_header_size, 0 ; the map header is followed by MAP_W * MAP_H bytes diff --git a/src/levels.s b/src/levels.s index 45c803b..a4757ff 100644 --- a/src/levels.s +++ b/src/levels.s @@ -15,9 +15,15 @@ ; where each tile has values and its current state. The map can be drawn from this. l1: - mapdef MAP_F_DO_FULL_REDRAW, map_r_nop, 0, l1_exits, bank8000, bank8800, bank8C00, bank9000, tile_id_table + mapdef MAP_F_DO_FULL_REDRAW, map_r_nop, 0, l1_exits, tile_banks_default, tile_id_table #include "spawn.inc" +tile_banks_default: + dw bank8000 + dw bank8800 + dw bank8C00 + dw bank9000 + l1_exits: dw l1 dw l1 @@ -25,5 +31,5 @@ l1_exits: dw l1 l2: - mapdef 0, map_r_nop, 0, l1_exits, bank8000, bank8800, bank8C00, bank9000, tile_id_table + mapdef 0, map_r_nop, 0, l1_exits, tile_banks_default, tile_id_table #include "spawn.inc" diff --git a/src/macros.inc b/src/macros.inc index 30e048f..f811cc6 100644 --- a/src/macros.inc +++ b/src/macros.inc @@ -156,11 +156,8 @@ $1: ; $2: map routine ; $3: actors ; $4: exits - ; $5: tile bank 0 - ; $6: tile bank 1 - ; $7: tile bank 2 - ; $8: tile bank 3 - ; $9: tile id table + ; $5: tile bank table + ; $6: tile id table #macro mapdef .db $1 dw $2 @@ -168,9 +165,6 @@ $1: dw $4 dw $5 dw $6 - dw $7 - dw $8 - dw $9 #endmacro ; define a tile diff --git a/src/map.s b/src/map.s index 11f48ba..e530571 100644 --- a/src/map.s +++ b/src/map.s @@ -181,8 +181,13 @@ map_tiles_load: ; inputs: ; de: map ptr map_tile_banks_load: - ld hl, map_tile_bank0_ptr - add hl, de ; hl = bank0 ptr + ld hl, map_tile_bank_table + add hl, de + + ld a, [hl+] + ld h, [hl] + ld l, a + ; hl = bank0 ptr ; load ptr ld a, [hl+]