Jump to content
IGNORED

7800 TIA SFX Library, sound2tia


RevEng

Recommended Posts

If you haven't already, give a try to "-a 1" and "-a 2" for ones that don't work with the default. The different algorithms pan out differently.

 

It could also be that I developed an ear for ones that definitely won't work, as there are some I don't even bother trying, so my success rate is greater.

Link to comment
Share on other sites

On 5/20/2020 at 3:53 PM, RevEng said:

Yeah, the devil is in the details. If it's pokey interrupt driven in any way, like I'm thinking, then we can't do it on the 7800. At least not with current cart-based pokey designs. No idea about XM.

Sheddy confirms... IRQ interrupts are used on the XE Space harrier.   Might work on XM but not on cart POKEY.  Source code is in the Space Harrier thread.

  • Like 2
Link to comment
Share on other sites

Sheddy says

 

Quote

Interesting. I don't know much about the 7800, but 

https://www.google.com/url?sa=t&source=web&rct=j&url=https://sites.google.com/site/atari7800wiki/interrupts&ved=2ahUKEwi47cn1jMjpAhX3WxUIHf2YAwQQFjAAegQIARAC&usg=AOvVaw0527HBuVvspSlKMVWvdh_I&cshid=1590172343633

suggests that there is an interrupt line to the cartridge which could presumably be used by a pokey in there. Hopefully the XM has this in mind too, but I can't remember coming across that detail in my occasional reads on the 7800 forums here.

 

Probably the thing to worry about most with IRQ samples is it needs to be called at fairly precise times for reasonable sound quality. It is lower priority than NMI so display list interrupts take precedence and also you may get Maria DMA stealing cycles at an irregular time. Antic seems to be not too terrible at hogging cycles

Make of this what you will ...

Edited by Synthpopalooza
  • Like 1
Link to comment
Share on other sites

Yep, the interrupt line is there, just no pokey designs use it. If it wasn't there at the cart port, there would be no chance the XM would have it... when I get a chance I'll write up a test, but I have a few other things in the queue first.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 6 months later...
  • 4 weeks later...
  • 1 year later...

Do you have any interest in sound effect submissions to add to the library? I made a quack sound that I'm reasonably happy with. Feel free to add it, tweak it, or ignore it.  :D

 

 data sfx_quack
 $10, $10, $00
 $15, $06, $08
 $15, $06, $09
 $15, $06, $0A
 $14, $06, $0B
 $14, $06, $0C
 $14, $06, $0D
 $14, $06, $0E
 $13, $06, $0F
 $13, $06, $0F
 $13, $06, $0F
 $13, $06, $0F
 $13, $06, $0F
 $00,$00,$00
end

 

  • Like 5
Link to comment
Share on other sites

I did a bit automatic conversion to put the sounds in cc65 asm format (for the ca65 assembler).

 

The way I used this in Pirate Cove was to make a library of all sounds and then let the linker pick up the used sounds.

 

Linker:

sfxobjects= \
        sfx_70stvcomputer.o \
        sfx_activate.o \
        sfx_advbite.o \
        sfx_advdragonslain.o \
        sfx_advdrop.o \
        sfx_advpickup.o \
...

sfxlib = sfx.lib



$(sfxlib) : $(sfxobjects)
        $(AR) r $(sfxlib) $(sfxobjects)

Oh, $(AR) is ar65.
 

And then just add sfx.lib to the cl65 command line.

$(target) : $(objects) $(objects160)
        $(CL) -t atari7800 -o $@ --force-import __EXEHDR__ -m piratecove.map $(objects) $(objects160) $(sfxlib) -l atari7800
        sign7800 -w $(target)

$(CL) is cl65


 

I also wrote a cc65 player calles sfx.s.

 

As I don't have a Atari 7800 public repo I wonder if you have interest to keep the cc65 versions of the sfx_sounds somewhere? Or perhaps it is enough that you can download the archive from this post.

 

 

sfxlib.zip sfx.s extzp.s extzp.inc

  • Like 3
Link to comment
Share on other sites

4 hours ago, karri said:

As I don't have a Atari 7800 public repo I wonder if you have interest to keep the cc65 versions of the sfx_sounds somewhere? Or perhaps it is enough that you can download the archive from this post.

:thumbsup: I've added a link to your post in the first post, for better visibility.

 

For the code I host in my 7800 repo, I try to offer some minimal level of support. My lack of familiarity with cc65 is a problem there.

 

  • Thanks 1
Link to comment
Share on other sites

Just now, RevEng said:

:thumbsup: I've added a link to your post in the first post, for better visibility.

 

For the code I host in my 7800 repo, I try to offer some minimal level of support. My lack of familiarity with cc65 is a problem there.

 

I am a bit selfish in this cc65 porting effort. The goal is really just Wizzy. I want to use the libraries I am used to. So I may not be a "maintainer" of this port for long. But at least there is other guys who are familiar with cc65 so perhaps it attracts some others to try their luck with the 7800.

  • Like 1
Link to comment
Share on other sites

1 hour ago, karri said:

I am a bit selfish in this cc65 porting effort. The goal is really just Wizzy. I want to use the libraries I am used to. So I may not be a "maintainer" of this port for long. But at least there is other guys who are familiar with cc65 so perhaps it attracts some others to try their luck with the 7800.

Nothing wrong with that at all. Good of you to share!

Link to comment
Share on other sites

  • 10 months later...
  • 2 months later...

Where can I find the updated .bas that corresponds with the version in the js7800 link? The source in the first post as well as in github has 116 sound effects, whereas the version in the js7800 link has 183 different effects.

Link to comment
Share on other sites

13 minutes ago, Karl G said:

Where can I find the updated .bas that corresponds with the version in the js7800 link? The source in the first post as well as in github has 116 sound effects, whereas the version in the js7800 link has 183 different effects.

183! I think I missed that too!

Link to comment
Share on other sites

On 5/9/2023 at 10:00 AM, Karl G said:

Where can I find the updated .bas that corresponds with the version in the js7800 link? The source in the first post as well as in github has 116 sound effects, whereas the version in the js7800 link has 183 different effects.

I goofed. It's actually just 116 sounds. I've corrected the first post to include the correct tally.

 

I fooled myself that it was a hex tally in the gui, due to the high nibble incrementing past the decimal range. 🤷

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

Hi,

May I use your soundtest library to make a TIA sound example for cc7800 (keeping your copyright obviously) ? These sounds are very cool... Are they all generated with sound2tia ? The pitfall ones for instance went through your tool or from disassembly of the game ?

Link to comment
Share on other sites

6 hours ago, bsteux said:

Hi,

May I use your soundtest library to make a TIA sound example for cc7800 (keeping your copyright obviously) ? These sounds are very cool... Are they all generated with sound2tia ? The pitfall ones for instance went through your tool or from disassembly of the game ?

Help yourself! As to the copyright, consider the program and sounds to be public domain, or equivalent in jurisdictions that don't allow new works to be placed into the public domain. Anybody can do anything with them.

 

A few of the sounds were hand-crafted, the Adventure and Pitfall ones were lifted from the games by just watching the audio registers change in Stella (set a trap in the debugger and record what values are written each frame), but the bulk of the sounds come from sound2tia conversions. TBH getting good stuff from sound2tia is much more miss than hit, but often enough I'll get something unexpected and more interesting than the original. The sound2tia ones are generally more organic sounding, which has its ups and downs - I sometimes have to clean them up by hand, as there's often a glitch here and there.

 

It's not featured in any sounds in the library, but i have another technique for copying sounds from arcade games that I've found very effective. I get a WAV capture of the sound, and then using Audacity I time stretch the sample 10x or so while retaining the same pitch. Then I do a spectrum analysis on any unique segment to pick out the fundamental frequency. From there I just use a TIA frequency table to generate the sound, and my own ears as to which distortion would match the original.

  • Like 7
Link to comment
Share on other sites

On 6/15/2023 at 5:44 PM, RevEng said:

Help yourself! As to the copyright, consider the program and sounds to be public domain, or equivalent in jurisdictions that don't allow new works to be placed into the public domain. Anybody can do anything with them.

 

A few of the sounds were hand-crafted, the Adventure and Pitfall ones were lifted from the games by just watching the audio registers change in Stella (set a trap in the debugger and record what values are written each frame), but the bulk of the sounds come from sound2tia conversions. TBH getting good stuff from sound2tia is much more miss than hit, but often enough I'll get something unexpected and more interesting than the original. The sound2tia ones are generally more organic sounding, which has its ups and downs - I sometimes have to clean them up by hand, as there's often a glitch here and there.

 

It's not featured in any sounds in the library, but i have another technique for copying sounds from arcade games that I've found very effective. I get a WAV capture of the sound, and then using Audacity I time stretch the sample 10x or so while retaining the same pitch. Then I do a spectrum analysis on any unique segment to pick out the fundamental frequency. From there I just use a TIA frequency table to generate the sound, and my own ears as to which distortion would match the original.

Thank you for the explanations. I'm learning a lot from that. I've started to make an example playing your sounds in C. Still to be tested on real hardware...

  • Like 2
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...