Home Mobile Android Pubblicato il nuovo aggiornamento alpha-1474 dell’emulatore AetherSX2

Pubblicato il nuovo aggiornamento alpha-1474 dell’emulatore AetherSX2

568
1

Pubblicato un nuovo aggiornamento alpha per AetherSX2, l’emulatore della console PlayStation 2 per dispositivi Android gira anche su TV Box di fascia alta, Raspberry Pi 4 e console Nintendo Switch grazie ad una versione personalizzata di LineageOS.

Il rollout avverrà in modo graduale, questo significa che potrebbero volerci alcuni giorni affinché i diversi dispositivi ricevano l’aggiornamento.

Questa nuova versione ha apportato una serie di correzioni per gli arresti anomali di Adreno/Vulkan sui driver più recenti (e dalla versione 525 in su).

Per ovviare a questo problema, è stato disabilitato semplicemente il secondo output del colore quando non più necessario (per questo i driver Adreno non causerebbero più il blocco della GPU).

L’applicazione della correzione automatica del renderer hardware (ad esempio lo svuotamento automatico) per alcuni giochi/correzione dell’upscaling corregge solo la configurazione del gioco (da qui si consiglia di ripristinare le impostazioni).

Sono inoltre state estese le correzioni di gioco integrate per includere l’upscaling di GS e le correzioni hardware. Per i giochi attualmente aggiornati nel database, non è più necessario abilitare correzioni come lo svuotamento automatico, l’allineamento dello sprite e l’offset di mezzo pixel.

Attualmente, ci sono pochi giochi con le correzioni richieste. Dal momento che esiste un’applicazione per la correzione automatica, si è deciso che non c’era più alcun motivo per poter attivare queste correzioni nelle impostazioni globali.

Miglioramenti delle prestazioni per COP2 e VU0 (fino al 20% su alcuni dispositivi/giochi, fino al 15% in Ratchet su SD870).

Il cambiamento che ha portato alla maggior parte di questo miglioramento è stata l’eliminazione del calcolo dei flag per la COP2. Soprattutto su NEON, il calcolo di questi flag è molto dispendioso.

Per i microprogrammi VU1 e VU0, viene esaminato il flusso di istruzioni scoprendo quali istruzioni possiamo saltare i flag di calcolo. Fondamentalmente, quando sappiamo che i flag verranno sovrascritti da un’altra istruzione, possiamo saltare la prima.

Questo va bene per la custodia non adesiva, ma i flag appiccicosi potrebbero non essere corretti poiché vengono aggiornati solo dall’istruzione finale. Ciò significava che non importava quante istruzioni ci fossero , abbiamo impiegato tempo a calcolare i flag che non erano necessari.

A peggiorare le cose, abbiamo anche denormalizzato/rinormalizzato i flag per ogni istruzione. Facciamo un po’ di preanalisi sul blocco per sapere quando sono la prima e l’ultima istruzione di impostazione del flag, ed elidiamo il calcolo del flag per il resto.

Anche la denormalizzazione/rinormalizzazione è differita fino alla prima e all’ultima istruzione.

Vettorizza l’analisi dei tag GIF imballati

Questa è stata una perdita di tempo che è stata mostrata nei profili di giochi come Final Fantasy X sul thread VU, fino al 25%.

Vettorizzando questa funzione utilizzando NEON invece di elaborarla un bit alla volta in blocchi a 32 bit, abbiamo ridotto l’overhead di questa routine fino a circa il 10%, il che si traduce in un piccolo aumento delle prestazioni nei giochi legati a VU.

L’abbiamo anche vettorializzato per x86 e per l’upstream, quindi dovrebbe esserci anche un piccolo aumento delle prestazioni.

Supporta la riproduzione di dump GS

AetherSX2 ora può riprodurre i dump GS registrati dall’emulatore desktop upstream, il che è utile per il debug di problemi grafici. Non è richiesto alcun file BIOS durante la riproduzione di dump GS, poiché sono in esecuzione solo i componenti GIF e GS.

La ricompilazione dei blocchi su fastmem non riesce

Fastmem è il concetto di trasformare le istruzioni del loadtore guest in una singola istruzione del loadtore host, mappando una regione di 4 GB di memoria virtuale e quindi aliando la memoria guest all’interno in base allo stato TLB.

Tuttavia, c’è un problema; loadtore su indirizzi MMIO o le periferiche non possono essere rappresentate con una singola istruzione, è necessario chiamare C++ per gestire la simulazione dell’hardware.

In hot code, ciò potrebbe comportare un sovraccarico delle prestazioni rispetto a fastmem-off, poiché è necessario saltare e salvare/ripristinare tutti i registri degli ospiti.

Statistiche thread GS-SW separate

Piccola modifica, ora puoi vedere l’utilizzo della CPU di ciascuno dei thread di rendering del software.

Corretto il problema del bloccaggio della regione del renderer SW (Matrix: PON/Ridge Racer V)

Il bloccaggio delle coordinate della texture basato sulla regione (o l’indirizzamento della texture avvolgente come è noto nelle API più moderne) è stato implementato in modo errato nel renderer software JIT, causando errori in Matrix: PON e Ridge Racer V durante l’esecuzione in modalità software.

Migliorate le prestazioni SW/Scanline JIT (fino al 20% in alcuni giochi/dispositivi)

Riscritte diverse parti della scanline JIT con questa modifica, per migliorare le prestazioni di rendering del software. Ora questo è sufficiente per eseguire anche giochi moderati come Ridge Racer V interamente nel software.

Tuttavia, è ancora molto insufficiente per i giochi più pesanti. Abbiamo alcune idee per bilanciare meglio il carico di lavoro di rasterizzazione tra i core piccoli e grandi nei dispositivi mobili in futuro che stiamo pianificando di esplorare.

Supera le scritture MMIO a 64/128 bit per valore anziché per riferimento

Una reliquia delle origini x86 a 32 bit delle scritture MMIO a 64 bit a monte ora vengono passate per valore in GPR anziché come puntatore e le scritture MMIO a 128 bit vengono passate in un registro vettoriale NEON.

Non ci aspettiamo che questo faccia una differenza di prestazioni molto misurabile, ma è bello ripulire l’eredità cruft in questo modo.

Gestire gli overflow della cache VU (Killzone)

Killzone era praticamente non riproducibile in AetherSX2 prima di questa modifica, poiché generava continuamente nuovi microprogrammi VU1, riempiendo infine lo spazio del codice del ricompilatore, e questo non veniva gestito correttamente nell’implementazione ARM64.

Questo è stato corretto ora e non si arresta più in modo anomalo. Il problema di fondo qui con la generazione di molti microprogrammi VU1 si verificherà ancora, quindi potresti vedere qualche balbuzie occasionalmente durante il ripristino, ma dovrebbe essere breve solo ogni paio di minuti.

Aggiunta l’immagine di sfondo all’elenco dei giochi

Se lo sfondo grigio/bianco è troppo noioso, ora puoi impostare un’immagine di sfondo per l’elenco dei giochi/la griglia di gioco. Per fare ciò, scorrere il menu di navigazione da sinistra e selezionare la voce “Scegli immagine di sfondo”.

Rendi mantenibili le caselle di selezione nelle impostazioni

Le caselle di selezione per impostazioni come velocità di gioco, skip draw, ecc.. in precedenza rispondevano solo a singoli tocchi/clic. Pertanto, per ridurre da 100 a 0, dovevi toccare 100 volte e viceversa.

Ora puoi toccare e tenere premuto, che diminuirà automaticamente queste impostazioni fino a trovare il valore desiderato.

Piani di aggiornamento futuri

Abbiamo alcune cose in lavorazione oltre al consueto lavoro di correzione di bug e prestazioni, comprese le versioni Windows-on-ARM e Linux-on-ARM.

Quest’ultimo è in circolazione da prima che l’app per Android fosse una cosa, ma a causa della mancanza di hardware performante, non vedevamo molti motivi per rilasciarla.

Questi rilasci saranno forniti senza garanzie o supporto e non stiamo ancora fornendo una data concreta per il rilascio. Il nostro focus rimarrà su Android, ma gli utenti con questo hardware che in precedenza non avevano accesso a prestazioni di emulazione PS2-on-ARM lo avranno in futuro, almeno per i giochi più leggeri.

Le modifiche necessarie per WoA hanno scoperto alcuni bug nella nostra implementazione di fastmem, quindi è una vittoria netta nel complesso.

[stextbox id=’info’]Nota: Se si intende eseguire l’emulatore AetherSX2 su console Nintendo Switch si consiglia di eseguire l’overclock della CPU a 1785MHz, della GPU a 460MHz e della RAM a 1600MHz utilizzando il sysmodule sys-CLK.[/stextbox]

La PS2(TM) è un componente hardware estremamente complesso, con molti componenti molto potenti, anche per oggi. Hai bisogno di un dispositivo di fascia alta per ottenere buone prestazioni.

Consigliamo almeno un dispositivo equivalente a Snapdragon 845. Ciò significa 4 grandi core (livello Cortex-A75). Se hai solo due grandi core (ad esempio SoC Snapdragon serie 700, non dovresti abilitare VU multi-thread altrimenti le prestazioni ne risentiranno).

I dispositivi con GPU Mali o PowerVR eseguiranno l’app, ma le prestazioni saranno inferiori rispetto alle GPU Adreno, mentre il renderer Vulkan non sarà disponibile. Questo perché manca una caratteristica critica (combinazione dual-source).

Se si desidera utilizzare l’app su di un dispositivo più lento, è possibile provare ad eseguirlo, ma i giochi funzioneranno lentamente, specialmente i titoli più pesanti.

In tal caso provare a ridurre il clock della CPU impostando la frequenza del ciclo su di un numero negativo passando il ciclo ad un numero positivo nelle impostazioni di sistema, ma ciò causerà un ritardo interno dei giochi nel migliore dei casi o un arresto anomalo nel peggiore dei casi.

Caratteristiche

  • Simulazione del sistema.
  • Rendering OpenGL, Vulkan e software.
  • Upscaling dei giochi a 1080p e oltre.
  • Patch widescreen per giochi senza supporto nativo.
  • Supporto per stati di salvataggio.
  • Supporto per touchscreen e controller bluetooth.
  • I giochi possono essere caricati da immagini disco iso/chd/cso.
  • Impostazioni per gioco.

Aspettative

Questa è un’app gratuita, sviluppata come hobby nel tempo libero dello sviluppatore. Al momento in cui scriviamo, è in una fase iniziale e mancano molte funzioni utili, tuttavia è utilizzabile per giocare ad alcuni giochi.

Non sarà perfetto, tutt’altro. Continuerò a migliorarlo quando avrò tempo, ma ricorda che questo non è il mio lavoro e di avere aspettative realistiche, soprattutto se non hai un dispositivo di fascia alta.

Poiché si tratta di un’anteprima anticipata, dovresti salvare il gioco regolarmente in caso di arresti anomali.

Esclusioni di responsabilità

AetherSX2 dovrebbe essere usato solo per giocare a giochi che possiedi e che hai scaricato dal disco. Per scaricare i tuoi giochi, puoi utilizzare uno strumento come ImgBurn per creare un .iso per il disco e quindi copiarlo sul dispositivo tramite USB.

PlayStation 2 e PS2 sono marchi registrati di Sony Interactive Entertainment Europe Limited e in altre regioni. Questa app non è affiliata in alcun modo con Sony Interactive Entertainment.

L’app mi dice che ho bisogno di un BIOS

Si. Un’immagine del BIOS è necessaria per giocare e non è facoltativa. Questa immagine dovrebbe essere scaricata dalla propria console, utilizzando un’applicazione homebrew. Ci sono molte guide disponibili online su come scaricare il BIOS dalla console.

I miei giochi sono lenti/in ritardo

Diversi giochi hanno requisiti hardware molto diversi, a causa di quanto hanno utilizzato i vari componenti della console. Provare a ridurre il clock della CPU impostando la frequenza del ciclo su di un numero negativo e il ciclo passerà ad un numero positivo nelle impostazioni di sistema, ma ciò causerà un ritardo interno dei giochi nel migliore dei casi o un arresto anomalo nel peggiore dei casi.

Come migliorare le prestazioni?

  • Assicurati che fastmem sia abilitato nelle impostazioni di sistema.
  • Abilitare VU1 multi-thread nelle impostazioni di sistema. Ciò causerà prestazioni inferiori se il dispositivo non dispone di almeno tre core CPU “grandi”.
  • Utilizzare il renderer Vulkan se si ha una GPU Adreno. Nota che alcuni giochi funzioneranno meglio con OpenGL e potrebbero non essere visualizzati correttamente con Vulkan. Le GPU Mali non sono supportate dal renderer Vulkan.
  • Undercloccare la CPU emulata impostando la frequenza di ciclo su di un numero negativo e passare ad un numero positivo nelle impostazioni di sistema.
  • Per alcuni giochi, l’abilitazione delle opzioni di conversione Preload Textures e GPU Palette nelle impostazioni grafiche può migliorare le prestazioni.
  • Se il gioco rallenta a seconda dell’angolazione della telecamera, ciò potrebbe essere dovuto ai download GS, che sono molto lenti sulle GPU mobili. Puoi provare a disabilitare i readback hardware nelle opzioni grafiche, ma questo potrebbe creare alcuni problemi negli effetti.

FAQ

Domanda: Come si personalizza il controller touchscreen (posizione/scala)?
Risposta: Premere il pulsante pause o back durante il gioco e toccare la scheda dei controlli nell’angolo in alto a destra. Puoi anche aggiungere ulteriori pulsanti per i tasti di scelta rapida qui, ad es. avanzamento veloce, caricamento/salvataggio rapido, ecc..

Domanda: L’app si apre in modalità verticale, come posso cambiarla in orizzontale?
Risposta: Girare il dispositivo se si ha abilitato la rotazione automatica. Puoi anche forzarlo a utilizzare sempre il paesaggio nella prima pagina delle impostazioni dell’app.

Domanda: Il mio controller Bluetooth non funziona.
Risposta: Attualmente supportiamo solo una mappatura del controller fissa, determinata dal fornitore di Android. In futuro sono previste mappature personalizzate per i controller.

Domanda: Voglio settare impostazioni diverse per ogni gioco.
Risposta: Attualmente questo non è possibile. Abbiamo intenzione di aggiungere questo in futuro.

Domanda: I giochi presentano problemi di rendering.
Risposta: A causa della complessità dell’hardware della console, ci sono ancora molti problemi che sorgono quando si utilizza il renderer hardware. Puoi provare a utilizzare il renderer software per questi giochi.

Domanda: Voglio salvare più di uno stato.
Risposta: Questo non è attualmente possibile, stiamo pianificando di aggiungere più slot di salvataggio in futuro.

Domanda: Voglio copiare i miei salvataggi da un altro dispositivo.
Risposta: Attualmente puoi importare solo un’intera scheda di memoria in una volta; non è possibile importare singoli salvataggi. Scorrendo da sinistra nell’elenco dei giochi verrà mostrata un’opzione “Import Memory Card” che puoi utilizzare per importare un’immagine *.ps2 di una scheda di memoria.

Domanda: Dove si trovano i miei salvataggi?
Risposta: A causa dell’archiviazione delimitata su Android 11+, non è possibile inserire i salvataggi in una normale directory su una memoria esterna. Tuttavia, con un’app di esplorazione file, dovresti essere in grado di accedere alla directory Android/data/xyz.aethersx2.android, nel volume di archiviazione principale, che contiene gli stati di salvataggio e le schede di memoria. Tieni presente che l’accesso a questa directory richiede la concessione di autorizzazioni aggiuntive al file manager su Android 11+.

Domanda: Come aggiungo le copertine alla griglia di gioco?
Risposta: Posizionare le immagini di copertina nella directory delle copertine, situata nella directory dei dati sopra menzionata, con il nome del file come titolo del gioco o seriale in formato jpg/png. In alternativa, puoi premere a lungo nell’elenco dei giochi e selezionare “Choose Cover Image” per importare un’immagine.

Domanda: Come faccio a creare collegamenti di avvio per i giochi?
Risposta: Premere a lungo il gioco nell’elenco dei giochi e selezionare “Create Launcher Shortcut”.

Download: AetherSX2 (grazie PCGamerGuy)

Fonte: patreon.com

1 commento

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.