Troubleshooting linux

From Spring
Revision as of 10:27, 10 February 2009 by Auswaschbar (talk | contribs)
Jump to navigationJump to search

Troubleshooting

Ingame

LuaUI Crash Ingame

This issue is caused by a memory corruption bug in spring. It will be fixed in version after 0.76b1. Ubuntu packages include the fix. Workaround: disable ground decals.

LuaUI can crash during game, because some lua script you use has a bug. 0.75 should be resistant to this problem, but 0.74b3 is not. After crash, you won't see the bottom left tooltip box and top right resource bar anymore. Fear not, help is near:

/resbar 1
/tooltip 1

These might not be necessary in 0.75 anymore at all.

Also, you won't be able to change the build menu page with mouse anymore, but keys , and . do the trick.

LuaUI can also be restarted after it crashed. Often this does the trick and it works fine the rest of the game:

/luaui reload

Mouse is slow in fullscreen mode

Run:

echo '# Slow fullscreen cursor fix for Spring' >> ~/.xsessionrc
echo 'SDL_MOUSE_RELATIVE=0' >> ~/.xsessionrc
echo 'export SDL_MOUSE_RELATIVE' >> ~/.xsessionrc

And log out and log in again.

The mouse should now be as fast as in windowed mode.

Rotating Buildings Ingame

You can rotate a building before you give the build order, but the keys that do this don't work in linux by default for some users. Issue the following commands in the beginning of the game:

/bind keycodex buildfacing inc
/bind keycodey buildfacing dec

Keycodex and keycodey above are just placeholders. What you want to write depends on which key you want to use. To see what keycodes any keys have, do:

/keydebug yes

And then hit the keys you want to use, and spring prints the keycodes in the message buffer.

TODO: add information on how to save the settings so that they work the next time you start spring.

Map is White

If the whole map is only shades of white and grey, there is a problem with your display driver. Maybe your gpu is very old and does not support some needed opengl feature. For example I had this problem with matrox g550 but not with some very old geforce.

Sound is Choppy

If the engine sound is very broken or choppy sounding, and you hear some noise or crackling, you need to update OpenAL. Spring needs at least OpenAL Soft with version 1.6 to sound good, by this time all major distribution have it in their repository, so installing it should be easy (if it isn't installed by default).

Startup

Missing Default Cursor

This or any similar error of not being able to find a specific file are usually because the mod you are using needs ota content, download & install as explained earlier in this document.

sounds/button9.wav "cant find wav file"

Same problem as above.

could not open file: gamedata/defs.lua

Make sure your ~/spring does not contain an outdated version of base/springcontent.sdz because a new version of this file is distributed with spring. If you do, just remove it.

Couldnt find matching GLX visual

Reduce anti aliasing.

GL_ARB_texture_compression not found

This can be an issue with your gpu drivers. The drivers you are using do not support a feature that is required to run spring. You might have better luck with the closed source official drivers of nvidia or amd cards. If your gpu itself is really old, this might not help.

Try to update your gfx drivers, either with the one from your distributions package-manager, of with the original one from your gfx vendor. Also be sure hardware acceleration is enabled, tutorials on how to do this can be found in most of the distributions forums / wikis / etc.

OpenAL Segfault

See -> Sound is Choppy.

Desync in game

If you start a network game with other players, and you get sync error messages in game, your lobby version may be too old. It does not support the new protocol so it does not set the options on spring correctly, and desyncs at game start.

Compiletime

invalid use of ILvoid / ALCvoid

During compiling, if you get a lot of the following errors:

/usr/include/IL/il.h:497: error: '<anonymous>' has incomplete type 
/usr/include/IL/il.h:497: error: invalid use of 'ILvoid'

This happens because the version of libdevil-dev you have installed is not compatible with gcc version 4.2 and newer.

You should upgrade your libdevil-dev to fix this issue. However, in some distributions (at least gentoo), the fixed package has the SAME version number as the older unfixed package, so you might actually need to remove your current libdevil-dev package completely and reinstall it.

this is an issue that can be better hacked there. while the packages aren't fixed for their maintainers, you will need to do nasty things, like that:

//typedef void ALCvoid;
#define ALCvoid void

Network Setup

Usually you don't need to do any network setup whatsoever, because the lobbies take care of nat traversal with firewall hole punching, but if you need to know the topology, it goes like this:

Host needs to enable incoming udp to port 8452, and outgoing replies to those. Non-host players need to enable outgoing udp, and incoming replies to those. So basically only non-host players initiate "connections", and only the server listens on a well-known port.

If You Still Have Problems

Join either IRC chat in #taspring on Freenode or #sy on QuakeNet, or ask for help in the lobby channels #sy or #springlobby.

However, generic linux problems not really related to installing this should be asked elsewhere.

Prepare to list your distribution, which installation method you used, and what exactly is the error. Don't ask if people are around or not, just go straight to business and tell all details, for maximizing your chances of getting help.

IRC

  1. #taspring @ FreeNode
  2. #sy @ QuakeNet

Asking For Help

Ok so you need human help. This is how NOT to do it:

15:54 -!- **** [n=****@*] has joined #taspring
15:54 < ****> Hi, i have a problem with compiling spring on debian
15:54 < ****> can anyone help me?
15:57 -!- **** [n=****@*] has quit [Client Quit]

Don't ask to ask, instead go straight to business by stating the exact problem you have, and giving all necessary information. What you were trying to achieve, how did you try to do it, what happened and what did you expect to happen.

Then WAIT for someone to notice you.