PearPC is an architecture-independent PowerPC platform emulator capable of running most PowerPC operating systems.
- 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. See FAQ.
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.
While the CPU emulation may be slow (1/500th or 1/15th, see above), the speed of emulated hardware is hardly impacted by the emulation; the emulated hard-drive and CDROM e.g. are very fast, especially with OS that support bus-mastering (Linux, Darwin, Mac OS X do).
A lot of unimplementated features are fatal (i.e. will abort PearPC).
Timings are very still a little bit inaccurate. Don't rely on benchmarks made in the client.
PearPC lacks a save/restore machine-state feature.
No LBA48 (but LBA). Currently no support for hard disks greater than 128 GiB. Disks > 4GiB are not tested very well.
- Fix remaining bugs.
- Handle errors gracefully.
- Improve JITC-X86, exploit the i386 MMU.
- Soundcard emulation.