VOGONS


dgVoodoo 2 for DirectX 11

Topic actions

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

Reply 860 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t
DracoNihil wrote:
ZellSF wrote:
Extreme G-2's UI issues are not because of bilinear blt stretch btw: Xtreme G-2 Fixed Graphics Using Latest dgVooDoo Also it dis […]
Show full quote

Extreme G-2's UI issues are not because of bilinear blt stretch btw:
Xtreme G-2 Fixed Graphics Using Latest dgVooDoo
Also it displays correctly in DXGL (has other issues) and WineD3D, but not natively.

Here's how it's supposed to look.
Here's dgVoodoo2

That dgVoodoo2 video, funny. At the time this was really the only thing I saw that would get the game to run on his machine, crazy to see the vid linked here to show the GUI error.

I must emphasize that it's not an error. It's a colorkeying issue (but I'd rather say 'method').
There is no expectation about how it should look. At least, not according to the DX specs. DX specs only states that colorkeying comparison must take place before the texel->color lookup (so it's not 3Dfx-like, for example, for 8 bit paletted textures you use indexkey instead of colokey).
So, everything is fine until no bilinear (or trilinear) filtering is applied during texture sampling.
But what to do if texturing samples into a 2x2 texel block where there are colokeyed texels? It's up to the GPU, there is no DX guide at all for this.
- nVidia (and dgVoodoo) discard a sampled pixel if AT LEAST ONE of its 2x2 neighbours has colorkey color to ensure that no interpolation is done into colorkeyed pixels.
- Traditional(?) method discards a pixel only if ALL of its 2x2 neighbours are colorkeyed pixels.

I found the nVidia-like method plausible and a bit more clever because it provides that no colorkey-colors get visible at all, in any form. But, it must be admitted, it bites out more from the texture.
I modified the needed shader and did a quick try for the other method and then I got the same result as 'expected' and shown in the videos. Even Incoming's HUD looked much nicer.
But this method leaves an ugly colorkey-edge around the shapes. As it can be seen on the video, Extreme G-2 has black borders around the letters. It would be worse if the colorkey were pink or cyan. 😀
So, I cannot say that either of the methods are better. They both are crap just in different ways. There were a solution named 'colorkey blending' added later into DX but not all GPUs supported it and there are no games using this (I think).

The only viable way is that I switch to the other method and we'll see (this all is true for 2D blitting operations).
I don't want to include a new option to choose between the two because as you wrote

Maybe worth noting that I've seen a few people who had trouble figuring out how to use dgVoodoo2.

I'm not going to say nice things about those people, but if you want the wrapper to be user friendly there might be room for improvement there.

I think copying 2 files into a game folder is not a difficult thing to comprehend. 😀
dgVoodoo2 works out of the box, there is no configuration needed. All the options (except for 'fast vidmem access') are just extras, they aren't necessary.

Anyway, I haven't got much time recently, and it's very hot here again which means I'm lazier and more tired 😀, but I almost finished the code refactoring I planned for a while. Now dgVoodoo has true multidevice/multimonitor support for DX, there are common parts between Glide/DX in the DDI, etc.
I checked Army Men and found that it's a palette issue (GDI/DDraw interaction again) which I fixed and the game now works.
Did you have to apply a DDraw app compat fix for Win8 to run this game? Because it sets the desktop to a 8bit mode when at startup which is not enabled by default on Win8 if I guess right.

BTW, I forgot last time, the frame rate limiter: the thing is it should work. I mean, as you can override the refresh rate for both Glide and DX, setting your custom refresh rate implies an implicit limit for the FPS.
Just try out: type e.g. the string "0x0, 43" into a resolution combo box in the setup then apply it. 0x0 means that you don't want to override the resolution, but you set the refresh rate to 43Hz.
Unfortunately it work for Glide but not for DX, I don't know yet why.

Reply 861 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t

Obviously can't tell you what to do about colorkeying. I'm guessing you already ruled out an internal registry for per game compatibility fixes (which is a nasty non-adaptable way of doing it, but it's zero config for the user). Personally I'm a fan of options.

I checked Army Men and found that it's a palette issue (GDI/DDraw interaction again) which I fixed and the game now works.
Did you have to apply a DDraw app compat fix for Win8 to run this game? Because it sets the desktop to a 8bit mode when at startup which is not enabled by default on Win8 if I guess right.

It's not possible to set 8/16 bit color modes in Win8.

I applied no compatibility fixes.

Reply 862 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t

Future Cop: LAPD has broken FMV playback (black screen). Some issues with game dialogs (they use separate windows that might get "lost").

Resident Evil 2 also has broken FMV playback (black screen). Works in windowed mode though (game's windowed mode, not forced by dgVoodoo2). Mega Man Legends does the same (doesn't have a window mode, but shows FMVs only when forced windowed).

Addiction Pinball has palette issues. Works natively.
Puzzle Bobble / Bust a Move has palette issues. Works natively.

All perfect from minimal testing (or only have non-dgVoodoo2 issues):

Blade Runner
Croc: Legend of the Gobbos
Ecstatica II
Killing Time
Lego Racers
South Park Rally
Star Trek: Away Team
War Wind
War Wind II

Last edited by ZellSF on 2015-06-15, 17:30. Edited 2 times in total.

Reply 863 of 3949, by MrHacker234

User metadata
Rank Newbie
Rank
Newbie

Here is my problem:
Rally Championship 2000 / Mobil 1 Rally Championship / RC2000 vs my PC (Win8, 64bit, Nvidia 980) = help!

Question: how to run dgVoodoo 2 on GeForce 9600 GT (simillar problem like in first post). I know, this card supports maximum DX 10, but is it possible to detect my card on wrapper?

Reply 864 of 3949, by Expack3

User metadata
Rank Member
Rank
Member

Couple issues in Command & Conquer: Tiberian Sun:

  • Mouse movement causes slowdowns in-game when not using fast memory access.
  • Scrolling the screen in-game causes slowdowns.
  • With fast memory access, the in-game menus do not highlight what the mouse is actually hovering over.
  • The game outright freezes when selecting certain menu options in windowed mode (run the game with -win target option for windowed mode)

While these things are hardly noticeable on the game's native 800x600 resolution, manually editing the game's SUN.INI file and setting ScreenWidth and ScreenHeight to your desired resolution will cause these issues to manifest.
I've also taken the liberty of making a quick video which highlights many of these problems.

Reply 866 of 3949, by Expack3

User metadata
Rank Member
Rank
Member
ZellSF wrote:

Definitely want to see another alternative for Tiberian Sun, but just in case you didn't know: ts_ddraw (source) is pretty much perfect.

Oh, I know. It's just 1) dgVoodoo 2 does software rendering in hardware (not that I claim to know if there's any in TS even when using hardware DDraw), 2) DX11 tends to be better-supported driver-wise by AMD than OpenGL, and 3) why the heck not? It's always nice to try something different.

Reply 867 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t

I thought Killing Time's FMV playback issues weren't affected by dgVoodoo2, but apparently they are. It works natively in Win7 (and doesn't with dgVoodoo2).

However running the game in d3dwindower, dxwnd (in emulation mode) or with win8 ddraw all result in FMV corruption. Attached screenshot if that tells you anything (screenshot is of dxwnd, but dgVoodoo2 behaves exactly the same).

Some video playback function that doesn't like color conversion?

Attachments

  • Untitled.jpg
    Filename
    Untitled.jpg
    File size
    336.94 KiB
    Views
    3297 views
    File license
    Fair use/fair dealing exception

Reply 868 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t
MrHacker234 wrote:

Here is my problem:
Rally Championship 2000 / Mobil 1 Rally Championship / RC2000 vs my PC (Win8, 64bit, Nvidia 980) = help!

Question: how to run dgVoodoo 2 on GeForce 9600 GT (simillar problem like in first post). I know, this card supports maximum DX 10, but is it possible to detect my card on wrapper?

Well, there is no way to run dgVoodoo2 on a DX10.0 hw... 🙁
DX implementation doesn't use any 10.1 features but it's needed for cooperation with Glide.
A 10.0 impl could be created but I'm afraid the performance wouldn't be too great on a 10.0 hardware.

Reply 869 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t
Expack3 wrote:
Couple issues in Command & Conquer: Tiberian Sun: […]
Show full quote

Couple issues in Command & Conquer: Tiberian Sun:

  • Mouse movement causes slowdowns in-game when not using fast memory access.
  • Scrolling the screen in-game causes slowdowns.
  • With fast memory access, the in-game menus do not highlight what the mouse is actually hovering over.
  • The game outright freezes when selecting certain menu options in windowed mode (run the game with -win target option for windowed mode)

While these things are hardly noticeable on the game's native 800x600 resolution, manually editing the game's SUN.INI file and setting ScreenWidth and ScreenHeight to your desired resolution will cause these issues to manifest.
I've also taken the liberty of making a quick video which highlights many of these problems.

I have no performance issues with the game but indeed, the menu highlight bug is present. I'll check that.
Windowed mode has issues. It doesn't freeze but the opening menus simply don't show up. Unfortunately it's an issue that seems untreatable. 🙁
(The game places physical windows, namely a complete dialog window with a Windows-listbox in front of the game window. The game utilizes that real DDraw can freely overwrite anything on the desktop but DX11 can't do that.)

Last edited by Dege on 2015-06-16, 11:30. Edited 1 time in total.

Reply 870 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t
Future Cop: LAPD has broken FMV playback (black screen). Some issues with game dialogs (they use separate windows that might get […]
Show full quote

Future Cop: LAPD has broken FMV playback (black screen). Some issues with game dialogs (they use separate windows that might get "lost").

Resident Evil 2 also has broken FMV playback (black screen). Works in windowed mode though (game's windowed mode, not forced by dgVoodoo2). Mega Man Legends does the same (doesn't have a window mode, but shows FMVs only when forced windowed).
Addiction Pinball has palette issues. Works natively.
Puzzle Bobble / Bust a Move has palette issues. Works natively.

These all are because of the usual GDI/DDraw interaction issue. I'll try to impement some GDI hooking in the next version.

I thought Killing Time's FMV playback issues weren't affected by dgVoodoo2, but apparently they are. It works natively in Win7 (and doesn't with dgVoodoo2).

However running the game in d3dwindower, dxwnd (in emulation mode) or with win8 ddraw all result in FMV corruption. Attached screenshot if that tells you anything (screenshot is of dxwnd, but dgVoodoo2 behaves exactly the same).

Some video playback function that doesn't like color conversion?

I don't know but it seems the more to be some scaling problem. A region of the video is scaled up to the whole window. ?

Reply 871 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t
Dege wrote:

I thought Killing Time's FMV playback issues weren't affected by dgVoodoo2, but apparently they are. It works natively in Win7 (and doesn't with dgVoodoo2).

However running the game in d3dwindower, dxwnd (in emulation mode) or with win8 ddraw all result in FMV corruption. Attached screenshot if that tells you anything (screenshot is of dxwnd, but dgVoodoo2 behaves exactly the same).

Some video playback function that doesn't like color conversion?

I don't know but it seems the more to be some scaling problem. A region of the video is scaled up to the whole window. ?

I don't think so, the entire image is animating with too much fine detail (even if it is just noise) for that and colors are wrong. I also posted on dxwnd's discussion board.

About Tiberian Sun slowdown issues, IIRC I had lots of slowdown on my home computer and none on my work computer. Probably something weird going on that ts_ddraw works around, but I don't know what.

Only theories I have is that faster computers might end up making it slower or mouse polling rate factors in. I didn't say they were good theories.

Reply 872 of 3949, by Expack3

User metadata
Rank Member
Rank
Member
ZellSF wrote:
Dege wrote:

About Tiberian Sun slowdown issues, IIRC I had lots of slowdown on my home computer and none on my work computer. Probably something weird going on that ts_ddraw works around, but I don't know what.

Don't quote me on this, but I suspect ts_ddraw automatically suppresses the game's insistence on allotting temporary textures to both VRAM and system RAM, when the game actually draws from system RAM. Que increasing slowdowns as more objects are drawn....

By hex-editing 008AC20 and 0008AC40 in game.exe to look like this:

0C 8B 46 20 8B 4C 24 18 89 48 08 8A 44 24 1C 90
90 90 90 8B 46 20 8B 48 68 80 CD 08 89 48 68 A1

...you can suppress the allotment manually, meaning the game will only allot temporary textures to system RAM. It's an obscure fix which is highly recommended by all who know about it since it reliably and dramatically reduces slowdowns in the game without any side-effects.
(The only reason I know the hex-addresses to edit is because I looked at a TS modder friend's hex-edited EXE to see what he changed.)

Reply 874 of 3949, by Expack3

User metadata
Rank Member
Rank
Member
ZellSF wrote:

Here's an automated patcher for that, but IIRC it doesn't have any effect on non-native rendering (Win8 ddraw, WineD3D, ts_ddraw, not sure about dgVoodoo2). Essential for running the game natively though.

dgVoodoo2 is the odd one out in this case - the unmodified and modified temporary texture allocations affect dgVoodoo2 as they do native.

Reply 875 of 3949, by teleguy

User metadata
Rank Member
Rank
Member

Tachyon the Fringe only shows a black screen in 3DFx mode and when you kill the game from taskmanager gpu load stays at 100% until you reboot. Game works with old dgvoodoo 1.50 Beta2 but forcing resolution has no effect. (Works fine with nglide).

Mig 29 Fulcrum (same developer) also gives me a black screen. No 3D acceleration available with 1.50. Fine with nglide.

F16 Multirole Fighter same as Mig 29.

F 22 Lightening 3 same as the others.

Eurofighter Typhoon (DirectX) shows this error at launch with dgvoodoo:

euro.jpg
Filename
euro.jpg
File size
16.59 KiB
Views
3130 views
File license
Fair use/fair dealing exception

Reply 876 of 3949, by flamepanther

User metadata
Rank Newbie
Rank
Newbie

Here's an interesting test for old D3D. Highway Bowler:
http://www.oneonlinegames.com/download/highway-bowler

It's a freeware Japanese doujin game, and quite funny for the first few minutes 😁

Performance is very good and forcing texture filtering seems to work very well. However, the wrapper seems to cause artifacts around the edge of the ball/bomb regardless of which settings are used.

Reply 877 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t
Expack3 wrote:
ZellSF wrote:

Here's an automated patcher for that, but IIRC it doesn't have any effect on non-native rendering (Win8 ddraw, WineD3D, ts_ddraw, not sure about dgVoodoo2). Essential for running the game natively though.

dgVoodoo2 is the odd one out in this case - the unmodified and modified temporary texture allocations affect dgVoodoo2 as they do native.

I'll check it again but simple texture allocations shouldn't cause slowdowns. The typical case for performance loss is reading data back from a surface/texture that is also rendered by 3D (cpu/gpu interactions).

Mig 29 Fulcrum (same developer) also gives me a black screen. No 3D acceleration available with 1.50. Fine with nglide.

It's strange, I tried only this one so far but the only issue I got is a wrong z-order rendering in the game. A strip of the sky covers everything in the middle of the screen.
Other than that, it worked nicely, DDraw for menus and Glide for the game together.

Eurofighter Typhoon (DirectX) shows this error at launch with dgvoodoo:
euro.jpg

Is there a demo for that?

Here's an interesting test for old D3D. Highway Bowler: http://www.oneonlinegames.com/download/highway-bowler […]
Show full quote

Here's an interesting test for old D3D. Highway Bowler:
http://www.oneonlinegames.com/download/highway-bowler

It's a freeware Japanese doujin game, and quite funny for the first few minutes 😁

Performance is very good and forcing texture filtering seems to work very well. However, the wrapper seems to cause artifacts around the edge of the ball/bomb regardless of which settings are used.

Thanks, I will check that too! 😀

Reply 878 of 3949, by teleguy

User metadata
Rank Member
Rank
Member
Dege wrote:

Eurofighter Typhoon (DirectX) shows this error at launch with dgvoodoo:
euro.jpg

Is there a demo for that?

Yes there is.
http://www.fileplanet.com/58346/download/Euro … Non-Playable%29

It shows the same error.

Mig 29 Fulcrum (same developer) also gives me a black screen. No 3D acceleration available with 1.50. Fine with nglide.

It's strange, I tried only this one so far but the only issue I got is a wrong z-order rendering in the game. A strip of the sky covers everything in the middle of the screen.
Other than that, it worked nicely, DDraw for menus and Glide for the game together.

Ok, I tried replacing the glide.dlls of the Daum build of Dosbox with dgVoodoo 2 (this works fine with nglide) to play Descent 2 but there is the same issue so I guess the 3DFX part of dgVoodoo 2 doesnt work at all on my system for some reason.

Last edited by teleguy on 2015-06-21, 12:07. Edited 2 times in total.