Doom 3 Enhance the Experience Pt2

[[Enhance the ATI Experience]]

It is, of course, a well known fact that Doom 3 is a game which performs best when using boards by nVidia. This has left ATI fans frustrated and eager for a driver update or some other fix. Since ATI has not yet responded, a way of improving the way Doom 3 handles on ATI cards has been posted on the Beyond3D forums. According to the author, the performance increase can increase frame rate from 34fps in 1280x1024 to 48fps. Changes would, of course, depend on each individual set-up. A further suggestion from the forum is that the fix really kicks-in if vsync is enabled. Please feel free to post your experience with the fix on the MegaGames Forums.

The fix involves changing some code which can be found in the Doom 3 pak000.pk4 file. For those not interested in the technical side of the fix, an already changed file is available by following the download tab above. Extract so that the shader file goes under doom3baseglprogs. This replaces a dependent texture read with equivalent math, which runs better on ATI cards, but seems to run slower on NV boards, so only apply this if you got an ATI card.

...this should be good enough proof that ATI hardware can run Doom3 just as good if not better than nVidia, and that we can pass on all the "ATI suck in OpenGL", "ATI's drivers suck" etc. into the trashcan where it belongs.

The full, do-it-yourself, fix is as follows:

I picked up Doom3 today and let be begin by saying it's a kickass game so far. A few minuses like weapon reload (which I find add nothing to a game, except annoyance, so I don't know why many devs keep adding it to their games), but overall much above my expectations.

Anyway, to the fun part, exploring the technology.
I think I've found the source of why this game runs comparably slow on ATI hardware vs. nVidia at the moment, and found a solution to the problem.

First, open your doom3base folder. Doubleclick on the pak000.pk4 file. In the "window can't open this file .. .bla bla" dialog, go on and associate the file with an app like WinRar. With this file open in WinRar, go to the glprogs directory in the file. In there you'll find the shaders. The interaction.vfp file seems to be the main rendering shader. Altering this shader to output a constant color turns most objects into that constant color, except for stuff like computer screens etc.

So doubleclick the interaction.vfp file to open it (you may have to associate the .vfp extension with a text editor like notepad or wordpad first since we're going to edit the file). Scroll down to the fragment shader. You'll find these rows:

Code:

PARAM subOne = { -1, -1, -1, -1 };
PARAM scaleTwo = { 2, 2, 2, 2 };

Add this right below them:

Code:

PARAM specExp = { 16, 0, 0, 0 };

Now scroll down to this:

Code:

# perform a dependent table read for the specular falloff
TEX R1, specular, texture[6], 2D;

Comment out that line by adding a "#" to it, and add another line that will do the same thing with math instead, so it should look like this:

Code:

# perform a dependent table read for the specular falloff
# TEX R1, specular, texture[6], 2D;
POW R1, specular.x, specExp.x;

Save the file and close your text editor. WinRar will ask if you want to update the file in the archive, select yes. Close WinRar and enjoy about 40% higher performance in Doom3. Haven't done extensive testing yet, but my performance went from 34fps in 1280x1024 to 48fps.

Conclusion and discussion:
I don't want to complain about Carmack's work, I still consider him to be the industry leader in graphics engines. Though when I read the shader it striked me how many texture accesses it did compared to the relatively short shader, even for stuff that could just as well be done with math for a small cost in instructions. Using a dependent texture lookup for POW evaluation makes a lot of sense for R200 level hardware due to instruction set limits, but for R300 and up it's much better to just spend the three cycles it takes to evaluate POW with math instead of risking texture cache trashing with a dependent texture read, which may be much more costly, especially since the access pattern in this case will be far from linear. Also, using math improves the quality too, even though it may not be very noticable in this game.

I should point out though that I'm not sure if the constant specular factor 16 that I chose is the one that the game uses, so output may be slightly different, but if this solution will be worked into the game in a future patch, then this is easily configurable by the game so that there won't be a difference, except a lot faster.

An interesting follow-up discussion may be why this dependent texture lookup is much slower on our hardware than on nVidia. Maybe there's an architectural difference that's to blame, or maybe something else? The main point here though is that this should be good enough proof that ATI hardware can run Doom3 just as good if not better than nVidia, and that we can pass on all the "ATI suck in OpenGL", "ATI's drivers suck" etc. into the trashcan where it belongs.

[[Previous Doom 3 Optimizations]]

Doom 3 has caused upheaval in the gaming community, especially since most players lack the necessary specs to make the most of their experience. Thanks to our readers we have traced a few ways that most gamers can enhance their experience fighting the hell-breathing monsters that are after their fellow marines.

Light at the end of the barrel

While gamers everywhere are struggling to calm their trigger fingers following the Doom 3 experience, many are already complaining about the need for more light. Thanks to a bit of duct tape and a lot of ingenuity, Glen 'FrenZon' Murphy has created the Duct Tape Mod, a solution to all our Mars vision troubles. A link to the files and a brief description of the mod is available by following the download tab above.

Cheap Cards Not Choppy Games

Another kind soul has taken pity on the poor gamers tackling Doom 3 with the Radeon 8500, 9000 and 9200 series of cards and has released a Graphics Optimization Guide, guaranteed to solve the OpenGL Blues of all low-end ATI card owners. A link to the guide is also available by following the download tab above.

Finally a kind Megagames reader, you know who you are Slijkhuis, has sent in another way to get a very definite performance boost. This guide works by releasing a lot of CPU resources and manages to do so by eliminating the need to decompress data while playing the game. According to our benefactor, there is a catch! By using the fix, you temporarily can't connect to pure multiplayer servers. You have been warned (although there is a way back)

The Guide

After installation, the Doom III Folder consists only of the doom3.exe and some .PK4 files. Those PK4 files includes the entire game (sounds, videos, textures etc.) compressed. They are normally uncompressed in mid game, which is very hard on your CPU. We can unpack them and thus take the strain of your CPU.

1. Make a copy of ALL the files in C:Program FilesDoom 3base. This is some big filage, but if you want to revert to MP without reinstalling you need to do it.
2. Unrar the following .pk4 files (just pretend they are .rar's and open them with winrar) into the C:Program FilesDoom 3base folder (each one should unrar a single folder such as textures or models):
pak000.pk4
pak001.pk4
pak002.pk4
pak003.pk4
pak004.pk4
(This one has many files, put them all in Base and overright any that apply.
3. Now delete the files above (pak000-004) or move them to another folder for storage so you can revert to multiplayer.
When you want to revert to multiplayer, restore everything you had before and get rid of the new stuff. I'm not sure if the folder maps is the same or not, so make sure you back that up.
When in the original Doom3 /base folder (that is, before the unpacking), you would have thse folders and files "maps" "savegames" "config.spec" "doomConfig.cfg" "doomkey" game00.pk4" and "gamex86.dll", nothing else.

ALSO DO THIS! If you open DoomConfig.cfg (C:programfilesdoom3base) in notepad and change (make sure to save a backup copy) seta image_cacheMegs "32" to a higher number, such as 128 or 265 (depends on RAM, use 256 for a gig, 128 for 512mb) you will see a big increase too. You also have to change the seta image_useCache to "1" and seta image_cacheMinK to approx "20480" (or higher)
There you have it, since the CPU wont have to unpack the textures, sounds, etc...there is a MASSIVE performance increase at the expense of no MP and requiring more HD space.

Please feel free to post your experiences using these fixes and Mod in the User Comments section.

Add new comment

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.

Comments

Doom 3 Enhance the Experience Pt2

Man changing the f***ing game for the card is like taking a truck and unloading it and say: "O, wow it's so much faster now! ATI Rules!!!" Sure you can optimize and change the game for Nvidia as well... Then compare!!! The fact is Nvidia beats ATI with the game as is. "Let the best one win!"

Doom 3 Enhance the Experience Pt2

Hmm... lets see here, I used to be a NV fanboy but once I started seeing the performance go down and the price go up. Thats when I started to really take a good look at the performance/cost ratio. Lets see, I've got a FX5200 64mb that runs doom3 like po white trash and then i have a 9600 that runs 800x600 with medium detail at about 34 fps. I know what your saying. It must but the different processors, well heres something to think about. The NV system has a 3.2ghz p4 w/ 800 fsb and then the 9600 has a 3.06 w/ 533 fsb. So, I'm still wondering is the name worth the money?

Doom 3 Enhance the Experience Pt2

there are no NV code tweaks so far. there are mods to increase visual effects but that affects both video card companies. lets just say hl2 suck, but atleast it is not picking one video card company over the other, how can i say that? first off it is going to use sader 3.0. doom 3 should then allow 3Dc to be used as well. microsoft said that hl2 is the best dx engine out their. the reason they said that is because it will be using direct x correcly (i now doom 3 is open gl, that is why it does not have shader 3.0).does that mean doom 3 sucks? no, i engoy play the game and with the code change see nothing wrong with it. but doom 3 should patch the game to give ati a good vistual start and allow 3Dc to un-compress the texture detal of the game. this in turn will make hl2 and doom 3 the best for what ever video card is used.

Doom 3 Enhance the Experience Pt2

I love ATI. but still, ati lost to nvidia cause nvidia has, simply put, alot more muscels then ati cards have(~60milion more transistores).you can compare ati to the nerd, and nvidia to the thug: although the nerd is assumingly smarter, any thug with enough muscels can beat it to death. so Vesuvan go eat a shivans ass or something, and stfu."the way it was meant to be played"... pah! ati owns in the AA and AF scenes even theyr'e crads are very weak when it comes to the amount of transistors.and pixel shader 3.0? "cough"geforcefx"cough"...

Doom 3 Enhance the Experience Pt2

the king of graphics? how do you define this? well lets look at the the old kings to find out. the 3dfx line, the card that i think about was the 16mb voodoo 3 3000. it was king, more like david, and took out those 32mb golith cards. the next true king was the geforce 2gts. man could that card do lots. then came the geforce 4 ti 4200 to 4600. nothing came close to there power. after that came the ati 9500 to the 9800xt. it made us remember the days of competition, and how the under dog could win.but right now do we have a king. do we have a card that kills all of the others??? the answer is no. we have two kingdoms, that are right now even. one might be better here but not so good there. there is no true king but a group of great cards that all keep up with each other.so if you own an x800 or a 6800 why are you here. be happy that you have a great card and play games... for all of you who say you have one (but we know you don't) save up and buy what ever you want. don't cry about it, just do it.

Doom 3 Enhance the Experience Pt2

All I can say is that I've got a ATI Radeon 8500LE, which is a pretty sad card. But I was able to play doom 3 at 800x600 with medium quality and all effects turned on (except for anti-aliasing). Only a couple of times did it lag. If I turned off shadows, the game was pretty fast as well.

Doom 3 Enhance the Experience Pt2

My god.There's so much complaining as to what the better game is, or what the better card is... who cares?How does it affect YOU what the guy posting below or above has on his sytem? It doesn't. Shut the f**k up, and enjoy both Doom3 and HL2 for what they are. ENTERNTAINMENT.

Doom 3 Enhance the Experience Pt2

In my opinion, Nvidia is the king. I don't know, maybe that's just my bias since ATI is canadian. But I find you'll find a lot less problems when working with Nvidia (with the acception of GF 4. Splinter Cell, and Deus Ex 2 are incompatable.) and benchmarks for doom 3 show up to 30% better speed with nvidia. My system however is 2.0 GHz, 256 DDR SDRAM, and a 64 MB geforce 4. I thaught my card was good, scoring high speed at every game I threw at it, and then doom came along. What shitty performance! I believe it's my RAM, since it's under the minimum requirement. I've just put in a new motherboard as a start to mass upgrading. After RAM, what do you think would make a better difference, a new graphics card, or a new CPU?

Doom 3 Enhance the Experience Pt2

Doom is fine just the way it is. Gamers have known about Doom's release for almost 2 years now and should have upgraded or built a new comp. that meets the specs required to run the game the way IT WAS MENT to run. If you don't have a decent comp., then you shouldn't even be playing Doom III. I can't wait to see how many people piss and moan when HL2 comes out!! Get your $hit together!!!

Doom 3 Enhance the Experience Pt2

Patrick, you're either a moron or dont know shit about computers.i dont think u'll be able to run anything newer than Quake III on a 64meg card.i have one point to make, nVidia is the underdog here. ATI made the first ever 3D accelerator!!!

Doom 3 Enhance the Experience Pt2

windows solitare is better then doom3 i like that..lol...he's right well almost dont like like doom3 ..its been on my hard drive since it came out have'nt played it in 4 day's now argh" don't care if i play it again,geez game plays great on on my 9800pro whats the fuss all about..fun factor 3 out of 10.graphics 6 out of 10 big deal doom3 oh and multiplayer 0 out of 10 yuck it blows chunks...

Doom 3 Enhance the Experience Pt2

what are you talking about? no matter what people say, people will not switch sides and buy another type of video card. what is this, forced slavery. people can always change their mind and pick what ever they want. i mean i have jumped around to a few video card companies, and i know i will keep on doing that. i started off with a 8mb voodoo 2 card then went to a 16 mb tnt card, then to a 16 mb voodoo 3 3000 card, after that to a 32mb viper 2 card, then i got a 64 mb rage furry card, after that a 64 mb geforce 3, then a 128 mb geforce 4 ti 4400 and finally to a 256 mb 9800xt (that was a long sentence). all of the cards that i had were made well, but as soon as some one made something better then that is what i bought. i have no alliances to a company, heck i am still try to find a better o/s to run my games (and no there is nothing better yet, but one day maybe).why should any of you guy care about nividia or ati. as long as they are making good video cards who really cares. right now neither are better and i will be waiting for the next group of cards before buying. i mean nividia has this newer technology (more transistors and better CPU die) and they can not kill, or even beat the ati. ati has a big CPU bottle neck problem, they might be faster with a P4 EE or AMD 64 CPU but on a regular CPU (3000 and lower) the 6800 out performs them.

Doom 3 Enhance the Experience Pt2

the shader 3.0 and the 3Dc are not going to be a factor until next year. why do i say that, it is because the computer gaming world are not about 4 to 6 games. i mead is doom 3, hl2, farcry, and other games like that the only game being played? no, many people are into civ 3, ut2004, thief 3, tron 2, need for speed underground, x2, neverwinter nights, nhl 2004 and a few hundred more games. if gaming for PC is just doom 3 and hl2, man do i need to get a console. you guys need to get off your alliances and these few games and play some other ones. you want a hard FPS (first person shooter) that most people do not know about (and has great visuals, even for todays game) is the patched version of "chrome". you want a more violent FPS with a hell theme then get "pain killer". we are not just stuck with these two games, pick some more

Doom 3 Enhance the Experience Pt2

ATI may have made the first 3D accelorator ever, but that doesn't make it the best. There are plenty of companies that where "firsts" that went under. 3DFX for example, had many first in GPUs, but now went under.As for Mr. Anonymous, that 64MB card surprised me too. Unreal 2004 even works well! and trust me, I am no moron and know plenty enough about computers to not plan to use that 64 MB card for very much longer, especially with the fact that I have to play the newest and gratest (doom 3) at low settings. Plus, Nvidia has allways had the fastest, even ATI cards that where "faster" have allways turned up slower performance because of faulty drivers. The new card allways came out before an actually "good" ati driver is released.

Doom 3 Enhance the Experience Pt2

I am just going to play the game the way it was meant to be played... Without the stupid ducktape or flashlight mod. If you are scared of the dark, then you shouldnt even being playing this. It is easy enough to identify enemies in the dark. Imps shoot fireballs that light up the room, Zombies moan and makes noises, and youre gun lights up any dark corner when you fire thanks to the games special effects.

Doom 3 Enhance the Experience Pt2

one more coment, the shader 3.0 will be used much sooner than you think. I don't know how you all think, but when Half Life 2 comes out, I'll want a card that can use full settings, and Half Life 2 will have shader 3.0. Half-Life, like Doom 3, will used Nvidia as their prefered choice of GPU

Doom 3 Enhance the Experience Pt2

I am glad that I dont have to tweak with my game in order to get good FPS or resolution. The game works just fine on an Athlon 2400+, 512mb ram, and a 128mb geforce fx 5200 ultra. I get around 30 FPS on medium quality (which almost looks like High) with all of the special effects enabled at 800 x 600.

Doom 3 Enhance the Experience Pt2

if you are going to say something then back it up. you have no links or web sights then just say nothing at all. ati sucks, nividia in no good... ok say it, tell us why, then show me on the internet. you can not do all 3 then why would any one listen to you.people say 3Dc will not be used. it is just a dumb idea with no future... it's not even in hl2.well sorry to make you look dumb but here is a quote:To date, the 3Dc technology has been announced in such awaited and worship projects like Serious Sam 2, Half Life 2, Pirates! by Syd Meyer, Tribes Vengeance and Dark Sector.[url removed] shader 3.0 are coming out so is 3Dc. lets see whats better.

Doom 3 Enhance the Experience Pt2

by the way, anything within the 2000+ range is an Athlon xp. What you have is an Athlon 64 3200. An Athlon 64 bit is actually a little better than just 64. There is an Athlon 64 bix fx-51 and 5x-53, the fx-53 being only 200 mhz faster.Anything that is 3000+, 3200+, or 3400+, is a 64 :)

Doom 3 Enhance the Experience Pt2

people say that nividia is the best. well they are right, on paper nividia is a monster of a card. far more transistors, a totally re-designed CPU and with enough wattage to power some motherboards. everything about the nividia 6800 screams i will be king. it is like comparing a fully tuned v8 (nividia), to a 4 cylinder turbo charged sports car (ati). everyone is looking at the v8 going "cool".now if this was a race between these two cars, and all we saw were close photo finish races and even a few v8 loses, most people would laugh at that v8 car. nividia should kill ati, no competition. but it is pretty close, heck the 6800 even loses some times. now for the fan boys... oh my card is better than yours... nividia has spend far more money in design, but still is getting a card that can not beat out this smaller competition (yes ati has a higher CPU speed, but the basic ati engineered core design is older than the new 6800). it is kind of sad... it's like the dream team not getting the gold medal in basketball... oh that is why you like nividia over ati, your use to it :)so keep on saying and rooting for a company that designs great slow stuff if you compare it apples to apples (transistors, die size, etc...)intel p4 ee is the same... 1000 MHz more but still slower or the same as the amd 64. intel should kill amd and not the other way around.[url removed]

Doom 3 Enhance the Experience Pt2

Half-life2 graphics are just as good as doom3s, BUT you can scale it down SO MUCH that it can run on low end comps.Most importantly half-life2 has muthrf**kin-kick-ass AI almost totally unscripted. hl2 has better physics then doom3 too, and with CS2 doom3 has no match. Doom3 has, good graphics and..... uh lets see... no wait.... yeah thats it, just good graphics.

Doom 3 Enhance the Experience Pt2

maybe you don't say anything because you really do not know much... most people follow a company, but do not really know why. nividia should kill ati (from reading all the specs on the x800 to 6800. the 6800 should kill, if we lived in a perfect world). it is just funny to hear everyone cry over who is better, but if you look at the under dog they took tried & true components (cpu die size, card lay out, etc...) and pushed it to a new level. no one says "hey ati did a good job", all we see is you suck. both card are about the same but ati cost alot less to design and make when compaired to nividia. it just looks bad for nividia.

Pages

Add new comment