VOGONS


dgVoodoo 2 for DirectX 11

Topic actions

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

Reply 380 of 3949, by Silanda

User metadata
Rank Member
Rank
Member
Dege wrote:
lowenz wrote:

So that's why I heard complaints from others using Win8. I was made sure that there is no significant difference between Win7 and 8 in the respect of the graphics drivers and architecture but I'm changing my standpoint.

Dege, here's a ddraw generic fix for Windows 8 and Windows 8.1: http://www.blitzbasic.com/Community/post.php? … 77&post=1202630

Can you implement the fix (Windows 8/8.1 only) in future versions of dgVoodoo?

But dgVoodoo does not need those ACT fixes since it uses DX11 not old DX (if I got it right you were after all managed to reach no-vsync in Undying and UT99 so everything is working perfectly 😀 ).

I have to disagree with you slightly here. Based on Shadows of the Empire, a fix might need to be implemented for Windows 8. The -DisableMaxWindowedMode fix does more for Windows 8 than simply improve the framerate: without the fix some games are displayed in a window rather than fullscreen as intended, SotE is one of them. The game works perfectly in fullscreen using just that compatibility fix, however, when dgVoodoo is used the fix no longer works and it displays in a window again. AFAIK this is a Windows 8+ specific problem and it doesn't happen on Windows 7.

Reply 381 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t
Silanda wrote:
Dege wrote:
lowenz wrote:

Dege, here's a ddraw generic fix for Windows 8 and Windows 8.1: http://www.blitzbasic.com/Community/post.php? … 77&post=1202630

Can you implement the fix (Windows 8/8.1 only) in future versions of dgVoodoo?

But dgVoodoo does not need those ACT fixes since it uses DX11 not old DX (if I got it right you were after all managed to reach no-vsync in Undying and UT99 so everything is working perfectly 😀 ).

I have to disagree with you slightly here. Based on Shadows of the Empire, a fix might need to be implemented for Windows 8. The -DisableMaxWindowedMode fix does more for Windows 8 than simply improve the framerate: without the fix some games are displayed in a window rather than fullscreen as intended, SotE is one of them. The game works perfectly in fullscreen using just that compatibility fix, however, when dgVoodoo is used the fix no longer works and it displays in a window again. AFAIK this is a Windows 8+ specific problem and it doesn't happen on Windows 7.

dgVoodoo2 + Shadows of the Empire runs fullscreen here, Win8.1 + Win95 compatibility mode. Any other compatibility mode is crash to desktop.

I'm going to ask Dege please DO NOT introduce compatibility flag handling in dgVoodoo2. Windows already has tools to handle this.

BTW, ForceDXSetupSuccess makes KKND run... into a black screen. Doesn't crash the game though, sound still playing.

Reply 382 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

I have to disagree with you slightly here. Based on Shadows of the Empire, a fix might need to be implemented for Windows 8. The -DisableMaxWindowedMode fix does more for Windows 8 than simply improve the framerate: without the fix some games are displayed in a window rather than fullscreen as intended, SotE is one of them. The game works perfectly in fullscreen using just that compatibility fix, however, when dgVoodoo is used the fix no longer works and it displays in a window again. AFAIK this is a Windows 8+ specific problem and it doesn't happen on Windows 7.

Well, I may misunderstand something but DXPrimaryEmulation and DisableMaxWindowedMode are clearly fixes only for old DX <= 7.
One of the problem with old DirectDraw interfaces is that an application could (can) paint anything outside its window directly to the desktop.
(Any of the newer DX's can only draw into a window so can dgVoodoo.)

Beginning with Win Vista, in which desktop composition (Aero) appeared, it is a problem because desktop composition is completely incompatible with the old "let's draw everything directly to the screen" model of earlier Windows'. So if the OS detects such an old behavior then it is forced to temporarily shut down desktop composition while the process is running.
Also, it was very common that if a fullscreen DDraw app crashed then there were often no way to kill it because it locked the screen exclusively and only a hard reset helped.
I think MS wanted to avoid those cases for good because they didn't fit into the image of a 'next-gen' OS like Win8 and decided to allow the old behavior only by enabling it explicitly through an ACT fix or a manifest resource in the application.
DXPrimaryEmulation is for the first case and DisableMaxWindowedMode is for the other, I think.
But if you wraps something through dgVoodoo then DirectDraw is not touched at all so there should be no any incompatibility problems and those fixes worth nothing.

BTW, ForceDXSetupSuccess makes KKND run... into a black screen. Doesn't crash the game though, sound still playing.

I've already fixed that. That game checks the version of the DX dlls which was 1.0 so far. 😀 That's why it complained about DX3.
(It seems a DDraw only game with paletted mode.)

Also, Motocross Madness and Jeff Gordon XS Racing are fixed as well.

Edit: Jeff Gordon XS Racing Demo... I don't have the full game.

Reply 383 of 3949, by Silanda

User metadata
Rank Member
Rank
Member

It's possible that something else is the issue since I can't even get SotE (CD audio fixed version) to run through dgVoodoo at the moment although I swear it was working a few days ago. Another game that has the same problem that I tried testing is Virtua Fighter 2, but that just seems to crash when using dgVoodoo.

Dege wrote:

Beginning with Win Vista, in which desktop composition (Aero) appeared, it is a problem because desktop composition is completely incompatible with the old "let's draw everything directly to the screen" model of earlier Windows'. So if the OS detects such an old behavior then it is forced to temporarily shut down desktop composition while the process is running.
Also, it was very common that if a fullscreen DDraw app crashed then there were often no way to kill it because it locked the screen exclusively and only a hard reset helped.
I think MS wanted to avoid those cases for good because they didn't fit into the image of a 'next-gen' OS like Win8 and decided to allow the old behavior only by enabling it explicitly through an ACT fix or a manifest resource in the application.

If that was Microsoft's intention then they have screwed something up. It's pretty common for old hanging D3D games to refuse to release focus on Windows 8, leaving you with a black screen, far worse than I ever remember 7 being. Luckily some things will draw over the crashed app and the command prompt can be still be accessed using Win+X and the malfunctioning app stopped using taskkill.exe (blind).

EDIT: Oh, and a question. How does dgVoodoo deal with DX9 games? The reason I ask is that Tiger Woods 08 will not work on my hardware anymore, I assume because of an overflow when the game queries the amount of VRAM present. However, it works with dgVoodoo. Would I be right in thinking that dgVoodoo could be replying to the VRAM query but everything else is being handled by DirectX? Whatever it's doing, I'm really grateful to have that game working again!

Reply 384 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

If that was Microsoft's intention then they have screwed something up. It's pretty common for old hanging D3D games to refuse to release focus on Windows 8, leaving you with a black screen, far worse than I ever remember 7 being.

Well, they failed then... 😀
On Win7 I can always bring back my tray by going to lock screen then back.

EDIT: Oh, and a question. How does dgVoodoo deal with DX9 games? The reason I ask is that Tiger Woods 08 will not work on my hardware anymore, I assume because of an overflow when the game queries the amount of VRAM present. However, it works with dgVoodoo.

In no way. The only thing I can imagine is that the game queries the amount of free video mem via DirectDraw then switches to D3D9.
(Free vidmem cannot be queried through D3D9 and higher because this term makes no sense in fact, especially with virtualized video memory appearing in Vista.)

BTW,

Would it be possible to set vram size in pass through mode?

No, but you can type any size you want. 16/32/64MB are just some predefined values.

Reply 385 of 3949, by VirtuaIceMan

User metadata
Rank Oldbie
Rank
Oldbie

When I get locked games on 8.1 I just do ctrl+alt+del (which always works), then call up Task Manager, hover over it's icon in the taskbar to show it's preview, then hover over the preview and use tab/up/down/space to select the crashed app and kill it.

Sometimes I can't get to the Task Manager window, so it's a case of blindly pressing tab once, typing first letter of app, tab 3 times and space to hit the "End task" button. But if even that fails then it's just ctrl+alt+del and sign out, which closes everything on Desktop. Far better than XP, when I had to use the reset button!

However this DX7 and earlier fix talked about has helped an enormous (and growing) number of games. It's amazing to see things like ToCA 2 Touring Cars at 144hz, soooooooooooooo smooth!

My PC spec: Win10 64bit, i7-4970K (not overclocked), KFA2 GeForce RTX 2070 SUPER, Creative Soundblaster ZXr, 16GB RAM, Asus Z97-A motherboard, NZXT 410 case, ROG Swift GSYNC monitor

Reply 386 of 3949, by pjblew

User metadata
Rank Newbie
Rank
Newbie

Hi,

I've been testing The Settlers 4 (SIV) with DXGL, so I thought I'd give it a test with dgVoodoo and report back here. It's looking good!

SIV distinguishes between 'landscape' and 'object' rendering, each of which can be either 'software' or 'hardware'. If 'landscape' is set to 'software', then 'object' is forced to the same.

With both set to 'software', dgVoodoo renders fine 😀

Setting both to 'hardware' works, but there is corruption in the rendering of the landscape when it is scrolled around 🙁 . DXGL used to have the same issue, but this has now been fixed - something to do with "blitting to and from the same surface". Don't know if that helps towards a resolution in any way.

Hope this helps, and keep up the great work.

Regards,
Paul

Reply 387 of 3949, by Silanda

User metadata
Rank Member
Rank
Member
Dege wrote:

In no way. The only thing I can imagine is that the game queries the amount of free video mem via DirectDraw then switches to D3D9.
(Free vidmem cannot be queried through D3D9 and higher because this term makes no sense in fact, especially with virtualized video memory appearing in Vista.)

That makes sense, altering the amount of available VRAM in dgVoodoo alters the resolutions available in the game too. IMHO unskippable specification checks should be banned in game development. They tend to go wrong a few years down the line.

With regards to Shadows of the Empire, where should the dgVoodoo files be placed? In the game directory, in the Sdata subdirectory (where Shadows.exe is) or both? It complains that it's unable to initialize card for 3D wherever I seem to place them.

A few reports:

Vanguard Princess: Correctly displays in full screen. Even the appcompat fixes don't work for this game in Win 8 but dgVoodoo does.
Enemy Zero: Works in DDraw mode, D3D mode is selectable (although it's listed as D3D secondary rather than primary) but doesn't seem to work and reverts to DDraw.
Virtua FIghter: Crashes
Virtua Fighter 2: Crashes.
Sega Rally: Works fine.
Last Bronx: Works fine but crashes when it tries to play the videos. It does this on Windows 8 without dgVoodoo though.
X-Wing Alliance: Works fine in D3D mode although still has the same text alignment problems that have been present with Nvidia hardware since forever. Corrupted in game graphics in DDraw mode.
Star Trek: Bridge Commander: Runs but there is a hall of mirrors effect on the main viewer.
Road Rash: Video sequences appear in a small window on the desktop rather than fullscreen, menus work, races load (music starts etc) but the screen is black (with the dgVoodoo logo displayed if enabled).

I should probably mention that these were tested with the WIPScaling version.

Last edited by Silanda on 2015-01-23, 18:34. Edited 3 times in total.

Reply 388 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t

Captain Claw FMVs work now, but this is one of the many games where vsync has a huge performance penalty. FMVs are either choppiness or tearing.

Diablo - Crashes after intro video (works natively).

Heroes of Might and Magic II (GoG) - Looks perfect.

Little Big Adventure 2 - Crashes at start (works natively; needs Creative Alchemy for proper sound playback).

Longest Journey (GoG) - Grayscale titlescreen with no mouse cursor, press start game and it crashes (works natively).

Might and Magic VI - Looks perfect.

No One Lives Forever - Crashes after some intro video (mode change / focus loss)(Works natively, though probably with some performance issues on Win8+).

Reply 389 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

Hi,

I've been testing The Settlers 4 (SIV) with DXGL, so I thought I'd give it a test with dgVoodoo and report back here. It's looking good!

Hi Paul! Thanks!

Setting both to 'hardware' works, but there is corruption in the rendering of the landscape when it is scrolled around 🙁 . DXGL used to have the same issue, but this has now been fixed - something to do with "blitting to and from the same surface". Don't know if that helps towards a resolution in any way.

Thanks for your report! Indeed, SIV worked in the way you said and I found a bug in "blitting to and from the same surface". That helped and just fixed it. 😎
But unfortunately I had other issues with SIV: I had to Alt-Tab and reactivate the app to see the movies for some reason and could play it only in windowed mode because the mouse corrdinates weren't scaled correctly in fullscreen. 😐

Anyway, I've just released the current state in the form of version 2.41, to have a new official version.
Didn't fixed all bugs I know of because some of them require more work and rev-engineering for fixing.
But I'm keeping up the work.

http://dege.fw.hu/dgVoodoo2_41.zip

Reply 391 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t

Shogo: MAD is looking really nice.

Dark Reign 2 also looks perfect now... The first time you run it. On subsequent runs, it'll minimize itself and when you open it again input focus won't recover: you can't do anything at all. It'll also fail to change resolution. Windowed mode works with no problems.

Populous The Beginning is so close to perfect. Only problem is the mouse cursor lacks transparent background (see screenshot). For anyone else who wants to run it here's what I did: popres.exe to change resolution (the game has a bug where it does not remember resolution otherwise), PopEnhance to fix texture glitches and /FRAMERATEMOUSE to fix performance issues when moving mouse.

Outlaws looks perfect if you select "Use alpha channel for sprites" (well except for the nasty mode changes). Here's what the description of that option says:

Enables the use of alpha textures for sprite objects. Normally, 256-color textures are used wherever possible; however this may produce a black "halo" effect around objects.

Enabling this option will cause larger textures to be used, which may degrade game performance.

Attachments

Reply 395 of 3949, by sherman

User metadata
Rank Newbie
Rank
Newbie

Thank you for the new version Dege.

I can report that G-Police now appears to render everything properly, from what little I've played.

EDIT:

Having said that, some elements such as the mouse curser and text in the menu appears to have black backgrounds.

Also, the game freezes when you try to exit a mission. The only way out appears to be to Alt-tab out then back into the game. This however causes the game to become unresponsive to keyboard input.

These issues only occur when using dgVoodoo. When using my HD7970 direct, the game appears to behave normally, although it is rather ugly...

Reply 396 of 3949, by pjblew

User metadata
Rank Newbie
Rank
Newbie
Dege wrote:
Thanks for your report! Indeed, SIV worked in the way you said and I found a bug in "blitting to and from the same surface". Tha […]
Show full quote

Thanks for your report! Indeed, SIV worked in the way you said and I found a bug in "blitting to and from the same surface". That helped and just fixed it. 😎
But unfortunately I had other issues with SIV: I had to Alt-Tab and reactivate the app to see the movies for some reason and could play it only in windowed mode because the mouse corrdinates weren't scaled correctly in fullscreen. 😐

Anyway, I've just released the current state in the form of version 2.41, to have a new official version.
Didn't fixed all bugs I know of because some of them require more work and rev-engineering for fixing.
But I'm keeping up the work.

http://dege.fw.hu/dgVoodoo2_41.zip

Hi Dege,

Thanks for the updated version. I can confirm that the hardware landscape rendering issue is completely gone 😁 . However, I do still get some strange graphical glitches with hardware object rendering. When scrolling around, some buildings (and people) temporarily flick to another building and then back again. Switching back to software object rendering is working fine though.

With regards to the mouse coordinate issue, I'm not seeing it on my setup (AMD 7660G+7600M on Win 8.1 64-bit). I had similar trouble on DXGL in the past which was resolved by ensuring that the in-game resolution matches my desktop resolution, so perhaps adjusting the forced scaling mode and/or forced resolution may help. I also use the SIV widescreen fix to achieve this.

Hope this helps.

Regards,
Paul

Reply 397 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t

Blood 2 also looks really nice now (well it would if the game didn't have problems with resolutions above 1600x900 and framerates above 60, not dgVoodoo2's fault though).

No One Lives Forever (newer LithTech game) sadly crashes to black screen (mode change / focus issue).

Reply 398 of 3949, by StrikerMan780

User metadata
Rank Newbie
Rank
Newbie

I gave dgVoodoo 2.41 a try, and I have to say, it works amazingly well with Microsoft Hellbender now! Awesome work.

May I request the ability to force 32-bit color? Would be great to be able to play this without color banding. The ability to force resolution (in Direct3D 3 games like Hellbender) would be awesome too... but I can understand if it's only something for the far future. The last thing, is the ability to fix the depth issues in Hellbender. Not the fault of dgVoodoo, but the game has a tendency to render polygons closer to you behind others that are further... sometimes even through walls. (Really noticeable on troop transports and radars, both of which are easily found in the first level.)

This is what I mean by the depth issues (1st is Hardware, 2nd is Software):
2bb5630c79.png aa06caa7c7.png

Reply 399 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

However, I do still get some strange graphical glitches with hardware object rendering. When scrolling around, some buildings (and people) temporarily flick to another building and then back again.

I didn't notice that but just found another bug in the blitting code. Maybe it solved the problem, now I checked SIV again and it seems to work fine without any glitches.

I had similar trouble on DXGL in the past which was resolved by ensuring that the in-game resolution matches my desktop resolution, so perhaps adjusting the forced scaling mode and/or forced resolution may help. I also use the SIV widescreen fix to achieve this.

Yes, I got to the same conclusion. Tried the widescreen patch in 'scaling with keeping aspect ratio' display mode with high res and the game is working fine! 😎

I think all that mouse problems (incorrent positions, mouse captured in a smaller rect than the screen, etc) have to do with the following: when a non-native resolution is used on a particular system then DXGI chooses one that is closest to the required resolution and also resizes the game window. If a game is written in a way that it assumes that the window has the same size the game set then mouse positions won't scale properly or at all. The same is true when the window position is not in its assumed position (generally at (0, 0) at the left-top corner of the desktop on the primary monitor). The solution would be some kind of subclassing the mouse position messages to fool the application like in DXWND.

Indeed! However, Shogo has an old issue with messed up fonts if ClearType is enabled. Can dgVoodo somehow disable it?

I'm afraid not... AFAIK ClearType attribute is the part of the font describing structure which is private to the application, dgVoodoo can't hook that (at least, not in a simple way).
The only thing you can do is disable 'bilinear blit stretch' in the setup because texts are unreadable when it's enabled.

I can report that G-Police now appears to render everything properly, from what little I've played.

G-Police does not work properly with the current version. Haven't debugged yet but that problem is on the todo list.

Virtua FIghter: Crashes
Virtua Fighter 2: Crashes.

I had a look into Virtua Fighter and it turned out it has a DDraw-GDI interact incompatibility issue. It's not very well supported in dgVoodoo and needs more work (probably a new dll as well).

Populous The Beginning is so close to perfect. Only problem is the mouse cursor lacks transparent background (see screenshot).

At least I've just successfully fixed that one.

May I request the ability to force 32-bit color? Would be great to be able to play this without color banding.

dgVoodoo always renders in 32 bit internally. Aren't the textures themself 16 bit?

EDIT: Yes, resolution forcing is in the fog of the future. Don't know how far future though, but there are still a lot of other more important issues to fix, unfortunately.

EDIT2:

Not the fault of dgVoodoo, but the game has a tendency to render polygons closer to you behind others that are further...

I noticed that when tested HB but didn't understand it. How can that be if the game uses z-buffering? 😕 (perhaps not all the time when rendering a frame, or polygon z-data is incorrect, or who knows...)