Shockolate - Same great System Shock, new great taste.
Clone or download
Interrupt Merge pull request #268 from donnierussellii/gamma-slider-render
Render 3d view when using gamma slider
Latest commit 61e50cc Oct 24, 2018

Shockolate - System Shock, but cross platform!

Based on the source code for PowerPC released by Night Dive Studios, Incorporated.

Build Status TravisCI Build Status AppVeyor


Shockolate is a cross platform source port of System Shock, using SDL2. This runs well on OSX, Linux, and Windows right now, with some missing features that need reviving due to not being included in the source code that was released.

The end goal for this project is something like what Chocolate Doom is for Doom: an experience that closely mimics the original, but portable and with some quality of life improvements including an OpenGL renderer and mod support!

Join our Discord to follow along with development:

work so far


  • Original cd-rom or SS:EE assets in a res/data folder next to the executable
    • Floppy disk assets are an older version that we can't load currently


We have CI systems in place building distributable packages out of tagged commits for Linux, Mac and Windows.

Compiling / Running


  • SDL2, 32 bit
  • SDL2_mixer, 32 bit

Building SDL


You can use the included shell script to build the required versions of SDL2 / SDL2_mixer. VOC support was broken until recently in SDL_mixer, so for sound effects to work you'll probably need to build it from the latest sources like that script does.


See the Windows readme.

Build and run

cmake .
make systemshock

Command line parameters

-nosplash Disables the splash screens, causes the game to start straight to the main menu

Modding Support

Shockolate supports loading mods and full on fan missions. Just point the executable at a mod file or folder and the game will load it in. So far mod loading supports additional .res and .dat files for resources and missions respectively.

Run a fan mission from a folder:

./systemshock /Path/To/My/Mission

Run a fan mission from specific files:

./systemshock my-archive.dat my-strings.res