[Coco] Emulators on a laptop?

Mark McDougall msmcdoug at iinet.net.au
Mon Feb 5 22:33:32 EST 2007


Roger Merchberger wrote:

> Whilst I have absolutely no "problem" with this, if it further slows
> the CoCo emulation down (which should be far faster, IMHO), why do
> *we* need to keep updating it?

*We* (as in the royal "we") don't! ;)

> I've been looking into what it would take to compile M.E.S.S.
> ourselves, to possibly optimize it for our particular use... it looks
> a little intensive, but nothing that can't be figured out with a
> little time and/or work...

There used to be an option for a "tiny" MAME compilation - I'm not sure
if (a) it is still supported or (b) if MESS had a similar concept. The
idea was that you could build MAME with just a single driver and the
required CPU/sound cores.

> I saw on the MAME download page that they have an i686-optimized
> binary for download, but not for M.E.S.S. I think it would be safe to
> hazard an assumption (knowing the implications) that most of us might
> have a Pentium-based PC by now... ;-)

I don't think it makes a lot of difference, performance-wise?!?

> If we could "turn off" all of the stuff we don't need and compile an
>  optimized M.E.S.S. just for us, that might help a lot with
> performance & memory issues...

I don't think you'll find much improvement in performance by slimming
down the code base. Size yes, but not performance.

The generic nature of the code is inherent in the algorithms implemented
at the core level. It's not a simple case of isolated, easily identified
portions of code routinely performing tasks that aren't required by the
Coco.

One example would be the convoluted implementation of virtual memory
that must handle bank switching, different cpu architectures and access
sizes, callback functions for side-effects, splits for opcode and
non-opcode fetches etc. The memory functions are complex, interwoven
into the driver and graphics subsystems, and necessitate several levels
of indirection for what would otherwise be a simple memory read/write.
Hence the reason they're not very optimal.

Graphics are even more of a nightmare.

Generally, there's no easy way to remove the extra functionality not
required by Coco emulation without a serious re-write. In fact, you'd be
better off going back to an *very* early version of MAME and
back-porting the driver to it.

And then you just end up with YACE (yet another Coco emulator).

Regards,
Mark



More information about the Coco mailing list