VOGONS


Covox Sound Master Reverse Engineering / Replica

Topic actions

Reply 260 of 269, by Physikant

User metadata
Rank Newbie
Rank
Newbie

Of course I learned a lot from what fagear did and it especially helped with the GAL code. Without fagear, this would have been a lot harder. My only motivation was getting the card, not earning money. Im selling my spare, not a product. So yes, I profited from fagear here, but not financially. Big thanks to him!

Oh by the way fagear: it looks like your assumption of BASE+0x04 and BASE+0x05 for the joystick is wrong. The 1989 version of sim city supports covox sound master joystick, but never reads these addresses when configured to work with it.
My copy of the CSM works flawlessly with your (really nice!) testing tool, but not with sim city when it comes down to joystick support.

Reply 261 of 269, by Fagear

User metadata
Rank Member
Rank
Member
Physikant wrote on 2024-06-15, 13:51:

it looks like your assumption of BASE+0x04 and BASE+0x05 for the joystick is wrong. The 1989 version of sim city supports covox sound master joystick, but never reads these addresses when configured to work with it.

Hmmm, interesting. I didn't find any game to test joysticks with, so I've never tested those ports anywhere except my own tool.
Thanks, I'll look into Sim city for testing.

Physikant wrote on 2024-06-15, 13:51:

My copy of the CSM works flawlessly with your (really nice!) testing tool

Nice!

New BIG soundcard: FMonster.
Covox Sound Master replica
Innovation SSI-2001 replica & DuoSID.
My audio/video collection.

Reply 262 of 269, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

By the way:
Is anybody here interested in untested SN76489 to AY-3-891x parameter conversion code?
Both my AY-3-891x hardware projects, a compact AY-LPT and a Mindscape Music Board compatible, are currently dormant, but I already have some code.

Reply 263 of 269, by Physikant

User metadata
Rank Newbie
Rank
Newbie

Hey Fagear,
you had earlier in this thread help from the programmer Cerenas and got a version of dos box with I/O-logging. Do you still have that? Perhaps we could run it with the first sim city with only joystick (no sound) enabled and see what is accessed?

Reply 264 of 269, by FreddyV

User metadata
Rank Oldbie
Rank
Oldbie

Hi,

Emulate this board on PicoMEM/PicoGUS may be fun to add 😀

Reply 265 of 269, by MobyGamer

User metadata
Rank Member
Rank
Member

OP: While it won't help with your reverse-engineering effort, I made a video on the history of the Mindscape Music Board, maybe you'll find it interesting: https://youtu.be/Eeo4INoGyRY

Reply 266 of 269, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

On a similar note:

I have written a Mindscape Music Board implementation for PCem.
You can find it here: https://github.com/sarah-walker-pcem/pcem/pull/295

Preliminary support for Mindscape Music Board and Covox sound master in Planet X3 can be found here: https://github.com/planet-x3/px3_ose/tree/obscure-hw
EDIT: Instead of dropping the noise channel, it is now played on the second chip, where available.

The code in there translates SN76489 parameters to AY-3-891x parameters in real-time and could surely be reused somewhere else.

Reply 267 of 269, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

And this is an incomplete Covox Sound Master implementation for PCem: https://github.com/roybaer/pcem/tree/covox-sound-master

It supports an AY-3-8910 or YM2149 PSG and a DAC -- both of them in direct-drive mode -- as well as channel C muting, stereo volume and stereo mode control.
Support for DMA, IRQs and joysticks is still missing, and Ayumi as the underlying synthesizer unfortunately cannot emulate the AY8930.

Reply 268 of 269, by FreddyV

User metadata
Rank Oldbie
Rank
Oldbie

Hi,

May I use the reverse engineering work to add it to the PicoMEM one day ?

I already added Mindscape

Reply 269 of 269, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

Addendum to my Covox Sound Master emulation in PCem:

  1. It was broken due to a last minute change → Don't deploy too late in the evening!
  2. The updated version works and emulates the quirks of the AY-3-8910 and YM2149 well enough for CSM_TEST's auto-detection routines.
  3. All AY8930, DMA, IRQ and joystick functionality is still missing.

Regarding the auto-detection routines:
They write an out-of-bounds register address and then read a value to distinguish between AY-3-8910 and KC89C72.
The conceptual problem I noticed with that approach is that writing an out-of-bounds register address is supposed to switch the PSG's data bus to high-impedance mode, such that PSG's with different mask-programmed register blocks can be used in parallel.
The values expected by CSM_TEST might therefore merely be the result of an almost floating bus.
For the AY-3-8910 in particular, it expects the value of the register index (not the register value) just written.
It should be investigated whether that is unconditionally correct or whether e.g. writing a value to the DAC in between then results in that value being read back, instead.