Skip to content

fgsfdsfgs/quakepsx

Repository files navigation

QuakePSX

This is an experimental port of the original Quake to the Sony PlayStation.

It is based on the original Quake codebase, with the main idea being to keep it as close to the original as possible, other than the resource formats.

Status

  • Runs on both emulators and real hardware at mindblowing framerates of ~15 FPS on average.
  • DualShock controllers and the PS Mouse are supported for input.
  • CD Audio is supported, if the game is built with CDDA tracks.
  • Map conversion is far from perfect and has many texture alignment and lighting issues.
  • The entirety of Episode 1 is playable, but many maps from Episode 2 and some from other episodes do not fit in memory.
  • There is no multiplayer of any kind.
  • There is no save system.
  • The renderer is slow and lacks good triangle subdivision/clipping and dynamic lighting support.
  • There are some bugs in the movement code that can cause you to get stuck or gain high speed for no reason.
  • There might be many other bugs.

Running

You can get a prebuilt CD image of QuakePSX with the Quake Shareware data files.

If you want to run the full version (note that registered episodes mostly don't work right now; refer to the Status section above for details) or add CD music, you will have to build your own CD image. Refer to the Building section below for instructions.

Once you have a CD image, you can burn it to a CD-R and run it on a modchipped console, or load it using something like FreePSXBoot. It will also run on modern emulators, such as DuckStation or PCSX-Redux. I have not tested whether it works with ODEs, but it should.

Building

Prerequisites:

  • Linux or WSL, though MSYS might work as well;
  • PSn00bSDK;
  • mkpsxiso;
  • gcc for your host platform;
  • mipsel-none-elf-gcc, preferably versions 12.2 - 13.3;
  • cmake, git, make;
  • Quake (shareware or full version).

Instructions:

  1. Install the prerequisites and ensure mipsel-none-elf-gcc and mkpsxiso are in your PATH and the PSn00bSDK environment variables are set:
    export PSN00BSDK_LIBS=/path/to/psn00bsdk/lib/libpsn00b
    export PATH=/path/to/psn00bsdk/bin:$PATH
    
  2. Clone the repo:
    git clone https://github.com/fgsfdsfgs/quakepsx.git && cd quakepsx
    
  3. (Optional) You can put the music tracks from Quake into id1psx/music/.
    Tracks should be in WAV format and named track02.wav ... track11.wav.
  4. Build the tools and cook the maps:
    ./tools/scripts/cook_id1.sh /path/to/Quake/id1
    
  5. If everything completed with no errors, you can now configure the game:
    • If you don't have the music:
    cmake --preset default -DCMAKE_BUILD_TYPE=RelWithDebInfo -Bbuild
    
    • If you do have the music:
    cmake --preset default -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_CDDA=ON -Bbuild
    
  6. Build:
    cmake --build build -j4
    
  7. This should produce quakepsx.bin and quakepsx.cue in the build directory.

Credits

About

work-in-progress port of Quake to the PS1

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages