Skip to content

QMamehook v1.4.1 - Dog of the Wild Variety

Compare
Choose a tag to compare
@SeongGino SeongGino released this 29 Feb 04:28
· 57 commits to main since this release
afe20a9
Release updated at 2/29 12 PM for a small tweak to the socket check.

The Flycast apology update*

Turns out, Flycast actually revealed a fatal problem with the older signal/slot-based architecture! Simultaneous outputs actually caused stream congestion, which is the source of Flycast's outputs being horribly desynced for seemingly no reason. So, another refactoring of the way we check for data: using the blocking waitForReadyRead() method exclusively to wait for data, and then only check after we've exhausted the current buffer. Lather, rinse, repeat until an error from disconnection.

HOWEVER, turns out that QT on Windows has a bit of a problem erroneously timing out sometimes when waiting to read an input. So, Windows specifically has a 1ms socket check implemented, and only aborts the socket connection when the error is explicitly RemoteHostClosedError - which should be fine with no discernible difference in performance, but the idle checking may have possible performance implications for very slow machines?**

*In case it isn't obvious, I don't have any problem with Flycast, lol. Just poking fun at my slight overreaction--though they should still fix their outputs implementation anyways.
**I've checked on an i5 6500U, and QMamehook seemed to have no visible CPU usage difference when just waiting on new inputs. Most 64-bit processors shouldn't have an issue with this.