
Vita2hos (mit PS Vita-Spielen auf Nintendo Switch) 0.2 Alpha veröffentlicht
Xerpi , ein erfahrener Entwickler der Vita-Szene, hat ein Update für sein Tool vita2hos (Vita to Horizon OS) veröffentlicht, eine Schnittstellenbibliothek, die es ermöglicht, ausführbare Vita-Dateien auf der Nintendo Switch auszuführen. Diese neue Version 0.2 bringt insbesondere Verbesserungen bei 3D-Grafiken und Shadern.
Dies bleibt vorerst eine Alpha-Version mit eingeschränkter Kompatibilität, aber dies könnte es letztendlich ermöglichen, Vita Games auf dem Nintendo Switch auszuführen, wahrscheinlich mit voller Geschwindigkeitsleistung von Anfang an.
Was ist Vita2hos für Nintendo Switch
Vita2hos ist eine „Übersetzungsschicht“, eine API, die Vita-Routinenaufrufe an Native Switch-Äquivalente umleitet.
Mit anderen Worten, es ist kein „Emulator“ im technischen Sinne, da es nicht versucht, die Vita-CPU / -GPU nachzuahmen, sondern stattdessen Bibliotheken mit nativen Switch-Gegenstücken umleitet. Dies ist sehr ähnlich zu dem, was Wine zum Ausführen von Windows unter Linux tut, oder zu dem, was einige neuere Android-Gameports auf Vita getan haben. (Und für das, was es wert ist, ähnlich wie wir es mit HBL/VHBL von PSP in einigen Fällen gemacht haben, wenn auf einige bestimmte Module nicht zugegriffen werden konnte.)
Laut vita2hos Readme sind ausführbare Vita-Dateien ARM7-basiert und können nativ auf dem ARM8-Prozessor der Switch ausgeführt werden. Dies bedeutet, dass der Binärcode insgesamt gleich interpretiert wird und somit keine Notwendigkeit besteht, die Vita-CPU auf Switch per binärer Neukompilierung zu emulieren . Die Routinen aus Modulen, die vom Spiel geladen werden, benötigen jedoch ein natives Äquivalent auf dem Switch, und vita2hos muss die Funktionalität „umleiten“, manchmal mit zusätzlichen Änderungen für die Kompatibilität.
Ausführbare PlayStation Vita-Dateien (ARMv7-CPU) können nativ auf der Nintendo Switch ARMv8-CPU im 32-Bit-Ausführungsmodus ausgeführt werden.
Beim Laden einer ausführbaren PlayStation Vita-Datei leitet vita2hos die Modulimporte dieser ausführbaren Datei um, um zu Routinen zu springen, die das gleiche Verhalten implementieren, indem native Horizon OS-Dienste verwendet werden, wie sie von den ursprünglichen PlayStation Vita OS-Modulen bereitgestellt werden.
Ein einfaches Beispiel aus dem Quellcode ist die Thread-Erstellungsfunktion:
SceUID sceKernelCreateThread(const char *name, SceKernelThreadEntry entry, int initPriority, SceSize stackSize, SceUInt attr, int cpuAffinityMask, const SceKernelThreadOptParam *Option) { return create_thread(name, entry, initPriority, stackSize); }
Dies wandelt eine ziemlich übliche Vita-Routine in etwas um, das auf dem Switch funktioniert. Beachten Sie, wie einige der Parameter der Funktion (z. B. cpuAffinityMask) gelöscht werden. Dies bedeutet, dass die Funktionalität nicht immer zu 100 % der der Vita entspricht, aber diese Art der Annäherung könnte ausreichen, um die meisten Spiele auszuführen.
Die Nachteile eines solchen Weges bestehen darin, dass die Ergebnisse (zumindest anfangs) eine Annäherung an das Verhalten der Vita sein werden. In vielen Fällen mag dies ausreichen, aber bei einigen Spielen kann dies zu Störungen, fehlender Funktionalität (z. B. kein Ton, solange z. B. die MP3-Bibliothek nicht richtig „übersetzt“) oder einfach dazu führen, dass das Spiel nicht funktioniert.
Die Vorteile sind, dass dies nur eine dünne Übersetzungsschicht über den ausführbaren Dateien ist, was bedeutet, dass Vita-Spiele auf der Switch mit voller Geschwindigkeit laufen sollten, sobald vita2hos genug ausgereift ist, um mehr Spiele auszuführen .
Über Vita2hos Alpha 0.2
Folgendes sagt Xerpi zu dieser neuen Version:
Dies befindet sich noch in einem sehr frühen Stadium und kann daher nur sehr einfache CPU-gerenderte PlayStation Vita-Homebrews ausführen.
Es gibt eine sehr anfängliche 3D-Grafikunterstützung (es kann vitasdks GXM-Dreiecks- und Würfelbeispiele ausführen, indem die GLSL-Shader von vita2hos fest codiert werden, damit sie mit den Cg-Shadern übereinstimmen, die die Beispiele verwenden).
vita2hos verwendet den Shader-Recompiler von Vita3K, und einige Teile des Codes von vita2hos basieren auf der Implementierung von Vita3K. Bitte erwägen Sie eine Spende und einen Beitrag zu Vita3K!
vita2hos verwendet UAM (den Shader-Compiler von deko3d ), um Shader zu kompilieren. Bitte erwägen Sie auch, zu diesem Projekt beizutragen und an die Entwickler zu spenden!
Änderungsprotokoll:
- Anfängliche Vita3K- Shader-Recompiler-Unterstützung : Es übersetzt von GXP (PSVitas SceGxm-Shader-Format) in SPIR-V/GLSL-Shader
- Verwendet UAM – deko3d-Shader-Compiler , um die vom Vita3K-Shader-Compiler (derzeit GLSL) generierten Shader in das GPU-Format der Switch zu kompilieren
- 3D-Grafik: Anfangstiefe und Schablonenunterstützung
- Pfad der ausführbaren PSVita-Datei geändert von
sd:/test.elf
→sd:/vita2hos/test.elf
- Korrigierte umgekehrte vertikale Achse des Analogsticks
- 3D-Grafikleistungsverbesserungen
- Allgemeine Codeverbesserungen
Laden Sie vita2hos Alpha 0.2 herunter
In seinem aktuellen Zustand führt vita2hos nur eine kleine Teilmenge sehr einfacher Vita-Homebrew aus (Beispiele unten), aber diejenigen unter Ihnen, die es ausprobieren möchten, können den Anweisungen unter dem folgenden Link folgen.
Laden Sie vita2hos hier herunter .
Wie kann ich es verwenden?
Überprüfen Sie die Anweisungen in der Github-Readme hier .