Crash Bandicoot Launcher

Crash Bandicoot Launcher brings Crash Bandicoot to PC.

README

License: MIT Latest Release Downloads ko-fi

Crash Bandicoot Launcher (unofficial)

Unofficial fan project. Not affiliated with, endorsed by, or connected to Sony Interactive Entertainment, Activision, Naughty Dog, or any rights holder of Crash Bandicoot.
Crash Bandicoot and related names/marks belong to their respective owners.

This repository contains tools and a launcher that work with a copy of Crash Bandicoot you already own (PS1, NTSC-U, SCUS-94900). It does not include the game, disc images, or a ready-made game binary.

Built on RecompOne (static PS1 recompilation + runtime). Current release: 1.9.4 (native WinForms launcher on Windows; CLI on Linux; Android). Still experimental — expect bugs.


Crash-Launcher1

What this is

A small host application that:

  1. Asks you for your own dumped disc (.chd or .cue + .bin).
  2. On first run, recompiles and compiles on your PC into a game/ folder next to the exe (it is not uploaded anywhere by this app).
  3. Afterwards, starts from that prepared game folder.

Think of it as a convenience shell around tools, not a redistribution of Crash Bandicoot.

What this is not

Not thisMeaning
Not the gameWe do not ship retail assets, ISOs, or .bin/.cue/.chd files
Not a piracy kitYou need a dump of a disc you own
Not an official portNo Sony / Activision involvement
Not “download and play without a disc”The disc image is still required at runtime
Not finishedUI and compatibility are work in progress

If someone offers you this project bundled with a ROM/ISO, that is not from this repository — don’t use it, don’t upload it here.


Requirements

Windows
  • Windows 10/11 x64
  • A legal dump of Crash Bandicoot NTSC-U (SCUS_949.00 / SCUS-94900) as a standalone .chd, or .cue + matching .bin in the same folder
  • Audio uses OpenAL Soft bundled with the release (soft_oal.dll) — no separate OpenAL install required
Linux
  • x64 Linux with OpenGL 4.3+ (Mesa / NVIDIA / AMD — a real GPU or working VM 3D accel)
  • Audio uses OpenAL Soft bundled with the release (libopenal.so) — no libopenal1 / system OpenAL install required
  • Same legal .chd or .cue + .bin dump as above

On Linux there is no graphical launcher menu yet — use the CLI (--prepare / --run). The game opens in a standalone Silk/GLFW window. The painted WinForms UI remains Windows-only.

VMware / weak GL: if you get an instant Segmentation fault right after launching … game.recomp.dll, the VM likely cannot create an OpenGL 4.3 context. Check with glxinfo -B, enable 3D acceleration, or try software GL for a smoke test:

sudo apt install mesa-utils
LIBGL_ALWAYS_SOFTWARE=1 ./CrashBandicoot --run /path/to/game.cue

We only aim to support that specific NTSC-U version for now.


How to play

Windows
  1. Download the release .exe from this GitHub repo (not a random reupload).
  2. Run CrashBandicoot.exe.
  3. Select disc → choose your .chd or .cue.
  4. Start Game.
    • First time: local prepare into game\ next to the exe (can take a bit).
    • Next times: reuses that prepared game folder.

Optional (advanced):

CrashBandicoot.exe --prepare "D:\path\to\your\game.cue"
CrashBandicoot.exe --run "D:\path\to\your\game.cue"
Linux
./CrashBandicoot --prepare /path/to/your/game.cue
./CrashBandicoot --run /path/to/your/game.cue

All CLI commands also accept a .chd path. If settings.json already has a valid CdPath, --run / --smoke can omit the disc path.

CHD discs

Windows, Linux, and the unified Android app read CHD directly during preparation and gameplay; no BIN extraction or external converter is needed to play. The supported layout is a standalone CD image with one MODE2/2352 track, matching the NTSC-U Crash disc. Other regions, multi-track layouts, DVD/GD-ROM images, and CHDs requiring a parent are not supported.

To create a CHD from your existing dump, use MAME's chdman:

chdman createcd -i "Crash Bandicoot.cue" -o "Crash Bandicoot.chd"

Keep the CUE beside its matching BIN while converting. Select the resulting CHD in the launcher; the CHD must remain available each time you play. Selecting a converted disc may create a separate prepared-game cache.

CHD decoding uses CHDSharp 1.4.3. Original developers: Peterson Fernandes (@purelogiccode) and Gordon Jefferyes (@gjefferyes). See third-party notices for its license and codec notices.


Building from source (developers)

Needs .NET 10 SDK.

dotnet build CrashBandicoot.Launcher -c Release
dotnet run --project CrashBandicoot.Launcher -c Release -f net10.0-windows

Linux / CLI framework:

dotnet build CrashBandicoot.Launcher -c Release -f net10.0
dotnet run --project CrashBandicoot.Launcher -c Release -f net10.0 -- --run /path/to/game.cue

Single-file / store release (from repo root):

python publish_release.py

The script asks which platform to build:

  1. Windows — publish-single\CrashBandicoot.exe
  2. Linux — publish-linux\CrashBandicoot
  3. Android — publish-android\CrashBandicoot-<version>.apk (arm64, signed)
  4. All three

Non-interactive:

python publish_release.py --platform windows
python publish_release.py --platform linux
python publish_release.py --platform android
python publish_release.py --platform all

The first Android publish creates signing/android-release.keystore (gitignored). Back that folder up; losing the keystore means you cannot update the same app.

Options: python publish_release.py --out my-folder, python publish_release.py --clean.

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-linux

The published binary extracts bundled deps at runtime; user data (save/, game/, settings.json) is always written next to the real exe (not in the temp extract folder).

Before you upload a release, check that you are shipping tools/UI only — no .bin/.cue, no main.cs, no game.recomp.dll / game/ folder.

Repo layout
PathRole
CrashBandicoot.Launcher/Native WinForms launcher (Windows) + CLI + local recomp pipeline
RecompOne.Runtime/PS1 HLE runtime (from RecompOne)
RecompOne.Recompiler/Recompiler library (from RecompOne)
examples/mods/Sample mods (auto-spin, disc-overlay-stub, vram-transfer-stub, spu-dma-stub, catalog-stub, texture-replace-stub) — see docs/MODDING.md
CrashBandicoot.Recompiled/Placeholder only (gitignored) — not used for consumer builds

Privacy / local data

All next to the binary (portable; gitignored):

  • Config: settings.json (+ interface.ini for UI layout)
  • Saves: save/carda.sav, save/cardb.sav
  • Prepared game: game/{fingerprint}/ (DLL + generated sources — persistent until you delete them)
  • Mods: mods/ (enable/disable from the launcher MODS menu; see docs/MODDING.md)

This project does not include telemetry in the launcher path described here. Don’t commit those folders or dumps to git.


Contributing / issues

Bug reports and PRs that improve tools, runtime, UI, or docs are welcome.
Please do not open issues asking where to download the game, and do not attach or link disc images or generated game sources.


Credits

  • RecompOne — recompiler & runtime (MIT)
  • Inspired by the wider static-recompilation community (e.g. N64Recomp-style projects)

License

This repository’s original launcher code is under the MIT License (see LICENSE).
RecompOne components retain their upstream MIT license and copyright notices.

The MIT license applies to our software. It does not grant any rights to Crash Bandicoot itself.


Legal

This project distributes tools and runtime, not Crash Bandicoot. Do not upload disc dumps or generated recompiled game code to public remotes. Trademark and copyright belong to their respective owners; this is an unofficial fan project.