[Coco] Emulators on a laptop?

Mark McDougall msmcdoug at iinet.net.au
Mon Feb 5 00:46:26 EST 2007


Roger Taylor wrote:

> I heard that M.E.S.S. constantly runs code that maintains each 
> emulation mode, at the same time, concurrently, simultaneously, 
> parallel, multi-tasking, ... I don't know how else to explain it.   I 
> think this is why the system slows down on each release.

Still not really sure what you mean by 'maintains each emulation mode'.

A single MESS driver will only emulate a single configuration of a
single machine at any one point in time. MESS runs the CPU and timer
systems that drive say, the coco emulation driver together with the
graphics and sound subsystems to display/play coco output on your PC.

One of the main reasons why MESS tends to slow down each release is
because the core code becomes more 'generic' as more and more systems
are added to the emulator. This is because the core functions, such as
displaying graphics, reading inputs, playing sounds, etc need to be able
to handle an ever increasing variety of systems - and hence a greater
number of 'cases' for each functionality.

For example code that must handle scalable sprites or rotating,
scrollable bitmaps is always going to be slower than code hand-optimised
for 8x8 sprites or 256-colour, fixed bitmaps. However from an
architecture point of view, it's much more preferable to have a more
powerful, generic core that handles the most demanding case, as opposed
to many, albeit faster, distinct implementations for each case.

Additionally, the core is continually being updated and re-written to
remove 'hacks' or inevitable 'bit rot' due to functionality being
expanded several times by several different people to add support for
new systems. The code is rewritten periodically to improve readability,
maintainability and flexibility of the software - unfortunately, there
is almost always a trade-off between these and raw performance.

And of course occasionally MAME/MESS gets new user features of its own,
such as artwork, scalable graphics, save state support, etc etc which
invariably slows the emulation further.

A dedicated (well written) Coco emulator is always going to be faster
than MESS.

Regards,
Mark



More information about the Coco mailing list