Simplest Sound Effects Library for BASIC programs
Posted: Thu Aug 13, 2020 12:08 am
Usage
Because of its simplicity the library can be stored in a 1K space below basic programs, starting at $0400.
Save the EFFECTS.PRG program in the directory where your BASIC program is stored, which would typically be in the same directory from where you are running the emulator.
Load library with LOAD command:
LOAD”EFFECTS.PRG”,8,1,$0400
Since this routine after the first run adds a new interrupt handler it is good practice to only load it once. It is therefore recommended to do a simple check:
IF PEEK($400)=0 THEN LOAD”EFFECTS.PRG”,8,1,$0400
And that is it. Now you only need to call the needed sound effect from the BASIC program with a simple SYS command. We have four different effects so four different addresses can be called:
SYS $400 | PING | Is designed for events like picking coins or rewards. |
---|---|---|
SYS $403 | SHOOT | Effect that can be used for shooting the gun or other weapon. |
SYS $406 | ZAP | Electricity zapping or perhaps a laser gun sound. |
SYS $409 | EXPLODE | Long explosion for when we successfully blow something up |
Alternative binary named EFFECTSHI.PRG that loads into memory at $9000 can be downloaded. Of course calls are then $9000 for PING, $9003 for SHOOT, $9006 for ZAP and $9009 for EXPLODE.
Full source code and walk through is available at my blog:
Demo video:
Updated version saves VERA state in the IRQ player which was before interfering with some graphical functions in BASIC programs like scrolling.