Hi all,
I’ve been experimenting with emulating PowerPC on Reform with QEMU, trying out both Classic Mac OS (9.2) as well as Mac OS X (10.3 Panther) and wanted to share my findings. First off, the emaculation forum/wiki have been extremely helpful in some regards, so it’s a good jumping-off point for troubleshooting. There’s a lot of documentation out there but not much info for ARM-based Linux machines.
Performance is very slow in either OS 9 or OS X. I’ve played around with some of the optional commands that I thought would help out but I’m unsure they’re doing anything (see below for my recommended config). In OS X, Activity Monitor shows the virtual processor basically fully utilized, while on the host, I barely get 115% CPU utilization for the QEMU process. I don’t think there’s a way to allocate more CPU resources, but I could be wrong. The guest thinks it’s a 900 MHz PPC G4, but I’ve never used a G4 that felt this slow before!
Mac OS 9 does not respond well to the Reform trackball, and that makes using it a terrible experience. There’s some info in the emaculation forum about installing a usb-tablet extension, but that didn’t work for me and instead leaves the cursor immobile.
Networking is configured automatically! I was able to browse using frogfind, which strips away elements from sites and loads a text-only version friendly to retro computers/defunct browsers.
Neither guest OS has working sound, but there’s some effort on the part of the community to fix this with the qemu-screamer fork but I figured I should try whatever QEMU version was native to arm64 before trying this one that seems to be focused on x86 Windows and Mac.
Installers are readily available out there gestures but I won’t link here just in case there are legal issues. The OS 9 install went extremely quickly thanks to an image called OS9Lives, which is set up to directly clone a known working disk with staple apps already installed to your bootable disk image.
For booting the OS X guest, I found the following works best:
qemu-system-ppc -accel tcg -L pc-bios -M mac99,via=pmu -cpu g4 -m 1024 -hda diskx.img -device VGA,edid=on,vgamem_mb=64,xres=1280,yres=720 -g 1280x720x32 -boot c -device usb-tablet
Translation:
QEMU PowerPC translation with acceleration, required bios: qemu-system-ppc -accel tcg -L pc-bios
USB-friendly Mac with G4 processor -M mac99,via=pmu -cpu g4
1 GB RAM -m 1024
Has hard drive a -hda diskx.img
Has a VGA graphics card with 64 MB vram -device VGA,edid=on,vgamem_mb=64,xres=1280,yres=720
Display res 720p @ 32-bit color -g 1280x720x32
Boot from HD image -boot c
(swap for -boot d
when booting from install media)
Has a USB tablet pointing device -device usb-tablet
(this helps smooth out the mouse pointer capture, making so it doesn’t get caught on the edges of the host window/screen)
Add this to the list when mounting an image containing software/during installation:
-cdrom /path/to/diskimage.iso
For OS X, I waited hours and hours working off two install CD images. After the first disk completes installing, the guest will try to restart but boot from the CD again. You need shut it down, change the boot flag to point towards the HDD instead of CD, then “swap” cd images like this:
Go to the monitor interface (CTRL+ALT+2)
type info block
this gives you a list of mounted drives, identify the CD-ROM, prob ide1-cd0
eject ide1-cd0
change ide1-cd0 "/path/to/img2.iso"
The installer should see the new image and finish the installation.