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.16k stars 83 forks source link

Is it possible to parse an existing d3d8.dll through dxwrapper? #92

Closed r2rX closed 3 years ago

r2rX commented 3 years ago

Hello there,

Firstly @elishacloud, amazing work on this wrapper!

So...i've been trying to get Soul Reaver 2 working properly on Windows 10 with widescreen support. Nemesis2000's SR2 widescreen patch works for what it is supposed to do....except for the fact that the game runs with hitches (i.e playable character 'teleporting' all over the place, certain commands not working etc).

The supposed fix is to limit the FPS to 60 (which doesn't work for me, at least) or set the monitors refresh rate to 60Hz (which isn't a sensible long-term solution). My observations seems to indicate that these quirks occur when the game runs in DX8 since after testing d3d8to9 and dxwrapper, running the game and parsing the API to DX9, all the above issues are gone (as well as running at 144FPS no problem).

The only problem is that it's not possible to use the widescreen fix and d3dto9/dxwrapper simultaneously. Thus the following idea:

Game loads Nemesis2000 d3d8.dll widescreen fix -> immediately parse through dxwrapper's d3d8.dll to DX9

Is it possible to have the game load the widescreen fix and then immediately parse through dxwrapper? Is dxwrapper capable of this? Is this technically possible? The ideal would be to rebase the widescreen fix on d3d8to9/dxwrapper and run in DX9 but sometimes that isn't an option.....

mirh commented 3 years ago

https://github.com/elishacloud/dxwrapper/wiki/Configuration#general

I think you should check on the dictionary what "parse" means btw.. It's not really the same of "read" or "load".

r2rX commented 3 years ago

@mirh cheers for the info (and I stand corrected). πŸ‘

The LoadCustomDllPath command did the trick. Works beautifully now.

Thanks again.

mirh commented 3 years ago

I was more like thinking to RealDllPath, but whatever I guess.

r2rX commented 3 years ago

I was more like thinking to RealDllPath, but whatever I guess.

I had tried that at first but it didn't work. So I tested with the load custom path entry and it worked fine. πŸ‘

elishacloud commented 3 years ago

The RealDllPath option only works when dxwrapper is running as a specific dll. For example, if you rename dxwrapper.dll to ddraw.dll then RealDllPath would take effect.

Also, RealDllPath will work with the stub. So if you are using the ddraw.dll stub then you can add a new ddraw.ini file with RealDllPath in it.

r2rX commented 3 years ago

Thanks for the info! I'll keep that in mind.

B.T.W, @elishacloud , there was something I wanted to get your feedback on. It's in regards to a project utilizing dxwrapper but it's not a specific issue per se so I don't know if it would be appropriate to use the github issue tracker. If you're up for it/interested, what method of communication would you prefer?

elishacloud commented 3 years ago

@r2rX, I am fine if you want to discuss this in GitHub, unless it is something you don't want in a public forum.

r2rX commented 3 years ago

@elishacloud If you don't mind, it'd be preferable to initiate in private for now. :)