Shockolate - System Shock, but cross platform!
Based on the source code for PowerPC released by Night Dive Studios, Incorporated.
GENERAL NOTES
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: https://discord.gg/m45xPan
Prerequisites
- 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
Downloads
We have CI systems in place building distributable packages out of tagged commits for Linux, Mac and Windows.
Compiling / Running
Prerequisites
- SDL2, 32 bit
- SDL2_mixer, 32 bit
Building SDL
Linux/Mac
You can use the included build_deps.sh
shell script to build the required versions of SDL2 / SDL2_mixer or use system ones.
Here brief options list:
ENABLE_SDL2
- use system or bundled SDL2 (ON/BUNDLED, default BUNDLED)ENABLE_SOUND
- enable sound support (requires SDL2_mixer, ON/BUNDLED/OFF, default is BUNDLED)ENABLE_FLUIDSYNTH
- enable FluidSynth MIDI support (ON/BUNDLED/OFF, default is BUNDLED)ENABLE_OPENGL
- enable OpenGL support (ON/OFF, default ON)
Windows
See the Windows readme.
Build and run
cmake .
make systemshock
./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