A complete, single-script solution for setting up a Mac OS 9.2.1 PowerPC emulation environment on Debian Linux with a beautiful web-based control panel.
- Mac OS 9.2.1 PowerPC emulation via QEMU
- Multiple CPU options: G3, G4, PowerPC 750/7400/7410/7450
- Configurable RAM: 128MB to 8GB
- Multiple display resolutions: 640ร480 to 1920ร1080
- Sound support: ES1370 emulation
- Network support: User mode NAT or disabled
- Authentic Mac OS 9 Interface: Platinum-style UI with classic window styling
- Real-time system monitoring: CPU, memory, disk usage
- QEMU control: Start, stop, restart emulator
- Configuration management: All settings via web interface
- Hard drive management: Create, add, remove virtual drives
- Pointer control: USB Tablet, USB Mouse, or PS/2 modes
- Custom Plymouth theme: Mac boot image during startup
- GRUB customization: Mac boot screen
- Auto-login: Automatic login and QEMU startup
- Full-screen emulation: Boots directly into Mac OS 9
- JSON configuration:
/opt/retro-mac/qemu-config.json - Idempotent installation: Safe to run multiple times
- Self-healing: Detects and fixes configuration issues
- Auto-updates: Updates existing installations with new features
- OS: Debian 13 (Trixie) or compatible
- Architecture: x86_64
- RAM: Minimum 2GB recommended
- Disk Space: 2GB + space for Mac OS 9 ISO (650MB)
- Network: Internet connection for initial setup
# Clone the repository
git clone https://github.com/yourusername/makeRetro.git
cd makeRetro
# Run the setup script as root
sudo ./setup-retro-mac.shThe script will:
- Install all required packages (Apache, PHP, QEMU, Plymouth, X11, LightDM)
- Download Mac OS 9.2.1 ISO
- Configure boot screens and auto-login
- Set up the web control panel
- Create systemd service for auto-start
After installation completes:
- Reboot to see the custom boot screens
- System will auto-login and start Mac OS 9
- Access web control panel at
http://[your-ip-address]
Navigate to http://[your-ip-address] to access the control panel.
Features:
- Control Tab: Start/stop QEMU, view system status
- Configuration Tab: Adjust RAM, CPU, display settings
- Drives Tab: Manage virtual hard drives
- Advanced Tab: Network, pointer control, custom arguments
# Start the emulator
sudo systemctl start qemu-mac
# Stop the emulator
sudo systemctl stop qemu-mac
# Check status
sudo systemctl status qemu-mac
# View logs
sudo journalctl -u qemu-mac -f
# Edit configuration
nano /opt/retro-mac/qemu-config.jsonConfiguration stored in /opt/retro-mac/qemu-config.json:
{
"ram": "512",
"cpu": "g4",
"machine": "mac99,via=pmu",
"resolution": "1024x768x32",
"fullscreen": true,
"boot_device": "d",
"cdrom": "/opt/retro-mac/macos_921_ppc.iso",
"hard_drives": [],
"network": "user",
"sound": true,
"pointer_mode": "usb-tablet",
"grab_on_click": true,
"custom_args": ""
}- usb-tablet: Seamless mouse integration (default)
- usb-mouse: Traditional grab/ungrab mode
- ps2: Legacy PS/2 mouse
Via web interface or command line:
sudo qemu-img create -f qcow2 /opt/retro-mac/drives/macos_hd.qcow2 2G- Setup Script:
/home/retro/makeRetro/setup-retro-mac.sh - Configuration:
/opt/retro-mac/qemu-config.json - Mac OS 9 ISO:
/opt/retro-mac/macos_921_ppc.iso - Virtual Drives:
/opt/retro-mac/drives/ - Startup Script:
/opt/retro-mac/start-mac.sh - Web Interface:
/var/www/html/index.php - Service File:
/etc/systemd/system/qemu-mac.service
sudo ./setup-retro-mac.sh # Script will detect and fix issues
# Or manually restart LightDM
sudo systemctl restart lightdm# Check logs
sudo journalctl -u qemu-mac -n 50
# Check configuration
cat /opt/retro-mac/qemu-config.json
# Test manually
DISPLAY=:0 sudo -u retro /opt/retro-mac/start-mac.sh# Check Apache status
sudo systemctl status apache2
# Restart Apache
sudo systemctl restart apache2# Rebuild initramfs
sudo update-initramfs -u
# Check theme is set
sudo plymouth-set-default-themeReplace /opt/retro-mac/images/macTest.png and re-run setup script.
Edit /var/www/html/index.php - uses inline CSS with Mac OS 9 Platinum styling.
Use the web interface Advanced tab or edit custom_args in the JSON config.
- QEMU: PowerPC system emulation
- Apache2 + PHP: Web control panel
- Plymouth: Boot splash screen
- GRUB: Boot loader customization
- LightDM + Openbox: Minimal X11 environment
- systemd: Service management
- 1762 lines of robust, self-healing bash code
- Idempotent: Can be run multiple times safely
- Smart detection: Identifies and fixes existing installations
- User detection: Automatically uses non-root user for security
- Validation: Checks all configurations and fixes issues
Contributions are welcome! Please feel free to submit pull requests or open issues.
git clone https://github.com/yourusername/makeRetro.git
cd makeRetro
# Make your changes to setup-retro-mac.sh
sudo ./setup-retro-mac.sh # Test your changesThis project is open source and available under the MIT License.
- QEMU team for PowerPC emulation
- Classic Mac OS community
- Debian project
For issues, questions, or suggestions:
- Open an issue on GitHub
- Check the troubleshooting section
- Review the todolist.md for development history
Made with โค๏ธ for the Retro Computing Community
Experience the nostalgia of Mac OS 9 on modern hardware!