Pubblicato un nuovo aggiornamento sperimentale per Cemu, l’emulatore della console Wii U per PC Windows, MacOS e Linux, apporta tutta una serie di correzioni e modifiche.
Gli aggiornamenti sperimentali vengono rilasciati di frequente all’interno della repository in modo semiautomatico, mentre il changelog non viene stilato, è comunque possibile prenderne visione attraverso la cronologia dei commit.
Per passare a queste versioni, scaricare la versione 2.0 di Cemu e abilitare l’aggiornamento automatico (questo funziona solo su Windows). In alternativa, è possibile scaricarlo manualmente dalla repository github.
Per gli sviluppatori C/C++ che vogliono contribuire
Se si è interessati a contribuire o si vuole semplicemente porre domande sulla base del codice di Cemu, è possibile visitare il canale Discord.
L’aggiornamento mira a correggere numerosi arresti anomali mentre ora la funzione Rich Presence di Discord funziona di nuovo con i giochi installati all’interno della directory MLC
.
Requisiti
- OpenGL 4.5 o Vulkan 1.1.
- Sistema operativo: Windows 7 (o superiore) a 64 bit.
- RAM: Minimo 4 GB, e consigliata da 8 GB o più.
- Microsoft Visual c++ 2017 X64 ridistribuibile: vc_redist.x64.exe
Caratteristiche
- Monta immagini criptate della Wii U (WUD).
- Risoluzione interna a 1920×1080 (se supportata dal gioco).
- Non contiene alcuna ottimizzazione al momento. Aspettatevi framerate lenti e lunghi tempi di caricamento.
- Solo per Windows x64 (altre piattaforme saranno supportate in seguito).
- Richiede OpenGL v4.1 o superiore.
Compatibilità schede grafiche
- Testato su GPU NVIDIA: funziona bene con i driver più recenti.
- Testato su GPU AMD: Viene eseguito come previsto nella maggior parte del tempo con i driver aggiornati, potrebbe andare in crash di tanto in tanto.
- Testato su GPU Intel: Non ufficialmente supportato con difetti visivi pesanti.
FAQ
Quali controller di gioco vengono supportati? Attualmente è possibile emulare il GamePad (DRC), il controller Pro e il controller classico, che possono essere mappati sulla tastiera o su qualsiasi controller USB. Cemu attualmente supporta DirectInput e XInput.
Come posso vedere la schermata GamePad (DRC)? La schermata GamePad (DRC) viene visualizzata nella finestra principale di Cemu mentre si tiene premuto il tasto TAB sulla tastiera o mappandola a un pulsante del controller. Puoi anche alternare tra le schermate premendo CTRL + TAB. Inoltre, è possibile visualizzare il GamePad in una seconda finestra.
Funziona il suono? Sì, in parte. Ma attenzione, molti effetti sonori e filtri non sono ancora supportati e potrebbero esserci degli improvvisi rumori forti.
C’è un supporto per la funzionalità online? Il supporto online è quasi inesistente e funziona solo in determinate applicazioni che si basano solo su funzionalità di rete di base e non richiedono l’autenticazione del server. Al momento questo include solo il browser web della Wii U e possibilmente alcune applicazioni homebrew.
Saranno supportate altre piattaforme oltre a Windows? Il progetto diventerà multi-piattaforma, molte delle decisioni per lo sviluppo sono a favore (come la scelta di utilizzare le OpenGL al posto delle DirectX per il rendering), tuttavia ci sono migliaia di altre piccole correzioni da affrontare prima.
Perché Cemu è così lento? migliorerà in futuro? Arrivati a questo punto Cemu può già essere considerato altamente ottimizzato e le possibili ottimizzazioni future arriveranno solo in piccoli e graduali passaggi. Tieni presente che l’emulazione richiede sempre un sistema ad alte prestazioni rispetto al sistema emulato. Per Cemu, le prestazioni single core della CPU (e della velocità RAM dell’estensione) sono il fattore più importante per l’emulazione Fullspeed.
Si vuole aggiungere una grafica DX12/Vulkan back-end? Andrebbe a migliorare la velocità! Le DirectX 12 o Vulkan non ci permettono di aumentare la velocità d’esecuzione dell’emulatore, le prestazioni non sono davvero un problema dato che le OpenGL si presentano molto più veloci se usati correttamente. L’architettura della GPU su Wii U aggiunge alcuni vincoli che annullano quasi qualsiasi potenziale di ottimizzazione dato da DX12/Vulkan. Tuttavia, un back-end Vulkan è pianificato per il lontano futuro.
Quali sono le impostazioni migliori? Come dovrei configurare Cemu? Al momento Cemu non fornisce la migliore esperienza e alcuni ritocchi sono quasi necessari. Per prestazioni ottimali: imposta l’accuratezza della cache del buffer GPU su bassa (ma aumentala se si ottiene uno sfarfallio grafico), il timer della CPU su ‘host based’ e la modalità CPU su ‘ricompilatore’. Potrebbero essere necessarie modifiche specifiche del gioco, quindi è consigliabile consultare google o il wiki per le opzioni raccomandate.
Quali sono i profili di gioco? I profili di gioco sono file di testo che possono essere utilizzati per impostare configurazioni specifiche del gioco in Cemu. Puoi trovare i profili di gioco nella cartella ‘gameProfiles’ di Cemu. C’è anche un file example.ini
che spiega le opzioni disponibili e come configurarle. Nota che alcune “expert options” sono disponibili solo tramite i profili di gioco, ma non tramite la GUI di Cemu.
Esiste una roadmap? Abbiamo abbandonato presto l’idea di una roadmap dettagliata dopo aver compreso che la pianificazione futura non va d’accordo con l’imprevedibilità dello sviluppo dell’emulatore. Abbiamo ancora obiettivi a lungo termine, ma in generale la roadmap può essere semplificata con una frase: migliorare l’emulatore sotto ogni aspetto. Su cosa lavorare esattamente viene deciso da versione a versione o talvolta anche su base giornaliera.
Si vuole realizzare una versione a 32 bit di Cemu? No, Cemu spesso supera l’utilizzo di oltre 4 GB di RAM e pertanto non può funzionare su sistemi a 32 bit.
Sto cercando di eseguire un gioco in Cemu e si blocca? Cemu non è ancora perfetto e non è raro che alcuni giochi non funzionino. Puoi controllare la pagina sulla Compatibilità o il wiki per maggiori informazioni sui problemi con determinati giochi.
Sono pianificati strumenti di debug? Sì, gli strumenti di debug sono pianificati e infatti sono già stati elaborati. Tuttavia, poiché hanno una priorità piuttosto bassa, non saranno pronti per un po’.
Changelog
- Aggiunto l’hash dal commit per creare il nome nel flusso di lavoro di verifica della build.
- Sostituisce
999999
nel nome build con l’hash del commit a mano breve del controllo build. Influisce solo su push e PR.
- Sostituisce
- ImGui: Abbina a tutto begin/end.
- Come commentato in
imgui.h
, dovrebbe chiamare unEnd()
corrispondente per ogniBegin()
indipendentemente dal suo valore restituito. Testato in BotW, questo sembra migliorare leggermente le prestazioni.
- Come commentato in
- Corretta la softkey, fare clic sulla sovrapposizione dello sfondo per portarla in primo piano e coprire la softkey.
- Aggiunte le istruzioni per la costruzione di una versione per Apple Silicon.
- Aggiunta una nota sulla ricostruzione per risolvere i problemi di RPATH.
- Linux: Abilitate esplicitamente alcuni flag relativi alla sicurezza.
- La maggior parte dei sistemi e dei compilatori moderni abiliterà PIE per impostazione predefinita per ASLR. Qualcuno in discord ha riferito che la loro configurazione debian non lo fa, e sembra che neanche Ubuntu 20.04 lo faccia. Inoltre il linker GNU genererà un binario con uno stack eseguibile quando c’è un file oggetto senza una sezione
.note.GNU-stack
collegata. Da GNU binutils 2.39 includono un’opzione di configurazione in fase di compilazione per fermare questo comportamento. Alcune distribuzioni come Arch lo hanno abilitato ma l’azione Github CI utilizza Ubuntu 20.04 che utilizza una versione precedente di binutils. Il risultato è che almeno alcuni artefatti (non li ho controllati tutti) hanno uno stack eseguibile e non sono PIE. Quindi questo PR passa le opzioni necessarie per creare PIE eseguibili e avere uno stack non eseguibile.
- La maggior parte dei sistemi e dei compilatori moderni abiliterà PIE per impostazione predefinita per ASLR. Qualcuno in discord ha riferito che la loro configurazione debian non lo fa, e sembra che neanche Ubuntu 20.04 lo faccia. Inoltre il linker GNU genererà un binario con uno stack eseguibile quando c’è un file oggetto senza una sezione
- Vulkan: Ulteriori miglioramenti al codice swapchain.
- Nessuna comunicazione con il thread della GUI.
- Ora tutti i controlli verificano se è necessario un aggiornamento in un’unica posizione (ridimensionamento, vsync, SRGB).
- Correzione dell’errore di battitura: L’estensione è stata denominata extend.
- Eliminata la ricreazione durante il ciclo, restituisce semplicemente
false
e rilascia il fotogramma se non può essere visualizzato e riprova il fotogramma successivo.
- Linux OpenGL: Corretto il problema con il gamepad che non si aggiornava.
- Apparentemente affinché una tela sia in grado di scambiare i buffer, su Linux il contesto deve essere aggiornato per quella tela.
- Disabilitata la casella di controllo Discord in base all’opzione della build.
- Disattivata la casella di controllo Discord quando compilato con
-DENABLE_DISCORD_RPC=OFF
.
- Disattivata la casella di controllo Discord quando compilato con
- [APPIMAGE] Aggiornato AppImage.
- Linux/macOS: Corretti vari valori di colore per i temi scuri.
- Questa modifica corregge alcuni codici colore per i temi scuri su Linux in posti che altri non hanno notato. Spostato il codice esistente per il calcolo dei colori accentati nel file di supporto wxwidgets come funzione in modo che l’elenco del gestore titoli possa utilizzare lo stesso codice. Rimosso inoltre il colore di sfondo bianco nella finestra di dialogo Informazioni e fatto in modo che l’interfaccia utente di input usasse anche il colore di sfondo per i pulsanti.
- Linux OpenGL: Implementata l’impostazione vsync della GUI.
Download: Cemu v2.0-15 (MacOS-12-x64)
Download: Cemu v2.0-15 (Ubuntu-20.04)
Download: Cemu v2.0-15 (Windows)
Download: Cemu v2.0-15 (AppImage)
Download: Source code Cemu v2.0-15
Fonte: github.com