VOGONS

Common searches


Which sound emulator?

Topic actions

First post, by koverhbarc

User metadata
Rank Member
Rank
Member

I know VDMSound is the oldest free solution to getting sound under Windows, but now that the one called 'SoundFX' has been made freeware, it there any reason not to use it instead of VDMSound?

It is certainly easy to use, loading automatically, and can be enabled or disabled with one function in Control Panel. And it seems to work with all real-mode games using sound; also with MBF 2.04 it gives much better sound than the standard XP Sound Blaster emulator and takes hardly any more cycles.

Reply 2 of 27, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

As far as I can remember, the main reason we didn't promote SoundFX here at VOGONS back in the day is because we started from the support forums for VDMSound and mainly supported that one. Also, it wasn't free to use, there was a licensing fee (if I remember right?) And also because it was closed-source at the time, so there were theories (of course) that it was stealing code from MAME or VDMSound or both. Otherwise, it seemed to be a decent product.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 3 of 27, by collector

User metadata
Rank l33t
Rank
l33t
Jorpho wrote:

However, there is little reason not to use DOSBox instead, especially since the NTVDM has other compatibility problems.

Not to mention that most Windows today are x64, thus no NTVDM.

The Sierra Help Pages -- New Sierra Game Installers -- Sierra Game Patches -- New Non-Sierra Game Installers

Reply 4 of 27, by koverhbarc

User metadata
Rank Member
Rank
Member

Ah, x64 aka x86-64, AMD64 - was basically a conspiracy between AMD and Microsoft to sell unneeded upgrades and pull the wool over consumers' eyes. The average person never did and still doesn't have any need for 64-bit (to the extent that it seems so, it's only because some applications have been optimised for it), and the specification with no reason whatever broke compatibility with 16-bit programs, real mode, and DPMI. The fact that it prohibits use of segment registers except in the very way that Windows uses them is all you need to know. Intel not then being in Microsoft's pocket did things right with Itanium.

I'll continue to use SoundFX, then, and it should work from my own DJGPP programs, which I will be testing shortly. I don't care if it stole code, not being a GPL 'believer'. (That's another topic ...)

Though this isn't the DOSBox forum, I'll cite three problems (other than speed) DOSBox has that NTVDM doesn't:

- Can't display 320x200 in correct aspect ratio, even though hardware supports it
- Can't use _real_ PC speaker instead of emulation
- Gets refresh rate wrong for 640x480 VGA using 70 Hz (instead of 60),
which causes my monitor to overscan

All three are egregious.

Reply 5 of 27, by Azarien

User metadata
Rank Oldbie
Rank
Oldbie
Jorpho wrote:

However, there is little reason not to use DOSBox instead, especially since the NTVDM has other compatibility problems.

The main reason is that with SoundFX/VDMSound you can run DOS games on XP machines that aren't fast enough for DOSBox.
For example, I played Tomb Raider (640x480), Blood and Redneck Rampage (1024x768) on a P4 laptop. DosBox? Not a chance with these resolutions.

The fact that it prohibits use of segment registers except in the very way that Windows uses them is all you need to know.

This actually caused problems for VMware when they tried to port their VM to AMD64 architecture.
http://www.pagetable.com/?p=25

Last edited by Azarien on 2017-06-29, 11:59. Edited 1 time in total.

Reply 6 of 27, by koverhbarc

User metadata
Rank Member
Rank
Member

And of course the speed penalty is even larger for non-game applications, which are also important to me (although sound is not, then). But yeah, I've found that 640x480 or higher is really not playable on DOSBox on a P4.

The VM issue doesn't surprise me, and it's hard to imagine why anyone thought removing segmentation might be a good idea - except, of course, for Microsoft as a marketing strategy. Oddly 15 years earlier they successfully got segmentation _included_ as an integral part of DPMI, and rightly so for the same reason: it's the best way to provide memory protection in the arbitrary case.

Reply 7 of 27, by koverhbarc

User metadata
Rank Member
Rank
Member

Having completed some testing it appears that the two sound emulators are functionally equivalent for gaming and on every program where one doesn't work right, the other doesn't either. With one exception the native XP sound emulator (which is replaced by SoundFX/VDMSound) does not either, suggesting it's really an NTVDM issue.

I believe, unfortunately, that NTVDM uses hardware interfaces not part of the normal API, so that no one could write an improved clone of it - I think someone would have done so, if it were possible.

Reply 8 of 27, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
koverhbarc wrote:

I believe, unfortunately, that NTVDM uses hardware interfaces not part of the normal API, so that no one could write an improved clone of it - I think someone would have done so, if it were possible.

Well, there's this: NTVDM64 project on SourceForge - 16bit on x64 possible?
and this: NTVDM on windows 10 x64
and this: Re: ReactOS 0.4.0

I dunno if they'll amount to much. Maybe ReactOS might get there, but then it'd only work within ReactOS.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 9 of 27, by koverhbarc

User metadata
Rank Member
Rank
Member

All those are using emulation, like DOSBox. This is not to say they might not do better than DOSBox for some things, if they are written for it - but as I suspected doing so for Windows requires access to Microsoft code (or a full virtual PC).

What I meant by a clone of NTVDM is one that runs DOS programs directly on the processor using V86 mode; and is is that that is not possible for a normal Windows program. It should be possible to write one for an open-source OS, or for DOS itself - the point there being mainly to add 'transparent' sound emulation.

I am not actually asking for this to be done now, but just making an observation - if fixing or replacing NTVDM had been possible, we would have been doing it, basically eliminating any need for DOSBox on XP (possibly all 32-bit Windows).

Reply 10 of 27, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
koverhbarc wrote:

All those are using emulation, like DOSBox.

My first link is. My third link is. My second one is using illegally leaked Microsoft sourcecode for NTVDM, so my guess is... no?

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 11 of 27, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Stiletto wrote:

My second one is using illegally leaked Microsoft sourcecode for NTVDM, so my guess is... no?

That leaked sourcecode is actually derived from the "portable" version of NTVDM, derived in turn from "SoftPC".
https://github.com/leecher1337/ntvdmx64

Reply 12 of 27, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
Jorpho wrote:
Stiletto wrote:

My second one is using illegally leaked Microsoft sourcecode for NTVDM, so my guess is... no?

That leaked sourcecode is actually derived from the "portable" version of NTVDM, derived in turn from "SoftPC".
https://github.com/leecher1337/ntvdmx64

D'oh, how'd I miss that? I stand corrected.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 13 of 27, by koverhbarc

User metadata
Rank Member
Rank
Member

Note that if Microsoft had wanted NTVDM on 64-bit, they could just have asked AMD to include V86 mode and segmentation it 64-bit mode, and they would surely have done so. Those hardware limitations are why there could not be a straightforward, non-emulated port to any 64-bit OS.

Reply 14 of 27, by Jo22

User metadata
Rank l33t++
Rank
l33t++
koverhbarc wrote:

Note that if Microsoft had wanted NTVDM on 64-bit, they could just have asked AMD to include V86 mode and segmentation it 64-bit mode, and they would surely have done so. Those hardware limitations are why there could not be a straightforward, non-emulated port to any 64-bit OS.

That would not even have been necessary. NTVDM always had an emulation-backend.
As far as I know, it was used on RISC platforms during the 1990s.
https://en.wikipedia.org/wiki/SoftPC

koverhbarc wrote:

What I meant by a clone of NTVDM is one that runs DOS programs directly on the processor using V86 mode; and is is that that is not possible for a normal Windows program.

Ah, I see. But wouldn't be emulation more than enough ? Todays processors are so insanely fast, it could even be harmful.
Come to think of it, most Win16/DOS programs I had got ran in full speed on a 286-16. I assume that performance of a 486DX2-66 or
an early 586 would still be adequate for most of these.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 15 of 27, by koverhbarc

User metadata
Rank Member
Rank
Member

Yes, I don't see that there's any argument here. If NTVDM were being designed today, emulation might be the better choice. But it isn't; Microsoft has not been interested for 15 years and has deliberately tried to kill it. If the introduction of AMD64 didn't make that clear, Vista should have.

Reply 16 of 27, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Jo22 wrote:

That would not even have been necessary. NTVDM always had an emulation-backend.
As far as I know, it was used on RISC platforms during the 1990s.
https://en.wikipedia.org/wiki/SoftPC

NTVDM as used on non-x86 platforms would appear to differ substantially from the standard version.

Reply 17 of 27, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Jorpho wrote:

NTVDM as used on non-x86 platforms would appear to differ substantially from the standard version.

Yes, sure, though MS has the code of both SoftPC and VirtualPC - both which were originally emulators and evolved into virtualizers.
By using the experience they gained in the creation of both of them, MS could have updated NTVDM ten years ago already.
This would have helped to solve certain issues like 16bit installers and VGA support (Vista dropped DOS fullscreen support for it in
its native WDDM video drivers). Well, if they had an interest in doing so. NTVDM for RISC didn't change that much after NT4,
when it was upgraded from 286 to 486 emulation (speaking under correction). And since NTVDM runs atop the Win32 personality,
the internal changes to the design of NT shouldn't be so much of an issue. But that's just my opinion. I know very little about the
"other NTVDM". 😊 https://en.wikipedia.org/wiki/Windows_NT_3.1# … _3.1_layers.png

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 18 of 27, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Vista and Windows 7 support XPDM so you can fullscreen NTVDM all you want on those operating systems as long as you have the drivers.

Windows 8 32bit and above still support 32bit and as such NTVDM but not XPDM so unless there's an equivalent similar to solvbe (assuming it doesn't work on 8+) for those OS's then your're screwed but who wants to use NTVDM when it died (no real changes except for half-assed SB emulation in XP) long ago.

How To Ask Questions The Smart Way
Make your games work offline