Hi there. I don't know if it's too late since I saw you posted your problem a long time ago, but I encountered the same problem recently when installing Unreal Tournament 2004 under Fedora Core x86_64 (64 bit version). I'm hoping that you have a 64-bit version of linux as well, because I have a solution to this problem. Hopefully anyone else who encounters this problem will have a solution after reading the rest of this post.
The libSDL-1.2.so.0 cannot open shared file error occurs because it is the innapropriate file for the program being loaded. The error lies inside of the ut2004 script file which is trying to load the 32-bit version of the game. With a simple change to the ut2004 file, the game will load fine :-).
Change #1
-------------------
on line 48 of ut2004, change
if [ -x "${UT2004_DATA_PATH}/ut2004-bin" ]
to
if [ -x "${UT2004_DATA_PATH}/ut2004-bin-linux-amd64" ]
Change # 2
-------------------
on line 51 of ut2004, change
exec "./ut2004-bin" $*
to
exec "./ut2004-bin-linux-amd64" $*
As you can see, the only change being made is the executable program being loaded by the ut2004 file. The unchanged script is loading the 32-bit executable, which is not what 64-bit users want. They ut2004-bin-linux-amd64 file should be under your "System" folder under your unreal tournament 2004 installation directory, and running this directly will also fix this problem.
If making editing the ut2004 file is not something you wish to do, then here is a copy of my ut2004 script file for reference, which can simply be cut+pasted and saved as "ut2004" under the installation directory.
In addition to making this change, you can also load the 64-bit precompiled libSDL-1.2.so.0 file instead to improve performance over the one included with the game. To make this change, simply rename libSDL-1.2.so.0 (under the Unreal Tournament installation "System" folder) to something like libSDL-1.2.so.0.old (to make sure the original is saved in case of error) and run the following command at the command prompt/terminal to make a link to the one on your system:
ln -s /usr/lib64/libSDL-1.2.so.0 /usr/local/games/ut2004/System/libSDL-1.2.so.0
The "/usr/local/games/ut2004/" part of this command may need to be changed according to where you installed the game.
I hope this fixes your and everyone elses problem loading this great game
.
ut2004 file starts below this line
#!/bin/sh
#
# ut2004 startup script
#
# Function to find the real directory a program resides in.
# Feb. 17, 2000 - Sam Lantinga, Loki Entertainment Software
FindPath()
{
fullpath="`echo $1 | grep /`"
if [ "$fullpath" = "" ]; then
oIFS="$IFS"
IFS=:
for path in $PATH
do if [ -x "$path/$1" ]; then
if [ "$path" = "" ]; then
path="."
fi
fullpath="$path/$1"
break
fi
done
IFS="$oIFS"
fi
if [ "$fullpath" = "" ]; then
fullpath="$1"
fi
# Is the sed/ls magic portable?
if [ -L "$fullpath" ]; then
#fullpath="`ls -l "$fullpath" | awk '{print $11}'`"
fullpath=`ls -l "$fullpath" |sed -e 's/.* -> //' |sed -e 's/\*//'`
fi
dirname $fullpath
}
# Set the home if not already set.
if [ "${UT2004_DATA_PATH}" = "" ]; then
UT2004_DATA_PATH="`FindPath $0`/System"
fi
LD_LIBRARY_PATH=.:${UT2004_DATA_PATH}:${LD_LIBRARY _PATH}
export LD_LIBRARY_PATH
# Let's boogie!
#edit by James N
#if [ -x "${UT2004_DATA_PATH}/ut2004-bin" ]
if [ -x "${UT2004_DATA_PATH}/ut2004-bin-linux-amd64" ]
then
cd "${UT2004_DATA_PATH}/"
exec "./ut2004-bin-linux-amd64" $*
fi
echo "Couldn't run UT2004 (ut2004-bin-linux-amd64). Is UT2004_DATA_PATH set?"
exit 1
# end of ut2004 ...