Unlike DOS, early versions of Windows, and most *nixes, the classic Mac operating system is weird. Contained in the ROM are subroutines to draw windows, pop up dialog boxes, and other various tasks purely related to the UI. On other systems, this would be separate from the BIOS, but in your Mac from the 80s, everything is baked into the ROM and hidden deep in the operating system. This has caused many problems for emulation; you can’t emulate an old Mac without a ROM or without a real installation of the operating system. Where BeOS — a cool but entirely forgettable operating system — has an Open Source reimplementation of the programming API, there’s nothing like that for a computer that at one point had a ten percent market share. This is weird, and we’ve all been waiting for someone to come up with an Open Source reimplementation of the Macintosh Toolbox, the API that’s responsible for everything from LoadRunner to Shufflepuck.
Now that day has finally come. The Advanced Mac Substitute is an API-level reimplementation of the classic Mac OS. You can now run classic Mac apps on Linux and Android without using an Apple ROM or Apple system software.
The Advanced Mac Substitute (AMS) is a project from [Josh Juran] to run old (pre-OS 7) Mac software without an Apple ROM. For the last twenty years, Macintosh emulators have required Apple ROMs and/or installation media because the API calls will redirect to the ROM. Unlike other emulation projects, the AMS does not attempt to emulate the hardware, except for the 68k processor. It simply launches directly into an application with the frontend being a generic bitmap terminal. This means there is no OS to speak of, but that also means we finally get flatpak for the classic Mac OS.
AMS is still in the very early phases of development; keyboards don’t work on some systems, and it doesn’t work on the latest versions of MacOS at all. Additionally, there’s no support for System 7 applications. That said, this is an excellent advance in the state of Macintosh emulation. If you’d like an example of how cool this could be, go play some Oregon Trail and tell me how awesome playing Shufflepuck or Glider on a webpage would be.