aboutsummaryrefslogtreecommitdiff
path: root/jumpmanjr.dasm
diff options
context:
space:
mode:
Diffstat (limited to 'jumpmanjr.dasm')
-rw-r--r--jumpmanjr.dasm184
1 files changed, 105 insertions, 79 deletions
diff --git a/jumpmanjr.dasm b/jumpmanjr.dasm
index f686f93..143048e 100644
--- a/jumpmanjr.dasm
+++ b/jumpmanjr.dasm
@@ -1,5 +1,5 @@
; da65 V2.15 - Git 104f898
-; Created: 2016-08-29 22:55:55
+; Created: 2016-08-30 01:18:47
; Input file: jumpmanjr.rom
; Page: 1
@@ -73,6 +73,7 @@ L06DF := $06DF
L06E0 := $06E0
L06E3 := $06E3
L06E6 := $06E6
+jump_frame := $06EB ; 0 if not jumping, or frames since start of jump (range 1 to 21)
randomizer_mode := $06F3 ; only after beating levels 1-12 in order
number_of_players:= $06F4 ; 0 for single-player game, otherwise range 1-3 (2 to 4 players)
level := $06F6
@@ -100,7 +101,7 @@ work_level_map2 := $079A ; map data
work_level_unkn_table1:= $079C ; unknown, pointer to a ROM table or $0000
work_level_offs_30:= $079E ; always $0000
work_level_sub_bomb:= $07A0 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-work_level_sub5 := $07A2 ; $06E6 for some levels, or else a ROM subroutine
+work_level_sub_start:= $07A2 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
work_level_sub6 := $07A4 ; always $9740 aka game_main_loop
work_level_sub_eol:= $07A6 ; called at end of level (all bombs picked up). $06E6 for all but level07
work_level_offs_40:= $07A8 ; all zeroes
@@ -128,7 +129,7 @@ cur_level_map2 := $07DA ; map data
cur_level_unkn_table1:= $07DC ; unknown, pointer to a ROM table or $0000
cur_level_offs_30:= $07DE ; always $0000
cur_level_sub_bomb:= $07E0 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-cur_level_sub5 := $07E2 ; $06E6 for some levels, or else a ROM subroutine
+cur_level_sub_start:= $07E2 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
cur_level_sub6 := $07E4 ; always $9740 aka game_main_loop
cur_level_sub_eol:= $07E6 ; called at end of level (all bombs picked up). $06E6 for all but level07
cur_level_offs_40:= $07E8 ; all zeroes
@@ -193,7 +194,9 @@ draw_map_jv:
jmp draw_map ; 8000 4C 49 80 LI.
; ----------------------------------------------------------------------------
-L8003: jmp cue_sfx_lowprior ; 8003 4C 40 82 L@.
+; if cue_sfx not already in progress, setup to play sfx at (sfx_slot_tempo, sfx_lock) tempo (?) A
+cue_sfx_lowprior_jv:
+ jmp cue_sfx_lowprior ; 8003 4C 40 82 L@.
; ----------------------------------------------------------------------------
; setup to play sfx
@@ -517,7 +520,7 @@ sfx_next_note:
cmp #$01 ; 818F C9 01 ..
beq sfx_change_tempo ; 8191 F0 1B ..
cmp #$02 ; 8193 C9 02 ..
- beq sfx_jump ; 8195 F0 31 .1
+ beq sfx_jump_opcode ; 8195 F0 31 .1
cmp #$03 ; 8197 C9 03 ..
beq sfx_play_rest ; 8199 F0 03 ..
jmp sfx_finished ; 819B 4C 26 82 L&.
@@ -550,7 +553,7 @@ sfx_change_tempo:
; ----------------------------------------------------------------------------
; I *think* this jumps to a different sfx address...
-sfx_jump:
+sfx_jump_opcode:
iny ; 81C8 C8 .
lda (zp_temp1),y ; 81C9 B1 CB ..
sta sfx_slot_curpos,x ; 81CB 9D 4E 06 .N.
@@ -1555,7 +1558,7 @@ L8910: lda $06EE ; 8910 AD EE 06
lda #$8A ; 893B A9 8A ..
sta sfx_slot_timer ; 893D 8D 3F 06 .?.
lda #$07 ; 8940 A9 07 ..
- jsr L8003 ; 8942 20 03 80 ..
+ jsr cue_sfx_lowprior_jv ; 8942 20 03 80 ..
L8945: lda $0683 ; 8945 AD 83 06 ...
cmp #$C6 ; 8948 C9 C6 ..
bcc L895D ; 894A 90 11 ..
@@ -1601,7 +1604,7 @@ play_sfx_bounce_1:
lda #$8A ; 899F A9 8A ..
sta sfx_slot_timer ; 89A1 8D 3F 06 .?.
lda #$04 ; 89A4 A9 04 ..
- jsr L8003 ; 89A6 20 03 80 ..
+ jsr cue_sfx_lowprior_jv ; 89A6 20 03 80 ..
L89A9: ldx $06EA ; 89A9 AE EA 06 ...
cpx #$09 ; 89AC E0 09 ..
bne L89B8 ; 89AE D0 08 ..
@@ -1702,7 +1705,7 @@ play_sfx_bounce_2:
lda #$8A ; 8A8A A9 8A ..
sta sfx_slot_timer ; 8A8C 8D 3F 06 .?.
lda #$02 ; 8A8F A9 02 ..
- jsr L8003 ; 8A91 20 03 80 ..
+ jsr cue_sfx_lowprior_jv ; 8A91 20 03 80 ..
L8A94: jmp L9925 ; 8A94 4C 25 99 L%.
; ----------------------------------------------------------------------------
@@ -2218,7 +2221,7 @@ bonus_lt_256:
lda #$8D ; 8DEF A9 8D ..
sta sfx_slot_timer ; 8DF1 8D 3F 06 .?.
lda #$07 ; 8DF4 A9 07 ..
- jsr L8003 ; 8DF6 20 03 80 ..
+ jsr cue_sfx_lowprior_jv ; 8DF6 20 03 80 ..
dec_done:
rts ; 8DF9 60 `
@@ -2351,7 +2354,7 @@ L8EEF: lda L8F51,y ; 8EEF B9 51 8F
txa ; 8F05 8A .
pha ; 8F06 48 H
lda #$02 ; 8F07 A9 02 ..
- jsr L8003 ; 8F09 20 03 80 ..
+ jsr cue_sfx_lowprior_jv ; 8F09 20 03 80 ..
pla ; 8F0C 68 h
tax ; 8F0D AA .
inc $0756,x ; 8F0E FE 56 07 .V.
@@ -2445,7 +2448,7 @@ mus00_len_or_tempo:
.byte $10 ; 8FC7 10 .
; ----------------------------------------------------------------------------
mus01_addr1:
- .addr sfx12 ; 8FC8 BE BF ..
+ .addr sfx_jump ; 8FC8 BE BF ..
mus01_addr2:
.addr empty_music_entry ; 8FCA FF 8F ..
; ----------------------------------------------------------------------------
@@ -3174,9 +3177,9 @@ copy_level_desc_2:
inx ; 967D E8 .
cpx #$40 ; 967E E0 40 .@
bne copy_level_desc_2 ; 9680 D0 F5 ..
- lda work_level_sub5 ; 9682 AD A2 07 ...
+ lda work_level_sub_start ; 9682 AD A2 07 ...
sta $06E1 ; 9685 8D E1 06 ...
- lda work_level_sub5+1 ; 9688 AD A3 07 ...
+ lda work_level_sub_start+1 ; 9688 AD A3 07 ...
sta $06E2 ; 968B 8D E2 06 ...
jsr L06E0 ; 968E 20 E0 06 ..
lda #$00 ; 9691 A9 00 ..
@@ -3308,7 +3311,7 @@ mj_clear_loop:
sta $0755,x ; 9782 9D 55 07 .U.
sta $069A,x ; 9785 9D 9A 06 ...
sta $06EA,x ; 9788 9D EA 06 ...
- sta $06EB,x ; 978B 9D EB 06 ...
+ sta jump_frame,x ; 978B 9D EB 06 ...
dex ; 978E CA .
bne mj_clear_loop ; 978F D0 F1 ..
sta $0697 ; 9791 8D 97 06 ...
@@ -3387,9 +3390,9 @@ L9806: lda $0623 ; 9806 AD 23 06
lda $0683 ; 980B AD 83 06 ...
cmp #$C6 ; 980E C9 C6 ..
bcs L982E ; 9810 B0 1C ..
- lda $06EB ; 9812 AD EB 06 ...
+ lda jump_frame ; 9812 AD EB 06 ...
beq check_collisions_2 ; 9815 F0 03 ..
- jmp L99A8 ; 9817 4C A8 99 L..
+ jmp mid_jump ; 9817 4C A8 99 L..
; ----------------------------------------------------------------------------
; did player 0 or 1 hit the playfield...
@@ -3406,7 +3409,7 @@ L982E: inc $0623 ; 982E EE 23 06
rts ; 9831 60 `
; ----------------------------------------------------------------------------
-; did player 0 or 1 hit the playfield...
+; movement/jumping only allowed if player's touching the playfield
check_collisions_3:
lda #$00 ; 9832 A9 00 ..
sta $06ED ; 9834 8D ED 06 ...
@@ -3493,7 +3496,7 @@ L98AD: clc ; 98AD 18
lda #$BE ; 98C6 A9 BE ..
sta sfx_slot_timer ; 98C8 8D 3F 06 .?.
lda #$01 ; 98CB A9 01 ..
- jsr L8003 ; 98CD 20 03 80 ..
+ jsr cue_sfx_lowprior_jv ; 98CD 20 03 80 ..
L98D0: lda collision_save+4 ; 98D0 AD B4 06 ...
ora collision_save+5 ; 98D3 0D B5 06 ...
and #$02 ; 98D6 29 02 ).
@@ -3593,37 +3596,47 @@ L9983: sec ; 9983 38
rts ; 9984 60 `
; ----------------------------------------------------------------------------
-; handle trigger presses (maybe start a jump)
+; handle trigger presses, maybe start a jump, if player is moving up, left, or right
trigger_handler:
ldx #$04 ; 9985 A2 04 ..
lda joystick_state ; 9987 AD 33 06 .3.
cmp #$0E ; 998A C9 0E ..
- beq L99A0 ; 998C F0 12 ..
+ beq start_jump ; 998C F0 12 ..
ldx #$10 ; 998E A2 10 ..
lda player_delta_x ; 9990 AD 30 06 .0.
cmp #$01 ; 9993 C9 01 ..
- beq L99A0 ; 9995 F0 09 ..
+ beq start_jump ; 9995 F0 09 ..
ldx #$11 ; 9997 A2 11 ..
cmp #$FF ; 9999 C9 FF ..
- beq L99A0 ; 999B F0 03 ..
+ beq start_jump ; 999B F0 03 ..
jmp check_up_down ; 999D 4C 55 98 LU.
; ----------------------------------------------------------------------------
-L99A0: stx $0688 ; 99A0 8E 88 06 ...
+; start jumping, play sfx_jump
+start_jump:
+ stx $0688 ; 99A0 8E 88 06 ...
lda #$01 ; 99A3 A9 01 ..
jsr cue_music_jv ; 99A5 20 18 80 ..
-L99A8: inc $06EB ; 99A8 EE EB 06 ...
- lda $06EB ; 99AB AD EB 06 ...
+; check & see if we're done jumping
+mid_jump:
+ inc jump_frame ; 99A8 EE EB 06 ...
+ lda jump_frame ; 99AB AD EB 06 ...
+; $15 aka 21 frames?
+is_jump_done:
cmp #$16 ; 99AE C9 16 ..
- bne L99BD ; 99B0 D0 0B ..
-L99B2: lda #$00 ; 99B2 A9 00 ..
- sta $06EB ; 99B4 8D EB 06 ...
+ bne continue_jump ; 99B0 D0 0B ..
+; 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
+end_jump:
+ lda #$00 ; 99B2 A9 00 ..
+ sta jump_frame ; 99B4 8D EB 06 ...
sta $06ED ; 99B7 8D ED 06 ...
jmp check_collisions_2 ; 99BA 4C 1A 98 L..
; ----------------------------------------------------------------------------
-L99BD: ldx $06EB ; 99BD AE EB 06 ...
- lda L9A1B,x ; 99C0 BD 1B 9A ...
+; we're in mid-jump and didn't hit anything, keep going
+continue_jump:
+ ldx jump_frame ; 99BD AE EB 06 ...
+ lda jump_delta_x_table_minus_one,x ; 99C0 BD 1B 9A ...
tay ; 99C3 A8 .
lda $0688 ; 99C4 AD 88 06 ...
cmp #$10 ; 99C7 C9 10 ..
@@ -3644,7 +3657,7 @@ L99DD: clc ; 99DD 18
tya ; 99DE 98 .
adc $067E ; 99DF 6D 7E 06 m~.
sta $067E ; 99E2 8D 7E 06 .~.
- lda L9A31,x ; 99E5 BD 31 9A .1.
+ lda jump_delta_y_table_minus_one,x ; 99E5 BD 31 9A .1.
clc ; 99E8 18 .
adc $0683 ; 99E9 6D 83 06 m..
sta $0683 ; 99EC 8D 83 06 ...
@@ -3658,33 +3671,40 @@ code_99f7:
lda collision_save+4 ; 99F7 AD B4 06 ...
ora collision_save+5 ; 99FA 0D B5 06 ...
lsr a ; 99FD 4A J
- bcs L99B2 ; 99FE B0 B2 ..
+ bcs end_jump ; 99FE B0 B2 ..
lsr a ; 9A00 4A J
bcc L9A19 ; 9A01 90 16 ..
lda $0688 ; 9A03 AD 88 06 ...
cmp #$04 ; 9A06 C9 04 ..
beq L9A19 ; 9A08 F0 0F ..
jsr L9971 ; 9A0A 20 71 99 q.
- bcs L99B2 ; 9A0D B0 A3 ..
+ bcs end_jump ; 9A0D B0 A3 ..
jsr check_up_down_2 ; 9A0F 20 3B 99 ;.
bcc L9A19 ; 9A12 90 05 ..
cmp $067E ; 9A14 CD 7E 06 .~.
- beq L99B2 ; 9A17 F0 99 ..
+ beq end_jump ; 9A17 F0 99 ..
L9A19:
-L9A1B := * + 2
+jump_delta_x_table_minus_one:= * + 2 ; 1-indexed...
jmp L9925 ; 9A19 4C 25 99 L%.
; ----------------------------------------------------------------------------
-data_9a1c:
+; used by continue_jump, the amount of X movement per frame of jumping (for either direction, left or right)
+jump_delta_x_table:
.byte $02,$00,$02,$00,$02,$02,$02,$02 ; 9A1C 02 00 02 00 02 02 02 02 ........
.byte $02,$02,$02,$00,$02,$00,$02,$00 ; 9A24 02 02 02 00 02 00 02 00 ........
.byte $00,$02,$00,$00,$00 ; 9A2C 00 02 00 00 00 .....
-L9A31: .byte $02,$FE,$FE,$FE,$FE,$FE,$FE,$00 ; 9A31 02 FE FE FE FE FE FE 00 ........
- .byte $00,$00,$02,$02,$02,$02,$02,$02 ; 9A39 00 00 02 02 02 02 02 02 ........
- .byte $02,$02,$02,$02,$02,$02,$00,$00 ; 9A41 02 02 02 02 02 02 00 00 ........
- .byte $00,$00,$00,$00,$00,$00,$00,$00 ; 9A49 00 00 00 00 00 00 00 00 ........
- .byte $00,$00,$00,$00,$00,$00,$00,$00 ; 9A51 00 00 00 00 00 00 00 00 ........
- .byte $00,$00,$00 ; 9A59 00 00 00 ...
+; 1-indexed...
+jump_delta_y_table_minus_one:
+ .byte $02 ; 9A31 02 .
+; used by continue_jump, amount of Y movement per frame ($FE is -2, or 2 scanlines up, $02 is 2 scanlines down)
+jump_delta_y_table:
+ .byte $FE,$FE,$FE,$FE,$FE,$FE,$00,$00 ; 9A32 FE FE FE FE FE FE 00 00 ........
+ .byte $00,$02,$02,$02,$02,$02,$02,$02 ; 9A3A 00 02 02 02 02 02 02 02 ........
+ .byte $02,$02,$02,$02,$02,$00 ; 9A42 02 02 02 02 02 00 ......
+zero_filler_9a48:
+ .byte $00,$00,$00,$00,$00,$00,$00,$00 ; 9A48 00 00 00 00 00 00 00 00 ........
+ .byte $00,$00,$00,$00,$00,$00,$00,$00 ; 9A50 00 00 00 00 00 00 00 00 ........
+ .byte $00,$00,$00,$00 ; 9A58 00 00 00 00 ....
; ----------------------------------------------------------------------------
init_page_7:
ldy #$00 ; 9A5C A0 00 ..
@@ -4182,8 +4202,8 @@ level00_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level00_sub_bomb:
.addr L06E6 ; A020 E6 06 ..
-; $06E6 for some levels, or else a ROM subroutine
-level00_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level00_sub_start:
.addr L06E6 ; A022 E6 06 ..
; always $9740 aka game_main_loop
level00_sub6:
@@ -4214,16 +4234,16 @@ level01_desc:
; ----------------------------------------------------------------------------
; a subroutine
level01_sub0:
- .addr LA4DD ; A042 DD A4 ..
+ .addr electrocution_done ; A042 DD A4 ..
; a subroutine
level01_sub1:
- .addr LA509 ; A044 09 A5 ..
+ .addr electrocute ; A044 09 A5 ..
; a subroutine
level01_sub2:
.addr L0000 ; A046 00 00 ..
; a subroutine
level01_sub3:
- .addr LA53D ; A048 3D A5 =.
+ .addr level02_collisions ; A048 3D A5 =.
; ----------------------------------------------------------------------------
; number of bombs to pick up on this level
level01_num_bombs:
@@ -4275,8 +4295,8 @@ level01_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level01_sub_bomb:
.addr LA498 ; A060 98 A4 ..
-; $06E6 for some levels, or else a ROM subroutine
-level01_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level01_sub_start:
.addr L8036 ; A062 36 80 6.
; always $9740 aka game_main_loop
level01_sub6:
@@ -4368,8 +4388,8 @@ level02_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level02_sub_bomb:
.addr L06E6 ; A0A0 E6 06 ..
-; $06E6 for some levels, or else a ROM subroutine
-level02_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level02_sub_start:
.addr LA68C ; A0A2 8C A6 ..
; always $9740 aka game_main_loop
level02_sub6:
@@ -4461,8 +4481,8 @@ level03_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level03_sub_bomb:
.addr L06E6 ; A0E0 E6 06 ..
-; $06E6 for some levels, or else a ROM subroutine
-level03_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level03_sub_start:
.addr L8036 ; A0E2 36 80 6.
; always $9740 aka game_main_loop
level03_sub6:
@@ -4554,8 +4574,8 @@ level04_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level04_sub_bomb:
.addr L06E6 ; A120 E6 06 ..
-; $06E6 for some levels, or else a ROM subroutine
-level04_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level04_sub_start:
.addr L06E6 ; A122 E6 06 ..
; always $9740 aka game_main_loop
level04_sub6:
@@ -4647,8 +4667,8 @@ level05_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level05_sub_bomb:
.addr LAA73 ; A160 73 AA s.
-; $06E6 for some levels, or else a ROM subroutine
-level05_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level05_sub_start:
.addr LA9C6 ; A162 C6 A9 ..
; always $9740 aka game_main_loop
level05_sub6:
@@ -4740,8 +4760,8 @@ level06_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level06_sub_bomb:
.addr L06E6 ; A1A0 E6 06 ..
-; $06E6 for some levels, or else a ROM subroutine
-level06_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level06_sub_start:
.addr L8036 ; A1A2 36 80 6.
; always $9740 aka game_main_loop
level06_sub6:
@@ -4833,8 +4853,8 @@ level07_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level07_sub_bomb:
.addr LAF23 ; A1E0 23 AF #.
-; $06E6 for some levels, or else a ROM subroutine
-level07_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level07_sub_start:
.addr LAE9B ; A1E2 9B AE ..
; always $9740 aka game_main_loop
level07_sub6:
@@ -4926,8 +4946,8 @@ level08_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level08_sub_bomb:
.addr LB121 ; A220 21 B1 !.
-; $06E6 for some levels, or else a ROM subroutine
-level08_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level08_sub_start:
.addr LB0C4 ; A222 C4 B0 ..
; always $9740 aka game_main_loop
level08_sub6:
@@ -5019,8 +5039,8 @@ level09_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level09_sub_bomb:
.addr LB2FD ; A260 FD B2 ..
-; $06E6 for some levels, or else a ROM subroutine
-level09_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level09_sub_start:
.addr L8036 ; A262 36 80 6.
; always $9740 aka game_main_loop
level09_sub6:
@@ -5112,8 +5132,8 @@ level10_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level10_sub_bomb:
.addr LB44C ; A2A0 4C B4 L.
-; $06E6 for some levels, or else a ROM subroutine
-level10_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level10_sub_start:
.addr L8036 ; A2A2 36 80 6.
; always $9740 aka game_main_loop
level10_sub6:
@@ -5205,8 +5225,8 @@ level11_offs_30:
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level11_sub_bomb:
.addr L06E6 ; A2E0 E6 06 ..
-; $06E6 for some levels, or else a ROM subroutine
-level11_sub5:
+; called at start of level, $06E6 for some levels, or else a ROM subroutine
+level11_sub_start:
.addr L8036 ; A2E2 36 80 6.
; always $9740 aka game_main_loop
level11_sub6:
@@ -5319,7 +5339,9 @@ LA498: ldy $B2 ; A498 A4 B2
rts ; A4DC 60 `
; ----------------------------------------------------------------------------
-LA4DD: lda $0623 ; A4DD AD 23 06 .#.
+; turn off electrocution effect (?)
+electrocution_done:
+ lda $0623 ; A4DD AD 23 06 .#.
bne LA4FF ; A4E0 D0 1D ..
lda $0621 ; A4E2 AD 21 06 .!.
bne LA4E8 ; A4E5 D0 01 ..
@@ -5345,7 +5367,9 @@ LA505: stx $0770 ; A505 8E 70 07
rts ; A508 60 `
; ----------------------------------------------------------------------------
-LA509: ldx $0770 ; A509 AE 70 07 .p.
+; electrocution effect
+electrocute:
+ ldx $0770 ; A509 AE 70 07 .p.
bne LA50F ; A50C D0 01 ..
rts ; A50E 60 `
@@ -5360,16 +5384,17 @@ LA50F: lda RANDOM ; A50F AD 0A D2
lda #$A5 ; A522 A9 A5 ..
sta sfx_slot_timer ; A524 8D 3F 06 .?.
lda #$01 ; A527 A9 01 ..
- jsr L8003 ; A529 20 03 80 ..
+ jsr cue_sfx_lowprior_jv ; A529 20 03 80 ..
rts ; A52C 60 `
; ----------------------------------------------------------------------------
-; dunno, referenced by routine at $A50F
-sfx_a52d:
+sfx_electrocution:
.byte $01,$81,$00,$0A,$02,$01,$81,$00 ; A52D 01 81 00 0A 02 01 81 00 ........
.byte $32,$02,$01,$81,$00,$1E,$02,$00 ; A535 32 02 01 81 00 1E 02 00 2.......
; ----------------------------------------------------------------------------
-LA53D: lda #$00 ; A53D A9 00 ..
+; skip a couple of the collision regs, so we don't register a collision when Jumpman is being electrocuted
+level02_collisions:
+ lda #$00 ; A53D A9 00 ..
jmp L8F79 ; A53F 4C 79 8F Ly.
; ----------------------------------------------------------------------------
@@ -5626,7 +5651,7 @@ LA882: tya ; A882 98
lda #$A9 ; A892 A9 A9 ..
sta sfx_slot_timer ; A894 8D 3F 06 .?.
lda #$03 ; A897 A9 03 ..
- jsr L8003 ; A899 20 03 80 ..
+ jsr cue_sfx_lowprior_jv ; A899 20 03 80 ..
pla ; A89C 68 h
tax ; A89D AA .
LA89E: lda $0763,x ; A89E BD 63 07 .c.
@@ -6532,7 +6557,7 @@ cue_woop_sound:
lda #$B5 ; B4D8 A9 B5 ..
sta sfx_slot_timer ; B4DA 8D 3F 06 .?.
lda #$03 ; B4DD A9 03 ..
- jsr L8003 ; B4DF 20 03 80 ..
+ jsr cue_sfx_lowprior_jv ; B4DF 20 03 80 ..
LB4E2: ldy #$01 ; B4E2 A0 01 ..
lda $0681 ; B4E4 AD 81 06 ...
cmp $067E ; B4E7 CD 7E 06 .~.
@@ -7356,7 +7381,8 @@ sfx11: .byte $01,$A6,$02,$79,$20,$B6,$30,$99 ; BFA6 01 A6 02 79 20 B6 30 99
.byte $20,$88,$09,$99,$20,$E6,$30,$99 ; BFAE 20 88 09 99 20 E6 30 99 ... .0.
.byte $20,$88,$09,$99,$20,$B6,$3A,$00 ; BFB6 20 88 09 99 20 B6 3A 00 ... .:.
; jumping sound
-sfx12: .byte $01,$A5,$00,$79,$04,$60,$04,$51 ; BFBE 01 A5 00 79 04 60 04 51 ...y.`.Q
+sfx_jump:
+ .byte $01,$A5,$00,$79,$04,$60,$04,$51 ; BFBE 01 A5 00 79 04 60 04 51 ...y.`.Q
.byte $04,$3C,$04,$51,$04,$60,$04,$79 ; BFC6 04 3C 04 51 04 60 04 79 .<.Q.`.y
.byte $04,$00 ; BFCE 04 00 ..
; funeral march melody