dgVoodoo 2 for DirectX 11

General information and assistance with dgVoodoo.

Re: dgVoodoo 2 for DirectX 11

Postby UCyborg » 2017-5-05 @ 22:45

Should've backed up that CD earlier. I have a similar issue with Drakan CD, 3 short audible glitches on the soundtrack. But all the data survived. They're clean though.

I forgot to mention, about Evil Dead Hail The King, it hangs on my end when I quit it, like Soulbringer in DX7 mode. I haven't checked with debugger, but I assume it's also waiting on some object since CPU usage is 0%.
UCyborg
Member
 
Posts: 112
Joined: 2015-9-04 @ 11:10

Re: dgVoodoo 2 for DirectX 11

Postby UCyborg » 2017-5-06 @ 18:47

I noticed a performance degradation in Drakan if you turn on debug messages (hold Shift when starting the game and turn them on on Developer tab). Fast memory access fixes performance, but then mouse cursor is invisible. It slows down a little natively too, but it's not noticeable if you're going for 60 FPS. Resolution is a significant factor when it comes to those messages.
UCyborg
Member
 
Posts: 112
Joined: 2015-9-04 @ 11:10

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-5-07 @ 19:54

UCyborg wrote:I noticed a performance degradation in Drakan if you turn on debug messages (hold Shift when starting the game and turn them on on Developer tab). Fast memory access fixes performance, but then mouse cursor is invisible. It slows down a little natively too, but it's not noticeable if you're going for 60 FPS. Resolution is a significant factor when it comes to those messages.


The game probably locks the backbuffer multiple times per frame, for writing each character of the debug message or sg like that.
NOLF has this kind of issue too in some of its options menus.
The larger resolution the bigger backbuffer to copy between GPU/CPU.

UCyborg wrote:Fast memory access fixes performance, but then mouse cursor is invisible.

Thanks, indeed. I wasn't aware of that. Or I was but forget, I don't know.
Dege
Oldbie
 
Posts: 953
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby UCyborg » 2017-5-11 @ 18:30

Another mystery in Drakan, its screenshot feature. Natively, it appears to be hit or miss, it works on my laptop with AMD Radeon R2. On NVIDIA, it may work with older drivers, it certainly doesn't with 368.81+. It outputs black screenshot. Same with dgVoodoo. If you turn on fast memory access, it outputs invalid 16 KB TGA file. I can't reproduce the issue on WineD3D.
UCyborg
Member
 
Posts: 112
Joined: 2015-9-04 @ 11:10

Re: dgVoodoo 2 for DirectX 11

Postby WSH303 » 2017-5-12 @ 21:33

Hello,

I tried to run dgVoodoo with Dungeon Keeper 2 from GOG, but it crash at start of first movie, is there a way to fix that? By default the game runs in low resolution, and I'd like to use reshade on top of it :P
WSH303
Newbie
 
Posts: 3
Joined: 2016-5-13 @ 13:41

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-5-14 @ 11:18

UCyborg wrote:Another mystery in Drakan, its screenshot feature. Natively, it appears to be hit or miss, it works on my laptop with AMD Radeon R2. On NVIDIA, it may work with older drivers, it certainly doesn't with 368.81+. It outputs black screenshot. Same with dgVoodoo. If you turn on fast memory access, it outputs invalid 16 KB TGA file. I can't reproduce the issue on WineD3D.


Hmmm...
Mouse cursor is missing because the game reads the bitmap data from file directly into the locked surface area. Since the guarded memory page(s) becomes valid when executing code in kernel mode (NtReadFile), the page guard mechanism doesn't raise the exception (user mode code) needed for dgVoodoo (for fast vidmem mode).
So, dgVoodoo doesn't get notified that mouse bitmap data is changed. It's a really weird situation, due to the its nature, it's unsupported.

Screenshooting however works for me via dgVoodoo (altough I tried it only in game display mode 640x480x32, I must have the unpatched version because the game crashes when entering graphics options), both via fast vidmem access and normal mode.

WSH303 wrote:Hello,

I tried to run dgVoodoo with Dungeon Keeper 2 from GOG, but it crash at start of first movie, is there a way to fix that? By default the game runs in low resolution, and I'd like to use reshade on top of it :P

Hi,
Unfortunately I cannot help there. I don't have the GOG version, so I don't know how that one matches the original version, patched to 1.7. :S
Dege
Oldbie
 
Posts: 953
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby UCyborg » 2017-5-14 @ 23:00

Dege wrote:Screenshooting however works for me via dgVoodoo (altough I tried it only in game display mode 640x480x32, I must have the unpatched version because the game crashes when entering graphics options), both via fast vidmem access and normal mode.

Screenshooting works for me via dgVoodoo only if I switch to 16-bit mode, fast video memory access must be off. On my NVIDIA machine, it also works in 16-bit mode natively on a Win7 VMware virtual machine, but not 32-bit. It always works with WineD3D, both 16-bit and 32-bit mode. The laptop with Radeon R2 where it works natively has Windows 10, so I couldn't pick 16-bit mode by accident.

Fortunately, the rest of the game works as it should, dgVoodoo also gives much needed FPS boost for higher-poly scenes. But why do I see what I see when it comes to screenshots, driver quirks? It's really strange, and that strangeness is what bugs me. I double checked that I have the latest dgVoodoo and also tried default config.

The game version and resolution is not important, the only thing regarding DirectX I've changed in my patch is one call to CreateSurface method so it doesn't always pass DDSCAPS_MIPMAP flag. I stepped somewhere deep inside native ddraw.dll and there the error popped up that the mipmap dimensions must be power-of-two, which is not the case when the game uses it to make menu background using the previous frame when you open it. But it wasn't an issue on older graphics cards. Mipmaps aren't even used in the game, though the option for chopping up textures in smaller mipmaps exists in the Level Editor and it seems to work.

Another thing I'd like to ask regarding texturing in general, do games have to do anything special to support textures of various color depths? There's this CreateSurface method, which I think can be used to load textures among other things. I just know bypassing the check in Drakan whether the texture is 16-bit so it doesn't bail out doesn't automagically add support for 24-bit color depth. You end up with invisible texture. I have no clue what the conditional code around those checks does. Somewhere further, it does something differently if the depth is 24-bit. There's also 10th Anniversary Mod, a rather slow D3D6 -> D3D9 wrapper with ability to replace textures, but when you see them in game, you can also notice artifacts as result of 24->16 bit conversion. So the final result is the same as importing them natively with the Level Editor.
UCyborg
Member
 
Posts: 112
Joined: 2015-9-04 @ 11:10

Re: dgVoodoo 2 for DirectX 11

Postby Zaragon » 2017-5-19 @ 19:00

I recently purchased Army Men: RTS from GOG.com and have been having a slight issue with it. It uses the same engine as Dark Reign 2, which I've been able to get working flawlessly with dgVoodoo. I've found that with DR2, I get the best picture when using dgVoodoo to chain to ReShade, so I wanted to try that with Army Men RTS.

It works fine, except for one issue: it refuses to read the local config file and always reads the global one in my AppData folder. I leave the watermark on in the global config so that when I'm testing new games, I'll know if dgVoodoo is working, and then I turn the watermark off with the config. With Army Men RTS, I can't do that without turning it off on the global config.

Dark Reign 2 doesn't have this issue (reads the local config file just fine, only reads the global if the local isn't there).

dgVoodoo itself seems to be working just fine (I see the watermark, MSI Afterburner is showing D3D11 as the API). I can even chain to ReShade properly. It just won't read the application local config file.

Any thoughts as to what's causing this? I'm puzzled as to why it's just ignoring the file and don't know how to trace if it's doing some sort of redirection on startup. All of the compatibility settings on the shortcut are off and the Compatibility Administrator shows only "GameUX" as the compatibility fixes for amrts.exe. GOG seems to install their own fixes in the database for Army Men I and II, but I'm not seeing anything there for Army Men RTS.

Edit: Sorry, forgot to include that I'm on Windows 7 Ultimate 64-bit.
Zaragon
Newbie
 
Posts: 3
Joined: 2016-2-12 @ 01:12

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-5-22 @ 19:18

Zaragon wrote:I recently purchased Army Men: RTS from GOG.com and have been having a slight issue with it. It uses the same engine as Dark Reign 2, which I've been able to get working flawlessly with dgVoodoo. I've found that with DR2, I get the best picture when using dgVoodoo to chain to ReShade, so I wanted to try that with Army Men RTS.

It works fine, except for one issue: it refuses to read the local config file and always reads the global one in my AppData folder. I leave the watermark on in the global config so that when I'm testing new games, I'll know if dgVoodoo is working, and then I turn the watermark off with the config. With Army Men RTS, I can't do that without turning it off on the global config.

Dark Reign 2 doesn't have this issue (reads the local config file just fine, only reads the global if the local isn't there).

dgVoodoo itself seems to be working just fine (I see the watermark, MSI Afterburner is showing D3D11 as the API). I can even chain to ReShade properly. It just won't read the application local config file.

Any thoughts as to what's causing this? I'm puzzled as to why it's just ignoring the file and don't know how to trace if it's doing some sort of redirection on startup. All of the compatibility settings on the shortcut are off and the Compatibility Administrator shows only "GameUX" as the compatibility fixes for amrts.exe. GOG seems to install their own fixes in the database for Army Men I and II, but I'm not seeing anything there for Army Men RTS.

Edit: Sorry, forgot to include that I'm on Windows 7 Ultimate 64-bit.


Are you sure that the local config file isn't damaged, or sg like that? (Or maybe it's not version 2.54 but an older one and dgVoodoo cannot read that because of a bug?)
I tested and disabling watermark works for me from a local config, so for you, some error must occur when reading the local config file and so dgVoodoo tries the global one.
Best would be to track the CreateFile/ReadFile API calls through APIMonitor or Process Monitor.
Dege
Oldbie
 
Posts: 953
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-5-22 @ 19:36

UCyborg wrote:The game version and resolution is not important, the only thing regarding DirectX I've changed in my patch is one call to CreateSurface method so it doesn't always pass DDSCAPS_MIPMAP flag. I stepped somewhere deep inside native ddraw.dll and there the error popped up that the mipmap dimensions must be power-of-two, which is not the case when the game uses it to make menu background using the previous frame when you open it. But it wasn't an issue on older graphics cards. Mipmaps aren't even used in the game, though the option for chopping up textures in smaller mipmaps exists in the Level Editor and it seems to work.

DDSCAPS_MIPMAP is set for creating general surfaces, other than textures?
Texture surfaces (and mipmaps) should always be power of 2, there is no NONPOW2CONDITIONAL-like cap flag in DX<=7 (if I remember right :D ).

UCyborg wrote:Another thing I'd like to ask regarding texturing in general, do games have to do anything special to support textures of various color depths? There's this CreateSurface method, which I think can be used to load textures among other things. I just know bypassing the check in Drakan whether the texture is 16-bit so it doesn't bail out doesn't automagically add support for 24-bit color depth. You end up with invisible texture. I have no clue what the conditional code around those checks does. Somewhere further, it does something differently if the depth is 24-bit. There's also 10th Anniversary Mod, a rather slow D3D6 -> D3D9 wrapper with ability to replace textures, but when you see them in game, you can also notice artifacts as result of 24->16 bit conversion. So the final result is the same as importing them natively with the Level Editor.


Yes, CreateSurface accepts the whole surface descriptor which contains the pixel format (how many bits per pixel, RGB component bitmasks, flags) descriptor too. If omitted, then DDraw automatically chooses one.
Typically, games calls D3D to enumerate the available (supported) texture formats, choose one (or more) and pass that/those into DDraw::CreateSurface.
Aside from the texture quality, the format itself must only be taken into account when locking a texture surface to access bitmap data, the code must be prepared to be able to handle the given format.
I can't remember how Drakan does its texture uploads, but there are several ways to do it through DDraw: since DDraw supports format conversion when copying (blitting) between various surfaces, it's possible to create, say, a 32 or 24 bit ARGB or RGB surface in system memory and then copy the data into a 16 bit texture surface in video memory. DDraw takes care of it all. Or, the game can choose other ways, like converting its texture data to 16 bit 'manually' and copying it right into the 16 bit texture, avoiding system memory textures.

I should check out this game with your patch. What I cannot understand is that I installed it before but in spite of that, now I have the unpatched game. :confused: Should start afresh.
Dege
Oldbie
 
Posts: 953
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby Zaragon » 2017-5-22 @ 20:52

Dege wrote:Are you sure that the local config file isn't damaged, or sg like that? (Or maybe it's not version 2.54 but an older one and dgVoodoo cannot read that because of a bug?)
I tested and disabling watermark works for me from a local config, so for you, some error must occur when reading the local config file and so dgVoodoo tries the global one.
Best would be to track the CreateFile/ReadFile API calls through APIMonitor or Process Monitor.


I haven't been following closely enough to see that 2.54 was out; I had several games that had performance issues with 2.53 so I'd reverted back to 2.50.

Trying Army Men with v2.54 (and making no changes to the config file) solved the issue. By trying previous versions, this bug seems as though it was fixed in v2.53; v2.52 fails to read the config file.

I had just noticed the same problem with Gothic 2 today, and v2.54 fixed the issue. So this bug affected more than one game, it appears. I had also thought it caused Gothic 2 to crash, but that turned out to be because the config file had Fast Video Memory turned on, and the older versions weren't reading it. Turning Fast Video Memory back off allowed Gothic 2 to work just fine with v2.54.

I can't, however, get Gothic 1 to work, it gives me an error with dgVoodoo 2.54 (and just crashes with 2.50). It's not a vanilla install, Gothic 1 won't work at all on my system unless I install the PlayerKit (v1.08k) and the SystemPack (v1.1.7). Error is below:

======================================= UNHANDLED EXCEPTION OCCURED ======================================================
======================================= CRASH INFOS: =====================================================================
Startup Options:
=============================================== CALLSTACK : ==============================================================
0023:1000A7AC (0x0070DE70 0x00000000 0x7EF20040 0x0070E514) DDRAW.dll, DirectDrawCreateEx
0023:1000A8D3 (0x0070DE70 0x00000000 0x007D06E8 0x00713741) DDRAW.dll, DirectDrawEnumerateA()+14 byte(s)
0023:0070E514 (0xFFFFFFFF 0x007D06E8 0x00000001 0x00000000) GothicMod.exe, zCRnd_D3D::XD3D_EnumerateModes()+36 byte(s), D:\dev\gothic\current_work\ZenGin\_Kurt\zRndD3D_Init.cpp, line 294
0023:00713741 (0x0126FCC4 0x007D06E8 0x00000001 0x00000000) GothicMod.exe, zCRnd_D3D::zCRnd_D3D()+1249 byte(s), D:\dev\gothic\current_work\ZenGin\_Kurt\zRndD3D_Render.cpp, line 187+35 byte(s)
0023:0060168E (0x0126FCC4 0x0126FCBC 0x0126FCBC 0x007D06E8) GothicMod.exe, zDieter_StartUp()+702 byte(s), D:\dev\gothic\current_work\ZenGin\_Dieter\zzDieter.cpp, line 823+376 byte(s)
0023:0054477A (0x0126FCC4 0x00000000 0x0126FCBC 0x029D0068) GothicMod.exe, zCEngine::Init()+1082 byte(s), D:\dev\gothic\current_work\ZenGin\_Dieter\zEngine.cpp, line 153
0023:004259E1 (0x00000000 0x0029283E 0x0126FECC 0x00000000) GothicMod.exe, CGameManager::GameInit()+225 byte(s), D:\dev\gothic\current_work\Gothic\_Bert\oGameManager.cpp, line 885
0023:00424242 (0x0086F4B8 0x007D1078 0x0126FD38 0x002E0764) GothicMod.exe, CGameManager::Init()+386 byte(s), D:\dev\gothic\current_work\Gothic\_Bert\oGameManager.cpp, line 510
0023:006D8672 (0x7EFDE000 0x0000002C 0x00000000 0x00000172) GothicMod.exe, MainProg()+66 byte(s), D:\dev\gothic\current_work\Gothic\_Ulf\Phoenix.cpp, line 114
0023:004F4326 (0x00400000 0x00000000 0x0029283E 0x00000001) GothicMod.exe, HandledWinMain()+966 byte(s), D:\dev\gothic\current_work\ZenGin\_Carsten\zWin32.cpp, line 772
0023:004F3E90 (0x00400000 0x00000000 0x0029283E 0x00000001) GothicMod.exe, WinMain()+128 byte(s), D:\dev\gothic\current_work\ZenGin\_Carsten\zWin32.cpp, line 684+21 byte(s)
0023:0077A9B8 (0x7EFDE000 0x0126FFD4 0x77819902 0x7EFDE000) GothicMod.exe, WinMainCRTStartup()+224 byte(s)
0023:7521336A (0x7EFDE000 0x6BDB6579 0x00000000 0x00000000) kernel32.dll, BaseThreadInitThunk()+18 byte(s)
0023:77819902 (0x0077A8D8 0x7EFDE000 0x00000000 0x00000000) ntdll.dll, RtlInitializeExceptionChain()+99 byte(s)
0023:778198D5 (0x0077A8D8 0x7EFDE000 0x00000000 0x00000000) ntdll.dll, RtlInitializeExceptionChain()+54 byte(s)
Zaragon
Newbie
 
Posts: 3
Joined: 2016-2-12 @ 01:12

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-5-23 @ 08:07

Ok, good to hear that. :)

I never tested Gothic's with dgVoodoo, it seems it's time to put them onto the list.
Dege
Oldbie
 
Posts: 953
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby Juris3D » 2017-5-23 @ 12:38

Hello!
I recently refreshed my addiction to aerial combat games (sci-fi combat, preferably), partially because new titles popping up recently, and partially because I discovered dgVoodoo for myself. So, I want to say Big Thank You for dgVoodoo development. Now I have refreshed fun from Starlancer, Rogue Squadron 3D, Hellbender. Right now I am re-introducing game "Tellurian Defence" (1998) to myself, and, thanks to dgVoodoo, all is good, and it is actually fun to play. Well, almost all good :) Probably it is known already, but I report just in case: if some "forced filtering" is applied, fonts are broken in game menus, and also in cockpit information. If I choose "App driven" filtering, no issues then.
So, it is not much a "problem", I am just trying to be a little helpful :) I know Tellurian Defence is kinda, hmm, obscure, so I report.
If screenshot of fonts corruption needed, I can provide that later.
Is childhood over??? Naah... Of course not :)
User avatar
Juris3D
Newbie
 
Posts: 4
Joined: 2015-7-24 @ 06:07
Location: Riga, Latvia

Re: dgVoodoo 2 for DirectX 11

Postby MrEWhite » 2017-5-23 @ 18:55

MrEWhite wrote:Image
For some reason, after you get out of water, the hud becomes discolored in WinQuake. Getting damaged fixes this.
Edit: Happens in Engoo too.

This issue still occurs with the latest version.
User avatar
MrEWhite
Oldbie
 
Posts: 944
Joined: 2014-8-19 @ 20:08

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-5-24 @ 10:56

Juris3D wrote:Hello!
I recently refreshed my addiction to aerial combat games (sci-fi combat, preferably), partially because new titles popping up recently, and partially because I discovered dgVoodoo for myself. So, I want to say Big Thank You for dgVoodoo development. Now I have refreshed fun from Starlancer, Rogue Squadron 3D, Hellbender. Right now I am re-introducing game "Tellurian Defence" (1998) to myself, and, thanks to dgVoodoo, all is good, and it is actually fun to play. Well, almost all good :) Probably it is known already, but I report just in case: if some "forced filtering" is applied, fonts are broken in game menus, and also in cockpit information. If I choose "App driven" filtering, no issues then.
So, it is not much a "problem", I am just trying to be a little helpful :) I know Tellurian Defence is kinda, hmm, obscure, so I report.
If screenshot of fonts corruption needed, I can provide that later.


Hi, good to hear! :)
Forced filtering however is not a 'guaranteed feature' , it can cause glitches. So, in the respect it's normal.
Dege
Oldbie
 
Posts: 953
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-5-24 @ 11:21

MrEWhite wrote:
MrEWhite wrote:For some reason, after you get out of water, the hud becomes discolored in WinQuake. Getting damaged fixes this.
Edit: Happens in Engoo too.

This issue still occurs with the latest version.

Does WinQuake use DirectX? Or DirectDraw?
Dege
Oldbie
 
Posts: 953
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby Juris3D » 2017-5-24 @ 11:32

Dege wrote:Hi, good to hear! :)
Forced filtering however is not a 'guaranteed feature' , it can cause glitches. So, in the respect it's normal.

A small question about another aerial shooting classics - "Crimson Skies". I use "csfix", can set high resolution, playing is fine, game menus are small, but perfectly readable. This is how I use (play) it for years already.
But, just out of curiosity I tried "CS" without "csfix", with applied dgVoodoo. Now, both game menus and gameplay are right sized, but - in menus fonts are "gone", replaced with colored rectangles.
So, a question - there is still no "golden" solution for "Crimson Skies", with everything fixed?
Thanks again.
Is childhood over??? Naah... Of course not :)
User avatar
Juris3D
Newbie
 
Posts: 4
Joined: 2015-7-24 @ 06:07
Location: Riga, Latvia

Re: dgVoodoo 2 for DirectX 11

Postby Dege » 2017-5-26 @ 18:11

Juris3D wrote:
Dege wrote:Hi, good to hear! :)
Forced filtering however is not a 'guaranteed feature' , it can cause glitches. So, in the respect it's normal.

A small question about another aerial shooting classics - "Crimson Skies". I use "csfix", can set high resolution, playing is fine, game menus are small, but perfectly readable. This is how I use (play) it for years already.
But, just out of curiosity I tried "CS" without "csfix", with applied dgVoodoo. Now, both game menus and gameplay are right sized, but - in menus fonts are "gone", replaced with colored rectangles.
So, a question - there is still no "golden" solution for "Crimson Skies", with everything fixed?
Thanks again.


Yes, I know about colored rectangles, but, if I remember right, when I tried the game natively I got the same. So, I thought that my game copy is partly damaged.
But, as it turned maybe it's not.
Dege
Oldbie
 
Posts: 953
Joined: 2003-9-04 @ 11:06

Re: dgVoodoo 2 for DirectX 11

Postby MrEWhite » 2017-5-27 @ 01:31

Dege wrote:
MrEWhite wrote:
MrEWhite wrote:For some reason, after you get out of water, the hud becomes discolored in WinQuake. Getting damaged fixes this.
Edit: Happens in Engoo too.

This issue still occurs with the latest version.

Does WinQuake use DirectX? Or DirectDraw?

DirectDraw.
User avatar
MrEWhite
Oldbie
 
Posts: 944
Joined: 2014-8-19 @ 20:08

Re: dgVoodoo 2 for DirectX 11

Postby Juris3D » 2017-5-27 @ 15:55

Dege wrote:Crimson Skies:
Yes, I know about colored rectangles, but, if I remember right, when I tried the game natively I got the same. So, I thought that my game copy is partly damaged.
But, as it turned maybe it's not.

No, your game files are fine. If I try with the same game files, without "dgVoodoo", but with well known (and, thank God and its developer it exists) "csfix" - then fonts are okay, just some other things wrong (like menu size).
Is childhood over??? Naah... Of course not :)
User avatar
Juris3D
Newbie
 
Posts: 4
Joined: 2015-7-24 @ 06:07
Location: Riga, Latvia

PreviousNext

Return to dgVoodoo General

Who is online

Users browsing this forum: No registered users and 1 guest