PearPC is an independent architecture PowerPC platform emulator capable of running most PowerPC operating systems. Features is the point we will talk about first.License: GPL. Programming language: C++, C and (on x86 platforms) assembler.
Supported host platforms: POSIX-X11 (Linux, …), Win32. The following operating systems were tested and run (to some extent) in PearPC (ie. as clients): Mandrake Linux 9.1 for PPC installer: Runs well. Mandrake Linux 9.1 for PPC after installation: Hard to boot. Runs very well afterwards. Darwin for PPC: Runs well. Mac OS X 10.3: Runs well with some caveats. OpenBSD for PPC: Crashes while booting (accesses PCI in an unsupported way). NetBSD for PPC: Crashes while booting. AIX for PPC: Some people ask about that. PearPC emulates the following hardware: CPU GENERIC: Sort of G4, including altivec.
A more or less portable CPU. Using this CPU, the client will run about 500 times slower than the host. As of version 0.4 the generic CPU emulation runs well even on big-endian and 64 bit platforms. CPU JITC-X86: Sort of G4, including altivec. A very fast CPU for x86 systems that translates PowerPC instructions into x86 instructions on-demand. By caching these translations, a lot of speed is gained.
Using this CPU, the client will run about 15 times slower than the host. Only works on x86 hosts. PCI-Brige: A barebone PCI-Bridge, enough to work with. IDE-Controller: Sort of CMD646 with bus-mastering support. You can attach IDE-harddisk(s) and/or IDE-CDROM(s) by specifying files (or devices for UN*X) from your host machine.. PIC: A programmable interrupt controller (kind of Heathrow). VIA-Cuda: With attached Mouse and Keyboard. Network Controller: Emulates a 3COM 3C90x or RealTek 8139 via hosts that support an ethernet tunnel. NVRAM: Capable of storing 8KiB non-volatile memory. USB: A placebo USB-hub. Sufficient to make the client think that it has USB support. PROM: Sort of OpenFirmware. It’s ugly and contains a lot of hacks but it allows to boot Yaboot and BootX from HFS/HFS+ partitions.
Now we will answer the questions which you can wonder.
Can I run Mac OS 9.x.y?
So far no one has succeeded in doing that. Have a look at the forums.
Can I run Mac OS 7/8?
Yes you can, but not using this project. Use Basilisk.
Please read this carefully since all important steps to get PearPC running are described here.
Important naming convention:
- Host: The system where PearPC runs (i.e. your system)
- Client: The program that is run using PearPC
Installation of binaries
PearPC doesn’t have an installer, you must install it by yourself.
Compilation from source
You will probably need to have GCC 3.x installed for the compilation to work. GCC 2.x should also work (if not write a patch). I don’t recommend to use 3.0 <= GCC < 3.3 since they have severe bugs with -fomit-frame-pointer
Untar/gzip/bzip2 the downloaded file. Enter the created directory. Then compile by executing:
$ ./configure –enable-ui=$UI –enable-cpu=$CPU && make
where $GUI is either x11, win32 or sdl and $CPU is either generic or jitc_x86. If you have an x86 processor you should use $CPU=jitc_x86. Everybody else uses $CPU=generic.
As of PearPC 0.3.0 the default configuration options are picked depending on your system, so a simple
$ ./configure && makeshould be enough in most cases.
Continue with Configuration.
In the freshly created directory, make a copy of the file ppccfg.example. This copy is now your configuration file. It’s recommended to give this file a descriptive name (e.g. macosx.pearpc).
You should then set up a disk and/or CDROM drive.
Now edit your configuration file using a text editor. The layout for configuration files is described here. You will need the file name(s) you have kept in mind (or written down) while setting up disks and/or CDROM drives. Look for the following comment in your configuration file: PCI IDE Config. Drive type will be set according to file extension: .img: Harddisk (filesize must be multiple of 516096) .iso: CD-Rom. Or you can override this by specifying the type via. pci_ide0_master_type / pci_ide0_slave_type
If you have set up a disk, enter it’s filename here: pci_ide0_master_installed = 1pci_ide0_master_image = “DISKFILENAME”. pci_ide0_master_type = “hd”
Otherwise make sure you have
pci_ide0_master_installed = 0
If you have set up a CDROM drive, enter it’s filename here:
pci_ide0_slave_installed = 1
pci_ide0_slave_image = “CDROMDRIVEFILENAME”
pci_ide0_slave_type = “cdrom”
Otherwise make sure you have
pci_ide0_slave_installed = 0
Windows users: You can’t just start PearPC by double clicking. Launch command (Windows 9x) or cmd (Windows 2000/XP), and start PearPC manually:
C:\your\install\dir> ppc CONFIGFILENAME
where CONFIGFILENAME is the name of your configuration file. If you want more luxury choose a special file extension for the config files (e.g. .pearpc) and associate ppc.exe with this extension. Then you can start PearPC by double clicking on your configuration file.
UN*X folks: In your source directory execute:
$ src/ppc CONFIGFILENAME
Keyboard: If the PearPC window is focused (active), most of your keypresses are sent to the client. Beware however that not all of them do: e.g. window manager keypress-combinations (Alt-Tab on Windows, in KDE, Ctrl+Esc). If you want to send these special combinations, press F11 once before and after entering the concered keys. (Example: In order to send Ctrl-Alt-Del to the client you should press F11, then Ctrl, then Alt, then Del and finally F11.) PearPC uses a raw keyboard layout. So if you want a specific keyboard layout (e.g. a german) you have to configure this in the client. Sometimes the keyboard behaves strangely. This normally happens after switching windows (from PearPC to another application or vice versa) with Alt-Tab (or whatever your window manager uses). You can fix these problems by pressing Alt+Ctrl+Shift (“The poor man’s reset”).
Mouse: The mouse of the client is completely independent of your host mouse, you can only use one at a time. To switch between both modes press F12. The window title will indicate in which mode you are. PearPC currently only supports two-button mice (i.e. middle-button click and the scrollwheel are ignored).