Jump to content

Windows 8.1 is missing WIN32 api?


Jaguarek62

Recommended Posts

I've downloaded Teardown today and I was greeted to this: https://prnt.sc/v9fucb

 

Can I do something with this or is it w10 only? (despite stating Windows 7 in os list)

 

Edit: They changed Windows 7 to Windows 10 after someone has already complained. What a dick move!

Edited by Jaguarek62
Link to comment
Share on other sites


Are there any other dependencies besides SetProcessDpiAwarenessContext (check with 64-bit Dependency Walker)? If not, hex-editing the .exe by changing SetProcessDpiAwarenessContext->SetProcessDpiAwareness should at least make it launch on Windows 8.1 (set bytes of "Context" part of the string to zero).

A call to SetProcessDpiAwareness with parameters of  SetProcessDpiAwarenessContext will probably make it behave as if the call wasn't made, error code would be returned and assuming the game doesn't check it, it should be fine (may need fiddling with compatibility settings on the .exe related to DPI in certain cases), though I'm not 100% on that since I can't tell the numeric constants of the possible parameters passed to SetProcessDpiAwarenessContext from the definitions and I don't have the right tools at hand to tell.

If this is the only issue and devs refuse to fix it, I would change SetProcessDpiAwarenessContext string to any USER32 API that the oldest OS that satisfies all other dependencies supports and NOP out the problematic call in the code and declare DPI awareness via the manifest like MS recommends to cover the users using DPI higher than 100%, Resource Hacker would help with the latter, but a debugger like x64dbg would be required to modify the code.

Edited by UCyborg
Link to comment
Share on other sites

1 hour ago, UCyborg said:

Are there any other dependencies besides SetProcessDpiAwarenessContext (check with 64-bit Dependency Walker)? If not, hex-editing the .exe by changing SetProcessDpiAwarenessContext->SetProcessDpiAwareness should at least make it launch on Windows 8.1 (set bytes of "Context" part of the string to zero).

 

Yes this is the only problem, but the game is trying to pass this function to user32.dll. Windows 8.1 stores it in Shcore.dll thus the app still crashes.

Link to comment
Share on other sites

Oops, I overlooked the Shcore.dll. Since it's a paid game, I can't obtain its .exe, otherwise, I could tell you what bytes to change with hex editor. Hex-editing SetProcessDpiAwarenessContext->SetProcessDpiAware (they're both in user32.dll) + plus NOPing out the code from the .exe that calls it should still do the trick, but a hex editor alone isn't enough in this case unless you have x64 assembly code parser in your brain. And assuming there isn't something in there that checks for modifications, but since it's an indie game, it probably doesn't.

They'll look into the fix as I've read over Steam discussions, hope they come across the docs.

10 hours ago, Jaguarek62 said:

Edit: They changed Windows 7 to Windows 10 after someone has already complained. What a dick move!

Just to reflect the CURRENT state of the game I think.

Edited by UCyborg
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...