aboutsummaryrefslogtreecommitdiff
path: root/leveldesc.info
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-09-02 00:00:39 -0400
committerB. Watson <yalhcru@gmail.com>2016-09-02 00:00:39 -0400
commit2501dc4ecbfc45170a84503a90eb15f5770e6918 (patch)
tree3b9ebc8179ab484f8293a989609f0561b9b92384 /leveldesc.info
parente9ec302bb089104385c020356dd47b64d6bd09a7 (diff)
downloadjumpmanjr-2501dc4ecbfc45170a84503a90eb15f5770e6918.tar.gz
bombs and level maps
Diffstat (limited to 'leveldesc.info')
-rw-r--r--leveldesc.info196
1 files changed, 126 insertions, 70 deletions
diff --git a/leveldesc.info b/leveldesc.info
index d74d21f..c764796 100644
--- a/leveldesc.info
+++ b/leveldesc.info
@@ -13,17 +13,21 @@ label { name "work_level_points_per_bomb"; addr $0790; size 1; comment "points a
label { name "work_level_time_bonus"; addr $0791; size 2; comment "amount of time bonus at start of level"; };
label { name "work_level_offs_19"; addr $0793; size 1; comment "always $00"; };
label { name "work_level_unkn_table0"; addr $0794; size 2; comment "pointer to ROM table or $06xx"; };
-label { name "work_level_map0"; addr $0796; size 2; comment "map data"; };
-label { name "work_level_map1"; addr $0798; size 2; comment "map data"; };
-label { name "work_level_bomblist"; addr $079a; size 2; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+label { name "work_level_map"; addr $0796; size 2; comment "used to draw the level initially (see also map_changes)"; };
+label { name "work_level_map_bombs"; addr $0798; size 2; comment "start of bombs in map data (which must come last!)"; };
+label { name "work_level_bomblist"; addr $079a; size 2; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
label { name "work_level_map_changes"; addr $079c; size 2; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-label { name "work_level_offs_30"; addr $079e; size 2; comment "always $0000"; };
+label { name "work_level_indirect_subs"; addr $079e; size 2; comment "pointer to list of indirect subs, always $0000 in this game"; };
label { name "work_level_sub_bomb"; addr $07a0; size 2; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
label { name "work_level_sub_start"; addr $07a2; size 2; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
label { name "work_level_sub6"; addr $07a4; size 2; comment "always $9740 aka game_main_loop"; };
label { name "work_level_sub_eol"; addr $07a6; size 2; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
label { name "work_level_offs_40"; addr $07a8; size 6; comment "all zeroes"; };
-label { name "work_level_offs_46"; addr $07ae; size 9; comment "unknown"; };
+label { name "work_level_colpf3"; addr $07ae; size 1; comment "color (not sure what gets drawn in this color yet)"; };
+label { name "work_level_colpf0"; addr $07af; size 1; comment "color for girders and up-ropes"; };
+label { name "work_level_colpf1"; addr $07b0; size 1; comment "color for ladders and down-ropes"; };
+label { name "work_level_colpf2"; addr $07b1; size 1; comment "color for bombs"; };
+label { name "work_level_offs_50"; addr $07b2; size 5; comment "unknown"; };
label { name "work_level_offs_55"; addr $07b7; size 3; comment "unknown, always $00 $00 $00"; };
label { name "work_level_offs_58"; addr $07ba; size 2; comment "unknown, not a ROM address"; };
label { name "work_level_offs_60"; addr $07bc; size 4; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -43,17 +47,21 @@ label { name "cur_level_points_per_bomb"; addr $07d0; size 1; comment "points aw
label { name "cur_level_time_bonus"; addr $07d1; size 2; comment "amount of time bonus at start of level"; };
label { name "cur_level_offs_19"; addr $07d3; size 1; comment "always $00"; };
label { name "cur_level_unkn_table0"; addr $07d4; size 2; comment "pointer to ROM table or $06xx"; };
-label { name "cur_level_map0"; addr $07d6; size 2; comment "map data"; };
-label { name "cur_level_map1"; addr $07d8; size 2; comment "map data"; };
-label { name "cur_level_bomblist"; addr $07da; size 2; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+label { name "cur_level_map"; addr $07d6; size 2; comment "used to draw the level initially (see also map_changes)"; };
+label { name "cur_level_map_bombs"; addr $07d8; size 2; comment "start of bombs in map data (which must come last!)"; };
+label { name "cur_level_bomblist"; addr $07da; size 2; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
label { name "cur_level_map_changes"; addr $07dc; size 2; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-label { name "cur_level_offs_30"; addr $07de; size 2; comment "always $0000"; };
+label { name "cur_level_indirect_subs"; addr $07de; size 2; comment "pointer to list of indirect subs, always $0000 in this game"; };
label { name "cur_level_sub_bomb"; addr $07e0; size 2; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
label { name "cur_level_sub_start"; addr $07e2; size 2; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
label { name "cur_level_sub6"; addr $07e4; size 2; comment "always $9740 aka game_main_loop"; };
label { name "cur_level_sub_eol"; addr $07e6; size 2; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
label { name "cur_level_offs_40"; addr $07e8; size 6; comment "all zeroes"; };
-label { name "cur_level_offs_46"; addr $07ee; size 9; comment "unknown"; };
+label { name "cur_level_colpf3"; addr $07ee; size 1; comment "color (not sure what gets drawn in this color yet)"; };
+label { name "cur_level_colpf0"; addr $07ef; size 1; comment "color for girders and up-ropes"; };
+label { name "cur_level_colpf1"; addr $07f0; size 1; comment "color for ladders and down-ropes"; };
+label { name "cur_level_colpf2"; addr $07f1; size 1; comment "color for bombs"; };
+label { name "cur_level_offs_50"; addr $07f2; size 5; comment "unknown"; };
label { name "cur_level_offs_55"; addr $07f7; size 3; comment "unknown, always $00 $00 $00"; };
label { name "cur_level_offs_58"; addr $07fa; size 2; comment "unknown, not a ROM address"; };
label { name "cur_level_offs_60"; addr $07fc; size 4; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -73,17 +81,21 @@ range { name "level00_points_per_bomb"; start $a010; end $a010; type bytetable;
range { name "level00_time_bonus"; start $a011; end $a012; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level00_offs_19"; start $a013; end $a013; type bytetable; comment "always $00"; };
range { name "level00_unkn_table0"; start $a014; end $a015; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level00_map0"; start $a016; end $a017; type addrtable; comment "map data"; };
-range { name "level00_map1"; start $a018; end $a019; type addrtable; comment "map data"; };
-range { name "level00_bomblist"; start $a01a; end $a01b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level00_map"; start $a016; end $a017; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level00_map_bombs"; start $a018; end $a019; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level00_bomblist"; start $a01a; end $a01b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level00_map_changes"; start $a01c; end $a01d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level00_offs_30"; start $a01e; end $a01f; type bytetable; comment "always $0000"; };
+range { name "level00_indirect_subs"; start $a01e; end $a01f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level00_sub_bomb"; start $a020; end $a021; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level00_sub_start"; start $a022; end $a023; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level00_sub6"; start $a024; end $a025; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level00_sub_eol"; start $a026; end $a027; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level00_offs_40"; start $a028; end $a02d; type bytetable; comment "all zeroes"; };
-range { name "level00_offs_46"; start $a02e; end $a036; type bytetable; comment "unknown"; };
+range { name "level00_colpf3"; start $a02e; end $a02e; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level00_colpf0"; start $a02f; end $a02f; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level00_colpf1"; start $a030; end $a030; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level00_colpf2"; start $a031; end $a031; type bytetable; comment "color for bombs"; };
+range { name "level00_offs_50"; start $a032; end $a036; type bytetable; comment "unknown"; };
range { name "level00_offs_55"; start $a037; end $a039; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level00_offs_58"; start $a03a; end $a03b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level00_offs_60"; start $a03c; end $a03f; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -103,17 +115,21 @@ range { name "level01_points_per_bomb"; start $a050; end $a050; type bytetable;
range { name "level01_time_bonus"; start $a051; end $a052; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level01_offs_19"; start $a053; end $a053; type bytetable; comment "always $00"; };
range { name "level01_unkn_table0"; start $a054; end $a055; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level01_map0"; start $a056; end $a057; type addrtable; comment "map data"; };
-range { name "level01_map1"; start $a058; end $a059; type addrtable; comment "map data"; };
-range { name "level01_bomblist"; start $a05a; end $a05b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level01_map"; start $a056; end $a057; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level01_map_bombs"; start $a058; end $a059; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level01_bomblist"; start $a05a; end $a05b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level01_map_changes"; start $a05c; end $a05d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level01_offs_30"; start $a05e; end $a05f; type bytetable; comment "always $0000"; };
+range { name "level01_indirect_subs"; start $a05e; end $a05f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level01_sub_bomb"; start $a060; end $a061; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level01_sub_start"; start $a062; end $a063; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level01_sub6"; start $a064; end $a065; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level01_sub_eol"; start $a066; end $a067; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level01_offs_40"; start $a068; end $a06d; type bytetable; comment "all zeroes"; };
-range { name "level01_offs_46"; start $a06e; end $a076; type bytetable; comment "unknown"; };
+range { name "level01_colpf3"; start $a06e; end $a06e; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level01_colpf0"; start $a06f; end $a06f; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level01_colpf1"; start $a070; end $a070; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level01_colpf2"; start $a071; end $a071; type bytetable; comment "color for bombs"; };
+range { name "level01_offs_50"; start $a072; end $a076; type bytetable; comment "unknown"; };
range { name "level01_offs_55"; start $a077; end $a079; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level01_offs_58"; start $a07a; end $a07b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level01_offs_60"; start $a07c; end $a07f; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -133,17 +149,21 @@ range { name "level02_points_per_bomb"; start $a090; end $a090; type bytetable;
range { name "level02_time_bonus"; start $a091; end $a092; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level02_offs_19"; start $a093; end $a093; type bytetable; comment "always $00"; };
range { name "level02_unkn_table0"; start $a094; end $a095; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level02_map0"; start $a096; end $a097; type addrtable; comment "map data"; };
-range { name "level02_map1"; start $a098; end $a099; type addrtable; comment "map data"; };
-range { name "level02_bomblist"; start $a09a; end $a09b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level02_map"; start $a096; end $a097; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level02_map_bombs"; start $a098; end $a099; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level02_bomblist"; start $a09a; end $a09b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level02_map_changes"; start $a09c; end $a09d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level02_offs_30"; start $a09e; end $a09f; type bytetable; comment "always $0000"; };
+range { name "level02_indirect_subs"; start $a09e; end $a09f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level02_sub_bomb"; start $a0a0; end $a0a1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level02_sub_start"; start $a0a2; end $a0a3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level02_sub6"; start $a0a4; end $a0a5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level02_sub_eol"; start $a0a6; end $a0a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level02_offs_40"; start $a0a8; end $a0ad; type bytetable; comment "all zeroes"; };
-range { name "level02_offs_46"; start $a0ae; end $a0b6; type bytetable; comment "unknown"; };
+range { name "level02_colpf3"; start $a0ae; end $a0ae; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level02_colpf0"; start $a0af; end $a0af; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level02_colpf1"; start $a0b0; end $a0b0; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level02_colpf2"; start $a0b1; end $a0b1; type bytetable; comment "color for bombs"; };
+range { name "level02_offs_50"; start $a0b2; end $a0b6; type bytetable; comment "unknown"; };
range { name "level02_offs_55"; start $a0b7; end $a0b9; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level02_offs_58"; start $a0ba; end $a0bb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level02_offs_60"; start $a0bc; end $a0bf; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -163,17 +183,21 @@ range { name "level03_points_per_bomb"; start $a0d0; end $a0d0; type bytetable;
range { name "level03_time_bonus"; start $a0d1; end $a0d2; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level03_offs_19"; start $a0d3; end $a0d3; type bytetable; comment "always $00"; };
range { name "level03_unkn_table0"; start $a0d4; end $a0d5; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level03_map0"; start $a0d6; end $a0d7; type addrtable; comment "map data"; };
-range { name "level03_map1"; start $a0d8; end $a0d9; type addrtable; comment "map data"; };
-range { name "level03_bomblist"; start $a0da; end $a0db; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level03_map"; start $a0d6; end $a0d7; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level03_map_bombs"; start $a0d8; end $a0d9; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level03_bomblist"; start $a0da; end $a0db; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level03_map_changes"; start $a0dc; end $a0dd; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level03_offs_30"; start $a0de; end $a0df; type bytetable; comment "always $0000"; };
+range { name "level03_indirect_subs"; start $a0de; end $a0df; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level03_sub_bomb"; start $a0e0; end $a0e1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level03_sub_start"; start $a0e2; end $a0e3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level03_sub6"; start $a0e4; end $a0e5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level03_sub_eol"; start $a0e6; end $a0e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level03_offs_40"; start $a0e8; end $a0ed; type bytetable; comment "all zeroes"; };
-range { name "level03_offs_46"; start $a0ee; end $a0f6; type bytetable; comment "unknown"; };
+range { name "level03_colpf3"; start $a0ee; end $a0ee; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level03_colpf0"; start $a0ef; end $a0ef; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level03_colpf1"; start $a0f0; end $a0f0; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level03_colpf2"; start $a0f1; end $a0f1; type bytetable; comment "color for bombs"; };
+range { name "level03_offs_50"; start $a0f2; end $a0f6; type bytetable; comment "unknown"; };
range { name "level03_offs_55"; start $a0f7; end $a0f9; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level03_offs_58"; start $a0fa; end $a0fb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level03_offs_60"; start $a0fc; end $a0ff; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -193,17 +217,21 @@ range { name "level04_points_per_bomb"; start $a110; end $a110; type bytetable;
range { name "level04_time_bonus"; start $a111; end $a112; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level04_offs_19"; start $a113; end $a113; type bytetable; comment "always $00"; };
range { name "level04_unkn_table0"; start $a114; end $a115; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level04_map0"; start $a116; end $a117; type addrtable; comment "map data"; };
-range { name "level04_map1"; start $a118; end $a119; type addrtable; comment "map data"; };
-range { name "level04_bomblist"; start $a11a; end $a11b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level04_map"; start $a116; end $a117; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level04_map_bombs"; start $a118; end $a119; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level04_bomblist"; start $a11a; end $a11b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level04_map_changes"; start $a11c; end $a11d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level04_offs_30"; start $a11e; end $a11f; type bytetable; comment "always $0000"; };
+range { name "level04_indirect_subs"; start $a11e; end $a11f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level04_sub_bomb"; start $a120; end $a121; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level04_sub_start"; start $a122; end $a123; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level04_sub6"; start $a124; end $a125; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level04_sub_eol"; start $a126; end $a127; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level04_offs_40"; start $a128; end $a12d; type bytetable; comment "all zeroes"; };
-range { name "level04_offs_46"; start $a12e; end $a136; type bytetable; comment "unknown"; };
+range { name "level04_colpf3"; start $a12e; end $a12e; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level04_colpf0"; start $a12f; end $a12f; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level04_colpf1"; start $a130; end $a130; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level04_colpf2"; start $a131; end $a131; type bytetable; comment "color for bombs"; };
+range { name "level04_offs_50"; start $a132; end $a136; type bytetable; comment "unknown"; };
range { name "level04_offs_55"; start $a137; end $a139; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level04_offs_58"; start $a13a; end $a13b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level04_offs_60"; start $a13c; end $a13f; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -223,17 +251,21 @@ range { name "level05_points_per_bomb"; start $a150; end $a150; type bytetable;
range { name "level05_time_bonus"; start $a151; end $a152; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level05_offs_19"; start $a153; end $a153; type bytetable; comment "always $00"; };
range { name "level05_unkn_table0"; start $a154; end $a155; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level05_map0"; start $a156; end $a157; type addrtable; comment "map data"; };
-range { name "level05_map1"; start $a158; end $a159; type addrtable; comment "map data"; };
-range { name "level05_bomblist"; start $a15a; end $a15b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level05_map"; start $a156; end $a157; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level05_map_bombs"; start $a158; end $a159; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level05_bomblist"; start $a15a; end $a15b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level05_map_changes"; start $a15c; end $a15d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level05_offs_30"; start $a15e; end $a15f; type bytetable; comment "always $0000"; };
+range { name "level05_indirect_subs"; start $a15e; end $a15f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level05_sub_bomb"; start $a160; end $a161; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level05_sub_start"; start $a162; end $a163; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level05_sub6"; start $a164; end $a165; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level05_sub_eol"; start $a166; end $a167; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level05_offs_40"; start $a168; end $a16d; type bytetable; comment "all zeroes"; };
-range { name "level05_offs_46"; start $a16e; end $a176; type bytetable; comment "unknown"; };
+range { name "level05_colpf3"; start $a16e; end $a16e; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level05_colpf0"; start $a16f; end $a16f; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level05_colpf1"; start $a170; end $a170; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level05_colpf2"; start $a171; end $a171; type bytetable; comment "color for bombs"; };
+range { name "level05_offs_50"; start $a172; end $a176; type bytetable; comment "unknown"; };
range { name "level05_offs_55"; start $a177; end $a179; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level05_offs_58"; start $a17a; end $a17b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level05_offs_60"; start $a17c; end $a17f; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -253,17 +285,21 @@ range { name "level06_points_per_bomb"; start $a190; end $a190; type bytetable;
range { name "level06_time_bonus"; start $a191; end $a192; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level06_offs_19"; start $a193; end $a193; type bytetable; comment "always $00"; };
range { name "level06_unkn_table0"; start $a194; end $a195; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level06_map0"; start $a196; end $a197; type addrtable; comment "map data"; };
-range { name "level06_map1"; start $a198; end $a199; type addrtable; comment "map data"; };
-range { name "level06_bomblist"; start $a19a; end $a19b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level06_map"; start $a196; end $a197; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level06_map_bombs"; start $a198; end $a199; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level06_bomblist"; start $a19a; end $a19b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level06_map_changes"; start $a19c; end $a19d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level06_offs_30"; start $a19e; end $a19f; type bytetable; comment "always $0000"; };
+range { name "level06_indirect_subs"; start $a19e; end $a19f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level06_sub_bomb"; start $a1a0; end $a1a1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level06_sub_start"; start $a1a2; end $a1a3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level06_sub6"; start $a1a4; end $a1a5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level06_sub_eol"; start $a1a6; end $a1a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level06_offs_40"; start $a1a8; end $a1ad; type bytetable; comment "all zeroes"; };
-range { name "level06_offs_46"; start $a1ae; end $a1b6; type bytetable; comment "unknown"; };
+range { name "level06_colpf3"; start $a1ae; end $a1ae; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level06_colpf0"; start $a1af; end $a1af; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level06_colpf1"; start $a1b0; end $a1b0; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level06_colpf2"; start $a1b1; end $a1b1; type bytetable; comment "color for bombs"; };
+range { name "level06_offs_50"; start $a1b2; end $a1b6; type bytetable; comment "unknown"; };
range { name "level06_offs_55"; start $a1b7; end $a1b9; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level06_offs_58"; start $a1ba; end $a1bb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level06_offs_60"; start $a1bc; end $a1bf; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -283,17 +319,21 @@ range { name "level07_points_per_bomb"; start $a1d0; end $a1d0; type bytetable;
range { name "level07_time_bonus"; start $a1d1; end $a1d2; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level07_offs_19"; start $a1d3; end $a1d3; type bytetable; comment "always $00"; };
range { name "level07_unkn_table0"; start $a1d4; end $a1d5; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level07_map0"; start $a1d6; end $a1d7; type addrtable; comment "map data"; };
-range { name "level07_map1"; start $a1d8; end $a1d9; type addrtable; comment "map data"; };
-range { name "level07_bomblist"; start $a1da; end $a1db; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level07_map"; start $a1d6; end $a1d7; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level07_map_bombs"; start $a1d8; end $a1d9; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level07_bomblist"; start $a1da; end $a1db; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level07_map_changes"; start $a1dc; end $a1dd; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level07_offs_30"; start $a1de; end $a1df; type bytetable; comment "always $0000"; };
+range { name "level07_indirect_subs"; start $a1de; end $a1df; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level07_sub_bomb"; start $a1e0; end $a1e1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level07_sub_start"; start $a1e2; end $a1e3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level07_sub6"; start $a1e4; end $a1e5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level07_sub_eol"; start $a1e6; end $a1e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level07_offs_40"; start $a1e8; end $a1ed; type bytetable; comment "all zeroes"; };
-range { name "level07_offs_46"; start $a1ee; end $a1f6; type bytetable; comment "unknown"; };
+range { name "level07_colpf3"; start $a1ee; end $a1ee; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level07_colpf0"; start $a1ef; end $a1ef; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level07_colpf1"; start $a1f0; end $a1f0; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level07_colpf2"; start $a1f1; end $a1f1; type bytetable; comment "color for bombs"; };
+range { name "level07_offs_50"; start $a1f2; end $a1f6; type bytetable; comment "unknown"; };
range { name "level07_offs_55"; start $a1f7; end $a1f9; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level07_offs_58"; start $a1fa; end $a1fb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level07_offs_60"; start $a1fc; end $a1ff; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -313,17 +353,21 @@ range { name "level08_points_per_bomb"; start $a210; end $a210; type bytetable;
range { name "level08_time_bonus"; start $a211; end $a212; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level08_offs_19"; start $a213; end $a213; type bytetable; comment "always $00"; };
range { name "level08_unkn_table0"; start $a214; end $a215; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level08_map0"; start $a216; end $a217; type addrtable; comment "map data"; };
-range { name "level08_map1"; start $a218; end $a219; type addrtable; comment "map data"; };
-range { name "level08_bomblist"; start $a21a; end $a21b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level08_map"; start $a216; end $a217; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level08_map_bombs"; start $a218; end $a219; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level08_bomblist"; start $a21a; end $a21b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level08_map_changes"; start $a21c; end $a21d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level08_offs_30"; start $a21e; end $a21f; type bytetable; comment "always $0000"; };
+range { name "level08_indirect_subs"; start $a21e; end $a21f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level08_sub_bomb"; start $a220; end $a221; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level08_sub_start"; start $a222; end $a223; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level08_sub6"; start $a224; end $a225; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level08_sub_eol"; start $a226; end $a227; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level08_offs_40"; start $a228; end $a22d; type bytetable; comment "all zeroes"; };
-range { name "level08_offs_46"; start $a22e; end $a236; type bytetable; comment "unknown"; };
+range { name "level08_colpf3"; start $a22e; end $a22e; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level08_colpf0"; start $a22f; end $a22f; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level08_colpf1"; start $a230; end $a230; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level08_colpf2"; start $a231; end $a231; type bytetable; comment "color for bombs"; };
+range { name "level08_offs_50"; start $a232; end $a236; type bytetable; comment "unknown"; };
range { name "level08_offs_55"; start $a237; end $a239; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level08_offs_58"; start $a23a; end $a23b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level08_offs_60"; start $a23c; end $a23f; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -343,17 +387,21 @@ range { name "level09_points_per_bomb"; start $a250; end $a250; type bytetable;
range { name "level09_time_bonus"; start $a251; end $a252; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level09_offs_19"; start $a253; end $a253; type bytetable; comment "always $00"; };
range { name "level09_unkn_table0"; start $a254; end $a255; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level09_map0"; start $a256; end $a257; type addrtable; comment "map data"; };
-range { name "level09_map1"; start $a258; end $a259; type addrtable; comment "map data"; };
-range { name "level09_bomblist"; start $a25a; end $a25b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level09_map"; start $a256; end $a257; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level09_map_bombs"; start $a258; end $a259; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level09_bomblist"; start $a25a; end $a25b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level09_map_changes"; start $a25c; end $a25d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level09_offs_30"; start $a25e; end $a25f; type bytetable; comment "always $0000"; };
+range { name "level09_indirect_subs"; start $a25e; end $a25f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level09_sub_bomb"; start $a260; end $a261; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level09_sub_start"; start $a262; end $a263; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level09_sub6"; start $a264; end $a265; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level09_sub_eol"; start $a266; end $a267; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level09_offs_40"; start $a268; end $a26d; type bytetable; comment "all zeroes"; };
-range { name "level09_offs_46"; start $a26e; end $a276; type bytetable; comment "unknown"; };
+range { name "level09_colpf3"; start $a26e; end $a26e; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level09_colpf0"; start $a26f; end $a26f; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level09_colpf1"; start $a270; end $a270; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level09_colpf2"; start $a271; end $a271; type bytetable; comment "color for bombs"; };
+range { name "level09_offs_50"; start $a272; end $a276; type bytetable; comment "unknown"; };
range { name "level09_offs_55"; start $a277; end $a279; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level09_offs_58"; start $a27a; end $a27b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level09_offs_60"; start $a27c; end $a27f; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -373,17 +421,21 @@ range { name "level10_points_per_bomb"; start $a290; end $a290; type bytetable;
range { name "level10_time_bonus"; start $a291; end $a292; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level10_offs_19"; start $a293; end $a293; type bytetable; comment "always $00"; };
range { name "level10_unkn_table0"; start $a294; end $a295; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level10_map0"; start $a296; end $a297; type addrtable; comment "map data"; };
-range { name "level10_map1"; start $a298; end $a299; type addrtable; comment "map data"; };
-range { name "level10_bomblist"; start $a29a; end $a29b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level10_map"; start $a296; end $a297; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level10_map_bombs"; start $a298; end $a299; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level10_bomblist"; start $a29a; end $a29b; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level10_map_changes"; start $a29c; end $a29d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level10_offs_30"; start $a29e; end $a29f; type bytetable; comment "always $0000"; };
+range { name "level10_indirect_subs"; start $a29e; end $a29f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level10_sub_bomb"; start $a2a0; end $a2a1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level10_sub_start"; start $a2a2; end $a2a3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level10_sub6"; start $a2a4; end $a2a5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level10_sub_eol"; start $a2a6; end $a2a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level10_offs_40"; start $a2a8; end $a2ad; type bytetable; comment "all zeroes"; };
-range { name "level10_offs_46"; start $a2ae; end $a2b6; type bytetable; comment "unknown"; };
+range { name "level10_colpf3"; start $a2ae; end $a2ae; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level10_colpf0"; start $a2af; end $a2af; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level10_colpf1"; start $a2b0; end $a2b0; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level10_colpf2"; start $a2b1; end $a2b1; type bytetable; comment "color for bombs"; };
+range { name "level10_offs_50"; start $a2b2; end $a2b6; type bytetable; comment "unknown"; };
range { name "level10_offs_55"; start $a2b7; end $a2b9; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level10_offs_58"; start $a2ba; end $a2bb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level10_offs_60"; start $a2bc; end $a2bf; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
@@ -403,17 +455,21 @@ range { name "level11_points_per_bomb"; start $a2d0; end $a2d0; type bytetable;
range { name "level11_time_bonus"; start $a2d1; end $a2d2; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level11_offs_19"; start $a2d3; end $a2d3; type bytetable; comment "always $00"; };
range { name "level11_unkn_table0"; start $a2d4; end $a2d5; type addrtable; comment "pointer to ROM table or $06xx"; };
-range { name "level11_map0"; start $a2d6; end $a2d7; type addrtable; comment "map data"; };
-range { name "level11_map1"; start $a2d8; end $a2d9; type addrtable; comment "map data"; };
-range { name "level11_bomblist"; start $a2da; end $a2db; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
+range { name "level11_map"; start $a2d6; end $a2d7; type addrtable; comment "used to draw the level initially (see also map_changes)"; };
+range { name "level11_map_bombs"; start $a2d8; end $a2d9; type addrtable; comment "start of bombs in map data (which must come last!)"; };
+range { name "level11_bomblist"; start $a2da; end $a2db; type addrtable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF."; };
range { name "level11_map_changes"; start $a2dc; end $a2dd; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; };
-range { name "level11_offs_30"; start $a2de; end $a2df; type bytetable; comment "always $0000"; };
+range { name "level11_indirect_subs"; start $a2de; end $a2df; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; };
range { name "level11_sub_bomb"; start $a2e0; end $a2e1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
range { name "level11_sub_start"; start $a2e2; end $a2e3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level11_sub6"; start $a2e4; end $a2e5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level11_sub_eol"; start $a2e6; end $a2e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level11_offs_40"; start $a2e8; end $a2ed; type bytetable; comment "all zeroes"; };
-range { name "level11_offs_46"; start $a2ee; end $a2f6; type bytetable; comment "unknown"; };
+range { name "level11_colpf3"; start $a2ee; end $a2ee; type bytetable; comment "color (not sure what gets drawn in this color yet)"; };
+range { name "level11_colpf0"; start $a2ef; end $a2ef; type bytetable; comment "color for girders and up-ropes"; };
+range { name "level11_colpf1"; start $a2f0; end $a2f0; type bytetable; comment "color for ladders and down-ropes"; };
+range { name "level11_colpf2"; start $a2f1; end $a2f1; type bytetable; comment "color for bombs"; };
+range { name "level11_offs_50"; start $a2f2; end $a2f6; type bytetable; comment "unknown"; };
range { name "level11_offs_55"; start $a2f7; end $a2f9; type bytetable; comment "unknown, always $00 $00 $00"; };
range { name "level11_offs_58"; start $a2fa; end $a2fb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level11_offs_60"; start $a2fc; end $a2ff; type bytetable; comment "unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };