aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jumpmanjr.dasm29
-rw-r--r--jumpmanjr.info55
-rw-r--r--main.info55
3 files changed, 74 insertions, 65 deletions
diff --git a/jumpmanjr.dasm b/jumpmanjr.dasm
index af4e7ba..77b2963 100644
--- a/jumpmanjr.dasm
+++ b/jumpmanjr.dasm
@@ -1,5 +1,5 @@
; da65 V2.15 - Git 104f898
-; Created: 2016-09-05 16:35:55
+; Created: 2016-09-05 19:01:23
; Input file: jumpmanjr.rom
; Page: 1
@@ -1225,7 +1225,6 @@ page6_initial_vectors:
.addr check_falling_2 ; 85F2 00 89 ..
.addr sfx_player_entry ; 85F4 57 81 W.
; ----------------------------------------------------------------------------
-; probably just filler
zero_filler_85f6:
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; 85F6 00 00 00 00 00 00 00 00 ........
.byte $00,$00 ; 85FE 00 00 ..
@@ -2201,17 +2200,24 @@ extra_life_points:
crumble_gameboard:
jsr enable_joystick_jv ; 8D00 20 1B 80 ..
lda #$86 ; 8D03 A9 86 ..
+; $86 = distortion 8, volume 6
+cgb_audc:
sta AUDC1 ; 8D05 8D 01 D2 ...
-L8D08: lda RANDOM ; 8D08 AD 0A D2 ...
+; store random N-blank-lines instruction at head of display list
+shake_screen:
+ lda RANDOM ; 8D08 AD 0A D2 ...
and #$70 ; 8D0B 29 70 )p
sta $0801 ; 8D0D 8D 01 08 ...
sta game_display_list ; 8D10 8D 81 08 ...
lda RANDOM ; 8D13 AD 0A D2 ...
+; random frequency
+crumble_sound:
sta AUDF1 ; 8D16 8D 00 D2 ...
-L8D19: lda RANDOM ; 8D19 AD 0A D2 ...
+; get random number 0 to 12
+rand_0c:lda RANDOM ; 8D19 AD 0A D2 ...
and #$1F ; 8D1C 29 1F ).
cmp #$0D ; 8D1E C9 0D ..
- bcs L8D19 ; 8D20 B0 F7 ..
+ bcs rand_0c ; 8D20 B0 F7 ..
sta $AA ; 8D22 85 AA ..
asl a ; 8D24 0A .
clc ; 8D25 18 .
@@ -2235,7 +2241,7 @@ L8D43: ora $3370,y ; 8D43 19 70 33
cpy #$28 ; 8D4A C0 28 .(
bne L8D43 ; 8D4C D0 F5 ..
cmp #$00 ; 8D4E C9 00 ..
- bne L8D08 ; 8D50 D0 B6 ..
+ bne shake_screen ; 8D50 D0 B6 ..
; well_done_screen jumps here via work_level_sub1
well_done_scores:
lda #$00 ; 8D52 A9 00 ..
@@ -3338,13 +3344,13 @@ L966E: lda jiffy_timer_2 ; 966E AD 1B 06
cmp #$F2 ; 9671 C9 F2 ..
bne L966E ; 9673 D0 F9 ..
L9675: ldx #$00 ; 9675 A2 00 ..
-; copy level descriptor to $0780
-copy_level_desc_2:
+; copy cur_level_desc to work_level_desc. done in between players, in a multiplayer game (so each player starts out with a fresh level)
+copy_work_level_desc:
lda cur_level_desc,x ; 9677 BD C0 07 ...
sta work_level_desc,x ; 967A 9D 80 07 ...
inx ; 967D E8 .
cpx #$40 ; 967E E0 40 .@
- bne copy_level_desc_2 ; 9680 D0 F5 ..
+ bne copy_work_level_desc ; 9680 D0 F5 ..
; call start subroutine for current level
init_level:
lda work_level_init ; 9682 AD A2 07 ...
@@ -3383,7 +3389,7 @@ enter_level:
jmp ask_num_players ; 96CB 4C 00 94 L..
; ----------------------------------------------------------------------------
-; copy level descriptor from levelXX_desc at $A000+(level*$40) to $07c0-$07ff
+; copy level descriptor from levelXX_desc at $A000+(level*$40) to cur_level_desc at $07c0-$07ff
copy_level_desc:
lsr a ; 96CE 4A J
ror $D7 ; 96CF 66 D7 f.
@@ -3434,8 +3440,10 @@ get_ready_msg:
.byte $00,$30,$2C,$21,$39,$25,$32,$00 ; 9714 00 30 2C 21 39 25 32 00 .0,!9%2.
.byte $00,$00,$27,$25,$34,$00,$32,$25 ; 971C 00 00 27 25 34 00 32 25 ..'%4.2%
.byte $21,$24,$39 ; 9724 21 24 39 !$9
+; 1-indexed
color0_table_minus_one:
.byte $00 ; 9727 00 .
+; background colors for GET READY screen (different for each player)
color0_table:
.byte $96,$24,$C6,$54 ; 9728 96 24 C6 54 .$.T
; 112 blank scanlines, then one GR.2 line, loaded from $0742
@@ -5662,7 +5670,6 @@ l01_map_change_2:
l01_map_change_3:
.byte $FE,$49,$9C,$FD,$04,$00,$60,$25 ; A3CC FE 49 9C FD 04 00 60 25 .I....`%
.byte $05,$FF ; A3D4 05 FF ..
-; probably just filler
zero_filler_a3d6:
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; A3D6 00 00 00 00 00 00 00 00 ........
.byte $00,$00 ; A3DE 00 00 ..
diff --git a/jumpmanjr.info b/jumpmanjr.info
index 43ca99f..ae933ef 100644
--- a/jumpmanjr.info
+++ b/jumpmanjr.info
@@ -11,11 +11,27 @@ GLOBAL {
COMMENTS 4;
};
-#SEGMENT { START $8000; END $BFFF; NAME "jumpmanjr"; };
+ASMINC { FILE "jumpmanjr.inc"; }; # TODO: get rid of
-ASMINC { FILE "jumpmanjr.inc"; };
-
-# RANGE { START $whatever; END $whatever; TYPE Code|ByteTable|AddrTable|RtsTable; }
+label { name "zero_filler_9a48"; addr $9a48; };
+range { name "zero_filler_8588"; start $B588; end $B58f; type bytetable; };
+range { name "zero_filler_85f6"; start $85f6; end $85ff; type bytetable; };
+range { name "zero_filler_88be"; start $88BE; end $88C7; type bytetable; };
+range { name "zero_filler_88f9"; start $88F9; end $88FF; type bytetable; };
+range { name "zero_filler_8aee"; start $8aee; end $8afd; type bytetable; };
+range { name "zero_filler_8b00"; start $8b00; end $8b22; type bytetable; };
+range { name "zero_filler_8cb4"; start $8cb4; end $8cbb; type bytetable; };
+range { name "zero_filler_8d97"; start $8D97; end $8D9F; type bytetable; };
+range { name "zero_filler_8dcd"; start $8dcd; end $8dcd; type bytetable; };
+range { name "zero_filler_8e67"; start $8e67; end $8e68; type bytetable; };
+range { name "zero_filler_97f0"; start $97F0; end $97FF; type bytetable; };
+range { name "zero_filler_9bcc"; start $9bcc; end $9bcf; type bytetable; };
+range { name "zero_filler_9bff"; start $9bff; end $9bff; type bytetable; };
+range { name "zero_filler_a3d6"; start $a3d6; end $a3df; type bytetable; };
+range { name "zero_filler_b1df"; start $b1df; end $b1df; type bytetable; };
+range { name "zero_filler_b7f1"; start $B7F1; end $B7FF; type bytetable; };
+range { name "zero_filler_b8bf"; start $b8bf; end $b96a; type bytetable; };
+range { name "zero_filler_baab"; start $baab; end $babb; type bytetable; };
label { name "cart_start_stub"; addr $8AFE; };
label { name "cart_entry_point"; addr $8ac0; };
@@ -33,10 +49,10 @@ label { name "mj_done"; addr $97DB; };
label { name "game_main_loop"; addr $9740; };
range { name "random_9b"; start $9BC6; end $9BC6; type bytetable; comment "filler, or leftover after a binary patch?"; };
-label { name "copy_level_desc_2"; addr $9677; comment "copy level descriptor to $0780"; };
+label { name "copy_work_level_desc"; addr $9677; comment "copy cur_level_desc to work_level_desc. done in between players, in a multiplayer game (so each player starts out with a fresh level)"; };
label { name "randomize_level"; addr $9BED; comment "only after beating levels 1-12 in order"; };
label { name "enter_level"; addr $96BA; comment "maybe this should be check_level or init_level?"; };
-label { name "copy_level_desc"; addr $96CE; comment "copy level descriptor from levelXX_desc at $A000+(level*$40) to $07c0-$07ff"; };
+label { name "copy_level_desc"; addr $96CE; comment "copy level descriptor from levelXX_desc at $A000+(level*$40) to cur_level_desc at $07c0-$07ff"; };
label { name "randomizer_mode"; addr $06F3; comment "only after beating levels 1-12 in order"; };
label { name "init_loop"; addr $8ac4; comment "clear pages 6 and 7"; };
@@ -71,7 +87,6 @@ range { name "map_draw_1_blank"; start $8406; end $840c; type bytetable; comment
label { name "copy_blank_1_map"; addr $83F0; comment "stub => map_draw_1_blank-1"; };
range { name "jump_delta_x_table"; start $9a1c; end $9A5B; type bytetable; comment "used by continue_jump, the amount of X movement per frame of jumping (for either direction, left or right)"; };
label { name "jump_delta_y_table"; addr $9A32; comment "used by continue_jump, amount of Y movement per frame ($FE is -2, or 2 scanlines up, $02 is 2 scanlines down)"; };
-label { name "zero_filler_9a48"; addr $9a48; };
label { name "jump_delta_x_table_minus_one"; addr $9A1B; comment "1-indexed..."; };
label { name "jump_delta_y_table_minus_one"; addr $9A31; comment "1-indexed..."; };
label { name "is_jump_done"; addr $99AE; comment "$15 aka 21 frames?"; };
@@ -352,20 +367,6 @@ label { name "play_sfx_death"; addr $8936; };
range { name "status_window_contents"; start $86da; end $8713; type bytetable; comment "40 bytes, or 2 GR.1 lines of screen codes"; };
label { name "pnum_subtractors"; addr $8702; size 18; comment "3 bytes per table entry"; };
range { name "level_name_hscrol_table"; start $BBF0; end $BBff; type bytetable; comment "used for centering level name on gameboard"; };
-range { name "zero_filler_b8bf"; start $b8bf; end $b96a; type bytetable; };
-range { name "zero_filler_b7f1"; start $B7F1; end $B7FF; type bytetable; };
-range { name "zero_filler_9bcc"; start $9bcc; end $9bcf; type bytetable; };
-range { name "zero_filler_baab"; start $baab; end $babb; type bytetable; };
-range { name "zero_filler_97f0"; start $97F0; end $97FF; type bytetable; };
-range { name "zero_filler_8d97"; start $8D97; end $8D9F; type bytetable; };
-range { name "zero_filler_8cb4"; start $8cb4; end $8cbb; type bytetable; };
-range { name "zero_filler_8b00"; start $8b00; end $8b22; type bytetable; };
-range { name "zero_filler_8aee"; start $8aee; end $8afd; type bytetable; };
-range { name "zero_filler_88f9"; start $88F9; end $88FF; type bytetable; };
-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 "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)"; };
@@ -384,7 +385,6 @@ label { name "hellstones_sub3"; addr $A827; };
label { name "play_hellstone_sfx"; addr $A88D; };
label { name "sfx_hellstone"; addr $a90d; };
range { name "total_score_msg"; start $bdd2; end $bdf1; type bytetable; comment "screen codes, displayed by well_done_screen"; };
-range { name "zero_filler_8588"; start $B588; end $B58f; type bytetable; };
#range { name "data_b590"; start $B590; end $B690; type bytetable; };
range { name "wind_table_1"; start $B76B; end $b7bf; type bytetable; comment "used in level12"; };
label { name "wind_table_2"; addr $b771; };
@@ -404,7 +404,6 @@ range { name "l01_map_change_0"; start $A3AE; end $a3d5; type bytetable; };
label { name "l01_map_change_1"; addr $a3b8; };
label { name "l01_map_change_2"; addr $a3c2; };
label { name "l01_map_change_3"; addr $a3cc; };
-range { name "zero_filler_a3d6"; start $a3d6; end $a3df; type bytetable; comment "probably just filler"; };
range { name "l02_map"; start $A3e0; end $a445; type bytetable; comment "level map data starts here"; };
range { name "l02_map_bombs"; start $A446; end $a476; type bytetable; };
@@ -474,7 +473,6 @@ label { name "blackout_sub0"; addr $B140; comment "copies pixels from rendered r
label { name "herethere_sub0"; addr $B27E; };
label { name "herethere_sub3"; addr $B2E0; };
-range { name "zero_filler_b1df"; start $b1df; end $b1df; type bytetable; };
range { name "l10_map"; start $B1E0; end $b236; type bytetable; };
range { name "l10_map_bombs"; start $b237; end $b25b; type bytetable; };
range { name "l10_bombs"; start $b25c; end $b273; type bytetable; };
@@ -520,12 +518,11 @@ label { name "zigzag_sub0"; addr $AD68; comment "move bullets in ways that defy
label { name "no_bullet"; addr $8E75; };
label { name "want_bullet"; addr $8E76; comment "create a bullet unless there are already max_bullets of them"; };
label { name "next_bullet_slot"; addr $8E78; };
-range { name "zero_filler_85f6"; start $85f6; end $85ff; type bytetable; comment "probably just filler"; };
range { name "movement_direction_table"; start $85be; end $85dd; type wordtable; comment "X/Y movement, indexed by joystick_state << 1, each entry is XXYY, $FF is -1"; };
range { name "get_ready_msg"; start $9714; end $9726; type bytetable; comment "PLAYER GET READY"; };
range { name "pcolor0_table"; start $8B7B; end $8b7f; type bytetable; };
-range { name "color0_table"; start $9728; end $972b; type bytetable; };
-range { name "color0_table_minus_one"; start $9727; end $9727; type bytetable; };
+range { name "color0_table"; start $9728; end $972b; type bytetable; comment "background colors for GET READY screen (different for each player)"; };
+range { name "color0_table_minus_one"; start $9727; end $9727; type bytetable; comment "1-indexed"; };
range { name "level_gfx"; start $9C21; end $9cff; type bytetable; comment "definitions for level graphics objects aka shapes. (girder segment, ladder, rope, etc)"; };
label { name "sh_girder"; addr $9C33; comment "3 rows of pixels. 1st: 04 = 4 pixels wide, 00 00 = no X/Y offset, 01 01 01 01 = actual pixel data (4 color0 pixels). see level_maps.txt"; };
label { name "sh_black_4x3"; addr $9C49; comment "all the bombs on blackout are drawn as this"; };
@@ -782,6 +779,10 @@ label { name "wds1_cont"; addr $BD58; comment "we seem to be setting/clearing bi
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 "cgb_audc"; addr $8D05; comment "$86 = distortion 8, volume 6"; };
+label { name "shake_screen"; addr $8D08; comment "store random N-blank-lines instruction at head of display list"; };
+label { name "crumble_sound"; addr $8D16; comment "random frequency"; };
+label { name "rand_0c"; addr $8D19; comment "get random number 0 to 12"; };
label { name "init_struct_users"; addr $9A5C; comment "work_user and struct_user_{1..4}, 11 * 5 (55 aka $37) bytes"; };
label { name "init_struct_users_jv"; addr $8024; };
label { name "isu_next_su"; addr $9A5E; };
diff --git a/main.info b/main.info
index d629de1..8a49eef 100644
--- a/main.info
+++ b/main.info
@@ -9,11 +9,27 @@ GLOBAL {
COMMENTS 4;
};
-#SEGMENT { START $8000; END $BFFF; NAME "jumpmanjr"; };
+ASMINC { FILE "jumpmanjr.inc"; }; # TODO: get rid of
-ASMINC { FILE "jumpmanjr.inc"; };
-
-# RANGE { START $whatever; END $whatever; TYPE Code|ByteTable|AddrTable|RtsTable; }
+label { name "zero_filler_9a48"; addr $9a48; };
+range { name "zero_filler_8588"; start $B588; end $B58f; type bytetable; };
+range { name "zero_filler_85f6"; start $85f6; end $85ff; type bytetable; };
+range { name "zero_filler_88be"; start $88BE; end $88C7; type bytetable; };
+range { name "zero_filler_88f9"; start $88F9; end $88FF; type bytetable; };
+range { name "zero_filler_8aee"; start $8aee; end $8afd; type bytetable; };
+range { name "zero_filler_8b00"; start $8b00; end $8b22; type bytetable; };
+range { name "zero_filler_8cb4"; start $8cb4; end $8cbb; type bytetable; };
+range { name "zero_filler_8d97"; start $8D97; end $8D9F; type bytetable; };
+range { name "zero_filler_8dcd"; start $8dcd; end $8dcd; type bytetable; };
+range { name "zero_filler_8e67"; start $8e67; end $8e68; type bytetable; };
+range { name "zero_filler_97f0"; start $97F0; end $97FF; type bytetable; };
+range { name "zero_filler_9bcc"; start $9bcc; end $9bcf; type bytetable; };
+range { name "zero_filler_9bff"; start $9bff; end $9bff; type bytetable; };
+range { name "zero_filler_a3d6"; start $a3d6; end $a3df; type bytetable; };
+range { name "zero_filler_b1df"; start $b1df; end $b1df; type bytetable; };
+range { name "zero_filler_b7f1"; start $B7F1; end $B7FF; type bytetable; };
+range { name "zero_filler_b8bf"; start $b8bf; end $b96a; type bytetable; };
+range { name "zero_filler_baab"; start $baab; end $babb; type bytetable; };
label { name "cart_start_stub"; addr $8AFE; };
label { name "cart_entry_point"; addr $8ac0; };
@@ -31,10 +47,10 @@ label { name "mj_done"; addr $97DB; };
label { name "game_main_loop"; addr $9740; };
range { name "random_9b"; start $9BC6; end $9BC6; type bytetable; comment "filler, or leftover after a binary patch?"; };
-label { name "copy_level_desc_2"; addr $9677; comment "copy level descriptor to $0780"; };
+label { name "copy_work_level_desc"; addr $9677; comment "copy cur_level_desc to work_level_desc. done in between players, in a multiplayer game (so each player starts out with a fresh level)"; };
label { name "randomize_level"; addr $9BED; comment "only after beating levels 1-12 in order"; };
label { name "enter_level"; addr $96BA; comment "maybe this should be check_level or init_level?"; };
-label { name "copy_level_desc"; addr $96CE; comment "copy level descriptor from levelXX_desc at $A000+(level*$40) to $07c0-$07ff"; };
+label { name "copy_level_desc"; addr $96CE; comment "copy level descriptor from levelXX_desc at $A000+(level*$40) to cur_level_desc at $07c0-$07ff"; };
label { name "randomizer_mode"; addr $06F3; comment "only after beating levels 1-12 in order"; };
label { name "init_loop"; addr $8ac4; comment "clear pages 6 and 7"; };
@@ -69,7 +85,6 @@ range { name "map_draw_1_blank"; start $8406; end $840c; type bytetable; comment
label { name "copy_blank_1_map"; addr $83F0; comment "stub => map_draw_1_blank-1"; };
range { name "jump_delta_x_table"; start $9a1c; end $9A5B; type bytetable; comment "used by continue_jump, the amount of X movement per frame of jumping (for either direction, left or right)"; };
label { name "jump_delta_y_table"; addr $9A32; comment "used by continue_jump, amount of Y movement per frame ($FE is -2, or 2 scanlines up, $02 is 2 scanlines down)"; };
-label { name "zero_filler_9a48"; addr $9a48; };
label { name "jump_delta_x_table_minus_one"; addr $9A1B; comment "1-indexed..."; };
label { name "jump_delta_y_table_minus_one"; addr $9A31; comment "1-indexed..."; };
label { name "is_jump_done"; addr $99AE; comment "$15 aka 21 frames?"; };
@@ -350,20 +365,6 @@ label { name "play_sfx_death"; addr $8936; };
range { name "status_window_contents"; start $86da; end $8713; type bytetable; comment "40 bytes, or 2 GR.1 lines of screen codes"; };
label { name "pnum_subtractors"; addr $8702; size 18; comment "3 bytes per table entry"; };
range { name "level_name_hscrol_table"; start $BBF0; end $BBff; type bytetable; comment "used for centering level name on gameboard"; };
-range { name "zero_filler_b8bf"; start $b8bf; end $b96a; type bytetable; };
-range { name "zero_filler_b7f1"; start $B7F1; end $B7FF; type bytetable; };
-range { name "zero_filler_9bcc"; start $9bcc; end $9bcf; type bytetable; };
-range { name "zero_filler_baab"; start $baab; end $babb; type bytetable; };
-range { name "zero_filler_97f0"; start $97F0; end $97FF; type bytetable; };
-range { name "zero_filler_8d97"; start $8D97; end $8D9F; type bytetable; };
-range { name "zero_filler_8cb4"; start $8cb4; end $8cbb; type bytetable; };
-range { name "zero_filler_8b00"; start $8b00; end $8b22; type bytetable; };
-range { name "zero_filler_8aee"; start $8aee; end $8afd; type bytetable; };
-range { name "zero_filler_88f9"; start $88F9; end $88FF; type bytetable; };
-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 "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)"; };
@@ -382,7 +383,6 @@ label { name "hellstones_sub3"; addr $A827; };
label { name "play_hellstone_sfx"; addr $A88D; };
label { name "sfx_hellstone"; addr $a90d; };
range { name "total_score_msg"; start $bdd2; end $bdf1; type bytetable; comment "screen codes, displayed by well_done_screen"; };
-range { name "zero_filler_8588"; start $B588; end $B58f; type bytetable; };
#range { name "data_b590"; start $B590; end $B690; type bytetable; };
range { name "wind_table_1"; start $B76B; end $b7bf; type bytetable; comment "used in level12"; };
label { name "wind_table_2"; addr $b771; };
@@ -402,7 +402,6 @@ range { name "l01_map_change_0"; start $A3AE; end $a3d5; type bytetable; };
label { name "l01_map_change_1"; addr $a3b8; };
label { name "l01_map_change_2"; addr $a3c2; };
label { name "l01_map_change_3"; addr $a3cc; };
-range { name "zero_filler_a3d6"; start $a3d6; end $a3df; type bytetable; comment "probably just filler"; };
range { name "l02_map"; start $A3e0; end $a445; type bytetable; comment "level map data starts here"; };
range { name "l02_map_bombs"; start $A446; end $a476; type bytetable; };
@@ -472,7 +471,6 @@ label { name "blackout_sub0"; addr $B140; comment "copies pixels from rendered r
label { name "herethere_sub0"; addr $B27E; };
label { name "herethere_sub3"; addr $B2E0; };
-range { name "zero_filler_b1df"; start $b1df; end $b1df; type bytetable; };
range { name "l10_map"; start $B1E0; end $b236; type bytetable; };
range { name "l10_map_bombs"; start $b237; end $b25b; type bytetable; };
range { name "l10_bombs"; start $b25c; end $b273; type bytetable; };
@@ -518,12 +516,11 @@ label { name "zigzag_sub0"; addr $AD68; comment "move bullets in ways that defy
label { name "no_bullet"; addr $8E75; };
label { name "want_bullet"; addr $8E76; comment "create a bullet unless there are already max_bullets of them"; };
label { name "next_bullet_slot"; addr $8E78; };
-range { name "zero_filler_85f6"; start $85f6; end $85ff; type bytetable; comment "probably just filler"; };
range { name "movement_direction_table"; start $85be; end $85dd; type wordtable; comment "X/Y movement, indexed by joystick_state << 1, each entry is XXYY, $FF is -1"; };
range { name "get_ready_msg"; start $9714; end $9726; type bytetable; comment "PLAYER GET READY"; };
range { name "pcolor0_table"; start $8B7B; end $8b7f; type bytetable; };
-range { name "color0_table"; start $9728; end $972b; type bytetable; };
-range { name "color0_table_minus_one"; start $9727; end $9727; type bytetable; };
+range { name "color0_table"; start $9728; end $972b; type bytetable; comment "background colors for GET READY screen (different for each player)"; };
+range { name "color0_table_minus_one"; start $9727; end $9727; type bytetable; comment "1-indexed"; };
range { name "level_gfx"; start $9C21; end $9cff; type bytetable; comment "definitions for level graphics objects aka shapes. (girder segment, ladder, rope, etc)"; };
label { name "sh_girder"; addr $9C33; comment "3 rows of pixels. 1st: 04 = 4 pixels wide, 00 00 = no X/Y offset, 01 01 01 01 = actual pixel data (4 color0 pixels). see level_maps.txt"; };
label { name "sh_black_4x3"; addr $9C49; comment "all the bombs on blackout are drawn as this"; };
@@ -780,6 +777,10 @@ label { name "wds1_cont"; addr $BD58; comment "we seem to be setting/clearing bi
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 "cgb_audc"; addr $8D05; comment "$86 = distortion 8, volume 6"; };
+label { name "shake_screen"; addr $8D08; comment "store random N-blank-lines instruction at head of display list"; };
+label { name "crumble_sound"; addr $8D16; comment "random frequency"; };
+label { name "rand_0c"; addr $8D19; comment "get random number 0 to 12"; };
label { name "init_struct_users"; addr $9A5C; comment "work_user and struct_user_{1..4}, 11 * 5 (55 aka $37) bytes"; };
label { name "init_struct_users_jv"; addr $8024; };
label { name "isu_next_su"; addr $9A5E; };