VOGONS


First post, by eddman

User metadata
Rank Member
Rank
Member

I first checked the game with RTSS and says it's a "DD" game, DirectDraw, so pre-d3d8.

I copied over dgvoodoo's ddraw.dll and d3dimm.dll files, however, the game does not detect and load the files; RTSS still says DD.

To make sure I alt-tabbed with the game running and managed to delete the dll files.

Is this a compatibility issue?

Could this be a pure software rendered game, but if so, why does it show up in RTSS as "DD"?

Last edited by eddman on 2022-09-20, 15:44. Edited 2 times in total.

Reply 1 of 4, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
eddman wrote on 2022-09-20, 15:10:
I first checked the game with RTSS and says it's a "DD" game, DirectDraw, so pre-d3d8. […]
Show full quote

I first checked the game with RTSS and says it's a "DD" game, DirectDraw, so pre-d3d8.

I copied over dgvoodoo's ddraw.dll and d3dimm.dll files, however, the game does not detect and load the files; RTSS still says DD.

To make sure I alt-tabbed with the game running and managed to delete the dll files.

Is this a compatibility issue?

Some games are hardcoded to read thr ddraw.dll from Windows folder. Maybe you should open the executable (sometime you need to check the game dlls for it) with a hex file and replace ddraw.dll instance with something similar, such as dxraw.dll and also rename the dgVoodoo2 ddraw file to that name.

previously known as Discrete_BOB_058

Reply 2 of 4, by eddman

User metadata
Rank Member
Rank
Member

Yes, I'm aware of that, however in those cases usually some of the dlls at least get loaded but simply don't work, and they do show up in dgvoodoo's debug log. With this game nothing shows up in the log at all.

I did look for the dlls in the exe before posting, but couldn't find ddraw.dll. The following are the dll references in the exe file:

Attachments

Reply 3 of 4, by Narzoul

User metadata
Rank Newbie
Rank
Newbie

I only checked the demo. It seems to be using DirectDraw via COM. You can try this reg file to make ddraw wrappers work: https://raw.githubusercontent.com/narzoul/DDr … Redirection.reg
Save it as a .reg file and execute it.

Reply 4 of 4, by eddman

User metadata
Rank Member
Rank
Member
Narzoul wrote on 2022-09-20, 15:50:

I only checked the demo. It seems to be using DirectDraw via COM. You can try this reg file to make ddraw wrappers work: https://raw.githubusercontent.com/narzoul/DDr … Redirection.reg
Save it as a .reg file and execute it.

Thank you, didn't expect to get a reply from the creator of DDrawCompat. 😀
I checked your github page; didn't know you had an entire guide for that.

It works; the intro videos freeze though and only audio plays, but at least they can be skipped. For some reason RTSS does not show anything except for the frame time graph.

Is there any way to concretely determine which API the game actually uses for rendering, and not, for example, for video playback? The log mentions many things:

DDraw is successfully loaded: D:\Game Files (x86)\Microsoft Games\Zoo Tycoon\ddraw.dll
D3DImm is succesfully loaded: D:\Game Files (x86)\Microsoft Games\Zoo Tycoon\D3DImm.DLL
Object implementation is DX7 DirectDraw. Only D3D7 can be used via this one, old D3D device implementations are not available.
Object implementation is plain old pre-DX7 DirectDraw. D3D7 cannot be used via this one.

Is it ddraw only? D3d6? D3d7?

If I remove the d3dimm file, the log mentions the following quite a few times.

Couldn't load D3DImm.dll. If your application relies only on DirectDraw then it's not a problem.

It's rather confusing. The game probably does need it though, because it crashes without it (there doesn't seem to be any 3D graphics in the game though).

I am checking DD/D3D API entries on pcgamingwiki for accuracy and using dgvoodoo for old games.

P.S. is it safe to leave the reg fix as is? Would there be compatibility issues with other things?