keen1: hook up more sound

This commit is contained in:
Vince Weaver 2024-04-04 01:06:29 -04:00
parent 92050bebc8
commit 424c02e6f3
9 changed files with 454 additions and 94 deletions

View File

@ -67,7 +67,7 @@ keen_level1.o: keen_level1.s zp.inc hardware.inc \
maps/level1_map.lzsa \
status_bar.s draw_keen.s move_keen.s gr_putsprite_crop.s \
draw_tilemap.s \
sound_effects.s longer_sound.s \
level1_sfx.s longer_sound.s \
keyboard.s handle_laser.s
ca65 -o keen_level1.o keen_level1.s -l keen_level1.lst

View File

@ -43,7 +43,7 @@ hit_something:
lda #1
sta enemy_data+ENEMY_DATA_EXPLODING,Y
jsr enemy_noise
; jsr enemy_noise
; jsr inc_score_by_10

View File

@ -112,7 +112,8 @@ btc_smc:
sta $b000,Y
; play sound
jsr pickup_noise
ldy #SFX_GOTITEMSND
jsr play_sfx
done_check_item:
@ -132,7 +133,11 @@ check_door:
at_door:
inc LEVEL_OVER
; TODO: mark level complete somehow
jsr exit_music
ldy #SFX_LVLDONESND
jsr play_sfx
done_check_door:
rts
@ -158,9 +163,23 @@ check_enemy:
touched_enemy:
dec KEENS
inc LEVEL_OVER
ldy #SFX_KEENDIESND
jsr play_sfx
; TODO: ANIMATION
; TODO: enemy music
;jsr exit_music
; keen turns to head, flies up screen
; play game over music if out of keens
lda KEENS
bpl done_check_enemy
ldy #SFX_GAMEOVERSND
jsr play_sfx
done_check_enemy:
rts

View File

@ -208,7 +208,7 @@ level1_bg_zx02:
.include "enemies_level1.s"
.include "item_level1.s"
.include "sound_effects.s"
.include "level1_sfx.s"
.include "longer_sound.s"
level1_data_zx02:

View File

@ -1,6 +1,7 @@
; Keen MARS main map
; TODO: should make it scrollable, etc / tilemap
; TODO: fade in effect (from mode7 demo)
; by deater (Vince Weaver) <vince@deater.net>

View File

@ -194,7 +194,7 @@ jump_right:
lda #JUMP_HEIGHT
sta KEEN_JUMPING
jsr jump_noise
; jsr jump_noise
lda #1
sta KEEN_DIRECTION
@ -220,7 +220,7 @@ jump_left:
lda #JUMP_HEIGHT
sta KEEN_JUMPING
jsr jump_noise
; jsr jump_noise
lda #$FF
sta KEEN_DIRECTION
@ -267,7 +267,7 @@ space_pressed:
lda #JUMP_HEIGHT
sta KEEN_JUMPING
jsr jump_noise
; jsr jump_noise
jmp done_keypress
@ -288,7 +288,10 @@ comma_pressed:
lda LASER_OUT
bne done_comma
jsr laser_noise
ldy #SFX_GUNCLICK
jsr play_sfx
; jsr laser_noise
lda KEEN_DIRECTION
sta LASER_DIRECTION

418
games/keen/level1_sfx.s Normal file
View File

@ -0,0 +1,418 @@
SFX_KEENDIESND = 0
SFX_LVLDONESND = 1
SFX_GAMEOVERSND= 2
SFX_GOTITEMSND = 3
SFX_GUNCLICK = 4
;==========================
; 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 <KEENDIESND,<LVLDONESND, <GAMEOVERSND,<GOTITEMSND,<GUNCLICK
sounds_high:
.byte >KEENDIESND,>LVLDONESND, >GAMEOVERSND,>GOTITEMSND,>GUNCLICK
KEENDIESND:
.byte 20,1 ; 1169.8
.byte 22,3 ; 1104.8
.byte 0,14 ; 0.0
.byte 59,4 ; 414.3
.byte 0,14 ; 0.0
.byte 20,5 ; 1169.8
.byte 0,15 ; 0.0
.byte 59,4 ; 414.3
.byte 60,1 ; 405.8
.byte 0,12 ; 0.0
.byte 19,4 ; 1242.9
.byte 0,12 ; 0.0
.byte 59,4 ; 414.3
.byte 0,13 ; 0.0
.byte 35,3 ; 685.7
.byte 0,19 ; 0.0
.byte 89,1 ; 272.4
.byte 92,1 ; 265.2
.byte 96,1 ; 255.0
.byte 99,1 ; 245.5
.byte 102,1 ; 239.6
.byte 106,1 ; 231.2
.byte 109,1 ; 223.4
.byte 112,1 ; 218.5
.byte 115,1 ; 211.6
.byte 118,1 ; 207.1
.byte 120,1 ; 202.9
.byte 123,1 ; 198.9
.byte 124,1 ; 196.9
.byte 125,1 ; 195.0
.byte 128,2 ; 191.2
.byte 129,1 ; 189.4
.byte 130,1 ; 187.6
.byte 132,1 ; 185.9
.byte 133,1 ; 184.1
.byte 134,2 ; 182.4
.byte 135,1 ; 180.8
.byte 137,9 ; 179.2
.byte 135,2 ; 180.8
.byte 134,1 ; 182.4
.byte 133,1 ; 184.1
.byte 132,1 ; 185.9
.byte 130,2 ; 187.6
.byte 128,1 ; 191.2
.byte 125,1 ; 195.0
.byte 123,1 ; 198.9
.byte 118,1 ; 207.1
.byte 111,1 ; 221.0
.byte 102,1 ; 239.6
.byte 96,1 ; 255.0
.byte 91,1 ; 268.7
.byte 89,1 ; 272.4
.byte 88,2 ; 276.2
.byte 89,2 ; 272.4
.byte 91,3 ; 268.7
.byte 92,1 ; 265.2
.byte 94,1 ; 258.3
.byte 97,1 ; 251.7
.byte 98,1 ; 248.6
.byte 101,1 ; 242.5
.byte 102,1 ; 239.6
.byte 103,1 ; 236.7
.byte 108,1 ; 226.0
.byte 111,1 ; 221.0
.byte 113,1 ; 216.2
.byte 115,2 ; 211.6
.byte 117,1 ; 209.3
.byte 118,1 ; 207.1
.byte 119,3 ; 205.0
.byte 117,1 ; 209.3
.byte 115,2 ; 211.6
.byte 112,1 ; 218.5
.byte 111,1 ; 221.0
.byte 108,1 ; 226.0
.byte 106,1 ; 231.2
.byte 101,1 ; 242.5
.byte 96,1 ; 255.0
.byte 82,1 ; 296.8
.byte 75,1 ; 326.0
.byte 66,1 ; 368.3
.byte 45,1 ; 537.5
.byte 43,1 ; 568.2
.byte 39,1 ; 621.4
.byte 38,1 ; 641.5
.byte 33,1 ; 736.5
.byte 31,1 ; 764.9
.byte 29,1 ; 828.6
.byte 27,1 ; 903.9
.byte 19,1 ; 1242.9
.byte 13,1 ; 1807.8
.byte 255,255
GOTITEMSND:
.byte 91,1 ; 268.7
.byte 87,1 ; 280.1
.byte 86,3 ; 284.1
.byte 0,5 ; 0.0
.byte 51,1 ; 473.5
.byte 50,1 ; 485.0
.byte 49,1 ; 497.2
.byte 46,2 ; 523.3
.byte 0,5 ; 0.0
.byte 24,1 ; 994.3
.byte 23,1 ; 1046.7
.byte 22,1 ; 1104.8
.byte 20,1 ; 1169.8
.byte 19,2 ; 1242.9
.byte 0,4 ; 0.0
.byte 17,1 ; 1420.5
.byte 15,1 ; 1529.7
.byte 14,3 ; 1657.2
.byte 0,4 ; 0.0
.byte 11,4 ; 2209.6
.byte 0,3 ; 0.0
.byte 9,4 ; 2485.8
.byte 0,3 ; 0.0
.byte 60,1 ; 405.8
.byte 64,1 ; 382.4
.byte 67,1 ; 361.6
.byte 72,1 ; 337.1
.byte 73,1 ; 331.4
.byte 75,1 ; 326.0
.byte 78,1 ; 310.7
.byte 83,1 ; 292.4
.byte 106,1 ; 231.2
.byte 111,1 ; 221.0
.byte 115,1 ; 211.6
.byte 117,1 ; 209.3
.byte 115,1 ; 211.6
.byte 114,1 ; 213.8
.byte 108,1 ; 226.0
.byte 78,1 ; 310.7
.byte 75,1 ; 326.0
.byte 68,1 ; 355.1
.byte 62,1 ; 389.9
.byte 55,1 ; 441.9
.byte 49,1 ; 497.2
.byte 45,1 ; 537.5
.byte 44,1 ; 552.4
.byte 41,1 ; 584.9
.byte 38,1 ; 641.5
.byte 36,1 ; 662.9
.byte 34,1 ; 710.2
.byte 33,1 ; 736.5
.byte 255,255
LVLDONESND:
.byte 36,4 ; 662.9
.byte 0,9 ; 0.0
.byte 36,6 ; 662.9
.byte 0,8 ; 0.0
.byte 36,6 ; 662.9
.byte 0,15 ; 0.0
.byte 93,2 ; 261.7
.byte 94,5 ; 258.3
.byte 0,10 ; 0.0
.byte 82,12 ; 296.8
.byte 83,1 ; 292.4
.byte 0,7 ; 0.0
.byte 149,1 ; 164.3
.byte 139,10 ; 176.0
.byte 140,1 ; 174.4
.byte 139,1 ; 176.0
.byte 0,6 ; 0.0
.byte 183,1 ; 134.4
.byte 181,1 ; 135.3
.byte 0,4 ; 0.0
.byte 184,6 ; 133.5
.byte 0,7 ; 0.0
.byte 170,1 ; 144.1
.byte 169,1 ; 145.2
.byte 0,2 ; 0.0
.byte 171,3 ; 143.1
.byte 170,3 ; 144.1
.byte 169,1 ; 145.2
.byte 0,9 ; 0.0
.byte 156,1 ; 156.6
.byte 158,1 ; 155.4
.byte 0,3 ; 0.0
.byte 159,3 ; 154.2
.byte 158,4 ; 155.4
.byte 0,11 ; 0.0
.byte 135,1 ; 180.8
.byte 137,1 ; 179.2
.byte 0,3 ; 0.0
.byte 134,28 ; 182.4
.byte 0,12 ; 0.0
.byte 206,4 ; 119.1
.byte 205,5 ; 119.8
.byte 206,1 ; 119.1
.byte 205,4 ; 119.8
.byte 0,11 ; 0.0
.byte 12,5 ; 1988.6
.byte 255,255
GAMEOVERSND:
.byte 1,1 ; 19886.3
.byte 3,1 ; 6628.8
.byte 6,1 ; 3977.3
.byte 8,1 ; 2840.9
.byte 12,1 ; 1988.6
.byte 17,1 ; 1420.5
.byte 22,1 ; 1104.8
.byte 25,1 ; 947.0
.byte 28,1 ; 864.6
.byte 31,1 ; 764.9
.byte 34,1 ; 710.2
.byte 38,1 ; 641.5
.byte 43,1 ; 568.2
.byte 46,1 ; 523.3
.byte 49,1 ; 497.2
.byte 55,1 ; 441.9
.byte 61,1 ; 397.7
.byte 64,1 ; 382.4
.byte 67,1 ; 361.6
.byte 71,1 ; 342.9
.byte 75,1 ; 326.0
.byte 78,1 ; 310.7
.byte 86,1 ; 284.1
.byte 89,1 ; 272.4
.byte 92,2 ; 265.2
.byte 97,1 ; 251.7
.byte 101,1 ; 242.5
.byte 99,1 ; 245.5
.byte 103,1 ; 236.7
.byte 107,1 ; 228.6
.byte 111,1 ; 221.0
.byte 118,1 ; 207.1
.byte 115,1 ; 211.6
.byte 120,1 ; 202.9
.byte 124,2 ; 196.9
.byte 128,1 ; 191.2
.byte 130,1 ; 187.6
.byte 134,1 ; 182.4
.byte 137,1 ; 179.2
.byte 139,1 ; 176.0
.byte 142,1 ; 172.9
.byte 146,1 ; 167.1
.byte 145,1 ; 168.5
.byte 149,1 ; 164.3
.byte 153,1 ; 160.4
.byte 158,1 ; 155.4
.byte 159,1 ; 154.2
.byte 164,1 ; 149.5
.byte 159,1 ; 154.2
.byte 166,1 ; 147.3
.byte 169,1 ; 145.2
.byte 171,1 ; 143.1
.byte 173,1 ; 142.0
.byte 176,1 ; 139.1
.byte 179,1 ; 137.1
.byte 181,1 ; 135.3
.byte 188,1 ; 130.8
.byte 186,1 ; 131.7
.byte 192,1 ; 127.5
.byte 194,1 ; 126.7
.byte 196,1 ; 125.1
.byte 199,1 ; 123.5
.byte 200,1 ; 122.8
.byte 202,3 ; 121.3
.byte 201,1 ; 122.0
.byte 202,5 ; 121.3
.byte 201,1 ; 122.0
.byte 200,1 ; 122.8
.byte 199,1 ; 123.5
.byte 197,1 ; 124.3
.byte 195,1 ; 125.9
.byte 194,2 ; 126.7
.byte 191,1 ; 128.3
.byte 186,1 ; 131.7
.byte 184,1 ; 133.5
.byte 179,1 ; 137.1
.byte 174,1 ; 141.0
.byte 173,1 ; 142.0
.byte 168,1 ; 146.2
.byte 163,1 ; 150.7
.byte 161,1 ; 151.8
.byte 159,1 ; 154.2
.byte 158,6 ; 155.4
.byte 161,1 ; 151.8
.byte 164,1 ; 149.5
.byte 165,1 ; 148.4
.byte 168,1 ; 146.2
.byte 170,1 ; 144.1
.byte 171,1 ; 143.1
.byte 175,1 ; 140.0
.byte 176,1 ; 139.1
.byte 179,1 ; 137.1
.byte 181,1 ; 135.3
.byte 184,1 ; 133.5
.byte 189,1 ; 130.0
.byte 192,1 ; 127.5
.byte 190,1 ; 129.1
.byte 195,2 ; 125.9
.byte 0,29 ; 0.0
.byte 34,5 ; 710.2
.byte 0,9 ; 0.0
.byte 33,5 ; 736.5
.byte 0,9 ; 0.0
.byte 31,5 ; 764.9
.byte 0,20 ; 0.0
.byte 62,5 ; 389.9
.byte 0,6 ; 0.0
.byte 65,6 ; 375.2
.byte 0,7 ; 0.0
.byte 60,4 ; 405.8
.byte 0,12 ; 0.0
.byte 137,1 ; 179.2
.byte 135,5 ; 180.8
.byte 0,10 ; 0.0
.byte 159,8 ; 154.2
.byte 0,11 ; 0.0
.byte 133,10 ; 184.1
.byte 255,255
HISCORESND:
.byte 11,3 ; 2209.6
.byte 0,7 ; 0.0
.byte 11,4 ; 2209.6
.byte 0,6 ; 0.0
.byte 9,5 ; 2485.8
.byte 0,9 ; 0.0
.byte 28,6 ; 864.6
.byte 0,10 ; 0.0
.byte 11,8 ; 2209.6
.byte 0,8 ; 0.0
.byte 8,7 ; 2840.9
.byte 0,5 ; 0.0
.byte 7,6 ; 3314.4
.byte 255,255
GUNCLICK:
.byte 207,4 ; 118.4
.byte 0,1 ; 0.0
.byte 44,1 ; 552.4
.byte 39,1 ; 621.4
.byte 0,1 ; 0.0
.byte 205,1 ; 119.8
.byte 148,1 ; 165.7
.byte 196,1 ; 125.1
.byte 255,255
SHOTHIT:
.byte 192,2 ; 127.5
.byte 158,1 ; 155.4
.byte 195,1 ; 125.9
.byte 124,1 ; 196.9
.byte 191,1 ; 128.3
.byte 192,1 ; 127.5
.byte 120,1 ; 202.9
.byte 59,1 ; 414.3
.byte 199,1 ; 123.5
.byte 119,1 ; 205.0
.byte 199,1 ; 123.5
.byte 124,1 ; 196.9
.byte 91,1 ; 268.7
.byte 149,1 ; 164.3
.byte 50,1 ; 485.0
.byte 120,1 ; 202.9
.byte 149,1 ; 164.3
.byte 200,1 ; 122.8
.byte 24,1 ; 994.3
.byte 200,1 ; 122.8
.byte 207,1 ; 118.4
.byte 17,1 ; 1420.5
.byte 15,1 ; 1529.7
.byte 255,255

View File

@ -167,7 +167,7 @@ keen_check_head:
lda #1
sta KEEN_FALLING ; now falling
jsr head_noise
; jsr head_noise
collide_left_right:
;===================
@ -329,7 +329,7 @@ feet_on_ground:
sta KEEN_FALLING
sta KEEN_WALKING
jsr land_noise
; jsr land_noise
rts

View File

@ -1,81 +0,0 @@
;=====================
; entry music
entry_music:
rts
;=====================
; exit music
exit_music:
rts
;======================
; noise when jump
jump_noise:
rts
;======================
; noise when bump head
head_noise:
rts
;======================
; noise when land after jump
land_noise:
lda SOUND_STATUS
bmi done_land_noise
done_land_noise:
rts
;======================
; pickup noise
pickup_noise:
lda SOUND_STATUS
bmi done_pickup_noise
done_pickup_noise:
rts
;======================
; buzzer noise
; C, two octaves+C?
buzzer_noise:
lda SOUND_STATUS
bmi done_buzzer_noise
done_buzzer_noise:
rts
;======================
; enemy noise
enemy_noise:
lda SOUND_STATUS
bmi done_enemy_noise
done_enemy_noise:
rts
;======================
; laser noise
laser_noise:
lda SOUND_STATUS
bmi done_enemy_noise
done_laser_noise:
rts