Advanced Mac Substitute

Advanced Mac Substitute

Advanced Mac Substitute is an API-level reimplementation of classic Mac OS. It runs 68K Mac applications in an emulator without an Apple ROM or system software.

System’s Twilight running in Advanced Mac Substitute.

Lode Runner running in Advanced Mac Substitute

The opening of the prologue cinematic from The Fool’s Errand running in Advanced Mac Substitute

Amazing running in Advanced Mac Substitute (point to see the solved maze)

Unlike traditional emulators, Advanced Mac Substitute doesn’t emulate the hardware on which an operating system runs (except for the 680x0 processor), but actually replaces the OS — so it launches directly into an application, without a startup phase.

Welcome to Advanced Mac Substitute. (This is an application, not a real loading screen.)

Advanced Mac Substitute is a factored application. The backend includes a 68K emulator and should build and run on any POSIX-like system. The frontend is a generic bitmapped terminal abstraction which has been ported to four platforms so far: classic Mac OS, Mac OS X, Linux framebuffer, and Android.

Solitaire running in Advanced Mac Substitute on an Android phone

Advanced Mac Substitute is capable of running several applications written for the original Macintosh computer. Examples include four games from 1984: Amazing, Solitaire, Missile, and IAGO.

Missile running in Advanced Mac Substitute (point to see the next frame)

IAGO running in Advanced Mac Substitute (point to see who won)

Current support includes 1-bit-deep graphics, regions, circles and roundrects, lines, cursors, GrafPorts, text, windows, controls, menus, dialogs, and more.

Source

Source code for Advanced Mac Substitute is on GitHub.

If you’re feeling adventurous, you can try out Advanced Mac Substitute in the X Window System, in a Linux framebuffer console, or in Mac OS X (versions from 10.4 through 10.13, and 10.14 with homebrew).

Nyanochrome Cat running in Advanced Mac Substitute (point to animate)

(Older documentation has moved while revision is under way.)