TROGDOR Posted December 29, 2007 Share Posted December 29, 2007 (edited) Has anyone ever compiled a library of Atari 2600 sound effects? I did some google searches, and also poked around on AA, but didn't find anything. If it doesn't exist, I'd like to at least make an ad-hoc collection here, in this post, which could possibly be compiled into a more formal collection later. Ideally, I'd like to have wave files of the sounds to go with the code, or perhaps a ROM that demonstrates all the sounds. In the meantime, the sounds I'm including below can be heard by playing the games from my blog. Each of my sounds assumes a SoundClk variable that starts at 0 and counts up once per frame. Splash - splashing sound from The Battle of Midway, when a bomb lands in the water. SplashSound LDA SoundClk CMP #16 BEQ DoneSound CMP #8 BCC SplashCreshendo EOR #%11111111 SplashCreshendo STA AUDV1 LDA #$08 ;Standard issue white noise. STA AUDC1 LDA #1 STA AUDF1 The Ominous Grumble - This is one of my favorite trademark sounds that I've used in Master of Arcturus and Hunt the Wumpus. In Hunt the Wumpus, you'll hear this sound when the Wumpus eats you. ComputerConquerSound LDA #$03 ;Ominous grunge tone. STA AUDC0 LDA #$1F ;Lowest possible note. STA AUDF0 LDA SoundClk CMP #255 BEQ DoneSound CMP #128 BCC Decreshendo1 Creshendo1 LDA #255 SBC SoundClk Decreshendo1 LSR LSR LSR STA AUDV0 JMP OverScanWait Launching and Landing - From Master of Arcturus. LaunchLandSound LDA #8 STA AUDC0 LDA SoundClk CMP #64 BCC ContinueSound0 CMP #96 BCS DoneSound EOR #%11111111 ADC #96 LSR STA AUDV0 OverScanWaitHop JMP OverScanWait ContinueSound0 LSR STA Temp4 LSR STA AUDV0 LDA Temp4 LDX SoundPtr CPX #2 BEQ LandingSound LSR ;Launching sound alteration. EOR #%11111111 ;Makes tone go up instead of down. ADC #32 ;Converts 64 -> 96 to 32 -> 16. LandingSound STA AUDF0 JMP OverScanWait Rubber band / Bow Firing - The bow sound when an arrow is fired in Hunt the Wumpus. PlayArrowShot LDA #7 STA AUDC0 LDA SoundClk CMP #8 BEQ DoneSound CLC ADC #4 STA AUDF0 EOR #%11111111 STA AUDV0 JMP DoneSoundCheck The Ion Pulse Cannon - From Stellar Fortress. This has a nice beefy sound to it. I wanted something more powerful than the pea-shooter from Asteroids. ; Sound 1: Ion Pulse Cannon. ; Volume fades as pitch goes from high to low. LDA #$0F STA AUDC1 LDA SoundClk CMP #32 BEQ DoneSound STA AUDF1 EOR #%11111111 AND #%00011111 LSR STA AUDV1 INC SoundClk JMP EndSoundQueue Here are sound ideas I'm currently working on. Suggestions are welcome. - Realistic water dripping. - A cricket chirping. - A frog croaking. - A person stumbling over rocks in the darkness. - A dragon breathing. Similar to the dragon breathing sound from AD&D for the Intellivision. - A rubber ball ricochet sound. I may be able to produce this sound by tweaking the pitch of the bow sound. Feel free to post your sounds here. You're welcome to use my sounds in your code, as long as you give credit in the comments. Edited December 29, 2007 by TROGDOR 3 Quote Link to comment Share on other sites More sharing options...
SeaGtGruff Posted December 29, 2007 Share Posted December 29, 2007 Has anyone ever compiled a library of Atari 2600 sound effects? I did some google searches, and also poked around on AA, but didn't find anything. If it doesn't exist, I'd like to at least make an ad-hoc collection here, in this post, which could possibly be compiled into a more formal collection later. Great idea, thanks for posting these! Michael Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted December 29, 2007 Share Posted December 29, 2007 Hi there! Here's my SFX driver from Seawolf, called once per frame: DriveSFX LDY FXType,X DEC FXTimer,X BPL ContinueEffect LDA spawn,Y BMI SFXOver TAY JSR UseChannel1 SFXOver INC FXTimer,X LDA #$00 STA AUDV0,X BEQ ChannelDone ContinueEffect LDY FXType,X LDA FXFreq,X CLC ADC addf,Y STA FXFreq,X LSR LSR LSR STA AUDF0,X LDA FXVol,X CLC ADC addv,Y AND #$7F STA FXVol,X LSR LSR LSR STA AUDV0,X ChannelDone RTS To launch a SFX you'd just load the desired SFX number into Y and call this routine: DoSFX LDX #$01 LDA FXTimer CMP FXTimer+1 BCS UseChannel1 LDA pingCounter BNE UseChannel1 LDX #$00 UseChannel1 LDA audc,Y STA AUDC0,X LDA startf,Y STA FXFreq,X LDA startv,Y STA FXVol,X LDA length,Y STA FXTimer,X STY FXType,X RTS Here's a typical call: LDY #$05 JSR DoSFX Here's the required variables: FXTimer ds 2 FXType ds 2 FXFreq ds 2 FXVol ds 2 And here's the data for all SFX used in Seawolf: ; TSFX Values ; Shot,Bink,Mineexp,Shipsink,Shipexp,Subsink,restock,charge ;000 0 Square = 4 ;001 1 Bass = 6 ;010 2 Pitfall = 7 ;011 3 Noise = 8 ;100 4 Buzz = 15 ;101 5 Lead = 12 ;110 6 Saw = 1 ;111 7 Engine = 3 addf .byte 0 , 0 , 1 , -128 , 2 , -32 , 1 , -128 , 2 , -4 , 0 addv .byte 1 , 0 , 0 , -2 , 0 , -4 , 0 , -2 , 0 , 0 , 1 audc .byte 8 , 4 , 8 , 8 , 8 , 12 , 8 , 8 , 8 , 4 , 12 startf .byte 20*8-1 , 6*8-1 , 8*8-1 , 0*8-1 , 20*8-1 , 32*8-1 , 8*8-1 , 0*8-1 , 20*8-1 , 16*8-1 , 20*8-1 startv .byte 2*8-1 , 15*8-1 , 15*8-1 , 15*8-1 , 15*8-1 , 15*8-1 , 5*8-1 , 9*8-1 , 5*8-1 , 15*8-1 , 2*8-1 length .byte 3*8-1 , 1*8-1 , 2*8-1 , 5*8-1 , 3*8-1 , 7*8-1 , 2*8-1 , 4*8-1 , 2*8-1 , 2*8-1 , 3*8-1 spawn .byte $FF , $FF , 6 , 7 , 8 , $FF , $FF , $FF , $FF , $FF , $FF As you can see, it requires 7 bytes for each SFX and 5 bytes for launching one. I'm very happy with this engine, having it used (with slight modifications) for Seawolf, Crazy Balloon and Colony 7. It will automatically find out which of the channels is free or the least busy one and launch a new SFX there. A Seawolf speciality is the spawning of SFX, that way a SFX can launch another when it's done. So this is how the explosions have echoes, when the big explosion SFX will spawn a smaller one. The only other custom bit in the driver is for the Sonar ping, which was running some separate code ripped from Polaris 1 Quote Link to comment Share on other sites More sharing options...
8bitPoet Posted February 27, 2023 Share Posted February 27, 2023 I would love to revive this thread and get a bunch more sound effects contributions - or maybe there's an existing sound repository that I don't know about. I'm starting to experiment with some custom sounds using the TIATracker. Hopefully my results will be worth sharing. Quote Link to comment Share on other sites More sharing options...
+Karl G Posted February 28, 2023 Share Posted February 28, 2023 On 2/26/2023 at 10:26 PM, 8bitPoet said: I would love to revive this thread and get a bunch more sound effects contributions - or maybe there's an existing sound repository that I don't know about. Check out this TIA sound effects collection from RevEng in the file soundtest.bas. It's in 7800 sound data format, but it's easy enough to extract the values you need to put the data in the format you would like for a 2600 project. I've raided the collection many times for both 7800 and 2600 projects. Edit: Link for forum topic: 4 Quote Link to comment Share on other sites More sharing options...
+Al_Nafuur Posted February 28, 2023 Share Posted February 28, 2023 2 hours ago, Karl G said: Check out this TIA sound effects collection from RevEng in the file soundtest.bas. It's in 7800 sound data format, but it's easy enough to extract the values you need to put the data in the format you would like for a 2600 project. I've raided the collection many times for both 7800 and 2600 projects. Do you have a link to the collection? Quote Link to comment Share on other sites More sharing options...
vhzc Posted February 28, 2023 Share Posted February 28, 2023 Just now, Al_Nafuur said: Do you have a link to the collection? It is included in 7800basic, in the samples folder. 1 1 Quote Link to comment Share on other sites More sharing options...
8bitPoet Posted February 28, 2023 Share Posted February 28, 2023 13 minutes ago, Al_Nafuur said: Do you have a link to the collection? https://github.com/7800-devtools/7800basic/blob/master/samples/soundtest/soundtest.bas Thanks @Karl G - This is great! There are 115 sounds in this collection: salvo laser shot spcinvader shot berzerk r.death echo 1 echo 2 jumpman cavalry alien trill 1 alien trill 2 pitfall jump adventure pickup adventure drop adv dragon bite adv dragon slain bling drop medium electro bump explosion humanoid transporter twinkle electro switch nono bounce 70s tv computer alien life chirp plonk spawn maser rubber mallet alien kitty electro punch drip ribbit wolf whistle cab whistle jumpo pulse cannon spring buzz bomb bass bump hop hop distressed ouch laser recoil electrosplosion hop hip hop hip quick bass bump 2 pickup prize distressed 2 pew pew denied teleported alien klaxon crystal chimes one up baby wah got the coin baby ribbit squeek whoa got the ring yahoo war cry down the pipe power up falling eek uh oh another up bubble up jump 1 plain laser alien coo simple buzz jump 2 jump 3 dunno snore uncovered door pound distressed 3 eek 2 rubber hammer alien buzz anotherjumpman anotherjump dies long gong silver strum dropped alien aggressor electro switch 2 good item baby ribbit hop distressed 4 ha ha ha yeah arf arf activate ha ha ha 2 wilhelm poof1 poof2 dragit roarcheep roarroar deeproar echobang tom clopclop museboom bigboom thud bump shouty quack 3 Quote Link to comment Share on other sites More sharing options...
+Karl G Posted March 1, 2023 Share Posted March 1, 2023 JFYI, I have made a bB version of this sound collection: 1 Quote Link to comment Share on other sites More sharing options...
Erik Zimmermann Posted April 7, 2023 Share Posted April 7, 2023 WOW ! Quote Link to comment Share on other sites More sharing options...
LatchKeyKid Posted April 7, 2023 Share Posted April 7, 2023 Thanks for bumping this. I haven't even begun starting to think about sound yet beyond some pie in the sky "I'd like to have some!" thoughts, lol. 1 Quote Link to comment Share on other sites More sharing options...
+MarcoJ Posted April 9, 2023 Share Posted April 9, 2023 I like to have look-up table based sounds in my games, where each frame updates AUDC0 and AUDF0 with a byte of data. Typically, I pack these with the AUDC0 data in the left Nibble and AUDF0 data in the right nibble. This gets the full range of AUDC0 values, but only half the frequency values. It's also possible to have a 3-bit AUDC0 and 5-bit AUDF0 to get the full range of frequencies at the expense of having less AUDC0 types to select. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.