The info this guide is valid but I written a new one about QEMU screamer which emulates Mac OS 9 - OS X 10.14 with sound.

Mac OS 9 in QEMU

QEMU is an open-source emulator for virtualizing computers. Unlike VMWare, it's able to both virtualize CPUs and emulate various CPU instruction sets. It's pretty powerful, free, and has a macOS port. There are alternate versions and different ways to install it. Still, in this example, I'm using Homebrew, a package manager for macOS/OSX that allows you to install software via the CLI and manage easily.

Now, this post wouldn't be very exciting if I tried this on my Mac Pro, but I decided to try it on my MacBook M1. Thus far, the community has succeeded in getting QEMU to install the ARM version Windows, so I decided to do the more silly path and get PPC and X86 working on Apple Silicon. I encountered very little resistance, which surprised me as I haven't seen/read anyone trying this route. It's surprsingly very usable but the usefulness is going to be limited. I was able to play Sim City 2000 on Mac OS 9.2 at a fairly high resolution. For the sake of brevity, I'm going to skip over installing Homebrew on an Apple M1, but you'll want to use the arch -x86_64 method, which requires prepending. I've gotten OS 10.0 and nearly gotten Windows 10 working on my M1.

12/19/21 Update

When I originally wrote this guide, there wasn't a native version of QEMU for Apple Silicon, I've updated this guide so it is now correct


Included below is the instruction for both Apple Silicon and Intel Macs.



Requirements

  • Basic understanding of the terminal in OS X/macOS
  • Apple Silicon (M1) computer (or Intel) Mac
  • Xcode
  • xcode-select (CLI Tools) xcode-select --install
  • Homebrew

Mac OS X in QEMU

Step 1: Install QEMU

Now that there's a universal binary for QEMU for x86 and Apple Silicon, we can install it using the same commands on both architectures. Yay!

    brew install qemu 

Step 2: Create a disk image

You can specify a path in fron to fthe image, but I just used the default pathing. The size is 2G which equals 2 GB. You can get away with much less for OS X OS 9. If you'd like more space, change the size of the simulated HDD.

    qemu-img create -f qcow2 myimage.img 2G 

Step 3: Launching the emulated computer and the tricky part: Formatting the HDD

Now that we have a blank hard disk image, we're ready to go.

qemu-system-ppc -L pc-bios -boot d -M mac99 -m 512 -hda myimage.img  -cdrom path/to/disk/image  

Let's break this down so it's not just magic. The first command is the qemu core emulator, you can use things like 64-bit x86 CPU qemu-system-x86_64 or a 32-bit CPU qemu-system-i386 , but we're using a PPC, so we are using qemu-system-ppc.

Next, we're declaring PC bios with -L pc-bios, I'm unsure if this is necessary. This seems to be the default even in Mac QEMU. After that, the -boot flag declares the boot drive. For those who remember the days of yore, C is the default drive for PCs, D is the default for the CD-Rom like a PC. It's weird, I know. -M is the model flag. It's pretty esoteric, but QEMU uses OpenBIOS, and mac99 is the model for Beige G3s. The lowercase -m is memory, expressed in megabytes, but you can use 1G or 2G for 1 or 2 gigabytes like the format utility. -hda is the image we're using. Finally, -cdrom is the installer image

Step 3.5: Special considerations between operating systems

I discovered that OS X 10.0's installer has a significant flaw: It doesn't have a disk utility. The disk images are black disks thus have no file system. If you want to run OS X 10.0, you'll need to first launch an installer that can format HFS like OS 9 or later versions of OS X, run the disk utility, format the image and then exit out of the emulator. The process would look like this:

qemu-system-ppc -L pc-bios -boot d -M mac99 -m 512 -hda myimage.img  -cdrom path/to/disk/macosx10.1 or macOS9  

Then format the drive from the utility, quit the emulator (control-c on the terminal window).

qemu-system-ppc -L pc-bios -boot d -M mac99 -m 512 -hda myimage.img  -cdrom path/to/disk/macosx10.0

Tiger and Leopard requires USB emulation so you'll need to add -device flags for a usb keyboard and a usb mouse, also both like a few extra -prom-env flags.

qemu-system-ppc -L pc-bios -boot d -M mac99  -cpu G4  -m 512 -hda myimage   -cdrom /path/to/disk  -device usb-kbd -device usb-mouse -prom-env 'auto-boot?=true' -no-reboot -prom-env 'vga-ndrv?=true'  -prom-env 'boot-args=-v'

Power PC Leopard I can get to boot but it crashed twice during installs, this could be

Step 4: after the installer fininshes

You will end up seeing a failed boot screen after the installer finishes. This is normal. Either quit the QEMU instance or use control-c in the terminal to close it. Now that it's installed, we want to boot off the internal drive.

qemu-system-ppc -L pc-bios -boot c -M mac99 -m 512 -hda myimage.img    

MacOS 9 seems to do slightly better when adding the via=pmu and specifying the graphics.

qemu-system-ppc -L pc-bios -boot c  -M mac99,via=pmu  -g 1024x768x32  -m 512 -hda os9.img  

Step 5: mounting disk images

There's not a lot to do with an OS without software. You can mount plenty of disk image formats

qemu-system-ppc -L pc-bios -boot c -M mac99 -m 512 -hda myimage.img  -cdrom path/to/disk

Sim City 2000 in QEMU on Apple Silicon

Bonus round: Trying for x86 64 Windows 10

Windows in QEMU on Apple Silicon

Step 6: Multi CD-Rom Installs or swapping Disk Images

Older applications and OS installers require mutliple disk images. This can be done from via the CLI inside QEMU.

On the QEMU window press:

  • Control-Alt-2 to bring up the console
  • change ide1-cd0 /path/to/image
  • Control-Alt-1 to bring back the GUI

Thus far my Windows 10 experiment has been a lot less successful, I've gotten through the installer (it's unbearably slow) but it seems to hand on booting. It looks very feasible. I might have better luck using the 32 bit verison of windows.

Windows in QEMU on Apple Silicon

qemu-system-x86_64  -L pc-bios -boot d -m 2048 -hda myimage.img -cdrom  Win10_20H2_v2_English_x64.iso  

QEMU with Sound

Check my guide on QEMU screamer which emulates Mac OS 9 - OS X 10.14 with sound.

</section>