Developers: Looking Glass Studios (original),
This game has unused enemies.
This game has a prototype article
This game has a prerelease article
System Shock is a first-person shooter with adventure and RPG elements. Considered a cult classic, it spawned a more commercially-successful sequel and is credited with inspiring the even more successful Deus Ex and BioShock.
This game also covers the Enhanced Edition released in 2015, which contains all of the original version's content.
| Version Differences|
Stuff that got changed between releases, including maps, graphics, and enemy and weapon properties.
| Unused Objects|
Scrapped equipment, decorations, interactive objects, and a few unfinished enemies.
| Unused Messages|
Emails, audio logs, and alert messages, in both text and audio forms.
System Shock has a "free movement" mode which allows you to essentially stop time and move around the level without any of that pesky physics or collision detection getting in the way.
This is controlled by the config file variable "time_passes", which has a default value of 1. Changing it in CYB.CFG isn't normally possible, since the game deliberately ignores the value in the config file if it's set to zero. However, the default can be changed by opening CDSHOCK.EXE in a hex editor and changing the byte at offset 0x1643E8 from 01 to 00 (this assumes you're playing the CD-ROM version).
What happens in this mode:
- You can move through anything solid, including walls. It's extremely easy to get stuck outside of the map doing this, so watch your step.
- Time is frozen.
- If playing on Mission difficulty 3, the time limit stops counting down.
- Enemies don't move around, and nothing is animated except for cycling palettes and rotating 3D models (cameras).
- Doors make sound when activated, but don't actually open/close (though you can move right through them anyway).
- Some buttons/switches (such as light switches and elevator panels) still work, but buttons that do things such as raise/lower floors and ceilings will cause an infinitely long sound effect to play while the surface in question stays in place.
- Energy is never consumed, though you still get the "Energy usage now __" message when you enable hardware. Once your energy usage rate drops to 0, the message stays onscreen.
- Power stations never recharge (you don't need them anyway).
- Physics simulation is disabled.
- The player accelerates/decelerates instantaneously, and moves and turns faster than normal.
- Thrown/dropped objects stay fixed in midair at the exact position they were thrown from. This makes it significantly easier to catch live grenades (not recommended).
- If you decide to grab a live EMP grenade, the "rolling screen" effect never wears off. Don't do this.
- Some of the controls are changed to suit the free movement better:
- Holding the jump key causes you to rise into the air indefinitely, though you return to the ground as soon as you move.
- The lean left/right buttons cause you to bank left/right instead, like in cyberspace.
- The look up/down keys have no limit on how far you can look in either direction. Combine this with the jump key for the ability to do infinite backflips.
- The posture controls don't do anything (no crouching/lying prone). Strangely, the posture control displays the "crouching" graphic whenever you move forward or backward.
- Weapons don't work.
- Dermal patches never wear off. The downside is that they also don't do anything (except for Detox, which renders you perpetually sober until you disable the debug mode).
Naturally, you can switch back to normal gameplay by changing the same byte back to 01, or adding the line time_passes 1 to CYB.CFG.
Aside from the normal settings that you can configure via the setup program, there are some undocumented variables that can be added to CYB.CFG:
- archive - The name of the map data archive to use when starting a new game (default is "archive.dat").
- strings -The resource file to use for in-game text (default depends on language; English uses "cybstrng.res").
- init_savegame - A save slot to automatically load when launching the game.
- damage_seed - A fixed RNG seed to use for damage calculation.
- grenade_seed - A fixed RNG seed to use for grenade timers and chain explosions.
- effect_seed - A fixed RNG seed to use for weapon recoil and reactor code digits. Since the entire reactor code is generated as soon as you start a new game, setting this value in the config file will cause the reactor code to be the same every time.
Near the end of OBJART.RES, there is yet another graphic of SHODAN's cyberspace avatar. This version is associated with the polygonal version of SHODAN that attacks you in cyberspace after the time limit runs out, but this specific graphic is never used in-game.
All of the "human corpse" sprites in the game have a full set of 8 rotations in OBJART.RES, though the game always displays the same one regardless of angle. According to the Developer Commentary, the developers decided that it looked less strange to have a single sprite than 8 for different angles, due to the effect that occurred when the player walked over them whilst looking down.
The file HANDART.RES contains all of the graphics for the weapons as seen from the player's point of view. Every gun has a second frame that depicts the muzzle flash that occurs when the gun is fired, but several of the guns (in order: Sparq beam, stungun, magpulse, blaster, railgun, ion rifle, and plasma rifle) don't actually produce a muzzle flash. The developers may have simply decided that they looked better without them.
MFDART.RES contains some leftover generic MFD graphics, likely used before each item had its own. They have different colors and less detail than the final background icons. What exactly the purple one is supposed to represent isn't clear.
The "text" and "email" objects (class 06, subclass 04), which both correspond to the audio logs you find around the station, are part of the "software" class. As such, they have similar MFD background icons, although the game never uses them.
While both types behave the same, the fact that a handful of them use the "text" type instead of the "email" type suggests they may have behaved differently from one another at some point.
This icon is probably related to the jump jet hardware, which uses the regular "activate"/"deactivate" button instead. It's the same size as the "skate" and "boost" buttons used by the Turbo hardware and appears right alongside them in the resource file, suggesting it may have been used along with them as part of the same hardware implant.
These appear at the beginning of TEXTURE.RES, and are what appear to be early textures for 3D models. There are also several differently-colored versions of the first texture which appear to have been designed for a different color palette. The model textures used in the game are all contained in CITMAT.RES instead.
Five generic screen animations that aren't used anywhere. Unlike the ones that are used, they only consist of one unique frame each; it looks like the animation would have been done entirely using color cycling.
The "monitoring post" texture found in the central interior of the bridge has an unused variation with plant-like overgrowth on it. This was originally one of a few eventually scrapped textures that can still be seen in the same area in the leaked vB3.0S build, but is the only one that wasn't eventually replaced with a different texture.
Both the used and unused versions of the texture are loaded as part of Level 9's texture set.
There are a few unused area "logos" in OBJART3.RES. Their names, according to CYBSTRNG.RES, are "cyberspace icon", "reactor icon", "warning sign", "grove icon", and "shield icon" respectively.
The access panels all have three frames each: a "closed" frame, an "open" frame, and an unused frame which looks like it would have been used for panels that had already been solved. However, these are never displayed; access panels always show the frame with "broken" wires regardless of whether the panel has been solved. Even on puzzle difficulty 0, where all panels are automatically solved, the same graphic is still used.
This occupies the first position in OBJART.RES.
There are a handful of texture names in CYBSTRNG.RES which have no associated graphics in TEXTURE.RES. All of these textures simply appear as a solid shade of purple. Many of the resources in TEXTURE.RES appear to be grouped by which level they are primarily associated with; others have been grouped based on where they more than likely would have appeared.
All of them give a standard "can't use name" or "can't be used" message when double-clicked.
fluorescent lighting medical instruments clinical panelling
pipes aluminum panelling data conduit
grip surface grip surface grip surface grip surface no-scrape storeroom wall
automatic teller machine fold-up bed fold-up bed private locker kitchenette kitchenette video screen obsidian slab parquet tiling marble slab rich marble rich marble rich marble rich marble
overgrowth lecture screen
biological infestation biological infestation
Most of these would-be textures share names with textures that are used, probably because they would have simply been additional variations on these textures. Others, namely "grip surface", "fold-up bed", "kitchenette", and "rich marble", are several repetitions of textures which are entirely nonexistent.
The abundance of dummied-out textures associated with the Executive level suggests that the level designers originally planned to make the "dormitory" part of the level larger and/or more detailed. As it is, there are only a handful of bedrooms on the Executive level with very few living amenities, which is a bit strange considering they appear to be the only crew quarters on the entire station.
CYBSTRNG.RES contains some miscellaneous unused text strings in addition to the unused logs, emails, messages, and item/texture names.
Acquire data reader to read data. Anti-Grav Boots powered up! Anti-Grav Boots powered down.
Strings related to various hardware items. The "anti-grav boots" are probably the same thing as the jump jet hardware, but you simply get an energy usage alert when you use them, rather than a unique message.
The "acquire data reader" string would have been somewhat useless, as you get the data reader at effectively the same time as the first "data" item.
The panel doesn't move. The switch does not move.
Strings that probably would have been displayed by the "broken lever" and (unused) "broken panel" objects.
You do not find anything. You find something.
These would have been displayed when the player tries to search something.
Access card required. Access granted, but door is locked. Access Granted. Access Denied.
Things related to locked doors.
Data state modified.
Probably some kind of cyberspace-related string.
security panel for overload fuse reactor overload fuse control
Two switch/panel names associated with setting the reactor to "overload" (rather than setting the whole station to self-destruct, which is how the game actually refers to it). These were replaced with "reactor destruct access" and "reactor destruct sequence control", respectively.
15 seconds to escape pod launch. 10 seconds to escape pod launch. 5 seconds to escape pod launch. Escape pod launch aborted.
Unused strings for the escape pod sequence, which uses a unique countdown display instead.
I think not! It is I, not you, who will be leaving the station, which you have doomed to fiery ruin. As I separate the bridge and escape, you may stay to count the final minutes of your sad existence.
Text from SHODAN that would have appeared after she shuts down the escape pod. Instead, you get completely different text in the form of a proper email message ("There's no escaping, insect", etc.).
Communications Array Disabled.
Unused message that probably would have been shown after destroying one/all of the antennae.
Secuity Bots to the viewing room! The intruder is here!
An unused trap/alert message that does not have its own sound. "Security" is misspelled in the resource file. This could have been used anywhere on the security level or bridge; the "viewing room" may have been one of the outer areas of the security level, or the center area of the bridge.
multiplexors: CPU coolant:
Two unused lines from the "system analyzer" display. These were more than likely associated with early ideas for player objectives (see here).
C-Nav Beacon: Primary Medical Node C-Nav Beacon: Secondary Medical Node C-Nav Beacon: Cyborg Conversion Systems Node C-Nav Beacon: Medical Research Node C-Nav Beacon: Radiation Therapy Node C-Nav Beacon: Mutagen Research Sub-Node C-Nav Beacon: Primary Energy Access Node C-Nav Beacon: Tertiary Security Node C-Nav Beacon: Systems Authorization Memory
Unused cyberspace navigational strings, likely corresponding to the individual separate areas of cyberspace.
See tutorial in manual for combination
This "combination" may be the one for the door to the healing suite, as it's close to the beginning of the game and approximately where the in-game "tutorial" ends. The developers may have wanted to use manual lookup copy protection at one point, but this isn't present in the final game.
DORSTAG RULES AVATAR KICKS
Two Ultima-related wall text/graffiti strings.
This is the first trap message. Hurrah! You win! This is the first datalet message. This is the first of the papers. It will some day be a long, spewlacious message.
A few placeholder messages.
|Group-1||Hospital Support Group|
|Group-2||Reactor Safety Group|
|Group-3||Robot Maintenance Group|
|Group-4||High Voltage Group|
There are also full names for all of the access levels in the game, but the game always uses their abbreviated titles. The names of most of the actual keycard items (such as "STANDARD ACCESS CARD") reflect these full names (with the exception of the "group" access cards, which are only ever referred to by number), but these specific text strings are never referenced.
Several more unused and unnamed group and personal cards are also defined - there are a total of 14 group access cards and 8 personal access cards, but most of them have no purpose.
System Shock's rendering engine uses two files for shading and lighting effects: SHADTABL.DAT and BWTABL.DAT (the latter for the night vision hardware). Several additional color maps exist in the data directory which aren't referenced by the game's executable: these are GRYNTABL.DAT, MONGTABL.DAT, WHYTTABL.DAT, and AMBRTABL.DAT (with the latter only present in the floppy disk version).
In the game's source code, the function that handles setting up these color tables (fr_set_cluts in FRSETUP.C) takes four arguments, named base, bwclut, greenclut, and amberclut, but the game reuses the same monochrome ("bw") table for the last two as well. These may have been used for some preliminary colored lighting effects or for the "tint" effect caused by force fields, though the latter is ultimately done using the normal color map files. Using a hex editor, these files can be used to replace the regular color map(s). They all have fewer entries than the maps that are used, so anything below a certain light level becomes pitch black.
When using these color tables, the renderer will sometimes also fail to draw surfaces in or near dark areas, probably because of the lack of proper color information. This can result in visible "holes" in the world where you can see the scrolling starfield background in place of the correct level geometry: