aboutsummaryrefslogtreecommitdiff
path: root/main.info
diff options
context:
space:
mode:
Diffstat (limited to 'main.info')
-rw-r--r--main.info44
1 files changed, 37 insertions, 7 deletions
diff --git a/main.info b/main.info
index c1f7a77..ba30b68 100644
--- a/main.info
+++ b/main.info
@@ -296,8 +296,8 @@ range { name "code_adb5"; start $ADB5; end $adc0; type code; };
range { name "code_adc1"; start $adc1; end $adc3; type code; };
label { name "replacement_block_char_minus_one"; addr $9133; comment "1-indexed..."; };
range { name "replacement_block_char"; start $9134; end $913b; type bytetable; };
-label { name "title_screen_color_snd"; addr $913c; comment "rotate colors and play the descending tone as the letters appear on the title screen"; };
-label { name "ts_setup_sub0"; addr $905f; comment "set work_level_sub0 to title_screen_color_snd"; };
+label { name "fade_in_letters"; addr $913c; comment "rotate colors and play the descending tone as each letter appears on the title screen. called once per frame, uses $9c to keep track of letter. caller stops this routine being called when $9c holds $0e (meaning the last letter is done)."; };
+label { name "ts_setup_sub0"; addr $905f; comment "set work_level_sub0 to fade_in_letters"; };
label { name "ts_clear_sub0"; addr $9114; comment "set work_level_sub0 to $06e6 (just an RTS)"; };
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"; };
@@ -340,11 +340,14 @@ range { name "zero_filler_88be"; start $88BE; end $88C7; type bytetable; };
range { name "zero_filler_9bff"; start $9bff; end $9bff; type bytetable; };
range { name "zero_filler_8e67"; start $8e67; end $8e68; type bytetable; };
range { name "zero_filler_8dcd"; start $8dcd; end $8dcd; type bytetable; };
-range { name "code_bccd"; start $bccd; end $bcd8; type code; comment "dunno, but referenced by code at $BC6A (part of well_done_screen)"; };
range { name "well_done_map"; start $bcd9; end $bd51; type bytetable; comment "level map used for the WELL DONE screen, when you beat level 12"; };
label { name "well_done_scores"; addr $8D52; comment "well_done_screen jumps here via work_level_sub1"; };
label { name "wd_wait_scores"; addr $BC92; comment "wait for score screen to finish (I think, anyway)"; };
label { name "wd_xxx"; addr $BCB6; comment "display current user's score, number_of_users should be score-1 here."; };
+label { name "wd_wait_dli"; addr $BC51; comment "wait until the dli has been set up (by vblank)"; };
+label { name "wd_wait_32j"; addr $BC5E; comment "wait 32 jiffies (approx 1/2 sec)"; };
+label { name "wd_wait_music"; addr $BCC1; comment "wait until music is done playing (not 100% sure though)"; };
+label { name "print_total_score_msg"; addr $BCA3; comment "wait 32 jiffies (approx 1/2 sec)"; };
range { name "well_done_shape"; start $bda0; end $bdc6; type bytetable; comment "used to draw the large WELL DONE banner"; };
label { name "total_score_msg_minus_one"; addr $bdd1; comment "1-indexed"; };
label { name "dumbwaiter_sub0"; addr $A6BD; comment "gets called every frame"; };
@@ -464,6 +467,8 @@ range { name "l11_map_changes"; start $B3DC; end $b44b; type bytetable; };
label { name "hatch_bomb_sub"; addr $B44C; };
label { name "hurr_sub0"; addr $b691; };
+label { name "falling_wind"; addr $B697; comment "wind blows jumpman to the right when he's dying"; };
+label { name "hurr_done"; addr $B69A; };
label { name "hurr_sub1"; addr $b69b; };
label { name "hurr_sub2"; addr $B709; };
range { name "l12_map"; start $b590; end $b5d1; type bytetable; };
@@ -531,7 +536,20 @@ label { name "bullet_table_minus_one"; addr $8F42; comment "1-indexed"; };
label { name "falling_flag"; addr $0621; comment "1 = falling, reset to 0 when jumpman hits the ground"; };
label { name "jiffy_timer_1"; addr $061A; comment "gets incremented every frame"; };
label { name "jiffy_timer_2"; addr $061B; comment "gets incremented every frame"; };
-label { name "bonus_jiffy_timer"; addr $0626; comment "gets incremented every frame when playing a level, bonus-=100 when this reaches 0"; };
+label { name "jiffy_timer_3_lo"; addr $0619; comment "gets incremented every frame"; };
+label { name "jiffy_timer_3_hi"; addr $A2; comment "gets incremented every time 3_lo wraps around to zero"; };
+label { name "no_wrap"; addr $841F; };
+label { name "sfx_title_v0"; addr $9300; comment "title screen music. only use of 4-part harmony in the game, this and _v1 _v2 _v3."; };
+label { name "sfx_title_v1"; addr $9351; };
+label { name "sfx_title_v2"; addr $939C; };
+label { name "sfx_title_v3"; addr $93D7; };
+label { name "skip_space"; addr $9144; comment "don't 'fade-in' the space in the title (offset 7)"; };
+label { name "rotate_hue"; addr $9154; comment "the luminance stays the same"; };
+label { name "turn_letter_white"; addr $9164; comment "clear the high 2 bits on the letter, in screen memory"; };
+label { name "title_dancing"; addr $9172; comment "make jumpmen dance on title screen, called once/frame"; };
+label { name "start_dancing"; addr $90BC; comment "set _sub0 to title_dancing"; };
+label { name "odd_frame_flag"; addr $061C; comment "a 1-bit frame counter (toggles every frame). possibly unused."; };
+label { name "bonus_jiffy_timer"; addr $0626; comment "gets incremented every frame when playing a level, bonus-=100 when this wraps around to 0"; };
label { name "speed_jiffy_timer"; addr $061E; comment "counts 0..initial_speed"; };
label { name "playing_level"; addr $0627; comment "0 = not playing, non-0 = playing"; };
label { name "no_dec_bonus"; addr $848B; };
@@ -583,7 +601,7 @@ range { name "title_screen_data"; start $91cf; end $93ff; type bytetable; commen
label { name "title_screen_data_minus_one"; addr $91ce; };
label { name "copy_title_screen"; addr $902A; };
-label { name "wait_until_9c_is_0e"; addr $906E; comment "some ISR is writing to $9c..."; };
+label { name "wait_letters_done"; addr $906E; comment "fade_in_letters increments $9c after every letter, $0e means they're all done (since there are 14 of them and we start counting at zero)"; };
label { name "funky_init_loop"; addr $90C8; comment "lot going on here, not understood yet"; };
label { name "scores_screen"; addr $8B80; comment "show scores, called at end of game, also called after beating level 12 (after WELL DONE). $40 in NMIEN = disable DLI, enable VBI"; };
label { name "ss_loop"; addr $8BA8; comment "number_of_users should be score-1 here."; };
@@ -686,7 +704,12 @@ label { name "set_y"; addr $8F9B; size 1; comment "y = a * 5; // offset into mus
label { name "show_level_name"; addr $BA5D; size 1; comment "copy level name into screen RAM"; };
label { name "sync_to_music"; addr $BA71; size 1; comment "level is already drawn with all color regs set to black. for each color reg, wait 1 sec before turning it visible. this syncs up with the music because the music was written to sync with this actually"; };
label { name "wait_1_sec"; addr $BA9E; size 1; comment "actually 64 jiffies, 1.067S ntsc, 1.28s pal"; };
-label { name "wait_1_sec_2"; addr $B970; size 1; comment "actually 64 jiffies, 1.067S ntsc, 1.28s pal"; };
+label { name "demo_wait"; addr $B970; size 1; comment "96 jiffies, 1.6s ntsc, 1.92s pal"; };
+label { name "demo_show_map"; addr $B99D; size 1; comment "initially, FR1 points to $A000 (start of level descriptions), Y is $16, or offset to _map0 within level desc."; };
+label { name "demo_show_name"; addr $B9AC; };
+label { name "demo_next_map"; addr $B9DE; };
+label { name "demo_set_colors"; addr $B9EC; comment "FR1 points to levelXX_desc"; };
+label { name "demo_wait_1"; addr $B9C6; comment "approx 2/3 sec"; };
label { name "keep_waiting"; addr $BAA3; size 1; };
label { name "enable_joystick"; addr $8775; size 1; comment "called after level-intro music is finished playing"; };
label { name "enable_joystick_jv"; addr $801B; size 1; comment "called after level-intro music is finished playing"; };
@@ -695,6 +718,10 @@ label { name "hide_player"; addr $8DB8; size 1; comment "move player selected by
label { name "play_select_key_sfx"; addr $946F; size 1; comment "play sfx_select_key at $95f1"; };
label { name "wait_sfx"; addr $947C; size 1; comment "wait for sound to finish playing"; };
label { name "play_life_bonus_sfx"; addr $B868; size 1; comment "play once per life"; };
+label { name "el_hi_ok"; addr $B851; };
+label { name "el_wait_sfx"; addr $B875; comment "wait for sfx to finish"; };
+label { name "el_delay"; addr $B884; comment "wait approx 1/2 sec"; };
+label { name "el_done"; addr $B893; };
label { name "add_life_bonus"; addr $B83B; size 1; };
label { name "sfx_option_pressed"; addr $8ab0; size 1; };
label { name "play_opt_key_sfx"; addr $94BC; size 1; };
@@ -722,7 +749,10 @@ label { name "play_sfx_climb"; addr $8A80; };
label { name "play_sfx_bounce_1"; addr $899A; };
label { name "falling_bounce"; addr $8983; comment "this looks like it hurts..."; };
label { name "afterlife"; addr $9600; comment "multiple code paths jump here. replay level, load next level, or go back to ask_num_players"; };
-label { name "code_bd52"; addr $BD52; comment "referenced by code at $BC83"; };
+range { name "well_done_sub0"; start $bccd; end $bcd8; type code; comment "used in work_level_sub0 slot during well_doneused in work_level_sub1 slot during well_done"; };
+label { name "well_done_sub1"; addr $BD52; comment "used in work_level_sub1 slot during well_doneused in work_level_sub1 slot during well_done"; };
+label { name "wds1_cont"; addr $BD58; comment "we seem to be setting/clearing bit 7 in the display list, moving the line(s) where DLI(s) occur."; };
+label { name "wds1_finish"; addr $BD81; comment "set things up for the next level?"; };
label { name "crumble_gameboard"; addr $8D00; comment "just lost your last life"; };
label { name "crumble_gameboard_jv"; addr $8030; comment "just lost your last life"; };
label { name "init_struct_users"; addr $9A5C; comment "work_user and struct_user_{1..4}, 11 * 5 (55 aka $37) bytes"; };