[FC2] OT - Desert Combat F-16 bug

Shockwave shockwave at clan-tf20.com
Tue Aug 31 14:22:50 UTC 2004


I have been operating a game server for the better part of a year that
runs a very popular mod of BattleField 1942 called Desert Combat.  From
the start, I have been using Fedora Core 1 on a hyper-threaded P4 2.8GHz
system using the SMP kernel and have enjoyed fantastic stability and
performance.  Just yesterday I upgraded the system to Fedora Core 2 and
have noticed something strange.  All of a sudden, every F-16 fighter
that spawns on any map has its right rear wheel sunk into the ground. 
The game files are the same exact ones from the system when it was
running FC1 so that can't be the cause.

The game itself has two versions of the executable.  One is statically
linked and one is dynamically linked.  I have tried both and the problem
still occurs.  This seems to indicate to me that the problem lies with
operating system files that both versions require.  I did a little
research and ran "ldd" against both the static and dynamic versions of
the executable.  Here are the results:

Static build
======================
libdl.so.2 => /lib/libdl.so.2 (0x00c7e000)
libm.so.6 => /lib/tls/libm.so.6 (0x00c59000)
libncurses.so.5 => /usr/lib/libncurses.so.5 (0x03798000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00d71000)
libc.so.6 => /lib/tls/libc.so.6 (0x00b3c000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00b1f000)

Dynamic build
======================
libdl.so.2 => /lib/libdl.so.2 (0x00c7e000)
libncurses.so.5 => /usr/lib/libncurses.so.5 (0x03798000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x0023a000)
libm.so.6 => /lib/tls/libm.so.6 (0x00c59000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00191000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00d71000)
libc.so.6 => /lib/tls/libc.so.6 (0x00b3c000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00b1f000)

The only lines that differ between the two are these:

libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x0023a000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00191000)

While it is possible that only the lines in common are to blame, it is
also logical to assume that it may be related to an interface between
them and other system components.  Not having a tremendous amount of
experience with C under Linux, I'm not quite sure where to go next but I
am certainly willing to roll up my sleeves and dive in head first.

If determining the specific cause of this problem by someone who isn't a
developer of the game itself is not feasible, then my question is this: 
Is it possible to isolate the pieces specific to FC1 and use them in
some sort of artificial environment on FC2?  If that is possible,
perhaps the game server could be tricked into believing that the system
was actually FC1.  That assumes, of course, that this isn't some kernel
related issue which certainly cannot be circumvented.

The gaming community tends to be fairly picky about this sort of thing
and might not feel comfortable playing on our server for matches if this
bug persists.  That would mean I would need to go back to FC1 and lose
the benefits of the advances in FC2.  That's something I would obviously
like to avoid.  I and others have posted about this problem for some
time now and the developers of the mod probably won't respond because
they have moved on to bigger and better things. If anyone could point me
in the right direction, I would greatly appreciate it.
  
-- 

|TF20|Shockwave
http://www.clan-tf20.com/
ICQ# 57671167
#taskforce20  irc.gamesurge.net





More information about the fedora-list mailing list