aboutsummaryrefslogtreecommitdiff
path: root/jumpmanjr.info
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-09-03 05:14:49 -0400
committerB. Watson <yalhcru@gmail.com>2016-09-03 05:14:49 -0400
commit63a4565fbfd833f31f6f392225e51cb72bbc0297 (patch)
tree5b37b8116efb9f5a0953d9c4acf127041e1acd69 /jumpmanjr.info
parent410d305cff49647cb9749559c9a0bf3479c7d044 (diff)
downloadjumpmanjr-63a4565fbfd833f31f6f392225e51cb72bbc0297.tar.gz
name saved collision regs, decipher multiplayer a bit
Diffstat (limited to 'jumpmanjr.info')
-rw-r--r--jumpmanjr.info46
1 files changed, 43 insertions, 3 deletions
diff --git a/jumpmanjr.info b/jumpmanjr.info
index 9ab0765..4de38f2 100644
--- a/jumpmanjr.info
+++ b/jumpmanjr.info
@@ -109,13 +109,42 @@ label { name "anp_clear_loop"; addr $940D; comment "clear area where NUMBER OF P
label { name "anp_copy_loop"; addr $9418; comment "copy NUMBER OF PLAYERS to screen RAM"; };
label { name "save_collisions"; addr $8503; comment "save contents of GTIA collision regs (X ranges 1 to $10, dli_vec_shadow_hi should read collision_save-1)"; };
-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_pl_coll"; addr $8F73; size 1; comment "did any missile hit a player, or did players 2 or 3 hit a player..."; };
+label { name "check_pl_coll_no_p2"; addr $8F76; size 1; comment "skip player 2 to player collisions, called with A=0, used by level 11"; };
+label { name "check_pl_coll_no_pl"; addr $8F79; size 1; comment "skip player 2 and 3 to player collisions, called with A=0, used by levels 3 and 10"; };
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 "movement/jumping only allowed if player's touching the playfield"; };
+
+label { name "special_init"; addr $8B23; comment "various levels use this as their init, or use an init that calls this"; };
+label { name "special_init_jv"; addr $8036; comment "various levels use this as their init, or use an init that calls this"; };
+label { name "next_player"; addr $9AAA; comment "used in multiplayer games, also called in single player (?)"; };
+label { name "next_player_jv"; addr $8027; comment "used in multiplayer games, also called in single player (?)"; };
+label { name "mul_player_11"; addr $9A7C; comment "multiply current player number by 11, return result in Y"; };
+label { name "add_11"; addr $9A82; };
+label { name "return_y"; addr $9A8A; };
+label { name "save_struct_player"; addr $9A8C; };
+
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 "collision_save"; addr $06B0; size 16; comment "save_collisions copies GTIA collision regs $D000-$d00f here"; };
+label { name "sav_m0pf"; addr $06b0; comment "Missile 0 to playfield collision."; };
+label { name "sav_m1pf"; addr $06b1; comment "Missile 1 to playfield collision."; };
+label { name "sav_m2pf"; addr $06b2; comment "Missile 2 to playfield collision."; };
+label { name "sav_m3pf"; addr $06b3; comment "Missile 3 to playfield collision."; };
+label { name "sav_p0pf"; addr $06b4; comment "Player 0 to playfield collision."; };
+label { name "sav_p1pf"; addr $06b5; comment "Player 1 to playfield collision."; };
+label { name "sav_p2pf"; addr $06b6; comment "Player 2 to playfield collision."; };
+label { name "sav_p3pf"; addr $06b7; comment "Player 3 to playfield collision."; };
+label { name "sav_m0pl"; addr $06b8; comment "Missile 0 to player collision."; };
+label { name "sav_m1pl"; addr $06b9; comment "Missile 1 to player collision."; };
+label { name "sav_m2pl"; addr $06ba; comment "Missile 2 to player collision."; };
+label { name "sav_m3pl"; addr $06bb; comment "Missile 3 to player collision."; };
+label { name "sav_p0pl"; addr $06bc; comment "Player 0 to player collision."; };
+label { name "sav_p1pl"; addr $06bd; comment "Player 1 to player collision."; };
+label { name "sav_p2pl"; addr $06be; comment "Player 2 to player collision."; };
+label { name "sav_p3pl"; addr $06bf; comment "Player 3 to player collision."; };
+
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)"; };
@@ -260,7 +289,18 @@ label { name "ts_clear_sub0"; addr $9114; comment "set work_level_sub0 to $06e6
label { name "demo_mode"; addr $B96B; comment "display all the levels, happens if left idle at the title screen"; };
label { name "show_letter"; addr $9160; comment "$3000 is screen memory, at this point"; };
label { name "title_letters"; addr $928F; comment "JUMPMAN JUNIOR in screen codes with high bit set"; };
-range { name "data_9afc"; start $9AFC; end $9aff; type bytetable; };
+
+label { name "is_player_dead"; addr $9AD2; };
+label { name "check_lives"; addr $9AE5; comment "if player hasn't been eliminated, but is out of lives, eliminate him"; };
+label { name "player_alive"; addr $9AF5; comment "found the next player that isn't dead"; };
+label { name "load_struct_player"; addr $9A9B; };
+label { name "lsp_loop"; addr $9A9D; };
+label { name "ssp_loop"; addr $9A8E; };
+label { name "look_for_alive"; addr $9ACB; };
+label { name "next_player_num"; addr $9AB8; comment "wraparound to 1 if > total players"; };
+label { name "mul_11_table_minus_one"; addr $9afb; comment "1-indexed"; };
+range { name "mul_11_table"; start $9AFC; end $9aff; type bytetable; };
+
range { name "num_player_dli_service"; start $9578; end $959a; type code; comment "DLI service routine, changes COLPF2, address gets stored in $6ae/$6af by code at $944e"; };
range { name "dli_service_2"; start $bdc7; end $bdd1; type code; comment "DLI service routine, changes COLBK, address gets stored in $6ae/$6af by code at $bc3c"; };
label { name "numplayer_screen_data_minus_one"; addr $959a; comment "1-indexed loop copies from here+1"; };