VOGONS


dgVoodoo 2 for DirectX 11

Topic actions

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

Reply 1181 of 3950, by Dege

User metadata
Rank Oldbie
Rank
Oldbie
VEG wrote:

Dege, are you planning to release a new version of the dgVoodoo in the near future? 😀

Yes, at least a new WIP.
I'm just over the big DX implementation overhauling and refactoring.

I've added DX8.1 support (with some missing features like point sprites and depthstencil textures) and fixed a lot of bugs I came across during the development. Also, capability of dynamic shader compiling is also added to have DX impl working at maximum performance and because of DX8 bytecode shaders. (It only means that it needs d3dcompiler.dll for full set of DX8 level features and DX7 and below works better if that dll is present.)

Now I switch to 'testing and bugfixing' state but I want to tie up some loose ends and fix some known bugs before releasing anything so I need some more time. 😀

Wish Dege would come back with my problem with Kiss on Windows 8.1.

Let's wait till the next version. dgVoodoo DX internals changed a lot since 2.45. I don't say it will solve the problem but we will see how it behaves.

Not sure what I am doing wrong, but been having severe issues getting this to work at all.

dgVoodoo's Glide impl has issues with Radeon HD7xxx and R9 series as far as I know. Their drivers don't like its shaders for some reason and crash. 🙁
The only solution I see is implementing dynamic shaders for Glide some day.

It seems that dgVoodoo sends WM_ACTIVATEAPP(TRUE) message even when game window isn't active.

It's because dgVoodoo tries to keep Glide apps 'active' to avoid them to quit or crash. But as far as I remember, it only hide WM_ACTIVATE(FALSE) instead of sending it with TRUE but I should have a look into it.

Reply 1184 of 3950, by VEG

User metadata
Rank Newbie
Rank
Newbie
Dege wrote:

It's because dgVoodoo tries to keep Glide apps 'active' to avoid them to quit or crash. But as far as I remember, it only hide WM_ACTIVATE(FALSE) instead of sending it with TRUE but I should have a look into it.

Probably, it's better to do this feature optional. It is very important when game sets some keyboard hook when window is active, and unsets this keyboard hook when window becames inactive.

Best regards, Evgeny

Reply 1185 of 3950, by Dege

User metadata
Rank Oldbie
Rank
Oldbie
teleguy wrote:

What about OpenGL support?

Uhm, I don't think that I will implement that. What version of OpenGL do you need?
OpenGl >= 2.x is feeded (? fed or feeded? 😕 ) by shader sources directly, so I should even implement a (good) compiler to handle shaders somehow.
Not to mention tons of extensions...
Last time I tried TitaniumGL it worked for me.

VEG wrote:

Probably, it's better to do this feature optional. It is very important when game sets some keyboard hook when window is active, and unsets this keyboard hook when window becames inactive.

Yes, an option 'keep app alive' or something like that.

Reply 1186 of 3950, by leileilol

User metadata
Rank l33t++
Rank
l33t++

I disagree about the OpenGL support, unless it's just a simple wrapper that forces a 32-bit buffer (some opengl games are a-holes) and keeps a reasonably limited extension list to prevent crashes for the id Tech2 stuff, but even then one could use a 3dfx minigl with dgvoodoo2 to get around that 😀

OpenGL support isn't in a haphazard DirectX3-7 state.

apsosig.png

Reply 1187 of 3950, by teleguy

User metadata
Rank Member
Rank
Member
leileilol wrote:

OpenGL support isn't in a haphazard DirectX3-7 state.

On AMD it is. There exists an issue similar to the broken DirectX legacy support on newer Catalyst versions.

I can be fixed by using the atioglxx.dll from an older driver but that doesn't work with the newest gpus and reportedly not at all on Windows 10.

http://pcgamingwiki.com/wiki/Star_Wars:_Knigh … ng_AMD_graphics
http://deadlystream.com/forum/topic/3080-how- … th-ati-drivers/
https://steamcommunity.com/app/244160/discuss … 456760263277753
http://steamcommunity.com/app/208200/discussi … 094415844189276

Last edited by teleguy on 2015-11-17, 00:59. Edited 1 time in total.

Reply 1188 of 3950, by teleguy

User metadata
Rank Member
Rank
Member
Dege wrote:
Uhm, I don't think that I will implement that. What version of OpenGL do you need? OpenGl >= 2.x is feeded (? fed or feeded? :c […]
Show full quote
teleguy wrote:

What about OpenGL support?

Uhm, I don't think that I will implement that. What version of OpenGL do you need?
OpenGl >= 2.x is feeded (? fed or feeded? 😕 ) by shader sources directly, so I should even implement a (good) compiler to handle shaders somehow.
Not to mention tons of extensions...
Last time I tried TitaniumGL it worked for me.

With TitaniumGL and GLDirect Kotor crashes immidiately, with QuindieGL all menus are missing. Mesa 3D is slow (software only) and lots of stuff is missing.

Using Mesa FX + Nglide works surprisingly well but everything is tinted red and the z-buffer is inverted.

swkotor.exe_2015-11-16-22-24-02-286.jpg
Filename
swkotor.exe_2015-11-16-22-24-02-286.jpg
File size
135.56 KiB
Views
2949 views
File license
Fair use/fair dealing exception

Reply 1189 of 3950, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie
leileilol wrote:

prevent crashes for the id Tech2 stuff

For q1-q2-q3 games:
1) Locate the renderer (it may be in the main .exe or in something like ref_gl.dll)
2) Find "GL_EXTENSIONS: %s" string.
3) Replace %s to %p, save, play.
4) Return the original value before patching the game.
Amd Catalysts have atiogl.xml (used if Catalyst AI is enabled) but it's buggy.

Asus P4P800 SE/Pentium4 3.2E/2 Gb DDR400B,
Radeon HD3850 Agp (Sapphire), Catalyst 14.4 (XpProSp3).
Voodoo2 12 MB SLI, Win2k drivers 1.02.00 (XpProSp3).

Reply 1190 of 3950, by ZellSF

User metadata
Rank Oldbie
Rank
Oldbie

Requiem: Avenging Angel behaves weirdly in dgVoodoo2.

In Glide mode, controls are really unresponsive (try pressing escape ingame).
In D3D mode it's better, but still far from good (try using the force jump... i mean flight... ability a few times, then repeat the same exercise with nGlide).

Reply 1191 of 3950, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

The current WIP is available:

http://dege.fw.hu/temp/dgVoodooWIP11.zip
also, you may need:
http://dege.fw.hu/D3DCompiler_43.zip

What you should know about the new features since v2.45:

1. DX8.1 support is added

What are not supported in this version but planned to be in the future:

- Depth textures
- Volume textures
- Point sprites
- MSAA (can only be forced externally through the setup)

All other DX8.1 features are supported but it all is in an early stage of development, it's not overtested.
So, don't hold your breath.

2. Dynamic shader compiling for DX/DX8 is added

For the best performance and full DX8.1 feature set you need a dll that is not part of the operating system. It's 'D3DCompiler_43.dll' but I'm not sure if I want to include it in the dgVoodoo pack, so download it somewhere from the net.
The best practice is to copy it into the \Windows\System32 folder.

- If dgVoodoo cannot find and use that dll then it only able to use its precompiled generalized shaders (just like previous versions) that can't
provide maximum GPU performance, especially on weaker video cards.

Furthermore, in this case

* DX6/7 supports full DX7-level fixed function pixel pipeline processing with only 4 texture stages.

* DX8.1 supports only DX7-level fixed function pixel pipeline processing with only 4 texture stages and there is no support for bytecode
vertex/pixel shaders.

- If dgVoodoo finds and uses the compiler dll then it can adapt to the current circumstances and drive the GPU by specialized shaders,
reaching maximum performance.

Furthermore, in this case

* DX6/7 supports full DX7-level fixed function pixel pipeline processing with all of the 8 texture stages.

* DX8.1 supports full DX8-level fixed function pixel pipeline processing with all of the 8 texture stages and all kind of the bytecode shaders
are supported (vs.1.0, vs.1.1, ps.1.0, ps.1.1, ps.1.2, ps.1.3, ps.1.4)

3. I encountered and fixed certain bugs during the DX code refactoring.

But a few things is still in todo-phase, like improving fast video memory access, and so on.
So this version probably won't help on Jedi Knights, for example.

As for DX8, I only tested it with the following stuffs:

- MS DX8 SDK sample binaries
- Duke Nukem Manhattan Project (Demo)
- Elf Bowling - The Last Insult
- Fox Jones (Demo)
- Pirate Hunter
- Platoon
- Rayman3 (Demo)
- R.C. Cars
- Splinter Cell Pandora Tomorrow
This one is not perfect; frozen video picture during movies and bad screen when I get on an eyeglass or sg like that,
apart from that it seems to be OK, but I'm unsure as it definitely runs broken for me natively (and this game has an
anti-debug protection so I cannot debug it).

Some scene demos:
- etTV by Fairlight http://www.pouet.net/prod.php?which=3007
- Glon 243 by cocoon http://www.pouet.net/prod.php?which=2906
- Media Huora by kooma http://www.pouet.net/prod.php?which=1236
- Insanity http://www.pouet.net/prod.php?which=3125
- Stuka by Orion http://www.pouet.net/prod.php?which=3048
- Paradise by medieval http://www.pouet.net/prod.php?which=2411
- soepmaker by Kontvlokken Posse http://www.pouet.net/prod.php?which=3360
- stigma by Emotive http://www.pouet.net/prod.php?which=1474
- Subcultural Reflection by Unique http://www.pouet.net/prod.php?which=1601
- synergy (hihi) by Discipline http://www.pouet.net/prod.php?which=15628
- Polyester Pimp Deluxe by the PIMP brigade http://www.pouet.net/prod.php?which=3921
- the reason we're not moving by Unique http://www.pouet.net/prod.php?which=3148
- You cannot run away by damage http://www.pouet.net/prod.php?which=1887

Reply 1193 of 3950, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie

*Splinter Cell 1 - projector mode (ForceShadowMode=0): Funky Colors on some surfaces/materials -> http://postimg.org/image/qt42e3gcz/
*Splinter Cell 1 - buffer mode ( ForceShadowMode=1): Crash
*Splinter Cell 2: Crash

For Splinter Cell 2 (and GeForce 4 shadowbuffer feature) see here: http://www.jiri-dvorak.cz/scellpt/

EDIT: good news: ReShade already runs perfectly on top of dgvoodoo, see the SMAA+Sharpen applied here (funky colors and terrible performance apart 😁 ) -> http://postimg.org/image/705qqm74j/

Reply 1194 of 3950, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie

Max Payne 1 and 2 (and maybe 3DMark 2000/2001) crash @start: http://postimg.org/image/85mjjbjl7/ + http://postimg.org/image/hnt8rsrph/

Maybe you can take a look here: http://reshade.me/forum/releases/419-d3d8to9 (ReShade hooks MP1/MP2 without any problem)

Reply 1196 of 3950, by teleguy

User metadata
Rank Member
Rank
Member
lowenz wrote:

Max Payne 1 and 2 (and maybe 3DMark 2000/2001) crash @start: http://postimg.org/image/85mjjbjl7/ + http://postimg.org/image/hnt8rsrph/

Maybe you can take a look here: http://reshade.me/forum/releases/419-d3d8to9 (ReShade hooks MP1/MP2 without any problem)

3DMark2000 uses DirectX 7. Dege explained a while ago that 3DMark2000 was coded somewhat improperly so it's pretty hard to support it. The same might be true for 2001.

Reply 1197 of 3950, by ZellSF

User metadata
Rank Oldbie
Rank
Oldbie

Farscape: The Game works, not playable though. It has rendering errors: it doesn't render polygons that are supposed to have a shadow effect over them. Works natively.

A game which I thought was D3D8, but isn't: Hundred Swords fails to initialize Direct3D. Works natively.

Reply 1199 of 3950, by Dege

User metadata
Rank Oldbie
Rank
Oldbie
lowenz wrote:

Do I need D3DImm.dll and DDraw.dll for a D3D8 engine? I think not, right?

No, D3D8 is a standalone component.

lowenz wrote:

*Splinter Cell 2: Crash

At what point does it crash?
Do you have d3dcompiler_43.dll? It won't work without it because SC2 uses DX8 shaders.
Also, I had to copy D3D8.dll into the game folder and into the offline\system folder too because pandora.exe is just the menu/launcher app.

lowenz wrote:

For Splinter Cell 2 (and GeForce 4 shadowbuffer feature) see here: http://www.jiri-dvorak.cz/scellpt/

Hmm... cool. I have water reflections and shadows with proper lightsources. The shadow seems a bit pixelated and I don't know if it's normal, compared to the native mode.

splintercell2.jpg
splintercell2.jpg

Edit: I attached screenshots.