So I was looking around for a guide on getting SS1 up and running on Linux today between here and a few other places and couldn't find anything besides an old guide on TTLG that involved using qemu and installing win95 and running it like that.
Well, I got it working with music and with less hassle than I thought, so I figured I'd share what I learned for the benefit of anyone who may need it.
This was tested on Linux Mint 17, but should hypothetically work on Ubuntu or any distro that uses apt as it's package manager and has the packages I mention later on in its repositories.
So let's begin.
1) Naturally, we need a copy of SS1, however, if you want an easy time of configuring mouselook and the high-res video modes, we're going to want to use the
Mobile version of SSP that Kolya posted. This is already patched with mouselook, etc, and needs no more diddling around with to get ready, unlike the normal packaging of SSP.
2) Since this is a DOS program, we're also going to need DOSBOX. Get this from apt:
sudo apt-get install dosbox
3) At this point, we technically
could go ahead and play System Shock by loading up the copy of CDSHOCK.EXE that's in the ...dos/SSP/ directory of SSM. Go ahead and try it (no really, we need to run DOSBOX at least once before this process is over anyway so that we can auto-generate its config file)
dosbox path/to/SYSTEMSHOCK-Mobile\ for\ Android/dos/SSP/CDSHOCK.EXE
This should run the game, and it should be very playable, however, those catchy BGM mixes aren't there! To do this, we're going to have to install more software; specifically, something to handle MIDI playback!
4) We're going to go with a program called Timidity++. Timidity is a MIDI player that can also run as a daemon and enable applications like DOSBOX to stream MIDIs through it. In addition to Timidity, we're also going to install an application called pmidi, which will allow us to gather information we'll need later on for setting up configs. So fire up that terminal and...
sudo apt-get timidity pmidi
5) Great, we have a MIDI player now, but now we need a soundfont. Soundfonts are instrument sets that actually allow the MIDI player to produce sound. If Timidity were a guitarist, a soundfont is his guitar so to speak.
Anyway, there are several good soundfonts out there, but my personal preference is the WeedsGM3 soundfont, which can be downloaded here:
http://www.un4seen.com/download.php?extra/WeedsGM3Note that the soundfont's maintainer packages WeedsGM3 in a weird self-extracting executable file, so you will need to use WINE to extract it. I assume you already have WINE, but if not, it can be installed via apt like any other application on most distros.
6) Once you've extracted WeedsGM3.sf2, we need to configure Timidity to use it. Using your favourite raw-text editor (gedit and nano will do here), open /etc/timidity/timidity.cfg (you will need root). Go to the line
source /etc/timidity/freepats.cfg
and turn it into
soundfont /path/to/WeedsGM3.sf2
This should enable Timidity to use the WeedsGM3 soundfont!
At this point, we might as well turn Timidity on as well...
timidity -iA
7)Now that we have Timidity setup and running, we should get on to DOSBOX. First, we need some information, so open a terminal and enter
pmidi -l
This should tell us information about our MIDI devices. Specifically, look for TiMidity port 0 and take note of the "ratio" number displayed on the far left (it should be something like 128:0)
Now open up ~/.dosbox/dosbox-0.74.conf in a
non-rooted editor. Look for
mpu401=intelligent
mididevice=default
midiconfig=
and change to
mpu401=intelligent
mididevice=alsa
midiconfig=128:0
8 ) Play System Shock with MIDI support and mouse look!