Jump to content
IGNORED

Here's a quick look at Berzerk for ColecoVision...


TPR

Recommended Posts

43 minutes ago, Captain Cozmos said:

Now if I were a humble man with that device I would have it dismantled and replicated for the community to use in their own projects.

 

A quick search brought up this

https://github.com/epearsoe/Dynomite-II

Which I believe is the same guy who created the original MIB 238

Unfortunately there are a number of these DSD carts in the hands of CV only collectors, so Eric has a lot of extra work to recreate it as well as make some improvements to the software side. Indeed, Eric is the man behind numerous modern incarnations of old ADAM hardware including the MIB238, MIB238 WiFi, Dual Serial Card and SD-DDP. Also, John Lundy has done similar with the MegaCopy Redux, USB Mouse for the CV or ADAM and all the hardware builds of the items mentioned plus ADE and FujiNet devices.

 

Lot’s of possibilities with the DSD or DSD 2 when released and would be interesting to see if the resulting samples could somehow be used in a CV cart based game.

Link to comment
Share on other sites

6 minutes ago, NIAD said:

Unfortunately there are a number of these DSD carts in the hands of CV only collectors, so Eric has a lot of extra work to recreate it as well as make some improvements to the software side. Indeed, Eric is the man behind numerous modern incarnations of old ADAM hardware including the MIB238, MIB238 WiFi, Dual Serial Card and SD-DDP. Also, John Lundy has done similar with the MegaCopy Redux, USB Mouse for the CV or ADAM and all the hardware builds of the items mentioned plus ADE and FujiNet devices.

 

Lot’s of possibilities with the DSD or DSD 2 when released and would be interesting to see if the resulting samples could somehow be used in a CV cart based game.

If it comes to fruition I have no problems whatsoever to include digitized sound in my games as long as there is space.
I am still trying to figure out how they made squish'em.

Link to comment
Share on other sites

12 minutes ago, Captain Cozmos said:

If it comes to fruition I have no problems whatsoever to include digitized sound in my games as long as there is space.
I am still trying to figure out how they made squish'em.

All it does is set the highest possible frequency, and then change the volume as if it were a PCM channel. It shouldn't work, but it does. ;) Nearly all sampled sound on the SN works this way.

 

So if you want to play back sampled sound, decide how you're going to store it (for instance, packed nibbles). Write your playback routine (which extracts a nibble, OR's in the volume command, and writes it to the sound chip), then estimate its performance. 8khz is a good starting point. Convert the sample (linear conversion will do for most samples, but I recommend maximizing the volume in the editor of your choice. In some cases, it will sound better if it's louder still, despite the clipping. Depends on the sample). Then load it up and play it. Adjust the sample rate till it matches your playback routine, or till you're satisfied (playing a little fast sometimes sounds better anyway).

 

I realize there may be a few "how"s in there. Converting the sample is the trickiest part - I usually just write a tool that extracts the audio data from the wave file, divides to get the 4 bit value, and writes the result to a binary file which I can then include. If you save your WAVE file after editing as 8-bit unsigned, this will be the simplest to convert. You can find the WAVE file format header anywhere - since you saved it you presumably know all the header information and only need to get the offset to the data from there.

 

You are also welcome to use the conversion tool I wrote for Dragon's Lair on the TI - https://github.com/tursilion/tiaudioconvert

 

This does a non-linear, hand tuned conversion which works better generically, but you can do better than it with specific samples. This tool emphasizes volume and so does add some distortion that isn't strictly necessary, but as a result soft sounds are legible instead of just noise. 

 

The output of this tool is bytes that includes the 0x90 nibble for the sound command, so it's not packed at all. On the other hand, the bytes can be dumped straight to the sound chip. At any rate there's no player for the Coleco, so you'd still need to write that. But it might be a good place to start experimenting.

 

Remember your player needs to set the highest frequency on the pitch channel, so that'd be writing 0x81, 0x00 to the sound chip for the first channel, and muting all four (0x9f, 0xbf, 0xdf, 0xff).

 

 

  • Like 2
Link to comment
Share on other sites

Berzerk there is using the FFT approach - tear down the voice samples into frequencies and play them back as best you can. The Coleco's only got 3 tone channels to play back with - so some voices are clear and some voices are clear only after you know what they are saying. Laughs come across really well. The advantage is that you can play it back just like any other sound effect at 60hz.

 

Voices start to become clear with this approach around 5 voices, so with an SGM added you could use 5 or 6 voices and sound pretty good. With corresponding increase in data storage, of course, since you need frequency and volume data for every channel 60 times a second.

 

I have a tool for that too - part of my VGM compression toolchain. https://github.com/tursilion/vgmcomp2

 

The tool you want is voice2psg, and it will let you specify the number of channels you want to use. You can test the output in the command prompt (windows only, you would need to port for other OS's). There's also a quickplayer tool you can use to generate a cartridge image for the Coleco (I haven't tested the SGM side for a while, but it should work). If you don't want to use my player, the file format for the intermediate text file is fully documented and very easy to parse.

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

16 minutes ago, Tursi said:

All it does is set the highest possible frequency, and then change the volume as if it were a PCM channel. It shouldn't work, but it does. ;) Nearly all sampled sound on the SN works this way.

 

So if you want to play back sampled sound, decide how you're going to store it (for instance, packed nibbles). Write your playback routine (which extracts a nibble, OR's in the volume command, and writes it to the sound chip), then estimate its performance. 8khz is a good starting point. Convert the sample (linear conversion will do for most samples, but I recommend maximizing the volume in the editor of your choice. In some cases, it will sound better if it's louder still, despite the clipping. Depends on the sample). Then load it up and play it. Adjust the sample rate till it matches your playback routine, or till you're satisfied (playing a little fast sometimes sounds better anyway).

 

I realize there may be a few "how"s in there. Converting the sample is the trickiest part - I usually just write a tool that extracts the audio data from the wave file, divides to get the 4 bit value, and writes the result to a binary file which I can then include. If you save your WAVE file after editing as 8-bit unsigned, this will be the simplest to convert. You can find the WAVE file format header anywhere - since you saved it you presumably know all the header information and only need to get the offset to the data from there.

 

You are also welcome to use the conversion tool I wrote for Dragon's Lair on the TI - https://github.com/tursilion/tiaudioconvert

 

This does a non-linear, hand tuned conversion which works better generically, but you can do better than it with specific samples. This tool emphasizes volume and so does add some distortion that isn't strictly necessary, but as a result soft sounds are legible instead of just noise. 

 

The output of this tool is bytes that includes the 0x90 nibble for the sound command, so it's not packed at all. On the other hand, the bytes can be dumped straight to the sound chip. At any rate there's no player for the Coleco, so you'd still need to write that. But it might be a good place to start experimenting.

 

Remember your player needs to set the highest frequency on the pitch channel, so that'd be writing 0x81, 0x00 to the sound chip for the first channel, and muting all four (0x9f, 0xbf, 0xdf, 0xff).

 

 

You are a genius at these things.  I barely know sound editing at the basic level and I have yet to get any of your tools to work to my advantage such as your picture converter.

The systems are so similar in chips I could never understand why you never made a sound editor for the Colecovision that outputs the assembly data.

Coming up for Dino Eggs I have to resort to Purple's sound editor which means I have to install Java on a virtual machine.
It's 2022 going on 23 and the tools have to be updated.  I wish I stuck with C++ but I majored in Cobol on TI mainframes which tells you how old I am.

Link to comment
Share on other sites

I am looking at a picture of the device and it has an RCA jack to connect audio directly to the cartridge.
So exactly what is this deal?
How would it possibly connect unless there is some type of connection to an Data line?
Looking at the connector there is not much to work with.
Address and Data lines, ground and +5
 

Reading the Data lines as if it were rom information?
8 bit ADC (analog to digital convertor)

I am looking at half a dozen circuits on google.

 

If you figure out and publish the circuit then we all have digitized voices.

Edited by Captain Cozmos
Link to comment
Share on other sites

8 minutes ago, Captain Cozmos said:

I am looking at a picture of the device and it has an RCA jack to connect audio directly to the cartridge.
So exactly what is this deal?
How would it possibly connect unless there is some type of connection to an Data line?
Looking at the connector there is not much to work with.
Address and Data lines, ground and +5
 

Reading the Data lines as if it were rom information?

 

 

If you figure out and publish the circuit then we all have digitized voices.

The Dynomite II sound digitizer cartridge project by Eric Pearson was recently started. He already has a working prototype and is currently in the finishing touches. Follow it on his github as it progresses. 

https://github.com/epearsoe/Dynomite-II

 

Everything is available using the cartridge port to make it possible using an A/D converter to convert the audio to digital using the existing TriSyd Dynomite Sound Digitizer software from the original Dynomite by TriSyd Video Games.

Link to comment
Share on other sites

On 11/17/2022 at 7:39 AM, Captain Cozmos said:

The systems are so similar in chips I could never understand why you never made a sound editor for the Colecovision that outputs the assembly data.

I use my tools in all my Coleco projects. I guess I just come from a place of disliking tools that do everything for you, which means a little more effort is needed on the developer's side (the trade-off being flexibility).

 

Data is data, once it's output, what more massaging do you need? If you mean converting the binary file into an assembly include file, I use my bin2inc tool, which generates Z80 (or 9900) assembly or C files - https://github.com/tursilion/bin2inc

 

There are sample projects for using the various libraries in the archive, at least for vgmcomp2. I'm not sure what else I could provide. On the Coleco it's as simple as linking in libcolecovgm2. I guess if you had a specific question I could do a video showing how to do it step by step.

 

  • Like 1
Link to comment
Share on other sites

2 hours ago, Tursi said:

I use my tools in all my Coleco projects. I guess I just come from a place of disliking tools that do everything for you, which means a little more effort is needed on the developer's side (the trade-off being flexibility).

 

Data is data, once it's output, what more massaging do you need? If you mean converting the binary file into an assembly include file, I use my bin2inc tool, which generates Z80 (or 9900) assembly or C files - https://github.com/tursilion/bin2inc

 

There are sample projects for using the various libraries in the archive, at least for vgmcomp2. I'm not sure what else I could provide. On the Coleco it's as simple as linking in libcolecovgm2. I guess if you had a specific question I could do a video showing how to do it step by step.

 

Dude, you are way smarter than I am when it comes to the sound so at a later date I may have to ask for your help on a couple of things.
Until then I will focus within my lane.

Link to comment
Share on other sites

  • 2 weeks later...

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...