Problem with Linux Wolfenstein ET......


(FreeRangeChicken) #1

I’m running Wolfenstein ET on two Linux boxes. It runs perfectly on one, and on the other box I always get “connection interrupted”. This usually happens shortly after the maps have been downloaded and I jump into the game.

Both Linux boxes are connected to the same LAN, so I know it is not the internet connection. In fact, the box that keeps failing is able to run RTCW and UT2003 with no problems.

I’ve done a quick scan on the forum regarding this subject. Most answers I found for the “connection interrupted” problem involved “check your internet connection.” As I stated before, I know my connection quality is good because I can play other games on the same machine. Also, another machine running Wolf ET and connected to the same LAN works fine.

If there is any other information I can post that would be helpful, please let me know.

Setup:

Wolfenstein ET with v1.02 patch on both boxes

Box 1: (this one works)
Tyan Tiger MP (S2460)
2 - 1.1G Duron CPUs
512M RAM
GeForce2 MX
Realtek 8139c 10/100 Ethernet
SoundBlaster Live!
Mandrake Linux 9.1

Box2: (this one doesn’t work)
Gigabyte nForce2 Ultra GA-7N400-L
Athlon 2600+ CPU (Barton)
1G RAM
GeForce FX 5600
Realtek 8100 10/100 Ethernet (small footprint version of the 8139c)
Soundblaster Live!
Mandrake Linux 9.1


(Locki) #2

Stupid question, but have you checked the network settings in the CFGs on both boxes? Perhaps one has settings that are too aggressive for the box?

I’ll ask Arnout/RR2DO2 (ET’s Lead Programmer) tomorrow too, as he’s a Linux buff.

Paul/Locki.


(z|Gandalf) #3

No problem with my Linux box (MDK 9.1) with the connexion.

I’ve only got problem when i tried to use Teamspeak. If I run TS, ET isn’t able to run.

I’ve tried with OSS or Alsadriver, but i haven’t found a way to run TS & ET.

Someone on the Teamspeak forum gave a solution, buying a second audio card. You can see his post here ->
http://www.teamspeak.org/forums/showthread.php?s=&threadid=7756

If someone can give a solution, i’ll give him… ammo pack :wink:


(Rain) #4

[short background before the actual answer]
The Quake engine has always used mmap()d sound (in order to get sufficiently low latency to make the game playable), and that holds true in ET as well. Unfortunately, to use mmap() with OSS (or OSS emulation with ALSA), the sound device has to be opened read-write. Some cards (e.g. the SB Live) have multiple DSPs, and can therefore do hardware mixing of multiple channels–in this case, the playback from ET and Teamspeak can coexist peacefully (although if this isn’t the case with your card, this solution won’t cut it.) The problem is recording–TS opens the sound device read-write so that it can record things, and ET tries to do the same thing for mmap()d sound (it’ll never record, but the driver doesn’t know that since OSS doesn’t have a nice in-between option.)

So, in summary, you need to tell the drivers that ET really doesn’t need the sound card’s recording facilities, so that both ET and TS can open the sound device at the same time. You can do this with something like:

# do not use any alsa plugins (you probably won't actually need this line, but it won't hurt)
echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
# this application does not use the capture device
echo "et.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss

You’ll probably need to do this as root, although being in the audio group may be sufficient (depending on your system’s configuration.) The first parameter is the executable name (‘et’ is a shell script that launches the real game executable, et.x86), the second and third arguments are the number of fragments and the size of each fragment (which essentially define the buffer size–they’re not relevant here), and any additional arguments are special options to apply to the named program. There is some more detailed documentation at http://www.alsa-project.org/~iwai/OSS-Emulation.html, if you’re interested.

n.b. these settings very likely won’t be saved across reboots, so you’ll want to kepe them handy, add the lines to your init scripts, or whatever.

I don’t know if there’s a clean way to do this using OSS off the top of my head.

Now, where’s my ammo pack? Could I get a poke from your magical syringe of green goo instead? That’s some good stuff. :stuck_out_tongue:


(FreeRangeChicken) #5

Thanks for the reply Paul,

I’ll double check my settings tonight, but I’m 95% sure I’ve got the network settings configured the same way on both machines. The game is runnung smooth (like butta) for the few seconds before it gives it up… if it gets that far. I’m having a hard time believing that I could be overtaxing an AMD 2600+ with 1G of RAM (set for 1024x768 resolution). Especially since I have ET set up on a Celeron (overclocked to 850Mhz) with 384M of RAM.

Thanks again, Paul. Looking forward to hearing something back. If there’s any other info I can post that may be helpful, let me know.

Edit:

I was thinking, could this maybe be a punkbuster issue?

Dave L.


(FreeRangeChicken) #6

Well, well, well…

It appears that it is a punkbuster issue. Looking at the console after I get dropped reveals…

punkbuster client: not connected to server

I went in and moved my etkey file to force a new globally unique identifier to be generated, which it did, but that still did not work.

Connecting to a non-punkbuster site works fine. Any clues as to what might be causing the punkbuster client to not connect to a server? Works fine on my other machine.

Dave L.


(FreeRangeChicken) #7

After some more digging I found some other interesting stuff regarding PunkBuster. Looks like it was acually connecting to a PB sever at some point… saw a bunch of transcripts negotiating download of info and such. After those transcripts I started seeing the following message intermittantly…

PunkBuster Client: Hacked Cvar: limboname

The last thing on the console before being ejected each time was

punkbuster client: not connected to server

Well, I never managed to figure out what the deal was, so in my frustration I moved my ET install directory and my “.etwolf” user config directories to another location and copied those directories off of the woking machine onto the non-working machine (removing the “etkey” file, of course). It now works!

I don’t get it. I installed both machines from the same install files.