A retro-style 3D racing game for the SEGA Dreamcast
Inspired by the golden era of N64 and PS1 racing games
RetroRacer is a love letter to the arcade racing games of the late 90s. Built from the ground up for the SEGA Dreamcast using KallistiOS, it features procedurally generated tracks, N64-style low-poly graphics, and fast arcade action.
Every race is unique thanks to the procedural track generation system - no two races are ever the same!
- ๐ฎ 4 Game Modes - Something for everyone
- ๐ฃ๏ธ Procedural Tracks - Infinite variety with randomly generated circuits
- ๐ค AI Opponents - Race against up to 7 computer-controlled vehicles
- ๐ Championship Mode - Compete in a 4-race Grand Prix series
- โฑ๏ธ Time Trials - Perfect your racing line and beat your best times
- ๐จ Retro Aesthetics - Authentic N64-era low-poly graphics
Sit back and watch AI drivers compete against each other. Perfect for demos or just enjoying the procedural tracks. Choose from 4 difficulty levels to see different racing strategies.
Jump right into the action! Race a single procedurally generated track against AI opponents. Quick and satisfying gameplay.
No opponents, no distractions - just you against the clock. Master the track and shave seconds off your best lap time. Ghost data tracks your personal best.
The ultimate test! Compete in a 4-race championship series. Earn points based on your finishing position across all races. Different tracks each race keep you on your toes.
Points System:
| Position | 1st | 2nd | 3rd | 4th | 5th | 6th | 7th | 8th |
|---|---|---|---|---|---|---|---|---|
| Points | 10 | 8 | 6 | 5 | 4 | 3 | 2 | 1 |
Choose your ride! Each vehicle class offers a different driving experience:
| Class | Top Speed | Acceleration | Handling | Best For |
|---|---|---|---|---|
| Standard | โ โ โ โโ | โ โ โ โโ | โ โ โ โโ | Beginners |
| Speed | โ โ โ โ โ | โ โ โ โ โ | โ โ โโโ | Straights |
| Handling | โ โ โโโ | โ โ โ โโ | โ โ โ โ โ | Tight corners |
| Balanced | โ โ โ โ โ | โ โ โ โ โ | โ โ โ โ โ | All-rounders |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DREAMCAST โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ
โ โ โ โ
โ Analog โ โโโโโโโโโโโ โ X Y โ
โ Stick โ โ START โ โ โ
โ โ โ โโโโโโโโโโโ โ A B โ
โ โ โ โ
โ D-Pad โ โ โ
โ โโโโโ โ โ โ
โ โ โฒ โ โ โ โ
โ โโโผโโโโผโโ โ โ โ
โ โโโ โโบโ โ โ โ
โ โโโผโโโโผโโ โ โ โ
โ โ โผ โ โ โ โ
โ โโโโโ โ โ โ
โโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
โ โ
Left Trigger Right Trigger
(Brake) (Throttle)
| Control | Action |
|---|---|
| Analog Stick / D-Pad โโบ | Steering |
| A Button / Right Trigger | Accelerate |
| B Button / Left Trigger | Brake |
| Start | Pause Game |
| Control | Action |
|---|---|
| D-Pad โฒโผ | Navigate menu |
| A / Start | Select |
| B | Back |
Hold A + B + X + Y + Start simultaneously to exit to Dreamcast BIOS.
The easiest way to build on Windows:
# One-time setup (installs Docker Desktop)
scripts\windows\setup.bat
# Build the game
build.batUsing Docker (no setup required):
./scripts/docker-build.shOr install the full toolchain:
./scripts/setup-kos.sh
source scripts/env.sh
./scripts/build.sh| Command | Description |
|---|---|
build.bat / ./scripts/build.sh |
Build ELF executable |
build.bat cdi |
Create bootable disc image |
build.bat clean |
Clean build artifacts |
build.bat shell |
Interactive build environment |
Option A: Docker (Recommended)
- Docker Desktop (Windows/Mac) or Docker Engine (Linux)
- No other dependencies needed!
Option B: Full Toolchain
- KallistiOS SDK
- SH4 cross-compiler (sh-elf-gcc)
- ARM cross-compiler (arm-eabi-gcc)
retroracer/
โโโ ๐ Makefile # KallistiOS build configuration
โโโ ๐ build.bat # Windows build script
โโโ ๐ include/ # Header files
โ โโโ ai.h # AI racing system
โ โโโ game.h # Game state management
โ โโโ input.h # Controller input
โ โโโ math3d.h # 3D math library
โ โโโ menu.h # Menu system
โ โโโ physics.h # Physics engine
โ โโโ render.h # PVR rendering
โ โโโ track.h # Track generation
โ โโโ vehicle.h # Vehicle physics
โโโ ๐ src/ # Source files
โ โโโ main.c # Entry point
โ โโโ game.c # Core game logic
โ โโโ ai.c # AI behavior
โ โโโ input.c # Input handling
โ โโโ math3d.c # Vector/matrix math
โ โโโ menu.c # Menu UI
โ โโโ physics.c # Collision detection
โ โโโ render.c # Graphics rendering
โ โโโ track.c # Procedural track generation
โ โโโ vehicle.c # Vehicle dynamics
โโโ ๐ scripts/
โ โโโ setup-kos.sh # KallistiOS installer
โ โโโ build.sh # Linux/Mac build script
โ โโโ docker-build.sh # Docker build script
โ โโโ ๐ windows/ # Windows-specific scripts
โโโ ๐ assets/ # Game assets (models, textures)
- Rendering: PowerVR hardware-accelerated 3D graphics
- Resolution: 640ร480 @ 60fps target
- Physics: Arcade-style vehicle dynamics with grip simulation
- AI: Path-following with overtaking and difficulty scaling
- Tracks: Procedural generation with straights, curves, and elevation
Tracks are generated using a seeded random algorithm that creates:
- Straight sections - Variable length high-speed zones
- Curves - Left and right turns up to 45ยฐ
- Hills - Elevation changes for jumps and dips
- Checkpoints - Lap timing and progress tracking
Each difficulty level affects track complexity:
- Easy: Gentle curves, mostly flat
- Medium: Moderate curves, some hills
- Hard: Sharp turns, significant elevation
- Expert: Technical circuits with maximum variety
This project is open source. Feel free to learn from it, modify it, and share it!
- KallistiOS - Dreamcast development library
- Inspired by classic racers: Ridge Racer, Daytona USA, Mario Kart 64
Made with โค๏ธ for the Dreamcast community
Keep the dream alive!