v0.11.0 — GP Bikes reload actually reloads GP Bikes
If you use FrostMod with GP Bikes, update. v0.10.0 could crash the game the first time you reloaded mods.
The fix
v0.10.0 attached to gpbikes.exe correctly — and then reloaded using MX Bikes' internals. Those addresses mean something entirely different inside GP Bikes, so the reload called arbitrary code and overwrote arbitrary memory, and the game went down moments later with nothing useful in the log.
GP Bikes now has its own reload offsets, covering tracks, tyres, rider, bikes, paints, helmets, riders, animations, stands and dashes. Drop a .pkz in and press R — as it was always meant to work.
MX Bikes is unchanged. Its offsets are byte-for-byte what they were; there is a test that fails if they ever drift.
Also fixed
- FrostMod reads the mods folder of the game it's attached to. The default was MX Bikes' folder no matter which game you pointed it at, so on GP Bikes the track manager, the inactive-tracks store and the model swap all worked against the wrong folders.
frostmod.exenow prints which title it's driving, so a mismatch is obvious. - Diagnostics that only make sense on MX Bikes stay off elsewhere. The
registryResetcapture was installing a hook at an MX Bikes address inside GP Bikes;--bikecapand--dump-serverlistwere reading MX Bikes' memory there.
Under the hood
The reload step table now lives per title and is reached through whichever game FrostMod is attached to, so one title can no longer run another's. A title with no offsets derived refuses the reload and says so, instead of trying it with someone else's addresses — which is what turned a missing port into a crash.
Known
GP Bikes' reload offsets were derived by static analysis of the game binary and confirmed against a crash report, but GP Bikes support is still young. If a reload misbehaves there, send frostmod.log (it sits next to frostmod.exe) — it records exactly which offsets resolved.
MXB App users: the app requires this version before it will run FrostMod on GP Bikes, and will update you automatically.