Reply 140 of 167, by georgel
wrote:I explained how: by running Falcon 3.0. It was especially obvious with the animations it played. With real EMS, it would just st […]
wrote:No way. How did you measure that EMS performance?
I explained how: by running Falcon 3.0.
It was especially obvious with the animations it played.
With real EMS, it would just store each frame in a separate EMS frame, and copy the data to VRAM.
When using EMM386, it would have to copy the memory from XMS into the EMS frame first, and then the additional copy to VRAM.
That overhead completely messed up the animation playback, turning it into a slideshow.Sure, throw enough horsepower at it, and even with EMM386 it works again... but a 386SX-16 was not enough horsepower, ergo performance penalty was far from 0.
Have you debugged that game? No. I am not sure you figured out why EMM386 slowed it down but I do think it was not EMS related. Try QEMM386 by the way. What you explain now means that you don't know how memory mapping works -- no copy is needed between XMS & EMS they share one pool with 386 memory managers if configured correctly. The game most likely utilizes EMS and not XMS at all.