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

10/1/2023

Important advisory on MAME 0.259

MAME 0.259 will lock up the app if you use 3.5″ floppies on at least the Apple II and Mac. This may also impact other systems using 3.5″ disks such as the PC, Amiga, and Atari ST, but I haven’t verified that yet. MAME 0.258 does not have this issue, so hopefully we will be able to have it fixed shortly in the git master.

Posted by Arbee in General @ 8:04 pm -

9/26/2023

That ain’t workin’, that’s the way you Apple

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.

Posted by Arbee in General @ 2:31 pm -

5/31/2023

Yes we have Apples, we have Apples today

MAME 0.255 is out today, and hey, we’ve got some Apple updates in it.

On the Apple II side, we fixed the IOUDIS softswitch existing on the IIe (it doesn’t, thanks to TomCh for hardware test results) and the 80COL switch now triggers a raster split (which improves Deater’s latest stuff).

On the 8-bit Apple IIs, holding down (Control-)Reset previously would continue to reset and release the 65(C)02 every frame until you let go, at which point the entire reset would take effect. This has been changed so that while you hold down (Control-)Reset, the 65(C)02 RESET line is held until you let go (which is the behavior of the real machines). Additionally, the soft switches flipped off by resetting are now accurate to what’s in Sather’s “Understanding the Apple II” (no switches are reset) and “Understanding the Apple IIe” (all MMU switches and the language card now reset to power-on state). This fixes a bug in Total Replay when you use Reset to return to the menu. (Thanks to xot for the initial report on this that was relayed to me!)

For the Apple IIgs, the Ensoniq ES5503 emulation now supports the little-used (not at all on the IIgs until a recent tech demo by Kelvin Sherlock, and I only found one factory patch on the Ensoniq ESQ-1 synth that uses them) sync and AM modes. These allow oscillator hard-sync, which was well known to C64 SID musicians, and Amplitude Modulation mode, which allows you to do volume envelopes at a per-sample resolution.

Over in Mac world progress continued on the PCI PowerMacs. Behavior of the PCI bridges (Apple’s custom “Bandit” ASIC and the Motorola MPC-106) was greatly improved to properly handle the endianness transitions and to map RAM into the PCI memory space correctly.

The I/O ASICs (“Grand Central”, “O’Hare”, “Heathrow”, and “Paddington” – you may detect a theme) got preliminary DMA support and the ability to hook up to the various audio I/O chips. This allowed the Power Macintosh G3 and the iMac to play their startup chimes. The I/O chips also got the correct 8K of NVRAM for Open Firmware’s use, and it saves to disk. And a very preliminary emulation of the ATI Rage series chips went in which allowed both the Power Macintosh G3 and iMac to show their initial white screen.

All of this together means that you can now access the Open Firmware command prompt on the Power Macintosh G3, and type commands and get responses. Run “pwrmacg3” and when you hear the startup chime, press and hold down the Command, Option, O, and F keys. (On PC keyboards Command should be Left Alt and Option should be Right Alt; on Mac keyboards those are Left Option and Right Option). When the Open Firmware console appears, you can type commands and get responses. The Mac Open Firmware Wiki explains some of the available commands.

Posted by Arbee in General @ 9:54 am -

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 -
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 2024
M T W T F S S
 123
45678910
11121314151617
18192021222324
25262728293031


Meta
RSS 2.0
Comments RSS 2.0
WordPress

Powered by WordPress