What is MAME?
MAME (Multi-Arcade Machine Emulator) is an emulation framework that allows for emulating a broad scope of computing devices, particularly arcade machines, but also computer systems. For a through discussion of MAME, see the MAME website. MAME offers emulations from arcade cabinets, over pocket calculators, home computers, gaming consoles, up to PCs. ROM dumps must be provided by the user, because it would be forbiddingly expensive to get licenses for such a lot of systems.
As I owned a TI-99/4A computer back in the 80ies, my special interest is, of course, the emulation of the TI computer family. This is not just the TI-99/4A console and its peripheral expansions, but also the TI-99/8, the Geneve, the TI-99/2, and some more exotic things. I started to contribute to MAME around 2007, but I am only one minor contributor among hundreds.
In MAME, quite a lot of features have already been realized; here is a list of features.
I also compiled a list of changes that are related to the TI emulation in MAME.
How does it look like?
Emulation cannot be like the real thing, people usually say. Well, have a look. Here is a short clip showing the game Parsec in action, emulated on MAME 0.207. Notice the graphics, the sound, the speech synthesis, and the speed that pretty well matches the real system.
Here are samples of two popular, classic TI games: Parsec and TI Invaders
These samples are taken from the 60Hz version (NTSC); if you are used to European consoles (50Hz), the above scenes may look too fast. Indeed, the European users always had some advantage when competing in a game because there was no compensation for the slower video clock.
System requirements for the TI family
To run MAME, and in particular the TI emulations, your host (PC, Laptop) must offer a minimum performance. You might wonder why a PC with gigahertz CPU may run into trouble when emulating an 80ies computer with 3 Megahertz clock, but the point is that MAME emulates the electrical circuits at a fairly precise level, and while in your real system, lots of things may happen in parallel, this is not the case in emulation.
Here are some tests that show you what you can expect. The percentages show how well the emulator managed to keep pace with the real system. Only when you have a 100% result, the emulation runs at the precise speed; otherwise the running time is stretched. One may also say that the numbers say how much work it has managed to do when the real system did 100%.
The number in parentheses represent the performance when the "Spectre-V2 mitigation" is effective. This vulnerability particularly affects Skylake/Kaby Lake CPUs (6* and 7* families).
(MAME release 0.207, March 2019)
|Speed GHz||TI-99/4A||TI-99/4A + EVPC||SGCPU aka TI-99/4P||Geneve||TI-99/8 + HX5102||TI-99/2 + HX5102|
|Raspberry Pi3 B+||1.4||6%||4%||4%||4%||4%||5%|
|Thinkpad T60 Core2 Duo||1.8||92%||89%||91%||85%||45%||91%|
|Laptop Core i5-3320M||2.6||100%||100%||100%||100%||100%||100%|
|PC Core i7-6700K||4.0||100%||100%||100%||100%||100% (85%)||100%|
|PC Core i7-7700||3.6||100%||100%||100%||100%||100% (86%)||100%|
I am quite sure that the Raspberry Pi3 B+ was not running by optimum conditions, and there may be some tricks to get a better performance. Still, the MAME emulation is a heavy weight, and you can easily imagine that the fact that your Core i7 PC pulls more than 200W of electrical power, while the Raspi just needs 15W, should have a visible effect.