How to be running out of address space on the 64-bit system

supreme-commandertechnical-issues

Supreme Commander seems to crash for almost everyone when set to max settings. The general consensus is that the game is hitting the 2GB address space limit on Windows. The quick fix is to increase Windows' address space limit from 2 to 3 GB. The solution is to switch to a 64-bit version of Windows.

The former did not work for me as the game still crashes. To make things more bizarre, I am already running a 64-bit version of Windows 7.

Why is my 64-bit OS running out of address space?

My specs:

  • CPU: AMD Phenom II X4 970 Processor 3.50 GHz
  • GPU: Nvidia GeForce GTX460 SE (2 GB)
  • RAM: 4GB

Best Answer

Enabling the /3GB switch on 32bit Windows won't allow a 32bit application to address more memory unless the application is Large Address Aware. If it is LAA, then a 32bit application could address up to 3GB when the switch is enabled.

Similarly, using 64bit Windows will not automatically allow a 32-bit application to address more memory, although a LAA 32bit application could address 4GB in this scenario.

So, the short answer to your headline question is: Unless especially compiled as Large Address Aware, a 32bit application cannot address more than 2GB of memory, even on a 64bit OS and system (and even if LAA, the cap would still be 4GB on 64bit).

I suspect most applications are not released as LAA (for example, Skyrim wasn't LAA; they patched that in a few weeks after release), but I cannot comment on the exe provided with Supreme Commander.


There are tools available to patch in Large Address Aware flag to existing exes (if the SC game's isn't), but be wary of using them on games as you risk tripping anti-cheat detectors (because your exe has been modified).

Also, have you monitored memory usage of the game and system when a crash occurs? Given you only have 4GB total in the system, could it be that you're simply running out of RAM for the entire system, and so the game or system chokes to death when it ends up being paged out to disk?