SS1 Quick guide to run SS1 on Linux

1 Guest is here.
Page: 1/2▶▶
66472dbf2adbe
moist_nuggetQuote
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:

Code:
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)

Code:
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...

Code:
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/WeedsGM3
Note 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

Code:
source /etc/timidity/freepats.cfgand turn it into

Code:
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...

Code:
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

Code:
pmidi -lThis 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

Code:
mpu401=intelligent
mididevice=default
midiconfig=

and change to


Code:
mpu401=intelligent
mididevice=alsa
midiconfig=128:0

8 )
Play System Shock with MIDI support and mouse look!
66472dbf2afbd
remyabelQuote
You missed a step. You also need to run
Code:
aconnect 24:0 128:0, where 24:0 can be replaced by the port listed by
Code:
aconnect -o. Example on my machine:


Code:
TiMidity starting in ALSA server mode
Opening sequencer port: 128:0 128:1 128:2 128:3

In another terminal:


Code:
aconnect -o
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 128: 'TiMidity' [type=user]
    0 'TiMidity port 0 '
    1 'TiMidity port 1 '
    2 'TiMidity port 2 '
    3 'TiMidity port 3 '

You'll see that it's not listed. In this case,
Code:
sudo modprobe snd-virmidi is required.


Code:
sudo modprobe snd-virmidi
aconnect -o
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 24: 'Virtual Raw MIDI 2-0' [type=kernel]
    0 'VirMIDI 2-0     '
client 25: 'Virtual Raw MIDI 2-1' [type=kernel]
    0 'VirMIDI 2-1     '
client 26: 'Virtual Raw MIDI 2-2' [type=kernel]
    0 'VirMIDI 2-2     '
client 27: 'Virtual Raw MIDI 2-3' [type=kernel]
    0 'VirMIDI 2-3     '
client 128: 'TiMidity' [type=user]
    0 'TiMidity port 0 '
    1 'TiMidity port 1 '
    2 'TiMidity port 2 '
    3 'TiMidity port 3 '
66472dbf2b0a4
moist_nuggetQuote
I'm not too hot on Linux sound systems in general... I got it working with the method listed in my OP. What does this missed step do and why is it needed?

(also, what distro?)
66472dbf2b16e
DanQuote
Thanks! I was just getting SSP working on Linux and realized there wasn't music - this did the trick for me. For what it's worth, I'm on Ubuntu and only needed to do what was described in the OP, not the additional modprobe.

Take care,

-Dan
66472dbf2b292
trickserQuote
Hi there,
I wanna note SSP + Dosbox is not my choice of setting up SS1 on Linux. SSP is stuffed with tools to make it run on Windows, making it hard to figure what's actually needed. And Dosbox is way too slow to use the gorgeous HiRes modes.
I use a cdrom image, downloaded from archive.org, the brilliant xcdshock and the almost forgotten, but lightning fast DosEmu. And TiMidity.
Page: 1/2▶▶
Reply

Legal stuff

Privacy Policy & Terms of Service Contact