Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interest in Tandy/PC Jr. 3 voice sound? #26

Closed
maikmerten opened this issue Aug 9, 2020 · 2 comments
Closed

Interest in Tandy/PC Jr. 3 voice sound? #26

maikmerten opened this issue Aug 9, 2020 · 2 comments

Comments

@maikmerten
Copy link
Contributor

Before SoundBlaster became the prevalent standard for enhanced PC audio, machines such as the IBM PCjr and the Tandy line of PC-compatibles introduced 3-voice sound based on the Texas Instruments SN76489 programmable sound generator. This simple sound generator features three square-wave channels and one noise channel.

This sound standard was supported mostly by games ranging from the mid-to-late 1980s, for instance, by adventures from Sierra (e.g. Space Quest) and Lucas Arts (e.g Monkey Island). The sound of this device is very "chippy" - have a listen to e.g. https://www.youtube.com/watch?v=fyVlPjJWdxs&t=1332s

I happen to have written a compact implementation of the SN76489 a while back for my own nefarious purposes (https://github.com/maikmerten/spu32/blob/master/audio/sn76489_wb8.v) with a permissive license (MIT, but as author I can relicense to any license fitting for MiSTer) that should be easy to adapt to the ao486 SoC.

I estimate the resource usage to be around 300 logic cells, one write-only I/O port (0C0h), no interrupts, no DMA. For an ao486-newbie like myself this might be among the more manageable features to contribute. Given that in the DOS retro gaming community there's some interest in Tandy-sound ISA extension cards such as https://www.lo-tech.co.uk/wiki/Lo-tech_Tandy_Compatible_Sound_Adapter, I wonder if this is of interest for ao486 as well.

I'm aware that resource utilization of the FPGA device is already high and I assume that Tandy 3-voice sound support is not a commonly asked feature. Thus I'm interested in the opinions of the core developers before actually diving into integrating this into ao486. Also, it might happen that I have to ask some questions on how to glue the SN76489 into place (e.g., address decoding and where to mix the PCM samples into the other sound sources).

@sorgelig
Copy link
Member

Generally speaking i'm not against it. I never heard about PC games using this PSG.
But ao486 core is PC/AT oriented, not XT or PCJr, thus it may conflict by ports with those addons. Port C0 is used for DMA.
Probably it's better to port other PC (PC/XT) core to MiSTer and keep that as XT/PCJr compatible. i486 should be anyway too fast for those games

@maikmerten
Copy link
Contributor Author

The conflict on C0 explains why later Tandy machines moved access over to 1E0, which of course breaks software....

I think that overall speaking it is indeed wise not to mix up machine types too much. With IO port C0 there are resource conflicts and when moving things over to another port software won't be able to utilize the PSG without modification. So overall, I guess there's little point overall.

Thanks for your thoughts!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants