- Sound effects by Bob DeCrescenzo!
- Added a hyperspace cool-down timer to eliminate infinite-hyperspace. Before you could hold down and continually warp out/warp in w/out risk of collision and only let go of the joystick once you warped into a safe spot. Cool-down time is currently 5 seconds.
- A couple of the small killer satellites could explode in the wrong color in monochrome games. This has been fixed.
- Fixed a couple minor issues in the menu - the kids down option wasn't always forced to shields, and the down option would flash colors instead of staying a muted grey.
- Revised the heartbeat speeds.
- Revised the sound effect routines to compact the sample data.
My original test sound effects always changed the frequency and/or volume and/or control (sound type) on every frame, so the original sound effect routines used an implied duration of 1 frame per sample. Bob's sound effects often held values over multiple frames, so I modified the sound driver to support duration to shrink the amount of space the samples would take. The killer satellite entrance sound effect is a good example of the change, it originally looked like this:
SoundFreq: ; 0-31 0 = highest freq. .byte 0,$0e,$0e,$0e,$29,$29,$29,$0e,$0e,$0e,$29,$29,$29 .byte $0e,$0e,$0e,$29,$29,$29,$0e,$0e,$0e,$29,$29,$29 .byte $0e,$0e,$0e,$29,$29,$29,$0e,$0e,$0e,$29,$29,$29 .byte $0e,$0e,$0e,$29,$29,$29,$0e,$0e,$0e,$29,$29,$29 .byte $0e,$0e,$0e,$29,$29,$29,$0e,$0e,$0e,$29,$29,$29 .byte $0e,$0e,$0e,$29,$29,$29,$0e,$0e,$0e,$29,$29,$29 ; Killer Satellite Entry SoundVol: ; upper nybble AUDC, lower nybble volume. $00 = end of sound effect. .byte 0,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8 .byte $c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8 .byte $c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8 .byte $c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8 .byte $c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8 .byte $c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8,$c8 ; Killer Satellite Entry
SoundFreq data only uses the lower 5 bits to hold the frequency, so I added the ability to use the upper 8 bits to hold a duration. After that, 50 bytes was able to hold what originally resided in 146 bytes.
D1 = 0 D2 = 1*32 D3 = 2*32 D4 = 3*32 D5 = 4*32 D6 = 5*32 D7 = 6*32 D8 = 7*32 SoundFreq: ; 0-31 0 = highest freq. ; upper 3 bits control duration, 0 = 1 frame, 1 = 2 frames... 7=8 frames .byte 0, D3+$0e, D3+$29, D3+$0e, D3+$29 .byte D3+$0e, D3+$29, D3+$0e, D3+$29 .byte D3+$0e, D3+$29, D3+$0e, D3+$29 .byte D3+$0e, D3+$29, D3+$0e, D3+$29 .byte D3+$0e, D3+$29, D3+$0e, D3+$29 .byte D3+$0e, D3+$29, D3+$0e, D3+$29 ; Killer Satellite Entry SoundVol: ; upper nybble AUDC, lower nybble volume. $00 = end of sound effect. .byte 0, $c8, $c8, $c8, $c8 .byte $c8, $c8, $c8, $c8 .byte $c8, $c8, $c8, $c8 .byte $c8, $c8, $c8, $c8 .byte $c8, $c8, $c8, $c8 .byte $c8, $c8, $c8, $c8 ; Killer Satellite Entry
ROMs
Source
18 Comments
Recommended Comments