Status Update - September 2023
Added 2023-10-01 11:02:29 +0000 UTCHello! September was quite busy - I released a new SilentPatch, submitted contributions to several more projects, and started research for a future first-of-its-kind SilentPatch for a demo version of a game. Oh, and I also accidentally caused the news of Midnight Club 2 shipping a pirated executable to go viral once again, oh well.
SilentPatch for NFS2: Special Edition, NFS3: Hot Pursuit, NFS4: High Stakes and NFS: Porsche Unleashed
A new SilentPatch for a series of old Need for Speed games. As linked on Patreon previously, please refer to the release post for a detailed changelog and a write-up.
Other work
dinputto8
- Various conformance improvements - a big PR to a DirectInput-to-DirectInput8 wrapper, making it behave more like the original interface. Fixes gamepad mappings in at least four games: Michelin Rally Masters: Race of Champions, Swedish Touring Car Championship, Swedish Touring Car Championship 2, V8 Challenge.
rcheevos
- Fix qsort with big achievement IDs or unlock times - future-proofs RetroAchievements sorting functions by fixing a bug with very high achievement IDs and/or unlock times - given big enough values, they could end up being out of order after sorting with this previously broken predicate.
ModUtils
Although ModUtils is my "internal" patching library, it's public and I know it's being used by other people too - so might as well document the changes I make in it too.
- Implement InterceptCall - a helper function introduced in SilentPatch for Colin McRae Rally 3 is now part of ModUtils.
- Move ScopedUnprotect away from MemoryMgr.h - back when ModUtils was just a single header file, having these two unrelated features lumped together made sense. Now the library consists of multiple files, so splitting them was long overdue.
- Move DynBaseAddress and the PATCH enum to the Memory namespace - a minor code quality cleanup, preventing pollution of the global namespace with a single patching enum
What's next?
Recently, I've been investigating Juiced and its various demos from both Acclaim and THQ versions, and I even announced an extended Acclaim demo on Twitter. I eventually intend to publish a write-up about the history of this game, how it almost got published by Acclaim, then bought and modified by THQ, etc. Accompanying this writeup will be a SilentPatch only for demos that allows to experience the same as it was in-dev, since on PC (unlike PS2/Xbox) we never got a chance to see the full Acclaim version of the game through prototypes surfacing online.