Reply 1180 of 3949, by VEG
- Rank
- Newbie
Dege, are you planning to release a new version of the dgVoodoo in the near future? 😀
Best regards, Evgeny
Dege, are you planning to release a new version of the dgVoodoo in the near future? 😀
Best regards, Evgeny
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.
DX 8.1 support looks promising! Deus Ex: Invisible War runs like shit with the Catalyst drivers newer than 13.1.
11 1 111 11 1 1 1 1 1 11 1 1 111 1 111 1 1 1 1 111
What about OpenGL support?
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
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.
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.
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.
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
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 […]
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.
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).
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).
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
Testing with Splinter Cell 1 & 2 😁
Do I need D3DImm.dll and DDraw.dll for a D3D8 engine? I think not, right?
*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/
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)
Well, Max Payne 2's problem seems pretty clearly written out: it needs DX9.
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.
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.
wrote:Well, Max Payne 2's problem seems pretty clearly written out: it needs DX9.
But Afterburner+RTSS say it's D3D*8* game @runtime :p
wrote:Do I need D3DImm.dll and DDraw.dll for a D3D8 engine? I think not, right?
No, D3D8 is a standalone component.
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.
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.
Edit: I attached screenshots.