aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-08-29 22:58:32 -0400
committerB. Watson <yalhcru@gmail.com>2016-08-29 22:58:32 -0400
commitdd20e776204f2e266f8c1e1b207ff0a9c0b9a92d (patch)
treebf1bd38e1c823eefbf330a265a24b86ea1cc82cd
parent9adb57030389b8fe337cdfb144edacdded00739a (diff)
downloadjumpmanjr-dd20e776204f2e266f8c1e1b207ff0a9c0b9a92d.tar.gz
spellbound level end
-rw-r--r--jumpmanjr.dasm63
-rw-r--r--jumpmanjr.info11
-rw-r--r--main.info11
3 files changed, 60 insertions, 25 deletions
diff --git a/jumpmanjr.dasm b/jumpmanjr.dasm
index a177c55..f686f93 100644
--- a/jumpmanjr.dasm
+++ b/jumpmanjr.dasm
@@ -1,5 +1,5 @@
; da65 V2.15 - Git 104f898
-; Created: 2016-08-29 22:07:15
+; Created: 2016-08-29 22:55:55
; Input file: jumpmanjr.rom
; Page: 1
@@ -206,7 +206,9 @@ xxx_level_something_jv:
jmp xxx_level_something ; 8009 4C 00 86 L..
; ----------------------------------------------------------------------------
-L800C: jmp L8CBC ; 800C 4C BC 8C L..
+; also adds extra life every 7500 points
+update_score_display_jv:
+ jmp update_score_display ; 800C 4C BC 8C L..
; ----------------------------------------------------------------------------
L800F: jmp L867E ; 800F 4C 7E 86 L~.
@@ -1450,7 +1452,7 @@ L8879: lda #$D9 ; 8879 A9 D9
lda #$06 ; 887D A9 06 ..
sta dm_progctr+1 ; 887F 85 C1 ..
jsr draw_map_jv ; 8881 20 00 80 ..
- jsr L800C ; 8884 20 0C 80 ..
+ jsr update_score_display_jv ; 8884 20 0C 80 ..
dec work_level_num_bombs ; 8887 CE 8A 07 ...
L888A: lda collision_save+4 ; 888A AD B4 06 ...
and #$04 ; 888D 29 04 ).
@@ -2032,7 +2034,9 @@ L8CAA: inc $AB ; 8CAA E6 AB
brk ; 8CB9 00 .
brk ; 8CBA 00 .
brk ; 8CBB 00 .
-L8CBC: ldx #$03 ; 8CBC A2 03 ..
+; also adds extra life every 7500 points
+update_score_display:
+ ldx #$03 ; 8CBC A2 03 ..
L8CBE: lda $06FF,x ; 8CBE BD FF 06 ...
cmp score+2,x ; 8CC1 DD 02 07 ...
bcc L8CFA ; 8CC4 90 34 .4
@@ -2068,7 +2072,7 @@ add_extra_life:
lda #$0C ; 8CF2 A9 0C ..
jsr cue_sfx_jv ; 8CF4 20 06 80 ..
jsr show_lives_icons ; 8CF7 20 BB 86 ..
-L8CFA: jmp LB7C0 ; 8CFA 4C C0 B7 L..
+L8CFA: jmp score_mod_1m ; 8CFA 4C C0 B7 L..
; ----------------------------------------------------------------------------
; L= (for lives display)
@@ -2246,7 +2250,7 @@ lt_64k: lda #$00 ; 8E27 A9 00
sta AUDC1 ; 8E2E 8D 01 D2 ...
sta jiffy_timer_1 ; 8E31 8D 1A 06 ...
sta playing_level ; 8E34 8D 27 06 .'.
- jsr L800C ; 8E37 20 0C 80 ..
+ jsr update_score_display_jv ; 8E37 20 0C 80 ..
; 533ms ntsc, 640ms pal
wait_32_jiffies:
lda jiffy_timer_1 ; 8E3A AD 1A 06 ...
@@ -4837,7 +4841,7 @@ level07_sub6:
.addr game_main_loop ; A1E4 40 97 @.
; called at end of level (all bombs picked up). $06E6 for all but level07
level07_sub_eol:
- .addr LAF58 ; A1E6 58 AF X.
+ .addr level07_letters ; A1E6 58 AF X.
; ----------------------------------------------------------------------------
; all zeroes
level07_offs_40:
@@ -6001,7 +6005,9 @@ LAE9B: .byte $20,$36,$80,$A9,$C0,$8D,$70,$07 ; AE9B 20 36 80 A9 C0 8D 70 07
.byte $60 ; AEA3 60 `
LAEA4: .byte $18,$08,$38,$20,$00,$48,$30,$18 ; AEA4 18 08 38 20 00 48 30 18 ..8 .H0.
.byte $28,$10,$10 ; AEAC 28 10 10 (..
-LAEAF: .byte $40,$29,$21,$11,$19,$11,$09,$01 ; AEAF 40 29 21 11 19 11 09 01 @)!.....
+; letters for level07, spellbound (not ASCII or screencodes though)
+epyx_jumpman:
+ .byte $40,$29,$21,$11,$19,$11,$09,$01 ; AEAF 40 29 21 11 19 11 09 01 @)!.....
.byte $49,$41,$39,$19,$31 ; AEB7 49 41 39 19 31 IA9.1
LAEBC: .byte $03,$03,$03,$03,$03,$C3,$C3,$7E ; AEBC 03 03 03 03 03 C3 C3 7E .......~
.byte $C3,$C3,$C3,$C3,$C3,$C3,$C3,$7E ; AEC4 C3 C3 C3 C3 C3 C3 C3 7E .......~
@@ -6061,12 +6067,16 @@ LAF3B: lda LAEBC,y ; AF3B B9 BC AE
rts ; AF57 60 `
; ----------------------------------------------------------------------------
-LAF58: lda work_level_num_bombs ; AF58 AD 8A 07 ...
- beq LAF5E ; AF5B F0 01 ..
+; called at end of Spellbound, adds up letter bonus
+level07_letters:
+ lda work_level_num_bombs ; AF58 AD 8A 07 ...
+ beq l07_got_all ; AF5B F0 01 ..
rts ; AF5D 60 `
; ----------------------------------------------------------------------------
-LAF5E: lda #$09 ; AF5E A9 09 ..
+; got all the bombs
+l07_got_all:
+ lda #$09 ; AF5E A9 09 ..
sta player_speed ; AF60 8D 24 06 .$.
lda #$00 ; AF63 A9 00 ..
sta playing_level ; AF65 8D 27 06 .'.
@@ -6077,8 +6087,8 @@ LAF6D: lda $0770 ; AF6D AD 70 07
adc #$0A ; AF71 69 0A i.
sta $0770 ; AF73 8D 70 07 .p.
lda $0772,x ; AF76 BD 72 07 .r.
- cmp LAEAF,x ; AF79 DD AF AE ...
- beq LAF96 ; AF7C F0 18 ..
+ cmp epyx_jumpman,x ; AF79 DD AF AE ...
+ beq bonus_250_pts ; AF7C F0 18 ..
lda #$00 ; AF7E A9 00 ..
sta $0681 ; AF80 8D 81 06 ...
jmp LAF92 ; AF83 4C 92 AF L..
@@ -6094,7 +6104,9 @@ LAF92: dex ; AF92 CA
rts ; AF95 60 `
; ----------------------------------------------------------------------------
-LAF96: lda $0770 ; AF96 AD 70 07 .p.
+; per letter
+bonus_250_pts:
+ lda $0770 ; AF96 AD 70 07 .p.
sta $0686 ; AF99 8D 86 06 ...
lda #$86 ; AF9C A9 86 ..
sta $0681 ; AF9E 8D 81 06 ...
@@ -6108,7 +6120,9 @@ LAF96: lda $0770 ; AF96 AD 70 07
inc score+2 ; AFB1 EE 02 07 ...
LAFB4: txa ; AFB4 8A .
pha ; AFB5 48 H
- jsr L800C ; AFB6 20 0C 80 ..
+ jsr update_score_display_jv ; AFB6 20 0C 80 ..
+; play sfx_letter_bonus
+cue_letter_sfx:
lda #$CB ; AFB9 A9 CB ..
sta sfx_ptr ; AFBB 8D 3C 06 .<.
lda #$AF ; AFBE A9 AF ..
@@ -6119,8 +6133,8 @@ LAFB4: txa ; AFB4 8A
jmp LAF86 ; AFC8 4C 86 AF L..
; ----------------------------------------------------------------------------
-; referenced by routine at $AF96
-sfx_afcb:
+; played once per correct letter at end of level07 (spellbound)
+sfx_letter_bonus:
.byte $01,$A5,$00,$18,$04,$F3,$04,$00 ; AFCB 01 A5 00 18 04 F3 04 00 ........
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; AFD3 00 00 00 00 00 00 00 00 ........
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; AFDB 00 00 00 00 00 00 00 00 ........
@@ -6722,15 +6736,17 @@ wind_table_2:
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; B7B1 00 00 00 00 00 00 00 00 ........
.byte $00,$00,$00,$00,$00,$00,$00 ; B7B9 00 00 00 00 00 00 00 .......
; ----------------------------------------------------------------------------
-LB7C0: lda score+2 ; B7C0 AD 02 07 ...
+; roll over the score if it's >= 1 million
+score_mod_1m:
+ lda score+2 ; B7C0 AD 02 07 ...
cmp #$0F ; B7C3 C9 0F ..
- bcc LB7EE ; B7C5 90 27 .'
+ bcc score_below_1m ; B7C5 90 27 .'
lda score+1 ; B7C7 AD 01 07 ...
cmp #$42 ; B7CA C9 42 .B
- bcc LB7EE ; B7CC 90 20 .
+ bcc score_below_1m ; B7CC 90 20 .
lda score ; B7CE AD 00 07 ...
cmp #$40 ; B7D1 C9 40 .@
- bcc LB7EE ; B7D3 90 19 ..
+ bcc score_below_1m ; B7D3 90 19 ..
sec ; B7D5 38 8
lda score ; B7D6 AD 00 07 ...
sbc #$40 ; B7D9 E9 40 .@
@@ -6741,7 +6757,8 @@ LB7C0: lda score+2 ; B7C0 AD 02 07
lda score+2 ; B7E6 AD 02 07 ...
sbc #$0F ; B7E9 E9 0F ..
sta score+2 ; B7EB 8D 02 07 ...
-LB7EE: jmp L8668 ; B7EE 4C 68 86 Lh.
+score_below_1m:
+ jmp L8668 ; B7EE 4C 68 86 Lh.
; ----------------------------------------------------------------------------
brk ; B7F1 00 .
@@ -6803,7 +6820,7 @@ LB851: clc ; B851 18
lda work_level_time_bonus+1 ; B85A AD 92 07 ...
adc $A5 ; B85D 65 A5 e.
sta work_level_time_bonus+1 ; B85F 8D 92 07 ...
- jsr L800C ; B862 20 0C 80 ..
+ jsr update_score_display_jv ; B862 20 0C 80 ..
jsr L800F ; B865 20 0F 80 ..
; play once per life
play_life_bonus_sfx:
diff --git a/jumpmanjr.info b/jumpmanjr.info
index f94de92..7d3ea17 100644
--- a/jumpmanjr.info
+++ b/jumpmanjr.info
@@ -47,6 +47,14 @@ label { name "dli_chained_1"; addr $9B72; comment "changes DLI vector to point t
label { name "dli_chained_2"; addr $9B87; comment "changes DLI vector to point to dli_chained_3"; };
label { name "dli_chained_3"; addr $9BB1; comment "changes DLI vector to point to dli_chained_1"; };
label { name "update_color_regs"; addr $840F; comment "update color regs from shadow regs (X ranges 1 to 9, GRAFM+1 is COLPM0, $2bf+1 is PCOLR0)"; };
+label { name "update_score_display"; addr $8CBC; comment "also adds extra life every 7500 points"; };
+label { name "update_score_display_jv"; addr $800C; comment "also adds extra life every 7500 points"; };
+label { name "score_mod_1m"; addr $B7C0; comment "roll over the score if it's >= 1 million"; };
+label { name "score_below_1m"; addr $B7EE; };
+label { name "level07_letters"; addr $AF58; comment "called at end of Spellbound, adds up letter bonus"; };
+label { name "l07_got_all"; addr $AF5E; comment "got all the bombs"; };
+label { name "bonus_250_pts"; addr $AF96; comment "per letter"; };
+label { name "epyx_jumpman"; addr $AEAF; comment "letters for level07, spellbound (not ASCII or screencodes though)"; };
range { name "code_99f7"; start $99F7; end $9A1B; type code; };
range { name "data_8406"; start $8406; end $840c; type bytetable; };
@@ -244,7 +252,8 @@ range { name "data_table_a8fd"; start $a8fd; end $A9C6; type bytetable; comment
range { name "map_aa90"; start $aa90; end $AD67; type bytetable; comment "dunno what this is for yet"; };
label { name "map_aaa6"; addr $aaa6; comment "referenced by routine at $AA82"; };
range { name "data_table_adc7"; start $adc7; end $af0c; type bytetable; comment "dunno, referenced by routines at $AD9E and $ADB5"; };
-range { name "sfx_afcb"; start $AFCB; end $b0c3; type bytetable; comment "referenced by routine at $AF96"; };
+range { name "sfx_letter_bonus"; start $AFCB; end $b0c3; type bytetable; comment "played once per correct letter at end of level07 (spellbound)"; };
+label { name "cue_letter_sfx"; addr $AFB9; comment "play sfx_letter_bonus"; };
label { name "map_b000"; addr $b000; comment "referenced by routine at $B0C4"; };
range { name "data_table_85b6"; start $85b6; end $85bd; type bytetable; comment "used in vblank_imm_isr, not sure for what yet"; };
range { name "data_table_85de"; start $85de; end $85f5; type bytetable; comment "dunno what this is for yet, but it's copied into page 6 by init_hardware"; };
diff --git a/main.info b/main.info
index eb90eb4..d0c5d06 100644
--- a/main.info
+++ b/main.info
@@ -45,6 +45,14 @@ label { name "dli_chained_1"; addr $9B72; comment "changes DLI vector to point t
label { name "dli_chained_2"; addr $9B87; comment "changes DLI vector to point to dli_chained_3"; };
label { name "dli_chained_3"; addr $9BB1; comment "changes DLI vector to point to dli_chained_1"; };
label { name "update_color_regs"; addr $840F; comment "update color regs from shadow regs (X ranges 1 to 9, GRAFM+1 is COLPM0, $2bf+1 is PCOLR0)"; };
+label { name "update_score_display"; addr $8CBC; comment "also adds extra life every 7500 points"; };
+label { name "update_score_display_jv"; addr $800C; comment "also adds extra life every 7500 points"; };
+label { name "score_mod_1m"; addr $B7C0; comment "roll over the score if it's >= 1 million"; };
+label { name "score_below_1m"; addr $B7EE; };
+label { name "level07_letters"; addr $AF58; comment "called at end of Spellbound, adds up letter bonus"; };
+label { name "l07_got_all"; addr $AF5E; comment "got all the bombs"; };
+label { name "bonus_250_pts"; addr $AF96; comment "per letter"; };
+label { name "epyx_jumpman"; addr $AEAF; comment "letters for level07, spellbound (not ASCII or screencodes though)"; };
range { name "code_99f7"; start $99F7; end $9A1B; type code; };
range { name "data_8406"; start $8406; end $840c; type bytetable; };
@@ -242,7 +250,8 @@ range { name "data_table_a8fd"; start $a8fd; end $A9C6; type bytetable; comment
range { name "map_aa90"; start $aa90; end $AD67; type bytetable; comment "dunno what this is for yet"; };
label { name "map_aaa6"; addr $aaa6; comment "referenced by routine at $AA82"; };
range { name "data_table_adc7"; start $adc7; end $af0c; type bytetable; comment "dunno, referenced by routines at $AD9E and $ADB5"; };
-range { name "sfx_afcb"; start $AFCB; end $b0c3; type bytetable; comment "referenced by routine at $AF96"; };
+range { name "sfx_letter_bonus"; start $AFCB; end $b0c3; type bytetable; comment "played once per correct letter at end of level07 (spellbound)"; };
+label { name "cue_letter_sfx"; addr $AFB9; comment "play sfx_letter_bonus"; };
label { name "map_b000"; addr $b000; comment "referenced by routine at $B0C4"; };
range { name "data_table_85b6"; start $85b6; end $85bd; type bytetable; comment "used in vblank_imm_isr, not sure for what yet"; };
range { name "data_table_85de"; start $85de; end $85f5; type bytetable; comment "dunno what this is for yet, but it's copied into page 6 by init_hardware"; };