Originally posted by zeitghost
This wasn't helped by the fact that the CGA card lived on the 8-bit bus, so every display memory access incurred a shedload of wait states

And of course the display memory was interleaved: rows 0, 2, 4... came first, then 1, 3, 5... The easiest way to deal with that was to toggle the ES register between two values I can't now remember, and also toggle the row offset between 0 and 80, each row.
Sorting your sprites (or otherwise arranging them) by Y position so you drew the top of the screen first could also gain you some time, assuming the constraint that not all sprites are allowed to be close to the top of the screen.
Happy days...





Comment