Il developer RSDuck introduce il supporto per i trucchi all’interno dell’emulatore vba-next-switch, questa applicazione si basa sulla porta del core Libretro (emulatore reale) e 3DSGBA (la GUI, anche se pesantemente rielaborata).
Questa sarà probabilmente l’ultimo aggiornamento di VBA-next per Nintendo Switch, anche se lo sviluppatore ha assicurato lo sviluppo di un’altra versione dell’emulatore, stiamo parlando di VBA-M, che presenta molte caratteristiche interessanti rispetto al core Libretro.
Caratteristiche
- Dovrebbe avere una compatibilità abbastanza alta (non ho provato molti giochi).
- Supporto per il salvataggio dei giochi e degli stati.
- Frameskip.
Problemi
- L’audio in rare occasioni da problemi
- Video e Input non hanno frame accurati (vedi Speed hack)
Speed Hack
Prima di implementare la caratteristica “Speed Hack”, l’emulatore mostrava dei rallentamenti regolari. Queste erano le cose che apparentemente rallentavano l’emulatore:
- Il thread/core su cui è in esecuzione.
- Il VSync.
Il primo problema è stato risolto eseguendo l’intero emulatore in una seconda discussione con una priorità molto elevata bloccata su un core non utilizzato dal sistema.
Omettere l’attesa per la sincronizzazione verticale porta naturalmente ad artefatti. Quindi ho deciso di eseguire l’emulatore solo all’interno del secondo thread, bloccato utilizzando il thread per sleep a 60 Hz.
Allo stesso tempo il thread principale veniva bloccato da vsync e riceveva il framebuffer solo durante l’invio dell’input. Ho lasciato l’audio nel thread dell’emulatore.
Questo porta naturalmente al problema che entrambi i thread, sebbene bloccati a 60 Hz, potrebbero non essere sincronizzati, quindi l’input o la grafica di un frame possono essere saltati o non sincronizzati a volte.
Changelog v0.7
- Supporto cheat. I trucchi possono essere inseriti direttamente dall’emulatore, basta accedere al menu trucchi dal menu di pausa.
- Interfaccia utente a schermo intero in modalità ancorata (sebbene l’implementazione non sia ottimale, al momento non testata).
- Alcuni miglioramenti e aggiustamenti minori, sul serio.
Changelog v0.6
- Revisione dell’interfaccia utente completa. Ora sembra quasi nativo!
- Impostazione per compensare l’orologio in tempo reale.
Ancora grazie a @dene-, che è responsabile dei miglioramenti dell’interfaccia utente e di @jakibaki, il nostro esperto di RTC e salvataggi.
Changelog v0.5
- Migliorata la GUI.
- L’avanzamento veloce ora è impostato sul pulsante .
- C’è un’opzione per scambiare la funzione dei pulsanti e con e .
- Alcuni piccoli aggiustamenti e correzioni di bug.
Changelog v0.4
- Ridotto il lag nell’emulatore e nella sincronizzazione dell’immagine principale del thread.
- Aumentato il buffer del nome dei file.
- I nomi dei file ora vengono elencato in ordine alfabetico.
Changelog v0.3
- Migliorato l’audio in quasi tutte le situazioni.
- Resa più robusta la stringa e la gestione dei percorsi.
- Aggiunto salvataggio automatico.
- Aggiunto il menu delle impostazioni (premere il tasto per aprirlo).
- Aggiunta del ridimensionamento dello schermo (opzioni: Nearest Integer, Nearest Fullscreen, Bilinear, Fullscreen. L’ultimo è un po’ più lento quindi non lo consiglio).
- Aggiunto supporto RTC.
- Fix #8 (gli stick analogici possono essere disabilitati tramite le impostazioni).
Grazie a @jakibaki, che ha contribuito sia al salvataggio automatico che al supporto RTC.
Crediti
- VBA-M e team Libretro.
- Shinyquagsire23 e Steveice10 per 3DSGBA.
- Sviluppatori di libnx.
Download: vba-next-switch v0.7
Download: Source code vba-next-switch v0.7