keen: hook up proper mars effects

This commit is contained in:
Vince Weaver 2024-04-04 00:36:15 -04:00
parent d48ecfc5da
commit 92050bebc8
5 changed files with 175 additions and 28 deletions

View File

@ -51,7 +51,7 @@ KEEN_MARS: keen_mars.o
ld65 -o KEEN_MARS keen_mars.o -C ../../linker_scripts/apple2_2000.inc ld65 -o KEEN_MARS keen_mars.o -C ../../linker_scripts/apple2_2000.inc
keen_mars.o: keen_mars.s zp.inc hardware.inc game_over.s \ keen_mars.o: keen_mars.s zp.inc hardware.inc game_over.s \
sound_effects.s longer_sound.s print_help.s \ mars_sfx.s longer_sound.s print_help.s \
maps/mars_map.gr.zx02 graphics/parts.gr.zx02 maps/mars_map.gr.zx02 graphics/parts.gr.zx02
ca65 -o keen_mars.o keen_mars.s -l keen_mars.lst ca65 -o keen_mars.o keen_mars.s -l keen_mars.lst

View File

@ -1,20 +1,18 @@
Start at mars (and after die and return to map): MARS sounds:
Keensleft Start at mars (and after die and return to map):
Keensleft
Start level
WLDENTRSND
Start level Level sounds:
WLDENTRSND
Die Die
KEENDIESND KEENDIESND
Level Done
Level Done LVLDONESND
LVLDONESND Game over
GAMEOVERSND
Game over Get item
GAMEOVERSND GOTITEMSND
Shoot laser
Get item GUNCLICK
GOTITEMSND
Shoot laser
GUNCLICK

View File

@ -66,6 +66,10 @@ mars_start:
jsr full_decomp jsr full_decomp
lda #1
sta INITIAL_SOUND
;==================================== ;====================================
;==================================== ;====================================
@ -112,15 +116,24 @@ no_frame_oflo:
;=========================== ;===========================
lda LEVEL_OVER lda LEVEL_OVER
beq do_keen_loop bne done_with_keen
jmp done_with_keen
do_keen_loop: do_keen_loop:
;=====================
; sound effect
;=====================
lda INITIAL_SOUND
beq skip_initial_sound
ldy #SFX_KEENSLEFT
jsr play_sfx
dec INITIAL_SOUND
skip_initial_sound:
; delay ; delay
; lda #200 ; lda #200
; jsr WAIT ; jsr WAIT
@ -138,7 +151,8 @@ done_with_keen:
; sound effect ; sound effect
jsr entry_music ldy #SFX_WLDENTRSND
jsr play_sfx
lda #LOAD_KEEN1 lda #LOAD_KEEN1
sta WHICH_LOAD sta WHICH_LOAD
@ -187,7 +201,7 @@ parts_zx02:
.include "game_over.s" .include "game_over.s"
.include "sound_effects.s" .include "mars_sfx.s"
.include "longer_sound.s" .include "longer_sound.s"

135
games/keen/mars_sfx.s Normal file
View File

@ -0,0 +1,135 @@
SFX_KEENSLEFT = 0
SFX_WLDENTRSND = 1
;==========================
; plays soundfx
;==========================
; which one in Y
play_sfx:
lda sounds_low,Y
sta INL
lda sounds_high,Y
sta INH
ldy #0
sty SOUND_OFFSET
play_sfx_loop:
ldy SOUND_OFFSET
lda (INL),Y
sta speaker_frequency
iny
lda (INL),Y
cmp #$FF
beq play_done
asl
; clc
; adc (INL),Y
sta speaker_duration
iny
bne no_wrap
inc INH
no_wrap:
sty SOUND_OFFSET
jsr speaker_tone
jmp play_sfx_loop
play_done:
rts
sounds_low:
.byte <keensleft, <WLDENTERSND
sounds_high:
.byte >keensleft, >WLDENTERSND
WLDENTERSND:
.byte 28,1 ; 864.6
.byte 29,1 ; 828.6
.byte 30,2 ; 795.5
.byte 31,2 ; 764.9
.byte 33,1 ; 736.5
.byte 35,1 ; 685.7
.byte 36,1 ; 662.9
.byte 39,1 ; 621.4
.byte 41,1 ; 584.9
.byte 48,1 ; 509.9
.byte 44,1 ; 552.4
.byte 45,1 ; 537.5
.byte 48,1 ; 509.9
.byte 0,15 ; 0.0
.byte 65,1 ; 375.2
.byte 66,1 ; 368.3
.byte 68,2 ; 355.1
.byte 70,1 ; 348.9
.byte 72,2 ; 337.1
.byte 73,1 ; 331.4
.byte 76,2 ; 320.7
.byte 78,1 ; 310.7
.byte 80,1 ; 305.9
.byte 81,1 ; 301.3
.byte 83,2 ; 292.4
.byte 86,1 ; 284.1
.byte 89,1 ; 272.4
.byte 92,1 ; 265.2
.byte 96,2 ; 255.0
.byte 0,14 ; 0.0
.byte 108,1 ; 226.0
.byte 109,1 ; 223.4
.byte 112,1 ; 218.5
.byte 113,1 ; 216.2
.byte 118,1 ; 207.1
.byte 122,1 ; 200.9
.byte 124,1 ; 196.9
.byte 125,1 ; 195.0
.byte 127,1 ; 193.1
.byte 128,1 ; 191.2
.byte 129,1 ; 189.4
.byte 130,1 ; 187.6
.byte 132,1 ; 185.9
.byte 133,2 ; 184.1
.byte 134,1 ; 182.4
.byte 137,1 ; 179.2
.byte 138,1 ; 177.6
.byte 0,13 ; 0.0
.byte 145,1 ; 168.5
.byte 149,1 ; 164.3
.byte 150,1 ; 163.0
.byte 155,1 ; 157.8
.byte 149,1 ; 164.3
.byte 156,1 ; 156.6
.byte 158,1 ; 155.4
.byte 160,2 ; 153.0
.byte 156,1 ; 156.6
.byte 161,1 ; 151.8
.byte 159,1 ; 154.2
.byte 163,1 ; 150.7
.byte 161,1 ; 151.8
.byte 164,1 ; 149.5
.byte 255,255
keensleft:
.byte 151,4 ; 161.7
.byte 0,7 ; 0.0
.byte 139,3 ; 176.0
.byte 138,1 ; 177.6
.byte 0,8 ; 0.0
.byte 120,8 ; 202.9
.byte 0,15 ; 0.0
.byte 77,5 ; 315.7
.byte 76,2 ; 320.7
.byte 0,18 ; 0.0
.byte 44,8 ; 552.4
.byte 0,15 ; 0.0
.byte 23,7 ; 1046.7
.byte 0,19 ; 0.0
.byte 17,9 ; 1420.5
.byte 255,255

View File

@ -124,7 +124,7 @@ SHIP_PARTS = $94
KEEN_FALLING = $95 KEEN_FALLING = $95
KEEN_SHOOTING = $96 KEEN_SHOOTING = $96
SOUND_OFFSET = $97
SUPPRESS_WALK = $98 SUPPRESS_WALK = $98
ENEMY_DATAL = $99 ENEMY_DATAL = $99
ENEMY_DATAH = $9A ENEMY_DATAH = $9A
@ -150,7 +150,7 @@ KEEN_HEAD_POINTER_L = $AB
KEEN_HEAD_POINTER_R = $AC KEEN_HEAD_POINTER_R = $AC
MARS_X = $AD MARS_X = $AD
MARS_Y = $AE MARS_Y = $AE
INITIAL_SOUND = $AF