Crash Team Racing setup guide
Crash Team Racing, the Archipelago way
CTR Archipelago turns the 1999 PlayStation classic into a native PC randomizer that connects to Archipelago multiworlds on its own, so you do not need an emulator, ROM patching, or a separate client. Warp pads ask for new requirements every seed, and trophies, keys, gems, and relics become items that can come from any world in your multiworld.
New to Archipelago itself? Read Getting started with Archipelago first. A check is an action that awards an item, such as winning a race; the item may go to any player in the multiworld. This page gets the game itself running. For plain CTR without the randomizer, see Play Crash Team Racing on PC.
Choose your next step
- Your room is already generated: follow the installation and connection steps below. You need the game client, your disc image and the connection details from the host.
- Your host is collecting players: make a 0.2.0 YAML, the file containing your player name and settings, and send it to them before generation.
- You are generating or hosting: install the matching APWorld, the package that adds CTR to Archipelago, and follow the hosting guide. Players joining your room do not need to install this package themselves.
Updating an existing install? Back up its folder, including settings and saves. For a new game, use the matching 0.2.0 client, APWorld and YAML. For an ongoing room, check with the host before updating; older Alpha seeds are not automatically interchangeable with the final release.
What you need
0.2.0 is the current stable release. Read the full release notes for the new settings, experimental features and remaining testing coverage. Use a matching 0.2.0 client and APWorld when generating a new game, with fresh seeds.
Prefer video? Watch Appie's CTR setup walkthrough. It predates 0.2.0, so use the current downloads and written instructions alongside it. If you are organizing the multiworld, the hosting video and written hosting guide cover generation and running the server.
The game client, from the download page. Download the latest stable release and unzip it into a folder of its own. The raw .bin setup needs no Python; .chd extraction uses the tools described below.
Bring your own disc. No game data is included. You need a disc image of your own North American (NTSC-U) Crash Team Racing disc, usually a
.binfile. A.cueplus.bin, a single.bin, or a.chdall work. The European and Japanese releases are detected and refused, so it really has to be the North American disc.If you only have the physical disc, dump it with any standard PlayStation disc-dumping tool first. The game wants a raw image (MODE2/2352, which is what most dumping tools produce by default), not a renamed
.iso.
Step 1: first launch
Run ctr_native_ap.exe (Windows) or ctr_native_ap (Linux) once. On a fresh start it creates an assets folder next to the executable and tells you what it is waiting for.
Step 2: drop in your disc image
Copy your raw .bin disc image into that assets folder. The filename does not matter: the game scans the .bin files and recognizes a valid North American disc automatically. Launch again and the game boots to the main menu.
For a .chd, use the bundled extract_assets.py with Python and chdman, following the extraction instructions. The automatic drop-in path above is for raw .bin images.
Step 3: connect to your room
In the game, go to Options and then Connection. Fill in three fields:
- Server: your room address, for example
archipelago.gg:38281. You can paste it straight from your room page. - Slot: your player name, spelled exactly as it appears in the room.
- Password: only if your room has one.
Hit Connect and watch the status line on the same screen. Once it says connected, you are done: settings are saved and the game reconnects by itself on later launches.
Playing on Linux and Steam Deck
The Linux build ships as a .tar.gz with a ctr_native_ap executable inside; extract it and run it the same way as the Windows build. On Steam Deck it works without a keyboard: add the game to Steam, launch it from Gaming Mode, and focusing any connection field brings up the on-screen keyboard. The setup guide on GitHub has the details.
Steam Deck fullscreen: if turning on Fullscreen causes heavy lag, leave it off and use the default windowed setting. This is a known issue tracked in #260.
Your YAML
If somebody already generated the multiworld for your group, you can skip this section: joining needs nothing but the client and your room details. A YAML is how you pick your own settings while the host is still collecting players for a new game.
The easiest way is the browser builder: open the CTR YAML Builder and it starts right away, no searching needed. Set your name, pick your goal, and the rest of the options come filled in with sensible defaults you can adjust as you like. Review the result, download it, and hand it to your host.
You can also start from the template YAML published as a separate release asset and edit it by hand if you would rather; Setting up your YAML explains the format in depth. Use the template that matches the CTR APWorld version your host is generating with. The setup guide on GitHub has the full details.
A dedicated CTR 0.2.0 YAML explanation video is coming soon. Until then, the 0.2.0 Builder, its option help and the CTR reference cover the available settings.
When something goes wrong
The game tells you what is missing and why, and the setup guide's troubleshooting section covers the common cases. For crashes or a seed that looks impossible, run support-bundle.bat (Windows) or support-bundle.sh (Linux) next to the executable and attach the archive it makes to a GitHub issue, or bring it to the Crash Team Racing channel on the Archipelago Discord. It contains your logs with the password stripped out, and no game data.
Come say hi
For questions, feedback, or showing off a seed, join the Archipelago Discord and find the Crash Team Racing channel.