This is a fork of StuntCarRemake with two player and reworked physics for uncapped frame rate.
Play: https://retro-foundry.github.io/multistuntcar/
src/- game and platform source codedata/- runtime assets (tracks, sounds, bitmaps, font)build/- out-of-source native build directorybuild-web/- out-of-source Emscripten build directory (recommended)
Desktop/native rendering and audio use SDL2 + OpenGL + SDL_ttf. Web builds use Emscripten SDL ports.
cmake -S . -B build
cmake --build buildWindows Release:
cmake -S . -B build
cmake --build build --config Releaseemcmake cmake -S . -B build-web
cmake --build build-webThe web build supports 2-player over WebRTC: one tab hosts (runs the game and streams the canvas), the other joins as guest (watches the stream and sends controls as player 2). A signaling server is required.
To deploy your own signaling server on Cloudflare Workers (Durable Objects), see webrtc/muttistuntcarsignal/README.md for setup, wrangler commands, and how to point the game at your worker URL.
The hidden TNT 8-track pack is extracted from the reference/SCR-TNT binary with tools/extract_tnt_tracks.py.
- The script validates the source fingerprint (
sha1=f6fd44dc425e367b3ce3c6af18cf07f2d7a50d7b) unless--forceis used. - It finds the embedded
piece.data.offsetstable by signature, then decodes track data using the original Amigaset.road.data1flow from the disassembly. - Hidden raw track blocks are decoded from these starts (hex):
0x03BE, 0x04BE, 0x0563, 0x067C, 0x074F, 0x0807, 0x0926, 0x09F3. - Compressed section data is expanded into the port’s standard
804-byte track format:- section count + start section
100x/z entries100angle/template entries100left y-id entries100right y-id entries100left overall y-shifts (word values)100right overall y-shifts (word values)- standard/super boost bytes
- Output files are written to
data/Tracks/TNT/in fixed order:DizzyDescent,WittyWay,CrazyCaper,AmazingAdeptJerkilyJump,EvillyEpisode,TeasingTemper,RatRace
- A manifest is written to
data/Tracks/TNT/manifest.jsonwith source hash, block offsets, and per-track SHA1/SHA256.
The Original pack currently contains Skyline Spiral, generated by tools/generate_original_tracks.py.
- Output is written to
data/Tracks/Original/SkylineSpiral.bin. - The route is a 46-piece loop with orange/white side panels, an outside launch ramp, right-side stutters, elevated inner switchbacks, and a staged descent back to the start.
- Regenerate it with:
python tools/generate_original_tracks.py- Original project: http://sourceforge.net/projects/stuntcarremake/
- Forked from: https://github.com/ptitSeb/stuntcarremake
- Some original sound-loading code came from Forsaken/ProjectX port work by chino.