aboutsummaryrefslogtreecommitdiff
path: root/main.info
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-09-02 00:00:39 -0400
committerB. Watson <yalhcru@gmail.com>2016-09-02 00:00:39 -0400
commit2501dc4ecbfc45170a84503a90eb15f5770e6918 (patch)
tree3b9ebc8179ab484f8293a989609f0561b9b92384 /main.info
parente9ec302bb089104385c020356dd47b64d6bd09a7 (diff)
downloadjumpmanjr-2501dc4ecbfc45170a84503a90eb15f5770e6918.tar.gz
bombs and level maps
Diffstat (limited to 'main.info')
-rw-r--r--main.info28
1 files changed, 23 insertions, 5 deletions
diff --git a/main.info b/main.info
index 9029520..1537639 100644
--- a/main.info
+++ b/main.info
@@ -115,8 +115,10 @@ 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"; };
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 "bomb_pickup"; addr $87A8; size 1; comment "Jumpman just touched a bomb, award points, play sfx_bomb_pickup, make the bomb disappear, etc."; };
+label { name "coarse_grid"; addr $87C4; size 1; comment "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"; };
label { name "erase_bomb"; addr $8879; size 1; comment "make the bomb disappear by drawing sh_blank in its location"; };
+label { name "wait_bomb"; addr $888A; size 1; comment "wait for bomb to really disappear"; };
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?)"; };
@@ -125,8 +127,8 @@ 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 "store_bomb_coords"; addr $87F2; size 1; comment "store actual bomb coordinates (not the coarse ones) for bomb subs to use"; };
+label { name "change_map"; addr $881B; size 1; comment "some bombs redraw 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; };
@@ -300,7 +302,21 @@ label { name "electrocution_done"; addr $A4DD; comment "turn off electrocution e
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 "l00_map"; start $A300; end $a365; type bytetable; comment "level map data starts here"; };
+
+range { name "l00_map_bombs"; start $A366; end $A38A; type bytetable; comment "gfx_draw instructions for bombs, used by bomb_pickup to get bomb coords. $ff terminated"; };
+range { name "l00_bombs"; start $A38B; end $a3a2; type bytetable; comment "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"; };
+range { name "l00_bombs_term"; start $a3a3; end $a3a3; type bytetable; comment "terminator for l00_bombs"; };
+range { name "l00_map_changes"; start $A3A4; end $a3ad; type addrtable; comment "0000 = no change"; };
+range { name "l00_map_change_0"; start $A3AE; end $a3d5; type bytetable; };
+label { name "l00_map_change_1"; addr $a3b8; };
+label { name "l00_map_change_2"; addr $a3c2; };
+label { name "l00_map_change_3"; addr $a3cc; };
+range { name "zero_filler_a3d6"; start $a3d6; end $a3df; type bytetable; comment "probably just filler"; };
+
+range { name "l01_map"; start $A3e0; end $a497; type bytetable; comment "level map data starts here"; };
+
range { name "sfx_electrocution"; start $A52D; end $A53C; type bytetable; };
range { name "data_a542"; start $A542; end $A68B; type bytetable; comment "dunno, referenced by electrocution_bomb_pickup"; };
range { name "dumbwaiter_player"; start $a782; end $A826; type bytetable; comment "the dumbwaiters from level02. stored upside-down."; };
@@ -524,7 +540,9 @@ label { name "HPOSP0_minus_two"; addr $CFFE; size 1; };
label { name "position_pm_vert"; addr $8322; size 1; };
label { name "clear_pm"; addr $8342; size 1; comment "write zeroes to unused portion of this player/missile"; };
label { name "position_done"; addr $82E8; size 1; };
-label { name "clear_pm_mem"; addr $872A; size 1; comment "clear P/M mem"; };
+label { name "clear_pm_mem"; addr $88A8; size 1; comment "clear P/M memory, called from enable_joystick"; };
+label { name "clr_loop"; addr $88AB; size 1; };
+label { name "prepare_level"; addr $872A; size 1; comment "misc stuff, called from enable_joystick"; };
label { name "clear_screen_mem"; addr $8714; size 1; comment "clear the gameboard screen memory (called before drawing a level, natch)"; };
label { name "clear_screen_mem_jv"; addr $801E; size 1; comment "clear the gameboard screen memory (called before drawing a level, natch)"; };
label { name "csm_loop"; addr $871F; size 1; };