About PearPC
PearPC is an architecture-independent PowerPC platform emulator capable of running most PowerPC operating systems.
Features
- License: GPL
- Programming language: C++, C and (on x86 platforms) assembler
- Supported host platforms: POSIX-X11 (Linux, ...), Win32
- 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.
- CPU GENERIC: Sort of G3, no altivec yet. A portable (but unported :-) CPU. Using this CPU, the client will run about 500 times slower than the host. It features a modest command-line debugger.
- CPU JITC-X86: Sort of G3, no altivec yet. 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.
Limits
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).
Because the author has only access to a little-endian machine, PearPC will most likely only run on little-endian architectures. This shouldn't be hard to fix and the author would fix this himself if he such hardware. (You can donate some big-endian hardware to get this fixed!)
Equally, PearPC will probably only run on 32-bit architectures. This shouldn't be hard to fix either. (You can donate...)
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 Altivec support yet but being worked on.
No LBA48 (but LBA). Currently no support for hard disks greater than 128 GiB. Disks > 4GiB are not tested very well.
Plans
Fix remaining bugs.
Handle errors gracefully.
Altivec support (JITC-X86 via MMX and SSE?).
Improve JITC-X86, exploit the i386 MMU.
Soundcard emulation.
...
留言列表