aboutsummaryrefslogtreecommitdiff
path: root/jumpmanjr.info
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-08-31 04:50:44 -0400
committerB. Watson <yalhcru@gmail.com>2016-08-31 04:50:44 -0400
commit8fefba0a2262d725dad7c25edc023c2590029126 (patch)
treeb73e9a3205bd8c55d0a0ffcd17ebb86e5fa1797d /jumpmanjr.info
parent01ecb0758b7c0c165bc6e5d61cf613c420bfe383 (diff)
downloadjumpmanjr-8fefba0a2262d725dad7c25edc023c2590029126.tar.gz
bomb_pickup stuff
Diffstat (limited to 'jumpmanjr.info')
-rw-r--r--jumpmanjr.info83
1 files changed, 55 insertions, 28 deletions
diff --git a/jumpmanjr.info b/jumpmanjr.info
index c1b0d38..f978884 100644
--- a/jumpmanjr.info
+++ b/jumpmanjr.info
@@ -118,6 +118,19 @@ label { name "show_get_ready_prompt"; addr $9624; size 1; comment "only in multi
label { name "check_bomb_coll"; addr $87A0; size 1; comment "check whether Jumpman just touched a bomb (RTS if not)"; };
label { name "check_bomb_coll_jv"; addr $8033; size 1; comment "check whether Jumpman just touched a bomb (RTS if not)"; };
label { name "bomb_pickup"; addr $87A8; size 1; comment "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"; };
+label { name "erase_bomb"; addr $8879; size 1; comment "make the bomb disappear by drawing sh_blank in its location"; };
+label { name "bomb_add_points"; addr $8865; size 1; comment "add points to score for picking up bomb (theoretically different on every level, but really $64 aka 100 for all of them)"; };
+label { name "call_bomb_sub"; addr $8856; size 1; comment "call bomb pickup subroutine for this level (which might just do an RTS if there's no special action)"; };
+label { name "call_bomb_indirect_sub"; addr $883E; size 1; comment "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?)"; };
+label { name "search_bomblist"; addr $87D0; size 1; comment "set Y to the index of the current bomb (or rts if we can't find it)"; };
+label { name "bl_ok"; addr $87D7; size 1; };
+label { name "bomb_found"; addr $87E0; size 1; };
+label { name "bombloc"; addr $B6; size 1; comment "bomb_pickup: position of the bomb Jumpman just touched, on 8x8 coarse grid"; };
+label { name "mul_y"; addr $87EA; size 1; comment "multiply Y by 1.5 (only works because Y will always be even at this point)"; };
+label { name "unkn1"; addr $87F2; size 1; comment "find out: why are we storing this at 06DC?"; };
+label { name "change_map"; addr $881B; size 1; comment "this has to do with redrawing parts of the level (e.g. disappearing platforms on level00)"; };
+label { name "check_ind_sub"; addr $8831; size 1; comment "see if this bomb calls an indirect sub (none of them do in this game, this is useless code)"; };
+label { name "blistptr"; addr $B4; size 2; comment "bomb_pickup: points to current level's bomblist"; };
range { name "gr7_or_masks"; start $8143; end $8152; type bytetable; };
range { name "gr7_and_masks"; start $8153; end $8156; type bytetable; };
range { name "sfx_bomb_pickup"; start $8892; end $88A7; type bytetable; comment "played when a bomb is picked up"; };
@@ -587,14 +600,15 @@ label { name "work_level_num_bombs"; addr $078a; size 1; comment "number of bomb
label { name "work_level_bullet_max"; addr $078b; size 1; comment "0 = no bullets, range 0-4."; };
label { name "work_level_y_start"; addr $078c; size 1; comment "jumpman starting Y position"; };
label { name "work_level_x_start"; addr $078d; size 1; comment "jumpman starting X position"; };
-label { name "work_level_offs_14"; addr $078e; size 2; comment "points to $0600"; };
+label { name "work_level_fudge_x"; addr $078e; size 1; comment "fudge factor for bomb locations, always $00"; };
+label { name "work_level_fudge_y"; addr $078f; size 1; comment "fudge factor for bomb locations, always $06"; };
label { name "work_level_points_per_bomb"; addr $0790; size 1; comment "points awarded per bomb pickup (always $64 aka 100)"; };
label { name "work_level_time_bonus"; addr $0791; size 2; comment "amount of time bonus at start of level"; };
label { name "work_level_offs_19"; addr $0793; size 1; comment "always $00"; };
label { name "work_level_unkn_table0"; addr $0794; size 2; comment "pointer to ROM table or $06xx"; };
label { name "work_level_map0"; addr $0796; size 2; comment "map data"; };
label { name "work_level_map1"; addr $0798; size 2; comment "map data"; };
-label { name "work_level_map2"; addr $079a; size 2; comment "map data"; };
+label { name "work_level_bomblist"; addr $079a; size 2; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
label { name "work_level_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"; };
@@ -616,14 +630,15 @@ label { name "cur_level_num_bombs"; addr $07ca; size 1; comment "number of bombs
label { name "cur_level_bullet_max"; addr $07cb; size 1; comment "0 = no bullets, range 0-4."; };
label { name "cur_level_y_start"; addr $07cc; size 1; comment "jumpman starting Y position"; };
label { name "cur_level_x_start"; addr $07cd; size 1; comment "jumpman starting X position"; };
-label { name "cur_level_offs_14"; addr $07ce; size 2; comment "points to $0600"; };
+label { name "cur_level_fudge_x"; addr $07ce; size 1; comment "fudge factor for bomb locations, always $00"; };
+label { name "cur_level_fudge_y"; addr $07cf; size 1; comment "fudge factor for bomb locations, always $06"; };
label { name "cur_level_points_per_bomb"; addr $07d0; size 1; comment "points awarded per bomb pickup (always $64 aka 100)"; };
label { name "cur_level_time_bonus"; addr $07d1; size 2; comment "amount of time bonus at start of level"; };
label { name "cur_level_offs_19"; addr $07d3; size 1; comment "always $00"; };
label { name "cur_level_unkn_table0"; addr $07d4; size 2; comment "pointer to ROM table or $06xx"; };
label { name "cur_level_map0"; addr $07d6; size 2; comment "map data"; };
label { name "cur_level_map1"; addr $07d8; size 2; comment "map data"; };
-label { name "cur_level_map2"; addr $07da; size 2; comment "map data"; };
+label { name "cur_level_bomblist"; addr $07da; size 2; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
label { name "cur_level_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"; };
@@ -645,14 +660,15 @@ range { name "level00_num_bombs"; start $a00a; end $a00a; type bytetable; commen
range { name "level00_bullet_max"; start $a00b; end $a00b; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level00_y_start"; start $a00c; end $a00c; type bytetable; comment "jumpman starting Y position"; };
range { name "level00_x_start"; start $a00d; end $a00d; type bytetable; comment "jumpman starting X position"; };
-range { name "level00_offs_14"; start $a00e; end $a00f; type bytetable; comment "points to $0600"; };
+range { name "level00_fudge_x"; start $a00e; end $a00e; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level00_fudge_y"; start $a00f; end $a00f; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level00_points_per_bomb"; start $a010; end $a010; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level00_time_bonus"; start $a011; end $a012; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level00_offs_19"; start $a013; end $a013; type bytetable; comment "always $00"; };
range { name "level00_unkn_table0"; start $a014; end $a015; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level00_map0"; start $a016; end $a017; type addrtable; comment "map data"; };
range { name "level00_map1"; start $a018; end $a019; type addrtable; comment "map data"; };
-range { name "level00_map2"; start $a01a; end $a01b; type addrtable; comment "map data"; };
+range { name "level00_bomblist"; start $a01a; end $a01b; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -674,14 +690,15 @@ range { name "level01_num_bombs"; start $a04a; end $a04a; type bytetable; commen
range { name "level01_bullet_max"; start $a04b; end $a04b; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level01_y_start"; start $a04c; end $a04c; type bytetable; comment "jumpman starting Y position"; };
range { name "level01_x_start"; start $a04d; end $a04d; type bytetable; comment "jumpman starting X position"; };
-range { name "level01_offs_14"; start $a04e; end $a04f; type bytetable; comment "points to $0600"; };
+range { name "level01_fudge_x"; start $a04e; end $a04e; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level01_fudge_y"; start $a04f; end $a04f; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level01_points_per_bomb"; start $a050; end $a050; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level01_time_bonus"; start $a051; end $a052; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level01_offs_19"; start $a053; end $a053; type bytetable; comment "always $00"; };
range { name "level01_unkn_table0"; start $a054; end $a055; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level01_map0"; start $a056; end $a057; type addrtable; comment "map data"; };
range { name "level01_map1"; start $a058; end $a059; type addrtable; comment "map data"; };
-range { name "level01_map2"; start $a05a; end $a05b; type addrtable; comment "map data"; };
+range { name "level01_bomblist"; start $a05a; end $a05b; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -703,14 +720,15 @@ range { name "level02_num_bombs"; start $a08a; end $a08a; type bytetable; commen
range { name "level02_bullet_max"; start $a08b; end $a08b; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level02_y_start"; start $a08c; end $a08c; type bytetable; comment "jumpman starting Y position"; };
range { name "level02_x_start"; start $a08d; end $a08d; type bytetable; comment "jumpman starting X position"; };
-range { name "level02_offs_14"; start $a08e; end $a08f; type bytetable; comment "points to $0600"; };
+range { name "level02_fudge_x"; start $a08e; end $a08e; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level02_fudge_y"; start $a08f; end $a08f; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level02_points_per_bomb"; start $a090; end $a090; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level02_time_bonus"; start $a091; end $a092; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level02_offs_19"; start $a093; end $a093; type bytetable; comment "always $00"; };
range { name "level02_unkn_table0"; start $a094; end $a095; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level02_map0"; start $a096; end $a097; type addrtable; comment "map data"; };
range { name "level02_map1"; start $a098; end $a099; type addrtable; comment "map data"; };
-range { name "level02_map2"; start $a09a; end $a09b; type addrtable; comment "map data"; };
+range { name "level02_bomblist"; start $a09a; end $a09b; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -732,14 +750,15 @@ range { name "level03_num_bombs"; start $a0ca; end $a0ca; type bytetable; commen
range { name "level03_bullet_max"; start $a0cb; end $a0cb; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level03_y_start"; start $a0cc; end $a0cc; type bytetable; comment "jumpman starting Y position"; };
range { name "level03_x_start"; start $a0cd; end $a0cd; type bytetable; comment "jumpman starting X position"; };
-range { name "level03_offs_14"; start $a0ce; end $a0cf; type bytetable; comment "points to $0600"; };
+range { name "level03_fudge_x"; start $a0ce; end $a0ce; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level03_fudge_y"; start $a0cf; end $a0cf; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level03_points_per_bomb"; start $a0d0; end $a0d0; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level03_time_bonus"; start $a0d1; end $a0d2; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level03_offs_19"; start $a0d3; end $a0d3; type bytetable; comment "always $00"; };
range { name "level03_unkn_table0"; start $a0d4; end $a0d5; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level03_map0"; start $a0d6; end $a0d7; type addrtable; comment "map data"; };
range { name "level03_map1"; start $a0d8; end $a0d9; type addrtable; comment "map data"; };
-range { name "level03_map2"; start $a0da; end $a0db; type addrtable; comment "map data"; };
+range { name "level03_bomblist"; start $a0da; end $a0db; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -761,14 +780,15 @@ range { name "level04_num_bombs"; start $a10a; end $a10a; type bytetable; commen
range { name "level04_bullet_max"; start $a10b; end $a10b; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level04_y_start"; start $a10c; end $a10c; type bytetable; comment "jumpman starting Y position"; };
range { name "level04_x_start"; start $a10d; end $a10d; type bytetable; comment "jumpman starting X position"; };
-range { name "level04_offs_14"; start $a10e; end $a10f; type bytetable; comment "points to $0600"; };
+range { name "level04_fudge_x"; start $a10e; end $a10e; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level04_fudge_y"; start $a10f; end $a10f; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level04_points_per_bomb"; start $a110; end $a110; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level04_time_bonus"; start $a111; end $a112; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level04_offs_19"; start $a113; end $a113; type bytetable; comment "always $00"; };
range { name "level04_unkn_table0"; start $a114; end $a115; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level04_map0"; start $a116; end $a117; type addrtable; comment "map data"; };
range { name "level04_map1"; start $a118; end $a119; type addrtable; comment "map data"; };
-range { name "level04_map2"; start $a11a; end $a11b; type addrtable; comment "map data"; };
+range { name "level04_bomblist"; start $a11a; end $a11b; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -790,14 +810,15 @@ range { name "level05_num_bombs"; start $a14a; end $a14a; type bytetable; commen
range { name "level05_bullet_max"; start $a14b; end $a14b; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level05_y_start"; start $a14c; end $a14c; type bytetable; comment "jumpman starting Y position"; };
range { name "level05_x_start"; start $a14d; end $a14d; type bytetable; comment "jumpman starting X position"; };
-range { name "level05_offs_14"; start $a14e; end $a14f; type bytetable; comment "points to $0600"; };
+range { name "level05_fudge_x"; start $a14e; end $a14e; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level05_fudge_y"; start $a14f; end $a14f; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level05_points_per_bomb"; start $a150; end $a150; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level05_time_bonus"; start $a151; end $a152; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level05_offs_19"; start $a153; end $a153; type bytetable; comment "always $00"; };
range { name "level05_unkn_table0"; start $a154; end $a155; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level05_map0"; start $a156; end $a157; type addrtable; comment "map data"; };
range { name "level05_map1"; start $a158; end $a159; type addrtable; comment "map data"; };
-range { name "level05_map2"; start $a15a; end $a15b; type addrtable; comment "map data"; };
+range { name "level05_bomblist"; start $a15a; end $a15b; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -819,14 +840,15 @@ range { name "level06_num_bombs"; start $a18a; end $a18a; type bytetable; commen
range { name "level06_bullet_max"; start $a18b; end $a18b; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level06_y_start"; start $a18c; end $a18c; type bytetable; comment "jumpman starting Y position"; };
range { name "level06_x_start"; start $a18d; end $a18d; type bytetable; comment "jumpman starting X position"; };
-range { name "level06_offs_14"; start $a18e; end $a18f; type bytetable; comment "points to $0600"; };
+range { name "level06_fudge_x"; start $a18e; end $a18e; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level06_fudge_y"; start $a18f; end $a18f; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level06_points_per_bomb"; start $a190; end $a190; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level06_time_bonus"; start $a191; end $a192; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level06_offs_19"; start $a193; end $a193; type bytetable; comment "always $00"; };
range { name "level06_unkn_table0"; start $a194; end $a195; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level06_map0"; start $a196; end $a197; type addrtable; comment "map data"; };
range { name "level06_map1"; start $a198; end $a199; type addrtable; comment "map data"; };
-range { name "level06_map2"; start $a19a; end $a19b; type addrtable; comment "map data"; };
+range { name "level06_bomblist"; start $a19a; end $a19b; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -848,14 +870,15 @@ range { name "level07_num_bombs"; start $a1ca; end $a1ca; type bytetable; commen
range { name "level07_bullet_max"; start $a1cb; end $a1cb; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level07_y_start"; start $a1cc; end $a1cc; type bytetable; comment "jumpman starting Y position"; };
range { name "level07_x_start"; start $a1cd; end $a1cd; type bytetable; comment "jumpman starting X position"; };
-range { name "level07_offs_14"; start $a1ce; end $a1cf; type bytetable; comment "points to $0600"; };
+range { name "level07_fudge_x"; start $a1ce; end $a1ce; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level07_fudge_y"; start $a1cf; end $a1cf; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level07_points_per_bomb"; start $a1d0; end $a1d0; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level07_time_bonus"; start $a1d1; end $a1d2; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level07_offs_19"; start $a1d3; end $a1d3; type bytetable; comment "always $00"; };
range { name "level07_unkn_table0"; start $a1d4; end $a1d5; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level07_map0"; start $a1d6; end $a1d7; type addrtable; comment "map data"; };
range { name "level07_map1"; start $a1d8; end $a1d9; type addrtable; comment "map data"; };
-range { name "level07_map2"; start $a1da; end $a1db; type addrtable; comment "map data"; };
+range { name "level07_bomblist"; start $a1da; end $a1db; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -877,14 +900,15 @@ range { name "level08_num_bombs"; start $a20a; end $a20a; type bytetable; commen
range { name "level08_bullet_max"; start $a20b; end $a20b; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level08_y_start"; start $a20c; end $a20c; type bytetable; comment "jumpman starting Y position"; };
range { name "level08_x_start"; start $a20d; end $a20d; type bytetable; comment "jumpman starting X position"; };
-range { name "level08_offs_14"; start $a20e; end $a20f; type bytetable; comment "points to $0600"; };
+range { name "level08_fudge_x"; start $a20e; end $a20e; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level08_fudge_y"; start $a20f; end $a20f; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level08_points_per_bomb"; start $a210; end $a210; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level08_time_bonus"; start $a211; end $a212; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level08_offs_19"; start $a213; end $a213; type bytetable; comment "always $00"; };
range { name "level08_unkn_table0"; start $a214; end $a215; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level08_map0"; start $a216; end $a217; type addrtable; comment "map data"; };
range { name "level08_map1"; start $a218; end $a219; type addrtable; comment "map data"; };
-range { name "level08_map2"; start $a21a; end $a21b; type addrtable; comment "map data"; };
+range { name "level08_bomblist"; start $a21a; end $a21b; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -906,14 +930,15 @@ range { name "level09_num_bombs"; start $a24a; end $a24a; type bytetable; commen
range { name "level09_bullet_max"; start $a24b; end $a24b; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level09_y_start"; start $a24c; end $a24c; type bytetable; comment "jumpman starting Y position"; };
range { name "level09_x_start"; start $a24d; end $a24d; type bytetable; comment "jumpman starting X position"; };
-range { name "level09_offs_14"; start $a24e; end $a24f; type bytetable; comment "points to $0600"; };
+range { name "level09_fudge_x"; start $a24e; end $a24e; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level09_fudge_y"; start $a24f; end $a24f; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level09_points_per_bomb"; start $a250; end $a250; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level09_time_bonus"; start $a251; end $a252; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level09_offs_19"; start $a253; end $a253; type bytetable; comment "always $00"; };
range { name "level09_unkn_table0"; start $a254; end $a255; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level09_map0"; start $a256; end $a257; type addrtable; comment "map data"; };
range { name "level09_map1"; start $a258; end $a259; type addrtable; comment "map data"; };
-range { name "level09_map2"; start $a25a; end $a25b; type addrtable; comment "map data"; };
+range { name "level09_bomblist"; start $a25a; end $a25b; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -935,14 +960,15 @@ range { name "level10_num_bombs"; start $a28a; end $a28a; type bytetable; commen
range { name "level10_bullet_max"; start $a28b; end $a28b; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level10_y_start"; start $a28c; end $a28c; type bytetable; comment "jumpman starting Y position"; };
range { name "level10_x_start"; start $a28d; end $a28d; type bytetable; comment "jumpman starting X position"; };
-range { name "level10_offs_14"; start $a28e; end $a28f; type bytetable; comment "points to $0600"; };
+range { name "level10_fudge_x"; start $a28e; end $a28e; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level10_fudge_y"; start $a28f; end $a28f; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level10_points_per_bomb"; start $a290; end $a290; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level10_time_bonus"; start $a291; end $a292; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level10_offs_19"; start $a293; end $a293; type bytetable; comment "always $00"; };
range { name "level10_unkn_table0"; start $a294; end $a295; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level10_map0"; start $a296; end $a297; type addrtable; comment "map data"; };
range { name "level10_map1"; start $a298; end $a299; type addrtable; comment "map data"; };
-range { name "level10_map2"; start $a29a; end $a29b; type addrtable; comment "map data"; };
+range { name "level10_bomblist"; start $a29a; end $a29b; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };
@@ -964,14 +990,15 @@ range { name "level11_num_bombs"; start $a2ca; end $a2ca; type bytetable; commen
range { name "level11_bullet_max"; start $a2cb; end $a2cb; type bytetable; comment "0 = no bullets, range 0-4."; };
range { name "level11_y_start"; start $a2cc; end $a2cc; type bytetable; comment "jumpman starting Y position"; };
range { name "level11_x_start"; start $a2cd; end $a2cd; type bytetable; comment "jumpman starting X position"; };
-range { name "level11_offs_14"; start $a2ce; end $a2cf; type bytetable; comment "points to $0600"; };
+range { name "level11_fudge_x"; start $a2ce; end $a2ce; type bytetable; comment "fudge factor for bomb locations, always $00"; };
+range { name "level11_fudge_y"; start $a2cf; end $a2cf; type bytetable; comment "fudge factor for bomb locations, always $06"; };
range { name "level11_points_per_bomb"; start $a2d0; end $a2d0; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; };
range { name "level11_time_bonus"; start $a2d1; end $a2d2; type wordtable; comment "amount of time bonus at start of level"; };
range { name "level11_offs_19"; start $a2d3; end $a2d3; type bytetable; comment "always $00"; };
range { name "level11_unkn_table0"; start $a2d4; end $a2d5; type addrtable; comment "pointer to ROM table or $06xx"; };
range { name "level11_map0"; start $a2d6; end $a2d7; type addrtable; comment "map data"; };
range { name "level11_map1"; start $a2d8; end $a2d9; type addrtable; comment "map data"; };
-range { name "level11_map2"; start $a2da; end $a2db; type addrtable; comment "map data"; };
+range { name "level11_bomblist"; start $a2da; end $a2db; type bytetable; comment "addr of list of bombs, indexed by player position on coarse 8x8 grid. terminated by $FF."; };
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"; };