I thought that this would be a useful bit of information in general to post up, since I am building DELTA for machines that use Windows XP and onwards (except for Windows 8+ so far). Enjoy using this technique if you have a chance to do so!
The whole idea here is that you can bypass the 3.5GiB RAM limit that 32bit Windows XP places on your system, by creating a virtual hard drive in RAM (we call this a RAMDisk) and then moving Windows' paging file onto that RAMDisk. In other words:
[Windows XP → RAMDisk Software —> RAMDisk —> Has PageFile On it —> PageFile Used by XP —> Extends Usable RAM]
Requirements:
- Motherboard hardware capable of:
----having more than 4GB of RAM in your RAM slots, and the RAM itself.
----exposing addresses larger than 4GB to programs on the machine. - PAE (Physical Address Extension) Mode Must be Enabled
- Completing this procedure does not come without a heavy cost. You need to purchase the latest DataRAM RAMDisk, SuperSpeed RAMDisk Plus, or other RAMDisk software capable of using unmanaged RAM memory (that is, the upper "inaccessible" 4GB).
- Must have Windows XP Pro or Media Center Edition SP3 for Group Policy Editor (on XP home you can use Regedit instead...)
Turning Off Default Pagefiles
You need to disable all of the existing paging files before this will work properly. To do so, go to [Start > My Computer (Right Click) > Properties > Advanced > Performance > Settings > Advanced > Virtual Memory > Change]. Click on each hard drive in the list and make sure you click "No Pagefile" and then "Set" to disable each of your existing pagefiles. Then click OK a few times to exit settings (Windows may ask you to restart, if it does, then you should restart).
Creating Your PageFile Script
Download swapadd utility from THIS page.
Put this exe file in C:\WINDOWS\system32, along with a .BAT script with the following:
@swapadd.exe "A:\pagefile.sys" ####M ####M
Where #### is the amount of extra RAM in Megabytes you have minus the space already used on the RAMDisk, minus 5. If you have 4GB you'd ordinarily have to put 4057.
This script causes the utility to add a new pagefile.sys to the drive A (you want this to be your 4GB RAMDisk in unmanaged memory). The important part here is that this utility forces XP to allocate the pagefile automatically without a reboot.
Adding the Startup Entry
Then, [Start > Run] gpedit.msc and put this batch file into [Computer Configuration > Windows Settings > Scripts > Startup].
If you need to add this to the registry startup instead, [Start > Run] regedit, then go to "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", [RightClick > New > String value] and name it whatever you want, then double click it and type in the path to your .BAT script file. Click OK and then close Regedit.
This way, each time you start the computer, you will have the RAMDisk ready and it will load up the pagefile as you boot. It will stay allocated for the remainder of the session. Apparently, this swapadd-type pagefile setting is only temporary and lasts only for one bootup.
Results
To verify that your setup is working restart the computer, log on, press Ctrl+Alt+Delete to access Task Manager, and [Performance > Commit Charge (K) > Limit] should be a very large value higher than 3,670,016, which will represent the amount of possible allocatable memory. This value might be less than your RAM maximum due to other hardware in the computer using a chunk of your RAM addresses. GPUs can use quite a lot of this. You can also double check by browsing to the RAMDisk in Windows Explorer (enable viewing system and hidden files) and seeing if pagefile.sys is there and is the size you expected.
The end result of this is that you will be able to use RAM that Windows XP would usually just ignore. Cheers!