Version 0.2.1 · free and open source · built with AI

An open-source engine for Motocross Madness 2

OpenMCM2 is a fan project that has rewritten the 2000 Rainbow Studios game from the ground up in Rust. It isn't an emulator or a wrapper around the old exe. The whole engine is new code, and it all runs natively on Mac, Windows and Linux. It reads the tracks, bikes and menus from your own copy of the game.

Riders on a national track at dusk, running in OpenMCM2

Written from scratch, by AI

This project is completely vibe coded. One fan directed Claude Code, an AI coding agent, to study the original game, work out its formats, physics, sound and menus, write it all again in Rust, and test it against the original. Human reviews and contributions are very welcome.

Runs natively everywhere

It draws with wgpu: Metal on Mac, Vulkan on Linux, DirectX 12 or Vulkan on Windows. It works at any resolution and frame rate, with no compatibility layers.

Your game, shared code

As with OpenMW, the project ships no game files. The code is MIT or Apache-2.0, so you can use it however you like.

See it in action

A short tour of OpenMCM2 running on a Mac.

Or watch it on YouTube.

A rider in the air over a supercross triple

Supercross

All 17 stadiums, with their whoops, triples, banners and crowds. Your bike runs the game's own physics model: a rigid body with two tyres on shocks, an engine and a gearbox.

Two riders racing on a sandy national track

Nationals, Baja and Enduro

The outdoor tracks are all here, with their hills, trains and planes. The computer riders use the original's AI and racing lines, so they race, crash and pull tricks much as they always did.

A rider thrown from the bike after a crash

And the crashes

Wrecks, tricks, taunts, the Kahuna, ghost races, replays, the Pro Circuit career, Moto-Tag and network races are all in.

Desert baja course with cacti
Baja
Snowy enduro course by a ski lodge
Enduro
Stunt quarry with tall dirt walls
Stunt Quarry
Enduro gate beside a crashed plane
Enduro gates

Original look, or a gentle remaster

By default it looks the way the 2000 game did. Add --enhanced for sun shadows, HDR, soft shading and more detailed ground, and press F3 to switch between the two while you ride. The physics are the same either way. Drag the slider to compare.

Supercross start, enhanced look Supercross start, original look OriginalEnhanced

Pads and flight sticks

Plug in an Xbox or PlayStation controller, or a flight stick like back in the day. Steering, lean, gas and brake work straight away, triggers included, and every button can be rebound in Options > Controls. A flight stick's throttle lever can work the gas. The Controls page shows your own controller's button names, and the pad drives the menus too.

What a full rewrite makes possible

Every part of the game is now readable, modern code, so it can be changed in ways a patched exe never could. Here are some ideas we'd love to see, from us or from you:

Custom tracks and bikes

Load community tracks such as those from MDX Racing without any installers. Add new bikes and skins, or build a track editor on top of the format readers in mm2-formats.

Online play that works today

The network code is ours, so it could have dedicated servers, a server browser and better netcode for bigger fields.

Steam Deck, handhelds and the web

Rust and wgpu build almost anywhere: Linux handhelds, ARM laptops, and perhaps one day the browser through WebGPU.

Ultrawide, high refresh, VR

The renderer isn't tied to 2000-era limits: think proper ultrawide, 144 Hz and beyond, or even a VR camera.

Ghosts, telemetry and replays

Share ghost laps, export a ride's speed and suspension data, or build a replay editor. The physics state is all there to read.

Controllers and accessibility

Steering wheels, adaptive controllers, remappable everything, colour-blind friendly HUDs, adjustable assists.

Physics and AI experiments

Tweak the bike model, train smarter AI riders, or use the documented physics as a reference for your own projects.

Tools for the game's files

The archive, terrain, model and texture readers are a plain Rust library. Use them for converters, viewers, archival projects, or anything else.

Yours to use

OpenMCM2 is licensed MIT or Apache-2.0, so you can fork it, mod it, port it, or take pieces for something else entirely. You don't need to ask. If you build something, we'd love to see it. Issues and pull requests are welcome on GitHub.

Where it stands

It's playable from start to finish, and we're still fine-tuning how the bikes ride.

  1. Game data

    Archives, terrain, scenes, models, animations, textures, collision, menus and the intro movies.

  2. Tracks, bikes and riders

    Every track type, every bike and outfit, plus tricks and taunts.

  3. Menus and game modes

    The original front end, the career, ghosts, replays, Stunt Quarry, Moto-Tag and network races.

  4. Sound

    Engines, crashes, crowd and track sounds, placed in 3D like the original.

  5. Physics

    The original's own bike model, checked against recordings of the original game. Most runs match, but a few landings and rough patches still feel different.

  6. Enhanced look

    Optional, and kept close to the original's palette.

Play it

  1. 1

    Download

    Get OpenMCM2 for Mac, Windows or Linux from the releases page and open it.

  2. 2

    Add your game

    Choose your Motocross Madness 2 CD image (.iso, .bin/.cue, .img, .mdf, .nrg), the CD itself, or an installed folder.

  3. 3

    Pick and play

    Choose the original or enhanced look, full screen or a window, then press Play.

The launcher copies the game from your own copy and keeps your settings. It never downloads the game. If you like, it can fetch player-made tracks from MDX Racing, one at a time when you ask. To build from source you need Rust:

git clone https://github.com/crspytopgn/openmcm2
cd openmcm2
cargo build --release -p mm2-viewer -p mm2-launcher
./target/release/mm2-launcher

On Linux, install libasound2-dev, libudev-dev and pkg-config first. On a Mac, the app isn't notarised yet, so right-click OpenMCM2.app and choose Open the first time.

Thanks

To Rainbow Studios, for making a game we still want to play. To the OpenMW project, which showed how an engine can be rebuilt in the open around game data its players own. To FFmpeg, whose Indeo 5 decoder we ported for the game's movies. And to ambientCG for the CC0 ground materials.