VOGONS


First post, by MiniMax

User metadata
Rank Moderator
Rank
Moderator
MajorGrubert wrote:
MiniMax wrote:

So, my hypothesis so far is that the engine used by Origin has major problems with VDMSound and the SB-16 emulation.

Or at least some major problems with VDMSound, SB-16 and your sound chip.

I am trying to solve a problem with crackling sounds in a game. To rule out the physical sound hardware, I tried to de-select the Sound Blaster output device, and just save the sound to a file (this is with VDMSound 2.1.0 beta and the LaunchPad).

But when I run the game, I can still hear the sound?

Oh - listening to the recorded VDMSnnnn.WAV file reproduces the crackling. Can this be due to the still active device?

Is there something else, like a very stubborn setting in the VDMS.INI file that I need to change manually? Or is the device always active and involved in the emulation no matter what?
--
MiniMax

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 1 of 7, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

No, disbaling it in LaunchPad should stop the sound.
Crackling is then due to DMA. Is the sound more or less rec ognizable under the crackling? Try putting the min/max DMA pair to 1 and 3 respectively (instead of 5 and 15 or whatever the default is).
Cheers.
V.

Reply 2 of 7, by MiniMax

User metadata
Rank Moderator
Rank
Moderator
vladr wrote:

No, disbaling it in LaunchPad should stop the sound.

Well, it doesn't 😕

Anyone here that can confirm that the LaunchPad in 2.1.0 beta is able to disable the sound device?

vladr wrote:

Crackling is then due to DMA. Is the sound more or less rec ognizable under the crackling?

Yes, it is not a show-stopper in any way. I have a recording here:
http://www.jabba.dk/files/WC3_and_SB-16.wav.

It just bugs me, that SoundFX is able to reproduce the sound perfectly, and VDMSound is not 😲

vladr wrote:

Try putting the min/max DMA pair to 1 and 3 respectively (instead of 5 and 15 or whatever the default is).
Cheers.
V.

I modified the default VDMS.INI file to read:

[DMA Transfer Manager.config]
;minDMAPeriod = 5 ; these regulate the frequency of DMA ...
;maxDMAPeriod = 15 ; ... activity (polling and updating)

minDMAPeriod = 1
maxDMAPeriod = 3

and used DOSDRV /I:MODIFIED.VDMS.INI to load the new 1/3 settings before starting the game. It made no difference at all 😢

Vladr, can I ask you to follow up on the crackling issue in the Wing Commander III thread, and keep this to the problem of disabling the actual sound?

Since I had started to modify the VDMS.INI file, I tried to figure out how to disable DSoundDevice and only direct the wave output to a file. But I just can not figure out how to do it. Here is what I think is the relevant part of VDMS.INI:

;--------------------------------------------------------------------------------------------------------
; This module is used to play back the SB Wave data on a Windows DirectSound device
;--------------------------------------------------------------------------------------------------------

[SB Wave Player]
CLSID = DSoundDevice.WaveOut ; you can also use 'WaveDevice.WaveOut'
Path = DSoundDevice.dll ; you can also use 'WaveDevice.dll'

;; [SB Wave Player.depends]
;; waveOut = Wave Writer

[SB Wave Player.config]
device = -1 ; -1 = the Wave/DirectSound mapper, 0 = first device, 1 = second, etc.
buffer = 75 ; how many milliseconds of audio data to buffer

;--------------------------------------------------------------------------------------------------------
; This module is used to dump Wave data to a raw PCM file
;--------------------------------------------------------------------------------------------------------

;; [Wave Writer]
;; CLSID = DiskWriter.WaveOut
;; Path = DiskWriter.dll

Which combination of CLSID's do I have to comment in/out? How do I specify the path to the wave file?

I browsed the CVS trying to figure out if there was an undocumented waveOut.FilePath or something, but that just left me confused at a higher level....
--
MiniMax

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 3 of 7, by Guest

User metadata
MiniMax wrote:
vladr wrote:

No, disbaling it in LaunchPad should stop the sound.

Well, it doesn't 😕

Anyone here that can confirm that the LaunchPad in 2.1.0 beta is able to disable the sound device?

At the properties tab for MIDI, AdLib and Sound Blaster you have to option to choose the output method: a sound device and/or a file. You can disable the device and send output only to the file, if you want.

Regards,

Reply 4 of 7, by MajorGrubert

User metadata
Rank Member
Rank
Member

Sorry, my post above. I messed up with Firefox, its revenge was swift and my cookies were gone.

Regards,

Major Grubert

Athlon 64 3200+/Asus K8V-X/1GB DDR400/GeForce FX 5700/SB Live! 5.1

Reply 5 of 7, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

But did you try it? Did you try this configuration (see attached screen capture)? Did you hear any sound?

This is the INI-file that VLP generated for me:

[*.debug]
detail=0
file=M:\EMS-test\Wing Commander III\VDMS.log

[VDMServicesProvider]
CLSID=VDDLoader.VDMServices

[VDMServicesProvider.config]
fixPOPF=0

[DMATransferManager]
CLSID=DMAController.TransferMgr

[DMATransferManager.debug]
detail=0

[DMATransferManager.config]
minDMAPeriod=5
maxDMAPeriod=15

[DMATransferManager.depends]
VDMSrv=VDMServicesProvider

[SBController]
CLSID=EmuSBCompat.SBCompatCtl

[SBController.debug]
detail=0

[SBController.config]
version=4.05 (SoundBlaster 16)
port=0x220
IRQ=7
DMA8=1
DMA16=5

[SBController.depends]
VDMSrv=VDMServicesProvider
DMACtl=DMATransferManager
WaveOut=SBWavePlayer

[SBWavePlayer]
CLSID=DSoundDevice.WaveOut

[SBWavePlayer.debug]
detail=0

[SBWavePlayer.config]
device=-1
buffer=75

[SBWavePlayer.depends]
WaveOut=SBWaveWriter

[SBWaveWriter]
CLSID=DiskWriter.WaveOut

[SBWaveWriter.debug]
detail=0

Show last 3 lines
[SBWaveWriter.config]
path=M:\EMS-test\Wing Commander III

I don't know if I have understood the format of the INI-file correctly, but it seems like the SBWaveWriter is a dependent on the main SBController? So if output to a file is selected, then the sound device is automagically also active?

Have you tried to disable *BOTH* the device and the file? I have, and I got sound anyway!
--
MiniMax

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 6 of 7, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

I think I got a silent recording now. I had to hand-edit the INI file, so it read

[SBController.depends]
VDMSrv=VDMServicesProvider
DMACtl=DMATransferManager
;WaveOut=SBWavePlayer
WaveOut=SBWaveWriter

I ran the game in total silence, and got a nice vdms0001.wav file at ~1 MB in size. And the crackling was still there. So I guess that rules out the actual audio hardware from the equation.
--
MiniMax

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 7 of 7, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

For LaunchPad: yeah, that was a silly copy/paste typo thing, SB and FM "device" output would always be enabled no matter what. It's fixed in CVS now, and will be picked up by the next build (whenever that will happen).

V.