This version log of MAME specifically lists all TI-related changes in the code.
|Release date||Git Revision||New features||Fixes||Bugs or Regressions|
|0.210||2019-05-30||ad45c9c609||-||TMS9901 counter now counts at all times, not only when set to non-null.||-|
Fixed CRU multi-bit operations with *Rx+; fixed TI FDC issues with Geneve GPL mode; fixed SGCPU regression with CRU operations
|0.208||2019-03-27||9483624864||-||Fixed Geneve GPL mode, fixed status bits (C and OV) for SLA and INV||-|
|0.207||2019-02-27||40fc33967c||-||-||Geneve GPL mode lockup (e12e17ce8)|
|0.206||2019-01-30||cf02fe333a||-||-||Changes in key mappings (757436bbfb)|
|0.205||2018-12-26||b691c38273||-||Reject cartridges with more than 2 MiB dump size to avoid mem corruption||Cassette operations broken in 99/8 (since 0.198)|
|0.201||2018-08-29||4dc302ed05||All disk formats (DSK, DTK, HFE) allow for 16 sectors/track; HX5102 working with 99/2||Formatting works in 99/8 (also when changing densities); track dumps now working safely in PC99. Full cassette support for 99/2(32K). Unneeded cassette channel (Ch.1) removed.||-|
|0.199||2018-06-27||f2e805a153||BIOS selection for Geneve; GenMod now a separate driver (check ROM zips)||Double density for HX5102 (HFE format only)||-|
|0.198||2018-05-30||c5f6a62d59||TI-99/2 running; HX5102 can host two drives||Fixed interrupt latching in 9995 (for 99/2); OSD blank disk creation; double-sided disks with HX5102||HX5102 cannot handle double density|
|0.197||2018-04-25||74293f8247||Hexbus floppy HX5102 working||Read track for TIFDC; can now load Diskassembler from MG||HX5102 cannot handle double-sided disks|
|0.194||2018-01-31||5be2496d0c||Selectable VRAM size for Geneve||Debugging in cartridges, esp. MiniMemory||-|
|0.193||2017-12-27||bf28b347fb||-||Removed auto-waitstates from Geneve||-|
|0.187||2017-06-28||1d9648b01c||Hexbus early WIP; new cartridge type "paged7" for TI-CALC||-||-|
|0.186||2017-05-31||e4c6cb15e0||Rearranged bus/ti99 source subtree; introduced ioport as a slot (PEB must now be plugged in)||-||-|
|0.184||2017-03-29||7768128734||Bus mouse is a separate device, can be used with EVPC now||TI-99/4 crashes; jerky Geneve mouse; debugging for TI-99/8; sector read on HFDC||-|
|0.180||2016-11-29||cfc8419||-||Fixed state saving||-|
|0.178||2016-09-28||012d47d||HxC HFE format support, MAME state save capability; improved performance for 99/8||Tag for MEXP-1 RAM (led to error on start)||TI-99/4 unstable, presumably buffer overflow|
|0.177||2016-08-31||1ecb023||New floppy sounds||Stuck INT line in TMS9902; RS232 line mapping; issues with deleted marks in single density; double stepping; debugger access to cartridge||-|
|0.174||2016-05-25||68785dc||Per-chip system ROM dumps, new cartridge ZIP files (download from WHTech), split "paged" into "paged16k" (Atarisoft) and "paged12k" (Extended Basic);||Fixed GROMEMU, fixed MBX, multi-cart can be switched without reset||-|
|0.173||2016-04-27||cfee536||GROMs rewritten as synchronous devices; TI-99/8 mainboard rewritten; Horizon with 8M setting||HOLD behavior of TMS9995; issues with paged37x cartridges; missing AlphaLock on SGCPU||GROMEMU cartridges broken|
|0.172||2016-03-30||913ab1e||-||-||AlphaLock does not work for SGCPU|
|0.167||2015-10-28||47f5637||-||Speech working again||-|
|0.166||2015-09-30||8e4ced4||-||-||Speak command only works after preceding Speak External|
|0.165||2015-08-26||efa3a67||PFM512 support for Geneve; Floppy drive sounds; Cartridge types paged377, paged378 (no GROM yet); HFDC switch "wait for HD" (TB 3)||Track dump images working again. 32K expansion mod is off by default now (turn on in OSD menu or choose 32kmem card)||-|
|0.164||2015-07-29||1b452e3||Modern low-level MFM hard disk emulation. Removed legacy floppy emulation.||PIO fixed (no more lockups)||Track dump images (dtk) may show CRC errors.|
|0.163||2015-06-24||d1583b9||Removed legacies 'tifdcleg' and 'bwgleg'||-||-|
|0.162||2015-05-27||64e16ca||MAME and MESS distributed as one single application||-||-|
|0.160||2015-03-25||0147bb4||Added a non-toggling Alphalock key for use with physical keyboards||UCSD Pascal disks do not crash the emulation anymore||-|
|0.156||2014-11-26||ebeaa95; switched from svn||-||-||-|
|0.155||2014-10-15||svn 32761||-||BwG saves double density data again||-|
|0.154||2014-07-23||31396||Modern floppy emulation for HFDC (old one remains 'hfdc', new one is 'hfdcnew')||-||-|
|0.153||2014-04-07||29406||Modern floppy system for TI FDC and BwG (old ones renamed to 'tifdcleg' and 'bwgleg')||Several fixes in HSGPL||HSGPL still found to crash when initializing GRAM; new BwG corrupts image on write (MFM) - bwgleg still working|
|0.152||2013-12-24||26738||TI-99/8 with working Pascal||Fixed BwG double density and TI FDC issues||-|
|0.151||2013-11-09||26005||Improved timing by split memory access||tms9995: Fixed decrementer bug; improved debugger access||-|
|0.150||2013-09-17||25362||TI-99/4QI available||BwG controller DIP setting defaults to DSK1-DSK4. HSGPL SCON subprogram now working. RS232 dropouts fixed.||-|
|0.149||2013-06-12||23624||(Almost) All cartridges available via software list||Introduced a new cartridge type "gromemu" which allows for 8K "GROM emulations"||DSK2 and DSK3 yield IO error 6 with tifdc. BwG corrupts file on write.|
|0.148||2013-01-11||20193||Accepts TI99-PC disk images with bad sector map||TMS99xx overflow bit; HDC9234 flag for setting delete mark||-|
|0.147||2012-09-17||17960||Cycle-precise CPU; LOAD interrupt; configurable RESET trigger in cartslot; VDP memory now visible in Debugger||READY line-driven speech output||-|
|0.146||2012-05-21||17371 (u5) MAME / MESS merge||-||-||8K GROM cartriges stopped working (e.g. RXB)|
|0.145||2012-02-07||-||Complete architectural redesign||-||-|
|0.144||2011-11-15||-||-||Fixed problems with GRAM Kracker||-|
|0.143||2011-06-29||-||Full RS232 connectivity||HSGPL flashing; SAMS fix; no more HSGPL crash with plugged-in cartridge||-|
|0.142||2011-04-04||-||Configurable v9938 RAM (128/192), MEMEX emulation||Multicolor mode||-|
|0.141||2011-01-09||-||-||-||HSGPL flashing does not work|
|0.139||2010-08-01||-||GRAM Kracker. Paged379i cartridges can now host 128 KiB. EVPC fully configurable.||HSGPL, SGCPU, EVPC. Lots of small fixes, now all working properly.||IDE support (required rewrite)|
|0.138||2010-05-22||-||Reorganized configuration; selectable speed for disk drives||HFDC and its chipset are completely rewritten. No more crash when formatting disks/hd with HFDC. Changed speech processor to TMC 0285.||HSGPL and SGCPU (TI-99/4P) broken|
|0.137||2010-03-14||-||Track dump disk images ("PC99")||Defineable noise (-4/-8) corrected||-|
|0.136||2010-01-10||-||-||Noise generator adjusted for preset noises||-|
|0.135||2009-11-07||-||New cartridge types: paged379i and pagedcru; chdman now allows to create uncompressed writeable images.||-||-|
|0.134||2009-09-15||-||-||Fixed chdman; hard drive images stay writeable||-|
|0.133||2009-07-23||-||P-Code card||ROM-only modules are usable with the automatic cartridge selector||-|
|0.132||2009-06-16||-||-||-||chdman sets hard drive to read-only after conversion|
|0.131||2009-05-03||-||Multi-cartridge handling with complex images||Port control fixed (CRU); TI-99/8 declared working again.||-|
|0.130||2009-03-10||-||-||-||TI-99/8 locks up on startup. Declared GAME_NOT_WORKING.|
|0.129||2009-01-06||-||Geneve got a dip switch to toggle between the version 0.9 ("Swan") and version 1.0 boot eprom.||-||-|
|0.128||2008-10-20||-||-||Geneve hard disk regression fixed. Real-time clock init fixed (DOW was incorrectly set). Natural keyboard now takes F12 as QUIT instead of ESC (TI-99)||-|
|0.127||2008-08-25||-||-||-||Geneve can't read hard drive images.|
|0.126||2008-07-08||-||Mini Memory keeps contents in NVRAM.||Peripheral cards (including floppy controllers) work again; mem_mask processing fixed||-|
|0.125||2008-05-10||-||-||Natural keyboard arrow keys, delete key.||Peripheral cards (including floppy controllers) deactivated.|
|0.124||2008-03-25||-||-||-||Floppy controllers broken due to mem_mask inverted; natural keyboard arrow keys do not work.|
|0.123||2008-02-09||-||-||Mechatronic mouse axis swapping resolved; more floppy cleanups; fixed TI99_8 regression and made the floppy drive usable.||-|
|0.122||2007-12-30||-||-||Refactorings and code cleanups||-|
|0.121||2007-11-24||-||-||Border is displayed again.||-|
|0.114||2007-04-12||-||-||Fixed assertion failure for ti99/4a and ti99/8||-|
|0.98||2005-07-10||-||-||-||Floppy access broken.|
In MAME (release 0.207), the following TI hardware is emulated:
- TI-99/4A QI
- Geneve 9640
- Solid State Software cartridges
- Cassettes (wav files)
- Floppy disks images
- Hard disk images
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.