Based on the source code for PowerPC released by Night Dive Studios, Incorporated.
This version of Shockolate is going to have some extra stuff. It is described below.
- Preferences and Keybinds are now stored in the game folder, next to the executable,
- New or changed Controls/Keybinds are outlined at the bottom of this readme file.
- Added an optional window icon: shock.bmp. I made a default one that comes with the source code and will work as long as it is in the same folder as the executable, which it is by default. You may delete it or replace it with your own if you choose.
- There is also a Windows only (I think at least. I'm getting a Linux VM soon so I can see how icons work there) icon.rc file for use when building systemshock.exe. If it doesn't compile or something and you can't figure out a fix, remove the WIN32_RESOURCES variable from line 388 of CMakeLists.txt. This will build the executable without an icon.
-
Toggleable Persistent Mouselook (Keep MLook)
Default: Off
Description: Located in the options menu. When on, your mouse will stay locked to the center of the screen when picking up an item or opening a container. I added this because I prefer to play that way, locking and unlocking the mouse manually, and so do some other people. It's mainly for muscle memory actually. -
Keyboard Keypad Support
Description: Changes in-game keypad binds to use your keyboard's keypad instead of the row of number keys at the top. That way, the number keys are still availible for toggling hardware implants. -
Extra Digital Audio Channels
Default: 32
Description: Normally, you may choose from 2, 4, or 8 digital audio channels in the audio options. Now, you may additionally choose 16 or 32 channels. I added this because there are semi-rare cases when all channels are easily filled up, such as the room with all the Z-44 Plastique (TM) on the Storage level. Now I know 32 is totally overkill, but who knows? Maybe someday there will be a reason to have 32 channels. -
Field of View Slider
Default: 80
Description: Located in video options menu. Adds an FOV slider that ranges from 70 to 135 degrees.
Note: FOV cannot be changed while using the OpenGL renderer. It will stay at the default 80. This is because changing FOV causes a crash in certain areas when using the OpenGL renderer. -
Main Menu Button
Description: Located in the pause menu. This button will return you directly to the main menu that is shown upon starting the game. Keep in mind that it will not ask for confirmation and instead will immediately send you there upon clicking it. -
Quick Use/Pickup Key
Default:C
Description: Adds a key which will instantly pickup and add an object you are looking at to your inventory, or use the object if it cannot be picked up. -
Fullscreen Video Option
Default: Off
Description: Located in the video prefs menu. Adds a button which toggles fullscreen and saves your preference inside the prefs file. PressingAlt+Enteralso saves the new fullscreen state. The launch options,-fullscreenor-windowedmay also be specified when starting the game in order to run in the selected mode. Setting launch options will not change the saved mode in the prefs file.
Field of View SliderFinishedQuick Use/Pickup KeyFinishedFullscreen Video Option &Finished-windowedor-fullscreenlaunch options- Widescreen Resolutions and Custom Width/Height Resolutions (Don't expect that anytime soon, I'm quite new to this. But I'll do my best.)
- Mouselook Pausing Stance Change Fix (this is an issue where you cannot lean or change stance while mouselooking horizontally)
- CD-ROM or SS:EE
DATAfolder in aresfolder next to the executable- Floppy disk assets cannot be loaded.
- If you have the Steam release, System Shock: Classic, you can go into
steamapps/common/SS1/SSHOCKand find theDATAfolder there.- The
SOUNDfolder may also be found there. It is optional, but required if you want music. It goes insideresalongsideDATA.
- The
Currently, I only have the ability to build for Windows. The releases can be found here. However, I'll leave a link to the original Shockolate builds as well, here.
Prerequisites:
- CMake installed
Step 1. Build the dependencies:
- Windows:
build_win32.shorbuild_win64.sh(Git Bash and MinGW recommended) - Linux/Mac:
build_deps.shor the CI build scripts inosx-linux - Other:
build_deps.sh
Step 2. Build and run the game itself
cmake -G "Unix Makefiles" .
make systemshock
./systemshock
The following CMake options are supported in the build process:
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)
If you find yourself needing to modify the build script for Shockolate itself, CMakeLists.txt is the place to look into.
-nosplash Disables the splash screens, causes the game to start straight to the main menu
-fullscreen Forces the game to start in fullscreen mode
-windowed Forces the game to start in windowed mode
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
WASDto moveFto toggle mouselookQandEto lean left or rightT,GandBto stand, crouch, or proneSPACEto jump
MOUSE2to fire/attack with weaponRto reload weaponVto swap weapon ammo typeTABto switch to next weaponSHIFT+TABto switch to previous weaponMWHEELDOWNto switch to next weaponMWHEELUPto switch to previous weapon
MOUSE1to inspect objectsMOUSE1x2 to use/pickup objectsCto use/put object into inventory
F1-F10to activate/deactivate MFD panels1-10to activate/deactivate hardware implants
Ctrl+Gcycles between graphics rendering modesCtrl+Fto enable full screen modeCtrl+Dto disable full screen mode