MAME 0.259 is coming up in a few days, and we haven’t done an Apple update in a while so let’s cover what’s happened in Apple-land since my last post on May 31st.
Starting off with 0.256 work done in June, the Apple custom real-time clock chips used in early Macs (the Quadra 800 in 1991 was the last Mac with one, and it was already kind of an outlier by that time) had been broken by a mis-optimization and would act weirdly in time zones other than US East Coast. That was fixed.
Next up, in Apple II land, I added support for the Apple ROM firmware card. This card works similarly to the common 16K Language Card, except it has ROM instead of RAM. And the ROM was socketed so people could and did make up all kinds of wild configurations. (Hey, it was the early 80s, everyone had an EPROM burner. That’s the milieu that produced Tron and Neuromancer). In MAME you can configure it in two boring stock ways: Autostart Monitor + Applesoft BASIC, which turns a 48K Apple II into a 48K Apple II Plus, or Original Monitor + Integer BASIC, which turns a 48K II Plus into a 48K original II. But you can also customize it, and this time without a UV EPROM eraser. Just supply a 12K binary file and it will become the ROM of the emulated Apple II or II Plus.
For July’s 0.257 release, the big news was that the Quadra 700 gained both working video and working SCSI, making it the first 68040 Macintosh officially considered working in MAME. This meant that for the first time you could properly run Mac OS 8.0 and 8.1 in MAME. Including in Japanese with KanjiTalk.

That was followed quickly by the second-generation Quadras: Quadra 800, Centris 610, Centris 650, Quadra 610, and Quadra 650. “Centris” was a short-lived attempt to have a midrange brand which quickly failed and so the machines got minor upgrades and were renamed as Quadras. There was a serious bug in these machines (they would tend to lock up if a sound was played) that was fixed quickly, but missed the cutoff for 0.257. So don’t use those machines until 0.258.
Heading into August and 0.258, the third-generation 68040s joined the fray, bringing the Quadra 605, LC 475, and LC 575 into MAME. The Cuda and Egret microcontroller devices got some much-needed emulation cleanup and modernization, too, including that they finally have the standard MAME feature of synchronizing their internal clock/calendars to your host system’s clock when MAME starts up. Since no synchronization occurs after that point (allowing you to, for instance, set the system time backwards to evade time-limited trial-ware) this means that running MAME unthrottled will cause the clock to advance faster than real time.
The final 68040 Quadras, and the last 680×0 machines Apple made, also joined: the Quadra 630 and LC 580 (also known as the Performa 580). Those were notable for being the first Macintoshes to use the ATA (also known as IDE) drive interface. It took me a few weeks to reverse-engineer how Apple had hooked it up (ATA itself is quite standard, but Apple threw in a few tricks) but I eventually won.

We also got new and updated Mac software lists, so you can get some known-good software to run on the Macs. And our emulation of the Apple CD-ROM drives improved with the addition of playing CD audio tracks. This is still a work in progress, but it allows us to run Apple’s “CD-ROM Explorer” software from 1988, which can boot on an enhanced Apple IIe or IIgs (with different versions for the two machines!) and there’s also an HFS partition with a Macintosh version (which only works properly on a Mac SE or a Mac II with a specific video card).
Rob Justice contributed some great Apple /// improvements as well, including the same improved Reset key behavior that the Apple IIs got previously, bug fixes for the ///’s fine-grained vertical scrolling feature, support for flashing text characters, and emulation of the ///’s famous dual-speed key repeat.
For September and the 0.259 release, Rob Justice gave us more correct (but not yet perfect) emulation of the ///’s system speed (the 2 MHz mode is only 2 MHz during certain times in the raster frame). This fixes the voice pitch in Atomic Defense, among other things. I fixed some details in the Quadra series video emulation, so now the Quadra 800/610/650 won’t give you the option of selecting the “Millions of colors” video mode, which the real machines did not have. It didn’t work properly in all cases because it was never tested on the real hardware or intended to be possible. As part of this work, I also fixed a problem where MAME was likely to trash memory on startup of those machines, with unpredictable results (some Ample users saw a crash from it, for instance).
The hookup of the built-in SONIC Ethernet chip on the Quadra 700, 800, 610, and 650 was completed so now those Macs can get online with no expansion cards, although there are errors in MAME’s core SONIC emulation which are currently under investigation. The Power Mac 6100 emulation took a small step forward with an IRQ fix so the mouse pointer moves now. If you boot a MacOS 7.6 (not 7.6.1) boot floppy, it will load all the way into the installer and you can control it with the mouse.
Unfortunately whatever emulation problem is blocking booting a full-size version of the OS remains, but we’re getting closer. And finally with the Apple Sound Chip playback having been fixed previously, I removed the “imperfect sound” flags from the Mac LC, LC II, Classic II, Color Classic, IIvx, and IIvi. I had somehow missed fixing those previously. So now you won’t get a warning when starting those systems.
Moving forward, October’s 0.260 will be big for expansion and networking. I’ve already cleaned up the NuBus Ethernet card emulation code and added a new card, the Farallon EtherMac 30i-TH (which in retail packaging was just called “EtherMac for SE/30 and IIsi”). I also fixed the IIsi’s expansion slot. Unlike the IIci, which had 3 NuBus slots, the IIsi’s much smaller case meant it had one special slot. Into that slot you could put an SE/30 PDS slot adaptor, allowing you to insert one SE/30 compatible PDS card, or a NuBus adaptor, allowing you to insert one NuBus card. MAME emulates that by a single slot named “siexp” which can be populated with either NuBus or SE/30 PDS cards, including the just-mentioned Farallon EtherMac. I also added support for the LC PDS slot, found in the Mac LC, LC II, LC III, LC 475, LC 520, LC 550, LC 575, Color Classic, and Quadra 605. This slot is famous as the host of the Apple IIe Card, but I have nothing to announce there at this time. I have added two cards that work with that slot: the Asante MacCON i LC Ethernet card, and the RasterOps 708+ LC video card.
Work is also in progress (but may not be in 0.260) to modernize how MAME connects to Ethernet when running on modern macOS, which will make it much easier to get emulated Macs online. Modern webpages can’t be handled by the ancient browser software on those systems, but the excellent FrogFind.com (no affiliation, I just love the service!) combines a search engine and a web page dumber-downer and allows some modern pages to be readable on those systems.
