Quote:
Originally Posted by d4rk3lf
Have you asked Richard Aplin how he managed to make it run on unexpanded A500, with just 512kb chip ram?
|
He'll be able to tell you in more detail than me, but the game had its own custom memory manager which would decompress graphics and defrag memory on the fly. This allowed the program to load in new baddies from disk in real-time while the game was still running, so it appeared that there was more data stored in RAM than what actually was.
Also, a custom CPU sprite-flipping routine was used, which, when I was writing my own for the 1Meg version, discovered that's where most of the slowdown comes from. The CPU has to drop what its doing to go and flip bits in graphics data using a lookup table and place it in a buffer, but it's so much slower than doing it with dedicated hardware (which the Blitter can't do), and to add insult to injury, the Amiga's planar screen setup means it has to do this for each Bitplane, so it's 4 times the work (all on multiple massive sprites).
The memory managing stuff is way beyond my skill set. I'm just using stock OS Allocation/Deallocation functions between levels, but what Richard did was next-level stuff!