VOGONS


dgVoodoo 2 for DirectX 11

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 1760 of 3949, by SolivaN

User metadata
Rank Newbie
Rank
Newbie

Ouu... buuaaa!! that's very saad! 😲

Thanks for the aclaration dudes.

However, is not possible to make dgVoodoo in future versions be compatible with more video cards?

I think the difference between Directx 10 and 10.1 are minimal!

Let me know if I'm wrong. 😢

Reply 1761 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t
SolivaN wrote:
Ouu... buuaaa!! that's very saad! :exclamation: […]
Show full quote

Ouu... buuaaa!! that's very saad! 😲

Thanks for the aclaration dudes.

However, is not possible to make dgVoodoo in future versions be compatible with more video cards?

I think the difference between Directx 10 and 10.1 are minimal!

Let me know if I'm wrong. 😢

Yes, the difference is minimal, 10.1 is a patched, completed version of 10.0. There are a few things I need from 10.1 though (especially some (one or two) shader instructions from SM4.1 and maybe a texturing limitation not present in 10.1), for the 'perfect' emulation.
A 10.0-level renderer could work in general with known limitations (if I took in account everything), I'd rather worry about the perfromance on a 10.0 class hw. (I had a GF 8600GT and I don't have good memories about that, it was slow, got hot like an oven in short periods, ... was part of an awful series 😀 )

I wrote earlier:

Dege wrote:
Did some quick exploration, and it turned out that […]
Show full quote
lowenz wrote:

If so, stay strict to D3D11!

It's really unworthy.

Did some quick exploration, and it turned out that

- texture mipmapping in Glide, and in some cases in DX too, would gone with 10.0.
- also, I'd have to disable one of the fixed function vertex features for DX8, e.g. vertex tweening (but it's not a real problem, didn't encountered anything using that, so far).

But I'm still not sure if I'm using some texture formats guaranteed only in 10.1, or sg, it should be checked through the debug layer.

So 10.0 support is in abeyance, I'm going to deal with it only if it doesn't require too much efforts.

Reply 1763 of 3949, by xcomcmdr

User metadata
Rank Oldbie
Rank
Oldbie

Hello,

Thanks to some hex editing, I have now a working copy of the french version of Metal Gear Solid 1 for PC.

This modification is based on the modified executable for the english version named "Metal Gear Solid - NoCD Fixed Exe - Win XP-Vista GeForce-ATi FiX by MerolaC".

Putting the modified english executable on top of a french installation didn't work because (as I read here : http://forum.xentax.com/viewtopic.php?f=10&t=5491&start=15 ) the game checks for the size of various data files at runtime to prevent modification. If the sizes don't match what's expected, the game crashs (and indeed, it crashed alot). And of course, the data files are different, so the executable has to be diferent.

Anyway, this modified executable was tested successfully on Windows 10.

It's benefits are that the game works on modern Windows, and with beautifully accelerated graphics. 😀

Here is a screenshot :

2016-04-09 19_46_53-Greenshot.png
Filename
2016-04-09 19_46_53-Greenshot.png
File size
697.94 KiB
Views
5571 views
File comment
screenshot
File license
Fair use/fair dealing exception

Using dgVoodoo2 with an earlier version of the executable (the only modification was that the SecureROM DRM was removed since Win10 is incompatible with it) didn't prevent the game from reporting that it "didn't find a suitable graphics card and will be using the (ugly) software mode"

Whatever config of dgVoodoo 2.51 I tried (the game uses DirectDraw 7), the outcome remained the same.

In the game folder, here are the dgVoodoo specific files' names :
D3D8.dll
D3DCompiler_43.dll
D3DImm.dll
DDraw.dll
dgVoodoo.conf

However, with the fully modified executable one last problem remains : fullscreen mode always has the window chrome/frame around it.

Which goes away the instant dgVoodoo2 is used. In other words, dgVoodoo2 enables true full screen.

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. 😀

Reply 1764 of 3949, by Gagster

User metadata
Rank Newbie
Rank
Newbie

Hi. This glide wrapper is getting awesome, because until recently I was still using dgVoodoo 2.32, not knowing of the new Direct3D capabilities of the newer versions of this wrapper. I was looking for some way to play the ancient Toy Story 2 collect-a-thon game for PC, as that very game did not like newer PCs.

With dgVoodoo version 2.51 I'm finally able to play both Toy Story 2 and even Tony Hawk's Pro Skater 2 on PC again (THPS2 crashed earlier as soon as I choose a resolution above 640x480, but now I'm able to run it at 1024x768). While playing a pretty unknown game called Mission Kellogg's I managed to at least move past the title screen (the text were missing though), but it crashed after one minute or less gameplay. 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.

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. I even tried to delete the new version of dgVoodoo and reinstall version 2.32 again (I also deleted the files in the AppData/Roaming/dgVoodoo folder). Somehow dgVoodoo 2.32s fullscreen mode also crashed, and I have no idea of what went wrong with the fullscreen mode as soon as I installed dgVoodoo 2.51 on my computer.

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).

CPU: i7-4790K
RAM: 16 GB
GPU: GeForce GTX 1080
OS: Windows 10 64 bit

Reply 1765 of 3949, by De-M-oN

User metadata
Rank Newbie
Rank
Newbie

Can it be that the wrapper forces vsync even without the checkmark?

I dont remember NFS 2 being 60fps locked and vsync is definitely in use, because I have a capture card and it obviously does produce videos with tearing if not vsynched.
But on NFS 2 the card records without tearing which shows me that the game uses vsync.
A simple framelimiter normally doesnt avoid tearing. It even would raise it.

Reply 1766 of 3949, by DMJC

User metadata
Rank Newbie
Rank
Newbie

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.

Reply 1769 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t
xcomcmdr wrote:

I didn't notice anything, but I only tested the beginning of the game.

You should notice from the very first playable area. I'm wondering if this might be a Nvidia-only bug (I've seen something similar with dgVoodoo2 on some driving game I forgot).

Reply 1770 of 3949, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
DMJC wrote:

Hi, is there sourcecode available for your custom DirectX addons to add glide support?

That's not what's going on.

Current dgVoodoo 2 is comprised of three parts:
1. a Glide wrapper that wraps all calls to Glide 2.1.1, Glide 2.4x, and Glide 3.x (including "NAPALM" features) to Direct3D 11 (Direct3D 10.1 minimum)
2. a DirectX wrapper that wraps earlier DirectX versions (in theory from "DirectX 1" up to DirectX 7) to DirectX 11 (Direct3D 10.1 minimum) (since dgVoodoo 2 2.3)
3. a Direct3D wrapper that wraps Direct3D 8.1 up to Direct3D 11. (Direct3D 10.1 minimum) (since dgVoodoo 2 2.5)

Calling it "custom DirectX addons to add Glide support" is a bit of a misnomer? I mean, technically that's the end result, but your terminology is a bit weird.

Here we call such things "Glide wrapper" and "DirectX wrapper" and "Direct3D wrapper", and you'll probably get better Google results that way. 😉

Anyhow, Dege has made sourcecode to his much older dgVoodoo 1 series (consisting of ONE part, a Glide 2.1.1/2.4x wrapper to Direct3D 9) available under LGPL 2.1.
http://vogonsdrivers.com/getfile.php?fileid=4 … &menustate=51,0
http://vogonsdrivers.com/getfile.php?fileid=4 … &menustate=51,0

As for current dgVoodoo 2 source, that's not public nor is it open source. Maybe someday?

I think given that you're coming from Linux-land that you would be more interested in the following:

1. the DXGL project (LGPL 2.1): http://www.dxgl.info

2. psVoodoo (Glide 2.x -> Direct3D 9 wrapper) (LGPL 2.0?) - https://sourceforge.net/projects/psvoodoo/

3. The following much older Glide-> OpenGL wrappers:
a. OpenGlide (LGPL 2.0?) - http://sourceforge.net/projects/openglide (hey that's my name there)
b. Glitch64 (GPL 2.0) - which I think is living on life support here: https://github.com/project64/project64/tree/master/Source
c. uGlide - source not available yet, but my guess is it may someday: http://www.hedgehogeyes.com/uglide.html
d. SvensWrapper - source not available - http://www.svenswrapper.de/english/
They're not as new, they rarely use shaders, etc.

However, the current best of breed, most modern, most fully featured, and actively developed - dgVoodoo 2, Zeus Software's nGlide - are normally closed source. Something of course I'd like to see change someday, but that's up to the developers.

(Truth be told, Glide wrappers in general have a LONG history of being closed source. The first one was source available, and there were a few others including OpenGlide among the first, but the vast majority of the early days were closed source.)

Anyhow, good luck! If you manage to jumpstart some new portable multiplatform open source Linux-friendly Glide wrapper, I recommend you make it available as a standalone wrapper as well as integration with Wine.

I've got a bit more about the old-days Glide wrapper breakdown here:
Re: Carmageddon D3D acceleration in DOS

When we at VOGONS release The Wrapper Project I think there will be a bit more clarity, a combination file repository/wiki: 😀
The Wrapper Collection Project

PS. I'm not an author of any of these wrappers, more like a persistent thorn in the side of the author of these wrappers. 😉 I was something of a project manager/community-type person for OpenGlide back in teh day.

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

Stiletto

Reply 1771 of 3949, by teleguy

User metadata
Rank Member
Rank
Member

Got a problem with the Drakan demo.
https://archive.org/details/DrakanOrderOfTheFlame

The game crashes every time you try to access the graphics options.

De-M-oN wrote:

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?

Reply 1772 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

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

xcomcmdr wrote:

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. 😀

ZellSF wrote:
xcomcmdr wrote:

Hello,

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.

Glurak wrote:

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.

teleguy wrote:
De-M-oN wrote: Can it be that the wrapper forces vsync even without the checkmark? […]
Show full quote

De-M-oN wrote:
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.

teleguy wrote:

Got a problem with the Drakan demo.
https://archive.org/details/DrakanOrderOfTheFlame

The game crashes every time you try to access the graphics options.

Thanks.

Gagster wrote:

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.

Gagster wrote:

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.

Gagster wrote:

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...

DMJC wrote:

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. 😐

Reply 1773 of 3949, by Choum

User metadata
Rank Newbie
Rank
Newbie

Does DGVoodoo 2 can work when you have to set the game EXE to Windows 98 compatibility mode.

I have some problem with starlancer.
If I do not use any compatibility mode, graphics of the game are working great (but the game will crash in a very specific condition when you want to leave your medal case)

If I set the game to Win98 compatibility mode, the crash dissapear, but the wrapper seems to malfunction, I have some artefact concerning the space background like the game was using 256 colors.

Without compatiblity set
http://hpics.li/3dd5ecb

With compatibility set to win98 or 95
http://hpics.li/35cbaab

Anything I can do to fix that ?

Reply 1774 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

I've done a quick test with Drakan Demo and Diablo II 1.14b (Glide, forced to 1280x1024) but both works fine with 2.51. 😕
I'll try them on an AMD too, to see what happens.

Edit: (BTW, crash on Drakan Demo means driver crash? I remember having one with some old nVidia driver.)

Edit2: sorry, I tried diablo ii through d3d... 😊 With Glide, I get the error message.

Last edited by Dege on 2016-04-11, 11:04. Edited 2 times in total.

Reply 1775 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t
Choum wrote:
Does DGVoodoo 2 can work when you have to set the game EXE to Windows 98 compatibility mode. […]
Show full quote

Does DGVoodoo 2 can work when you have to set the game EXE to Windows 98 compatibility mode.

I have some problem with starlancer.
If I do not use any compatibility mode, graphics of the game are working great (but the game will crash in a very specific condition when you want to leave your medal case)

If I set the game to Win98 compatibility mode, the crash dissapear, but the wrapper seems to malfunction, I have some artefact concerning the space background like the game was using 256 colors.

Without compatiblity set
http://hpics.li/3dd5ecb

With compatibility set to win98 or 95
http://hpics.li/35cbaab

Anything I can do to fix that ?

Yes, it should. Win compatibility settings only affects the path where the dgvoodoo config file is searched for.
If you use a game in some of the compatibility modes (WinXp, Win98, ...) then creating a dgvoodoo config file into the game folder is needed, if other than the defaults you'd like to use.
I'd be nice to know if the difference you posted is present natively.

Reply 1777 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

Did Blizzard tailor the 1.14b patch to Sven's wrapper?
What I see is they removed the Glide renderer dll from their game and pushed Glide support directly into Game.exe.
The problem is that the game now queries Glide3x function names manually, BUT, it uses the undecorated c-style function names ( 😵 😵 😠 ) instead of the original decorated ones.

C-style names aren't exported neither in dgVoodoo, nor in an original 3Dfx driver, so, it's Blizzard's fault...

Choum wrote:

Yes I have the Dg Voodoo.conf inside the game Folder.
Without the wrapper, the problem is the same.

Then it's the game that's influenced by Win98 compatibility.
What about running the game without compatibility mode and set its affinity to single processor (it's a usual solution to prevent crashes)?

Reply 1778 of 3949, by teleguy

User metadata
Rank Member
Rank
Member
Dege wrote:

I've done a quick test with Drakan Demo and Diablo II 1.14b (Glide, forced to 1280x1024) but both works fine with 2.51. 😕
I'll try them on an AMD too, to see what happens.

Edit: (BTW, crash on Drakan Demo means driver crash? I remember having one with some old nVidia driver.)

I get a generic Windows error message:
"Engine stopped working
Problem details:
Fault Event Name: BEX
.
.
.
Fault Module: Stackhash_3487"
etc.

Reply 1779 of 3949, by Glurak

User metadata
Rank Newbie
Rank
Newbie
Dege wrote:
Did Blizzard tailor the 1.14b patch to Sven's wrapper? What I see is they removed the Glide renderer dll from their game and pus […]
Show full quote

Did Blizzard tailor the 1.14b patch to Sven's wrapper?
What I see is they removed the Glide renderer dll from their game and pushed Glide support directly into Game.exe.
The problem is that the game now queries Glide3x function names manually, BUT, it uses the undecorated c-style function names ( 😵 😵 😠 ) instead of the original decorated ones.

C-style names aren't exported neither in dgVoodoo, nor in an original 3Dfx driver, so, it's Blizzard's fault...

Choum wrote:

Yes I have the Dg Voodoo.conf inside the game Folder.
Without the wrapper, the problem is the same.

Then it's the game that's influenced by Win98 compatibility.
What about running the game without compatibility mode and set its affinity to single processor (it's a usual solution to prevent crashes)?

Yes could be but Blizzard said in his Forum that they will support Glide maybe you should just aks to support your wrapper ? i dont know, Here is the Post:

http://us.battle.net/en/forum/topic/20742864601

It looks like the Developer of nGlide has the same problem and he try to talk with Blizzard:

http://us.battle.net/en/forum/topic/20742849642

They gave him an answer that they will look into it for 1.14c

Just a Question your Wrapper dont support DDraw Games like Diablo 1 // Warcraft 2 Bnet Edition or Command And Conquer Tiberian Dawn// Red Alert? When yes is there a tutorial or something to scale the Games?