Author Topic: Why are old PC games limited to run on 2 GB of ram  (Read 738 times)

After fixing 2 games that were forced to run on only 2gb ram (when I have 8 on my computer) it makes me question why these games run on 2 GB of ram and why they were never patched later on to support the usage of more than 2 GB of ram. Is there any explanation?

having 8gb and a tb hdd back 10+ years ago meant youbhad a nasa supercomputer, 2gb was probably the average for most homecomputers and it prevented stuffty memory leaks

32-bit programs can only have 2GB of memory allocated to them. It was a drawback of the older i386 processor architecture which has been replaced by the amd64 architecture in newer machines. Those older games are compiled for i386 and therefore cannot use more memory.

It probably has to do with a combination of hardware and software limitations of the time.

32 Bit systems, by design, can't address more than 4GB of memory. Some much older 32 bit CPUs couldn't even address the full 4GB or would only allow so much to be allocated to a given program. Software designed for 32 bit systems will have roughly the same limitations as the hardware (plus overhead).

On top of that, some software had further limitations imposed due to an expectation of never needing or seeing that much memory on a home system.

These factors can combine to create software that can act strangely, fail to properly utilize resources, or even fail completely on modern systems.

Because my pc is still 2gb

Thanks for everyone's responses. So when I fixed the games to make them run on more 2gb of ram, using CFF explorer, is this actually making it run on 8gb of ram rather than the 2 gb limit originally imposed?

Thanks for everyone's responses. So when I fixed the games to make them run on more 2gb of ram, using CFF explorer, is this actually making it run on 8gb of ram rather than the 2 gb limit originally imposed?
Most likely what you are doing is marking the 'Large Address Aware' flag in the executable, which tells the operating system to let the program use up to (about) 4GB of memory.