Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Safecracker: The Ultimate Puzzle Adventure - Compatibility #311

Open
master801 opened this issue Oct 25, 2024 · 3 comments
Open

Safecracker: The Ultimate Puzzle Adventure - Compatibility #311

master801 opened this issue Oct 25, 2024 · 3 comments

Comments

@master801
Copy link

Reporting compatibility for the game Safecracker: The Ultimate Puzzle Adventure (also known as Safecracker 2).

OS: Windows 10 Pro 21H2
GPU: Gigabyte AMD RX 580 GAMING 4G (4GB) - AMD Adrenalin 24.9.1

Game: Safecracker: The Ultimate Puzzle Adventure (Steam version)
dxwrapper: v1.2.7200.25

Normal behavior (without dxwrapper): Game black screens and flickers some textures immensely.

Fixed behavior (with dxwrapper): Use d3d9.dll wrapper, toggle EnableD3d9Wrapper to enabled, toggle ForceDirect3D9On12 in the [d3d9] section to enabled. Game no longer black screens and flickers.

@elishacloud
Copy link
Owner

Does this issue happen if you only have EnableD3d9Wrapper enabled?

ForceDirect3D9On12 is not running my code. I am just calling into Microsoft's code here. There are still bugs in ForceDirect3D9On12, but you will need to open a case with Microsoft about that.

@master801
Copy link
Author

Yes, the game will still black screen / flicker if only EnableD3d9Wrapper is enabled.

In combination of EnableD3d9Wrapper and ForceDirect3D9On12, the game will display properly / no longer black screen nor flicker.

@elishacloud
Copy link
Owner

elishacloud commented Dec 12, 2024

Try enabling SetSwapEffectShim rather than ForceDirect3D9On12.

By default in Direct3D9 Microsoft sets SetSwapEffectShim to 1. However, in dxwrapper I set it to 0 because that has better compatibility with many older games.

Edit: Actually, after looking at the code it appears that SetSwapEffectShim is not used by dxwrapper for native Direct3D9 code. I believe this flashing issue is not caused by dxwrapper but rather a byproduct of having it enabled. In other words, Microsoft's code runs different because the wrapper is in place.

If the only thing you have enabled is EnableD3d9Wrapper then it should be running in bypass mode meaning it is not making any changes to the Direct3D9 calls. Also, the fact that there is no issue with ForceDirect3D9On12 enabled shows that the calls are correct.

You could try setting the DisableMaxWindowedMode option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants