# c1: a C port of PlayStation Crash Bandicoot

> Ports the original PlayStation Crash Bandicoot game code to C function by function; its coding standard labels functions with the addresses of their original implementations. Only the PC build, using OpenGL, SDL2 and FluidSynth, currently works; it loads asset files from the user’s game disc and is only partially playable.

- Type: Case study
- Targets: Game
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-18
- Added to the catalog: 2026-10-18
- Original resource: <https://github.com/wurlyfox/c1>
- Primary source: <https://github.com/wurlyfox/c1/blob/256fdcef59f15a190290cc19db3fa9a707843b69/README.md>
- Catalog page: <https://awesomerea.org/resources/crash-bandicoot-c1-port-case/>
- Record JSON: <https://awesomerea.org/resources/crash-bandicoot-c1-port-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/crash-bandicoot-c1-port-case/index.md)

## Requirements & limits

- **Prerequisites:** Running needs the NSD/NSF asset files from the user’s own Crash Bandicoot disc; the repository ships no game data and the README does not name a supported disc region or version. The game boots into the title sequence unless a constant is changed and the code recompiled.
- **Prerequisites:** Only 32-bit x86 executables are supported, built with GNU Make and a 32-bit GNU toolchain (multilib GCC/G++ on 64-bit hosts) against OpenGL 2.0+, SDL2 and FluidSynth (cimgui is bundled). Compilation has been tested only on Ubuntu/Debian; there are no releases, and the last commit at review is 2024-01-22.
- **Limits:** The README reports the code as 100% ported but functionality at 78%. The tracked issue list includes crashes in several levels, incorrect camera and collision behavior, broken demo mode and title states, and behavior that changes under compiler optimization; the PlayStation (Psy-Q) build does not work.
- **Testing evidence:** No byte-matching, equivalence or automated gameplay check is published. The repository has no license file, so reuse rights are unspecified, and the original game retains its own rights.

## Primary sources

1. <https://github.com/wurlyfox/c1/blob/256fdcef59f15a190290cc19db3fa9a707843b69/README.md>
2. <https://github.com/wurlyfox/c1/blob/256fdcef59f15a190290cc19db3fa9a707843b69/doc/issues.md>
3. <https://github.com/wurlyfox/c1/blob/256fdcef59f15a190290cc19db3fa9a707843b69/doc/coding.md>
4. <https://github.com/wurlyfox/c1/blob/256fdcef59f15a190290cc19db3fa9a707843b69/doc/changelog.md>
5. <https://github.com/wurlyfox/c1/blob/256fdcef59f15a190290cc19db3fa9a707843b69/doc/outline.md>
6. <https://github.com/wurlyfox/c1/blob/256fdcef59f15a190290cc19db3fa9a707843b69/src/main.c>
7. <https://github.com/wurlyfox/c1/blob/256fdcef59f15a190290cc19db3fa9a707843b69/Makefile>

## More in Games

- [Firefighter: a decompiled DOS game ported to Rust](https://awesomerea.org/resources/firefighter-rust-port-case/index.md) · Case study
- [Halo: Combat Evolved: an incremental re-implementation patched into the original Xbox executable](https://awesomerea.org/resources/halo-ce-xbox-reimplementation-case/index.md) · Case study
- [keen-clone: a Commander Keen 1 C/SDL2 port](https://awesomerea.org/resources/keen-clone-rea-commander-keen-case/index.md) · Case study
- [Metroid Dread: a hand decompilation in progress](https://awesomerea.org/resources/dreadcomp-case/index.md) · Case study
- [OpenGOAL: recovering GOAL code and rebuilding the Jak games](https://awesomerea.org/resources/opengoal-jak-case/index.md) · Case study
- [Paleblood: a functional decompilation of Bloodborne with its own runtime](https://awesomerea.org/resources/paleblood-bloodborne-functional-decomp-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
