Disponibile un nuovo report mensile per l’emulatore sperimentale Vita3K

Procede spedito lo sviluppo di Vita3K, l’emulatore della PlayStation Vita ha raggiunto un risultato ragguardevole grazie ai suoi numerosi contributori.

Vita3K è un emulatore sperimentale open source della console portatile PlayStation Vita per PC Windows, Linux e Mac OS scritto interamente in  C++.

Il rapporto di questo mese ha visto numerosi miglioramenti tra i diversi componenti principali, riuscendo quasi a raggiungere il suo reale obiettivo, riprodurre titoli commerciali.

Di certo la modifica più importante riguarda l’esecuzione diretta, e senza la necessità di fornire di volta in volta il file VPK tramite argomento da riga di comando.

In sostanza ora dall’interfaccia possiamo andare a selezionare ed eseguire direttamente le applicazioni installate. Mentre l’installazione ora avviene automaticamente quando si fornisce un argomento dalla riga di comando

Questa è stata una decisione controversa che è stata ampiamente discussa e rifiutata in passato, lo svantaggio principale è che l’emulatore avrebbe mantenuto comunque una copia separata delle applicazioni installate.

I dati di gioco vengono memorizzati nella directory “pref” in ux0:/app/TITLEID di Vita3K (potrete cambiarlo per risparmiare spazio su disco, invece di utilizzare la directory principale di Vita3K). 

Per Windows, questo percorso “pref” si trova dentro %AppData%/Vita3K/Vita3K(quindi, all’interno dell’unità C), anche se in un prossimo momento si potrà configurare una directory diversa.

OpenGL 4.1 (#253)

Il porting ha una versione di OpenGL più recente che è stata pianificata da un bel po’, dal momento che la versione 2.1 (che ha 12 anni) si stava dimostrando comprensibilmente inadeguata.

Molte più primitive di sincronizzazione del kernel

Variabili di condizione (#236, #250)

Flag di eventi (#239)

Refactoring (#231)

Una parte importante del kernel del sistema operativo è quella di fornire ai suoi programmi in usermode modi di cooperare in modo tale da garantire che non si verifichino condizioni di gara.

Questo è risolto fornendo primitive di sincronizzazione. Due esempi di questi sono variabili di condizione e flag di eventi. PlayStation Vita ha anche versioni “leggere” di quelle, che essenzialmente si comportano più velocemente facendo alcuni trade-off.

Miglioramenti notevoli

Supporto VitaGL (#252)

VitaGL è una libreria che consente agli homebrew game di utilizzare le chiamate OpenGL. Le traduce nell’API grafica (GXM), rendendo il lavoro più semplice agli sviluppatori che potranno utilizzare le proprie conoscenze per creare homebrew.

Aggiunto il supporto base di VitaGL, ovvero, varie correzioni che consentono a questa libreria di iniziare a funzionare con Vita3K. Questo PR impedisce che i giochi VitaGL si blocchino, ma è necessario molto lavoro per far sì che questi giochi visualizzino correttamente qualsiasi cosa.

Supporto Savedata0 (#226)

Un semplice ma cruciale miglioramento per l’emulatore. L’aggiunta del supporto per la partizione savedata0 che consente ai giochi commerciali di creare, rimuovere e modificare i file di salvataggio.

Ottimizzazioni

Texture Cache (#239)

VSync per il contesto principale OpenGL (#231)

Non vogliamo focalizzarci ancora sulle ottimizzazioni, ma alleggerisce i test occasionalmente, e questi sono alcuni frutti a basso impatto che sono stati fatti per migliorarlo.

Supporto per la struttura di Shader (#223)

Molti giochi commerciali (e alcuni homebrew) utilizzano almeno alcuni shader con strutture in essi, che in precedenza avevano errato durante la compilazione del programma OpenGL, dal momento che non stavamo analizzando e generando correttamente gli stub.

Questo PR aggiunge il supporto al nostro generatore di shader stub GLSL per le strutture GXP.

Refactoring e varie correzioni (#263, #256)

Correzioni di I/O e miglioramenti della registrazione e molta pulizia e refactoring del codice che aiuta la manutenzione e le modifiche future.

Rende anche ridimensionabile la finestra che aiuta a testare (adattando più finestre di debug in un singolo screenshot).

Screenshot

Giochi commerciali

I progressi di questo mese hanno permesso a questi giochi di entrare in game per la prima volta e grazie agli shader scritti a mano possiamo effettivamente vedere cosa sta succedendo.

SwapQuest

Probabilmente il primo gioco ad andare in gioco con la grafica (gli shader fatti a mano non sono perfetti quindi ci sono alcuni artefatti).

Applicazioni homebrew

Ecco alcuni altri screenshot che mostrano alcuni homebrew che possono essere avviati o riprodotti per la prima volta dopo il lavoro di questo mese.

Vita Hexen II

GNU Robbo (#234)

SDLLopan (#234)

Manga Downloader (#234)

Roadmap

Ecco un elenco approssimativo dei principali compiti a cui stiamo dando la priorità al momento, oltre alla correggere di bug. Probabilmente verranno spiegati in maggior dettaglio una volta implementati.

  • Callback system: È normale che le funzioni Vita lavorino con le Callback anziché con il blocco. Non disponiamo ancora di un sistema per i callback, quindi non possiamo implementare tutte quelle funzioni correttamente.
  • Miglioramenti primitivi del kernel e della sincronizzazione
  • Fonts: Tutti gli homebrew che utilizzano SceFont (molti di questi) non possono essere avviati al momento, è uno dei moduli più importanti necessari per il funzionamento degli homebrew.
  • Dialogs: Ci sono stati alcuni lavori iniziali su questo utilizzando la nostra nuova GUI, ma sono comunque necessari ulteriori sviluppi.

Parole di chiusura

L’hackeraggio degli shader che consente ai giochi commerciali di mostrare la grafica è eccezionale, e in realtà aiuta ad eseguire test e lo sviluppo, ma è importante notare che il progetto è ancora in fase iniziale.

Calcolare le cose come la traduzione di shader e shader richiederà un po’ di tempo, ma siamo piuttosto eccitati nel risolvere questo e in ogni altra sfida che affronteremo cercando di emulare la PlayStation Vita.

Diventa Patrono su https://www.patreon.com/Vita3K e supporta lo sviluppo dell’emulatore.

Download: Source code Vita3K

(Visited 1 times, 2 visits today)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *