aboutsummaryrefslogtreecommitdiff
path: root/jumpmanjr.html
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-09-02 00:01:52 -0400
committerB. Watson <yalhcru@gmail.com>2016-09-02 00:01:52 -0400
commit909f27681c8e8869b54fc81bcb83c001ccf63ae3 (patch)
tree6edc038571562ed1b99eaa7366c36b17b642c961 /jumpmanjr.html
parent2501dc4ecbfc45170a84503a90eb15f5770e6918 (diff)
downloadjumpmanjr-909f27681c8e8869b54fc81bcb83c001ccf63ae3.tar.gz
regenerate jumpmanjr.html
Diffstat (limited to 'jumpmanjr.html')
-rw-r--r--jumpmanjr.html529
1 files changed, 350 insertions, 179 deletions
diff --git a/jumpmanjr.html b/jumpmanjr.html
index 3963a08..265a18a 100644
--- a/jumpmanjr.html
+++ b/jumpmanjr.html
@@ -7,7 +7,7 @@
<body bgcolor="#000000" text="#ffffff">
<pre>
<font color="#8080ff">; da65 V2.15 - Git 104f898</font>
-<font color="#8080ff">; Created: 2016-08-31 16:20:44</font>
+<font color="#8080ff">; Created: 2016-09-02 00:00:42</font>
<font color="#8080ff">; Input file: jumpmanjr.rom</font>
<font color="#8080ff">; Page: 1</font>
@@ -116,17 +116,21 @@
<font color="#00ffff">work_level_time_bonus</font>:=<font color="#ff40ff"> $0791 </font> <font color="#8080ff">; amount of time bonus at start of level</font>
<font color="#00ffff">work_level_offs_19</font>:=<font color="#ff40ff"> $0793 </font> <font color="#8080ff">; always $00</font>
<font color="#00ffff">work_level_unkn_table0</font>:=<font color="#ff40ff"> $0794 </font> <font color="#8080ff">; pointer to ROM table or $06xx</font>
-<font color="#00ffff">work_level_map0</font> :=<font color="#ff40ff"> $0796 </font> <font color="#8080ff">; map data</font>
-<font color="#00ffff">work_level_map1</font> :=<font color="#ff40ff"> $0798 </font> <font color="#8080ff">; map data</font>
-<font color="#00ffff">work_level_bomblist</font>:=<font color="#ff40ff"> $079A </font> <font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#00ffff">work_level_map</font> :=<font color="#ff40ff"> $0796 </font> <font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">work_level_map_bombs</font>:=<font color="#ff40ff"> $0798 </font> <font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">work_level_bomblist</font>:=<font color="#ff40ff"> $079A </font> <font color="#8080ff">; 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.</font>
<font color="#00ffff">work_level_map_changes</font>:=<font color="#ff40ff"> $079C </font> <font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
-<font color="#00ffff">work_level_offs_30</font>:=<font color="#ff40ff"> $079E </font> <font color="#8080ff">; always $0000</font>
+<font color="#00ffff">work_level_indirect_subs</font>:=<font color="#ff40ff"> $079E </font> <font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
<font color="#00ffff">work_level_sub_bomb</font>:=<font color="#ff40ff"> $07A0 </font> <font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
<font color="#00ffff">work_level_sub_start</font>:=<font color="#ff40ff"> $07A2 </font> <font color="#8080ff">; called at start of level, $06E6 for some levels, or else a ROM subroutine</font>
<font color="#00ffff">work_level_sub6</font> :=<font color="#ff40ff"> $07A4 </font> <font color="#8080ff">; always $9740 aka game_main_loop</font>
<font color="#00ffff">work_level_sub_eol</font>:=<font color="#ff40ff"> $07A6 </font> <font color="#8080ff">; called at end of level (all bombs picked up). $06E6 for all but level07</font>
<font color="#00ffff">work_level_offs_40</font>:=<font color="#ff40ff"> $07A8 </font> <font color="#8080ff">; all zeroes</font>
-<font color="#00ffff">work_level_offs_46</font>:=<font color="#ff40ff"> $07AE </font> <font color="#8080ff">; unknown</font>
+<font color="#00ffff">work_level_colpf3</font>:=<font color="#ff40ff"> $07AE </font> <font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">work_level_colpf0</font>:=<font color="#ff40ff"> $07AF </font> <font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">work_level_colpf1</font>:=<font color="#ff40ff"> $07B0 </font> <font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">work_level_colpf2</font>:=<font color="#ff40ff"> $07B1 </font> <font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">work_level_offs_50</font>:=<font color="#ff40ff"> $07B2 </font> <font color="#8080ff">; unknown</font>
<font color="#00ffff">work_level_offs_55</font>:=<font color="#ff40ff"> $07B7 </font> <font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">work_level_offs_58</font>:=<font color="#ff40ff"> $07BA </font> <font color="#8080ff">; unknown, not a ROM address</font>
<font color="#00ffff">work_level_offs_60</font>:=<font color="#ff40ff"> $07BC </font> <font color="#8080ff">; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00</font>
@@ -145,17 +149,21 @@
<font color="#00ffff">cur_level_time_bonus</font>:=<font color="#ff40ff"> $07D1 </font> <font color="#8080ff">; amount of time bonus at start of level</font>
<font color="#00ffff">cur_level_offs_19</font>:=<font color="#ff40ff"> $07D3 </font> <font color="#8080ff">; always $00</font>
<font color="#00ffff">cur_level_unkn_table0</font>:=<font color="#ff40ff"> $07D4 </font> <font color="#8080ff">; pointer to ROM table or $06xx</font>
-<font color="#00ffff">cur_level_map0</font> :=<font color="#ff40ff"> $07D6 </font> <font color="#8080ff">; map data</font>
-<font color="#00ffff">cur_level_map1</font> :=<font color="#ff40ff"> $07D8 </font> <font color="#8080ff">; map data</font>
-<font color="#00ffff">cur_level_bomblist</font>:=<font color="#ff40ff"> $07DA </font> <font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#00ffff">cur_level_map</font> :=<font color="#ff40ff"> $07D6 </font> <font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">cur_level_map_bombs</font>:=<font color="#ff40ff"> $07D8 </font> <font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">cur_level_bomblist</font>:=<font color="#ff40ff"> $07DA </font> <font color="#8080ff">; 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.</font>
<font color="#00ffff">cur_level_map_changes</font>:=<font color="#ff40ff"> $07DC </font> <font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
-<font color="#00ffff">cur_level_offs_30</font>:=<font color="#ff40ff"> $07DE </font> <font color="#8080ff">; always $0000</font>
+<font color="#00ffff">cur_level_indirect_subs</font>:=<font color="#ff40ff"> $07DE </font> <font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
<font color="#00ffff">cur_level_sub_bomb</font>:=<font color="#ff40ff"> $07E0 </font> <font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
<font color="#00ffff">cur_level_sub_start</font>:=<font color="#ff40ff"> $07E2 </font> <font color="#8080ff">; called at start of level, $06E6 for some levels, or else a ROM subroutine</font>
<font color="#00ffff">cur_level_sub6</font> :=<font color="#ff40ff"> $07E4 </font> <font color="#8080ff">; always $9740 aka game_main_loop</font>
<font color="#00ffff">cur_level_sub_eol</font>:=<font color="#ff40ff"> $07E6 </font> <font color="#8080ff">; called at end of level (all bombs picked up). $06E6 for all but level07</font>
<font color="#00ffff">cur_level_offs_40</font>:=<font color="#ff40ff"> $07E8 </font> <font color="#8080ff">; all zeroes</font>
-<font color="#00ffff">cur_level_offs_46</font>:=<font color="#ff40ff"> $07EE </font> <font color="#8080ff">; unknown</font>
+<font color="#00ffff">cur_level_colpf3</font>:=<font color="#ff40ff"> $07EE </font> <font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">cur_level_colpf0</font>:=<font color="#ff40ff"> $07EF </font> <font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">cur_level_colpf1</font>:=<font color="#ff40ff"> $07F0 </font> <font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">cur_level_colpf2</font>:=<font color="#ff40ff"> $07F1 </font> <font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">cur_level_offs_50</font>:=<font color="#ff40ff"> $07F2 </font> <font color="#8080ff">; unknown</font>
<font color="#00ffff">cur_level_offs_55</font>:=<font color="#ff40ff"> $07F7 </font> <font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">cur_level_offs_58</font>:=<font color="#ff40ff"> $07FA </font> <font color="#8080ff">; unknown, not a ROM address</font>
<font color="#00ffff">cur_level_offs_60</font>:=<font color="#ff40ff"> $07FC </font> <font color="#8080ff">; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00</font>
@@ -1302,8 +1310,8 @@
<font color="#00ff00">rts</font> <font color="#8080ff">; 8729 60 `</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; clear P/M mem</font>
-<font color="#00ffff">clear_pm_mem</font>:
+<font color="#8080ff">; misc stuff, called from enable_joystick</font>
+<font color="#00ffff">prepare_level</font>:
<font color="#00ff00">lda</font> <font color="#ff6060">#$09</font> <font color="#8080ff">; 872A A9 09 ..</font>
<font color="#00ff00">sta</font> <font color="#00ffff">player_speed</font> <font color="#8080ff">; 872C 8D 24 06 .$.</font>
<font color="#00ff00">ldx</font> <font color="#ff6060">#$05</font> <font color="#8080ff">; 872F A2 05 ..</font>
@@ -1359,7 +1367,7 @@
<font color="#00ff00">stx</font> <font color="#00ffff">joystick_disabled</font> <font color="#8080ff">; 8785 8E 32 06 .2.</font>
<font color="#00ff00">stx</font> <font color="#00ffff">sfx_lock</font> <font color="#8080ff">; 8788 8E 2F 06 ./.</font>
<font color="#00ff00">stx</font> <font color="#00ffff">work_level_bullet_max</font> <font color="#8080ff">; 878B 8E 8B 07 ...</font>
- <font color="#00ff00">jsr</font> <font color="#00ffff">clear_pm_mem</font> <font color="#8080ff">; 878E 20 2A 87 *.</font>
+ <font color="#00ff00">jsr</font> <font color="#00ffff">prepare_level</font> <font color="#8080ff">; 878E 20 2A 87 *.</font>
<font color="#00ff00">jsr</font> <font color="#00ffff">silence_audio</font> <font color="#8080ff">; 8791 20 5B 87 [.</font>
<font color="#00ff00">lda</font> <font color="#ff6060">#$30</font> <font color="#8080ff">; 8794 A9 30 .0</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">SAVMSC</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 8796 85 59 .Y</font>
@@ -1367,7 +1375,7 @@
<font color="#00ffff">set_prior</font>:
<font color="#00ff00">lda</font> <font color="#ff6060">#$11</font> <font color="#8080ff">; 8798 A9 11 ..</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">PRIOR</font> <font color="#8080ff">; 879A 8D 1B D0 ...</font>
- <font color="#00ff00">jmp</font> <font color="#00ffff">L88A8</font> <font color="#8080ff">; 879D 4C A8 88 L..</font>
+ <font color="#00ff00">jmp</font> <font color="#00ffff">clear_pm_mem</font> <font color="#8080ff">; 879D 4C A8 88 L..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; check whether Jumpman just touched a bomb (RTS if not)</font>
@@ -1378,7 +1386,7 @@
<font color="#00ff00">rts</font> <font color="#8080ff">; 87A7 60 `</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; Jumpman just picked up a bomb, award points, play sfx_bomb_pickup, make the bomb disappear, do some other stuff I don't understand yet</font>
+<font color="#8080ff">; Jumpman just touched a bomb, award points, play sfx_bomb_pickup, make the bomb disappear, etc.</font>
<font color="#00ffff">bomb_pickup</font>:
<font color="#00ff00">lda</font> <font color="#00ffff">player_x_pos</font> <font color="#8080ff">; 87A8 AD 7E 06 .~.</font>
<font color="#00ff00">clc</font> <font color="#8080ff">; 87AB 18 .</font>
@@ -1395,6 +1403,8 @@
<font color="#00ff00">lsr</font> <font color="#00ffff">a</font> <font color="#8080ff">; 87BF 4A J</font>
<font color="#00ff00">ora</font> <font color="#00ffff">bombloc</font> <font color="#8080ff">; 87C0 05 B6 ..</font>
<font color="#00ff00">sta</font> <font color="#00ffff">bombloc</font> <font color="#8080ff">; 87C2 85 B6 ..</font>
+<font color="#8080ff">; screen X range approx $32 to $C6, Y $18 to $C0, meaning the coarse grid visible screen range is X 1-6, Y 0-6</font>
+<font color="#00ffff">coarse_grid</font>:
<font color="#00ff00">lda</font> <font color="#00ffff">work_level_bomblist</font> <font color="#8080ff">; 87C4 AD 9A 07 ...</font>
<font color="#00ff00">sta</font> <font color="#00ffff">blistptr</font> <font color="#8080ff">; 87C7 85 B4 ..</font>
<font color="#00ff00">lda</font> <font color="#00ffff">work_level_bomblist</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 87C9 AD 9B 07 ...</font>
@@ -1416,9 +1426,9 @@
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#00ffff">bomb_found</font>:
- <font color="#00ff00">lda</font> <font color="#00ffff">work_level_map1</font> <font color="#8080ff">; 87E0 AD 98 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">work_level_map_bombs</font> <font color="#8080ff">; 87E0 AD 98 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $B0 </font> <font color="#8080ff">; 87E3 85 B0 ..</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">work_level_map1</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 87E5 AD 99 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">work_level_map_bombs</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 87E5 AD 99 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $B1 </font> <font color="#8080ff">; 87E8 85 B1 ..</font>
<font color="#8080ff">; multiply Y by 1.5 (only works because Y will always be even at this point)</font>
<font color="#00ffff">mul_y</font>: <font color="#00ff00">tya</font> <font color="#8080ff">; 87EA 98 .</font>
@@ -1427,8 +1437,9 @@
<font color="#00ff00">clc</font> <font color="#8080ff">; 87EE 18 .</font>
<font color="#00ff00">adc</font> <font color="#ff40ff"> $B2 </font> <font color="#8080ff">; 87EF 65 B2 e.</font>
<font color="#00ff00">tay</font> <font color="#8080ff">; 87F1 A8 .</font>
-<font color="#8080ff">; find out: why are we storing this at 06DC?</font>
-<font color="#00ffff">unkn1</font>: <font color="#00ff00">lda</font> <font color="#ff40ff"> ($B0),y </font> <font color="#8080ff">; 87F2 B1 B0 ..</font>
+<font color="#8080ff">; store actual bomb coordinates (not the coarse ones) for bomb subs to use</font>
+<font color="#00ffff">store_bomb_coords</font>:
+ <font color="#00ff00">lda</font> <font color="#ff40ff"> ($B0),y </font> <font color="#8080ff">; 87F2 B1 B0 ..</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $06DC </font> <font color="#8080ff">; 87F4 8D DC 06 ...</font>
<font color="#00ff00">iny</font> <font color="#8080ff">; 87F7 C8 .</font>
<font color="#00ff00">lda</font> <font color="#ff40ff"> ($B0),y </font> <font color="#8080ff">; 87F8 B1 B0 ..</font>
@@ -1449,7 +1460,7 @@
<font color="#00ff00">lsr</font> <font color="#00ffff">a</font> <font color="#8080ff">; 8818 4A J</font>
<font color="#00ff00">lsr</font> <font color="#00ffff">a</font> <font color="#8080ff">; 8819 4A J</font>
<font color="#00ff00">tay</font> <font color="#8080ff">; 881A A8 .</font>
-<font color="#8080ff">; this has to do with redrawing parts of the level (e.g. disappearing platforms on level00)</font>
+<font color="#8080ff">; some bombs redraw parts of the level (e.g. disappearing platforms on level00)</font>
<font color="#00ffff">change_map</font>:
<font color="#00ff00">lda</font> <font color="#00ffff">work_level_map_changes</font> <font color="#8080ff">; 881B AD 9C 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $B0 </font> <font color="#8080ff">; 881E 85 B0 ..</font>
@@ -1473,9 +1484,9 @@
<font color="#00ff00">tay</font> <font color="#8080ff">; 883D A8 .</font>
<font color="#8080ff">; this would call a subroutine via pointer-to-pointer, but I'm almost 100% certain it's never used (maybe a holdover from original Jumpman?)</font>
<font color="#00ffff">call_bomb_indirect_sub</font>:
- <font color="#00ff00">lda</font> <font color="#00ffff">work_level_offs_30</font> <font color="#8080ff">; 883E AD 9E 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">work_level_indirect_subs</font> <font color="#8080ff">; 883E AD 9E 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $B0 </font> <font color="#8080ff">; 8841 85 B0 ..</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">work_level_offs_30</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 8843 AD 9F 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">work_level_indirect_subs</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 8843 AD 9F 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $B1 </font> <font color="#8080ff">; 8846 85 B1 ..</font>
<font color="#00ff00">lda</font> <font color="#ff40ff"> ($B0),y </font> <font color="#8080ff">; 8848 B1 B0 ..</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $06E4 </font> <font color="#8080ff">; 884A 8D E4 06 ...</font>
@@ -1509,9 +1520,11 @@
<font color="#00ff00">jsr</font> <font color="#00ffff">draw_map_jv</font> <font color="#8080ff">; 8881 20 00 80 ..</font>
<font color="#00ff00">jsr</font> <font color="#00ffff">update_score_display_jv</font> <font color="#8080ff">; 8884 20 0C 80 ..</font>
<font color="#00ff00">dec</font> <font color="#00ffff">work_level_num_bombs</font> <font color="#8080ff">; 8887 CE 8A 07 ...</font>
-<font color="#00ffff">L888A</font>: <font color="#00ff00">lda</font> <font color="#00ffff">collision_save</font>+<font color="#ff6060">4</font> <font color="#8080ff">; 888A AD B4 06 ...</font>
+<font color="#8080ff">; wait for bomb to really disappear</font>
+<font color="#00ffff">wait_bomb</font>:
+ <font color="#00ff00">lda</font> <font color="#00ffff">collision_save</font>+<font color="#ff6060">4</font> <font color="#8080ff">; 888A AD B4 06 ...</font>
<font color="#00ff00">and</font> <font color="#ff6060">#$04</font> <font color="#8080ff">; 888D 29 04 ).</font>
- <font color="#00ff00">bne</font> <font color="#00ffff">L888A</font> <font color="#8080ff">; 888F D0 F9 ..</font>
+ <font color="#00ff00">bne</font> <font color="#00ffff">wait_bomb</font> <font color="#8080ff">; 888F D0 F9 ..</font>
<font color="#00ff00">rts</font> <font color="#8080ff">; 8891 60 `</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
@@ -1521,15 +1534,18 @@
.<font color="#ffff00">byte</font> <font color="#ff6060">$03</font>,<font color="#ff6060">$28</font>,<font color="#ff6060">$03</font>,<font color="#ff6060">$1E</font>,<font color="#ff6060">$03</font>,<font color="#ff6060">$28</font>,<font color="#ff6060">$03</font>,<font color="#ff6060">$1E</font> <font color="#8080ff">; 889A 03 28 03 1E 03 28 03 1E .(...(..</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$03</font>,<font color="#ff6060">$28</font>,<font color="#ff6060">$03</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; 88A2 03 28 03 00 00 00 .(....</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#00ffff">L88A8</font>: <font color="#00ff00">ldx</font> <font color="#ff6060">#$00</font> <font color="#8080ff">; 88A8 A2 00 ..</font>
+<font color="#8080ff">; clear P/M memory, called from enable_joystick</font>
+<font color="#00ffff">clear_pm_mem</font>:
+ <font color="#00ff00">ldx</font> <font color="#ff6060">#$00</font> <font color="#8080ff">; 88A8 A2 00 ..</font>
<font color="#00ff00">txa</font> <font color="#8080ff">; 88AA 8A .</font>
-<font color="#00ffff">L88AB</font>: <font color="#00ff00">sta</font> <font color="#ff40ff"> $2B00,x </font> <font color="#8080ff">; 88AB 9D 00 2B ..+</font>
+<font color="#00ffff">clr_loop</font>:
+ <font color="#00ff00">sta</font> <font color="#ff40ff"> $2B00,x </font> <font color="#8080ff">; 88AB 9D 00 2B ..+</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $2C00,x </font> <font color="#8080ff">; 88AE 9D 00 2C ..,</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $2D00,x </font> <font color="#8080ff">; 88B1 9D 00 2D ..-</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $2E00,x </font> <font color="#8080ff">; 88B4 9D 00 2E ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $2F00,x </font> <font color="#8080ff">; 88B7 9D 00 2F ../</font>
<font color="#00ff00">dex</font> <font color="#8080ff">; 88BA CA .</font>
- <font color="#00ff00">bne</font> <font color="#00ffff">L88AB</font> <font color="#8080ff">; 88BB D0 EE ..</font>
+ <font color="#00ff00">bne</font> <font color="#00ffff">clr_loop</font> <font color="#8080ff">; 88BB D0 EE ..</font>
<font color="#00ff00">rts</font> <font color="#8080ff">; 88BD 60 `</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
@@ -3191,9 +3207,9 @@
<font color="#00ff00">lda</font> <font color="#ff6060">#$96</font> <font color="#8080ff">; 9659 A9 96 ..</font>
<font color="#00ff00">sta</font> <font color="#00ffff">work_level_sub0</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 965B 8D 83 07 ...</font>
<font color="#00ff00">jsr</font> <font color="#00ffff">clear_screen_mem_jv</font> <font color="#8080ff">; 965E 20 1E 80 ..</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_map0</font> <font color="#8080ff">; 9661 AD D6 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_map</font> <font color="#8080ff">; 9661 AD D6 07 ...</font>
<font color="#00ff00">sta</font> <font color="#00ffff">dm_progctr</font> <font color="#8080ff">; 9664 85 C0 ..</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_map0</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 9666 AD D7 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_map</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 9666 AD D7 07 ...</font>
<font color="#00ff00">sta</font> <font color="#00ffff">dm_progctr</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 9669 85 C1 ..</font>
<font color="#00ff00">jsr</font> <font color="#00ffff">draw_map_jv</font> <font color="#8080ff">; 966B 20 00 80 ..</font>
<font color="#00ffff">L966E</font>: <font color="#00ff00">lda</font> <font color="#00ffff">jiffy_timer_2</font> <font color="#8080ff">; 966E AD 1B 06 ...</font>
@@ -3215,13 +3231,13 @@
<font color="#00ff00">lda</font> <font color="#ff6060">#$00</font> <font color="#8080ff">; 9691 A9 00 ..</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">COLOR4</font> <font color="#8080ff">; 9693 8D C8 02 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff"> $06AB </font> <font color="#8080ff">; 9696 8D AB 06 ...</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">work_level_offs_46</font>+<font color="#ff6060">1</font> <font color="#8080ff">; 9699 AD AF 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">work_level_colpf0</font> <font color="#8080ff">; 9699 AD AF 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">COLOR0</font> <font color="#8080ff">; 969C 8D C4 02 ...</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">work_level_offs_46</font>+<font color="#ff6060">2</font> <font color="#8080ff">; 969F AD B0 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">work_level_colpf1</font> <font color="#8080ff">; 969F AD B0 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">COLOR1</font> <font color="#8080ff">; 96A2 8D C5 02 ...</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">work_level_offs_46</font>+<font color="#ff6060">3</font> <font color="#8080ff">; 96A5 AD B1 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">work_level_colpf2</font> <font color="#8080ff">; 96A5 AD B1 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">COLOR2</font> <font color="#8080ff">; 96A8 8D C6 02 ...</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">work_level_offs_46</font> <font color="#8080ff">; 96AB AD AE 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">work_level_colpf3</font> <font color="#8080ff">; 96AB AD AE 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">COLOR3</font> <font color="#8080ff">; 96AE 8D C7 02 ...</font>
<font color="#00ff00">jsr</font> <font color="#00ffff">setup_gameboard_dlist_jv</font> <font color="#8080ff">; 96B1 20 15 80 ..</font>
<font color="#00ff00">inc</font> <font color="#ff40ff"> $06F5 </font> <font color="#8080ff">; 96B4 EE F5 06 ...</font>
@@ -3578,7 +3594,7 @@
<font color="#00ff00">sbc</font> <font color="#ff6060">#$30</font> <font color="#8080ff">; 994D E9 30 .0</font>
<font color="#00ff00">sta</font> <font color="#00ffff">zp_temp1</font> <font color="#8080ff">; 994F 85 CB ..</font>
<font color="#00ff00">ldx</font> <font color="#ff6060">#$08</font> <font color="#8080ff">; 9951 A2 08 ..</font>
-<font color="#00ffff">L9953</font>: <font color="#00ff00">lda</font> <font color="#00ffff">work_level_offs_46</font>+<font color="#ff6060">3</font>,<font color="#00ffff">x</font> <font color="#8080ff">; 9953 BD B1 07 ...</font>
+<font color="#00ffff">L9953</font>: <font color="#00ff00">lda</font> <font color="#00ffff">work_level_colpf2</font>,<font color="#00ffff">x</font> <font color="#8080ff">; 9953 BD B1 07 ...</font>
<font color="#00ff00">clc</font> <font color="#8080ff">; 9956 18 .</font>
<font color="#00ff00">adc</font> <font color="#ff6060">#$02</font> <font color="#8080ff">; 9957 69 02 i.</font>
<font color="#00ff00">cmp</font> <font color="#00ffff">zp_temp1</font> <font color="#8080ff">; 9959 C5 CB ..</font>
@@ -3593,7 +3609,7 @@
<font color="#00ff00">rts</font> <font color="#8080ff">; 9968 60 `</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#00ffff">L9969</font>: <font color="#00ff00">lda</font> <font color="#00ffff">work_level_offs_46</font>+<font color="#ff6060">3</font>,<font color="#00ffff">x</font> <font color="#8080ff">; 9969 BD B1 07 ...</font>
+<font color="#00ffff">L9969</font>: <font color="#00ff00">lda</font> <font color="#00ffff">work_level_colpf2</font>,<font color="#00ffff">x</font> <font color="#8080ff">; 9969 BD B1 07 ...</font>
<font color="#00ff00">clc</font> <font color="#8080ff">; 996C 18 .</font>
<font color="#00ff00">adc</font> <font color="#ff6060">#$30</font> <font color="#8080ff">; 996D 69 30 i0</font>
<font color="#00ff00">sec</font> <font color="#8080ff">; 996F 38 8</font>
@@ -4209,21 +4225,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level00_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L06DF</font> <font color="#8080ff">; A014 DF 06 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level00_map0</font>:
- .<font color="#00ffff">addr</font> <font color="#00ffff">level00_map</font> <font color="#8080ff">; A016 00 A3 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level00_map1</font>:
- .<font color="#00ffff">addr</font> <font color="#00ffff">LA366</font> <font color="#8080ff">; A018 66 A3 f.</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level00_map</font>:
+ .<font color="#00ffff">addr</font> <font color="#00ffff">l00_map</font> <font color="#8080ff">; A016 00 A3 ..</font>
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level00_map_bombs</font>:
+ .<font color="#00ffff">addr</font> <font color="#00ffff">l00_map_bombs</font> <font color="#8080ff">; A018 66 A3 f.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level00_bomblist</font>:
- .<font color="#00ffff">addr</font> <font color="#00ffff">LA38B</font> <font color="#8080ff">; A01A 8B A3 ..</font>
+ .<font color="#00ffff">addr</font> <font color="#00ffff">l00_bombs</font> <font color="#8080ff">; A01A 8B A3 ..</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level00_map_changes</font>:
- .<font color="#00ffff">addr</font> <font color="#00ffff">LA3A4</font> <font color="#8080ff">; A01C A4 A3 ..</font>
+ .<font color="#00ffff">addr</font> <font color="#00ffff">l00_map_changes</font> <font color="#8080ff">; A01C A4 A3 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level00_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level00_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A01E 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -4242,10 +4258,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level00_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A028 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level00_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $CA </font> <font color="#8080ff">; A02E CA .</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level00_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $96 </font> <font color="#8080ff">; A02F 96 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level00_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $18 </font> <font color="#8080ff">; A030 18 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level00_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $5A </font> <font color="#8080ff">; A031 5A Z</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level00_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$CA</font>,<font color="#ff6060">$96</font>,<font color="#ff6060">$18</font>,<font color="#ff6060">$5A</font>,<font color="#ff6060">$0C</font>,<font color="#ff6060">$24</font>,<font color="#ff6060">$4C</font>,<font color="#ff6060">$74</font> <font color="#8080ff">; A02E CA 96 18 5A 0C 24 4C 74 ...Z.$Lt</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $8C </font> <font color="#8080ff">; A036 8C .</font>
+<font color="#00ffff">level00_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$0C</font>,<font color="#ff6060">$24</font>,<font color="#ff6060">$4C</font>,<font color="#ff6060">$74</font>,<font color="#ff6060">$8C</font> <font color="#8080ff">; A032 0C 24 4C 74 8C .$Lt.</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level00_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A037 00 00 00 ...</font>
@@ -4305,21 +4332,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level01_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA5C2</font> <font color="#8080ff">; A054 C2 A5 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level01_map0</font>:
- .<font color="#00ffff">addr</font> <font color="#00ffff">LA3E0</font> <font color="#8080ff">; A056 E0 A3 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level01_map1</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level01_map</font>:
+ .<font color="#00ffff">addr</font> <font color="#00ffff">l01_map</font> <font color="#8080ff">; A056 E0 A3 ..</font>
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level01_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA446</font> <font color="#8080ff">; A058 46 A4 F.</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level01_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA477</font> <font color="#8080ff">; A05A 77 A4 w.</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level01_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L0000</font> <font color="#8080ff">; A05C 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level01_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level01_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A05E 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -4338,10 +4365,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level01_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A068 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level01_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $6A </font> <font color="#8080ff">; A06E 6A j</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level01_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $08 </font> <font color="#8080ff">; A06F 08 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level01_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $C6 </font> <font color="#8080ff">; A070 C6 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level01_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $1A </font> <font color="#8080ff">; A071 1A .</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level01_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$6A</font>,<font color="#ff6060">$08</font>,<font color="#ff6060">$C6</font>,<font color="#ff6060">$1A</font>,<font color="#ff6060">$18</font>,<font color="#ff6060">$4C</font>,<font color="#ff6060">$80</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A06E 6A 08 C6 1A 18 4C 80 00 j....L..</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $00 </font> <font color="#8080ff">; A076 00 .</font>
+<font color="#00ffff">level01_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$18</font>,<font color="#ff6060">$4C</font>,<font color="#ff6060">$80</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A072 18 4C 80 00 00 .L...</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level01_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A077 00 00 00 ...</font>
@@ -4401,21 +4439,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level02_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA66D</font> <font color="#8080ff">; A094 6D A6 m.</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level02_map0</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level02_map</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA5F0</font> <font color="#8080ff">; A096 F0 A5 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level02_map1</font>:
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level02_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA62F</font> <font color="#8080ff">; A098 2F A6 /.</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level02_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA654</font> <font color="#8080ff">; A09A 54 A6 T.</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level02_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L0000</font> <font color="#8080ff">; A09C 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level02_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level02_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A09E 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -4434,10 +4472,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level02_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A0A8 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level02_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $1A </font> <font color="#8080ff">; A0AE 1A .</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level02_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $C6 </font> <font color="#8080ff">; A0AF C6 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level02_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $96 </font> <font color="#8080ff">; A0B0 96 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level02_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $1A </font> <font color="#8080ff">; A0B1 1A .</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level02_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$1A</font>,<font color="#ff6060">$C6</font>,<font color="#ff6060">$96</font>,<font color="#ff6060">$1A</font>,<font color="#ff6060">$0C</font>,<font color="#ff6060">$8C</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A0AE 1A C6 96 1A 0C 8C 00 00 ........</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $00 </font> <font color="#8080ff">; A0B6 00 .</font>
+<font color="#00ffff">level02_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$0C</font>,<font color="#ff6060">$8C</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A0B2 0C 8C 00 00 00 .....</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level02_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A0B7 00 00 00 ...</font>
@@ -4497,21 +4546,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level03_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L06DF</font> <font color="#8080ff">; A0D4 DF 06 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level03_map0</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level03_map</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA790</font> <font color="#8080ff">; A0D6 90 A7 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level03_map1</font>:
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level03_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA7D5</font> <font color="#8080ff">; A0D8 D5 A7 ..</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level03_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA806</font> <font color="#8080ff">; A0DA 06 A8 ..</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level03_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L0000</font> <font color="#8080ff">; A0DC 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level03_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level03_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A0DE 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -4530,10 +4579,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level03_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A0E8 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level03_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $CA </font> <font color="#8080ff">; A0EE CA .</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level03_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $96 </font> <font color="#8080ff">; A0EF 96 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level03_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $18 </font> <font color="#8080ff">; A0F0 18 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level03_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $5A </font> <font color="#8080ff">; A0F1 5A Z</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level03_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$CA</font>,<font color="#ff6060">$96</font>,<font color="#ff6060">$18</font>,<font color="#ff6060">$5A</font>,<font color="#ff6060">$4C</font>,<font color="#ff6060">$18</font>,<font color="#ff6060">$2C</font>,<font color="#ff6060">$80</font> <font color="#8080ff">; A0EE CA 96 18 5A 4C 18 2C 80 ...ZL.,.</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $6C </font> <font color="#8080ff">; A0F6 6C l</font>
+<font color="#00ffff">level03_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$4C</font>,<font color="#ff6060">$18</font>,<font color="#ff6060">$2C</font>,<font color="#ff6060">$80</font>,<font color="#ff6060">$6C</font> <font color="#8080ff">; A0F2 4C 18 2C 80 6C L.,.l</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level03_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A0F7 00 00 00 ...</font>
@@ -4593,21 +4653,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level04_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L06DF</font> <font color="#8080ff">; A114 DF 06 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level04_map0</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level04_map</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LAAD0</font> <font color="#8080ff">; A116 D0 AA ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level04_map1</font>:
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level04_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LAB42</font> <font color="#8080ff">; A118 42 AB B.</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level04_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LAB6D</font> <font color="#8080ff">; A11A 6D AB m.</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level04_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LAB8A</font> <font color="#8080ff">; A11C 8A AB ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level04_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level04_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A11E 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -4626,10 +4686,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level04_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A128 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level04_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $6A </font> <font color="#8080ff">; A12E 6A j</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level04_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $08 </font> <font color="#8080ff">; A12F 08 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level04_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $C6 </font> <font color="#8080ff">; A130 C6 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level04_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $1A </font> <font color="#8080ff">; A131 1A .</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level04_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$6A</font>,<font color="#ff6060">$08</font>,<font color="#ff6060">$C6</font>,<font color="#ff6060">$1A</font>,<font color="#ff6060">$0C</font>,<font color="#ff6060">$22</font>,<font color="#ff6060">$84</font>,<font color="#ff6060">$8E</font> <font color="#8080ff">; A12E 6A 08 C6 1A 0C 22 84 8E j....&quot;..</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $00 </font> <font color="#8080ff">; A136 00 .</font>
+<font color="#00ffff">level04_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$0C</font>,<font color="#ff6060">$22</font>,<font color="#ff6060">$84</font>,<font color="#ff6060">$8E</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A132 0C 22 84 8E 00 .&quot;...</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level04_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A137 00 00 00 ...</font>
@@ -4689,21 +4760,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level05_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L06DF</font> <font color="#8080ff">; A154 DF 06 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level05_map0</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level05_map</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA920</font> <font color="#8080ff">; A156 20 A9 .</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level05_map1</font>:
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level05_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA974</font> <font color="#8080ff">; A158 74 A9 t.</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level05_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LA9A5</font> <font color="#8080ff">; A15A A5 A9 ..</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level05_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L0000</font> <font color="#8080ff">; A15C 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level05_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level05_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A15E 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -4722,10 +4793,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level05_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A168 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level05_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $56 </font> <font color="#8080ff">; A16E 56 V</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level05_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $C6 </font> <font color="#8080ff">; A16F C6 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level05_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $96 </font> <font color="#8080ff">; A170 96 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level05_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $28 </font> <font color="#8080ff">; A171 28 (</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level05_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$56</font>,<font color="#ff6060">$C6</font>,<font color="#ff6060">$96</font>,<font color="#ff6060">$28</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$30</font>,<font color="#ff6060">$68</font>,<font color="#ff6060">$94</font> <font color="#8080ff">; A16E 56 C6 96 28 04 30 68 94 V..(.0h.</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $00 </font> <font color="#8080ff">; A176 00 .</font>
+<font color="#00ffff">level05_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$04</font>,<font color="#ff6060">$30</font>,<font color="#ff6060">$68</font>,<font color="#ff6060">$94</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A172 04 30 68 94 00 .0h..</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level05_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A177 00 00 00 ...</font>
@@ -4785,21 +4867,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level06_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L06DF</font> <font color="#8080ff">; A194 DF 06 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level06_map0</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level06_map</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LAC60</font> <font color="#8080ff">; A196 60 AC `.</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level06_map1</font>:
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level06_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LACBA</font> <font color="#8080ff">; A198 BA AC ..</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level06_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LACE5</font> <font color="#8080ff">; A19A E5 AC ..</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level06_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LAD02</font> <font color="#8080ff">; A19C 02 AD ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level06_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level06_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A19E 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -4818,10 +4900,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level06_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A1A8 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level06_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $CA </font> <font color="#8080ff">; A1AE CA .</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level06_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $96 </font> <font color="#8080ff">; A1AF 96 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level06_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $18 </font> <font color="#8080ff">; A1B0 18 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level06_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $5A </font> <font color="#8080ff">; A1B1 5A Z</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level06_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$CA</font>,<font color="#ff6060">$96</font>,<font color="#ff6060">$18</font>,<font color="#ff6060">$5A</font>,<font color="#ff6060">$0C</font>,<font color="#ff6060">$4C</font>,<font color="#ff6060">$8C</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A1AE CA 96 18 5A 0C 4C 8C 00 ...Z.L..</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $00 </font> <font color="#8080ff">; A1B6 00 .</font>
+<font color="#00ffff">level06_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$0C</font>,<font color="#ff6060">$4C</font>,<font color="#ff6060">$8C</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A1B2 0C 4C 8C 00 00 .L...</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level06_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A1B7 00 00 00 ...</font>
@@ -4881,21 +4974,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level07_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LAE8A</font> <font color="#8080ff">; A1D4 8A AE ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level07_map0</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level07_map</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LADE0</font> <font color="#8080ff">; A1D6 E0 AD ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level07_map1</font>:
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level07_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LAE4C</font> <font color="#8080ff">; A1D8 4C AE L.</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level07_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LAE71</font> <font color="#8080ff">; A1DA 71 AE q.</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level07_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L0000</font> <font color="#8080ff">; A1DC 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level07_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level07_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A1DE 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -4914,10 +5007,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level07_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A1E8 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level07_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $6A </font> <font color="#8080ff">; A1EE 6A j</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level07_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $08 </font> <font color="#8080ff">; A1EF 08 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level07_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $C6 </font> <font color="#8080ff">; A1F0 C6 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level07_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $1A </font> <font color="#8080ff">; A1F1 1A .</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level07_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$6A</font>,<font color="#ff6060">$08</font>,<font color="#ff6060">$C6</font>,<font color="#ff6060">$1A</font>,<font color="#ff6060">$0C</font>,<font color="#ff6060">$30</font>,<font color="#ff6060">$68</font>,<font color="#ff6060">$8C</font> <font color="#8080ff">; A1EE 6A 08 C6 1A 0C 30 68 8C j....0h.</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $00 </font> <font color="#8080ff">; A1F6 00 .</font>
+<font color="#00ffff">level07_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$0C</font>,<font color="#ff6060">$30</font>,<font color="#ff6060">$68</font>,<font color="#ff6060">$8C</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A1F2 0C 30 68 8C 00 .0h..</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level07_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A1F7 00 00 00 ...</font>
@@ -4977,21 +5081,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level08_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L06DF</font> <font color="#8080ff">; A214 DF 06 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level08_map0</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level08_map</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB0A2</font> <font color="#8080ff">; A216 A2 B0 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level08_map1</font>:
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level08_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB072</font> <font color="#8080ff">; A218 72 B0 r.</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level08_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB0A3</font> <font color="#8080ff">; A21A A3 B0 ..</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level08_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L0000</font> <font color="#8080ff">; A21C 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level08_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level08_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A21E 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -5010,10 +5114,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level08_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A228 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level08_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $1A </font> <font color="#8080ff">; A22E 1A .</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level08_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $C6 </font> <font color="#8080ff">; A22F C6 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level08_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $96 </font> <font color="#8080ff">; A230 96 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level08_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $28 </font> <font color="#8080ff">; A231 28 (</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level08_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$1A</font>,<font color="#ff6060">$C6</font>,<font color="#ff6060">$96</font>,<font color="#ff6060">$28</font>,<font color="#ff6060">$0C</font>,<font color="#ff6060">$3C</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A22E 1A C6 96 28 0C 3C 00 00 ...(.&lt;..</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $8C </font> <font color="#8080ff">; A236 8C .</font>
+<font color="#00ffff">level08_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$0C</font>,<font color="#ff6060">$3C</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$8C</font> <font color="#8080ff">; A232 0C 3C 00 00 8C .&lt;...</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level08_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A237 00 00 00 ...</font>
@@ -5073,21 +5188,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level09_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB275</font> <font color="#8080ff">; A254 75 B2 u.</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level09_map0</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level09_map</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB1E0</font> <font color="#8080ff">; A256 E0 B1 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level09_map1</font>:
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level09_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB237</font> <font color="#8080ff">; A258 37 B2 7.</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level09_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB25C</font> <font color="#8080ff">; A25A 5C B2 \.</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level09_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">L0000</font> <font color="#8080ff">; A25C 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level09_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level09_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A25E 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -5106,10 +5221,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level09_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A268 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level09_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $CA </font> <font color="#8080ff">; A26E CA .</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level09_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $96 </font> <font color="#8080ff">; A26F 96 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level09_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $18 </font> <font color="#8080ff">; A270 18 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level09_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $5A </font> <font color="#8080ff">; A271 5A Z</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level09_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$CA</font>,<font color="#ff6060">$96</font>,<font color="#ff6060">$18</font>,<font color="#ff6060">$5A</font>,<font color="#ff6060">$0C</font>,<font color="#ff6060">$40</font>,<font color="#ff6060">$8C</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A26E CA 96 18 5A 0C 40 8C 00 ...Z.@..</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $00 </font> <font color="#8080ff">; A276 00 .</font>
+<font color="#00ffff">level09_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$0C</font>,<font color="#ff6060">$40</font>,<font color="#ff6060">$8C</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A272 0C 40 8C 00 00 .@...</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level09_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A277 00 00 00 ...</font>
@@ -5169,21 +5295,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level10_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">data_table_b50b</font> <font color="#8080ff">; A294 0B B5 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level10_map0</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level10_map</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB320</font> <font color="#8080ff">; A296 20 B3 .</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level10_map1</font>:
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level10_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB38F</font> <font color="#8080ff">; A298 8F B3 ..</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level10_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB3BD</font> <font color="#8080ff">; A29A BD B3 ..</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level10_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB3DC</font> <font color="#8080ff">; A29C DC B3 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level10_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level10_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A29E 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -5202,10 +5328,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level10_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A2A8 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level10_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $6A </font> <font color="#8080ff">; A2AE 6A j</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level10_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $08 </font> <font color="#8080ff">; A2AF 08 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level10_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $C6 </font> <font color="#8080ff">; A2B0 C6 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level10_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $1A </font> <font color="#8080ff">; A2B1 1A .</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level10_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$6A</font>,<font color="#ff6060">$08</font>,<font color="#ff6060">$C6</font>,<font color="#ff6060">$1A</font>,<font color="#ff6060">$0C</font>,<font color="#ff6060">$30</font>,<font color="#ff6060">$54</font>,<font color="#ff6060">$8C</font> <font color="#8080ff">; A2AE 6A 08 C6 1A 0C 30 54 8C j....0T.</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $00 </font> <font color="#8080ff">; A2B6 00 .</font>
+<font color="#00ffff">level10_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$0C</font>,<font color="#ff6060">$30</font>,<font color="#ff6060">$54</font>,<font color="#ff6060">$8C</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A2B2 0C 30 54 8C 00 .0T..</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level10_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A2B7 00 00 00 ...</font>
@@ -5265,21 +5402,21 @@
<font color="#8080ff">; pointer to ROM table or $06xx</font>
<font color="#00ffff">level11_unkn_table0</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB658</font> <font color="#8080ff">; A2D4 58 B6 X.</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level11_map0</font>:
+<font color="#8080ff">; used to draw the level initially (see also map_changes)</font>
+<font color="#00ffff">level11_map</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">data_b590</font> <font color="#8080ff">; A2D6 90 B5 ..</font>
-<font color="#8080ff">; map data</font>
-<font color="#00ffff">level11_map1</font>:
+<font color="#8080ff">; start of bombs in map data (which must come last!)</font>
+<font color="#00ffff">level11_map_bombs</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB5D2</font> <font color="#8080ff">; A2D8 D2 B5 ..</font>
-<font color="#8080ff">; addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF.</font>
+<font color="#8080ff">; 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.</font>
<font color="#00ffff">level11_bomblist</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB5FD</font> <font color="#8080ff">; A2DA FD B5 ..</font>
<font color="#8080ff">; address of list of addresses of map data, used for changing the map when certain bombs are picked up</font>
<font color="#00ffff">level11_map_changes</font>:
.<font color="#00ffff">addr</font> <font color="#00ffff">LB61A</font> <font color="#8080ff">; A2DC 1A B6 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
-<font color="#8080ff">; always $0000</font>
-<font color="#00ffff">level11_offs_30</font>:
+<font color="#8080ff">; pointer to list of indirect subs, always $0000 in this game</font>
+<font color="#00ffff">level11_indirect_subs</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A2DE 00 00 ..</font>
<font color="#8080ff">; ----------------------------------------------------------------------------</font>
<font color="#8080ff">; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine</font>
@@ -5298,10 +5435,21 @@
<font color="#8080ff">; all zeroes</font>
<font color="#00ffff">level11_offs_40</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A2E8 00 00 00 00 00 00 ......</font>
+<font color="#8080ff">; color (not sure what gets drawn in this color yet)</font>
+<font color="#00ffff">level11_colpf3</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $08 </font> <font color="#8080ff">; A2EE 08 .</font>
+<font color="#8080ff">; color for girders and up-ropes</font>
+<font color="#00ffff">level11_colpf0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $C6 </font> <font color="#8080ff">; A2EF C6 .</font>
+<font color="#8080ff">; color for ladders and down-ropes</font>
+<font color="#00ffff">level11_colpf1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $96 </font> <font color="#8080ff">; A2F0 96 .</font>
+<font color="#8080ff">; color for bombs</font>
+<font color="#00ffff">level11_colpf2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff40ff"> $28 </font> <font color="#8080ff">; A2F1 28 (</font>
<font color="#8080ff">; unknown</font>
-<font color="#00ffff">level11_offs_46</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$08</font>,<font color="#ff6060">$C6</font>,<font color="#ff6060">$96</font>,<font color="#ff6060">$28</font>,<font color="#ff6060">$0C</font>,<font color="#ff6060">$2A</font>,<font color="#ff6060">$4C</font>,<font color="#ff6060">$6A</font> <font color="#8080ff">; A2EE 08 C6 96 28 0C 2A 4C 6A ...(.*Lj</font>
- .<font color="#ffff00">byte</font> <font color="#ff40ff"> $8C </font> <font color="#8080ff">; A2F6 8C .</font>
+<font color="#00ffff">level11_offs_50</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$0C</font>,<font color="#ff6060">$2A</font>,<font color="#ff6060">$4C</font>,<font color="#ff6060">$6A</font>,<font color="#ff6060">$8C</font> <font color="#8080ff">; A2F2 0C 2A 4C 6A 8C .*Lj.</font>
<font color="#8080ff">; unknown, always $00 $00 $00</font>
<font color="#00ffff">level11_offs_55</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A2F7 00 00 00 ...</font>
@@ -5312,8 +5460,7 @@
<font color="#00ffff">level11_offs_60</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A2FC 00 00 00 00 ....</font>
<font color="#8080ff">; level map data starts here</font>
-<font color="#00ffff">level00_map</font>:
- .<font color="#ffff00">byte</font> <font color="#ff6060">$FE</font>,<font color="#ff6060">$33</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$44</font>,<font color="#ff6060">$05</font> <font color="#8080ff">; A300 FE 33 9C FD 04 00 44 05 .3....D.</font>
+<font color="#00ffff">l00_map</font>:.<font color="#ffff00">byte</font> <font color="#ff6060">$FE</font>,<font color="#ff6060">$33</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$44</font>,<font color="#ff6060">$05</font> <font color="#8080ff">; A300 FE 33 9C FD 04 00 44 05 .3....D.</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$06</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$15</font>,<font color="#ff6060">$0A</font>,<font color="#ff6060">$74</font>,<font color="#ff6060">$15</font>,<font color="#ff6060">$0A</font>,<font color="#ff6060">$24</font> <font color="#8080ff">; A308 06 04 15 0A 74 15 0A 24 ....t..$</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$22</font>,<font color="#ff6060">$02</font>,<font color="#ff6060">$74</font>,<font color="#ff6060">$22</font>,<font color="#ff6060">$02</font>,<font color="#ff6060">$24</font>,<font color="#ff6060">$25</font>,<font color="#ff6060">$16</font> <font color="#8080ff">; A310 22 02 74 22 02 24 25 16 &quot;.t&quot;.$%.</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$04</font>,<font color="#ff6060">$45</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$44</font>,<font color="#ff6060">$45</font>,<font color="#ff6060">$06</font>,<font color="#ff6060">$8C</font>,<font color="#ff6060">$45</font> <font color="#8080ff">; A318 04 45 04 44 45 06 8C 45 .E.DE..E</font>
@@ -5326,24 +5473,48 @@
.<font color="#ffff00">byte</font> <font color="#ff6060">$15</font>,<font color="#ff6060">$FE</font>,<font color="#ff6060">$C9</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$06</font>,<font color="#ff6060">$18</font>,<font color="#ff6060">$0A</font>,<font color="#ff6060">$99</font> <font color="#8080ff">; A350 15 FE C9 9C 06 18 0A 99 ........</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$18</font>,<font color="#ff6060">$0A</font>,<font color="#ff6060">$FE</font>,<font color="#ff6060">$DA</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$1D</font>,<font color="#ff6060">$38</font>,<font color="#ff6060">$06</font> <font color="#8080ff">; A358 18 0A FE DA 9C 1D 38 06 ......8.</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$81</font>,<font color="#ff6060">$38</font>,<font color="#ff6060">$06</font>,<font color="#ff6060">$FE</font>,<font color="#ff6060">$B3</font>,<font color="#ff6060">$9C</font> <font color="#8080ff">; A360 81 38 06 FE B3 9C .8....</font>
-<font color="#00ffff">LA366</font>: .<font color="#ffff00">byte</font> <font color="#ff6060">$04</font>,<font color="#ff6060">$12</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$38</font>,<font color="#ff6060">$02</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$64</font>,<font color="#ff6060">$02</font> <font color="#8080ff">; A366 04 12 01 38 02 01 64 02 ...8..d.</font>
+<font color="#8080ff">; gfx_draw instructions for bombs, used by bomb_pickup to get bomb coords. $ff terminated</font>
+<font color="#00ffff">l00_map_bombs</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$04</font>,<font color="#ff6060">$12</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$38</font>,<font color="#ff6060">$02</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$64</font>,<font color="#ff6060">$02</font> <font color="#8080ff">; A366 04 12 01 38 02 01 64 02 ...8..d.</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$01</font>,<font color="#ff6060">$98</font>,<font color="#ff6060">$12</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$44</font>,<font color="#ff6060">$22</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$58</font> <font color="#8080ff">; A36E 01 98 12 01 44 22 01 58 ....D&quot;.X</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$22</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$42</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$98</font>,<font color="#ff6060">$42</font>,<font color="#ff6060">$01</font> <font color="#8080ff">; A376 22 01 04 42 01 98 42 01 &quot;..B..B.</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$04</font>,<font color="#ff6060">$52</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$38</font>,<font color="#ff6060">$52</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$64</font>,<font color="#ff6060">$52</font> <font color="#8080ff">; A37E 04 52 01 38 52 01 64 52 .R.8R.dR</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$01</font>,<font color="#ff6060">$98</font>,<font color="#ff6060">$52</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$FF</font> <font color="#8080ff">; A386 01 98 52 01 FF ..R..</font>
-<font color="#00ffff">LA38B</font>: .<font color="#ffff00">byte</font> <font color="#ff6060">$24</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$62</font>,<font color="#ff6060">$10</font>,<font color="#ff6060">$82</font>,<font color="#ff6060">$20</font>,<font color="#ff6060">$C4</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A38B 24 00 62 10 82 20 C4 00 $.b.. ..</font>
+<font color="#8080ff">; 2 bytes per entry, terminated by $FF. 1st byte is coarse grid coords (top nybble = X, bottom = Y), 2nd byte is index into map_changes</font>
+<font color="#00ffff">l00_bombs</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$24</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$62</font>,<font color="#ff6060">$10</font>,<font color="#ff6060">$82</font>,<font color="#ff6060">$20</font>,<font color="#ff6060">$C4</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A38B 24 00 62 10 82 20 C4 00 $.b.. ..</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$66</font>,<font color="#ff6060">$30</font>,<font color="#ff6060">$86</font>,<font color="#ff6060">$40</font>,<font color="#ff6060">$2A</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$CA</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A393 66 30 86 40 2A 00 CA 00 f0.@*...</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$2C</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$6C</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$8C</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$CC</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A39B 2C 00 6C 00 8C 00 CC 00 ,.l.....</font>
+<font color="#8080ff">; terminator for l00_bombs</font>
+<font color="#00ffff">l00_bombs_term</font>:
.<font color="#ffff00">byte</font> <font color="#ff40ff"> $FF </font> <font color="#8080ff">; A3A3 FF .</font>
-<font color="#00ffff">LA3A4</font>: .<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$AE</font>,<font color="#ff6060">$A3</font>,<font color="#ff6060">$B8</font>,<font color="#ff6060">$A3</font>,<font color="#ff6060">$C2</font>,<font color="#ff6060">$A3</font> <font color="#8080ff">; A3A4 00 00 AE A3 B8 A3 C2 A3 ........</font>
- .<font color="#ffff00">byte</font> <font color="#ff6060">$CC</font>,<font color="#ff6060">$A3</font>,<font color="#ff6060">$FE</font>,<font color="#ff6060">$49</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$01</font> <font color="#8080ff">; A3AC CC A3 FE 49 9C FD 04 01 ...I....</font>
- .<font color="#ffff00">byte</font> <font color="#ff6060">$64</font>,<font color="#ff6060">$08</font>,<font color="#ff6060">$02</font>,<font color="#ff6060">$FF</font>,<font color="#ff6060">$FE</font>,<font color="#ff6060">$49</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font> <font color="#8080ff">; A3B4 64 08 02 FF FE 49 9C FD d....I..</font>
- .<font color="#ffff00">byte</font> <font color="#ff6060">$04</font>,<font color="#ff6060">$FF</font>,<font color="#ff6060">$34</font>,<font color="#ff6060">$09</font>,<font color="#ff6060">$02</font>,<font color="#ff6060">$FF</font>,<font color="#ff6060">$FE</font>,<font color="#ff6060">$49</font> <font color="#8080ff">; A3BC 04 FF 34 09 02 FF FE 49 ..4....I</font>
- .<font color="#ffff00">byte</font> <font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$2C</font>,<font color="#ff6060">$25</font>,<font color="#ff6060">$05</font>,<font color="#ff6060">$FF</font> <font color="#8080ff">; A3C4 9C FD 04 00 2C 25 05 FF ....,%..</font>
+<font color="#8080ff">; ----------------------------------------------------------------------------</font>
+<font color="#8080ff">; 0000 = no change</font>
+<font color="#00ffff">l00_map_changes</font>:
+ .<font color="#00ffff">addr</font> <font color="#00ffff">L0000</font> <font color="#8080ff">; A3A4 00 00 ..</font>
+ .<font color="#00ffff">addr</font> <font color="#00ffff">l00_map_change_0</font> <font color="#8080ff">; A3A6 AE A3 ..</font>
+ .<font color="#00ffff">addr</font> <font color="#00ffff">l00_map_change_1</font> <font color="#8080ff">; A3A8 B8 A3 ..</font>
+ .<font color="#00ffff">addr</font> <font color="#00ffff">l00_map_change_2</font> <font color="#8080ff">; A3AA C2 A3 ..</font>
+ .<font color="#00ffff">addr</font> <font color="#00ffff">l00_map_change_3</font> <font color="#8080ff">; A3AC CC A3 ..</font>
+<font color="#8080ff">; ----------------------------------------------------------------------------</font>
+<font color="#00ffff">l00_map_change_0</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$FE</font>,<font color="#ff6060">$49</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$01</font>,<font color="#ff6060">$64</font>,<font color="#ff6060">$08</font> <font color="#8080ff">; A3AE FE 49 9C FD 04 01 64 08 .I....d.</font>
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$02</font>,<font color="#ff6060">$FF</font> <font color="#8080ff">; A3B6 02 FF ..</font>
+<font color="#00ffff">l00_map_change_1</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$FE</font>,<font color="#ff6060">$49</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$FF</font>,<font color="#ff6060">$34</font>,<font color="#ff6060">$09</font> <font color="#8080ff">; A3B8 FE 49 9C FD 04 FF 34 09 .I....4.</font>
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$02</font>,<font color="#ff6060">$FF</font> <font color="#8080ff">; A3C0 02 FF ..</font>
+<font color="#00ffff">l00_map_change_2</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$FE</font>,<font color="#ff6060">$49</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$2C</font>,<font color="#ff6060">$25</font> <font color="#8080ff">; A3C2 FE 49 9C FD 04 00 2C 25 .I....,%</font>
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$05</font>,<font color="#ff6060">$FF</font> <font color="#8080ff">; A3CA 05 FF ..</font>
+<font color="#00ffff">l00_map_change_3</font>:
.<font color="#ffff00">byte</font> <font color="#ff6060">$FE</font>,<font color="#ff6060">$49</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$60</font>,<font color="#ff6060">$25</font> <font color="#8080ff">; A3CC FE 49 9C FD 04 00 60 25 .I....`%</font>
- .<font color="#ffff00">byte</font> <font color="#ff6060">$05</font>,<font color="#ff6060">$FF</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A3D4 05 FF 00 00 00 00 00 00 ........</font>
- .<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A3DC 00 00 00 00 ....</font>
-<font color="#00ffff">LA3E0</font>: .<font color="#ffff00">byte</font> <font color="#ff6060">$FE</font>,<font color="#ff6060">$33</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$05</font> <font color="#8080ff">; A3E0 FE 33 9C FD 04 00 04 05 .3......</font>
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$05</font>,<font color="#ff6060">$FF</font> <font color="#8080ff">; A3D4 05 FF ..</font>
+<font color="#8080ff">; probably just filler</font>
+<font color="#00ffff">zero_filler_a3d6</font>:
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A3D6 00 00 00 00 00 00 00 00 ........</font>
+ .<font color="#ffff00">byte</font> <font color="#ff6060">$00</font>,<font color="#ff6060">$00</font> <font color="#8080ff">; A3DE 00 00 ..</font>
+<font color="#8080ff">; level map data starts here</font>
+<font color="#00ffff">l01_map</font>:.<font color="#ffff00">byte</font> <font color="#ff6060">$FE</font>,<font color="#ff6060">$33</font>,<font color="#ff6060">$9C</font>,<font color="#ff6060">$FD</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$00</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$05</font> <font color="#8080ff">; A3E0 FE 33 9C FD 04 00 04 05 .3......</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$08</font>,<font color="#ff6060">$34</font>,<font color="#ff6060">$05</font>,<font color="#ff6060">$0E</font>,<font color="#ff6060">$7C</font>,<font color="#ff6060">$05</font>,<font color="#ff6060">$08</font>,<font color="#ff6060">$14</font> <font color="#8080ff">; A3E8 08 34 05 0E 7C 05 08 14 .4..|...</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$15</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$34</font>,<font color="#ff6060">$15</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$5C</font>,<font color="#ff6060">$15</font>,<font color="#ff6060">$04</font> <font color="#8080ff">; A3F0 15 04 34 15 04 5C 15 04 ..4..\..</font>
.<font color="#ffff00">byte</font> <font color="#ff6060">$7C</font>,<font color="#ff6060">$15</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$04</font>,<font color="#ff6060">$25</font>,<font color="#ff6060">$10</font>,<font color="#ff6060">$5C</font>,<font color="#ff6060">$25</font> <font color="#8080ff">; A3F8 7C 15 04 04 25 10 5C 25 |...%.\%</font>
@@ -7071,9 +7242,9 @@
<font color="#00ff00">lda</font> <font color="#ff6060">#$30</font> <font color="#8080ff">; BA13 A9 30 .0</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">SAVMSC</font>+<font color="#ff6060">1</font> <font color="#8080ff">; BA15 85 59 .Y</font>
<font color="#00ff00">jsr</font> <font color="#00ffff">clear_screen_mem_jv</font> <font color="#8080ff">; BA17 20 1E 80 ..</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_map0</font> <font color="#8080ff">; BA1A AD D6 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_map</font> <font color="#8080ff">; BA1A AD D6 07 ...</font>
<font color="#00ff00">sta</font> <font color="#00ffff">dm_progctr</font> <font color="#8080ff">; BA1D 85 C0 ..</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_map0</font>+<font color="#ff6060">1</font> <font color="#8080ff">; BA1F AD D7 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_map</font>+<font color="#ff6060">1</font> <font color="#8080ff">; BA1F AD D7 07 ...</font>
<font color="#00ff00">sta</font> <font color="#00ffff">dm_progctr</font>+<font color="#ff6060">1</font> <font color="#8080ff">; BA22 85 C1 ..</font>
<font color="#00ff00">jsr</font> <font color="#00ffff">draw_map_jv</font> <font color="#8080ff">; BA24 20 00 80 ..</font>
<font color="#00ff00">lda</font> <font color="#ff6060">#$30</font> <font color="#8080ff">; BA27 A9 30 .0</font>
@@ -7119,13 +7290,13 @@
<font color="#8080ff">; level is already drawn with all color regs set to black. for each color reg, wait 1 sec before turning it visible. this syncs up with the music because the music was written to sync with this actually</font>
<font color="#00ffff">sync_to_music</font>:
<font color="#00ff00">jsr</font> <font color="#00ffff">wait_1_sec</font> <font color="#8080ff">; BA71 20 9E BA ..</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_offs_46</font>+<font color="#ff6060">3</font> <font color="#8080ff">; BA74 AD F1 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_colpf2</font> <font color="#8080ff">; BA74 AD F1 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">COLOR2</font> <font color="#8080ff">; BA77 8D C6 02 ...</font>
<font color="#00ff00">jsr</font> <font color="#00ffff">wait_1_sec</font> <font color="#8080ff">; BA7A 20 9E BA ..</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_offs_46</font>+<font color="#ff6060">2</font> <font color="#8080ff">; BA7D AD F0 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_colpf1</font> <font color="#8080ff">; BA7D AD F0 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">COLOR1</font> <font color="#8080ff">; BA80 8D C5 02 ...</font>
<font color="#00ff00">jsr</font> <font color="#00ffff">wait_1_sec</font> <font color="#8080ff">; BA83 20 9E BA ..</font>
- <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_offs_46</font>+<font color="#ff6060">1</font> <font color="#8080ff">; BA86 AD EF 07 ...</font>
+ <font color="#00ff00">lda</font> <font color="#00ffff">cur_level_colpf0</font> <font color="#8080ff">; BA86 AD EF 07 ...</font>
<font color="#00ff00">sta</font> <font color="#ff40ff">COLOR0</font> <font color="#8080ff">; BA89 8D C4 02 ...</font>
<font color="#00ff00">jsr</font> <font color="#00ffff">wait_1_sec</font> <font color="#8080ff">; BA8C 20 9E BA ..</font>
<font color="#00ff00">lda</font> <font color="#ff6060">#$00</font> <font color="#8080ff">; BA8F A9 00 ..</font>
@@ -7260,7 +7431,7 @@
<font color="#00ff00">lda</font> <font color="#ff6060">#$BD</font> <font color="#8080ff">; BC88 A9 BD ..</font>
<font color="#00ff00">sta</font> <font color="#00ffff">work_level_sub1</font>+<font color="#ff6060">1</font> <font color="#8080ff">; BC8A 8D 85 07 ...</font>
<font color="#00ff00">lda</font> <font color="#ff6060">#$4C</font> <font color="#8080ff">; BC8D A9 4C .L</font>
- <font color="#00ff00">sta</font> <font color="#00ffff">work_level_offs_46</font>+<font color="#ff6060">7</font> <font color="#8080ff">; BC8F 8D B5 07 ...</font>
+ <font color="#00ff00">sta</font> <font color="#00ffff">work_level_offs_50</font>+<font color="#ff6060">3</font> <font color="#8080ff">; BC8F 8D B5 07 ...</font>
<font color="#8080ff">; wait for score screen to finish (I think, anyway)</font>
<font color="#00ffff">wd_wait_scores</font>:
<font color="#00ff00">lda</font> <font color="#00ffff">work_level_sub1</font> <font color="#8080ff">; BC92 AD 84 07 ...</font>