Home Mobile Android Rilasciato retroArch v1.9.6

Rilasciato retroArch v1.9.6

889
2

Il team Libretro ha da poco ufficializzato il rilascio della versione 1.9.6 del frontend retroArch, posticipata in seguito alla scomparsa di Near.

Questa nuova versione si concentra principalmente sulla correzione di bug su PC Windows e Linux. Di seguito vengono riportate le Note di rilascio e i Punti salienti.

Note di rilascio

Utenti Windows (con driver audio XAudio2): RetroArch in precedenza si bloccava se si disconnetteva il dispositivo audio. Ad esempio, questo potrebbe accadere se si sta giocando con le cuffie accese e si decide di scollegare improvvisamente le cuffie. Questo è stato corretto. Invece di bloccare il programma, ora il suono viene semplicemente perso.

I problemi di sicurezza relativi al servizio AI su Windows sono stati corretti.

Sono stati apportati miglioramenti al programma di installazione di Windows. Questo dovrebbe (si spera) impedire che situazioni potenzialmente disastrose si ripetano.

Ciò potrebbe accadere ad esempio quando l’utente ha indicato al programma di installazione di installare una directory a cui non dovrebbe puntare (come C:\Programmi per esempio o il desktop) e non ha ascoltato l’avviso.

Si spera che gli utenti Linux non debbano più subire arresti anomali quando si alternano tra la modalità video normale e quella con thread con OpenGL grazie a una patch di grant2258.

Il driver Direct3D 11 è migliorato per gli utenti Windows grazie a Stenzek (autore di DuckStation).

Diverse correzioni: Viene richiesto il supporto per il controllo tear. Se non è supportata, la presentazione in modalità flip non verrà utilizzata e Direct3D ricorrerà invece al modello blit legacy (modalità finestra meno ottimale e peggiore).

La gestione DXGI Alt+Invio è stata disabilitata poiché sarebbe in conflitto con l’interruttore della modalità a schermo intero di RetroArch.

Anche l’output non sincronizzato senza il modello flip dovrebbe essere corretto ora, quando il supporto tear è abilitato e viene utilizzato il modello flip, dovrebbe essere possibile avanzare rapidamente.

Punti salienti

Ottimizzata la scansione di grandi set di dati

Durante la scansione dei contenuti, la quantità di tempo necessaria per inviare ogni nuova voce alla playlist risultante aumenta in modo esponenziale con la dimensione della playlist.

Per i piccoli romset questo è in genere impercettibile, ma quando si ha a che fare con set di dati molto grandi (ad esempio romset arcade) la scansione diventa rapidamente poco pratica.

Un romset arcade completo potrebbe richiedere diverse ore per una scansione completa o addirittura giorni su Linux (dove alcune operazioni sui file che sono un NOOP su Windows, ecc..).

Ciò accade perché la routine “push entry to playlist” è altamente inefficiente. Deve verificare se la voce aggiunta esiste già nella playlist, il che richiede un confronto del percorso del contenuto, che a sua volta comporta diverse operazioni costose per risolvere percorsi di file “reali” e gestire eventuali incongruenze nella notazione del percorso di archivio.

Il problema è che queste costose operazioni si verificano ogni volta: spingere una voce nella playlist e processerà e confronterà ogni percorso di contenuto esistente finché non trova (o non trova) una corrispondenza; premi un’altra voce ed elaborerà nuovamente ogni percorso. Una volta che una playlist raggiunge un paio di migliaia di voci, questa costante rielaborazione interrompe il processo di scansione.

Questa versione corregge il problema memorizzando nella cache tutti i parametri derivati ​​dai percorsi dei contenuti al primo utilizzo, quindi quando si inviano più voci alle playlist le costose operazioni di percorso vengono eseguite solo una volta per voce esistente.

Inoltre, le chiavi hash vengono utilizzate per ridurre al minimo i lunghi confronti di stringhe. Ciò migliora notevolmente l’efficienza della scansione dei contenuti e anche delle funzionalità di gestione delle playlist (poiché richiedono ricerche di playlist nidificate, che ora utilizzano anche i valori/hash del percorso del contenuto nella cache).

Ad esempio, prima con la versione 1.9.5 (e versioni precedenti), era effettivamente impossibile scansionare file da 100 mila file. Ora con la versione 1.9.6, su di una macchina di sviluppo con specifiche basse che esegue Linux si riesce a raggiungere risultati simili:

  • Una scansione manuale di 100.000 file richiede 20 minuti.
  • L’esecuzione di un’operazione di pulizia della playlist sulla playlist risultante richiede 5 minuti.

Aggiunto il supporto per la mappatura di più controller su di un singolo dispositivo di input

Questa versione aggiunge il supporto per la rimappatura di singoli controller a dispositivi di input core arbitrari. Ciò consente di assegnare più controller a un ingresso. Per configurarlo, è stata aggiunta una nuova opzione Mapped Port al menu Quick Menu > Controls > Port N Controls:

Qui, i controlli della porta 2 si riferiscono al controller fisico; Mapped Port si riferisce alla porta principale che riceverà l’input da questo controller.

Ad esempio, per mappare i controller fisici 1 e 2 all’ingresso del giocatore 1 di un core, impostare quanto segue:

  • Port 1 Controls > Mapped Port > 1
  • Port 2 Controls > Mapped Port > 1

Esistono vari casi d’uso per questa rimappatura:

  • Consente di utilizzare più controller durante la riproduzione di giochi multiplayer hotseat che normalmente supportano solo un singolo controller.
  • Consente di utilizzare i controller di tipo ibrido (ad esempio due joystick montati in un cabinet) come un unico dispositivo.
  • Consente di scambiare facilmente gli ingressi del giocatore 1/giocatore 2 (ecc..), ad esempio, quando la versione PSX di Metal Gear Solid chiede al giocatore di collegare il controller alla porta 2.

Si noti che queste impostazioni di configurazione sono indipendenti dal file di configurazione principale di RetroArch. Per rendere persistenti le modifiche, è necessario salvare un file di rimappatura Core, Content Directory o Game.

Questa nuova versione corregge anche un problema di vecchia data durante la configurazione delle rimappature: prima, le modifiche al tipo di dispositivo e al tipo da analogico a digitale tramite il menu rapido mentre un core è in esecuzione verranno “trasparenti” nel file di configurazione principale.

Questo è un comportamento dannoso e poco intuitivo. Con la versione 1.9.6, le impostazioni globali per questi valori vengono memorizzate nella cache durante l’inizializzazione di un core e ripristinate quando il core viene scaricato.

Questa è diventata essenzialmente una necessità per utilizzare la funzionalità di rimappatura delle porte, poiché è piuttosto facile creare configurazioni complesse che non dovrebbero in alcun modo toccare il file di configurazione principale…

Miglioramenti all’usabilità “Analog to Digital Type”

RetroArch è in grado di mappare la levetta analogica sinistra o destra di un gamepad all’ingresso D-Pad tramite l’impostazione del menu Analog to Digital Type per porta.

Sfortunatamente, questa è una “trappola” per i nuovi utenti: mappare uno stick in questo modo disabilita il suo ingresso analogico, il che crea confusione quando si utilizzano core con supporto analogico nativo.

Molti utenti abilitano Analog to Digital Type per impostazione predefinita, quindi si lamentano su reddit/discord che i controlli analogici non funzionano per PSX/N64/ecc..

La versione 1.9.6 modifica la funzionalità Analog to Digital Type in modo che possa essere disabilitata automaticamente per i core con supporto analogico nativo. L’impostazione ora ha i seguenti valori:

  • None: Nessuna mappatura.
  • Left Analog: Mappa la levetta sinistra sul D-Pad, ma disabilita la mappatura se il core tenta di leggere l’input analogico.
  • Right Analog: Mappa la levetta destra sul D-Pad, ma disabilita la mappatura se il core tenta di leggere l’input analogico.
  • Left Analog (Forced): Mappa sempre la levetta sinistra sul D-Pad, disabilitando l’input analogico della levetta sinistra.
  • Right Analog (Forced): Mappa sempre la levetta destra sul D-Pad, disabilitando l’input analogico della levetta destra

Inoltre, è stata aggiunta una sottoetichetta alle voci del menu Analog to Digital Type, che dovrebbe aiutare a spiegare cosa fanno effettivamente.

Infine, questo PR ha richiesto alcune modifiche al codice relativo all’overlay di input, durante il quale sono stati corretti i seguenti bug:

  • Non c’è più contesa tra gli input dello stick analogico quando un overlay di input e un controller fisico sono collegati alla stessa porta.
  • Le sovrapposizioni di input non generano più input da levetta analogica oltre all’input D-Pad quando Analog to Digital Type è impostato sullo stick sinistro o destro.

Miglioramenti alla sicurezza del servizio AI (Windows)

Sono stati apportati diversi miglioramenti relativi alla sicurezza alla funzionalità del servizio AI per Windows nel tentativo di risolvere i problemi che potrebbero essere oggetto di abuso.

L’input vocale non viene più inviato come argomento della riga di comando a PowerShell e sia i parametri della lingua che quelli della velocità sono stati correttamente ripuliti e ora consentono solo il passaggio di alcuni valori sicuri codificati.

Questo dovrebbe mitigare la maggior parte degli attacchi che potrebbero essere pensati per quanto riguarda l’iniezione.

Miglioramenti al programma di installazione di Windows

Sono state messe in atto diverse misure di sicurezza per impedire alle persone di commettere errori gravi durante il processo di installazione su Windows. Con il programma di installazione, non è più possibile installare RetroArch in una directory che contiene file o sottodirectory esistenti.

Invece, deve essere scritto in una nuova directory. Dobbiamo insistere su questo perché il processo di disinstallazione comporta la cancellazione dell’intera directory di RetroArch e di tutto ciò che contiene.

In passato, le persone avrebbero potuto fare l’errore di puntarlo a C:\Programmi senza metterlo in una sottodirectory separata, con risultati disastrosi alla disinstallazione.

Sebbene il programma di installazione abbia avvertito di ciò e ti abbia chiesto con una finestra di dialogo se eri sicuro, tuttavia non possiamo correre questo rischio per cominciare. Questo è stato risolto semplicemente negando che ciò accadesse costringendoti a installare RetroArch in una nuova directory vuota.

Changelog

  • ARCHIVIO: Correzione del rilevamento del delimitatore di archivio quando il percorso del file non contiene barre.
  • ANDROID: Non duplica gli input del mouse e della pistola della porta 0 su altre porte.
  • AUDIO/XAUDIO2: Fallisce invece di bloccarsi quando si disconnette un dispositivo audio.
  • CHEEVOS: Ripristina i progressi memorizzati nella cache ogni volta che si apre il menu.
  • CRT/SWITCHRES: Aggiunto il supporto per il core switchres.ini e le sostituzioni di directory.
  • D3D11: Non utilizza il flag di strappo consentito con le catene di scambio blit. Disabilita anche il modello di ribaltamento se il flag Consenti tearing non è supportato.
  • D3D11: Disabilitata la gestione ALT+ENTER di DXGI.
  • D3D11: Non passare ALLOW_TEARING quando non è supportato.
  • D3D11: Correzione dell’output non sincronizzato senza flip, schermate nere a schermo intero.
  • D3D12: Riposizionato ‘d3d12_gfx_sync’.
  • D3D12: Corretta l’opzione per lo scambio dell’intervallo.
  • GFX: Corrette le variabili non inizializzate in gfx_display_draw_cursor.
  • CRONOLOGIA: Nascondi “Aggiungi ai preferiti” durante la visualizzazione di una voce della playlist dei preferiti.
  • INPUT: Miglioramenti dell’usabilità da “Analogico a digitale”.
  • INPUT: Aggiunto il supporto per la mappatura di più controller su un singolo dispositivo di input.
  • INPUT/REMAPPING: Aggiunto il supporto per la mappatura di più controller su un singolo dispositivo di input.
  • INPUT/LIGHTGUN: Associa il grilletto della pistola leggera al primo pulsante del mouse per impostazione predefinita.
  • INPUT/WINDOWS/RAWINPUT: Correzione della violazione dell’accesso al mouse.
  • INPUT/UDEV: Aggiunge il mouse solo se ha pulsanti e aggiungi nomi amichevoli del dispositivo vebose.
  • INPUT/UDEV: Salta il mouse senza errori di pulsante e mantieni il resto.
  • INPUT/UDEV: Corretta la modalità Game Focus.
  • INPUT/UDEV/X11: Sostituito il driver udev per il supporto dual lightgun in X11.
  • LIBNX/SWITCH: Aggiornamento a libnx 4.0.0.
  • LOCALIZZAZIONE: Recuperate le traduzioni da Crowdin.
  • LOCALIZZAZIONE: Corretti i testi del menu Switchres.
  • MENU/OZONE: Assicura che lo stato di visualizzazione della barra laterale sia aggiornato correttamente durante l’esecuzione della navigazione rapida nel menu.
  • MENU/XMB: Correzione dinamica dello sfondo.
  • MENU/XMB: Correzione dell’opacità dell’icona.
  • MENU/QT/WIMP: Corretto il rilevamento del core predefinito quando il nome del file della playlist non corrisponde a ‘db_name’.
  • PLAYLIST: Ottimizzata la scansione di grandi set di dati.
  • SICUREZZA: Collegata la cosiddetta vulnerabilità ad alto rischio relativa a Powershell – evita l’iniezione – non inviare input vocale come argomento della riga di comando.
  • UWP/XBOX: Aggiunte risorse espanse Rescap per aumentare le prestazioni della versione UWP in modalità app su Xbox.
  • WINDOWS/INSTALLER: Aggiunta un’implementazione di riferimento isEmptyDir più intelligente che cerca le sottodirectory dalla documentazione NSIS.
  • WINDOWS/INSTALLER: Registra la nuova funzione DirectorySet che viene chiamata quando si preme il pulsante “Avanti” sulla MUI_PAGE_DIRECTORY, ovvero la GUI di selezione della cartella di installazione. DirectorySet contiene i criteri per una cartella accettabile, che sono:
    • IfFileExists “$INSTDIR\retroarch.exe” restituisce 1
    • IfFileExists “$INSTDIR\*.* restituisce 0, non esiste alcuna cartella
    • IfFileExists “$INSTDIR\*.*” restituisce 1 , c’è una cartella, e isEmptyDir restituisce 1, quindi la cartella è vuota, comprese le sottodirectory.
  • X11: Correzione del segfault video con thread.

Download: RetroArch v1.9.6 (tutte le piattaforme)

Download: Source code RetroArch v1.9.6

Link: Collegamento Patreon

Fonte: libretro.com

2 Commenti

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.