agrippa1994 / DX9-Overlay-API

Overlay API for DirectX 9 based games.
MIT License
127 stars 26 forks source link

game crash #36

Open Gl0 opened 7 years ago

Gl0 commented 7 years ago

Some of our users experience game crash if overlay is enabled.

Faulting application name: TERA.exe, version: 2.0.1.1, time stamp: 0x59642b52
Faulting module name: dx9_overlay.dll, version: 0.0.0.0, time stamp: 0x593d24ee
Exception code: 0xc0000005
Fault offset: 0x00022995
Faulting process id: 0xff4
Faulting application start time: 0x01d3034328773cd4
Faulting application path: D:\GameforgeLive\Games\GBR_eng\TERA\Client\Binaries\TERA.exe
Faulting module path: C:\Users\DAMNBOI\Documents\shinrameter\ShinraMeterV2.03\dx9_overlay.dll

(Using unicode one from https://github.com/shadowlif/DX9-Overlay-API/tree/unicode/bin )

ghost commented 7 years ago

Can you provide more data (maybe an crash dump)? Atm the Fault offset is inside an function, that raises an exception.

Gl0 commented 7 years ago

That's not on my system, and even this log was hard to explain how to get for that user.

Gl0 commented 7 years ago

got some logs from one of our users

ghost commented 7 years ago

Checked one dump. The crash happens here https://github.com/agrippa1994/DX9-Overlay-API/blob/a8251c181d14ab0e08dd654d443981863897c1cd/src/dx9_overlay/Game/Game.cpp#L34

This happens because d3d9.dll reserves just 0x2F000 bytes of memory. Why this happens? The process loaded two d3d9 modules. One is in the game folder (where the exe is). The other one is in the Windows System32 folder. I looks like, that the d3d9 module inside the game folder is (maybe) not valid. Try to rename it (like d3d9_backup.dll) so just the real one get loaded.

Gl0 commented 7 years ago

Removing dll works like a charm, added this info to FAQ, thanks.

Gl0 commented 7 years ago

Probably that dll is from https://sfx.thelazy.net/downloads/ project Is there any way of interoperability with that thing?

ghost commented 7 years ago

It's "SweetFX 1.5 | by CeeJay.dk - Version 1.5.1"? I can try it in another branch, but I don't know atm how SweetFX is internally designed. Maybe it works with new Patterns, maybe not.