Crash Team Racing

CTR Native Android

Native Android port of Crash Team Racing built on the CTR-ModSDK decompilation and CTR Native. SDL3 and OpenGL ES 3 rendering, touch steering, gamepad support and an in-app setup that reads your own disc image.

Original Dev: Naughty Dog
Port Maintainer(s): Simon358, CTR-tools

What You Need

  1. Requires a raw single-track disc image (MODE2/2352 .bin) of your own NTSC-U PlayStation copy. A cooked 2048-byte .iso will not work.

    • ctr-u.bin
    Verify Your Files (Client-Side) 100% In-Browser
    Privacy guarantee: Files never leave your device. File names, headers, and checksums are checked locally in your browser.

    Drag & drop file(s) here or browse from your device

    Matches your files against this port's requirements and calculates SHA-256 hashes.

    File Requirements Checklist (1 required):

    • ctr-u.bin Pending file
  2. Target hardware: Snapdragon 660 or newer or equivalent (ARM32/ARM64, Android 8+).

  3. Controls ready out of the box

    On-screen touch controls work immediately. Physical Bluetooth and USB-C controllers are also supported.

CTR-ModSDK Re-Engineering and SDL3 OpenGL ES Pipeline

The ctr-native-android project, maintained by Simon358 (Build4), is an active-alpha native source port built upon the CTR-tools community’s upstream CTR-ModSDK decompilation. Naughty Dog’s 1999 PlayStation kart racer Crash Team Racing is renowned for its proprietary dynamic memory streaming, clever assembly routines, and tightly tuned physics. The CTR-ModSDK initiative reverse-engineered these MIPS R3000 overlays into clean, modular C source code known as ctr-native.

Simon358’s Android fork packages this decompiled C codebase with SDL3 and a custom OpenGL ES 3.0 graphics pipeline. Running natively on Android hardware rather than inside a PlayStation 1 emulator eliminates interpreter overhead and instruction translation layers. The native binary executes adventure hub progression, multi-lap tournament cups, and precision triple-boost drift mechanics directly against Android platform APIs, while keeping frame timing locked to the original racing cadence.

Disc Image Provisioning with Raw MODE2/2352 Sectors

Because ctr-native-android contains only the reverse-engineered engine binary, players must provide assets from their own legally owned retail copy of Crash Team Racing.

The engine’s integrated asset unpacker requires a specific disc format:

  1. Create a raw single-track disc image from your own retail NTSC-U PlayStation disc (SCUS-94426), saving it as ctr-u.bin.
  2. Ensure the disc image uses raw MODE2/2352 sector formatting (standard 2352 bytes per sector). A standard cooked 2048-byte .iso will fail because it lacks the raw CD-XA sub-headers and streaming audio markers that the extraction toolchain parses.
  3. Download and install the latest ctr-native-android APK from the GitHub releases page.
  4. Launch the application to bring up the integrated Android setup screen, browse your device storage to select ctr-u.bin, and let the installer extract game assets directly into protected internal app storage.

32-Bit ABI Constraints and Chipset Compatibility

A vital technical consideration for prospective players is application binary interface (ABI) architecture. At present, ctr-native-android compiles exclusively as 32-bit armeabi-v7a and x86 binaries (arm64Only: false). This design reflects the upstream CTR-ModSDK decompilation, which still relies on 32-bit pointer arithmetic carried over from original MIPS hardware registers.

Consequently, your target Android device must maintain 32-bit application execution support alongside an OpenGL ES 3.0 capable GPU. The port runs exceptionally well on chipsets ranging from the Qualcomm Snapdragon 660 up to the Snapdragon 8 Gen 2, making dedicated Android handhelds such as the Retroid Pocket 4, Retroid Pocket 5, and AYN Odin 2 ideal platforms. However, 64-bit-only hardware that lacks 32-bit runtime libraries (such as Google Pixel 7, 8, and 9 smartphones or Snapdragon 8 Gen 3 devices running 64-bit-only operating system builds) cannot launch the current APK until upstream developers complete 64-bit pointer refactoring.

Turbo Slide Mechanics and Physical Controller Mapping

Mastering Crash Team Racing hinges on executing chained power slides while monitoring exhaust smoke to ignite three consecutive boost stages. The port accommodates this high-speed gameplay with a responsive on-screen virtual touch overlay that features directional steering, hop and slide triggers, and item firing buttons.

For the authentic kart racing experience, physical controllers connected via Bluetooth or USB-C are natively supported through SDL3. Analog sticks deliver nuanced steering around tight hairpin turns, while physical shoulder triggers map cleanly to the hop and drift mechanics required to maintain Sacred Fire and Ultimate Sacred Fire speed boosts.