First post, by Gernot66
- Rank
- Newbie
This is maybe not the proper topic because it's a solution to and not a problem with a specific game/app
DIGPLAY is a AIL3 sample player by RAD Game Tools which was sometimes even shipped with some games (e.g. "Zork").
In advance, i'm not sure if the problem is rooted in "digplay" and the rad sound drivers or if it is rooted in DOSBox.
I elaborated a solution but i'm not completely satisfied with it.
Status:
For DOSBox ECE (while i assume vanilla DOSBox as well but i haven't tested this recently)
If i play a sample with the SB16.DIG driver for DIGPLAY stereo is inverted (left becomes right).
Similar if i play the same sample with the SBP.DIG driver stereo is also inverted (no matter sbtype=sbpro2 or sb16).
If i play a sample using the ULTRA.DIG driver for the GUS stereo is correct (note!).
The Problem seems to be rooted in the AIL3 drivers, because i wasn't sure i made a test right now with the Miles (AIL2) evaluation software, horrible to handle they open a new shell which you have to exit manually (can't be done in a batch except you stuff the keypresses "EXIT" to the keyboard buffer) after playback but to test the function they are alright.
As far as they work at all, rel104 (.adv) stplay plays only 8bit stereo samples @22kHz, vocplay only 8bit @ 22kHz mono .VOC and digiplay plays only .RAW mono samples with the same samplerate and depth, rel105 (.dll) behaves the same the demo players can't handle 16bit samples, they all pop very loud when they initialize the SB.
HOWEVER, THE STEREO IS CORRECT
Dirty solution:
i hacked the drivers so they will playback the stereo channels proper assigned.
Test stuff:
DIGPLAY v1.02
SETSOUND (to select the appropriate driver for your "hardware" and the player)
SB16.DIG (original & hack)
SBP.DIG (original & hack)
ULTRA.DIG (no hack needed)
STEREOG.VOC ("linker kanal - rechter kanal" @11025Hz, 16bit)
STEREOE.VOC ("left channel - right channel" @11025Hz, 16bit)
PLANY (just because it's a very neat sample player with the only drawback that it can't playback in stereo)
Some more absolutely free and homebrew SFX? - perhaps.
(The other drivers won't make much sense for DOSBox but i guess you will know where to get them from, SB.DIG makes no sense at all because it plays back only in mono and in DOSBox only on the left channel).
Yes the sample freq is low but enough for speech or sfx, they are in 16bit depth because i strongly dislike the 8bit noise.
If the file is .VOC or .WAV makes no difference both behave the same.
(besides if you use SBP.DIG with the sbtype set to sb16 it will play all samples as they would be in 8bit depth but it has no effect on stereo l/r , make sure to use the right driver for your virtual hardware if you like to play back 16bit samples)
Whatever the reason might be this hack will solve it at least temporary but only for the use of this specific AIL3 drivers, if they are used by a game they will produce an inverted stereo field except you exchange the games sfx drivers with my hacked ones (mostly hard to recognize only such a test sample will clearly differ left from right channel, if it's a human voice or a sfx you can't tell that so easy).
Proper i guess would be a feature request to swap the SB channels, but for my personal use to play tiny samples in my batch proggies this solution is good enough.
Perhaps my demo stereo samples give the kick in the right direction (you can test with them any virtual soundcard when you use the appropriate *.DIG drivers), because it's really hard to tell what is left or right from a a sfx sample.
Thoughts:
Most sample players leak of something, until i used "PLANY" (play any) but it fails to play stereo samples (plays them in mono), GUS' Playfile is tard because it can only play as much as space is left for samples in the GUS ram and that's quite little - not enough to let the machine say "hello i'm your friendly machine" (depending on stereo, samplerate and bit depth of course) in fact not enough for "left channel - right channel" @11025Hz 8bit it ends playing at half of the sentence. Also GUS Playfile is limited to stereo @ 22050Hz and of course to the virtual (or real) GUS.
Most sample player enter with a audible "CLICK" and end with the same "CLICK" noise (sample start and sample end), DIGPLAY solves it quite fine with a given offset.
That means DIGPLAY WILL cut your samples a little bit (i experienced it cuts off at least a tenth of a second from the end of the sample, while the finest degree you can fit your sample to this offset is 1/100 second).
"PLANY" solves this very elegant, it doesn't clicks and doesn't cuts off it rather blends in/out, unfortunately PLANY plays back only in mono.
The player(s) i obtained with the AIL2 source are only demos and are not useful in batch programs (it would be needed to build a useful one from the source).
Any sample player i found so far is less good as PLANY and/or will only play 8bit mono or leak of something else.
PLANY is else the most versatile player, it plays back .WAV, .VOC, .SND, Amiga .IFF/8SVX and .AU samples.
As feature you can make standalone executables from your sample (with will boost the sample size by the size of the player program).
Sample players from which i've read that they only playback 8bit samples i didn't tested, there would be a couple of TSR programs but they are all limited to 8bit mono.
I also tested the SBPRO stuff but all of the SBPRO players are unsuitable in DOSBox, mostly because they work only with one specific sb variable, once installed the drivers work only for one specific hardware (resp. with a specific blaster setting). Else They would be the best .VOC players which can even reduce the noise of 8bit samples.
Overall the SBPRO stuff works only with sbtype=sbpro2 so they are already because of this limitation unsuitable.
DIGPLAY has the advantage to play multiple files simultaneously .
DIGPLAY is simple to handle but accepts no commandline switches, it only accepts one argument; "path to file" (multiple files) .
There is no way to specify samplerate or anything else, it also can only playback .VOC or .WAV files (since a headerless sample would need a spec. for samplerate & depth at least).
It can't play any compressed .WAV (like most sample players).
Unfortuantely it seems the SB16 driver enters with a silent "click" while the SBPRO driver doesn't, else the SB16 is to prefere because the SBPRO driver won't work proper with
sbtype=sb16, on the other hand the SB16 driver won't work at all with sbtype=sbpro2 (or less).
Running the SBPRO driver with sbtype=sb16 will cause the player to playback all samples in 8bit depth.
Therefore the ULTRA.DIG driver will always play proper stereo and with 16bit depth (if the file is 16bit).
KEEP IN MIND THIS IS A DIRTY HACK
The hacked drivers won't work with SOUNDSET (it seems it notices the hack) use the original drivers to run SOUNDSET or in the preferred way copy the needed .INI to DIG.INI with a small batch like this:
@ECHO OFF
COPY C:\SB16.INI C:\DIG.INI >NUL
MIXER SB %2 /NOSHOW
C:\DIGPLAY %1.VOC %1.WAV %1 >NUL
MIXER %SETMIXER%
ECHO ON
It copies the "sb16.ini" to "dig.ini" for the player, accepts two variables "path" (%1) and "volume" (%2)
"%SETMIXER%" is a full mixer string i set as global so you can recall at anytime your initial setting (i.e. SET SETMIXER=SB 100 FM 140 GUS 160 /NOSHOW).
Of course if you always and only use the SB16 driver you won't need such and can leave "SB16.INI" as DIG.INI .
It is no problem to have the argument three times present since DIGPLAY only accepts "path\filename" as valid argument, to playback multiple files simultaneous you have to put the string in quotes that it becomes a single argument, and it does play them simultaneous - expect a cacophony.
(this is needed for the advanced use in games, AIL3 XMI and DIG player can both play files simultaneous)
Redirecting to NUL will swallow all warnings caused by the multiple use of the argument "%1", no matter it has to work in any case (or specify only %1 without suffix, this was a last minute edit i did caused by heavy use in the shell to test out the drivers function).
E.g.
CALL DIGIPLAY C:\VOC\STEREOG 50
Will play STEREOG.VOC with a SB volume of 50% and reset the mixer to your initial setting after playback.
(i named the batch simply "DIGIPLAY.BAT" one could make various such batch files for each driver you use, i.e. "DIGIGUS.BAT" or "DIGIPRO.BAT" if needed at all)
Sort of a solution and a feature request because the use of the hacked drivers isn't fully satisfying a soft solution would be better.
But as long as we can't swap stereo for the SB this will solve the problem, like i said it should be possible to use the hacked drivers for the games which use the AIL3 drivers,
but there is no warranty that they will work this i haven't tested yet at all because my main purpose is to use them for batch programs to start the games.
I hope you don't mind if i link a clip of such a batch proggy (wip):
Commander Keen Thingy
maintainer of "Phoenix" (Pioneer Space Sim derivate)
https://forums.frontier.co.uk/threads/phoenix … erivate.506984/