This page will include WIP screenshots and other fun stuff for MAME™, M1, and whatever else I'm working on.

3/30/2023

March comes in like a pear and out like an Apple

The brand-new MAME 0.253 has plenty of Apple related work in it! Starting with some bugfixes: monochrome double-hi-res wasn’t displaying correctly for the IIe RGB Monitor mode and all IIgs configurations. That’s been fixed. Crashes and hangs with the IIgs games GBA Basketball, Paperboy, and Zany Golf have been fixed, thanks to everyone’s favorite code golfer, qkumba. Ensoniq ES5503 sound on the IIgs (and the Ensoniq ESQ-1 and SQ-80, because we emulate those too!) is even more accurate.

In Mac land, it was The Final Cleanup. For those unfamiliar, when I originally got a bunch of Macs working circa 2011-2013, I jammed them all into the existing Mac driver (mac.cpp) regardless of if they had much in common other than being Macintoshes. This led to a giant unmaintainable blob and so a year or so ago I started splitting it up and emulating the shared major ASICs as separate devices (in MAME, a device is a C++ class with some minor extra powers granted by the core – they’re the key to our current modularity and ability to have freely configurable slots, among other things).

Anyhow, after the 0.252 release, mac.cpp had been cut down to contain the Mac II series (minus the IIvx and IIvi, which already moved to their own driver and the “VASP” ASIC device which powers them). Next on the chopping block was the IIfx, aka “Wicked Fast”. It had recently gotten some work done on hooking up its dual 65C02 coprocessors by contributor AJR so it showed the flashing question mark disk, but still has a ways to go. Now, in its own driver, it can more easily get some love. Last out of the blob were the IIci and IIsi, which are near-twins based on the “MDU” and “RBV” pair of ASICs. (That’s “Memory Decode Unit” and “RAM Based Video” if you don’t speak Apple). MDU doesn’t have CPU-accessible registers so there wasn’t a lot of point to making it a device, but RBV was the origin of a pretty long line of Macintosh system ASICs leading all the way into the PowerPC era and it definitely became a device.

For the PCI Macs, the Pippin driver was extensively cleaned up and renamed from macpci.cpp to pippin.cpp, because “macpci.cpp” was a hangover from when I was going to blob the PCI Macs. Fortunately I realized that was a bad idea before it actually happened. Pippin’s specialized PCI bridge chip “Aspen” is now supported as a subclass of the “Bandit” PCI bridge chip used in most pre-G3 PowerMacs, and the “Grand Central” PCI I/O chip is at the correct PCI address now so the system can find it.

Also, I transferred all of the now decade-old Mac technical information from the old MESS blog to MAMEdev.org’s blog. You can access all of that information right here. It’s all been corrected and expanded all the way out to the PowerMac G5s, with the correct chips assigned to some machines that were wrong in the old list. And the list of Apple chips by 3xx-xxxx number is significantly expanded and includes a bunch of Apple II-related chips.

What’s happening now for 0.254? I’m working on creating the “descriptor-based DMA” device that most of the PowerMacs rely on, which hopefully will lead to hearing the boot beep from the PowerMac G3 and the original Bondi blue iMac.

Posted by Arbee in General @ 11:39 am -

3/9/2023

We’re going nuts out here. And Apples, too. II?

The MAME 0.252 release capped off a wild 2 months for Apple emulation in MAME. I started off switching the Apple IIgs emulation to exclusively use the emulated ADB microcontroller, and eliminated a chunk of old simulation code dating back to MESS in 2005. I then extended MAME’s ADB keyboard emulation to include the extra keys that an Apple Extended Keyboard has, including function keys and Insert/Delete and that kind of thing. Kelvin Sherlock helped there with some keypad key issues as well.

A wild new contributor benrg appeared around that time and started off strong with some great simplification of our 8-bit Apple II video emulation. He followed that up by actually improving MAME’s Apple II high-resolution NTSC artifact emulation to better match real TVs, so for instance the “V” in Ultima V’s title screen now looks smoother, as the creators intended. It’s a relatively subtle difference if you aren’t A/Bing it, but it is a definite improvement. Most recently, he’s also improved the Double Hi-Res emulation code (more in terms of code quality than results) and fixed some bugs in the unique double hi-res modes provided in RGB monitor mode on the Apple IIe. benrg’s work caused project leader Vas Crabb to notice that I hadn’t properly gone to a getter/setter model when I split out the Apple II video to a shared file, so I gave that stuff proper separation. No user-visible effects, but the code is cleaner and easier to understand now.

The focus then shifted back to ADB emulation. With the Apple IIgs now sharing it some long standing issues came to light. Devices were always responding to ADB TALK requests even when they had no new data to offer, and the Service Request mechanism used for devices to tell the host that they had new data wasn’t emulated correctly. I was able to fix those issues without angering any of the ADB microcontroller types we now support (IIgs M50740 & M50741, Mac PIC1654, Mac “Egret” 68HC05, Mac “Cuda” 68HC05, and Mac PowerBook M50753) and in fact with them fixed, using ADB Macs now feels subjectively better, especially when switching between the keyboard and mouse.

I also added support for a jumper that was added to ROM 03 Apple IIgs machines that disabled the Control Panel, primarily intended for school environments. With the ADB microcontroller emulated and running it was easy, and it’s something no other released IIgs emulator does. More IIgs excitement comes in the form of adding preliminary support for the “Mark Twain” prototype. The prototype’s improvements included SIMMs for RAM expansion, a built-in SCSI hard disk and DMA SCSI controller, and a built-in Apple “SuperDrive” 1.44MiB floppy. Emulation of those last two features isn’t working yet, but you can still pop any of our working mass storage cards into the MT emulation to take it for a spin.

There was a bug in our emulation of the Macintosh real-time clock chip, which was also in the IIgs where it wouldn’t tell time on Windows host systems but was fine on macOS and Linux. That was fixed, so the Brutal Deluxe Dragon’s Lair games now work for Windows users.

Finishing off, I piggybacked off of some great work by fellow dev Kale bringing up PCI-based PCs by starting work on some PCI-based Macs. There are now preliminary not-working drivers for the PowerMac G3 (the original beige one) and the Bondi blue iMac (the first iMac).

And there’s more to come in 0.253, including fixes for regressions in the IIgs games Zany Golf, GBA Basketball, and Paperboy and NCR5390-family SCSI improvements that make the Mac Quadra 700 able to boot from a hard disk for the first time.

And if you’re curious about what all happened with MAME in 2022, I highly recommend this excellent video by MAME contributor The Mog Miner. There’s even some Apple II and Mac content.

Posted by Arbee in General @ 10:19 pm -
Content
Home
SDLMAME/MESS/HazeMD home
NEStopia Linux home
AO .PSF2 status
AO SDK (source)
My music rips
M1 home
WIP driver downloads
Links
Aaron’s WIP
Audio Overload forum
Audio Overload home
Bobby Tribble's Unemulated Games
Dave Widel's page
David Haywood (Haze)'s WIP
Discrete Logistics
Dox's WIP
FPGA Arcade
Frank Palazzolo's WIP
Kale's MAME WIP
Luca Elia's WIP
MAME E2J, home of BridgeM1
MAME Testers
MAMEdev.org
MAMEWorld
Project 2612 (Genesis VGM rips)
Robiza's WIP
ROP Music Laboratory
Slick's NSFE downloads
SNESMusic
System 16, the Arcade Museum
The MOD Archive
Ville's Development Log
Zophar's music archive

Categories



Archives

March 2023
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
2728293031  


Meta
RSS 2.0
Comments RSS 2.0
WordPress

Powered by WordPress