Skip to content

v0.11.0 — GP Bikes reload actually reloads GP Bikes

Choose a tag to compare

@Frostn1 Frostn1 released this 08 Aug 23:02
· 14 commits to main since this release
b584bfd

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.exe now prints which title it's driving, so a mismatch is obvious.
  • Diagnostics that only make sense on MX Bikes stay off elsewhere. The registryReset capture was installing a hook at an MX Bikes address inside GP Bikes; --bikecap and --dump-serverlist were 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.