VOGONS


First post, by Estel Randir

User metadata
Rank Newbie
Rank
Newbie

Instead of necroing the other thread regarding the DDraw (2019) issue, I post a new one.

Win10, dgVoodoo2 2.79 (also 2.55), GoG version of the game.

[1] Game Crash Due To DDraw.dll.

DgVoodoo2's DDraw.dll file still causes game crash when you enter the spell menu and click on any spell school. It crashes with the following error:
The instruction at 00000000 referenced memory at 00000000. The memory could not be read from.

Others report the same issue over on GoG. https://www.gog.com/forum/wizards_and_warrior … search=dgvoodoo.

[2] Screen "melting":

Dege, I read your comments in 2019 regarding screen melting (around menus, etc) being caused by forced resolutions & to use ISF. That does not work for me either. If I use anything other than "unforced" I will get screen melting.

This is really a great gem of a game. Can anything be done to fix these issues other than simply not using dgVoodoo's DDraw.dll?

Reply 1 of 14, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
Estel Randir wrote on 2022-07-28, 05:47:
Instead of necroing the other thread regarding the DDraw (2019) issue, I post a new one. […]
Show full quote

Instead of necroing the other thread regarding the DDraw (2019) issue, I post a new one.

Win10, dgVoodoo2 2.79 (also 2.55), GoG version of the game.

[1] Game Crash Due To DDraw.dll.

DgVoodoo2's DDraw.dll file still causes game crash when you enter the spell menu and click on any spell school. It crashes with the following error:
The instruction at 00000000 referenced memory at 00000000. The memory could not be read from.

Others report the same issue over on GoG. https://www.gog.com/forum/wizards_and_warrior … search=dgvoodoo.

[2] Screen "melting":

Dege, I read your comments in 2019 regarding screen melting (around menus, etc) being caused by forced resolutions & to use ISF. That does not work for me either. If I use anything other than "unforced" I will get screen melting.

This is really a great gem of a game. Can anything be done to fix these issues other than simply not using dgVoodoo's DDraw.dll?

dgVoodoo2 s DDraw.dll is required to link the main Direct3D dll, d3dimm.dll. Thus it may not work. However you may try renaming d3dimm.dll to d3dim.dll and see if anything improves, but it is not guaranteed.

Alternatively, you can hex edit the game's dll(s) or executable(s) to link to a different d3dim.dll name (such as d3dpm.dll) which is useful in cases the game doesn't want to read the d3dimm.dll renamed d3dim.dll you put in the folder.

previously known as Discrete_BOB_058

Reply 2 of 14, by Estel Randir

User metadata
Rank Newbie
Rank
Newbie
BEEN_Nath_58 wrote on 2022-07-28, 10:33:

dgVoodoo2 s DDraw.dll is required to link the main Direct3D dll, d3dimm.dll. Thus it may not work. However you may try renaming d3dimm.dll to d3dim.dll and see if anything improves, but it is not guaranteed.

Alternatively, you can hex edit the game's dll(s) or executable(s) to link to a different d3dim.dll name (such as d3dpm.dll) which is useful in cases the game doesn't want to read the d3dimm.dll renamed d3dim.dll you put in the folder.

The first does not work. The game now runs in software mode. The second isn't happening unless someone writes a step by step guide.

Reply 3 of 14, by Dege

User metadata
Rank l33t
Rank
l33t

I'll look into this when I have some time. I can't remember if I was able to reproduce the crash back in 2019 (probably not).

But anyway, does the debug layer say something before the crash? Like failed object creation or sg like that?

Or, it's because of a gog hack like simply casting a D3D interface to a newer version which was already a problem years ago with dgVoodoo for the gog edition of a Star Wars game.

Btw, games do not link to d3d(im).dll. D3D is aggregated on top of DirectDraw (only the implementation is in a separated dll), so it can only be instanciated through ddraw.dll.

Reply 4 of 14, by Estel Randir

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2022-07-31, 18:50:
I'll look into this when I have some time. I can't remember if I was able to reproduce the crash back in 2019 (probably not). […]
Show full quote

I'll look into this when I have some time. I can't remember if I was able to reproduce the crash back in 2019 (probably not).

But anyway, does the debug layer say something before the crash? Like failed object creation or sg like that?

Or, it's because of a gog hack like simply casting a D3D interface to a newer version which was already a problem years ago with dgVoodoo for the gog edition of a Star Wars game.

Btw, games do not link to d3d(im).dll. D3D is aggregated on top of DirectDraw (only the implementation is in a separated dll), so it can only be instanciated through ddraw.dll.

I downloaded the debugger version and ran until the crash (see attached log). I used the "message enabled" on the info message severity, warning message severity, error message severity. No message popup from the debugger.

However if I enable "message enabled with debugger break", the first time I try to execute deep6.exe I get the following windows popup dialogue (see attached):

The program encountered a problem at address 75ab44e2 and cannot continue

I am running Windows 10 fully updated, dgVoodoo 2.7.9.1 (debugger). 2.7.9.1 regular.

Attachments

  • Filename
    Wizards and warriors error dialogue.pdf
    File size
    15.61 KiB
    Downloads
    41 downloads
    File comment
    Debug log
    File license
    Public domain
  • Filename
    debug.log
    File size
    874 Bytes
    Downloads
    42 downloads
    File comment
    error screenshot
    File license
    Public domain

Reply 5 of 14, by Dege

User metadata
Rank l33t
Rank
l33t

I checked it out the game (GOG version) and saw that one of my dd blit improvement introduced in 2.63.1 broke some things in the game. Blurry 2D elements and white background at the top-left corner behind the 3D rendered image of the current player character.
I've just fixed those problems, and I cannot see grahpical glitches if the upscaled resolution is integer-times of the game resolution. For me, the game res is 640x480 and it's upscaled to 1920x1440 (scaling factor of 3).

I could also reproduce the spellbook crash. I don't know why it only comes with dgVoodoo (at least, I cannot run it natively) but it's because of a stack corruption in the game code.
I patched the patch in the executable, and now it works. Since its' a GOG version (2,304,147 bytes), I only share the bytes to modify in a hex editor:

offset 2a892: FF 74 24 10 8B F2 97
offset 2a912: 90 90 5D
offset 2aa18: FF 74 24 10 8B F2 97
offset 2aa4d: 90 90 5D

For now, it's a solution together with dgv 2.63. I'll bring back the visuals of 2.63 along with better resolution for 3D models inside the HUD in the next version.
The integer resolution upscale should also work with 2.63 (I didn't try 2.55, tbh I hate that version by now).

Btw, the debug logs indeed does not appear with this game. Only if I rename deep6.exe to sg else.

Reply 6 of 14, by Estel Randir

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2022-08-06, 20:06:
I checked it out the game (GOG version) and saw that one of my dd blit improvement introduced in 2.63.1 broke some things in the […]
Show full quote

I checked it out the game (GOG version) and saw that one of my dd blit improvement introduced in 2.63.1 broke some things in the game. Blurry 2D elements and white background at the top-left corner behind the 3D rendered image of the current player character.
I've just fixed those problems, and I cannot see grahpical glitches if the upscaled resolution is integer-times of the game resolution. For me, the game res is 640x480 and it's upscaled to 1920x1440 (scaling factor of 3).

I could also reproduce the spellbook crash. I don't know why it only comes with dgVoodoo (at least, I cannot run it natively) but it's because of a stack corruption in the game code.
I patched the patch in the executable, and now it works. Since its' a GOG version (2,304,147 bytes), I only share the bytes to modify in a hex editor:

offset 2a892: FF 74 24 10 8B F2 97
offset 2a912: 90 90 5D
offset 2aa18: FF 74 24 10 8B F2 97
offset 2aa4d: 90 90 5D

For now, it's a solution together with dgv 2.63. I'll bring back the visuals of 2.63 along with better resolution for 3D models inside the HUD in the next version.
The integer resolution upscale should also work with 2.63 (I didn't try 2.55, tbh I hate that version by now).

Btw, the debug logs indeed does not appear with this game. Only if I rename deep6.exe to sg else.

It is great that you found the fix. I seem to have the same GoG deep6.exe. Setup wizards and warriors 1.0b hotfix2 (23816). Using HxD with the options 16, Windows (ANSI), & hex chosen, I look in the "offset" column and used the search for the offsets you listed, and nothing is found. Even if I found them, I am not 100% sure what I am supposed to be doing with them. I am incompetent at using a hex editor. Always have been. So, I guess I am out of luck at fixing it.

Reply 7 of 14, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
Estel Randir wrote on 2022-08-07, 02:30:
Dege wrote on 2022-08-06, 20:06:
I checked it out the game (GOG version) and saw that one of my dd blit improvement introduced in 2.63.1 broke some things in the […]
Show full quote

I checked it out the game (GOG version) and saw that one of my dd blit improvement introduced in 2.63.1 broke some things in the game. Blurry 2D elements and white background at the top-left corner behind the 3D rendered image of the current player character.
I've just fixed those problems, and I cannot see grahpical glitches if the upscaled resolution is integer-times of the game resolution. For me, the game res is 640x480 and it's upscaled to 1920x1440 (scaling factor of 3).

I could also reproduce the spellbook crash. I don't know why it only comes with dgVoodoo (at least, I cannot run it natively) but it's because of a stack corruption in the game code.
I patched the patch in the executable, and now it works. Since its' a GOG version (2,304,147 bytes), I only share the bytes to modify in a hex editor:

offset 2a892: FF 74 24 10 8B F2 97
offset 2a912: 90 90 5D
offset 2aa18: FF 74 24 10 8B F2 97
offset 2aa4d: 90 90 5D

For now, it's a solution together with dgv 2.63. I'll bring back the visuals of 2.63 along with better resolution for 3D models inside the HUD in the next version.
The integer resolution upscale should also work with 2.63 (I didn't try 2.55, tbh I hate that version by now).

Btw, the debug logs indeed does not appear with this game. Only if I rename deep6.exe to sg else.

It is great that you found the fix. I seem to have the same GoG deep6.exe. Setup wizards and warriors 1.0b hotfix2 (23816). Using HxD with the options 16, Windows (ANSI), & hex chosen, I look in the "offset" column and used the search for the offsets you listed, and nothing is found. Even if I found them, I am not 100% sure what I am supposed to be doing with them. I am incompetent at using a hex editor. Always have been. So, I guess I am out of luck at fixing it.

I think he is talking about the main game executable Instead of the installer, where you have to edit the hex

previously known as Discrete_BOB_058

Reply 8 of 14, by Dege

User metadata
Rank l33t
Rank
l33t

Whatever bytes you find at the given offsets, just overwrite them by the ones I listed, I guess we have the same deep6.exe version. Ctrl-G in Hxd to jump to the offset.
Btw, meanwhile I realized why the crash comes only with dgVoodoo: gog patched 2 routines by temporarily corrupting the stack pointer for them but they didn't count on what if a guard-page handler interrupts and overwrites things on the stack like the return address.

Reply 9 of 14, by Estel Randir

User metadata
Rank Newbie
Rank
Newbie
BEEN_Nath_58 wrote on 2022-08-07, 04:14:

I think he is talking about the main game executable Instead of the installer, where you have to edit the hex

Yes, that is what I am talking about. As I listed in my post deep6.exe is the game executable. The named offsets do not seem to exist in my deep6.exe. It is a clean installed version from the GoG version listed in my post.

Reply 10 of 14, by Estel Randir

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2022-08-07, 07:41:

Whatever bytes you find at the given offsets, just overwrite them by the ones I listed, I guess we have the same deep6.exe version. Ctrl-G in Hxd to jump to the offset.
Btw, meanwhile I realized why the crash comes only with dgVoodoo: gog patched 2 routines by temporarily corrupting the stack pointer for them but they didn't count on what if a guard-page handler interrupts and overwrites things on the stack like the return address.

It does not matter since I cannot find them. See below:
HeX.jpg

Would you be willing to PM me the file?

Reply 12 of 14, by Estel Randir

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2022-08-07, 17:33:

You wrote an extra 0 to the end of the offset... just copy them from the browser.

I swear I copied it correctly like 10 times. I guess the : got copied. Eyes are not as good as when we were in our 20's.

I modified the values, downloaded DgVoodoo 6.3, used MS D3Dx32, D3D8, scale factor 3. Everything works now.

Thank you for your patience. And you have confirmed my opinions of GoG. They often ride the backs of people who already did the work correctly, and then they do a "passable" job of getting games to work so they can make a profit. I only support them because of the DRM free aspect. For 25+yrs I have been making impossible to run games run on later versions of windows by reading thousands of pages of posts by people just like yourself who do the hard work.

I hope you can add your revisions soon to a new version. I have mixed versions of DgVoodoo now and you can only use one at a time. 🤣.

Reply 13 of 14, by Dege

User metadata
Rank l33t
Rank
l33t

When I mentioned patching the patch, I just spoke about code already patched by gog. dgVoodoo is not compatible with how the code was patched, but dgv wasn't a thing to count with for gog, so it's understandable.

Reply 14 of 14, by Estel Randir

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2022-08-08, 18:26:

When I mentioned patching the patch, I just spoke about code already patched by gog. dgVoodoo is not compatible with how the code was patched, but dgv wasn't a thing to count with for gog, so it's understandable.

"For now, it's a solution together with dgv 2.63. I'll bring back the visuals of 2.63 along with better resolution for 3D models inside the HUD in the next version."

I thought this was referring to features in dgv 2.63 that were altered or something in dgv 2.79. Is there some reason you were using dgv 2.63 vs 2.79 for this fix? I tested the fix with files from both versions of dgv and it seemed to work without errors.