MiSTer-devel / Scripts_MiSTer

Miscellaneous Bash scripts for MiSTer
GNU General Public License v3.0
83 stars 43 forks source link

Controller inputs are ignored for a couple seconds when the HDMI video mode changes #111

Closed c0d3h4x0r closed 8 months ago

c0d3h4x0r commented 8 months ago

Problem:

The MiSTer process blocks while writing console output to the slow serial port. It cannot handle user input until it finishes writing to the console.

Many games (examples: Sonic the Hedgehog 2 for MegaDrive, or Agony for Amiga) change the core resolution during gameplay. With vscale_mode=4 or vscale_mode=5, that causes an HDMI video mode change. MiSTer remains unresponsive for a noticeable time (~0.5 - 2.0 seconds) after the video mode change while it writes verbose information about the video mode change to the console. The user's controller inputs are ignored during this time, even though the game is still running. This interferes with gameplay.

The duration of unresponsiveness depends upon the size of the user's .ini file, because it gets parsed, processed, and logged twice on every HDMI video mode change.

The impact of the issue varies depending upon the game being played. For games that switch resolutions at the beginning of a new level (such as an action-packed shooter), losing control for a couple seconds at the start is a big problem.

c0d3h4x0r commented 8 months ago

I have posted a workaround for this problem here: https://github.com/MiSTer-devel/Scripts_MiSTer/pull/110

c0d3h4x0r commented 8 months ago

I just realized I probably should have filed this against MiSTer_Main instead. I will re-file it over there and close this one.