elishacloud / dxwrapper

Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.
zlib License
1.28k stars 91 forks source link

Battle of Heroes #157

Open TicTac7x opened 2 years ago

TicTac7x commented 2 years ago

I am unable to get a old game that uses DirectX8 to run. It has weird pink graphics issues and is unplayable.

The iso of the game can be found from the published link of old games from the web arhive: https://archive.org/details/eestikeelsed_arvutimangud

To download the correct iso file, its downloadable from here: https://archive.org/download/eestikeelsed_arvutimangud/BH.iso

I also tried to run the game in linux with wine, but the game crashes with stack trace related to d3d8.

When i inserted the d3d8.dll into the game folder, i managed to navigate the menus the get into the campaign, but all the graphics are still disorted.

Help? :D

elishacloud commented 2 years ago

Can you attach your log file and your dxwrapper.ini files?

TicTac7x commented 2 years ago

I renamed the .ini and .log files to .txt for uploading.

dxwrapper.txt dxwrapper-battle.txt

elishacloud commented 2 years ago

It looks like you are running this game in Windows 98 compatibility mode. Try removing all compatibility options from this game and trying again.

6740 00:24:14.364 Environment variable __COMPAT_LAYER = "DWM8And16BitMitigation RunAsAdmin Win98 Installer"
TicTac7x commented 2 years ago

Still the same, this time it crashed as well

dxwrapper-battle.txt

image

elishacloud commented 2 years ago

It looks like the game is trying to run in 16bit graphics but Direct3D is rendering it at 32bit. I will need to look into this more.

TicTac7x commented 2 years ago

Alright, thank you for the feedback, looking forward to getting this working, this game is a gem <3

TicTac7x commented 2 years ago

I have a old PC with windows xp, where the game runs, can this be somehow be helpful for debugging?

I tried to run it with dxwrapper logging, but get error The procedure entry point K32EnumProcessModules could not be located in the dynamic link library KERNEL32.dll.

TicTac7x commented 1 year ago

Any hope on getting this looked at?

mirh commented 1 year ago

https://stackoverflow.com/questions/29208637/entry-point-not-found-error-in-vista-os It's probably coming from https://github.com/FunkyFr3sh/cnc-ddraw/commit/550588fe55dcf5467b5d9b9cd28a396095f22236

elishacloud commented 1 year ago

I have a old PC with windows xp, where the game runs, can this be somehow be helpful for debugging?

I tried to run it with dxwrapper logging, but get error The procedure entry point K32EnumProcessModules could not be located in the dynamic link library KERNEL32.dll.

This is because dxwrapper was not supported on Windows XP. However, I created a build that works on Windows XP. Everything should be working except DDrawCompat and DisableHighDPIScaling, neither of which should be needed on XP.

dxwrapper.zip