Skip to content

Releases: SeongGino/QMamehook

QMamehook v1.8 - Bertrand

27 May 17:56
e9bb319
Compare
Choose a tag to compare

The Ammo Counts Update

May 28th Hotfix: Patched for three digits states support

Simplifies the buffer reading system, as state placeholders can be any number. This effectively adds support for sending Ammo & Life Counts to certain supported clients.

Wonder what that could be...

QMamehook v1.7 - Soleil

26 Mar 19:52
6af3d65
Compare
Choose a tag to compare

THE FIXES™ release

A lot of fixes for problems either introduced by v1.6 or weren't made apparent until now.

  • Fixed the gameName situation for good, so the name/file being searched shouldn't ever become a whole mess of the current network buffer again.
    • This was a very embarrassing oversight from v1.4's refactoring away from TCP Socket signals to polling--but the solution is also a slightly more robust method of isolating the game name that should also be more robust across both OS's. For some reason, the index of the = sign in the gameName isolation bit is always 1 character off between Linux and Windows, so leaving in the whitespace until the end compensates for this strange behavior.
  • Also fixed strange edge cases where the Windows build would crash either loading or exiting a session if DemulShooter is the output server.
...or should I call you Abacus?

QMamehook v1.6.1 - Kantaris

26 Mar 03:30
7b06294
Compare
Choose a tag to compare

The File Paths Update release

New to QMamehook, and by request, is custom paths support!
Invoking QMamehook with -p will use whatever path is fed into it. Relative filepaths will be converted into absolute paths as appropriate.

Additionally, the redundant QMamehook\QMamehook\ini default path for Windows users has been resolved: it is now %LOCALAPPDATA%\QMamehook\ini as it should be. This does not affect Linux users.

QMamehook v1.5.1 - Antlion-fix

03 Mar 17:43
8c084ee
Compare
Choose a tag to compare

The mame_stop & mame_start fix release

Settings are now flushed and current game is cleared if mame_stop is detected - which should resolve cases of switching titles without the server disconnecting.

  • Reported by DemulShooter dev argonlefou, thank you so much!

Also a small tweak to the way settings are populated if they aren't detected, blank entries will be pushed to the current settings map to prevent possibly duplicating commits to the current game's settings file.

Update: ALSO also fixed the GameSearching method's dumb method of assuming every initial message is a start command; it will now perform the same de-concatenation as the in-game reading method, to ensure the start command is isolated and read properly. The rest of the initial read buffer is promptly disregarded after a start command has been read, if any data is left over afterwards.

QMamehook v1.4.1 - Dog of the Wild Variety

29 Feb 04:28
afe20a9
Compare
Choose a tag to compare
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.

QMamehook v1.3 - Moz

29 Feb 01:36
2b5236d
Compare
Choose a tag to compare

The Flycast update

For whatever reason, Flycast does not adhere to the established syntax standards set by MAME at all, so this release resolves some of the problems caused by connecting to this particular instantiation.

  • Code touchup, using two distinct search paths for when a game isn't and is loaded (possible search speed improvement(?) when in-game, since it won't be singling out for start commands while already started)
    • Also technically fixes crashes when attempting to write to a settings file that hasn't been instanced yet from getting non-gamestart outputs before a gamestart has been declared.
  • Added check for Flycast's super-duper-special game start indicator alongside mame_start.
  • Fixes crashes when attempting to load a new game while one is already loaded.
  • Fixes segfaults when disconnecting a session that hasn't loaded a game yet.
    • Technically this one isn't Flycast's complete fault, but using a bad search condition of checking for a settings object that may not always exist--it's just that MAME never allowed this circumstance to happen.

There is technically a known issue in that a new game start discriminator can't be detected as such while in-game, but this is something that only happens in Flycast--and is really a bug on their side, not ours, for not following the MAME network output spec properly, for there is no other way of detecting that a session has ended without being explicitly notified (or at least cut the connection). Besides that, most arcade players using this are probably using some kind of launcher anyways, which means they are closing and re-opening Flycast between game launches anyways so the client will be disconnected regardless, filling in that gap.

Still, mrgrgrr...

QMamehook v1.2 - Garo

27 Feb 18:03
ecc9285
Compare
Choose a tag to compare

Comma fixes

  • Commas in actions are now properly supported (which QSettings really insists on splitting, so a workaround is used to stitch the thing back together).
  • Action reading streamlined somewhat; only discriminator is state breaks |, and command breaks %s% are always checked and replaced if detected.
    • This means even illogical combinations of state and command breaks are processed logically.
  • Fixed input buffer creating a blank whitespace entry after the final '\r of a statement.
  • "cmw" reading is now more robust against whitespace.
    TL;DR: Funny app thingy do read better.

QMamehook v1.1 - Macpherson

27 Feb 05:08
d7dd87f
Compare
Choose a tag to compare

The Settings update

  • If gameName.ini is not detected, the file will be created with the minimum necessary entries for the user to input commands in.
  • Any output channels not detected to be in the settings file already will be dumped into the [Outputs] group with blank values.
  • Added -v verbosity switch; when enabled, prints the exact input that QMamehook is receiving from the network stream. Potentially useful for debugging or research.
  • Trimmed down on the unnecessary cli info a bit.

QMamehook v1.0 - Miller

26 Feb 04:40
e8861c4
Compare
Choose a tag to compare

The inaugural initial release!

Providing builds for Ubuntu (20.04 LTS?) and Windows 7-and-up. Extract the files to wherever is most convenient.

Reminder that QMamehook is designed primarily for PC light guns with Serial support using the GUN4ALL/GUN4IR standard! Any other applications for MAMEHOOKER do not apply here.