32Bit games on 64Bit hardware

Recently RoadRage inquired “if I increase the amount of ram that my 64Bit Win 7 box has, will that improve gameplay in battlefield 3” and as I went to answer a couple of fundamental computer laws began to spark and conflict with each other, let me explain.

 

Years ago when the 64bit operating system was coming into its own, one of the greatest features was that it would be able to support endless amounts of ram(something Mac & Linux have master almost a decade earlier) and that its gamming support would be phenomenal, however few software venders were jiving on to the idea of retooling their production for an O/S when most of the work is getting done up in the GPU(Graphics processing unit). So most of developer ended up just adding it to their port list and treating it the way they treat a port to any other gamming platform, like say porting to the Xbox360. It was an after though for most developers and the hype quickly faded, however MS did buy into their own hype and created a way for developers to plug into the 64Bit prophecy of greater ram for apps!

I did some checking with some people in the business and found out how it’s done :
“Basically the IMAGE_FILE_LARGE_ADDRESS_AWARE is the software telling the operating system, "I know that addresses with the high bit set are not negative, and can handle them".
If the system is prepared to provide the software with the addresses above 2GB, then it will. If the software is not prepared to give those addresses (ie., a 32-bit Windows OS without the /3GB setting), the process can't get those addresses anyway - but no harm done.
Also note that if an software package has the IMAGE_FILE_LARGE_ADDRESS_AWARE bit set it will get access to address space above 2GB on Win64 systems, which do not support (or need) the /3GB switch. A 32-bit application will get an address space of something close to 4GB and a 64-bit application will get a huge address space - 7TB to 8TB depending on the platform (64-bit builds set the bit by default).”


Now the question is poised, did the developers at DICE user the “IMAGE_FILE_LARGE_ADDRESS_AWARE” in their development? I guess you would say “yes, of course they did , cuz they can!” but that’s not always the case, the xbox360 only has 512 MB GDDR3 RAM (700 MHz) and that’s shared with the GPU and the PS3 even less, of course these set top machines are built specifically to use this small amount quite well, but there no fire breathing gamming rigs by any stretch of the imagination.
So, we have established that there is a way for games written in 32bit architecture to tap into the great pool of ram that awaits it in any one of our systems. However, we must consider our less fortune gamming cousins “the Consoles”. So we can’t just go throwing around RAM all willy nelly!!
More checking reviled that most game developers build their game engines to run at optimal speeds and utilizing as much of the spastic architecture that the consoles can carry and behold the products that they have been able to build !!

So the results is a great, stable gamming engine that is both malleable and ridged at the same time, and can support itself quite nicely on a limited asset machine.
It is at this point that I feel it necessary to point the chips that power theses consoles are not small players in the game, the xbox360 blasts through games with the PowerPC chip from IBM and was the chip that powered the entire “G” series mac family for the better part of the 90’s. The chip that powers the PS3 was a collaboration of a Sony, Toshiba, IBM-designed Cell microprocessor and it’s an incredible piece of engineering, so I guess it’s not fair that I try to compare them as “less fortunate” then their heat blasting PC cousins.
So to answer your question RoadRage,
Yes, increasing the ram in your system will increase load times and help with lag when loading maps and transitions, but you won’t even notice any of those performance improvements until you run the game with heavy load.