SimCity 3000 was originally ported by Loki Games to Linux, but over time the original binaries became incompatible with modern systems. For that purpose the Loki Compatibility Libraries were introduced, the linked site also contains tons of information to get other Loki to run again. Another option are the Linux Installers for Linux Gamers, which provide updated installers for a lot of old games, and - like in the case of SimCity 3000 - include all the necessary compatibility libraries already.
With SimCity I had one problem additional though. It still wouldn’t start with the following message:
Graphic System: Could not init SDL: No available video device
The problem
After some debugging with strace I noticed that the old version of SDL tries to connect to the local X server via TCP, a feature that was disabled on most distributions in the last few years; if you type ps aux | grep Xorg
you will most likely see -nolisten tcp somewhere in the options, which will prevent opening that TCP port.
The solution
If you are using the LIFLG installer from above you can find a very useful helper script that allows you to play the game in a separate X server instead. Just open the file sc3u.sh in your installation directory and uncomment all the XSERVER
, XSERVER_OPTIONS
and XSERVER_DISPLAY
lines, and in the XSERVER_OPTIONS
line change -nolisten tcp
to -listen tcp
. You will probably also have to create a file called /etc/X11/Xwrapper.config with a line allowed_users = anybody
to be able to start the X server as a user (see man Xwrapper.config
for details).
Otherwise you could explicitly start your X server with -listen tcp
instead. How that is done depends on your display manager. For KDM for example you can find the X options in /etc/kde/kdm/kdmrc → [X-:*-Core]
→ ServerArgsLocal
, other display managers should have similar configuration files. This may not be the best option for security reasons though.