A PC edition of Crash Team Racing built for custom content — custom tracks and custom characters.
Built on ctr-native.
Want the newest state? The nightly build is made from main every night - untested, no guarantees.
Features · Getting started · Controls · Custom tracks · Custom characters · Mods · What's next · Building · Bugs · Credits · Up to date · License
CTR Reload Edition runs Crash Team Racing (PS1, 1999) natively on Windows, without an emulator, and plays custom tracks and custom characters next to the original ones.
The current release is 0.7.5 Beta (Reload Studio 0.9.0). This README
describes main: what is marked new since 0.7.5 is in the
nightly build
until the next release.
Important
You need your own disc image of the game, NTSC-U (SCUS-94426), as
.cue/.bin. This repository and its releases contain no game data: no
disc image, no extracted files, no models, textures, music or tracks. Apart
from the bundled SDL library, they hold no 3D models, voices, sound effects
or images made by other people either.
Warning
This is a beta for testing. Expect bugs - and please report them.
- New Vulkan renderer
- Internal resolution up to 8x, MSAA anti-aliasing
- Real widescreen: 4:3, 16:9 and 21:9 — the view gets wider, nothing is stretched
- Menus stay nicely centered on ultrawide screens
- OPTIONS → GRAPHICS: display mode, aspect ratio, resolution, anti-aliasing and NATIVE DRIVERS, saved for the next start
- Drop a .rldtrack file into the tracks folder and it shows up in game
- New NITRO-PIT mode under Arcade with everything for custom tracks:
- Race, with CPU drivers
- Time Trial with your best times per track and lap count
- Custom cups of four tracks each
- Crystal Challenge: collect every crystal before the time runs out
- CTR Challenge: finish 1st and collect C, T and R
- A track is listed under every mode it has the data for
- A preview video of each track plays in the track selection
- Tracks bring their own music and their own minimap, scaled automatically for the track screen
- New since 0.7.5: a track without a start grid gets one, and a track without CPU paths gets them generated from its checkpoints
- Fixes for crashes found in community tracks, and broken track data gets caught before you race, not mid-race
- Reload Studio asks What do you want to build? and guides you through
one of three routes to a finished .rldchar and a test race:
- Vanilla: a classic PS1-style driver from a glTF (.glb), OBJ or PLY
- Low-Poly and Hi-Res (new since 0.7.5): a textured driver from one .glb, animated with up to 12 clips on a skeleton - drawn by the game's new engine, with a classic model made from the same file as fallback
- Creator Kit (new since 0.7.5): a ready Blender template made from your own game data - kart, skeleton, a placeholder figure and all 12 clips. Swap in your figure, export, test
- Any model, exported at any scale, is fitted to Crash's size, repaired and, above the triangle limit, reduced automatically - the shape and the colours stay
- Your own icon in the driver select and the race HUD, mask (Aku Aku or Uka Uka), minimap colour, voice clips, shadow and exhaust
- The driving style (Balanced, Acceleration, Speed, Turning) decides how the kart drives and sounds
- Kart wheels drawn or hidden, or wheels of your own, with an extra rear wheel and the axles where you want them
- Drop a .rldchar file into the characters folder and it gets its own tile in the driver select - up to 32 of them - and can race as a CPU driver
- A MODS page for one-player Arcade races and NITRO-PIT: choose your CPU drivers (random, or only the ones you tick - custom drivers too)
- New since 0.7.5: difficulty up to EXTREME, a one-on-one Boss Challenge against Ripper Roo, Papu Papu, Komodo Joe, Pinstripe or Nitros Oxide on any track, item chaos or your own item weights, gravity, grip, night and the Retro Fueled rules
- One window for tracks, cups and characters — no command line, no scripts, no patching
- Checks while you work and says in plain words what is wrong and how to fix it
- "Build container" also records the track's preview in the background
- 3D character preview next to Crash, the way the game will draw it, with its animations
- "Test in game" starts a race with your track or your character straight away
- Notices a new export by itself and checks again; long builds show their progress and can be cancelled
- New since 0.7.5: the Creator Kit page, and modules - extra pages as
DLLs in a
modulesfolder next to the Studio - Dark and light mode, follows the Windows display scale
- Custom memory budget: big custom tracks get extra room (up to 32 MB), and buffers are sized per track. Original tracks keep their original tables, with larger draw and clip buffers
- New VRAM handling: palette textures go through a GPU atlas instead of being decoded from emulated PS1 VRAM for every pixel
- A native engine draws high-detail and hi-res drivers with skinning, real textures and mipmaps next to the original PS1 drawing
- Less emulation where it doesn't matter: several PS1 rendering steps now run natively, like transparency in a single pass
- Runs out of room gracefully: an effect is left out and logged instead of a crash
- First-start window: just drag in your disc image
- Settings are remembered, faster boot
- New since 0.7.5: every key can be changed in OPTIONS → CONTROLS, and the mouse works in menus
- Race pauses when you alt-tab or minimize
- New main menu with Options (cheats, scrapbook) and Exit
- All characters unlocked from the start — your save stays untouched
- F12 saves a screenshot; F11 or Alt+Enter toggles full screen
- A log with date and time for every start, the last five are kept
- Folder and user names with any characters work (accents, Cyrillic ...)
- Download
ctr_native.exe(the game) andReloadStudio.exe(the track and character tool) from the latest release into one folder you can write to, for exampleC:\Games\CTR Reload(notC:\Program Files). - Start
ctr_native.exeand drag your disc image (.cueor.bin) onto the window. The game unpacks what it needs into anassetsfolder next to it, once (about 520 MB). - Set up the picture in OPTIONS → GRAPHICS.
- Create a folder
tracksnext to the game and put.rldtrackfiles into it. - Race them: ARCADE → NITRO-PIT → RACE, CUP, TIME TRIAL, CRYSTAL or CTR.
- For custom characters, create a folder
charactersnext to the game and put.rldcharfiles into it. They show up in the one-player ARCADE driver select, after the original drivers.
The game reads both folders when it starts: after a new track or character, restart the game.
Windows 10 (1903 or newer) or Windows 11 and a graphics driver with Vulkan 1.0.
Stock keyboard layout (the controller layout is fixed):
| Action | Key |
|---|---|
| Gas / confirm | C |
| Brake / back | X / Z |
| Steer, menu cursor | Left, Right, Up, Down |
| Jump and drift | Right Shift, Left Shift |
| Item | V |
| Rear view / camera | Right Ctrl / Left Ctrl |
| Start / select | Return / Space |
All keys can be changed in OPTIONS → CONTROLS: pick an action, press confirm, then press the new key (Escape cancels). If another action of the same kind had that key, the two swap. RESET TO DEFAULT brings the stock layout back. Escape, F1-F12, Alt and the Windows keys cannot be bound.
The keys are saved in ctr-controls.cfg next to the game, one line per
action, for example gas C. A line the game cannot use is skipped with a line
in the log. Delete the file to get the stock layout back.
In menus the mouse works too: hover picks a row, left click confirms, right click goes back, the wheel scrolls lists and changes values. It is not in the driver, track and cup select yet, and not during a race.
Reload Studio (ReloadStudio.exe) builds a track container from your exported
track folder (.lev, .vrm and optional music), checks it and records its
preview. On its Cups page you put up to four cups together, and "Test in game"
starts a race on your track straight away. Keep it next to ctr_native.exe.
What a track needs for each mode
| Mode | Needs |
|---|---|
| Race | restart points (the checkpoints that count the laps); CPU paths are generated from them when the track has none (new since 0.7.5) |
| Crystal Challenge | at least one crystal |
| CTR Challenge | each of the letters C, T and R exactly once |
| Time Trial | the same as Race; its own row in NITRO-PIT |
| Battle | not available yet |
At most 110 placed objects (crates, fruit, letters and every other placed model); above 90 Reload Studio warns.
On its Character page, Reload Studio first asks What do you want to build? and then shows only the steps of that route - model, driver, in-game look, voices and build - with the preview beside them. The shortest way is four clicks: card, model, Build, Test in game.
| Route | Model | What the game draws |
|---|---|---|
| Vanilla | glTF (.glb, recommended), OBJ or PLY | the classic PS1-style driver; animations from shape keys |
| Low-Poly (new since 0.7.5) | one .glb, its clips on a skeleton | a textured driver on a smaller budget (8000 triangles), and the classic fallback |
| Hi-Res (new since 0.7.5) | one .glb, its clips on a skeleton | a textured driver on the game's full hi-res budget, and the classic fallback |
Every model can be exported at any scale - it is fitted to Crash with his kart, repaired (split corners, holes, faces turned inward) and, if it has more triangles than a driver may draw, reduced until it fits. You choose the driving style, the mask, an icon for the driver select and the race HUD, a minimap colour, voice clips, shadow and exhaust, and the kart wheels: the game's, none, or your own.
Animations. A Low-Poly or Hi-Res driver brings 12 clips as Blender
actions on its skeleton: idle, steer_left, steer_right, jump,
drift_left, drift_right, hit, podium_1 to podium_3, lose and
menu. A missing clip falls back to another one, so you can start with a
few. A Vanilla driver takes shape keys instead (steer_left, steer_right,
reverse, crash, jump, win and lose) - see docs/ANIMATIONS.md.
Creator Kit (new since 0.7.5). The page Creator Kit builds a Blender 5.2 template from your own copy of the game: the kart, a skeleton, a placeholder puppet and all 12 clips, with the export settings stored. You replace the puppet with your figure, export it and test it - or start from one of your old characters. Files with the kit's kart contain your game data and stay on your computer; the figure alone is the file to share. The step-by-step guide is docs/CREATOR_KIT.md.
In the preview, drag to turn the model, drag with the right mouse button to move it, use the mouse wheel to zoom and double-click to go back to the start view. The View menu (also on a right click) holds the fixed views, a light or dark background, the Crash size reference, shadow and exhaust.
Current limits
- In the one-player ARCADE driver select, the NITRO-PIT race, cup and time trial, and as CPU drivers through MODS; not in NITRO-PIT CRYSTAL or CTR, Adventure, Battle or with two players
- At most 32 characters get a tile; their own icon shows for the first 20
- The size is visual only - physics and collision follow the driving style
- High score lists and profiles still show Fake Crash
- A driver without voice clips is silent
- The hi-res format is a preview and may still change
Every page and message of Reload Studio is explained in section 4 of the Reload Studio guide; what is new in each version is in the release notes.
MODS is a feature preview for one-player ARCADE races and cups, on the disc tracks and in NITRO-PIT race and cup. In the track select press DOWN below the last LAPS row (in the cup select, from a lower cup onto the MODS line), then CROSS. Everything is off at first; with every value at normal the game is exactly as before.
| Group | What you can set |
|---|---|
| Drivers | CPU drivers: default, all random or only the ones you tick (custom drivers too); difficulty EASY to EXTREME (new since 0.7.5); Boss Challenge, one against one with a boss on any race track (new since 0.7.5) |
| Rules | items: default, chaos or your own weights; the Retro Fueled rules by TheRedhotbr, each on its own (new since 0.7.5) |
| World | gravity 20 % to 200 %, grip 0 % (ice) to 100 %, night 0 % to 90 % (new since 0.7.5) |
Not in CRYSTAL, CTR and TIME TRIAL of NITRO-PIT, Adventure, Battle or with two players.
Planned, in no particular order and without a date:
- Battle on custom tracks
- Custom characters in more modes: two players, Adventure and the NITRO-PIT challenges
- More mods
- Skin support for the drivers
- ...and more
We build continuously; a new version comes out when enough has come together. Until then, fixes and additions land here first.
Visual Studio 2022, CMake, the Vulkan SDK and Python.
Steps and developer notes
From a command prompt in the repository root:
build-msvc.bat
This builds the Release configuration in build-msvc-x86\ and runs the
self-tests. Requirements, results, tests and packaging are described in
BUILDING.md.
Quick states and replays exist only behind the developer switch --dev. They
are raw memory snapshots of the game: load only files you made yourself.
--dev --deterministic is the measuring mode of the reference runs. VSync
emits only the VBlanks the game asks for and never catches up by wall clock,
and audio is rendered per VBlank. Only the script drives the game
(--menu-keys, --level, --autoload-demo, --autopilot, a replay):
keyboard, mouse, pads and window focus do not reach it. Losing focus or
minimising never pauses, a display change keeps the aspect, and the debug
keys, F11, Alt+Enter, Ctrl+Q and the name-entry keys do nothing; closing the
window still ends the run. The log names this once at start, and at exit
one line per kind counts what was kept away, only when something was (pad
triggers and sticks are kept away but not counted). Without --deterministic nothing
changes. Reload Studio records a track preview this way too. The window size
still reaches the renderer: with --res-scale native the picture, and so a
--shot, depends on the size of the window.
Open an issue with the bug report template, one issue per problem.
What to include - and what never to attach
- The version:
ctr_native.exe --version - What happened, what you expected, and the steps to get there
- The newest log from the
logsfolder next to the game - For a custom track or character: its file name and the SHA-256 Reload Studio shows
Issues are public: never attach disc images, the assets folder, memory cards,
.rldtrack/.rldchar files or other game data, and edit your Windows user
name out of the log if you mind.
- Built on human-written foundations: ctr-native and the CTR-ModSDK decompilation.
- CTR Reload Edition is developed by two people. We write code ourselves and together with Claude Code (Anthropic), decide what gets built, review every change and test it - with measured reference runs, automated checks and hands-on play testing.
- Development happens openly, in batches and without fixed dates; how to contribute is described in CONTRIBUTING.md.
- ctr-native: the native PC port this edition is based on
- CTR-ModSDK: the decompilation project that ctr-native and this edition are built on
- Sunset Vista by Tramadoll: the track and its extras are his work. This
repository only contains a compatibility layer (
game/native_trackmod.c) so that the track runs natively in CTR Reload. The track itself is not included. Sunset Vista compatibility data used with permission of Tramadoll.
Other components (PsyCross, SDL3 and more), the banner font and their licenses are listed in THIRD_PARTY_NOTICES.md.
This repository is kept up to date with the help of Claude Code (Anthropic): the README, the guide in the package, the release notes and the automatic builds are brought in line with the code as the project grows, so what you read here matches what the newest version does. Every change is reviewed by us before it lands.
CTR Reload Edition is licensed under the GNU General Public License v3.0.
This is a non-commercial fan project. It is not affiliated with, endorsed by or sponsored by Activision, Naughty Dog, Sony Interactive Entertainment or any other rights holder. Crash Team Racing and Crash Bandicoot are trademarks of their respective owners.