silentdragon95 schrieb:
Aber die PS4 basiert ja genau wie auch die Xbox One auf ganz normaler x86 Hardware, im Grunde genommen muss man da doch gar keine Hardware emulieren, nur sicherstellen, dass die Spiele nicht zu schnell laufen.
… Hardware ist nicht gleich Hardware und verwechsel bitte nicht die ISA mit der Hardware. Die ISA (x86) ist hier nur ein Teil des Puzzles, genau so wie die Hardware als ganzes ein zweites Teil des Puzzles ist.
Was ihr alle aber ständig vergesst, ist die Software-Ebene und die kann oft sogar weit entscheidender sein als die Hardware. Betriebssystem, die Eigenheiten dessen, die verendeten APIs (Application Programming Interface) und deren Besonderheiten können weit mehr Einfluss haben auf die Kompatiblität haben, als nur die ISA, die manche hier immer wieder prominent her vorstellen und warum das alles funktionieren muss.
Moep89 schrieb:
Ja, das sind Custom Designs, schon klar. Aber die grundlegende Technik ist mittlerweile eben x86. Und da sollte Kompatibilität eine Selbstverständlichkeit sein. Zumindest jeweils eine Generation zurück.
… ja, es wird die ISA x86 verwendet. Auch du lässt jedoch vollständig die Software außen vor und damit den primären Fallstrick heute, was Kompatibilität angeht.
Um es mal sehr vereinfacht darzustellen: Es ist einfacher ein Programm zwischen ARM, PowerPC und x86 zu portieren, wenn die Software-Infrastruktur gleich bleibt, als ein Programm auf derselben Plattform zwischen zwei unterschiedlichen Software-Infrastrukturen zu portieren.
Um die meisten Eigenheiten der ISA kümmern sich heute die Compiler und fast alle ISAs unterstützen heute »little-endian«. Sofern man nicht »explizit« für gewisse Extensions einer ISA optimiert, sondern generell und sich auf die API-Calls beschränkt, ist es kein Problem ein Programm zwischen ARM und x86 zu portieren.
Und ähnlich verhält es sich mit der Kompatibilität. Es kommt hier darauf an, ob Sony ggf. ihr OS als auch ihre APIs aufräumt und weiter optimiert. Auch hier kann dann ein Fallstrick der Kompatibilität sein. Programm A verwendet API B Version X. Nun kommt API B Version Y. Auch wenn es dieselbe API ist, kann sich zwischen Version X und Y Änderungen ergeben haben, die eine Anpassung des Programmes benötigen.
Löst euch endlich mal davon, dass nur weil x86 als ISA verwendet wird, die Kompatibilität eine Selbstverständlichkeit sein muss. Hier gibt es viel mehr Dinge zu beachten und Altlasten - z.b. wenig oder kaum verwendete Funktionen in der API - in alle Ewigkeit mitzuschleppen bläht die Software-Infrastruktur unnötig auf und macht sie mit der Zeit unwartbar!