dgVoodoo 2 for DirectX 11

General information and assistance with dgVoodoo.

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2018-4-28 @ 19:32

UCyborg wrote:Drakan must be doing something special that those effects don't show up natively with modern drivers. The lens flare sample from DirectX 6.1 SDK works out-of-the-box on my end, but I'm also experiencing significant slowdown running it via dgVoodoo, look at this side-by-side comparison:

Image

I still didn't have the chance to check out Drakan, but the frame drops for DX6/7 SDK samples occur because the text itself describing the windows size and fps are written through Surface::GetDC/ReleaseDC (GDI interop) which has relatively large overhead through dgVoodoo. The larger window the more performance drop.
DX8 samples use textures for the texts as DX8 itself doesn't support GetDC/ReleaseDC and so the performance is much better there.

szabozadam wrote:Hi Dege
I ran into a problem with soldiers of anarchy (I saw that you fixed a crash with it not that long ago so I'm hoping you still have the game around :) )
For context: the game uses Direct3D7, on maps (out of menus) it tries to set a directional light (at 0x00613A4F in version 1.1.2.178) with the parameters:
Code: Select all
  d3dLight.dltType = 3;
  d3dLight.dcvDiffuse.r = v6[15];
  d3dLight.dcvDiffuse.g = v6[16];
  d3dLight.dcvDiffuse.b = v6[17];
  d3dLight.dcvDiffuse.a = 0.0;
  d3dLight.dcvSpecular.r = 0.0;
  d3dLight.dcvSpecular.g = 0.0;
  d3dLight.dcvSpecular.b = 0.0;
  d3dLight.dcvSpecular.a = 0.0;
  d3dLight.dcvAmbient.r = 0.0;
  d3dLight.dcvAmbient.g = 0.0;
  d3dLight.dcvAmbient.b = 0.0;
  d3dLight.dcvAmbient.a = 0.0;
  d3dLight.dvPosition.x = 0.0;
  d3dLight.dvPosition.y = 0.0;
  d3dLight.dvPosition.z = 0.0;
  d3dLight.dvDirection.x = v6[22];
  d3dLight.dvDirection.y = v6[23];
  d3dLight.dvDirection.z = v6[24];
  d3dLight.dvRange = 0.0;
  d3dLight.dvFalloff = 1.0;
  d3dLight.dvAttenuation0 = 0.0;
  d3dLight.dvAttenuation1 = 0.0;
  d3dLight.dvAttenuation2 = 0.0;
  d3dLight.dvTheta = 0.0;
  d3dLight.dvPhi = 0.0;

This looks as such with native DDraw
Image
But with dgVoodoo2 (either the WIP44 or the 55 version regardless of settings):
Image
I tried playing around with the parameters of the light set just above the call (again with game version 1.1.2.178) (though I must declare I'm not experienced with Direct3D7)
I could get the desired effect with native DDraw (red light for example) but dgVoodoo seemed to disregard any change I made to this call (even changing the light type) always stayed like on the picture.

I tried all the settings I could think of in the cpl and otherwise but if I'm not the first and someone found a fix to a similar problem I would be quite curious about it.

(As an endnote I admire the work you did bringing back the games of our childhood I hope you'll keep at it :) )

Hi Adam,
I still have the game installed. :)
So ti seems to be a lighting problem. How could I reproduce it? Or how did you debugged it? :)
Dege
Oldbie
 
Posts: 1245
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby UCyborg » 2018-4-29 @ 14:43

I still didn't have the chance to check out Drakan, but the frame drops for DX6/7 SDK samples occur because the text itself describing the windows size and fps are written through Surface::GetDC/ReleaseDC (GDI interop) which has relatively large overhead through dgVoodoo. The larger window the more performance drop.
DX8 samples use textures for the texts as DX8 itself doesn't support GetDC/ReleaseDC and so the performance is much better there.

Oops, you're right about the reason for performance hit with older DX SDK samples, I posted too fast... Either way, lens flares in Drakan only render with more recent versions of dgVoodoo while that DX SDK sample works correctly with older ones as well. So I guess it isn't a good comparison when it comes to apparently Drakan specific quirk.
UCyborg
Member
 
Posts: 207
Joined: 2015-9-04 @ 11:10

Re: dgVoodoo 2 for DirectX 11

Postby szabozadam » 2018-4-30 @ 18:57

Hi Adam,
I still have the game installed. :)
So ti seems to be a lighting problem. How could I reproduce it? Or how did you debugged it? :)

On my end (I tried this on two separate computers one with an old AMD gpu and win7 and on a geforce/win8 machine) no special actions are needed to reproduce, just load up a map either in the editor or just starting a new game should result in the effect (I must admit it is a subtle difference though I didn't notice there was something wrong for quite some time), the landscape/ground lacking lighting is apparent on any map you get into if you compare the game rendered with the windows DDraw.dll (If it works naively on your end). (the tent having light on the inside in the pictures I uploaded was actually where I noticed something was off)

What I did to trace the problem to that particular call, was removing/skipping the LightEnable call further down execution (I use ollyDbg for this) for this particular light which resulted in the game only having ambient light in the scenes and no highlights on the bottom part of objects (like the wheels of the jeep or whatever it is called), furthermore changing the color, direction, position and type (to a point light) of the light which worked as expected only when I didn't load the dgVoodoo supplied DDraw.dll , I did not look into the dgvoodoo dlls I dont really know where the parameters get lost :/ (a think they are getting "lost" because no change made to these values resulted in any difference if I used the dgVoodoo Direct3D7 implementation)

Thank you for taking a look :)
szabozadam
Newbie
 
Posts: 5
Joined: 2017-8-04 @ 03:04

Re: dgVoodoo 2 for DirectX 11

Postby FulValBot » 2018-5-01 @ 11:58

With latest update of windows 10 there are some slowdowns with alt tab (NOT caused by dgvoodoo2)

https://news.softpedia.com/news/how-to- ... 0927.shtml
FulValBot
Newbie
 
Posts: 18
Joined: 2008-3-01 @ 18:43

Re: dgVoodoo 2 for DirectX 11

Postby kris1313 » 2018-5-01 @ 13:27

and worse thing is that Dege's website is half-down :(
kris1313
Newbie
 
Posts: 10
Joined: 2017-4-10 @ 06:08

Re: dgVoodoo 2 for DirectX 11

Postby teleguy » 2018-5-03 @ 16:23

Is there any way dgVoodoo could override a game's LOD system?

It's pretty jarring when you force high resolutions and the game only provides low res models and textures until you're at point blank range.

My guess is it's not possible though, at least not without causing other problems, right?
teleguy
Member
 
Posts: 389
Joined: 2004-2-28 @ 18:54

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2018-5-03 @ 16:45

Yes, it's not possible. It's something that can only be fixed on the game side.
Dege
Oldbie
 
Posts: 1245
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby ZellSF » 2018-5-04 @ 19:31

Alchemist runs nicely with dgVoodoo2 and looks beautiful with integer scaling:
alchemist.png
Sadly I wouldn't call it playable since I can't get music working. I didn't try to hard either since this is really a game better suited for DOSBox or PCem.


Thandor: The Invasion also looks great:
thandor 2018-05-04 20-01-41-64.jpg
dgVoodoo2's D3D resolution forcing is the only way to force rendering resolution on this since Glide wrappers (including dgVoodoo2) do not like resolution forcing in this game. There's supposedly also a way to change resolution via hex editing files. dgVoodoo2 would be perfect for playing this game, however Vista+ broke the sound in this game. So not really playable :(.


Castle Strike only supports some arbitrary resolutions, including oddly enough one hor+ widescreen resolution, 1280x720 here forced to 2560x1440:
Castlestrike 2018-05-04 21-05-32-84.jpg
The UI stretch and bad text positioning may not make this the ideal way to play the game though, it's probably better to stick to 1600x1200 integer scale forced resolutions.


Initial D: Mountain Vengeance does not work, but it's a DllMain game.
ZellSF
Oldbie
 
Posts: 1096
Joined: 2006-1-01 @ 18:19

Re: dgVoodoo 2 for DirectX 11

Postby ZellSF » 2018-5-04 @ 21:04

Animorphs works perfectly with resolution forcing (usually 640x480 limited), no AA though:
Animorphs 2018-05-04 22-19-33-69.jpg

Disney's Aladdin in Nasira's Revenge, also perfect, though this game has native high-res support:
aladdin 2018-05-04 22-00-04-06.jpg

Disney's The Emperor's New Groove uses the same engine as Aladdin, so same result:
groove 2018-05-04 22-28-13-71.jpg

Far Gate works perfectly, usually limited to 1600x1200:
FarGate 2018-05-04 22-41-53-33.jpg

Hellboy has some issues with switching into windowed mode when changing display mode, looks great though:
hellboy 2018-05-04 22-57-03-07.jpg
ZellSF
Oldbie
 
Posts: 1096
Joined: 2006-1-01 @ 18:19

Re: dgVoodoo 2 for DirectX 11

Postby ZellSF » 2018-5-05 @ 23:15

The Outforce works great. It has native high resolution (and widescreen) support, but dgVoodoo2 helps with its bad UI scaling. Here internal resolution 1280x720 forced to 2560x1440:
Outforce_w2k 2018-05-06 00-55-14-08.jpg
State of War is definitely a bit worse on the resolution support side of things, only allowing a choice between three resolutions: 640x480, 800x600 and 1024x768. It saves the chosen resolution in "State of War.cfg". It'll actually support any resolution you choose if you edit this file with a hex editor. Game is 2D, so it only benefits from dgVoodoo2's integer scaling and that's sort of hard to tell in a jpg screenshots (this game uses too many colors for png to be effective). Here's 1280x720 integer scaled to 2560x1440:
State of War 2018-05-06 00-50-14-48.jpg
NickToons Racing works great, usually limited to 1280x1024 (though there's a hex edit method available for higher resolutions), here running at 1920x1440:
ToonsDX7 2018-05-06 02-08-43-58.jpg
Lander works with resolution forcing, both D3D and Glide renders. Needs ExtraEnumeratedResolutions+DisableDefaultResolutions or resolution enumeration in settings will crash. Usually limited to 1600x1200 with bad UI scaling. Antialiasing creates font glitches in D3D render, so it's not enabled in this 640x480 forced to 1920x1440 screenshot:
lander 2018-05-06 02-51-23-37.jpg
ZellSF
Oldbie
 
Posts: 1096
Joined: 2006-1-01 @ 18:19

Re: dgVoodoo 2 for DirectX 11

Postby batterymandark » 2018-5-06 @ 14:23

Hi Dege, I figured out the white texture problem in GTA 3, since I later figured out it also had problems with some car textures and car engine textures. And guess what, most of it was my own fault, so it was the updater.
I'm reuploading the updater , and it shouldn't be a problem since its a community patch from steam that is just stored in one SFX archive. : https://1drv.ms/u/s!Agj8jUvjAJjznHd0v6YrKLe_Su3j

Also after the windows latest update, I think GTA3 runs a little better. but I also run it with the ATI radeon setting with 64MB VRAM , and also forcing off Crossfire on my HD5970 in amd control settings for the game,
as it seems , but not 100% sure, dgvoodoo 2 enable crossfire in its own way. like running secondary gpu on demand, and not allways on.
batterymandark
Newbie
 
Posts: 35
Joined: 2013-9-14 @ 08:20

Re: dgVoodoo 2 for DirectX 11

Postby stranno » 2018-5-06 @ 14:26

Any idea for Hasbro Interactive's Battleship?

Its a software/direct3D 7 game. Limited to 640x480 in D3D and a few more in software.

Image

dgVoodoo virtual adapter appears in menu options but the directdraw menu and direct3d ingame dont seem to be hooked. I tried to add extra-resolutions but they dont show on that menu.

The game has another config file where you can set different resolutions, tho it doesnt seems to work at all.
User avatar
stranno
Newbie
 
Posts: 98
Joined: 2016-2-28 @ 19:55

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2018-5-07 @ 12:42

szabozadam wrote:Hi Dege
I ran into a problem with soldiers of anarchy (I saw that you fixed a crash with it not that long ago so I'm hoping you still have the game around :) )
For context: the game uses Direct3D7, on maps (out of menus) it tries to set a directional light (at 0x00613A4F in version 1.1.2.178) with the parameters:
Code: Select all
  d3dLight.dltType = 3;
  d3dLight.dcvDiffuse.r = v6[15];
  d3dLight.dcvDiffuse.g = v6[16];
  d3dLight.dcvDiffuse.b = v6[17];
  d3dLight.dcvDiffuse.a = 0.0;
  d3dLight.dcvSpecular.r = 0.0;
  d3dLight.dcvSpecular.g = 0.0;
  d3dLight.dcvSpecular.b = 0.0;
  d3dLight.dcvSpecular.a = 0.0;
  d3dLight.dcvAmbient.r = 0.0;
  d3dLight.dcvAmbient.g = 0.0;
  d3dLight.dcvAmbient.b = 0.0;
  d3dLight.dcvAmbient.a = 0.0;
  d3dLight.dvPosition.x = 0.0;
  d3dLight.dvPosition.y = 0.0;
  d3dLight.dvPosition.z = 0.0;
  d3dLight.dvDirection.x = v6[22];
  d3dLight.dvDirection.y = v6[23];
  d3dLight.dvDirection.z = v6[24];
  d3dLight.dvRange = 0.0;
  d3dLight.dvFalloff = 1.0;
  d3dLight.dvAttenuation0 = 0.0;
  d3dLight.dvAttenuation1 = 0.0;
  d3dLight.dvAttenuation2 = 0.0;
  d3dLight.dvTheta = 0.0;
  d3dLight.dvPhi = 0.0;

I tried playing around with the parameters of the light set just above the call (again with game version 1.1.2.178) (though I must declare I'm not experienced with Direct3D7)
I could get the desired effect with native DDraw (red light for example) but dgVoodoo seemed to disregard any change I made to this call (even changing the light type) always stayed like on the picture.

I tried all the settings I could think of in the cpl and otherwise but if I'm not the first and someone found a fix to a similar problem I would be quite curious about it.

Fixed. It was a bug in dgVoodoo, based on misunderstanding the ambiguous documentation on the relationship of predefined state blocks and lights.
The game sets the light in question once, and then saves that into a state block. Then it re-applies that later, each time rendering a game/editor frame. dgVoodoo didn't save all the data needed for the light so it never got set again.
I'll include it in the patch version.
Dege
Oldbie
 
Posts: 1245
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2018-5-07 @ 12:45

stranno wrote:Any idea for Hasbro Interactive's Battleship?

Its a software/direct3D 7 game. Limited to 640x480 in D3D and a few more in software.

KnowDLLs-issue:

viewtopic.php?f=9&t=34931&p=513135&hilit=knowndlls#p513132

Both dgVoodoo DDRAW and system DDRAW get loaded into the process.
Dege
Oldbie
 
Posts: 1245
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2018-5-07 @ 12:50

ZellSF, thanks for the great feedback, again!!
Especially for Aladdin! The first one (DOS) was one my favorites and didn't even know there was a subsequent release running in 3D! :)
Dege
Oldbie
 
Posts: 1245
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby stranno » 2018-5-07 @ 13:14

Dege wrote:https://www.vogons.org/viewtopic.php?f=9&t=34931&p=513135&hilit=knowndlls#p513132

Both dgVoodoo DDRAW and system DDRAW get loaded into the process.

I have no ddraw listed there so that doesnt seem to be the case.

It is hooked fine in DXWnd.
User avatar
stranno
Newbie
 
Posts: 98
Joined: 2016-2-28 @ 19:55

Re: dgVoodoo 2 for DirectX 11

Postby ZellSF » 2018-5-07 @ 16:21

Battleship Surface Thunder supports resolution forcing, but you get artifacts with forced AA and texture filtering. This is 1366x768 (the game is picky about which resolutions it allows) forced to 2732*1536:
Battleship2 2018-05-07 19-31-04-29.jpg
It needs you to do this:
viewtopic.php?f=59&t=52976&p=569126#p569126
And if you're on Windows 8 or 10 it needs the Disable8And16BitModes compatibility fix.

Still only runs at 20 FPS here though. Timing compatibility issue? By design? Also suffers from double cursor though that's probably easy enough to work around. Widescreen (if you edit DisplaySettings.ini) is vert- :(
ZellSF
Oldbie
 
Posts: 1096
Joined: 2006-1-01 @ 18:19

Re: dgVoodoo 2 for DirectX 11

Postby stranno » 2018-5-07 @ 21:04

Thank you as always ZellSF, it looks great. I will check tomorrow.
User avatar
stranno
Newbie
 
Posts: 98
Joined: 2016-2-28 @ 19:55

Re: dgVoodoo 2 for DirectX 11

Postby szabozadam » 2018-5-08 @ 14:34

Dege wrote:Fixed. It was a bug in dgVoodoo, based on misunderstanding the ambiguous documentation on the relationship of predefined state blocks and lights.
The game sets the light in question once, and then saves that into a state block. Then it re-applies that later, each time rendering a game/editor frame. dgVoodoo didn't save all the data needed for the light so it never got set again.
I'll include it in the patch version.


You are the best! :)
szabozadam
Newbie
 
Posts: 5
Joined: 2017-8-04 @ 03:04

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2018-5-08 @ 20:13

brad86 wrote:
awgamer wrote:
brad86 wrote:( Well, close enough ).


What's off?

...
Light beams go straight through Sam. You can see this in the vent on the first level. You won't notice it much through the game unless you try to.
...

It depends on the virtual 3D card: beams go through Sam with every video card (including GeForce FX5700 Ultra) except GeForce4 Ti 4800.

V15UAL K3YS wrote:
Dege wrote:Works perfectly for me on AMD and Intel. On nVidia I get the same flashing dotted appearance as you.
I know where the error occurs during rendering but don't know why. I debugged the wrong pixels by the graphics debugger but even debugging the pixel shader yielded what was expected.
Seems to be an nVidia-flaw. :confused:

That's unfortunate; would there be any possible workaround? It normally works fine without dgvoodoo2 other than the menus running slow (such as certain menus running as slow as 2 fps). The beta version of Road Wars that uses DirectX 6.1 doesn't have this problem.

https://www.youtube.com/watch?v=1Qo6q0PL-mg

I cannot workaround this on nVidia, no matter what I do. Pixel shader(s) run erroneously. I disabled alpha testing in the game, that seems to be a good workaround. :)
http://dege.fw.hu/temp/RoadWars_NoAlphatest.zip
Dege
Oldbie
 
Posts: 1245
Joined: 2003-9-04 @ 11:06

PreviousNext

Return to dgVoodoo General

Who is online

Users browsing this forum: No registered users and 1 guest