3GB Switch Workaround for 32Bit Operating Systems
MadBoris provided a workaround similar to the one he provided for Supreme Commander here for reference.
What does it do?
It has to do two things that both rely on each other to work. We have to tell the operating system it can use more than 2GB user address space, 2.5GB actually, while leaving 1.5Gb for the kernel. We also have to set the Empire.exe executable to be allowed to address beyond the 2GB ceiling, which means that the exe needs to be Large Address Aware.
What does it help with?
This is not the solution for all crashes. It deals primarily with the crash to desktop that is caused by lack of virtual address space.Due to the unique nature of how addresses are mapped differently on each machine this crash may happen at different places and times of the game, even loading a map, menu or waiting on an AI turn. If you try this fix, and you follow directions properly, and it doesn't help you then your crash is due to something else.
How do I do it?
Follow directions explicitly. I have seen people consistently skip steps or not read the directions properly so it doesn't work for them when they don't do what it says. it's not as complicated as it sounds, I'm just being thorough.
Requirements
Only real requirements is that you have atleast 2GB RAM. You don't need beyond that even though we are allowing addressing up to 2.5 GB. Also following instructions and being somewhat familiar with working with files in windows is required. Make sure you are using Vista SP1. If not then you need this hotfix that fixes a major blunder with Vista address space - http://support.microsoft.com/kb/940105
THE WORKAROUND
XP 32
* Find your Boot.ini located usually on the C:.
If you cannot see it, you probably have system files hidden, then follow these instructions at microsoft (also uncheck "hide protected operating system files")
* Right click on the boot.ini and choose properties. Uncheck "read only"
* Open the boot.ini by double clicking it.
* Under the section called [operating systems] find the line that says "multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional...". Yours may look a bit different. We are going to make a duplicate, so that if you make a mistake you will not harm yourself from booting into your computer. Drag you're mouse across the entire line, right click and choose copy. Then right below the line you just copied right click your mouse and choose paste. You should now have two lines one after another that are exact duplicates.
* Change the bottom line that you just copied with the following addition on the end. Add a space at the end of the line and then this without the quotes "/3GB /USERVA=2500"
* In that lower boot entry you just made, find the name of the operating system in quotes and change it to something like "Windows XP 3GB", so you can differentiate at boot up.
* Close and save the boot.ini.
* Right click on the boot.ini, hit properties, check read only.
Vista 32
* In Vista go to Start menu. Go to Accessories. Locate the command prompt shortcut and hover mouse over it. Right Click on the shortcut then select Run as Administrator.
* In the command prompt type this exactly: bcdedit /set increaseuserva 2500. Then hit enter.
* Make sure you get a message back confirming the change was made. To verify the entry is there you can type just bcdedit, hit enter, and you should see the entry now listed.
* Then close the command prompt. You just told Vista to increase user virtual address (userva) space to 2500MB.
* Now reboot to make the changes appear.
Windows 7
* Open your start menu and type "cmd" into the search box. (also can be located at the "extras" tab)
* Right click on "cmd.exe" and run it as admin.
* Type in the following command: BCDEDIT.EXE /Set IncreaseUserVa 2500.
* Leave the command window and resart your computer.
SUMMARY
We extended the user virtual address space in XP and Vista to 2500MB, so now applications can utilize up to that much if they are set to be Large Address Aware.
If you still encounter performance issues, it is possible to chose a higher amount of UserVa (I recommend a maximun of 2900) -> /Set IncreaseUserVa 2900
TO UNDO THE CHANGES
For the XP 32 bit just delete the line from your boot.ini.
For Vista 32 / Windows 7 Open command prompt as administrator and type: bcdedit /deletevalue increaseuserva. That deletes the entry.
Reboot and you are back to normal.
thx @madboris