From 63a4565fbfd833f31f6f392225e51cb72bbc0297 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Sat, 3 Sep 2016 05:14:49 -0400 Subject: name saved collision regs, decipher multiplayer a bit --- jumpmanjr.info | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) (limited to 'jumpmanjr.info') 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"; }; -- cgit v1.2.3