QMamehook v1.4.1 - Dog of the Wild Variety
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?**