Crash Bandicoot Launcher
Unofficial fan project.
The 1996 classic, running natively on PC and Android. In widescreen, at 240 FPS, in 4K.
This isn't an emulator. The original PS1 code is statically recompiled into a native program on your own machine, then given the upgrades the PS1 never could: a real 16:9 view of the world, high frame rates, high resolutions, mods and cheats.
What you get
- Native widescreen (16:9). Nothing is stretched: the game draws more of the world on both sides of the screen, with the same camera. The HUD moves out to the new screen edges.
- High frame rate. 60, 120, 240 FPS or uncapped. Each object keeps its original speed, so the game plays as it did on a PS1, only smoother. You can switch frame rate in game with hotkeys.
- High resolution. Internal resolution from native up to 8x (4K), with integer scaling if you want perfectly sharp pixels.
- Image options. Bilinear, sharp bilinear and soft smooth texture filters, plus dedither and dejitter to remove the PS1 dithering and wobbly polygons. If you keep the dithering, it stays aligned to the PS1 pixels at any resolution. There's also an optional CRT filter (MattiasCRT) for the old TV look.
- Quick save and quick load. Save anywhere and load it back in a second:
F5saves,F8loads,F6/F7switch slot. The same actions are in the pause menu. - Keep your lives. Optional: the lives count is stored in your memory card save and comes back when you load it, as in Crash 2 and 3.
- Box counter. Optional on-screen count of the boxes you broke and the boxes the level's gem needs. It turns gray when a death loses the gem.
- Level warp. Jump to any level or bonus round from the Dev Menu, including Stormy Ascent, the level cut from the original game.
- Cheats. Infinite lives, level select (secret levels too), god mode, fly mode and all 26 gems on or off.
- Mods. Drop C# mods, texture packs and asset overlays into
mods/and switch them on or off from the launcher or the in-game Dev Menu. See the modding guide. - Controllers and keyboard. Gamepad support (PlayStation Classic pad included), rebindable keys and optional analog movement: the left stick steers Crash in any direction, not only the 8 of the D-pad.
- A launcher on every platform. The same Crash-themed launcher on Windows, Linux and Android, usable with mouse, keyboard, touch or gamepad. In game, the pause menu, Dev Menu and Settings can match its style (or keep the classic gray look).
- Plays from a
.chdor.cue+.bindump. No extraction or converter needed.
Every extra is optional: each one has its own switch in Settings, so you can play it exactly like the original.
It's still a work in progress. Widescreen is a big job: some levels still show the edges of the original scenery. Bugs exist, and we'd love to hear about them (see Found a bug?).
Quick start
You need your own dump of Crash Bandicoot (USA), serial SCUS-94900, as a .chd or as a .cue with its .bin. The game is not included here; read the fine print.
Windows
- Download
CrashBandicoot.exefrom Releases. - Run it and click Select disc to choose your
.chdor.cue. - Click START GAME.
The first launch builds the game on your PC, which takes a moment. Later launches start straight away. If the game window doesn't open, check the System requirements.
Android
Install the .apk from Releases (arm64), select your disc, and play with touch controls or a gamepad.
Linux
- Download
CrashBandicoot-Linuxfrom Releases. - Mark it as executable once, because browsers drop that permission: right-click it, Properties → Permissions → Allow executing file as program (or
chmod +x CrashBandicoot-Linux). - Double-click it. The launcher opens.
- Click Select disc to choose your
.chdor.cue, then click START GAME. A disc in the same folder as the program is picked up on its own.
It's the same launcher as on Windows, with Settings, Controls, Mods and Cheats, usable with mouse, keyboard or gamepad. The first launch builds the game from your disc, which takes a minute or two. While you play, the launcher steps aside, and it comes back when you close the game. In About (the i button) you can add it to your applications menu, which also makes it show up in Steam's Add a Non-Steam Game list.
You need a GPU with OpenGL 4.3+ (Mesa, NVIDIA or AMD) and a distribution with glibc 2.34+ (see System requirements). Audio (OpenAL Soft) is bundled, so there's nothing else to install. The launcher window uses X11, which Wayland desktops provide through XWayland. If it doesn't start, attach logs/last-run.txt (next to the program) to your bug report.
Linux: start the game without the launcher (Steam shortcuts, scripts)
./CrashBandicoot-Linux --run /path/to/your/game.chd
Without the path, --run uses the last disc you played.
Linux troubleshooting: instant Segmentation fault in a VM
If it crashes right after launching … game.recomp.dll, the VM probably can't create an OpenGL 4.3 context. Check with glxinfo -B and enable 3D acceleration. For a quick test, try software GL:
sudo apt install mesa-utils LIBGL_ALWAYS_SOFTWARE=1 ./CrashBandicoot-Linux --run /path/to/game.cue
More about disc images (CHD, CLI options)
-
Supported dump: a standalone CD image with a single
MODE2/2352track, matching the NTSC-U disc. Other regions, multi-track layouts, DVD/GD-ROM images and CHDs that need a parent are not supported. -
To turn a
.cue+.bininto a CHD, use MAME's chdman with the CUE next to its BIN:chdman createcd -i "Crash Bandicoot.cue" -o "Crash Bandicoot.chd" -
The disc image must still be there each time you play, because the game streams levels and audio from it.
-
Command line options also work on Windows (
CrashBandicoot.exe --prepare …/--run …). Ifsettings.jsonalready points to a valid disc,--rundoesn't need the path.
System requirements
| Windows | Linux | Android | |
|---|---|---|---|
| System | Windows 10 or 11 | glibc 2.34 or later: Ubuntu 22.04+, Debian 12+, Fedora 35+, RHEL / AlmaLinux / Rocky Linux 9+ | Android 8.0 (API 26) or later |
| CPU | 64-bit x86 (x64) |
64-bit x86 (x86-64) |
64-bit ARM (arm64-v8a) |
| Graphics | OpenGL 4.3 | OpenGL 4.3 | OpenGL ES 3.2 |
| Also needed | Visual C++ Redistributable 2015–2022 (x64) | X11 or XWayland | Nothing |
- No 32-bit builds on any platform, and no native ARM build for Windows or Linux.
- OpenGL 4.3 works on most PC GPUs from 2012 on, for example NVIDIA GeForce 400 series, AMD Radeon HD 7000 series, Intel HD Graphics 4600 or newer. The game doesn't use Direct3D or Vulkan. If the game window doesn't open, update your GPU driver first.
- Visual C++ Redistributable (Windows): most PCs already have it, because many games install it. Without it, the game can't open its window or play sound.
- Linux: the launcher also needs fontconfig and ICU (
libicu), which every desktop distribution includes. Older releases, such as Ubuntu 20.04 or Debian 11, have an older glibc and can't run the game. - Android GPU: besides OpenGL ES 3.2, the driver must support framebuffer fetch or
GL_EXT_blend_func_extended. Adreno (Snapdragon) and Mali drivers do. The APK also containsx86_64libraries (emulators, some Chromebooks), but that gets less testing.
How it works
- You point the launcher at your disc.
- The RecompOne recompiler translates the game's MIPS code into C# and compiles it on your PC, in a
game/folder next to the exe. Nothing is uploaded anywhere. - A runtime pretends to be enough of a PS1 (BIOS, GPU, sound, CD) for that code to run, and replaces the renderer with a modern one.
The extra features (widescreen, high frame rate, cheats) hook into the game's own logic. To do that we had to understand how Crash actually works inside, and for that we owe a lot to the people credited below.
Everything stays next to the exe: settings.json, saves in save/, the prepared game in game/, and your mods/. There's no telemetry.
Found a bug?
Open an issue. A level name and a short description of what happened help a lot. Pull requests for the launcher, runtime, UI or docs are welcome.
Please don't ask where to download the game, and never attach disc images or generated game code.
Thanks
This project stands on the shoulders of some amazing people.
![]() @arciks1192-svg |
Our full-time bug hunter. Most of the issues ever opened on this repo came from them: every broken platform, odd camera and missing wall was found, reported and retested. A huge part of the game playing as well as it does today is down to them. Thank you! |
![]() @wurlyfox |
c1, the decompilation of Crash Bandicoot's engine. This project would never have been possible without it. Most of the cool features exist because c1 told us what the game's memory and code actually mean. Widescreen, high frame rate, level select and direct level warps all rely on it. |
![]() @ManDude |
goocdump, the decompiled GOOL scripts. GOOL is Naughty Dog's own language that drives every crate, enemy and platform in the game. Reading those scripts is how we make each object behave correctly at 60, 120 and 240 FPS. |
![]() RecompOne |
The static PS1 recompiler and runtime this whole thing is built on (MIT). |
Also thanks to:
- CHDSharp by Peterson Fernandes (@purelogiccode) and Gordon Jefferyes (@gjefferyes), for CHD support. See the third-party notices.
- CRT View by Mattias Gustavsson, whose crtemu shader is the optional MattiasCRT filter (MIT).
- The static recompilation community (N64Recomp and friends), for showing it could be done.
- Naughty Dog, for making the game we're all still playing almost 30 years later.
If you enjoy the project, you can buy me a coffee on Ko-fi
Building from source (developers)
You need the .NET 10 SDK.
dotnet build CrashBandicoot.Launcher -c Release dotnet run --project CrashBandicoot.Launcher -c Release -f net10.0-windows
Linux (no arguments opens the launcher, --run starts the game directly):
dotnet build CrashBandicoot.Launcher -c Release -f net10.0 dotnet run --project CrashBandicoot.Launcher -c Release -f net10.0 dotnet run --project CrashBandicoot.Launcher -c Release -f net10.0 -- --run /path/to/game.cue
Release builds
From the repo root, python publish_release.py asks which platform to build:
- Windows:
publish-single\CrashBandicoot.exe - Linux:
publish-linux\CrashBandicoot - Android:
publish-android\CrashBandicoot-<version>.apk(arm64, signed) - All three
You can also run it without prompts: --platform windows|linux|android|all. Other options are --out my-folder and --clean.
The first Android publish creates signing/android-release.keystore, which is gitignored. Back it up: if you lose the keystore, you can't update the same app.
Equivalent raw commands:
dotnet publish CrashBandicoot.Launcher -c Release -f net10.0-windows -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:IncludeAllContentForSelfExtract=true -p:EnableCompressionInSingleFile=true -o .\publish-single
dotnet publish CrashBandicoot.Launcher -c Release -f net10.0 -r linux-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:IncludeAllContentForSelfExtract=true -p:EnableCompressionInSingleFile=true -o ./publish-linuxThe single-file binary extracts its bundled dependencies at runtime. User data (save/, game/, settings.json) is always written next to the real exe.
Before uploading a release, make sure it contains only tools and UI: no .bin/.cue/.chd, no main.cs, no game.recomp.dll or game/ folder.
Repo layout
| Path | Role |
|---|---|
CrashBandicoot.Launcher/ |
WinForms launcher (Windows), Avalonia launcher (Linux, Linux/), CLI, and the local recompile pipeline |
AndroidLauncher/, AndroidRuntimeHost/ |
Android app |
RecompOne.Runtime/ |
PS1 HLE runtime (from RecompOne), plus frame pacing, widescreen and cheats |
RecompOne.Recompiler/ |
Recompiler library (from RecompOne) |
examples/mods/ |
Sample mods, see docs/MODDING.md |
docs/ |
Technical notes (how we got it playable, native widescreen, …) |
The fine print
- Unofficial fan project. It is not affiliated with or endorsed by Sony Interactive Entertainment, Activision, Naughty Dog, or any rights holder. Crash Bandicoot and related names and marks belong to their respective owners.
- The game is not included. This repo has no ISOs, no disc images, no game assets and no recompiled game code. You need a dump of a disc you own. If you find this project bundled with a ROM or ISO, it didn't come from here.
- License: the original code in this repo is MIT. RecompOne components keep their upstream MIT license and notices. The license covers our software only and grants no rights to Crash Bandicoot itself.



