aboutsummaryrefslogtreecommitdiff
path: root/jumpmanjr.info
diff options
context:
space:
mode:
Diffstat (limited to 'jumpmanjr.info')
-rw-r--r--jumpmanjr.info54
1 files changed, 34 insertions, 20 deletions
diff --git a/jumpmanjr.info b/jumpmanjr.info
index 7d3ea17..f5620ed 100644
--- a/jumpmanjr.info
+++ b/jumpmanjr.info
@@ -56,9 +56,15 @@ label { name "l07_got_all"; addr $AF5E; comment "got all the bombs"; };
label { name "bonus_250_pts"; addr $AF96; comment "per letter"; };
label { name "epyx_jumpman"; addr $AEAF; comment "letters for level07, spellbound (not ASCII or screencodes though)"; };
+label { name "jump_frame"; addr $06EB; comment "0 if not jumping, or frames since start of jump (range 1 to 21)"; };
range { name "code_99f7"; start $99F7; end $9A1B; type code; };
range { name "data_8406"; start $8406; end $840c; type bytetable; };
-range { name "data_9a1c"; start $9a1c; end $9A5B; type bytetable; };
+range { name "jump_delta_x_table"; start $9a1c; end $9A5B; type bytetable; comment "used by continue_jump, the amount of X movement per frame of jumping (for either direction, left or right)"; };
+label { name "jump_delta_y_table"; addr $9A32; comment "used by continue_jump, amount of Y movement per frame ($FE is -2, or 2 scanlines up, $02 is 2 scanlines down)"; };
+label { name "zero_filler_9a48"; addr $9a48; };
+label { name "jump_delta_x_table_minus_one"; addr $9A1B; comment "1-indexed..."; };
+label { name "jump_delta_y_table_minus_one"; addr $9A31; comment "1-indexed..."; };
+label { name "is_jump_done"; addr $99AE; comment "$15 aka 21 frames?"; };
range { name "gameboard_dlist_data"; start $9B62; end $9b71; type bytetable; comment "this isn't used as-is for a display list, see setup_gameboard_dlist"; };
RANGE { NAME "cartstart_left"; START $BFFA; END $BFFB ; TYPE AddrTable; comment "main entry point, note cartstart_left and cartstart_right point to the same address"; };
RANGE { NAME "cartstart_right"; START $9FFA; END $9FFB ; TYPE AddrTable; comment "main entry point, note cartstart_left and cartstart_right point to the same address"; };
@@ -101,7 +107,10 @@ label { name "save_collisions"; addr $8503; comment "save contents of GTIA colli
label { name "check_collisions_1"; addr $8F73; size 1; comment "did any missile hit a player, or did players 2 or 3 hit a player..."; };
label { name "check_collisions_2"; addr $981A; size 1; comment "did player 0 or 1 hit the playfield..."; };
-label { name "check_collisions_3"; addr $9832; size 1; comment "did player 0 or 1 hit the playfield..."; };
+label { name "check_collisions_3"; addr $9832; size 1; comment "movement/jumping only allowed if player's touching the playfield"; };
+label { name "mid_jump"; addr $99A8; size 1; comment "check & see if we're done jumping"; };
+label { name "continue_jump"; addr $99BD; size 1; comment "we're in mid-jump and didn't hit anything, keep going"; };
+label { name "end_jump"; addr $99B2; size 1; comment "we hit a girder/rope/ladder in mid-jump, or else the jump finished without hitting anything(?). this does not (?) include the bottom of the level"; };
label { name "collision_save"; addr $06B0; size 16; comment "save_collisions copies GTIA collision regs $D000-$d00f here"; };
label { name "init_next_level"; addr $9BE8; size 1; comment "..."; };
label { name "show_get_ready_prompt"; addr $9624; size 1; comment "only in multiplayer games"; };
@@ -194,7 +203,7 @@ label { name "sfx_slot_duration"; addr $0646; size 1; };
label { name "sfx_play_note"; addr $8206; size 1; comment "y==0, a>=4 on entry"; };
label { name "sfx_play_rest"; addr $819E; size 1; comment "y==0 on entry"; };
label { name "sfx_change_tempo"; addr $81AE; size 1; comment "y==0 on entry"; };
-label { name "sfx_jump"; addr $81C8; size 1; comment "I *think* this jumps to a different sfx address..."; };
+label { name "sfx_jump_opcode"; addr $81C8; size 1; comment "I *think* this jumps to a different sfx address..."; };
label { name "sfx_slot_freq"; addr $0647; size 1; };
range { name "sfx00"; start $BDF2; end $BE24; type bytetable; };
@@ -210,7 +219,7 @@ range { name "sfx08"; start $BF4A; end $BF5F; type bytetable; comment "end level
range { name "sfx09"; start $BF60; end $BF83; type bytetable; comment "end level tune #3, melody"; };
range { name "sfx10"; start $BF84; end $BFA5; type bytetable; comment "end level tune #4, melody"; };
range { name "sfx11"; start $BFA6; end $BFBD; type bytetable; comment "end level tune #4, bass"; };
-range { name "sfx12"; start $BFBE; end $BFCF; type bytetable; comment "jumping sound"; };
+range { name "sfx_jump"; start $BFBE; end $BFCF; type bytetable; comment "jumping sound"; };
range { name "sfx13"; start $BFD0; end $BFE9; type bytetable; comment "funeral march melody"; };
range { name "sfx14"; start $BFEA; end $BFF9; type bytetable; comment "funeral march bass"; };
range { name "sfx15"; start $BABC; end $BAE9; type bytetable; comment "level intro music, melody"; };
@@ -243,8 +252,12 @@ range { name "total_score_msg"; start $bdd2; end $bdf1; type bytetable; comment
range { name "zero_filler_8588"; start $B588; end $B696; type bytetable; };
range { name "wind_table_1"; start $B76B; end $b7bf; type bytetable; comment "used in level11"; };
label { name "wind_table_2"; addr $b771; };
+label { name "electrocution_done"; addr $A4DD; comment "turn off electrocution effect (?)"; };
+label { name "electrocute"; addr $A509; comment "electrocution effect"; };
+label { name "level02_collisions"; addr $A53D; comment "skip a couple of the collision regs, so we don't register a collision when Jumpman is being electrocuted"; };
+label { name "start_jump"; addr $99A0; comment "start jumping, play sfx_jump"; };
range { name "level00_map"; start $A300; end $a497; type bytetable; comment "level map data starts here"; };
-range { name "sfx_a52d"; start $A52D; end $A53C; type bytetable; comment "dunno, referenced by routine at $A50F"; };
+range { name "sfx_electrocution"; start $A52D; end $A53C; type bytetable; };
range { name "data_table_a542"; start $A542; end $A68B; type bytetable; comment "dunno, referenced by routine at $A498"; };
range { name "dumbwaiter_player"; start $a782; end $A826; type bytetable; comment "the dumbwaiters from level02. stored upside-down."; };
label { name "dw_platform_player"; addr $A685; comment "horizontally moving platforms from level02"; };
@@ -302,6 +315,7 @@ label { name "cue_music_jv"; addr $8018; comment "setup to play whichever music
label { name "cue_sfx_jv"; addr $8006; comment "setup to play sfx"; };
label { name "cue_sfx"; addr $8255; comment "setup to play sfx at *sfx_ptr, tempo (?) A"; };
label { name "cue_sfx_lowprior"; addr $8240; comment "if cue_sfx not already in progress, setup to play sfx at (sfx_slot_tempo, sfx_lock) tempo (?) A"; };
+label { name "cue_sfx_lowprior_jv"; addr $8003; comment "if cue_sfx not already in progress, setup to play sfx at (sfx_slot_tempo, sfx_lock) tempo (?) A"; };
label { name "sfx_ptr"; addr $063C; size 2; };
label { name "cue_ok"; addr $8244; size 1; };
label { name "cue_done"; addr $8278; size 1; };
@@ -387,7 +401,7 @@ label { name "check_trigger_state"; addr $984D; size 1; comment "did user press
label { name "trig_jmp"; addr $9852; size 1; comment "yes, jump to handler"; };
label { name "check_up_down"; addr $9855; size 1; comment "did user move joystick up/down?"; };
label { name "check_up_down_2"; addr $993B; size 1; comment "did user move joystick up/down?"; };
-label { name "trigger_handler"; addr $9985; size 1; comment "handle trigger presses (maybe start a jump)"; };
+label { name "trigger_handler"; addr $9985; size 1; comment "handle trigger presses, maybe start a jump, if player is moving up, left, or right"; };
label { name "cud_jmp"; addr $9860; size 1; comment "no, jump over handler"; };
label { name "player_delta_x"; addr $0630; size 1; comment "amount to move jumpman this frame (1 or $FF aka -1)"; };
label { name "player_delta_y"; addr $0631; size 1; comment "amount to move jumpman this frame (1 or $FF aka -1)"; };
@@ -533,7 +547,7 @@ label { name "work_level_map2"; addr $079a; size 2; comment "map data"; };
label { name "work_level_unkn_table1"; addr $079c; size 2; comment "unknown, pointer to a ROM table or $0000"; };
label { name "work_level_offs_30"; addr $079e; size 2; comment "always $0000"; };
label { name "work_level_sub_bomb"; addr $07a0; size 2; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-label { name "work_level_sub5"; addr $07a2; size 2; comment "$06E6 for some levels, or else a ROM subroutine"; };
+label { name "work_level_sub_start"; addr $07a2; size 2; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
label { name "work_level_sub6"; addr $07a4; size 2; comment "always $9740 aka game_main_loop"; };
label { name "work_level_sub_eol"; addr $07a6; size 2; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
label { name "work_level_offs_40"; addr $07a8; size 6; comment "all zeroes"; };
@@ -562,7 +576,7 @@ label { name "cur_level_map2"; addr $07da; size 2; comment "map data"; };
label { name "cur_level_unkn_table1"; addr $07dc; size 2; comment "unknown, pointer to a ROM table or $0000"; };
label { name "cur_level_offs_30"; addr $07de; size 2; comment "always $0000"; };
label { name "cur_level_sub_bomb"; addr $07e0; size 2; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-label { name "cur_level_sub5"; addr $07e2; size 2; comment "$06E6 for some levels, or else a ROM subroutine"; };
+label { name "cur_level_sub_start"; addr $07e2; size 2; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
label { name "cur_level_sub6"; addr $07e4; size 2; comment "always $9740 aka game_main_loop"; };
label { name "cur_level_sub_eol"; addr $07e6; size 2; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
label { name "cur_level_offs_40"; addr $07e8; size 6; comment "all zeroes"; };
@@ -591,7 +605,7 @@ range { name "level00_map2"; start $a01a; end $a01b; type addrtable; comment "ma
range { name "level00_unkn_table1"; start $a01c; end $a01d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level00_offs_30"; start $a01e; end $a01f; type bytetable; comment "always $0000"; };
range { name "level00_sub_bomb"; start $a020; end $a021; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level00_sub5"; start $a022; end $a023; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level00_sub_start"; start $a022; end $a023; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level00_sub6"; start $a024; end $a025; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level00_sub_eol"; start $a026; end $a027; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level00_offs_40"; start $a028; end $a02d; type bytetable; comment "all zeroes"; };
@@ -620,7 +634,7 @@ range { name "level01_map2"; start $a05a; end $a05b; type addrtable; comment "ma
range { name "level01_unkn_table1"; start $a05c; end $a05d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level01_offs_30"; start $a05e; end $a05f; type bytetable; comment "always $0000"; };
range { name "level01_sub_bomb"; start $a060; end $a061; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level01_sub5"; start $a062; end $a063; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level01_sub_start"; start $a062; end $a063; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level01_sub6"; start $a064; end $a065; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level01_sub_eol"; start $a066; end $a067; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level01_offs_40"; start $a068; end $a06d; type bytetable; comment "all zeroes"; };
@@ -649,7 +663,7 @@ range { name "level02_map2"; start $a09a; end $a09b; type addrtable; comment "ma
range { name "level02_unkn_table1"; start $a09c; end $a09d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level02_offs_30"; start $a09e; end $a09f; type bytetable; comment "always $0000"; };
range { name "level02_sub_bomb"; start $a0a0; end $a0a1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level02_sub5"; start $a0a2; end $a0a3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level02_sub_start"; start $a0a2; end $a0a3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level02_sub6"; start $a0a4; end $a0a5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level02_sub_eol"; start $a0a6; end $a0a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level02_offs_40"; start $a0a8; end $a0ad; type bytetable; comment "all zeroes"; };
@@ -678,7 +692,7 @@ range { name "level03_map2"; start $a0da; end $a0db; type addrtable; comment "ma
range { name "level03_unkn_table1"; start $a0dc; end $a0dd; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level03_offs_30"; start $a0de; end $a0df; type bytetable; comment "always $0000"; };
range { name "level03_sub_bomb"; start $a0e0; end $a0e1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level03_sub5"; start $a0e2; end $a0e3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level03_sub_start"; start $a0e2; end $a0e3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level03_sub6"; start $a0e4; end $a0e5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level03_sub_eol"; start $a0e6; end $a0e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level03_offs_40"; start $a0e8; end $a0ed; type bytetable; comment "all zeroes"; };
@@ -707,7 +721,7 @@ range { name "level04_map2"; start $a11a; end $a11b; type addrtable; comment "ma
range { name "level04_unkn_table1"; start $a11c; end $a11d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level04_offs_30"; start $a11e; end $a11f; type bytetable; comment "always $0000"; };
range { name "level04_sub_bomb"; start $a120; end $a121; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level04_sub5"; start $a122; end $a123; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level04_sub_start"; start $a122; end $a123; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level04_sub6"; start $a124; end $a125; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level04_sub_eol"; start $a126; end $a127; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level04_offs_40"; start $a128; end $a12d; type bytetable; comment "all zeroes"; };
@@ -736,7 +750,7 @@ range { name "level05_map2"; start $a15a; end $a15b; type addrtable; comment "ma
range { name "level05_unkn_table1"; start $a15c; end $a15d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level05_offs_30"; start $a15e; end $a15f; type bytetable; comment "always $0000"; };
range { name "level05_sub_bomb"; start $a160; end $a161; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level05_sub5"; start $a162; end $a163; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level05_sub_start"; start $a162; end $a163; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level05_sub6"; start $a164; end $a165; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level05_sub_eol"; start $a166; end $a167; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level05_offs_40"; start $a168; end $a16d; type bytetable; comment "all zeroes"; };
@@ -765,7 +779,7 @@ range { name "level06_map2"; start $a19a; end $a19b; type addrtable; comment "ma
range { name "level06_unkn_table1"; start $a19c; end $a19d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level06_offs_30"; start $a19e; end $a19f; type bytetable; comment "always $0000"; };
range { name "level06_sub_bomb"; start $a1a0; end $a1a1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level06_sub5"; start $a1a2; end $a1a3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level06_sub_start"; start $a1a2; end $a1a3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level06_sub6"; start $a1a4; end $a1a5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level06_sub_eol"; start $a1a6; end $a1a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level06_offs_40"; start $a1a8; end $a1ad; type bytetable; comment "all zeroes"; };
@@ -794,7 +808,7 @@ range { name "level07_map2"; start $a1da; end $a1db; type addrtable; comment "ma
range { name "level07_unkn_table1"; start $a1dc; end $a1dd; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level07_offs_30"; start $a1de; end $a1df; type bytetable; comment "always $0000"; };
range { name "level07_sub_bomb"; start $a1e0; end $a1e1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level07_sub5"; start $a1e2; end $a1e3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level07_sub_start"; start $a1e2; end $a1e3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level07_sub6"; start $a1e4; end $a1e5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level07_sub_eol"; start $a1e6; end $a1e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level07_offs_40"; start $a1e8; end $a1ed; type bytetable; comment "all zeroes"; };
@@ -823,7 +837,7 @@ range { name "level08_map2"; start $a21a; end $a21b; type addrtable; comment "ma
range { name "level08_unkn_table1"; start $a21c; end $a21d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level08_offs_30"; start $a21e; end $a21f; type bytetable; comment "always $0000"; };
range { name "level08_sub_bomb"; start $a220; end $a221; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level08_sub5"; start $a222; end $a223; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level08_sub_start"; start $a222; end $a223; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level08_sub6"; start $a224; end $a225; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level08_sub_eol"; start $a226; end $a227; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level08_offs_40"; start $a228; end $a22d; type bytetable; comment "all zeroes"; };
@@ -852,7 +866,7 @@ range { name "level09_map2"; start $a25a; end $a25b; type addrtable; comment "ma
range { name "level09_unkn_table1"; start $a25c; end $a25d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level09_offs_30"; start $a25e; end $a25f; type bytetable; comment "always $0000"; };
range { name "level09_sub_bomb"; start $a260; end $a261; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level09_sub5"; start $a262; end $a263; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level09_sub_start"; start $a262; end $a263; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level09_sub6"; start $a264; end $a265; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level09_sub_eol"; start $a266; end $a267; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level09_offs_40"; start $a268; end $a26d; type bytetable; comment "all zeroes"; };
@@ -881,7 +895,7 @@ range { name "level10_map2"; start $a29a; end $a29b; type addrtable; comment "ma
range { name "level10_unkn_table1"; start $a29c; end $a29d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level10_offs_30"; start $a29e; end $a29f; type bytetable; comment "always $0000"; };
range { name "level10_sub_bomb"; start $a2a0; end $a2a1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level10_sub5"; start $a2a2; end $a2a3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level10_sub_start"; start $a2a2; end $a2a3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level10_sub6"; start $a2a4; end $a2a5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level10_sub_eol"; start $a2a6; end $a2a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level10_offs_40"; start $a2a8; end $a2ad; type bytetable; comment "all zeroes"; };
@@ -910,7 +924,7 @@ range { name "level11_map2"; start $a2da; end $a2db; type addrtable; comment "ma
range { name "level11_unkn_table1"; start $a2dc; end $a2dd; type addrtable; comment "unknown, pointer to a ROM table or $0000"; };
range { name "level11_offs_30"; start $a2de; end $a2df; type bytetable; comment "always $0000"; };
range { name "level11_sub_bomb"; start $a2e0; end $a2e1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; };
-range { name "level11_sub5"; start $a2e2; end $a2e3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; };
+range { name "level11_sub_start"; start $a2e2; end $a2e3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; };
range { name "level11_sub6"; start $a2e4; end $a2e5; type addrtable; comment "always $9740 aka game_main_loop"; };
range { name "level11_sub_eol"; start $a2e6; end $a2e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; };
range { name "level11_offs_40"; start $a2e8; end $a2ed; type bytetable; comment "all zeroes"; };