YoYoGames / GDKExtension

GMS2 Extension for GDK
Other
20 stars 9 forks source link

XAsyncGetStatus() no longer returns when called in gdk_quit() #71

Closed andrew171717 closed 6 months ago

andrew171717 commented 1 year ago

It's possible this is just happening to me as I have made quite a few changes to my local copy of this extension, but I wanted to bring this up in case anyone else runs into it.

I released my game Launcher Heroes about 3 months ago on Xbox and Windows. It uses this extension for the Windows release. The game launched smoothly and no issues were present at launch related to the GDK extension. However, at some point in the past few weeks XAsyncGetStatus(&async, true); appears to no longer return when called during the execution of gdk_quit() causing the game to hang when attempting to close on Windows. This seems odd to me as I have not pushed out any updates to my game and this just started happening to the game in production.

I was able to mitigate the hanging by commenting out XAsyncGetStatus(&async, true);. I'm not entirely sure what the consequences are to doing this, but it prevents my game from hanging during closing, so I plan on pushing this out in an update soon.

Edit: I'm specifically referring to this line: https://github.com/YoYoGames/GDKExtension/blob/9dd6c0e9d4cadccdbe0b1a79e6721a6bb04b3094/DLL/GDKExtension/GDKX.cpp#L247

TERNOX commented 1 year ago

Hi, I don't know if it happened with the old game, but now I'm doing the gdk version and the game freezes as well. I was denied certification because of this.

Thank you for your solution to the problem, I will try it in my project.

I also want to note that GDK Extension currently refers to an outdated version of GDK, so I have to manually point to a newer version, which may be the problem.

DiasFranciscoA commented 1 year ago

The issue should now be resolved in the main branch. To utilize the extension, please ensure you have GDK version 230600 installed.

Please confirm if this rectifies the problem. Be aware that there is no official release available at this time; therefore, you'll need to use the binaries from the main branch.