RSDKModding / Sonic-Mania-Decompilation

A complete decompilation of Sonic Mania (2017)
Other
632 stars 116 forks source link

[Linux][GL3] Game freezes when jumping on “random” (red question mark) item in Encore mode #134

Closed awe444 closed 2 years ago

awe444 commented 2 years ago

The game freezes when I jump on one of the “random” item monitors (the kind with a red question mark symbol) in Encore mode. The background music continues to play however the video is frozen and there’s no input response. I was able to reproduce this on at least two different of these random-type monitors in different locations, both in CPZ in Encore mode.

My build of the game is based on latest commit as of today (21ab14c9a4fd52b9ff4ab0026304bb7d5a0c8123). I built and am running on Raspberry Pi OS with the GL3 backend. For reference I also reported this issue earlier: https://github.com/Rubberduckycooly/RSDKv5-Decompilation/issues/9 and per that issue I am still running the game in Mesa’s compatibility mode, not sure if that’s in any way related to this freezing issue. Also I built with -O3 and RSDK_USE_SDL2=1 in case it matters. The log.txt showed nothing erroneous when the freeze occurs.

Rubberduckycooly commented 2 years ago

I cant replicate this using windows x86 DX9, I did fix a similar sounding bug during development though so idk how it'd be back. have you tried compiling with -O2? I heard -O3 can sometimes mess up code a bit. if that fixes it then I might see if I can rewrite the code to be safer in -O3

awe444 commented 2 years ago

Thanks @Rubberduckycooly for the suggestion— I just recompiled with -O2 instead of -O3 but unfortunately the issue remains. Also tried with removing the RSDK_USE_SDL2=1 but that also did not solve it. Happy to try out other things to help debug, just let me know, thanks.

awe444 commented 2 years ago

So, this issue has stopped occurring after my having done a few things (not sure yet which of these fixed it):

I’ll go ahead and mark this as resolved but will report back anyways if I narrow down the cause or if it resurfaces later.