RetroArch causes malfunction in some games running ScummVM core

Open
#11,763 17 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
c
Domain
frontend

Research direction

Start by reproducing Beneath a Steel Sky with the ScummVM core under retroarch.exe and retroarch_debug.exe on Windows, then compare behavior across the listed RetroArch versions. Use the fadeout black-screen or crash cases as the regression target; done means the affected games behave the same under the standard executable as under the debug executable.

Written by the indexing model from the issue text.

Description

Description

At the moment I have only tested this on Windows, unsure if this is a cross-platform issue.
Some ScummVM games will work incorrectly when run through retroarch.exe, but curiously will work fine when run through retroarch_debug.exe.

While searching for mentions to this bug I found the first instance back in June 2019, in the libretro forum: https://forums.libretro.com/t/scummvm-problem/22828 - and in scummvm core repo it was mentioned in February 2020: https://github.com/libretro/scummvm/issues/158

Because the games affected work with the debug executable and not with the standard executable, maybe the issue is triggered by RetroArch and not the core. While not all the games mentioned in the scummvm repo issue may share the same root, at the very least Beneath a Steel Sky is an indication that RetroArch may be one factor.

Expected behavior

Games should work as expected with the standard retroarch.exe, instead they only work with retroarch_debug.exe.

Actual behavior

A few games will either crash RetroArch or get stuck in a black screen after the game uses a fadeout transition effect, but only when using retroarch.exe, this does not happen if the games are ran with retroarch_debug.exe.

Steps to reproduce the bug

A simple example is the game Beneath a Steel Sky, which shows this behavior in three occasions, one of which makes it unplayable.

  1. Run the ScummVM game Beneath a Steel Sky using retroarch.exe (either frontend or command line, it has no bearing).
  2. The Virgin logo should fade out and be followed by the Revolution logo, then the intro, but here instead everything will unfold in pitch black (only audio) until the game starts.
  3. After the game starts, go down the stairs, the player gets shot and a fade out should transition to the gameover screen, instead everything will go black.
  4. Replay the last step, but instead of going down the stairs pick up the metal bar stuck on the left wall and use it on the right door. As soon as you unlock that door and go through it, the game should fade out and into the next room; here again instead of the fade out the game will go pitch black while still being "playable" insofar as that the cursor and objects text will be visible but the game will be essentially unplayable.

Repeat the steps above, but running retroarch_debug.exe instead, there shouldn't be any issue this time around.

In case you don't have retroarch_debug.exe and need it, grab it here (x64, v1.90 [6388872a54])

Bisect Results

I have downloaded and tested this with clean Windows versions of RetroArch, with no customization whatsoever, the issue persists. Seems to have been present since mid-2019 at the very least, but could have been there for longer. I've tested an older version, RetroArch v1.7.2 (023e280319) (x64), this issue does not happen at all. Older version I was able to test where this issue is present is v1.8.5

Additional games affected
  • Beneath a Steel Sky
  • Bud Tucker in Double Trouble
  • Drascula - The Vampire Strikes Back
  • Gobliins 2
  • Goblins 3
  • Legend of Kyrandia, The - Malcolm’s Revenge (affects intro / FMV sequences)
  • Leisure Suit Larry 7 - Love for Sail
  • Toonstruck
  • Touche
  • Woodruff and the Schnibble of Azimut
Version/Commit
  • RetroArch: 1.9.0/5e551dd92b
  • RetroArch: 1.9.10/ebe0d89d
Environment information
  • OS: Win10 20H2
  • OS: Win10 21H1
Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from libretro/RetroArch

All issues in libretro/RetroArch

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.