VOGONS


First post, by Scandy

User metadata
Rank Member
Rank
Member

Hi, I'm using the Next186 FPGA core on MiST. This core includes a Covox clone ("Stereo-on-1"?) compatible with the Disney Sound Source. In many titles (Wolfenstein 3D, Rocketteer etc .) it is detected as such, but in HOCUS POCUS I always get a "Disney Sound Source not detected" error.

I have already opened an issue on GitHub but I would like to help the developers by providing some additional information.
Since this forum has hosted many topics about DSS/Covox clones and patches, if anyone had any information about it or could suggest someone to contact, it would be extremely useful and appreciated.
Thank you so much.

THE NIGHTLAND is my board + video game for Commodore 64.

Reply 1 of 7, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie
Scandy wrote on 2021-07-31, 13:52:

This core includes a Covox clone ("Stereo-on-1"?) compatible with the Disney Sound Source.

That in itself sounds a bit fishy, because Covox Speech Thing and Disney Sound Source are quite different, internally.
The Covox Speech Thing is a pure DAC, whereas the Disney Sound Source has an integrated 16-position FIFO buffer.
IIRC, the standard detection procedure for the Disney Sound Source involves observing the parallel port status bit that is supposed to signalize "FIFO full" while filling the FIFO.

Reply 2 of 7, by Scandy

User metadata
Rank Member
Rank
Member

Thank you so much for your kind reply. It seems that it's DSS, but with a slightly increased sampling rate (44100 Hz/6 = 7350 Hz), this could affect the detection in Hocus Pocus?
It works well even in Alone in the Dark (floppy version).

THE NIGHTLAND is my board + video game for Commodore 64.

Reply 4 of 7, by mkarcher

User metadata
Rank l33t
Rank
l33t

First interesting piece of info: You can run HOCUS.EXE (the shareware version) with the parameters ss1, ss2 or ss3 to force sound source detection at ports 3BC, 378 and 278 respectively, circumventing the auto-detection mechanism.

Reply 5 of 7, by mkarcher

User metadata
Rank l33t
Rank
l33t

Full algorithm in the shareware version (installed) as distributed DOS games archive:

  1. Deassert /INIT on the printer port (write 04 to the control register)
  2. Wait for four timer ticks at 140Hz (I guess to drain the FIFO)
  3. Test that ACK reads as zero
  4. Strobe 32736 data bytes as fast as possible into the DSS (likely a bug, and intended to be 32 bytes). Strobing is done by temporarily pulsing SELECT IN high (writing 0C to the control register, than writing 04 again). If you supply the parameter "sst" (sound source stereo?), not only SELECT IN, but AUTOFEED is pulsed too.
  5. Test that ACK reads as one

If both tests for ACK succeed, the sound source is detected. Note that the initialization part depends on timing, whereas the actual FIFO testing part does not.