There are many latent bugs in legacy, some of which are due to trying
to make it run doom2, heretic, hexen etc. which was not its original
purpose. I have finally got rid of some bugs that was causing it
to crash for heretic, but have not got hexen to even finish loading.
There are also some old bugs that have been there ever since it
was ported to DOS. I just posted a patch for a memory allocation bug.
Tight memory will cause it to crash, because it can reuse memory
before it really was done with it. It relies upon not circulating back to recently allocated temp memory pages too soon.
This temp memory used is marked for automatic deallocation when the allocator next need its. When memory is tight it gets back to it too soon and it is still in use.
To fix this would be a big change to the whole engine, and most machines now have much more memory than Legacy needs.
640K of ram is not much for any program anymore. I consider
12 MB to be minimum for loading most freedoom wads. Some levels
can take 20MB+. I run legacy with 40MB specified (on a machine with 256MB).
On such posts, you really need to include.
- operating system
- port interface used (X-windows, DirectX, SDL, HAL, etc)
- what was the wad (doom1, doom2, freedoom)
- when did it crash
- on loading
- upon reaching a certain map
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Doom Legacy crashes on me every time I play after only about 1 minute of play. Why does it do this? I am running a 400 g4 with 640 ram
That is insufficient information.
There are many latent bugs in legacy, some of which are due to trying
to make it run doom2, heretic, hexen etc. which was not its original
purpose. I have finally got rid of some bugs that was causing it
to crash for heretic, but have not got hexen to even finish loading.
There are also some old bugs that have been there ever since it
was ported to DOS. I just posted a patch for a memory allocation bug.
Tight memory will cause it to crash, because it can reuse memory
before it really was done with it. It relies upon not circulating back to recently allocated temp memory pages too soon.
This temp memory used is marked for automatic deallocation when the allocator next need its. When memory is tight it gets back to it too soon and it is still in use.
To fix this would be a big change to the whole engine, and most machines now have much more memory than Legacy needs.
640K of ram is not much for any program anymore. I consider
12 MB to be minimum for loading most freedoom wads. Some levels
can take 20MB+. I run legacy with 40MB specified (on a machine with 256MB).
On such posts, you really need to include.
- operating system
- port interface used (X-windows, DirectX, SDL, HAL, etc)
- what was the wad (doom1, doom2, freedoom)
- when did it crash
- on loading
- upon reaching a certain map