VOGONS


First post, by CachoAlpuy

User metadata
Rank Newbie
Rank
Newbie

I would like to know with the people more experienced with these topics if the following could be possible.

As the CMS uses square waves and noise to generate sound, could a TSR be implemented to capture the commands being sent to the emulated CMS and be translated to OPL3 commands and then sent to a real OPL3 hardware?

Reply 1 of 14, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

Not sure...
OPL3 provides 5 percussion (noise) channels.
SAA1099 provides 6 channels, CMS/GB has two chips = 12 channels... but can they all be used for noise?

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 2 of 14, by Error 0x7CF

User metadata
Rank Member
Rank
Member

SAA1099 has two noise channels per chip according to the datasheet.

Attachments

  • Filename
    SAA1099_Philips.pdf
    File size
    1001.56 KiB
    Downloads
    48 downloads
    File comment
    datasheet
    File license
    Fair use/fair dealing exception

Old precedes antique.

Reply 3 of 14, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

So it seems possible...
Either recreate the fuctionality of CMSDRV/SBC-CMS drivers, or use V86 mode to capture direct I/O to CMS ports...

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 5 of 14, by Jo22

User metadata
Rank l33t++
Rank
l33t++
CachoAlpuy wrote on 2022-01-22, 02:28:

Is there already a project to do this?

Hi! Kind of, I guess. Temu emulates a SN76496 (aka Tandy 3-voice).

https://github.com/volkertb/temu-vsb

The SN chip was comparable to the popular AY-3-8910 PSG in terms of sound.
Which in turn was a similar to the C/MS chips (also PSGs).

Another interesting chip was the Microchip AY8930 as used in the Covox Sound Master, btw.
I think it would be really neat, if we could emulate a Sound Master through a TSR and a Covox Speech Thing one day! 😁

https://en.wikipedia.org/wiki/Texas_Instruments_SN76489

https://en.wikipedia.org/wiki/General_Instrument_AY-3-8910

https://en.wikipedia.org/wiki/Philips_SAA1099

https://en.wikipedia.org/wiki/List_of_sound_chips

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 6 of 14, by carlostex

User metadata
Rank l33t
Rank
l33t

I honestly don't see the need or the appeal, CMS chips are cheap, i'd rather see a combo ISA card that would combine Tandy + CMS + SID + MPU-401. Lots of bases covered there.

However if you wanna do that, more power to you, i guess.

Reply 7 of 14, by Shreddoc

User metadata
Rank Oldbie
Rank
Oldbie

Sounds like a cool project. There are a lot of people (including me) who would enjoy dabbling in CMS functionality, if the functionality was freely available in software.

The issue isn't the price of the CMS chips. It's the prices and rarity of the sound cards to put the CMS chips into.

Currently CMS functionality is trapped with the tiny minority who have compatible Creative cards. The prices and rarity of that limited source grow faster as time progresses. We look with great envy at those who obtained such cards even merely 5 years ago - at prices and availabilities which seem like a wonderful dream, now.

There's a "Parts Only" CT1350 on ebay right now for over $100. 🤣

Reply 8 of 14, by Jo22

User metadata
Rank l33t++
Rank
l33t++

I also like the idea of making a SB Pro or SB16 more backwards compatible with an original SB 1.x or 2.0.
Temu and/or his VSB brother did use the Sound Blaster DAC, after all.

So if a TSR could provide that compatibility, it would be nice and useful for VMs with emulated SBs.

Or ancient emulators on Amiga/Macintosh platforms.
These too do support PC Speaker and SB Pro emulation (thinking of Virtual PC 3, 4 etc).

That being said, writing such an emulator isn't that hard.
The hard work, the glue logic (EMM386/QEMM support and i/o interception) was made already available through Temu.
Now it's necessary to alter the parameters for Tandy emulation to match the SAA1099s chips.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 9 of 14, by root42

User metadata
Rank l33t
Rank
l33t
Shreddoc wrote on 2022-01-27, 21:43:

The issue isn't the price of the CMS chips. It's the prices and rarity of the sound cards to put the CMS chips into.

There is the SnarkBarker... However it will cost you ~100USD with all parts and PCB and assembly, too.

Then there is the MUS1099, however it has extremely noisy output. Matze did a hack on his one to make it less noisy with a separate 5V supply derived from the +12V line, IIRC.

He also made a smaller prototype with less noisy output: https://www.retrokits.de/index.php/mus-2020-p … e-blaster-card/

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 10 of 14, by root42

User metadata
Rank l33t
Rank
l33t

PS: One problem with emulating the CMS is: the YM3812 can't produce square waves. It has an oscillator waveform that approximates it, but it still uses the sine wave as the base shape. Hence it will never sound like a true SAA1099. It will sound much smoother.

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 11 of 14, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
root42 wrote on 2022-01-28, 08:16:

PS: One problem with emulating the CMS is: the YM3812 can't produce square waves.

That's why the idea is to use YMF262 a.k.a. OPL3.

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 12 of 14, by Tiido

User metadata
Rank l33t
Rank
l33t

The much harder problem is that you cannot produce the noise channel output on any of the FM chips. You can produce few pitches of white noise but nothing like the PSG chips can with their much more capable noise channels.

Squarewaves can be produced with just two ops directly on any FM, one has odd multilpier setting and self feedback enabled and you get squares. Change multiplier to even and you get sawtooth, very easy.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 13 of 14, by digger

User metadata
Rank Oldbie
Rank
Oldbie
Tiido wrote on 2022-01-28, 18:38:

The much harder problem is that you cannot produce the noise channel output on any of the FM chips. You can produce few pitches of white noise but nothing like the PSG chips can with their much more capable noise channels.

Ah, so if I understand correctly, the noise generators on CMS allowed for much better (non-music) sound effects than OPL2/OPL3, at least in some ways? Such as gunshots or explosions? And perhaps more interesting percussions as well?

I wonder what games took specific advantage of that back in the day. Some earlier ("pre-soundblaster") games used CMS and OPL2 only for music, using the internal speaker for crude sound effects.

Reply 14 of 14, by Tiido

User metadata
Rank l33t
Rank
l33t

There's a LFSR type generator to produce white noise with at least 32 pitch levels on AY and CMS (and 1024 on TI PSG and SEGA VDP PSG). On FM chips you create noise by overmodulating an operator but it produces only fixed pitch white noise, and there isn't any good way to control the pitch as it is a tradeoff between noes and tonality.

I am not familiar with the CMS games to know what all they did but I imagine they did similar stuff like SMS and NES where noise channel plays integral role in many SFX and music tracks.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜