VOGONS


First post, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

I have a floppy installation of Alone in the Dark, and the configuration program will not let me choose the Sound Source option. Similarly, Dungeon Master can also use the Sound Source, but only if detected. disney is set to true but the program will not detect it and will not let me choose the option. The same installation of these games work fine with my real Disney Sound Source (at LPT1/378) in a 486DX2/66 PC. The Sound Blaster option works best for these games, so I mention it only to point out an emulation bug that could possibly affect other games.

By the way, in DOSBox.conf, it mentions that the disney parameter is "Covox Voice Master and Speech Thing compatible". It is only Speech Thing compatible.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 2 of 11, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
Dominus wrote:

Have you disabled sb in the dosbox config?

Yes, that will not fix the problem.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 4 of 11, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The DSS detection in AITD is not getting an ACK as soon as expected due to the rate that DOSBox's mixer callback is pulling samples out of the buffer. If a default frequency of 6 kHz is used instead of 7 kHz then the detection works, but of course that's not the correct default frequency. If the detection is bypassed then the DSS sound works fine in DOSBox. I've seen a few other games that have difficulties with detection for the same reason; however, AITD is not among the few games that will use DSS but not SB.

Reply 5 of 11, by shock__

User metadata
Rank Oldbie
Rank
Oldbie

Sorry to revieve this thread with something not directly related to DOSBox but the 2 games mentioned here.
I've developed a DSS compatible circuit here: Reversing the Disney Sound Source

Thing is, it works fine with AITD, but Dungeon Master hangs before the FTL logo. Using the DM.exe tool also blanks out the sound source option.
Any ideas why that might happen ... or rather, what's the reason Dungeon Master's DSS support doesn't work in DOSBox?

Current Project: new GUS PnP compatible soundcard

[Z?]

Reply 6 of 11, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Dungeon Master won't let you select the DSS as a sound device in DOSBox because its detection method is sensitive to the rate at which data is removed from the buffer. It seems that DOSBox's mixer would have to read a single sample out of the buffer on a regular interval, rather than reading larger or smaller chunks on a less regular schedule, in order to support such detection methods. It's only a problem of detection, though, and the DSS sound works okay in DOSBox if detection is bypassed.

However, you mention a problem with hanging, which sounds like a different issue. Perhaps the detection code in the game is in an endless loop waiting for an ACK or the like?

Reply 7 of 11, by shock__

User metadata
Rank Oldbie
Rank
Oldbie
ripsaw8080 wrote:

Dungeon Master won't let you select the DSS as a sound device in DOSBox because its detection method is sensitive to the rate at which data is removed from the buffer. DOSBox's mixer would have to read a single sample out of the buffer on a regular interval, rather than reading larger or smaller chunks on a less regular schedule, in order to support such detection methods. It's only a problem of detection, though, and the DSS sound works okay in DOSBox if detection is bypassed.

However, you mention a problem with hanging, which sounds like a different issue. Perhaps the detection code in the game is in an endless loop waiting for an ACK or the like?

Hm ... the way I made my circuit I can easily adjust the intended rate of 7KHz for reading out samples +/- 500Hz which I actually tried already (under/overshooting the rate in smaller steps of like 10Hz from 6.9 to 7.1Khz ... kinda rough for the rest). Bypassing the setups detection routine by commandline (dm.exe ibmio fires -pk -sd1 -*e) results in hanging, yup (also doesn't work for bypassing in DOSBox). Seeing how finetuning the output/clock-out rate doesn't help I thought maybe it's related to the DSS's power circuit (it's powered up/down by software, while my clone is permanently powered and virtually ignores the power commands)?

Either way - thanks for the quick reply.

Current Project: new GUS PnP compatible soundcard

[Z?]

Reply 8 of 11, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Dungeon Master's -sd2 command line switch works to force DSS sound in DOSBox because it uses base port 0x378; -sd1 uses base port 0x3bc (MDA parallel port); -sd3 uses base port 0x278.

Reply 9 of 11, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Dunno if forcing the mixer to fill up on certain LPT io accesses wouldn't help with dss detection as well. If there are many games that has dss detection troubles that is.

Reply 10 of 11, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author
Harekiet wrote:

Dunno if forcing the mixer to fill up on certain LPT io accesses wouldn't help with dss detection as well. If there are many games that has dss detection troubles that is.

The problematic detection methods that I've looked at do this:

1) Write data until the ACK status bit is set
2) Wait in a timeout loop for the ACK to clear
3) Write a couple of bytes and expect immediate ACK status
4) Repeat 2 and 3 several times in a loop

The problem in DOSBox occurs between steps 2 and 3: when the ACK clears, the mixer has usually read more than a couple of bytes out of the buffer. So, I think having the mixer fill up on port access would only help if it generally causes the mixer to take only small amounts of data out of the buffer during the callback, and my experience with FillUp() is that it does nothing if the mixer doesn't "want" any data at that moment.

Reply 11 of 11, by shock__

User metadata
Rank Oldbie
Rank
Oldbie
ripsaw8080 wrote:

Dungeon Master's -sd2 command line switch works to force DSS sound in DOSBox because it uses base port 0x378; -sd1 uses base port 0x3bc (MDA parallel port); -sd3 uses base port 0x278.

That's helpful - I assumed -sd1 to be 0x378 or being looked in the BIOS settings.
EDIT: circuit confirmed working using the -sd2 parameter.

EDIT2: Rewired my circuit board to use the discontinued 74ALS232 once again and now even the detection routine works 😀
http://i.imgur.com/bllkrgw.jpg

EDIT3: Works with both variants I developed - for some reason my mostly-airwire prototype board decided that it wanted to be rebuilt.

Current Project: new GUS PnP compatible soundcard

[Z?]