Bug in ET 2.6b and earlier versions


(Jimbo99) #1

Yeah, yeah, you have heard it before–a bug someone is reporting.

This is not an esoteric report of some feature that doesn’t work. It isn’t meant to demean the developers or the support team. Maybe splashdamage can’t do a thing about it. Who knows.

The problem exists on the Windows version. Normally I use Linux. Hey, I just don’t like the idea of Microsoft spying on us. Their WGA/WGN tools in Windows is akin to having Walmart employees knock on your door one Sunday morning asking to inspect all those things you have in your home that may have been purchased from Walmart because you are a regular shopper. Vista is that and worse. Hope many of you know this.

Well, anyway, getting on with it. Linux seems to not have this problem. It has to do with the number of files in the etmain folder.

I have been playing ET for a long time and I have downloaded nearly 500 maps over the years. Periodically I will archive those to a DVD. I did this the other day. A buddy has left one of his machines here due to a personal crisis. I’ve been letting friends play on it and one of the games we play a lot is ET. The only problem is that on a relatively new install, lots of maps are missing. We spend time waiting for this machine to catch up.

In order to solve this problem I decided to copy my .pk3 files from my linux box to his. I was careful to ensure I was only picking up the appropriate files. I did not copy over certain files–just .pk3 and only new maps.

After doing so I discovered that when I launch the game I get a message that the program can’t reopen the c:\program files\wolfenstein - enemy territory\pak0.pk3 file.

I verified it was there. I verified the size. I even renamed the folder and reinstalled fresh. I then recopied the files. Same problem.

I then put everything back and decided to move 1/2 of the .pk3 files that I’d moved to a different folder on the desktop and try again.

The game started properly. So, I put them back and removed all the files beginning with a number and the letter A. Game didn’t start. I removed all the files starting with B. Then the game loaded properly.

One would think that the problem was in the B files, so I put all the ones with a number and starting with A back and the game failed to start.

This brought about a big hmmmmmm. So, I then sorted the files by size and decided to remove all the 1-4k files. There were close to 150 of them. I put all the number, A and B files back, except those with a low byte count and then restarted the game. Bingo it worked.

The problem is that if there are too many files in the etmain folder the game will fail to start.

I would gather that the 1-4k files are configuration files from various servers. I noted that after starting the game, and then entering a server and map then exited, there were many 1k files there again. Not a huge amount, but enough. With enough server choices I’ll be back in bad shape unless I can identify all the crap maps that are never used.

Anyway, that’s the bug. What is probably happening is that when the main et.exe program is being loaded it reads all the files in the folder (all the appropriate ones anyway) and then it fails to close all of them. So this leaves too many files open so Windows can’t handle it. When it finally gets to open the pak0.pk3 (and the other related ones thereafter) there’s no more open file handles.

The bug probably can easily be resolved by having the et.exe program close all non-essential files.

Cheers.


(Sauron|EFG) #2

Old well known bug, but very unlikely to be fixed.

I would guess that it’s related to this rather than a limit in Windows itself.

http://msdn2.microsoft.com/en-us/library/6e3b887c(VS.80).aspx

(Stupid phpbb can’t handle the link. :stuck_out_tongue: )


(jaybird) #3

Why so many maps?


(Jimbo99) #4

Windows has always had a well established limit on the number of open file handles. I can remember 20+ years ago in DOS that there were limits. The same carried over into Win 3x, Win95, Win98, and WinNT. I was pretty certain it went farther and was known in Win2k, XP, and now Vista.

Open file handles has been an issue for a long long time and since it is well known it would behoove the developers of this game to fix them. They can do so by simply closing each file they open. For instance, they open every .pk3 file upon start. If you look at the dialog box you’ll see it scans each of the .pk3 files before launching the game. On top of that it opens a bunch of other files.

What splashdamage needs to do, or whomever it is that is maintaining this product, is close each file that is unnecessary before the critical files are opened. For instance, if I am playing the Fuel Dump map on any given server I don’t need to have the program open any other unrelated maps, especially custom maps.

Related .pk3 files might be files with custom sounds or skins, etc. But one map not related to anything I’m doing has no need to even be read by their system.

To answer the question of “why so many maps?”. I’ve been playing for a very long time. It is natural to just pick up those maps over time. Unless I can identify, from any given server, which maps I might need and which ones I’ll never need, it would be wrong to move maps out of the folder. From server to server any one can be using any map or rather any version of any given custom map. This means that even if server X uses version 1 of a map server Y may use version 2 of the map. I can’t predict which one will be needed.

Maybe this will become moot under Quake Wars, but I get the sneaking suspicion that Quake Wars won’t have the play style and the one on one, or one vs. 2-3 challenges that ET has. When you are dueling 2-3 players and you win a battle as one person against 2-3 it is a great feeling. Not to mention the fact that the battles are very fluid. It is the one feature that makes the game of ET the game of choice. It really isn’t the objective type feature of the game. That is important, but it is secondary to the ability to duel–to choose the right weapon, do perform the right action, to know when to get in and out, to dodge, to get the skill sets in the right area up.

What do I mean by that? I mean that Quake Wars will be an entirely different game that may not last the test of time the way ET has. We may wind up getting bored of it after the first few months of playing it. That means “back to ET” and these issues. So, it would behoove SD to take the time to correct this problem as more and more people will encounter it over time.

Also, I did a search in google to determine if there were solutions to this and found nearly ZERO hits on the subject. So, if this is an old problem, it still exists and it isn’t well documented by anyone. In fact, no one had any hint of the solution whatsoever and nearly none talked exactly about the error I had.


(Sauron|EFG) #5

There was a limit of 30 files or so in DOS iirc, not sure what the limit is in NT based OSes. The limit you’re having problem with is most likely the one in the Microsoft C runtime library that I linked though (512 by default, can be increased to 2048).

Nobody is actively maintaining this product, and it’s extremely unlikely that there will be another patch unless some serious security flaw surfaces.
This problem has already been known for years without being fixed…


(Sauron|EFG) #6

I don’t know which error message you got, but there are plenty of examples in this forum alone.


(SCDS_reyalP) #7

Problems resulting from having too many .pk3 files are well known. There are MANY places for these problems to crop up, not just filehandles. While windows may hit some particular error sooner than linux, you’ll run into one eventually. Furthermore, hitting these limits isn’t just do to sloppy use of the filehandles. Feel free to dl the quake 3 engine source and examine it for yourself. ET isn’t exactly the same, but it’s close enough :wink:

ET is particularly subject to this, because campaigns go in .pk3 files which get autodownloaded.

I wouldn’t expect this to get fixed. The simple workaround it to delete unneeded files. Your method of sorting by size is quite reasonable.