PearPC - PowerPC Architecture Emulator

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
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 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.

...



arrow
arrow
    全站熱搜

    Bluelove1968 發表在 痞客邦 留言(0) 人氣()