If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

System Shock (1994)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

System Shock

Also known as: System Shock: Enhanced Edition
Developers: Looking Glass Studios (original),
Night Dive Studios (Enhanced Edition)
Publishers: Origin Systems (US/EU), Electronic Arts Victor (JP),
Night Dive Studios (Enhanced Edition)
Platforms: DOS, Mac OS Classic, PC-98, Windows
Released internationally: September 22, 2015 (Enhanced Edition)
Released in JP: May 24, 1996
Released in US: September 23, 1994
Released in EU: 1994

EnemyIcon.png This game has unused enemies.
ObjectIcon.png This game has unused objects.
GraphicsIcon.png This game has unused graphics.
ItemsIcon.png This game has unused items.
MusicIcon.png This game has unused music.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
Carts.png This game has revisional differences.

ProtoIcon.png This game has a prototype article
PrereleaseIcon.png 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 page also covers the Enhanced Edition released in 2015, which contains all of the original version's content.


Read about prototype versions of this game that have been released or dumped.
Prototype Info
Read about prerelease information and/or media for this game.
Prerelease Info
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.

Debug Mode

When neurosurgery goes slightly wrong.

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 on-screen.
    • 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.

(Source: Reimann Shock)

Undocumented Settings

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.
(Source: Original TCRF research)

Unused Graphics



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.

(Source: System Shock Developer Commentary)



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.

Interface Graphics

Sshock-drugicon.png Sshock-hwicon.png Sshock-weirdicon.png Sshock-gunicon.png
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.

Sshock-texticon.png Sshock-emailicon.png
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.

There is a blue version of the red/yellow/green arrows used to indicate your health/energy levels, but it's never used.


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.

Used Unused
Sshock-monitoringpost.png Sshock-monitoringpost-unused.png

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.


Sshock-cyberspaceicon.png Sshock-reactoricon.png Sshock-warningicon.png Sshock-groveicon.png Sshock-shieldicon.png

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.


Used Unused
Sshock-unsolvedpanel.png Sshock-solvedpanel.png

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.

(Source: Original TCRF research)

Unused Music

Victory Cues

Most of the XMI files used for each level contain an additional transition track, called "victory" music in the source code, which is never actually played.

THM1.XMI (medical), THM6.XMI (security, bridge)
THM2.XMI (executive)
THM3.XMI (research, storage)
THM4.XMI (reactor, flight deck, engineering)
THM5.XMI (groves)

Other Unused Music

The original floppy disk version of the game contains three additional XMI files which are all earlier versions of ones normally used by the game:

  • THM1.BAK (in the SBLASTER directory only) is an earlier version of THM1.XMI (the medical level music). It does not seem to differ noticeably from the final version.
  • THM8.XMI is an earlier version of THM10.XMI (the cyberspace music) with a few different tracks; see below.
  • THM9.XMI is an earlier version of THM7.XMI (the elevator music) with only slightly different mixing.

The first track in THM8.XMI is the same as its final counterpart, but with an additional intro and slightly different mixing.

THM8.XMI (unused) THM10.XMI (used)

Another track is also mostly the same as the final version, but with the percussion track mistakenly assigned to MIDI channel 16 instead of channel 10, causing it to be played back using the default piano patch on most equipment.

THM8.XMI (unused) THM10.XMI (used)

Three of the other early tracks do not match any of the ones in the final game at all:

Unused Text

Texture Names

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.

Reactor level


Medical level

fluorescent lighting
medical instruments
clinical panelling

Research level

aluminum panelling
data conduit

Storage level

grip surface
grip surface
grip surface
grip surface
no-scrape storeroom wall

Executive level

automatic teller machine
fold-up bed
fold-up bed
private locker
video screen
obsidian slab
parquet tiling
marble slab
rich marble
rich marble
rich marble
rich marble


lecture screen

Security level/Bridge

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. The Enhanced Edition does use these names in lieu of the originals, although it still refers to the process as a self-destruct everywhere else.

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.

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.


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.

Access Cards

Card Full Name
STD Standard
SCI Science
STO Storage
ENG Engineering
MED Medical
MNT Maintenance
ADM Administrative
SEC Security
COM Command
Group-1 Hospital Support Group
Group-2 Reactor Safety Group
Group-3 Robot Maintenance Group
Group-4 High Voltage Group
PER-1 Personal: D'Arcy
PER-5 Personal: Diego

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.

(Source: Original TCRF research)

Color Tables

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.

Sshock-yellowtable1.png Sshock-yellowtable2.png
Sshock-greentable1.png Sshock-greentable2.png
Sshock-orangetable1.png Sshock-orangetable2.png
Sshock-whitetable1.png Sshock-whitetable2.png

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:

Sshock-tableglitch1.png Sshock-tableglitch2.png
(Source: Original TCRF research)