I added (at least, I think) support for DirectShow movie playback via dgVoodoo.
First, I wrote a complete API hooking system and then it got clear that API hooking is definitely not the way for DShow as it relies on half of the legacy Win32. 😵 😵
So, instead I ended up with an internal, built-in DShow-hooking layer on top of DDraw that detects movie playback and converts those calls to the sake of dgVoodoo for correct display (similarly to Windows AppCompat layer).
I encountered all practical programming problems that one could: worker threads, deadlocks, multiple object instances, unexpected order of object destruction, cross-module and cross-API interactions for output redirection, it's a complete suck. 😵 😵
I did a lot of needless work too in the recent 2 weeks, but now it finally seems to work. Though I didn't do extensive tests, only tried
Blade of Darkness for DDraw+D3D combo
Bloodrayne2 and GTA3 for DDraw+D3D8 combo
So I'd like to ask for permission to ship dgVoodoo2 along with the modified executable in a game patch for the french version of MGS 1 for PC. (I will mention dgVoodoo2's original source and download link too, of course).
Is it possible ?
Thank you very much for dgVoodoo2.
Cool! Yes, permission granted. 😀
Thanks to some hex editing, I have now a working copy of the french version of Metal Gear Solid 1 for PC.
On the subject of Metal Gear Solid, that still has water rendering problems with hardware acceleration turned on.
It's still subject of investigation because one time the water renders with z-fight another time it renders nicely without any glitch. I don't yet understand its reason.
is there any chance to load the wrapper with Diablo 2 1.14b?
The game says Error 1: Diablo II is unable to Proceed. Unsuported graphics Mode.
With the Sven Glide Wrapper it works fine with glide.
I still didn't tried it but I'm going to do. I hope now I can switch to game-specific bugfixing.
Can it be that the wrapper forces vsync even without the checkmark? […]
Show full quote
Can it be that the wrapper forces vsync even without the checkmark?
I noticed Windows does that to a lot of old games even without dgVoodoo. Anyway you can force it off with D3DOverrider or Radeonpro.
Maybe such an option could also be added to dgVoodooSetup?
dgVoodoo forces it only if the checkmark is checked. But, for some people Windows or the display driver may force it because of some cryptic reason. dgVoodoo couldn't force it off if Windows force it on (back) behind, so such an option would only be useful(?) for games without any option to choose between v-sync on/off.
Got a problem with the Drakan demo.
The game crashes every time you try to access the graphics options.
The old Windows 95 ports of Aladdin, Jungle Book and Lion King on the Disney Classic's CD is however a lost cause. It's not easy to say if a Direct Draw wrapper ever can run those games, as the compatibility issues may be because of some ancient libraries missing from the older Windows 9x versions.
Hmm, I remember playing Lion King but that was a DOS game. Anyway, if those games had windows ports then you're right, they may have other issues than the graphics (like Fallout1 and Dungeon Keeper1 have, if I remember right). They should be checked one by one.
I'm having one major issue with this version though; I'm no longer able to run games in fullscreen mode with this plugin. I'm forced to play in windowed. Even dgVoodoo 2.32 could without any issues run all Glide games in fullscreen, but now I'm forced to run both Carmageddon 2 and Ignition in windowed mode.
Don't you have multiple monitors, on different video cards? Like an IntelHD + nVidia combo?
dgVoodoo got multimonitor support since 2.32 maybe that's the reason. Check your config, and see what 'Adapters to use/enable' is set to, on the 'General' page. The game window cannot be put into fullscreen on a monitor-output connected to a different video card that the game drives for the rendering.
I did not manage to force resolutions in Direct3D games in this plugin, as I do with the Glide/3dfx games. It may be harder both software and hardware wise to force the resolution in older Direct3D games compared to Glide games, I have no idea. I only hope that some day, somehow I'm going to be able to enjoy Moto Racer 2 in a higher resolution than 1024x768 (Moto Racer 2 has a potential to be a great LAN- and 4 player splitscreen game).
Yes, for DirectX the resolution combo box is only for selecting the refresh rate to override to. DirectX is way more complicated than Glide with its 3 rendering buffers that's why it's not supported now. But I'm planning, some day...
Hi, is there sourcecode available for your custom DirectX addons to add glide support? I'd like to get this code ported into Wine. Right now wine is terrible at running DirectX 6/7/Glide games on Linux. I'd like to get that fixed. Please reply if you're interested.
Sorry, but I don't understand what you mean exactly. Maybe a Glide->D3D11->WineD3D (OpenGL) wrapping chain?
But, as Stiletto replied too, I don't want to disclose the source, at least, not yet. 😐