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

dxwrapper : unhandled exception filter, what does this mean? #151

Closed Question2 closed 10 months ago

Question2 commented 2 years ago

I tried running dxwrapper with a game called "birthright : gorgon's alliance", using the ddraw.dll file.

At one point, the game gave me exception errors (this happens without dxwrapper as well). With dxwrapper however, the game didnt just crash, i was able to keep playing for a bit more time, but the graphics of all the characters became corrupted :

image

After playing for a while more, the game kept giving me exception errors, after the 3rd time, the game started freezing up every few seconds and it became impossible to play.

My question is, does the dxwrapper log file include any useful information on the exception error? Will any other config settings help?

dxwrapper-winbr.log

I have attached the log file. The interesting part is this :

12584 23:33:37.163 UnhandledExceptionFilter: exception code=3221225477 flags=0 addr=0044DA53 12584 23:33:37.196 UnhandledExceptionFilter: NOP opcode=・len=2 12584 23:33:37.790 UnhandledExceptionFilter: exception code=3221225477 flags=0 addr=0044DA59 12584 23:33:37.790 UnhandledExceptionFilter: NOP opcode=f len=4 12584 23:38:45.560 UnhandledExceptionFilter: exception code=3221225477 flags=0 addr=0044DCA6 12584 23:38:45.560 UnhandledExceptionFilter: NOP opcode=f len=4 12584 23:38:46.057 UnhandledExceptionFilter: exception code=3221225477 flags=0 addr=0044DC88 12584 23:38:46.057 UnhandledExceptionFilter: NOP opcode=・len=2 12584 23:38:46.483 UnhandledExceptionFilter: exception code=3221225477 flags=0 addr=0044DC8F 12584 23:38:46.483 UnhandledExceptionFilter: NOP opcode=・len=2 12584 23:38:50.477 UnhandledExceptionFilter: exception code=3221225477 flags=0 addr=0044DA28 12584 23:38:50.477 UnhandledExceptionFilter: NOP opcode=・len=3

Any suggestions for the .ini file settings?

`;; Config file for DirectX DLL Wrapper ;; ;; For details, see: https://github.com/elishacloud/dxwrapper/wiki/Configuration ;; [General] RealDllPath = AUTO WrapperMode = AUTO LoadCustomDllPath = ExcludeProcess = IncludeProcess = RunProcess = WaitForProcess = 0 DisableLogging = 0

[Plugins] LoadPlugins = 0 LoadFromScriptsOnly = 0

[Compatibility] Dd7to9 = 1 D3d8to9 = 0 DDrawCompat = 1 Dinputto8 = 0 DisableGameUX = 0 DxWnd = 0 EnableDdrawWrapper = 1 EnableD3d9Wrapper = 1 EnableDinput8Wrapper = 0 EnableDsoundWrapper = 0 HandleExceptions = 1 SingleProcAffinity = 4

[DDrawCompat] DDrawCompat20 = 0 DDrawCompat21 = 0 DDrawCompat31 = 1 DDrawCompatDisableGDIHook = 0 DDrawCompatNoProcAffinity = 0

[ddraw] ConvertToDirectDraw7 = 1 ConvertToDirect3D7 = 1 DdrawFixByteAlignment = 0 DdrawOverrideBitMode = 0

[Dd7to9] AutoFrameSkip = 0 DdrawEmulateSurface = 0 DdrawRemoveScanlines = 0 DdrawReadFromGDI = 0 DdrawWriteToGDI = 0 DdrawLimitDisplayModeCount = 0 DdrawUseNativeResolution = 0 DdrawClippedWidth = 0 DdrawClippedHeight = 0 DdrawOverrideWidth = 0 DdrawOverrideHeight = 0 DdrawOverrideRefreshRate = 0 DdrawIntegerScalingClamp = 0 DdrawMaintainAspectRatio = 0

[d3d9] AnisotropicFiltering = 0 AntiAliasing = 0 EnableVSync = 0 EnableWindowMode = 0 ForceMixedVertexProcessing = 0 ForceSystemMemVertexCache = 0 ForceVsyncMode = 0 FullscreenWindowMode = 0 WindowModeBorder = 0

[FullScreen] FullScreen = 0 ForceWindowResize = 0 WaitForWindowChanges = 0

[dinput8] FilterNonActiveInput = 0

[dsound] Num2DBuffers = 0 Num3DBuffers = 0 ForceCertification = 0 ForceExclusiveMode = 0 ForceSoftwareMixing = 0 ForceHardwareMixing = 0 ForceHQ3DSoftMixing = 0 ForceNonStaticBuffers = 0 ForceVoiceManagement = 0 ForcePrimaryBufferFormat = 0 PrimaryBufferBits = 16 PrimaryBufferSamples = 44100 PrimaryBufferChannels = 2 AudioClipDetection = 0 `

Im not even sure if i should be using the ddraw.dll file. The documentation doesnt explain how to figure out which file to use.

elishacloud commented 1 year ago

At one point, the game gave me exception errors (this happens without dxwrapper as well). With dxwrapper however, the game didnt just crash, i was able to keep playing for a bit more time, but the graphics of all the characters became corrupted

It appears that there is some kind of bug in the game. dxwrapper can help with certain types of crashes, but it appears like this one it cannot help with.

My question is, does the dxwrapper log file include any useful information on the exception error?

Probably not. This would need to be debugged.

Will any other config settings help? Any suggestions for the .ini file settings?

It looks like you have some conflicting settings enabled. Both Dd7to9 and DDrawCompat can't work at the same time. Also, there is probably no need to enable DDrawCompat31. I would also recommend disabling ConvertToDirectDraw7 and 'ConvertToDirect3D7`.

A few things to try:

  1. Try with just EnableDdrawWrapper, EnableD3d9Wrapper and HandleExceptions enabled.
  2. Try with just DDrawCompat and HandleExceptions enabled.
  3. Try with just Dd7to9 and HandleExceptions enabled.
  4. Try with Dd7to9, DdrawEmulateSurface and HandleExceptions enabled.
elishacloud commented 10 months ago

Closing issue. You can reopen it if there are still questions here.