Skip to content

v0.12.0 — Proximity voice, and GP Bikes' reload stands down

Latest

Choose a tag to compare

@Frostn1 Frostn1 released this 13 Aug 00:40
· 4 commits to main since this release
0a2212f

MX Bikes: proximity voice, and the radar finally points where riders actually are.

GP Bikes: mod reload is switched off — it was crashing your game.

GP Bikes: reload is off, deliberately

v0.11.0 gave GP Bikes its own reload offsets instead of MX Bikes'. Those crash the game too — just less often. A reporter's log shows the reload starting and the process simply gone: one session died on its first reload, another on its fourth after three that completed cleanly in about two seconds each.

Those offsets were derived by reading the game binary and have never been confirmed against a running game. So GP Bikes now refuses the reload and says so honestly, rather than gambling your session on it. Nothing else on GP Bikes changes.

MX Bikes is untouched. Its reload table is confirmed and works exactly as before.

Want it fixed? This is how

If you're willing to lose one GP Bikes session to pin this down:

frostmod.exe --game gpb --unsafe-reload

That arms the reload anyway. Every step is now written to frostmod.log before it runs, so when the game goes down, the last [reload] step … line names the exact loader that did it — turning 13 suspects into one. The log also records which thread the game loads content on versus which one we replay from; if those differ, that alone explains why some reloads survive and some don't.

Send that log in and GP Bikes gets its reload back properly.

Don't run it otherwise — it is expected to crash.

Proximity voice, via Mumble

Riders on the same server now hear each other from where they actually are on the track. FrostMod publishes your position through Mumble's Link interface; Mumble does the voice, we only say where you are.

On by default, toggled with 6 in the F8 menu, and remembered in frostmod_radar.cfg. Setup is in docs/MUMBLE.md.

The direction you're facing comes from the radar rather than a guess, and the two are checked against each other every 30° of heading — if the radar points at someone, Mumble hears them in the same direction by construction. You're grouped only with riders on your own server and track, identified by your install's GUID, and the grouping clears the moment you leave a session.

Fixed

  • The radar pointed riders in arbitrary directions. Yaw is measured in degrees and was being fed straight to functions expecting radians, multiplying every heading by 57.3. A rider held dead ahead of you would swing from +86° to −139° over four degrees of real steering, so blips spun as you rode. This has been wrong since the radar shipped in v0.9.7 — it is right now, and the conventions are confirmed against PiBoSo's own SDK header.
  • A short element stride no longer reads off the end of the rider arrays. Where the game reported a smaller element size than we expected, each rider's data was partly read out of the next one, and the last read past the end of the array entirely.

Under the hood

Every reload step is logged before it runs on both titles, not just GP Bikes — each step is crash-guarded, so an ordinary fault is swallowed and the reload completes, and what actually kills a process leaves nothing behind. The log is now the only witness, so it writes through per line.

A title's reload table also carries whether it has ever been confirmed on that title. A table that compiles and has never run is the dangerous case, not the safe one — it looks like a working feature until it isn't. Both GP Bikes crashes shipped exactly that way.

MXB App users: the app updates you to this automatically.