Status Update - October 2022
Added 2022-11-01 11:59:26 +0000 UTCHello! As anticipated last month, October was indeed busy. While I haven't released anything new, I spent quite a bit of effort on Hacktoberfest contributions and researched Colin McRae Rally 3 a lot which resulted in a work-in-progress SilentPatch. More on that later.
Gran Turismo 2 Combined Disc
Not an update per se, but the Combined Disc has been confirmed to work on real hardware with the help of PSIO! This means that both popular PS1 mods, XStation and PSIO, can run the Combined Disc off an SD card on real hardware.
Other work:
OpenRCT2
- Fix #17664: Ride music channel data leaks when stopping inactive music - admittedly the highlight of this month is a fix for a resource leak in OpenRCT2. Due to file handles for music files leaking, OpenRCT2 would run into many issues upon extended session times, including the inability to save. With my fix in place, the OpenRCT2 team was unblocked from releasing v0.4.2, and so they did so soon after.
- Refactor Windows locales and remove the last non-Unicode functions - more Unicode changes and replacing of legacy APIs with modern ones. Has the added benefit of not serving Brazilian Portuguese to people using a Portuguese locale, which can vary from "mildly annoying" to "kind of insulting".
- Windows: Use a modern file/folder picker - another API modernization pull request, replacing legacy pickers with modern ones. Has the added benefit of replacing an ancient tiny folder picker with one identical to a file picker, with an address bar and such.
- Ensure argv on Windows is nullptr-terminated - nitpick improving the correctness of a Windows-only function wrapper. Makes no difference now, but prevents potentially hard to troubleshoot issues in the future.
- Fix FileWatcher - small PR fixing probably the last Unicode-related issue in the codebase, and fixing a Windows-only bug with the file watcher feature (used to hot reload plugins) that made it completely useless. Before this change, the game prevented the user from making any changes to the monitored directory, defeating the purpose of watching for changes!
PCSX2
- Enable Function Level Linking solution-wide and AVX2 for Common project - a fixup for PCSX2's compilation settings that shrinks the produced executable files by almost 2.5MB.
Cxbx-Reloaded
- Remove Int32x32To64 from the code - a long overdue addition to my "Year 2038 project", removing a problematic macro from the codebase. While in this case it wasn't used for timestamps, it could potentially cause data loss from implicit typecasts introduced by the said macro.
vcpkg
- [wil] Update to v1.0.220914.1 - a package update for vcpkg, since I need this package for SilentPatchCMR3.
diaphora
- Fix deleting items from Unmatched tabs and Fix re-loaded and re-saved diffs omitting the 2nd DB path - two bug fixes I had to make in an IDA Pro plugin for diffing two binary files to be able to use it efficiently during my SilentPatchCMR3 research.
What's next?
If you follow me on Twitter, you might have noticed an extremely long thread related solely to Colin McRae Rally 3. What initially started off as research around regional re-releases and a potential DRM-free executable has now evolved into numerous findings. Those include, but are not limited to:
- Both Polish and International executables in a fully DRM-free form. I will be able to publish those in the form of xdelta3 patches applied on top of the latest v1.1 patch (with SecuROM/SafeDisc) for each region. An original executable (not a no-CD) will be needed to apply these patches.
- SilentPatch with a standard set of bug and compatibility fixes. I plan to only support the above two executables, in this case, I consider supporting unpatched and DRM'd no-CD executables a waste of time.
- Full widescreen support. It's WIP but it's already showing a lot of promise.
- (Potentially, undecided yet) Locale pack - in the best case, I want to merge Polish and International releases together and offer an optional download with modified locale files, co-driver voices, and fonts that add Polish as a selectable language in-game instead of relying on a regional release.
I plan to publish all those findings in a blog post together with the patch, so prepare yourself for a long read! I'm yet to decide if I want to split it into multiple posts, or split a single long post into chapters. Even better, my research has caught the attention of several Codemasters veterans, so for the first time, I might be able to collect feedback from people who worked on this game 20 years ago!