Home Emulatori Pubblicato un nuovo aggiornamento per shadPS4: più giochi avviabili, supporto Unreal Engine...

Pubblicato un nuovo aggiornamento per shadPS4: più giochi avviabili, supporto Unreal Engine e interfaccia migliorata

322
0

Pubblicato un nuovo aggiornamento per shadPS4, l’emulatore open source della console PlayStation 4 per PC Windows, MacOS e Linux sviluppato da georgemoralis, meglio noto sulla scena come shadow, fondatore e programmatore di molti altri progetti di emulazione.

Avviato nell’ottobre 2022 e scritto in C++, l’emulatore è ancora in una fase preliminare, il che significa che non garantisce un’esperienza perfetta per tutti i titoli.

Già prima di questo aggiornamento, shadPS4 era in grado di avviare diversi giochi commerciali: Bloodborne è considerato tra i più giocabili, soprattutto se affiancato da mod che correggono i bug grafici.

Altri titoli di grande richiamo, come Red Dead Redemption, Dark Souls Remastered e Resident Evil 4, sono avviabili ma soffrono ancora di cali di framerate e glitch visivi. I giochi più leggeri, come BlazBlue: Cross Tag Battle e Capcom Fighting Collection, risultano invece quasi perfetti.

L’aggiornamento appena pubblicato è comunque molto ricco di novità. Dal punto di vista del core, è stata migliorata la gestione della memoria, standardizzate le librerie HLE, corretti i comportamenti del filesystem e aggiunto il supporto al microfono.

Introdotti inoltre meccanismi più sicuri per la validazione degli indirizzi di memoria, corretta la gestione dei thread e dei registri MXCSR e FPUCW, e migliorata la stabilità generale.

Importante anche il fatto che i giochi che utilizzano Unreal Engine ora iniziano ad avviarsi correttamente e alcuni risultano persino giocabili, un passo avanti significativo nella compatibilità.

Le librerie di sistema hanno ricevuto numerosi aggiornamenti: è stato implementato il supporto alla risoluzione interna per migliorare la qualità grafica e introdotte nuove funzioni di rete per aumentare la compatibilità con le API di OpenOrbis.

Migliorata anche la gestione dell’audio (incluso l’audio 3D e il supporto all’altoparlante del DualShock 4), risolti artefatti grafici nei filmati tramite aggiornamenti a ffmpeg, e migliorata l’emulazione di molte funzioni legate a fotocamera, VR, input e salvataggi.

Il recompiler degli shader è stato ottimizzato in maniera sostanziale, correggendo casi limite di istruzioni vettoriali, migliorando l’accuratezza delle esportazioni degli shader, supportando più attributi per i vertex fetch e implementando operazioni avanzate come MUBUF per short/byte e V_ADD_F64 per calcoli in double precision.

Queste modifiche contribuiscono a una resa grafica più corretta e a una riduzione dei crash.

Sul fronte GPU e renderer Vulkan, è stato potenziato il sistema di cache delle texture e dei buffer, introdotta la gestione asincrona per il download delle immagini modificate dalla GPU, migliorata la pulizia della tile manager e aggiunto un sistema di garbage collector per ottimizzare l’uso della memoria video.

Sono stati corretti numerosi bug che causavano glitch visivi, ripristinata la gestione corretta dei parametri di blending e aggiunti fallback per i formati grafici non supportati.

L’interfaccia Qt ha ricevuto un corposo aggiornamento: ora è possibile selezionare e configurare controller multipli, personalizzare hotkey e preset, applicare patch e cheat in base alla versione del gioco, modificare il percorso dei DLC, regolare il volume globale e persino visualizzare i trofei con un suono dedicato.

Sono stati introdotti anche nuovi toggle per il logging, per la modalità di presentazione e per abilitare o disabilitare i readback delle immagini.

La GUI è stata resa più intuitiva, con categorie più ordinate e descrizioni per le opzioni sperimentali, ed è stato aggiunto il supporto alle opzioni FSR per migliorare le prestazioni su PC meno potenti.

Changelog

Core

  • Abilita mmap per memoria eseguibile.
  • Azzeramento dei bit più significativi in INSERTQ/EXTRQ.
  • Corretto l’unmap di file di sola lettura su Windows.
  • Standardizzati i nomi di RegisterLib per le librerie HLE.
  • Filesystem: corretto il trattamento del flag create in open
  • Se CONTENT_ID è vuoto in param.sfo, usare TITLE_ID come fallback.
  • Aggiunto un ramo “unreachable” quando si incontra ud2 invece di rimanere bloccati in un loop infinito.
  • Supporto microfono.
  • Aggiorna le configurazioni solo se si usa una build diversa.
  • Core: restituisce errore se l’indirizzo in DirectMemoryQuery è troppo alto.
  • IPC semplice per il controllo esterno.
  • Filesystem: corretto il comportamento in caso di errore per le chiamate close su handle standard.
  • Correzioni ai socket.
  • Aggiunte le voci . e .. in MntPoints::IterateDirectory
  • Registra CPU utente, RAM totale e sistema operativo nei log.
  • Filesystem: correzioni relative alle directory.
  • Memory: allineamento di dimensione e indirizzo in posix_munmap
  • Filesystem: astrazione nella gestione dei file di directory.
  • Sostituito l’uso diretto di wrgsbase e rdgsbase con una soluzione più portabile.
  • Config: aggiunta opzione “present mode”.
  • Configurazioni specifiche per gioco.
  • Migliorata la logica di validazione degli indirizzi di memoria.
  • Rimosse le verifiche per symbol version_major e version_minor
  • Correzione dei registri MXCSR e FPUCW nei thread creati.
  • Registra errore su MapMemory quando si esce dal caso di memoria flessibile.
  • Apre un dispositivo audio di input fittizio se nel sistema non è presente nessuno.
  • Supporto audio dallo speaker del DualShock 4.

Librerie (Libs)

  • libkernel: aggiunta esportazione mancante di mprotect
  • Correzioni IME.
  • video_out: supporto risoluzione interna.
  • Implementato sceKernelGetSystemSwVersion
  • Implementato sceAudio3dTerminate
  • Implementato sceAudioOutGetLastOutputTime
  • Registrato posix_rename
  • Implementato sceKernelError
  • Utilizzo di una libreria USB personalizzata.
  • Aggiunti inet_ntop e inet_pton
  • Estrazione netmask e gateway predefinito dal sistema host.
  • Implementata risoluzione DNS semplice.
  • Restituito il numero di campioni in coda in AudioOut.
  • Generato errore prima dell’apertura di un pad se non valido.
  • scePadResetOrientation
  • Corretto sceAudioOutOutputs
  • Corretta estrazione netmask per Windows.
  • Risolti vari problemi legati ai socket.
  • Implementato sys_getpeername
  • Implementato ORBIS_NET_CTL_INFO_HTTP_PROXY_CONFIG
  • Corretto get/setsockopt levels.
  • libkernel: aggiunte più funzioni di rete per compatibilità OpenOrbis.
  • libSceAppContent: usa gli ultimi 16 caratteri della cartella DLC per determinare l’etichetta di entitlement.
  • Reso libSceRtc completamente HLE.
  • Corretti artefatti verdi nei filmati/animazioni (ffmpeg).
  • Supporto per Select
  • libSceAppContent: determinazione etichette di entitlement dal file param.sfo dei contenuti aggiuntivi.
  • Corretto sceVoiceGetPortInfo
  • Corretto il trattamento delle date in formato RFC 3339.
  • libSceNpParty: stub per funzioni quando non si è in party.
  • Aggiunta libreria libSceNpProfileDialog stub.
  • Migliorati gli stub di libSceMove
  • Migliorati gli stub di libSceCamera
  • Implementato ORBIS_NET_SO_ERROR_EX in GetSocketOptions.
  • Migliorati gli stub di libSceHmd
  • Stub di libSceHmdSetupDialog
  • Stub di libSceVrTracker
  • semaphore: invertito ordine di priorità.
  • semaphore: corretto calcolo stato di attesa quando cancellato/eliminato.
  • Implementato send/recvmsg
  • libkernel: restituisce EINVAL se mmap è chiamato con length = 0
  • Correzioni SaveData.
  • Gestione flag evento null in cancel e clear
  • Supporto preliminare per AF_UNIX.
  • Pulizia delle librerie NP.
  • Implementato sceKernelIsInSandbox e aggiornato OrbisSysModule Enum.
  • equeue: alcune correzioni per sceKernelWaitEqueue
  • Implementati getargc e getargv
  • Implementazione semplice di sceGnmUnmapComputeQueue
  • kernel: miglioramenti alle condvars.
  • kernel: ulteriori pulizie del codice dei thread.

Ricompilatore Shader

  • Corretto V_ADDC_U32 per i casi limite di carry-out.
  • Riorganizzate le operazioni di data share e implementato GDS.
  • ir_passes: unificazione di readlane con pattern ff1.
  • Implementato ff1 con operazioni di sottogruppo.
  • Sostituito buffer pulling con attribute divisor per il passo di istanza.
  • Implementati barycentrici guest.
  • Corretto ff1_i32_b64 che non accettava vcc come argomento.
  • attribute: corretta la funzione di bary coord.
  • Evitata la pulizia di HTILE quando lo shader contiene calcoli di indirizzo.
  • Implementate istruzioni MUBUF per short/byte.
  • control_flow_graph: trattato branch condizionale vuoto come noop.
  • Corretto caricamento bary coord quando non supportato.
  • Uso del bit VM per il discard condizionale.
  • translate: corretta estrazione instance id negli shader locali.
  • Implementati V_ALIGNBYTE_B32 e V_ALIGNBIT_B32.
  • Rielaborato sharp tracking per maggiore robustezza.
  • Migliorata l’euristica per gli attributi passati tramite ring buffer.
  • ir: eseguita degamma nello shader quando il sampler imposta force_degamma.
  • Implementato V_CMP_GT_U6.
  • Migliorata l’accuratezza delle esportazioni shader (parte 1).
  • Non emettere Layer quando si emula tipo primitivo con tessellation.
  • vector_interpolation: risolte alcune asserzioni.
  • Supporto per attributi multipli usando lo stesso load nei vertex fetch shader.
  • Gestito S_LSHL_B32 in ParseCopyShader.
  • Inizializzati tutti i valori di ClipDistance e CullDistance.
  • Gestito ExecLo source in S_FF1_I32_B64.
  • Applicato tipo float per atomic buffer a 32-bit float.
  • constant_propagation_pass: gestite altre istruzioni bitwise.
  • Implementato V_ADD_F64 e caricamento di float a 64 bit da SGPR.
  • Gestiti offset e override dei formati nei fetch shader.
  • Allentata l’asserzione dual source blending per consentire fino a due target.
  • Permesso offset vettoriale e scalare negli argomenti di LoadBuffer/StoreBuffer.
  • Supporto per attributi PointSize e ViewportIndex.
  • image: non impostare l’uso di storage per formati con codifica a blocchi.

GPU

  • texture_cache: ripristinato depth resolve della nuova immagine al massimo delle risorse.
  • texture_cache: download asincrono delle immagini lineari modificate dalla GPU.
  • buffer_cache: reintrodotto batching degli upload e buffer temporaneo.
  • vk_rasterizer: impostata area di rendering allo scissor della finestra quando non ci sono framebuffer.
  • renderer_vulkan: gestite altre impostazioni GPU varie.
  • vk_instance: rimossa l’utilizzazione del depth clamp control.
  • liverpool_to_vk: non usare formati rimappati per i valori di clear.
  • vk_pipeline_cache: aggiunti fallback per R8Srgb e B5G6R5.
  • texture_cache: limitata altezza immagine buffer a quella di microtile.
  • vk_rasterizer: migliorata la pulizia dello stencil.
  • texture_cache: non modificare altezza mip per le copie nelle texture volumetriche.
  • video_core: implementato garbage collector (parte 1).
  • video_core: rielaborato tile manager.
  • texture_cache: accodare il download delle immagini solo se l’indirizzo è maggiore di zero.
  • video_core: corrette alcune comparazioni di struct.
  • vk_pipeline_cache: pulizia del refresh delle chiavi grafiche.
  • renderer_vulkan: ripristinato stato dinamico di color write.
  • vk_graphics_pipeline: priorità al depth clip quando il controllo clip/clamp separato non è supportato.
  • vk_pipeline_cache: aggiunte immagini di storage agli heap dei descrittori.
  • vk_scheduler: inizializzazione corretta delle strutture Vulkan in RenderState.
  • renderer_vulkan: ignorati i parametri di blending quando disabilitato.
  • vk_rasterizer: impostati i bit di flag immagine durante il resolve.
  • liverpool: scrittura query valide su PixelPipeStatDump.
  • amdgpu: riportato contatore di performance GPU in cicli GPU.
  • vk_rasterizer: assert su primitive restart solo durante indexed draw.
  • video_core: caricata memoria del buffer attorno a pagine non mappate.
  • video_core: corretti vari bug UE.
  • video_core: controllo del registro DB_SHADER_CONTROL prima di effettuare depth exports.
  • texture_cache: assicurato download in tempo delle immagini di readback.

Interfaccia QT

  • Estesa la rilevazione di Qt per supportare più drive.
  • Corretto il bug su gui emulatorLanguage.
  • Aggiunto slider del volume per regolare il livello audio globale dei giochi.
  • Disabilitato l’aggiornamento automatico su branch non ufficiali.
  • Aggiunto suono predefinito per i trofei.
  • Aggiunto toggle nelle impostazioni per i readback.
  • Applicazione di cheat/patch solo se AppVer corrisponde alla versione del gioco.
  • Supporto multi-controller: selezione controller attivo e possibilità di impostare controller predefinito.
  • Aggiunti hotkey personalizzabili per i controller.
  • Remapping GUI – altre piccole correzioni.
  • Corretto Play Time – non salvava ogni minuto.
  • Nome preset comune per config tastiera/pad tradotto nella lingua di destinazione.
  • Qt aggiornato alla versione 6.9.2 e rimosso workaround per Mac.
  • Qt: ordine imposto per il mapping stringhe kbm per evitare duplicati nelle combo.
  • Spostati i plugin Qt nella cartella qtplugins nelle build Windows.
  • Aggiunto toggle per abilitare/disabilitare il logging.
  • Qt: impedito salvataggio/annullamento dei dialoghi di remapping/hotkeys durante l’attesa input.
  • Aggiunta opzione per cambiare percorso DLC dalle impostazioni.
  • Uso di icone, musica e immagini di sfondo dagli update se disponibili.
  • Qt: aggiunte opzioni FSR nelle impostazioni GUI.
  • Aumentata la dimensione del box di testo per le descrizioni.
  • Funzione di log dei preset.
  • Qt: regolata dimensione TrophyViewer e tradotta la scheda ‘Log’.
  • Qt: aggiunta interfaccia GUI per impostazioni specifiche per gioco.
  • Qt: aggiunta scheda ‘Log’ come opzione per scheda predefinita all’apertura impostazioni.
  • Qt: aggiunte descrizioni per le nuove impostazioni sperimentali.
  • Qt: corretta notifica di incompatibilità per le patch.
  • Qt: raggruppati elementi specifici e non specifici per gioco nelle stesse schede.
  • Qt: aggiunta nota sul requisito Vulkan SDK nei tooltip di validazione.
  • Corretto il caricamento delle impostazioni di fullscreen.

Per discutere dello sviluppo di shadPS4, suggerire idee o chiedere aiuto, gli utenti possono unirsi al server Discord. Il team invita inoltre la community ad aggiornare la lista di compatibilità su GitHub: shadPS4 Game Compatibility List

Download: shadPS4 v0.11.0 (Linux qt) (Linux SDL)

Download: shadPS4 v0.11.0 (Win64 qt) (Win64 SDL)

Download: shadPS4 v0.11.0 (macos qt) (macos SDL)

Download: Source code shadPS4 v0.11.0

Fonte: shadps4.net

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: PS4

Vedi altri prodotti PS4

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.

Ultimo aggiornamento 2026-05-16 / Link di affiliazione / Immagini da Amazon Product Advertising API

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui
Captcha verification failed!
Punteggio utente captcha non riuscito. Ci contatti per favore!

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.