Omega Red + PS1 Emulator = Kojima Genius

Hallo an alle Leser!

Ich setze das Thema des Software-Emulators für PlayStation 2 und PlayStation Portable - Omega Red fort. Ausführlicher:


Ich habe diese Veröffentlichung im Zusammenhang mit der Hinzufügung eines Software-Emulators für die PlayStation 1 geschrieben.
Willkommen bei Kat.


Wie der Titel andeutet, stellt dieser Artikel das Ergebnis meiner Forschungen zur Integration des PCSX-Reloaded PlayStation 1-Emulators dar. Die Idee, Unterstützung für die Emulation der ersten PlayStation-Reihe von Spielekonsolen hinzuzufügen, ist logisch, aber als ich versuchte, sie zu implementieren, gab es ein Problem - die OpenSource-Version ist etwa 15 Jahre alt und wurde von der Community nicht mehr unterstützt Die Integration in das Projekt mit DirectX11- und WPF-Technologien war ein echtes Problem. Die Version des Video-Renderers wird in Form einer Software-Implementierung dargestellt. Nach dem Erstellen des endgültigen Abbilds im Systemspeicher wird dieses Ergebnis in den DirectX11-Videospeicher kopiert. Auf den ersten Blick scheint eine solche Lösung nicht effektiv zu sein, aber sie ermöglicht es Ihnen, den bereits debuggten Code des Software-Renderers zu verwenden, und für die erste Version ist sie mehr als eine geeignete Lösung.

Zusätzlich habe ich eine Reihe von Funktionen zur Kompatibilität mit PCSX-Reloaded hinzugefügt:

  1. Visuelle Vibration - Der Dualshock-Gamecontroller für die PlayStation-Produktreihe von Spielekonsolen verfügt über die Rückmeldefunktion, mit der sich der Spielvorgang noch intensiver verfolgen lässt. Der Omega Red-Emulator unterstützt eine ähnliche Funktion für einen externen Gamecontroller, aber die "Rückmeldung" für den Touchscreen ist immer noch nicht erfunden. Bei der Untersuchung des PCSX-Reloaded-Codes stieß ich jedoch auf einen Zeiger auf eine Rückruffunktion vom Gamecontroller-Emulator zum Grafikrenderer. Die Idee, durch visuelle Transformation des Bildes „Rückwärts-Feedback“ anzuzeigen, ist unterhaltsam, und ich habe beschlossen, es in meinem Projekt zu implementieren.



  2. Freigegebene Speicherkarte - Das ursprüngliche Omega Red-Projekt erstellt eine Speicherkarte für das Spiel auf der Grundlage der eindeutigen Seriennummer der Spiel-CD. Auf diese Weise wird verhindert, dass ein Spiel aus der Spielsitzung eines anderen Spiels überschrieben wird. Diese Technik funktioniert für PlayStation 2-Spiele, die eine DVD belegen. Bei PlayStation 1-Spielen tritt jedoch das Problem auf, dass die Speicherung von einer Spielesitzung auf eine Spielesitzung auf einer anderen Spielesitzung übertragen wird. Spiele auf PlayStation 1 können zwei oder mehr DVDs belegen. Um dieses Problem zu lösen, habe ich eine gemeinsam genutzte Speicherkarte hinzugefügt.


Zusätzlich zu den Kompatibilitätsanforderungen habe ich einige allgemeine Verbesserungen hinzugefügt, darunter:

  1. Auswahl der Videobitrate für die Videoaufzeichnung des Spiels:


    Auswählen der Größe der Zielvideoaufnahmedatei:


  2. Trennung von BIOS und Spiele-Discs in Gruppen für PlayStation 1, PlayStation 2 und PlayStation Portable.


  3. Zeigen Sie den Namen des aktuellen BIOS und der Spielediskette im Namen der entsprechenden Abschnitte an.



Die Demonstration der Spiele für alle drei Plattformen ist in der Demo zu sehen:


Derzeit ist das Programm unter: Omega Red verfügbar und wird auf GitHub: OmegaRed vorgestellt .

Source: https://habr.com/ru/post/de476958/


All Articles