Case study
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.
Requirements and limitations
- 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.
- 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.
- 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.
- No byte-matching, equivalence or automated gameplay check is published, and the project status figures were not reproduced here. The repository has no license file, so reuse rights are unspecified, and the original game retains its own rights; no REA or AI involvement is documented.
About this entry
- Type
- Case study
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Targets
- Game
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · wurlyfox/c1 · Revision 256fdce
- doc/issues.md GitHub · wurlyfox/c1 · Revision 256fdce
- doc/coding.md GitHub · wurlyfox/c1 · Revision 256fdce
- doc/changelog.md GitHub · wurlyfox/c1 · Revision 256fdce
- doc/outline.md GitHub · wurlyfox/c1 · Revision 256fdce
- src/main.c GitHub · wurlyfox/c1 · Revision 256fdce
- Makefile GitHub · wurlyfox/c1 · Revision 256fdce