1Shockolate - System Shock, but cross platform! 2============================ 3Based on the source code for PowerPC released by Night Dive Studios, Incorporated. 4 5[![Build Status TravisCI](https://travis-ci.org/Interrupt/systemshock.svg?branch=master)](https://travis-ci.org/Interrupt/systemshock) [![Build Status AppVeyor](https://ci.appveyor.com/api/projects/status/5fmcswq8n7ni0o9j/branch/master?svg=true)](https://ci.appveyor.com/project/Interrupt/systemshock) 6 7GENERAL NOTES 8============= 9 10Shockolate 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. 11 12The 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! 13 14Join our Discord to follow along with development: https://discord.gg/m45xPan 15 16![work so far](https://i.imgur.com/kbVWQj4.gif) 17 18Prerequisites 19======= 20 - Original cd-rom or SS:EE assets in a `res/data` folder next to the executable 21 - Floppy disk assets are an older version that we can't load currently 22 23 24Running 25======= 26 27## From a prebuilt package 28 29Find a list of [downloadable packages](https://github.com/Interrupt/systemshock/releases/) for Linux, Mac and Windows. 32 and 64 bit versions are available for Linux and Windows. 30 31## From source code 32 33Prerequisites: 34- [CMake](https://cmake.org/download/) installed 35 36Step 1. Build the dependencies: 37* Windows: `build_win32.sh` or `build_win64.sh` (Git Bash and MinGW recommended) 38* Linux/Mac: `build_deps.sh` or the CI build scripts in `osx-linux` 39* Other: `build_deps.sh` 40 41Step 2. Build and run the game itself 42``` 43cmake . 44make systemshock 45./systemshock 46``` 47 48The following CMake options are supported in the build process: 49* `ENABLE_SDL2` - use system or bundled SDL2 (ON/BUNDLED, default BUNDLED) 50* `ENABLE_SOUND` - enable sound support (requires SDL2_mixer, ON/BUNDLED/OFF, default is BUNDLED) 51* `ENABLE_FLUIDSYNTH` - enable FluidSynth MIDI support (ON/BUNDLED/OFF, default is BUNDLED) 52* `ENABLE_OPENGL` - enable OpenGL support (ON/OFF, default ON) 53 54If you find yourself needing to modify the build script for Shockolate itself, `CMakeLists.txt` is the place to look into. 55 56 57Command line parameters 58============ 59 60`-nosplash` Disables the splash screens, causes the game to start straight to the main menu 61 62Modding Support 63============ 64Shockolate 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. 65 66Run a fan mission from a folder: 67``` 68./systemshock /Path/To/My/Mission 69``` 70 71Run a fan mission from specific files: 72``` 73./systemshock my-archive.dat my-strings.res 74``` 75 76Control modifications 77======= 78 79## Movement 80 81Shockolate replaces the original game's movement with WASD controls, and uses `F` as the mouselook toggle hotkey. This differs from the Enhanced Edition's usage of `E` as the mouselook hotkey, but allows us to keep `Q` and `E` available for leaning. 82 83## Additional hotkeys 84 85* `Ctrl+G` cycles between graphics rendering modes 86* `Ctrl+F` to enable full screen mode 87* `Ctrl+D` to disable full screen mode 88 89## Missing hotkeys 90 91* `F1..F10` for the side MFD's 92* `0..9` for the Hacker's hardware 93