Rilasciato emulatore RPCS3 v0.0.12 Alpha

Disponibile un nuovo aggiornamento alpha per RPCS3, l’emulatore ci permette di riprodurre fedelmente quasi tutti i giochi della PlayStation 3 su PC Windows e Linux.

RPCS3 ha iniziato lo sviluppo all’inizio del 2011 da una piccola squadra di programmatori guidati da DH Hykem, attualmente supporta i moderni renderer DirectX 12, Vulkan e OpenGL. Ad oggi lo sviluppo viene seguito dal developer Nekotekina insieme ad altri collaboratori.

Aggiornamenti

Se si esegue l’emulatore in Windows, basta trascinare l’eseguibile aggiornato nella directory principale della cartella RPCS3. Di volta in volta potrebbero venir aggiunte o modificate nuove DLL, assicuratevi di copiare anche questi file eventualmente.

Se invece si esegue l’emulatore in Linux, è necessario scaricare l’AppImage aggiornato e renderlo eseguibile con il comando chmod a+x ./rpcs3-*_linux64.AppImage.

Requisiti

Trattandosi di un emulatore in continuo sviluppo, i requisiti di sistema potrebbero variare da versione a versione. Tuttavia sono stati riportati i requisiti di sistema minimi che devono essere soddisfatti affinché l’emulatore possa funzionare correttamente su qualsiasi sistema.

Changelog v0.0.12 Alpha

Core

  • Usa sempre Emu.Quit() per uscire da RPCS3 (#8550).
  • Rendi “Impedisci la sospensione dello schermo durante l’esecuzione del gioco” un’impostazione dinamica (#8550).
  • Corretto l’errore di parametro non valido sceNpDrmGetTimelimit (#8561).
  • Lettura e scrittura Log RawSPU MMIO (#8572).
  • Imposta il livello di log della patch applicata su successo (#8582).
  • Implementato lo scambio di byte constexpr e crea bit_cast constexpr in casi semplici (#8501).
  • Garantisci allocazioni 64k allineate in utils::memory_reserve (#8598).
  • Reso spu_thread::offset privato (#8598).
  • Imposta il livello di log hash eseguibile su successo (#8610).
  • Aumenta il tempo di sospensione lv2 sulla cellSaveData (#8507).
  • Sostituito s32 per il tipo restituito codice_errore su diversi moduli HLE (#8594).
  • Corretto il problema con il messaggio di registrazione di sceNpCommerce2CreateCtx (#8594).
  • Usa not_an_error in sys_spinlock_trylock (#8594).
  • Correzione del test is_constructible (#8627).
  • Corretti alcuni avvisi sonori (#8629).
  • Migliorata la gestione degli errori durante il caricamento della configurazione (#8647).
  • Sposta cheats.yml nella cartella patch e migliora gli errori del parser (#8641).
  • Non aprire una finestra di dialogo di errore in modalità headless (#8648).
  • Interrompi con grazia la modalità headless con renderer video non supportati (#8658).
  • Correzione minore del percorso “ppu non specifico” di _sys_lwcond_signal, limita il percorso ppu non specifico solo all’id ppu u64 (UINT32_MAX), prima che ogni id fosse uguale a UINT32_MAX come UINT64_MAX (#8661).
  • Crea errori nei log di configurazione anziché fatali, evita conflitti tra build work in progress con nuove impostazioni (#8677).
  • Aggiunta l’override della configurazione come cli arg: --config (#8676).
  • Sostituita la funzione ppu_module_manager Static con la variabile Class Static (#8669).
  • Accedi al nome utente locale (#8699).
  • Correzione della perdita di “BLIST” e delle informazioni sui file in Save Data PARAM.SFO (#8706).
  • Aggiunto il supporto per la compilazione sulla toolchain x64 di MSVC e modificato il flag di ottimizzazione da Ox a O2 (#8732).
  • Corretto un bug di aggiornamento della prenotazione della memoria virtuale che aumentava incondizionatamente il timestamp della prenotazione anche quando i bit di blocco erano impostati (#8736).

CPU

  • Correzione dell’accodamento dei comandi della barriera su SPU LLVM (#8544).
  • Corretto il problema con il controllo dei limiti dello stack di funzioni sul debugger PPU (#8549).
  • Mostra l’indirizzo dello stack di ogni funzione su PPU Debugger (#8549).
  • Ottimizzazioni per blocchi di prenotazione e check_state per il percorso non TSX (#8358).
  • Disabilita il rilevamento dei trasferimenti NOP PUTLLC per il percorso TSX (#8358).
  • Implementato il rilevamento polling SPU GETLLAR (#8358).
  • Corretto il conteggio dei canali WrTagUpdate di SPU MFC. Report sempre disponibile, in hardware reale questo è solo un suggerimento se il precedente aggiornamento del tag non è stato ancora verificato dall’MFC, evitando di bloccare le scritture e consentendo alla SPU di eseguire del codice mentre elabora la precedente richiesta di aggiornamento, ad eccezione di MFC_TAG_UPDATE_IMMEDIATE, dove attende anche che MFC lo elabori (#8543).
  • Non cancella mai lo stato dei tag e ottimizzate le richieste di aggiornamento dei tag non costanti in WrTagUpdate (#8543).
  • Ottimizza i carichi e gli archivi di archiviazione locale su SPU LLVM. Consentendo all’archiviazione locale della SPU di aggirare gli overflow di indirizzamento intorno a 256k + – i negozi/carichi di offset possono non mascherare il valore immediato dopo il calcolo della somma degli indirizzi.
    Questo fa sì che utilizzi un’istruzione di calcolo dell’indirizzo di memoria x86 nativo (ad esempio come istruzione LEA) invece di separarla in istruzioni diverse e mascherarla ogni volta (#8592).
  • Evita il bloccaggio non necessario in alcune situazioni su SPU LLVM provando a verificare quando l’istruzione FM produrrà un risultato nell’intervallo normalizzato per l’hardware a virgola mobile x86 ed evitando di bloccare il risultato quando viene utilizzato da un’altra istruzione (#8397).
  • Usa notifiche atomiche in attesa diretta su ogni canale SPU invece di fare affidamento sul sistema di notifica globale specifico del thread (#8507).
  • Migliorata la corrispondenza delle espressioni su PPU e SPU Translators, consentendo un semplice utilizzo della corrispondenza delle espressioni su PPU LLVM, consentendo anche di rilevare più espressioni di corrispondenza per SPU LLVM (#8620).
  • Supporto abilitato alla modalità Non-Java, che originariamente si comporta come FTZ (Flush-To-Zero) e DAZ (Denormals-Are-Zero) entrambi abilitati su x86 (#8617).
  • Corretto il problema con “PPU LLVM Accurate Vector NaN values” per rispettare effettivamente il valore delle impostazioni su LLVM che in precedenza era abilitato incondizionatamente nella maggior parte dei casi (#8617).
  • Corrette le istruzioni PPU DIVW, DIVWU, MULHW, MULLW e MULHWU quando op.rc è impostato (#8630)
  • Ottimizzato PPU VSEL e SPU SELB con maschera costante, possiamo emettere Select invece di una serie di istruzioni quando la maschera costante non necessita di granularità bit (#8559)
  • Evita lo scambio di endian ridondanti su SPU LLVM. Quando i giochi caricano un dato e quindi usano SHUFB per trasformarlo, possiamo gestire questo caso usando PSHUFB senza trasformazione, poiché l’ordine dei byte invertito della maschera quando interpretato da PSHUFB è effettivamente vantaggioso in questa situazione (#8537).
  • Semplificato un po’ di codice SPU utilizzando la trasmissione di byte (#8638).
  • Corrette le esecuzioni mancate del thread SPU cpu_stop. Se il thread SPU è stato interrotto MOLTO all’inizio della sua esecuzione, non entrerà nemmeno in spu_thread::cpu_task() che era necessario per chiamare spu_thread::cpu_stop(). Per risolvere questo problema, spostalo in modo che sia un callback di cpu_flag::ret e aggiunto questo flag allo stato di tutti i thread quando li interrompi. Corretti potenziali deadlock in sys_spu_thread_group_join ecc.. Quando cpu_stop() non è chiamato (#8656).
  • Implementata l’opzione thread SPU 0x2 SYS_SPU_THREAD_OPTION_DEC_SYNC_TB_ENABLE. Se specificato in sys_spu_thread_initialize, il timestamp SPU è sempre uguale al proprio complemento dei 32 bit inferiori del timestamp PPU (#8657).
  • Corretto il traduttore CPU get_const_vector. Aggiunto il supporto per interi a 128 bit, costruirlo utilizzando la base llvm::APInt, corregge l’uso di llvm::ConstantExpr, non possiamo valutarlo come dati costanti (#8652).
  • Corretto il problema con la gestione di VMAXFP, VMINFP NaN su PPU LLVM (#8659)
  • Corretto il problema con VMAXFP NaN e la gestione degli zeri con segno su interpreti PPU (#8659).
  • Migliorate le funzioni fre e frsqe di CPU Translator per accettare espressioni non valutate, valutale sul posto (#8659).
  • Aggiunto il rilevamento per Icelake-client tier AVX-512 (#8700).
  • Correzione della gestione degli zeri con segno FMA su PPU e SPU LLVM (#8694).
  • Correzione della gestione degli zeri con segno su Accurate XFloat su SPU LLVM (#8694).
  • Usa AVX-512 VPERM2B per emulare VPERM su PPU LLVM, risparmia su 2 pshufbs, 1 turno e 1 miscela (#8704).
  • Implementate prenotazioni accurate RSX sul percorso TSX (#8721).
  • Migliora il rilevamento FMA, aggiunti casi mancanti per + -0 per CPU che non supportano FMA hardware (#8709).
  • Ottimizzato il percorso FMA hardware VNMSUBFP PPU (#8709).
  • Aggiunti percorsi ottimizzati per icelake AVX-512 per l’istruzione SPU LLVM SHUFB (#8712).
  • Migliorato il percorso approssimativo  SPU LLVM FCGT XFloat, corretti alcuni bug con + – intervallo di float SPU esteso (x86 NaN), migliorando le prestazioni in teoria a causa della rimozione di tutte le dipendenze delle costanti vettoriali e consentendo l’esecuzione fuori ordine per la maggior parte dei passaggi, aggiunta ottimizzazione per quanto riguarda le costanti diverse da zero (#8728).
  • Corretto il problema con il debugger PPU che esegue il passaggio su un percorso non TSX (#8749).
  • Corretti gli eventi del timer SPU. L’evento è stato generato fintanto che il valore era negativo e fintanto che ch_dec_value era 0 (#8754).
  • Implementata la mnemonica PPU SLWI, SRWI, SLDI sul debugger, dovrebbe eliminare la maggior parte delle istruzioni di rotazione e mascheramento non elaborate a favore di forme semplici (#8750).
  • Corretti i bug relativi agli eventi SPU che non riuscivano a riconoscere gli eventi o scartare gli eventi, raccogliendo tutti gli eventi verificatisi prima di determinati punti (#8771).
  • Non controlla tutti gli eventi SPU quando non è necessario (#8771).

RSX

  • Corrette le perdite di query ZCull dopo la barriera elaborando tutte le query prima di completare la barriera (#8538).
  • Implementata la barriera ZCull veloce quando l’oggetto query è già noto (#8538).
  • Corretti i descrittori di trasferimento per le sezioni parzialmente sovrapposte nella testa, l’altezza leggibile deve essere corretta per saltare il pezzo che esiste prima della sezione corrente (#8545).
  • Unifica il codice di completamento del comando ZCull, consente di valutare i condizionali con un forwarder presente (#8555).
  • Vulkan: Inietta la barriera di memoria alla conclusione di un ciclo di feedback del framebuffer, non scrivere sulla texture fino a quando la precedente chiamata di disegno non è stata completata (#8563).
  • Supporta descrittori di texture parziali, è sicuro dichiarare larghezza > passo e funziona fintanto che il campionamento all’interno dell’area 2D legale viene rispettato (#8568).
  • Consenti al test dei limiti di profondità di accedere al buffer Z anche quando il test di profondità è disabilitato (#8575).
  • Corretto il problema con il conteggio delle estrazioni quando gli intervalli di estrazione sono fuori ordine, è normale che i conteggi delle estrazioni vengano troncati a 256 anche quando non ha senso farlo (#8583).
  • Rimossa la forza bruta di superfici sostituite, la soluzione precedente era più elegante ma facilmente inciampata su falsi positivi (#8590).
  • Corretti i falsi eventi di de-sincronizzazione causati da una mancata operazione alla fine di RSXIO quando put==get (#8595).
  • Vulkan: Assicurati che la texture in arrivo sia abbastanza grande da contenere quella originale per evitare la successione avanti e indietro (#8618).
  • Vulkan: Utilizza il gestore delle risorse per rimuovere le texture obsolete per evitare di trattenere quelle che “perdono” la VRAM, la memoria non perde, sta solo sprecando spazio nel pool temporaneo fino a quando il renderer non è chiuso (#8618).
  • vulkan: Migliorato il gestore della memoria video per tentare il ripristino in situazioni di memoria insufficiente (#8618).
  • Corretto il problema con la cache che salta gli shader al caricamento e la compilazione nella compilazione a thread singolo (#8633).
  • Propaga il tipo raster di dati di origine FBO in tutta la pipeline. Tiene traccia del tipo di raster (ordinato Z vs linear) in tutta l’applicazione, consentendo di identificare se i dati sono nel formato previsto o meno (#8664).
  • Decodifica i dati della GPU scambiati durante la rilettura della CPU (#8664).
  • Reimposta automaticamente il flag di swizzle su false al ripristino della sezione (#8696).
  • Rileva il payload di destinazione del rendering ed estrai le informazioni di swizzle da esso (#8696).
  • Abbina correttamente image_type -> image_view_type per le texture fittizie nel segnaposto (#8679).
  • Unifica la creazione e la gestione delle texture composite, gestisci tutte le routine comuni in modo unificato per evitare di avere un percorso interrotto (#8710).
  • Semplificato il supporto per i formati ABGR mappando questi formati al layout RGBA (#8713).
  • Corretto il supporto per i valori >= (1<<31) in rsx::ceil_log2 a causa di bug di trasporto bitshift (#8727).
  • Supporto di base per la creazione di formati di float di profondità (#8769).
  • Separa i formati di profondità uint dai formati di profondità float (#8769).
  • Non crea texture di profondità come obiettivi del motore blit (#8769).
  • Vulkan: Implementato il trasporto per i dati D24S8_FLOAT (#8769)
  • Refactoring e migliorate le routine di manipolazione della memoria delle immagini (#8769).
  • Corretto il problema con la corrispondenza del formato durante l’aggregazione delle texture, durante la copia della profondità, preferire il proprio formato rispetto al formato int profondità (#8769).
  • Aggiunti altri messaggi diagnostici per le impostazioni di trasferimento delle immagini non ottimizzate (#8769).
  • Vulkan: Aggiunte push_barrier per consentire la semantica push-pop per l’inserimento della barriera delle texture (#8769).
  • Implementato correttamente il filtro delle ombre durante l’esecuzione del confronto ombra emulato (#8794).
  • Vulkan: Migliorata la gestione di D16F, aggiunte routine di caricamento e download (#8796).
  • Vulkan: Aggiornato SDK dalla versione 1.2.135 alla versione 1.2.148, aggiornando la compatibilità ABI alla versione più recente a partire dalla data di questo tag (#8796).

Audio

  • Implementato il downmix a 5.1 (#8322).
  • Resa dinamica la maggior parte delle impostazioni audio ripristinando il backend audio quando si applicano le modifiche alla configurazione (#8322).

Network

  • Usa l’impostazione DNS dell’emulatore per sys_net_infoctl (#8557).
  • Implementata una grossa fetta di funzionalità sceNp e il client RPCN (#8663).

Input

  • Distingue i modificatori sinistro e destro sui tasti Ctrl e Maiusc su Windows (#8480).
  • Controlla se i callback della GUI sono nullptr (#8553).
  • Corretti i tasti freccia di assegnazione per il gestore della tastiera su Impostazioni pad (#8571).
  • Aggiunti moltiplicatori di stick alle impostazioni dei pad (#8553).
  • Aggiunti i parametri dello squircle del pad alle Impostazioni del pad e mostra il valore quando vengono inviati al gioco come punto rosso (#8580).
  • Risolto il problema con l’anteprima dello stick per i pad scollegati (# 8580).
  • Aggiunta casella di controllo per valori stick emulati (#8580)
  • Corretto il problema con l’assegnazione di Guitar Hero Live Guitar, potrebbe essere potenzialmente sovrascritta se fossero presenti più dispositivi USB (#8682).
  • Registra le informazioni sull’asse evdev in Impostazioni pad (#8745).
  • Supporto per la pistola Namco GCon3 (#8757).

Overlay

  • overlay_edit_text: Implementato il cursore verso l’alto e verso il basso (#8342).
  • Corretto il ritaglio di testo imprevisto (#8622).

GUI

  • Seguite le convenzioni di denominazione di Sony sulle categorie di app (#8539).
  • Corretti i crash casuali di QWinTaskbarProgress (#8541).
  • Refactoring del codice cURL in un downloader (#8541).
  • Implementata la funzionalità in background nell’aggiornamento dell’emulatore (#8541).
  • Corretto il controllo degli aggiornamenti quando l’utente è già sulla versione più recente (#8547).
  • Salva solo i giochi di proprietà impostando lo stato su Patch Manager (#8551).
  • Aggiunta area di scorrimento a Impostazioni pad (#8553).
  • Usa la casella dei pulsanti per la maggior parte dei pulsanti (#8553).
  • Corretto il menu di aggiornamento sui sistemi operativi Unix, aggiunge un menu normale al posto del widget nell’angolo (#8569).
  • Correzione del ridimensionamento delle impostazioni del pad quando si cambia scheda (#8571).
  • Corretto il conteggio dei comandi su comandi non di metodo in RSX Rebugger, i non metodi non hanno argomenti aggiuntivi il loro conteggio dovrebbe essere visualizzato come 0 (#8578).
  • Aggiunii suggerimenti a Impostazioni pad (#8581).
  • Corretti i pulsanti QSpinBox e QDoubleSpinBox del tema Skyline (#8586).
  • Corretto il problema con lo sfondo del tema YoRHa per alcuni widget (#8586).
  • Consente la compilazione con QT 5.15 (#8584).
  • Corretta la visibilità del “Aggiornamento disponibile!” nelle opzioni di menu (#8646).
  • Migliorati i messaggi di errore nell’installazione del firmware (#8643).
  • Cheat Manager: Corretti i lunghi elenchi di ricerca, disabilita i pulsanti di ricerca se non è stato inserito nulla nel campo di ricerca, utilizza i valori enum per le colonne (#8641).
  • Corretto il problema con la GPU mancante nel titolo della finestra di gioco (#8660).
  • Spostati i titoli di gioco, il gioco e salva le note sui dati e l’utente attivo nelle impostazioni persistenti (#8671).
  • Correzione del ritardo di input nelle impostazioni del pad (#8685).
  • Rinominato “Installa PKG” in “Installa pacchetti/Raps”, ora accetta più file PKG e RAP (#8688).
  • L’installazione di più pacchetti ora apre la stessa finestra di dialogo dell’azione di trascinamento della selezione (#8688).
  • L’installazione dei file RAP ora sovrascrive i vecchi file e genera un errore se ciò non è possibile (#8688).
  • Aggiunto Advanced, Emulator e GUI per configurare il menu a discesa (#8702).
  • Spostato l’accesso con prenotazione RSX accurato alla scheda Advanced (#8702).
  • Corretti gli stili della casella di controllo degli elementi TreeWidget del tema YoRHa (#8724).
  • Imposta QT_AUTO_SCREEN_SCALE_FACTOR su 0, questo valore è deprecato ma sembra ancora causare problemi su alcune distribuzioni Unix (#8724).
  • Aggiunte le informazioni sugli eventi dei gestori RSX a Kernel Explorer (#8748).
  • Usa la formattazione esadecimale con segno per gli immediati nel debugger (#8751).
  • Corretto il problema con lo scorrimento delle istruzioni utilizzando i tasti PageUp, PageDown, KeyUp e KeyDown (#8758).
  • Corretto l’editor delle istruzioni PPU, non riusciva a patchare le istruzioni perché si trovano su una memoria di sola lettura. Utilizza la protezione da bypass della memoria per l’applicazione di patch. Corregge anche le patch di memoria non eseguibili (#8758).
  • Correzione dell’editor dei registri durante la modifica di tutti i registri SPU, registri PPU da f0 a f31, da v0 a v31, da r0 a r31 (#8758).
  • Aggiunto un nuovo set di “registri” all’editor dei registri PPU, “ff (index)”. Si riferiscono agli stessi registri a virgola mobile da f0 a f31 ma in formato virgola mobile a doppia precisione invece che esadecimale (#8758).
  • Aggiunti nuovi registri disponibili per la modifica in SPU Debugger: eventi MFC, maschera eventi MFC, maschera tag MFC, SRR0 e la maggior parte dei canali SPU (#8758).
  • Aggiunti PC/CIA all’editor dei registri (#8758).
  • Corretto il problema con il reindirizzamento della visualizzazione dell’indirizzo PPU, rimuovendolo poiché era difettoso dall’inizio (#8758).
  • Corretto il problema con l’input vuoto nell’Editor dei registri (#8774).
  • Aggiunte skin di Nekotekina (#8776, #8809)
  • Aggiunto l’occultamento automatico del cursore del mouse se inattivo, configurabile (#8795)

Miscellaneous

  • Carica manualmente la versione Github di Windows utilizzando cURL (#8715, #8738).
  • Evita copie di stringhe ridondanti in psf::array/string/get_string (#8707, #8760, #8780).
  • Forza MSVC Toolkit a 14.25.28610 in Azure Pipelines (#8778).

Attenzione: Queste versioni alpha vengono compilate di rado, pertanto potrebbero presentare qualche bug, in tal caso scaricare sempre la versione più recente dalla sezione download di rpcs3.net.

Se cerchi una guida su come configurare e settare l’emulatore RPCS3, clicca qua!!

Download: RPCS3 v0.0.12 Alpha

Fonte: github.com

(Visited 1 times, 2 visits today)

Lascia un commento

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