673f5611d3ab7

673f5611d5513
2 Guests are here.
 

Topic: SS1 Quick guide to run SS1 on Linux Read 43864 times  

673f5611d5ed9moist_nugget

673f5611d5f49
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: [Select]
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: [Select]
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: [Select]
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: [Select]
source /etc/timidity/freepats.cfgand turn it into
Code: [Select]
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: [Select]
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: [Select]
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: [Select]
mpu401=intelligent
mididevice=default
midiconfig=

and change to

Code: [Select]
mpu401=intelligent
mididevice=alsa
midiconfig=128:0

8 )
Play System Shock with MIDI support and mouse look!

673f5611d613aremyabel

673f5611d6193
You missed a step. You also need to run
Code: [Select]
aconnect 24:0 128:0, where 24:0 can be replaced by the port listed by
Code: [Select]
aconnect -o. Example on my machine:

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

In another terminal:

Code: [Select]
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: [Select]
sudo modprobe snd-virmidi is required.

Code: [Select]
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 '

673f5611d6254moist_nugget

673f5611d62a1
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?)
673f5611d63a2
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

673f5611d64bftrickser

673f5611d650b
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.

673f5611d66feHacker1

673f5611d6789
Sorry for reviving an old thread (and as a guest, no less - I can't sign in at this exact moment), but there's a more up-to-date, simpler version. You can use Flatpak to install DOSBox Staging, which has FluidSynth built-in and preconfigured. Once you have Flatpak installed and Flathub added as a repository, just use the following command (swapping out <period here> for an actual period, since it's recognized as an external link for some reason):

flatpak install flathub io<period here>github<period here>dosbox-staging

Then, you can just run the DOS version's EXE inside DOSBox Staging, and everything else will be automatically taken care of. (Except the tiny screen; use

xrandr --output <name of your display> --mode <640x480 for CD version, 320x240 for floppy version>

before launching DOSBox, and press Alt+Enter to fullscreen.)

My MacBook Pro i5 from 2012 runs just fine, with the only lag being at the save menu, so most modern computers shouldn't have any slowdown at all.

Again, sorry for reviving the thread - I just thought I'd update this quick for newer visitors.

673f5611d6b70sarge945

673f5611d6bcb
Please don't recommend Fl*tpak

Flatpak and Snap both make working with Linux applications a LOT harder and are NOT recommended for novice Linux users (or just in general). You are guaranteed to run into problems that can't be solved easily because sandboxing (as a concept) doesn't work.

Either install it the "hard" way using your package manager (literally 1 command!), or use Lutris.

Sorry for derailing this thread and turning it into a Sandbox rant but it's imperative that sandboxing dies a horrible death before the cancer can spread any further and make Linux completely unusable as an OS.

If you REALLY must use sandboxing, use AppImage, it at least works for the most part and won't break everything.

I would also recommend using Shockolate instead of messing around with DOS shenanigans. SS:EE also runs in Linux, but that is hardly relevant since this thread is about playing the original version.
« Last Edit: 02. December 2023, 03:26:03 by sarge945 »

673f5611d6f40ModdedInstall2

673f5611d6f9a
sarge945It's not one command - it requires that first you install the dependencies (one command), then add the repository (another command), then
Code: [Select]
sudo apt update (ANOTHER command), and THEN, you can finally install it, through four commands.

I won't fight your opinion on Flatpak, though - to each their own. HOWEVER - please note that your video you used as a source literally has "conspiracy theory" in the title.
« Last Edit: 02. December 2023, 21:01:13 by ModdedInstall2 »

673f5611d7395sarge945

673f5611d73f2
It's not one command - it requires that first you install the dependencies (one command), then add the repository (another command), then
Code: [Select]
sudo apt update (ANOTHER command), and THEN, you can finally install it, through four commands.

Dosbox is in the official repos and the dependencies install automatically, so it's just

Code: [Select]
sudo apt update && sudo apt install dosbox
2 commands max, 1 line. Pretty good overall.

I won't fight your opinion on Flatpak, though - to each their own. HOWEVER - please note that your video you used as a source literally has "conspiracy theory" in the title.

You do realise that's essentially a joke, right?

673f5611d74d3ModdedInstall2

673f5611d7521
I had specified DOSBox Staging because it is arguably better optimized and contains built-in Fluidsynth. Also, the official DOSBox hasn't had an actual update in who knows how long.

If it will truly add value to your day by continuing this argument, let's at least do it in PMs so as to avoid resurrecting a decade-old thread any more.
« Last Edit: 03. December 2023, 01:00:55 by ModdedInstall2 »

Your name:
This box must be left blank:

Look at you, hacker: a pathetic ____ of meat and bone!  (Fill in the missing word):
2 Guests are here.
Olfred: About difficulty, todays "normal" is yesterdays "easy".
Contact SMF 2.0.19 | SMF © 2016, Simple Machines | Terms and Policies
FEEP
673f5611d8333