# PCSX2

PCSX2 ist ein PlayStation-2-Emulator für Windows, Linux und macOS. Es ist möglich, viele PlayStation-2-Spiele zu spielen, auch wenn Limitierungen bei der Geschwindigkeit komplette Spieldurchläufe unter Umständen unpraktikabel machen. Das Hauptproblem bei der Emulation der PlayStation 2 besteht in der synchronen Emulation der einzelnen Prozessoren auf gängigen PC-Architekturen. Obwohl jeder einzelne Prozessor perfekt emuliert werden kann, ist es sehr schwierig, die Synchronisation und das Timing zwischen ihnen akkurat zu halten (auch Sony hatte Schwierigkeiten, den eigenen PS2-Emulator für die Playstation 3 zu perfektionieren).
PCSX2 nutzt wie das Vorgängerprojekt PCSX ein Plug-in-System, das mehrere Funktionen vom Kern des Emulators trennt. Es werden Plugins für Grafik, Controller, CD/DVD-Laufwerk, Tonausgabe und die FireWire-Schnittstelle unterstützt. Verschiedene Plugins können verschiedene Resultate in den Bereichen Kompatibilität und Leistung erzielen. Zur Nutzung des PCSX2 Emulators ist ein Original-BIOS einer PlayStation 2 notwendig. Dies kann jedoch aus urheberrechtlichen Gründen nicht mit dem Emulator mitgeliefert werden und muss deshalb mit einem Hilfsprogramm von einer echten PS2 bezogen werden.
Der Emulator befindet sich aktiv in Entwicklung und wird stetig verbessert. Ab Version 0.9.6 wurde die Benutzeroberfläche stark verändert und auf Nutzerfreundlichkeit ausgelegt. Die Konfiguration erfolgt in wenigen Schritten und ist leicht verständlich. Die Lokalisierung wurde für viele Sprachen realisiert.

## Leistung

In älteren Versionen (vor 2006) lag die Geschwindigkeit zwischen 2 und 15 Bildern pro Sekunde, je nach Spiel, eingesetzter PC-Hardware und Plugin-Konfiguration. Das BIOS der PlayStation 2 war dabei eine der am schnellsten emulierten Software. Seit dem Erscheinen der Version 0.9 im April 2006 ist die Leistung stark gestiegen. Die meisten 2D-Spiele und Menüs liefen mit 60 bis 120 fps, und mit der neuesten Version kombiniert mit einem relativ neuen PC stieg auch die Leistung von 3D-Spielen auf das Niveau der nativen PS2-Geschwindigkeit von 60 fps (bei NTSC-Spielen) bzw. 50 fps (bei PAL-Spielen) und darüber hinaus an. Mit der Version 0.9 unterstützte PCSX2 auch erstmals Dual-Core CPUs, was zu einem beträchtlichen Geschwindigkeitsanstieg auf Systemen mit Dual-Core Prozessoren führte. Kombiniert mit einer entsprechend leistungsfähigen Grafikkarte (Radeon-HD4000-Serie oder höher bzw. GeForce 9 oder höher) ist es damit möglich, populäre Spiele wie Final Fantasy X fast durchgängig mit nativer Geschwindigkeit zu spielen. Final Fantasy X ist ab Version 0.9.2 vollständig spielbar. Hinzu kommen weitere Spiele die mit oder auch ohne Einschränkungen vollständig spielbar bzw. komplettierbar sind. Dazu zählen auch namhafte Titel wie Resident Evil 4 und Kingdom Hearts. Für genauere Angaben kann man auf der Entwicklerseite eine Kompatibilitätsliste einsehen, welche den Status (intro, menue, ingame, playable) des jeweiligen Spieles angibt. Der Status playable zeichnet ein Spiel als komplett durchspielbar aus, wobei dieser Status je nach Plugin-Konfiguration und verwendeter Revision des Emulators variieren kann.

## Falsche Annahmen zur Geschwindigkeit

Ein häufiges Missverständnis bezüglich PCSX2 ist die Annahme, dass ein Prozessor mit einer sehr hohen Taktrate, wie der Intel Pentium 4 oder der AMD Athlon XP (mit Taktraten von bis zu 3,8 GHz), keine Probleme haben sollte, PlayStation-2-Spiele bei voller Geschwindigkeit zu emulieren. Die PS2 hat mehrere Prozessoren, darunter einen MIPS R5900 (Emotion Engine), einen MIPS R3000A, zwei Vektoreinheiten und einen Grafikchip (Graphics Synthesizer). Mit Ausnahme des MIPS R5900 (getaktet mit 294,912 MHz) und des MIPS R3000A (getaktet mit 36,864 MHz, einstellbar auf 33,8688 MHz für PlayStation-1-Emulation) laufen alle anderen Chips mit einem Bustakt von 147 MHz. Es gibt jedoch viele Gründe, warum die Emulation der PS2 auf einem PC so schwierig ist. Die Unterschiede zwischen der x86-Architektur und der PS2-Architektur sind beträchtlich und die Emulation von mehreren Recheneinheiten, die parallel auf einem einzigen Prozessor laufen, ist ziemlich komplex. Aus den Mehrkern-Prozessoren von modernen PCs einen Vorteil zu ziehen, gestaltet sich sogar noch schwieriger, da die enge Synchronisation zwischen den PS2-Prozessoren beibehalten werden muss.

## Multicore-Prozessor-Unterstützung

In der aktuellen Version werden bis zu drei Threads und damit bis zu drei Prozessorkerne unterstützt.

## 64-Bit-Erweiterungen

Mit der zunehmenden Verbreitung von 64-Bit-Prozessoren haben die Entwickler mit der Arbeit begonnen, die Möglichkeiten der 64-Bit-Erweiterungen zu nutzen, um damit potentiell die Geschwindigkeit von PCSX2 zu steigern. 64-Bit-Versionen für Linux gibt es ab Version 0.9.3. Diese und Version 0.9.4 wird für die Verwendung unter Linux empfohlen. Für Microsoft Windows ist mit der Version 0.9.4 PCSX2 ebenfalls 64-Bit fähig. Kurz nach dem Release wurde der offizielle Build jedoch zurückgezogen, da er nicht die erhoffte Leistungssteigerung brachte und sogar langsamer als die 32-Bit-Version war. Für Windows wird somit weiterhin der Einsatz der 32-Bit-Variante empfohlen.
Um die 64-Bit-Version zu nutzen, werden ein 64-Bit-Betriebssystem und entsprechend kompatible Hardware vorausgesetzt. Dazu zählen verschiedene Linux-Distributionen und die 64-Bit-Windows-Versionen.

## Entwickler-Version

Aktuelle Entwickler-Versionen können über die Git-Seite heruntergeladen und getestet werden.

## Netplay

Während des Entwicklungszyklus zur Version 0.9.4 begann einer der Entwickler, PCSX2 internetfähig zu machen, so dass Spieler Onlinespiele für die PlayStation 2 mit anderen Spielern spielen können, auch wenn diese auf einer PlayStation-2-Konsole spielen. Für die Spiele XIII und Monster Hunter wurde bestätigt, dass diese die Netplay-Funktion nutzen können. Mehr kompatible Spiele werden zum Erscheinungsdatum der Version 0.9.7 erwartet. Des Weiteren gibt es ein HDD-Plugin (MegaDev9), welches für manche Onlinespiele, die Inhalt streamen, (wie z. B. Final Fantasy XI) benötigt wird.

## Plugins

Der Programmierer Gabest, bekannt für den Open-Source-Player Media Player Classic, arbeitete von Ende 2007 bis Oktober 2009 an seinem Grafikplugin GSdx.
Neben der Unterstützung für Multi-Threaded GS (MTGS) mode hat er auch noch andere grobe Grafikfehler behoben, und bei einigen Spielen ist die Geschwindigkeit deutlich besser im Vergleich zur alten Version von GSdx9 oder ZeroGS. Außerdem bietet das Plugin die Möglichkeit zum Ändern der internen Direct3D-Auflösung, auch bekannt als render target. Somit erzielt das Plugin bei einer höheren internen Auflösung bessere Geschwindigkeiten im Vergleich zu ZeroGS mit erhöhter Antialiasing-Stufe und fast identischer Bildqualität. Das Grafikplugin unterstützt Hard- und Software-Rendering. Als Schnittstelle kann Direct3D 9 und 10 oder eben Software (hier wird ausschließlich über die CPU gerendert, wobei mehrere Threads genutzt und selbst festgelegt werden können) ausgewählt werden.
Gabest entwickelte auch die Plugins CDVDolio (CD/DVD Plugin mit Unterstützung für Double Layer Medien bzw. Images) und Xpad, welches eine reibungslose Kommunikation und Nutzung eines Xbox-360-Controllers gewährleistet.
Weitere häufig genutzte Plugins sind:
* ZeroGS
* USBqemu
* SPU2-X
* MegaDev9

## Speedhacks

Zur Verbesserung der Performance einzelner Spiele gibt es die Möglichkeit sogenannte Speedhacks einzusetzen. Diese ermöglichen es z. B. die (Emotion Engine) zu „untertakten“ (auf Softwarebasis), Berechnungen der Vektor-Einheiten vereinzelt zu überspringen oder auch eine Vektor-Einheit auf einen einzelnen Kern auszulagern. Wird die (Emotion Engine) untertaktet, sind weniger Berechnungen durch den zur Emulation genutzten Prozessor notwendig und somit steigert sich die Geschwindigkeit des zu emulierenden Spieles. Vereinzelt gibt es jedoch Spiele die den vollen Takt benötigen (als Beispiel sei Metal Gear Solid 3: Snake Eater genannt). Hier ist der Einsatz des Emotion Engine Speedhacks kontraproduktiv. Generell gilt, dass der Einsatz von Speedhacks immer zu Lasten der Kompatibilität geht und auch Grafikfehler oder Abstürze verursachen kann. Vom Anwender ist hier eine hohe Experimentierfreudigkeit gefragt, da das Zusammenspiel von Plugins, Revision, Spiel und Speedhacks nahezu unendliche Kombinationsmöglichkeiten bietet. Die Performance variiert je nach Anzahl und Art der genutzten Speedhacks.
Möglich ist auch, eine von vier Voreinstellungen zu nutzen. Performancesteigerungen von bis zu 50 Prozent sind möglich.