64 riders in Wave Race 64
Wave Race 64 puts four jet skis on the water: you and three computer riders. I want to turn it into a 64-rider elimination race, where everyone starts together, the back of the pack gets cut at intervals, and the last rider afloat wins. Think F-Zero 99, on water.
This week was about finding out whether that’s even possible. Here’s the first answer:

Where this starts
This is built on Wave Race 64: Recompiled, a native PC port made by statically recompiling the original N64 game with N64Recomp. It runs the game’s own code, so physics and handling are the original’s, with widescreen, high frame rates and a modern renderer added on top. You supply your own legally dumped cartridge; no game data is shipped.
The four-rider wall
The game’s race code assumes four riders. Each craft’s physics state lives in a fixed four-slot array, and the “how many riders” counter sits directly after it in memory. The 3D models have the same layout: for each body part there are exactly four slots for its transform, one per rider. Growing all of that to 64 inside the original code means finding every place that assumes four, in a game that is only partly decompiled.
So I didn’t. The plan is to keep the game’s own race for you and the few riders near you, and draw everyone else as a puppet: a jet ski drawn wherever the network says it is, without full physics on your machine.
Test 1: a fifth rider
Each frame, the game builds a short list of draw commands per rider: load the transform for each of 18 body parts, then draw that part’s mesh. The port already rewrites the game’s draw list every frame for widescreen and smooth frame rates, so I added one more step. It records your rider’s 18 part transforms, then plays your rider’s list a second time using the transforms from one second ago.
The result is a ghost that retraces your line a beat behind you. The game doesn’t know it exists, and that’s the point.
Test 2: sixty-three of them
Then I did it 63 times: each ghost a couple of frames further behind than the last and shifted sideways on an eight-wide grid, so they spread out like a pack.

- Frame rate: the game held its normal 20 updates a second (it races at 20 and the port smooths it to the display’s refresh rate).
- Draw budget: the whole pack used about 4,900 of the frame’s 32,768 commands, roughly 78 per rider.
So drawing a full field is cheap. The hard part is somewhere else.
What doesn’t work yet
The ghosts are drawn and nothing more. They throw no spray, leave no wake and can’t be bumped, and because each one replays your height on a sideways shifted line, some hover over the water or sit in it. Connecting puppets to the real water is the next real piece of work.
There’s also no networking yet, no elimination rules, and the courses were built for four riders. I tried shrinking the riders so a pack has room to breathe, and it reads well, but the physics still needs to shrink to match.
Next
Turning this into a game: a solo elimination race against 63 recorded laps, with cut-offs, stalled jet skis and a spectator camera. Real players come after that.