VOGONS


dgVoodoo 2 for DirectX 11

Topic actions

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

Reply 421 of 3949, by teleguy

User metadata
Rank Member
Rank
Member
Silanda wrote:

My observation with Jedi Knight is that the game's menus are unstable whatever you do when running on Windows 8. It seems more stable with dgVoodoo than without though. Some of the resolutions in software mode crash with dgVoodoo whether the -windowgui switch is used or not. I haven't tested this much but the game actually reports more resolutions available using dgVoodoo than it does with native DDraw, and it may be these extra resolutions that crash.

I did a few more tests. The game shows the same resolutions in softwaremode with and without dgVoodoo however higher resolutions now also crash the game without the wrapper. These resolutions used to work and I think the problem might have to do with the fact that I recently upgraded my driver.

Reply 424 of 3949, by leileilol

User metadata
Rank l33t++
Rank
l33t++

Seems to work great with Kiss Psycho Circus except for the finicky mode setting. I can't get it to 1920x1080 at times.

Oh btw no banding here. though it does suck the game's textures are all 16bit formats and has nothing to do with the API or the wrapper, but rather the engine's development in the 1st/2nd gen 3d card era, being tailored for the Voodoo1-2 line and the older Rages and Rivas.

apsosig.png
long live PCem

Reply 425 of 3949, by TriHexagon

User metadata
Rank Newbie
Rank
Newbie

Jedi Knight always crashes when I start a new game/load game. First I see the Watermark on the right bottom, then the screen is completely black and JK closes itself without a message.

Before some tests I got the "a error occured" window and could start visual studio debugger. It said that there is an execption at 0x08F2B7EC in D3DImm.dll (JK.EXE: 0xC0000005: segmentation fault by reading at position 0x00000001).

Did I something wrong, or is this an issue in dgVoodoo? I copied D3DImm.dll, DDraw.dll and dgVoodooSetup.exe into the game folder. I set hardware acceleration on and resolution to 1920x1080 (also 1024x786).

My system:
Microsoft Windows 8.1 Pro (6.3.9600 Build 9600)
AMD FX-6300
AMD Radeon HD 7750 (14.12 AMD Catalyst)

Reply 427 of 3949, by ZellSF

User metadata
Rank l33t
Rank
l33t

Little Big Adventure 2 actually works with FunnyFrog's patch. Is what that patch does interesting info?

What causes the display problem and how is it fixed? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LBA2 doesn't query d […]
Show full quote

What causes the display problem and how is it fixed?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LBA2 doesn't query display driver for pitch value (the difference between
addresses of the first pixels of two consecutive lines of image) at the right
time. It apparently uses the value returned by IDirectDraw.EnumDisplayModes
method, which may be incorrect with some drivers. The patch changes the code to
read the pitch value after each call to IDirectDrawSurface.Lock.

(in dgVoodoo2 there is no display problem; it just crashes).

Reply 428 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

found them over here too
http://www.alexstjohn.com/WP/2013/02/08 ... downloads/

THANKS!! 😎

Seems to work great with Kiss Psycho Circus except for the finicky mode setting. I can't get it to 1920x1080 at times.

Isn't it because LithTech cannot handle resolution >1000 lines as ZellSF wrote?

You have multiple monitor setup? The same thing happens for me when both monitors are on otherwise its good.

It strange. Did one monitor setup solve the problem?
It shouldn't be an issue anyway. Could you tell me what is the base address of D3DImm.dll when seeing the crash in the debugger? Maybe I could check what crashes.

(in dgVoodoo2 there is no display problem; it just crashes).

Thanks for that, I've just fixed it.

(BTW, with dgVoodoo, pitch values are always matches the surface width to avoid cases like that. There are a lot of games handling pitch badly.)

Edit: BTW, G-Police seems to work fine now.

Reply 429 of 3949, by TriHexagon

User metadata
Rank Newbie
Rank
Newbie
Dege wrote:

You have multiple monitor setup? The same thing happens for me when both monitors are on otherwise its good.

It strange. Did one monitor setup solve the problem?
It shouldn't be an issue anyway. Could you tell me what is the base address of D3DImm.dll when seeing the crash in the debugger? Maybe I could check what crashes.

No sorry, I only have one display (AMD Catalyst says the same).

Here some information from VS debugger:

exception at 0x08FCB7EC (D3DImm.dll) in JK.EXE: 0xC0000005: segmentation fault by reading at position 0x00000001

JK.EXE 00400000-008F5000 [3732] JK.EXE
D3DImm.dll 08FB0000-0901D000* [3732] JK.EXE
DDraw.dll 10000000-1002B000 [3732] JK.EXE

Call stack:
> D3DImm.dll!08fcb7ec()
D3DImm.dll!08fcd78e()
JK.EXE!0042ac06()
JK.EXE!00443d3c()
JK.EXE!0043abea()
JK.EXE!00401f58()
JK.EXE!00403d0e()
JK.EXE!004039cb()
JK.EXE!0050e99d()
JK.EXE!0041ebee()
JK.EXE!00513b3f()
[extern code]

Reply 430 of 3949, by leileilol

User metadata
Rank l33t++
Rank
l33t++
Dege wrote:

Isn't it because LithTech cannot handle resolution >1000 lines as ZellSF wrote?

It can "handle" it (as in display a 1920x1080x32 screen with Vert-), it just seems to have trouble recognizing the mode is there and setting it. Often have to alt-tab for it to change to 1080

There are huge slowdowns when a bunch of gibby dismemberment carnage happens (particularly surrounded by 2 headless spawners giving you a crapload of headlesses while you slice and dice every one of them) and when you use the save/load menu, but I consider that slowdown as part of the immersion 😜 and phong is off i'm sure

apsosig.png
long live PCem

Reply 431 of 3949, by StrikerMan780

User metadata
Rank Newbie
Rank
Newbie

Looks like all of the Direct3D 3 games I've tried so far have the same depth sorting issues as Hellbender. (Hellbender, Outwars, and CART... perhaps it's a common trait of Direct3D 3 where it lacks depth sorting/is buggy? Perhaps the information is backwards?) Hopefully some solution can be found.

I remember there being ONE video card I've used in the 90s that didn't have the sort issues, but I cannot recall which. Probably the card they had in mind when the game was designed. (A Diamond Monster card, iirc.)

The reason I think its backwards is because when two polygons intersect, it's always the nearest polygons that get rendered behind the farthest intersecting polygons. If the sorting was inverted, it would likely look right.

Reply 432 of 3949, by Silanda

User metadata
Rank Member
Rank
Member

Just a couple of updates on my experiences based on the latest release:

Bridge Commander: Some textures are missing and/or the lighting seems screwed up (too dark, like some lights are missing), the viewscreen still has a ghosting problem where anything displayed over it (e.g. mouse cursor) isn't cleared.
Shadows of the Empire: Except for the missing fog it's fine now for me. The only minor issue is that the text is nearly illegible. This is a problem to a lesser extent when running without dgVoodoo.

Last edited by Silanda on 2015-02-03, 01:15. Edited 1 time in total.

Reply 433 of 3949, by teleguy

User metadata
Rank Member
Rank
Member

X-Wing vs Tie Fighter (GoG release) almost works except that the game crashes a few seconds after entering flight mode both in software and hardware mode.

Attachments

  • BoP.jpg
    Filename
    BoP.jpg
    File size
    84.2 KiB
    Views
    4627 views
    File license
    Fair use/fair dealing exception

Reply 434 of 3949, by teleguy

User metadata
Rank Member
Rank
Member

Update:
I just noticed that the main game of XvT seems to work completely fine (dgvoodoo even fixes most of the issues the game has when enabling 3D mode), it's only the addon (Balance of Power) that crashes all the time.

There are even training missions that are exactly the same in both games and the mission runs without problem in XvT but crashes immediately in BoP.

Reply 435 of 3949, by Silanda

User metadata
Rank Member
Rank
Member

Another quick report.

Rogue Squadron: No in depth testing here but the game appears to work in D3D mode, with one snag. The launcher does not recognize D3D modes as available if dgVoodoo is used. The mode has to be selected and the dgVoodoo files added afterwards.

Reply 436 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t
Call stack: > D3DImm.dll!08fcb7ec() D3DImm.dll!08fcd78e() JK.EXE!0042ac06() JK.EXE!00443d3c() JK.EXE!0043abea() JK.EXE!00401f58( […]
Show full quote

Call stack:
> D3DImm.dll!08fcb7ec()
D3DImm.dll!08fcd78e()
JK.EXE!0042ac06()
JK.EXE!00443d3c()
JK.EXE!0043abea()
JK.EXE!00401f58()
JK.EXE!00403d0e()
JK.EXE!004039cb()
JK.EXE!0050e99d()
JK.EXE!0041ebee()
JK.EXE!00513b3f()
[extern code]

I installed JK and reproduced the same callstack (without crash).
However what I don't understand at all is that JK calls into DirectDraw at that point (blitting), not into D3D.
The crashing point you posted is in a SetViewport method with an invalid data pointer. More misty is, that pointer couldn't be invalid (0x00000001) under any circumstances because it's an address within the stack. 😕 😕
The only explanation for "miscalling" is some object pointer corruption in the game itself (if corruption came by a random memory filling from somewhere else then there is 0 chance to overwrite an object pointer with an other valid object pointer).
I forgot to mention that I always use the original version of games to try with dgVoodoo, without any additional game plugins or something.
Did you tried the orig version of JK or some modified one?

There are huge slowdowns when a bunch of gibby dismemberment carnage happens (particularly surrounded by 2 headless spawners giving you a crapload of headlesses while you slice and dice every one of them) and when you use the save/load menu, but I consider that slowdown as part of the immersion 😜 and phong is off i'm sure

I will search for a savegame to reproduce such a slowdown situation and check it. (Phong is irrelevant here because LithTech does T&L calculations on its own.)

Looks like all of the Direct3D 3 games I've tried so far have the same depth sorting issues as Hellbender. (Hellbender, Outwars, and CART... perhaps it's a common trait of Direct3D 3 where it lacks depth sorting/is buggy? Perhaps the information is backwards?) Hopefully some solution can be found.

Is there possibility of using savegames in Hellbender? If I could reproduce a scene where the issue comes then I could check what happens by native DX.

Thanks for the new reports BTW!

Reply 437 of 3949, by TriHexagon

User metadata
Rank Newbie
Rank
Newbie
Dege wrote:
I installed JK and reproduced the same callstack (without crash). However what I don't understand at all is that JK calls into D […]
Show full quote

I installed JK and reproduced the same callstack (without crash).
However what I don't understand at all is that JK calls into DirectDraw at that point (blitting), not into D3D.
The crashing point you posted is in a SetViewport method with an invalid data pointer. More misty is, that pointer couldn't be invalid (0x00000001) under any circumstances because it's an address within the stack. 😕 😕
The only explanation for "miscalling" is some object pointer corruption in the game itself (if corruption came by a random memory filling from somewhere else then there is 0 chance to overwrite an object pointer with an other valid object pointer).
I forgot to mention that I always use the original version of games to try with dgVoodoo, without any additional game plugins or something.
Did you tried the orig version of JK or some modified one?

Oh sorry, I forgot to say that I use the gog.com version of JK. But it seems that lots of people use your fix with this version and I'm the only one, who get that crash.
(see: http://www.gog.com/forum/star_wars_dark_force … s_for_all/page1)

I also have the CD version of JK without MOTS and I tested dgVoodoo with that version. It works. It seems that gog did some own fixes in the rendercode and under some circumstances it comes to a incompatability between dgVoodoo and JK gog.com version. I also noticed that the CD version uses dgVoodoo in the main menu, gog.com version does that not, not before new game/load game.

Here is the asm code that calls the SetViewport Method:

...
0042AB80 ?? ??
0042AB81 ?? ??
0042AB82 ?? ??
0042AB83 ?? ??
0042AB84 ?? ??
0042AB85 ?? ??
0042AB86 ?? ??
0042AB87 ?? ??
0042AB88 ?? ??
0042AB89 ?? ??
0042AB8A ?? ??
0042AB8B ?? ??
0042AB8C push ebp
0042AB8D add byte ptr [ebx-3Dh],bl
0042AB90 sub esp,74h
0042AB93 push edi
0042AB94 mov ecx,19h
0042AB99 xor eax,eax
0042AB9B lea edi,[esp+14h]
0042AB9F rep stos dword ptr es:[edi]
0042ABA1 mov eax,dword ptr ds:[00865258h]
0042ABA6 mov edx,dword ptr ds:[865328h]
0042ABAC sub eax,10h
0042ABAF mov ecx,dword ptr ds:[865324h]
0042ABB5 neg eax
0042ABB7 sbb eax,eax
0042ABB9 mov dword ptr [esp+8],ecx
0042ABBD and eax,0FFFFh
0042ABC2 mov dword ptr [esp+14h],64h
0042ABCA mov dword ptr [esp+64h],eax
0042ABCE mov eax,dword ptr ds:[00865320h]
0042ABD3 mov dword ptr [esp+4],eax
0042ABD7 add eax,edx
0042ABD9 mov dword ptr [esp+0Ch],eax
0042ABDD mov eax,dword ptr ds:[0086532Ch]
0042ABE2 add ecx,eax
0042ABE4 mov dword ptr [esp+10h],ecx
0042ABE8 mov eax,dword ptr ds:[0055C4BCh]
0042ABED lea edx,[esp+4]
0042ABF1 mov ecx,dword ptr [eax]
0042ABF3 push 0
0042ABF5 push 0
0042ABFA push 0
0042ABFC push 2
0042ABFE push edx
0042ABFF push 1
0042AC01 push eax
0042AC02 nop
0042AC03 call dword ptr [ecx+50h] ; here is the last call to D3DImm.dll
...

Mhm maybe it calls the method wrong (push 1 -> wrong push order?) or DirectDraw interpret the arguments differently than your version (for example: if the arguments are invalid, use other arguments). Just my speculation 😉 . Is that possible?

Reply 438 of 3949, by teleguy

User metadata
Rank Member
Rank
Member
TriHexagon wrote:

I also have the CD version of JK without MOTS and I tested dgVoodoo with that version. It works. It seems that gog did some own fixes in the rendercode and under some circumstances it comes to a incompatability between dgVoodoo and JK gog.com version. I also noticed that the CD version uses dgVoodoo in the main menu, gog.com version does that not, not before new game/load game.

Is there a sdb file in your JK folder? If so could you upload it?