The Mac OS 9 app is a real Mac in a window: an emulated Power Mac G4 running Mac OS 9.2.2, with a hard disk of its own. exe's desktop only resembles a classic Mac. This one is the system itself, with its Finder, its control panels and the software written for it.
The Mac is not one of exe's Linux virtual machines. It is emulated in software and needs no hypervisor, so it also runs on a node that cannot run VMs.
qemu-system-ppc and qemu-img first.Subsequent launches use the saved installation: opening the app starts the Mac from its disk.
Setup details opens the steps and live download progress in a compact in-app dialog over the Mac. Close it with OK or Escape; setup continues, and the guest display keeps its size and connection.
Setup can be paused and retried, and closing the window keeps both setup and a running Mac alive.
The app's own buttons are in a row above the Mac's screen. The status line at the foot names the hardware, a PowerPC G4 with 512 MB of memory, and says whether the display is connected.
| Button | What it does |
|---|---|
| Start Mac | Starts the Mac when it is shut down. During setup the same button reads Continue setup or Resume installer. |
| Pause setup | Stops a setup that is under way. |
| Setup details | Shows the setup steps and the download's progress. |
| Mac keys… | Sends a common Command-key shortcut to the Mac, or wakes its display. |
| Full screen | Gives the Mac more room. |
| Sound off | Enables the Mac's sound in your browser, where the node has audio support. |
| CD… | Shows the mounted CD and the disc images you can mount. |
Click the Mac's screen to type in it.
The pointer follows your browser cursor directly, including when you leave and re-enter the window. A bundled open-source USB tablet driver loads at boot; no guest installation is needed. Mouse-wheel scrolling is not supported by that driver; use the Mac's scrollbar controls.
Use Mac keys… for common Command-key shortcuts: ⌘ Q to quit, ⌘ W to close, ⌘ O to open and ⌘ L to open a location.
The Mac's Monitors control panel offers only 640×480, 800×600 and 1024×768, with 800×600 as the default.
The app window fits the selected guest resolution automatically. Each guest pixel occupies a whole number of physical screen pixels (1×, 2×, 3×, and so on), including at Windows' 125% or 150% display scaling. The largest crisp size that fits is used; this can be smaller than a fractionally enlarged display. There is no separate grow tile. If even 1× will not fit, the display shrinks proportionally to keep the whole Mac visible.
Use Full screen for more room. Full screen uses the same scaling and adjusts when you move between monitors or change browser zoom.
If the connected display turns black after being idle, choose Mac keys… → Wake display, or press Shift with the Mac focused. This wakes Energy Saver without typing or restarting the guest; mouse movement alone may not wake it.
To keep the Mac awake, open Apple menu → Control Panels → Energy Saver inside the guest and set system sleep to Never. Under Show Details, also disable a separate display-sleep timer if one is enabled.
Click CD… in the toolbar to see the full mounted CD filename, mount an available disc image, or Eject it. The toolbar also shows the filename when space permits. On a phone, tap the CD glyph to see its full filename and controls.
To put a new disc in the drive:
Images stay on this node and existing files are kept when filenames match. Changes take effect without restarting the Mac, and the displayed filename follows ejects inside Mac OS 9 too. After a Mac restart, mount the desired CD again.
If the Mac locks the disc, eject it in Finder first, or close programs using it before choosing Force eject. Force eject can leave the old volume visible in Finder; restart the Mac if that happens.
Click Sound off to enable sound in your browser; the button changes to Sound on. Click it again to mute. Browser playback needs this first click.
The Mac's clock starts at this machine's own local date and time, so a browser in the guest judges today's certificates against today's date and HTTPS works without a visit to Date & Time. Only the installation boot is pinned to 2003, where the Universal installer and the era's software expect to be.
The installed guest has a sungem Ethernet adapter with outbound NAT and DHCP; networking is disabled while booting the installer. Classic HTTP browsers work; modern HTTPS compatibility depends on the guest browser.
The runtime, installer, setup progress and disk live in ~/.exe/mac-os9/ (or $EXE_HOME/mac-os9/), outside app-data sync: the Mac belongs to this node and is not copied to joined ones.
The display uses private local sockets and the same API token as exe. No public VNC port is opened.
The API is GET /v1/macos9, POST /v1/macos9/start, /cancel and /finish, the binary WebSocket at /v1/macos9/console, and for the CD drive GET and POST /v1/macos9/cd and POST /v1/macos9/cd/upload.