von Michael Krosta,

PS3: Hardware- statt Software-Emulation?

PlayStation 3 (Hardware) von Sony
PlayStation 3 (Hardware) von Sony - Bildquelle: Sony


Unter Berufung auf einen Artikel im japanischen Technikmagazin Ultra One schreibt IGN, dass die Emulation von PlayStation 2-Titeln auf der PS3 nicht wie angenommen und immer wieder von Sony betont auf Softwarebasis, sondern durch Hardware realisiert werden soll. Demnach befindet sich neben der bereits teuren PS3-Hardware mit Cell und BluRay-Laufwerk auch noch das PS2-Chipset, bestehend aus Emotion Engine-CPU und Graphics Synthesizer, im PS3-Gehäuse und dürfte ebenfalls seinen Teil zum hohen Preis der Konsole beitragen. Erst in späteren Versionen der Konsole soll die Hardware-Emulation durch eine Softwarelösung ersetzt werden, was auch eine Reduzierung der Herstellungskosten zur Folge hätte. 



Allerdings zweifelt Ultra One an den grafischen Verbesserungen von PS2-Titeln, wenn diese ausschließlich durch die (Original-)Hardware auf der PS3 emuliert würden. Bei der PS2 wurde der Grafikchip der PSone durch Software emuliert, wodurch PlayStation-Spiele optisch aufgewertet wurden - wenn auch nur minimal.



Kommentare

Max Headroom schrieb am
@Hotohori:
(Mio. an PC-Configs)
Du vergisst nur dabei, das es auf dem PC auch massig unterschiedliche Treiber gibt, da kann selbst ein Treiber, der eigentlich nichts mit der für den Emu nötigen Hardware zu tun hat, für Ärger sorgen.
Darum kümmert sich kein Emulator-Programmierer, das ist Problem des Users ;)
(..)zwischen AMD Duron, AMD Athlon XP, AMD Athlon 64 u.a. unterscheiden, da die alle verschiedene zusätzliche Befehlssätze haben, wovon ein Emulator teilweise durchaus provitieren kann, wenn er sich denn darauf verlassen könnte das den Befehlssatz jeder in seiner CPU hat.
Bei den meisten gibt es die eine oder andere Optimierung, z.Bsp. für Pentium-Caches. SSE unterstützt so gut wie jeder Prozessor. Entwickelt man einen Emulator, dann setzt man gewisse Requirements fest. Kaum ein Entwickler schreibt seine Programme für Windows 95, 64 MB RAM und Glide3D Schnittstelle ;) Leider muss dazu gesagt werden, dass SSE-Optimierungen für manche Berechnungen wirklich gut sind, aber SSE ersetzt z.Bsp. nicht die AltiVec-Erweiterung der G-Prozessoren der alten Apples. Für Photoshop war AltiVec ein Segen... dennoch haben Spiele oder Emulatoren auf dem Mac sie wohl kaum genutzt, brachte wohl nicht viel für diese Zwecke. In Zukunft werden wir diese Virtualisierungs-Einheiten in den CPUs finden. XEN auf Linux oder VMWare auf Windows werden es begrüßen, doch der Emulator-Schreiber kann getrost auf den Aufruf pfeiffen ;)
Aber im Grunde genommen hast Du schon recht. Hier und da existieren schon schöne Sachen... wer weiss, vielleciht kann ein SSE4-Befehl Big- und Litte-Endian beinahe nativ verarbeiten... sowas wäre für Emus ein Segen. Aber mein AthlonXP würde da grinsend abstürzen. Jedenfalls solange der Coder nicht eine äquivalente, aber langsame, Lösung als Fallback einbaut... doch dazu ist er nicht verpflichtet ;)
Das alles sind jedenfalls auch Dinge, die einen PC von anderen unterscheiden lässt und daher komm ich auf die Millionen Konfigurationsmöglichkeiten.
Stimmt, wenn es um...
unknown_18 schrieb am
Naja... soviele "Millionen" von Konfigurationsmöglichkeiten haben wir da auch nicht.
Du vergisst nur dabei, das es auf dem PC auch massig unterschiedliche Treiber gibt, da kann selbst ein Treiber, der eigentlich nichts mit der für den Emu nötigen Hardware zu tun hat, für Ärger sorgen. Schon allein die ganzen verschiedenen Mainboards und Chipsätze und CPU ist auch nicht gleich CPU, Intel und AMD ist nur eine sehr grobe Aufteilung, aber genau genommen muss man auch schon wieder zwischen AMD Duron, AMD Athlon XP, AMD Athlon 64 u.a. unterscheiden, da die alle verschiedene zusätzliche Befehlssätze haben, wovon ein Emulator teilweise durchaus provitieren kann, wenn er sich denn darauf verlassen könnte das den Befehlssatz jeder in seiner CPU hat. Bei mancher Software kann man z.B. SSE für AMD CPUs ein/ausschalten. Das alles sind jedenfalls auch Dinge, die einen PC von anderen unterscheiden lässt und daher komm ich auf die Millionen Konfigurationsmöglichkeiten.
Durch Multicore kann man zwar effizienter arbeiten, und die für Emulatoren bekannte Latenz zwischen den einzelnen Komponenten (CPU, GPU, IO, ...) auf ein Minimum reduzieren, doch die Software, die emuliert wird, profitiert selbst gar nicht davon, sie sieht ja nur ihr altes System vor sich... eine (emulierte) PS2, die nur einen Kern hat
Es mir ja nicht darum das die emulierte Software was davon hat, sondern der Emulator selbst. Abgesehen davon hat die natürlich auch die emulierte Software etwas davon, wenn der Emulator besser läuft.
Die PS3 könnte Leistungsfähig genug sein, die CPU OnBoard aber die GPU per CELL-Software zu ermöglichen.
Was aber auch wieder keine reine Hardware Emulationslösung wäre.
ogami schrieb am
@ Max
ob die 360 es erst mit dem reinen Emulator versucht kann ich nicht sagen, verhält sich aber im Windows Stil, erst Abfrage ob in Komp.liste vorhanden, wenn nicht Nachfrage an Server (sofern online) ob mittlerweile Update für die Spiel-ID. Wenn dann auch nicht, kommt eine Meldung das es (noch) nicht unterstützt wird.
Max Headroom schrieb am
@Hotohori:
Sony kennt die technischen Daten der PS2 bis ins kleinste Detail, dazu kommt dann noch das sie genügend Leute dafür einsetzen können einen Emulator zu schreiben. Die PC Emulatoren sind alles Freizeitprojekte von Leuten, die nicht wirklich soviele Daten über die PS2 haben wie Sony selbst
Das ist der große Vorteil im Hause SONY. Keiner kennt die Datenblätter besser als sie selbst ;) Ich weiss nicht in wie fern überhaupt Datenblätter zu den einzelnen Chips erhältlich sind. Ich weiss nur, dass z.Bsp. die Z80-CPU oder die Motorola 68k Familie allesammt per Datenblätter erhältlich sind und somit die Emulatoren dieser CPUs sehr exakt funktionieren, bis hinein zu manchen ausgenutzten Opcode-Fehler.
SONY hat es um ein vielfaches leichter, den Befehlssatz der Emotion Engine auf die der CELL umzusetzen. Allerdings bezweifle ich, dass sie gleich ein Chor an Programmierer dransetzen werden, einen stabilen, schnellen und bis zum einzelnem Zyklus genauen Emulator zu entwerfen und gleich fehlerfrei zum laufen zu bringen. Auch ich gehe eher davon aus, dass die Befehle schön-einfach zur schon auf dem Board gelöteten CPU durchgeschliffen werden. Jedenfalls was die CPU angeht ist dies die wahrscheinlichste Lösung. Man erspart sich das komplette Opcode und Flags gefummele und hat sofort Resultate ;)
dazu kommt noch das der PC ein System ist, der aus Millionen von Hardware Konfigurationsmöglichkeiten besteht, wärend die PS3 immer gleich ist. Daher lässt sich ein Emulator viel effektiver und optimierter programmieren.
Naja... soviele "Millionen" von Konfigurationsmöglichkeiten haben wir da auch nicht. Eine CPU von Intel und eine CPU von AMD. Andere (Billig-)Hersteller wie Transmeta & Co. nehme ich mal weg, die dürften weniger das Ziel eines Emulator-Programmierers sein. Beide basieren natürlich auf x86 Befehle. Dazu noch Grafikkarten... ob nVidia oder ATi, beide werden per DirectX angesteuert. Und die Musik ? Früher war die Angabe einer Soundkarte, IRQs bzw. Portes pflicht. Heute...
johndoe-freename-79054 schrieb am
Das Sony mehr Durchblick bei der PS2 hat, als irgendwer anders, ist natürlich korrekt. Aber trotzdem werden die den Emulator nicht einfach aus dem Ärmel schütteln. Die Architektur-Unterschiede sind auch bei der PS3 nicht von schlechten Eltern. Bei der PS2 ist die Emotion Engine der Dreh- und Angelpunkt des ganzen Systems. Bei der PS3 erfolgte die mittlerweile übliche Verlagerung vieler grafischer Berechnungen auf den RSX. Dazu kommt der Cell, welcher auch eine erhebliche Veränderung darstellt.
Die PS2 ist auch schon eine ziemlich parallele Hardware. Aber sie ist anders aufgebaut als der Cell. Und gerade PS2-Titel, bei denen die Entwickler wirklich ganz tief in die Hardware gekrochen sind (z.B. God of War, MGS3, GT4 etc.), dürften einen sehr speziellen Quellcode haben, den man auch auf dem Cell nicht so ohne weiteres zum Laufen kriegen wird. Dazu kommt noch der Umstand, dass die PS2 eine sehr offene Hardware ist, die es gestattet, einunddaselbe Problem auf unterschiedliche Arten zu lösen. Es kann also durchaus sein, dass man bei drei Spielen z.B. drei Mal den gleichen Grafikeffekt hat, der allerdings auf drei unterschiedliche Weisen realisiert wurde. Und jetzt versuch mal, das in einen vernünftigen Emulator zu gießen.
schrieb am