RetroAchievements / RALibretro

RALibretro is a multi-emulator used to develop RetroAchievements.
https://retroachievements.org
GNU General Public License v3.0
183 stars 37 forks source link

fix to #367 for screenshots and savestates #380

Closed Jcw87 closed 1 year ago

Jcw87 commented 1 year ago

Fixes the primary issues in #379

Jcw87 commented 1 year ago

Also added a fix for the game switching graphical bugs that only seemed to afflict ParaLLEl.

Jamiras commented 1 year ago

I've verified these changes fix the issues I mentioned in #379

  1. Mupen64plus-Next > Mupen64plus-Next : seems fine
  2. Mupen64plus-Next > ParaLLEl : rendering issues, video failure on screenshot
  3. ParaLLEl -> Mupen64plus-Next : seems fine
  4. ParaLLEl -> ParaLLEl : rendering issues, video failure on screenshot.

I was able to successfully take a screenshot after each of these paths. Thanks!

Jamiras commented 1 year ago

However, if I switch from ParaLLEl to ParaLLEl or Mupen64plus-Next (bullets 3 and 4) just after Mario's face appears, it crashes. The stacktrace is entirely in parallel_n64_libretro.dll, which suggests stack corruption. I don't think it's related to the GL context stuff, but if you wouldn't mind taking a look, I'd appreciate it.

EDIT: duplicated the crash in RetroArch using similar steps of Close Content just after the face appears and quickly reloading from history.

Jcw87 commented 1 year ago

Does that crash occur if both of my PRs are merged? The other one fixes a crash when shutting down ParaLLEl and attempting to start any core.

Jamiras commented 1 year ago

Does that crash occur if both of my PRs are merged? The other one fixes a crash when shutting down ParaLLEl and attempting to start any core.

It does not. I did not realize there were two PRs. Thanks.

I wonder if there's a similar unflushed error causing RetroArch to crash.