nefarius / Indicium-Supra

DirectX API-hooking framework
MIT License
310 stars 56 forks source link

Complete black screen lockup or strange behavior in true fullscreen games #4

Closed FIXMESTEVE closed 6 years ago

FIXMESTEVE commented 6 years ago

Hello,

I'm currently working on a project for the Unreal Engine 3 game Guilty Gear Xrd -REVELATOR-. The goal is to integrate a mod tool into an overlay.

I built Indicium-Supra and Indicium-ImGui.Plugin and injected Indicium-Supra with your Injector project. Works as intended when the game is windowed.

However when the game is in fullscreen (true fullscreen, ie not borderless-windowed and win10's fullscreen optimization disabled), the game turns black and seems frozen. It can also be a bit difficult to kill the process in that situation, because the frozen black fullscreen game keeps the focus and seems always on top.

I also tried to inject when game is windowed, then go fullscreen, but the result is the same.

Some other games don't lock up and seem to work fine in true fullscreen (Arcana Heart 3), but they still have the strange always on top behavior, and thus can't be alt-tabbed.

If you have any tips on this issue or need more details, please let me know.

Thanks, Tom.

nefarius commented 6 years ago

Heya,

well, a bit more details would be helpful like: architecture, DX version, does it misbehave with one of the sample plugins or with your own etc.

FIXMESTEVE commented 6 years ago

Hello,

Thank you for your answer. Here are some details. 32bit Injector from https://github.com/nefarius/Injector/releases/latest 32bit Indicium-Supra built from source 32bit Indicium-ImGui.Plugin built from source Guilty Gear Xrd is 32bit and uses DX9 Windows 10.0.16299

Windowed image

Fullscreen image

Misbehaves with the Indicium-ImGui sample plugin

nefarius commented 6 years ago

Do you inject into the full screen game or do you inject into windowed and switch to full screen afterwards?

nefarius commented 6 years ago

Ah you documented that case already. I have an idea what might be the issue and possible solution. Will test once I'm back at my PC in like one or two hours.

FIXMESTEVE commented 6 years ago

Yes, here are some other scenarios I have tried:

Additionally, when injected into windowed, changing the window size from the game resolution settings locks up the game. image

nefarius commented 6 years ago

Then I know what's happening: in my samples I got lazy and didn't implement the Reset callback. You wanna hop on my Discord to have a discussion and some tests with that?

FIXMESTEVE commented 6 years ago

Yes, gladly.

nefarius commented 6 years ago

The issues has been identified; the Reset callbacks have to be implemented.