And you trust me, I WAS playing Blood with vdmsound and with smooth playback, it is possible. Bot somethig has changed. Acording to my experiments it doesn't depend on OS, I was back on SP2 and it behaved the same.
I do agree, you did see smooth performance with the WinXP NTVDM and VDMsound v2.1.0, this observation has been made on the BLOOD forums at the DeathMask.net website. Many there swear by WinXP (SP1) as being the last WinXP release that will run a badly CLI/NOP hacked Blood.exe with somewhat acceptable sound, choppy cutscenes and functional gameplay. Each progressive release of WinXP service packs only futher exposed the underlying application problems.
Since as we both know there is no native VESA support in the WinXP NTVDM as VESA is defaulted in 'full-screen' mode to the video BIOS of the installed graphics card, all of those people who complain about "screwed up" WinXP VESA support by nVidia, ATI, Intel, etc are simply barking up the wrong tree. My disassembly of the nVidia vBIOS for a 7950GT shows that it is one of the most compatible IBM VGA/VESA 3.0 vBIOS around, minus the code for the variable VESA video mode refresh rate functionality which was removed by nVidia. Still even members of even this august forum continue to blame nVidia for lousy NTVDM VESA 'support'. Therefore, people blame the operating system for problems for which it is not responsible. They incorrectly correlate the symptoms with the cause... The DOS/DPMI application problems are similarly not the fault of the operating system.
The problems of SYNDICATE WARS or BLOOD under the WinXP NTVDM changing the in-game characteristics in WinXP (SP2+) is somewhat analogous to the NTVDM VESA support. The operating system is doing what it is instructed to do - and the fact that the DOS/DPMI application was programmed in a sloppy fashion is only being exposed by the WinXP NTVDM environment. The programming problems are masked under real DOS (also DOSbox) but are exposed under the WinXP (SP2+) NTVDM environment.
I'll just repeat my warning - do not waste your time on trying to fix the problem by attacking the operating side of the equation. You will just be wasting your valuable programming/debugging time. 😉
More details later when I finish,