Playstation 1 ROMs modifizieren?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Ich habe von 2004 ...13 an der Entwicklung diverser Emus und Plugins mitgewirkt (Fehlermanagment, Shader, Lokalisierung,Support).

So einfach wie Du Dir das ganze vorstellst ist das nicht.

Für Deine angedachte Verfahrensweise müsstest Du mit einem Debugger für das PSOne-Chipset das Programm des Spiels analysieren/ändern. Es nutz recht wenig nur Bilder/Videos/Meshes zu ändern. Das Programm ist auf den auf der PSOne vorhandenen Speicher/Prozessor(en) ausgelegt. Es könnte keine größeren MediMedien verarbeiten.

Einige Tricks wie Widescrenn klappen leidlich wenn man die entsprechenden Speicherstellen im geladenen Programm patcht. Dabei müssen einige Speicherstellen permanent überwacht werden um ein Fallback zu verhindern. (leider ist es nicht möglich alle hardcodierten Settings zu ermitteln. ) Ein höllischer Aufwand,der überhaupt erst auf Mehrkernern möglich wurde und jedem "sauberen" Programmierer das Blut in den Adern gefrieren lässt (nicht Threadsafe).

Beim Rice-GPU-Plugin (Project64) war es möglich für Nutzerdefinierte Bilder/Texturen on the fly zu "spiegeln".

Für PS1/2 wurde mit dieser Technik experimentiert. Das scheiterte jedoch an der schieren Menge an Texturen bei Spielen auf diesen Plattformen und der Verteilung der Zuständigkeiten für die Dekodierung der Medien. (Das GPU-Plugin hat keinen Einfluss auf die Verarbeitung seitens der CPU). Im Großen und Ganzen ein riesen Kuddelmuddel aus resizeden und statischen Texturen/Videos.

Vergiss Deine Ideen, die hatten schon viel klügere Köpfe (soll keine Diskriminierung Deiner Grauen Masse sein). Wir haben viele Jahre darauf verwendet um dergleichen zu lösen.

PS1/2 waren kleine Wunderwerke der Ingenierskunst und weit mehr als die Summe ihrer Bauteile:

Schon lange bevor man beim PC auf Mehrkerner kam, kannten die kleinen Spielekonsolen auf mehrere Prozessoren verteilte Aufgaben und breite Datenleitungen. (Die verfügte schon über einen 128bit Datenbus, wovon PCentwickler noch heute feuchte Träume bekommen).

Entsprechend der Aufgabenverteilung und Synchronisation sind Programme der kleinen PlayStations nur schwer zu Disassemblieren oder Patchen. Vieles ist auf Speed optimiert (hardcoded, nicht über Variablen gesetzt). Unmöglich jeden Befehl zu analysieren und was Dieser wann tut.

Emulatoren für PS1/2 sind HighLevelEmus. Diese folgen nicht den einzelnen Chip-Befehlen, sondern versuchen zu nachzubilden, was Aufrufe von übergeordneten Funktionen bewirken.

Das Ganze war und ist eine Mamutaufgabe. (In Spitzenzeiten waren allein an den Emu-GPUplugins bis zu 20 erfahrene Programmierer involviert und wir hatten die Spezifikationen der Chipsetbefehle, welche Sony bis heute nicht offiziell offengelegt hat.)

Wenn Du nicht vorhast mit einem Nervenzusammenbruch in einer Jacke mit sehr langen Ärmeln zu landen, suche Dir ein nettes Hobby. Lerne beispielsweise Programmieren , damit hast Du für die nächsten 40 Jahre Hobby ohne Ende.

Ich hab noch 4 Jahre bis ich die 40 Jahre Programmierpraxis voll habe, dann werde ich wohl senil genug sein um im Park die Enten zu füttern 🤭🥳🤪👻

morrango 
Fragesteller
 20.04.2021, 19:31

Vielen Dank für die ausführliche Aufklärung. War wohl wirklich zu einfach gedacht :D

0