Il developer endrift ha pubblicato un nuovo e interessantissimo aggiornamento dell’emulatore mGBA, questo programma ci permette di emulare le ROM del Game Boy, Game Boy Color e Game Boy Advance su moltissime piattaforme.
L’emulatore mGBA mira ad essere più veloce e preciso di tanti altri emulatori esistenti del Game Boy Advance, oltre ad aggiungere funzionalità e caratteristiche non presenti in altri emulatori.
Questo nuovo aggiornamento contiene almeno una dozzina di correzioni e modifiche, tra le più interessanti il supporto completo dell’e-Reader, un convertitore per alcune tipologie di salvataggi, uno strumento per la segnalazione di bug e altro ancora.
Supporto per e-Reader
L’emulatore mGBA guadagna il supporto per il componente aggiuntivo e-Reader, l’implementazione del piccolo accessorio si basa sull’analisi delle schede al di fuori della ROM emulata e quindi sul blocco delle schede analizzate nello stato emulato.
Per utilizzarlo basta avviare la ROM dell’e-Reader e utilizzare l’opzione Scan e-Reader dotcodes
all’interno del menu File
per inviare una o più schede all’e-Reader emulato.
Nuovi Strumenti
Questo nuovo aggiornamento vede l’introduzione di nuovi strumenti, mentre migliora quelli già esistenti (sebbene la maggior parte degli utenti non ne abbia mai avuto bisogno).
Bug Report
Il programma ora presenta una utilissima funzione che permette di segnalare bug, tutte le informazioni relative al computer, i giochi in esecuzione e la configurazione dell’utente possono essere archiviate all’interno di un file .zip
e condivise con la pagina di segnalazione bug.
L’archivio potrebbe includere anche il salvataggio del gioco e uno stato di salvataggio corrente del gioco attualmente caricato. Inoltre, nell’interesse della privacy, rimuove automaticamente il nome della directory home e consente di rivedere e modificare le informazioni raccolte prima di creare l’archivio.
Convertitore di salvataggi
Il convertitore di salvataggi incluso in mGBA permette di manipolare i dati di salvataggio, inclusa la conversione dei file di salvataggio del gioco tra vari formati incompatibili e l’estrazione del salvataggio della “batteria” dallo stato di salvataggio di un emulatore mGBA.
Tutto quello che bisogna fare è selezionare un file compatibile, selezionare un ipotetico formato di file è il programma indicherà tutte le tipologie di conversione. Le versioni future dovrebbero aggiungere il supporto per più formati, come il risparmio di batteria presente in NO$GBA.
Registrazione WebP e APNG
Le versioni precedenti di mGBA facevano uso di due strumenti per registrare il gameplay, il primo strumento permetteva di registrare video in diversi formati come MP4 o WebM, mentre il secondo strumento permetteva di registrare brevi clip in formato GIF.
Si tratta di caratteristiche interessanti che hanno fatto felici gli utenti in tutti questi anni, nel frattempo i browser web hanno visto l’aggiunta del supporto per diversi formati che si comprimono meglio e che vengono eseguiti in modo molto più fluido.
Pertanto, la vecchia finestra di dialogo di registrazione GIF è stata aggiornata e ora supporta anche la registrazione in formato WebP e APNG con un’opzione per attivare o disattivare il video registrato in loop o meno.
Ulteriori miglioramenti al debugger
Questa versione presenta molti miglioramenti nel Debugger e nuovi strumenti. Sebbene il debugger visivo non sia ancora terminato, sono state apportate numerose modifiche in preparazione dei prossimi sviluppi.
Aggiunto il supporto iniziale per il tracciamento dello stack frame. Questa funzionalità non è molto ottimizzata al momento ed è quindi disattivata per impostazione predefinita (deve essere abilitata per sessione).
Per abilitarlo, aprire dapprima il debugger della riga di comando (nella versione Qt si trova in Tools > Open debugger console) e digitare stack
per visualizzare l’elenco delle modalità di traccia supportate. Attualmente ce ne sono cinque, anche se in questo momento sono supportati solo su GBA:
off
, l’impostazione predefinita, disabilita completamente l’analisi dello stack.trace-only
raccoglie informazioni sugli stack frame durante il gioco.break-call
entrerà nel debugger quando viene chiamata una funzione.break-return
entrerà nel debugger quando una funzione ritorna.break-all
entrerà nel debugger sia in call che in return.
[stextbox id=’info’]Nota: La funzione su citata è ancora in qualche modo sperimentale.[/stextbox]
Un’altra caratteristica introdotta vede la possibilità di eseguire semplici script nel debugger. Sebbene non abbia nulla a che fare con quello che sarà l’eventuale sistema di scripting, questa caratteristica permette di inserire diversi comandi che è possibile digitare nel debugger della riga di comando in un file con un nome che termina con .mrc
e di eseguirli utilizzando il comando sorgente.
Inoltre, mentre in precedenza era possibile utilizzare simboli caricati per un gioco come indirizzi nel debugger, il disassembler ora correggerà anche gli indirizzi in nomi di simboli.
Ciò significa che i rami ora diranno quale funzione sta chiamando e verranno visualizzati anche gli accessi alle variabili globali. Nelle versioni future verrà aggiunto un supporto più completo per il debug dei simboli, che permetterà di accedere a variabili locali, numeri di riga e altro.
Un’altra funzionalità all’interno del debugger della riga di comando vede la possibilità di stampare l’elenco degli eventi in sospeso. Nella versione 0.6 di mGBA è stato introdotto un sistema di coda degli eventi per sostituire il vecchio sottosistema di temporizzazione, e uno dei pezzi di questo sistema era che ogni singolo tipo di evento aveva il proprio nome.
Questi nomi sono stringhe leggibili, ma non sono mai stati esposti a un utente poiché erano originariamente destinati al debug dell’emulatore stesso. Il nuovo comando events
nel debugger della riga di comando stampa l’intera coda e quanti cicli devono trascorrere prima che si verifichino i singoli eventi.
Per molto tempo l’unico modo per giocare ai giochi GameCube collegati ai giochi GBA è stato quello di utilizzare le versioni più recenti dell’emulatore VBA, come VBA-M. Tuttavia, questo non sembrava funzionare nemmeno con l’ultima versione di VBA-M.
Ora invece questa funzione è presente anche in mGBA, per utilizzarla bisogna disporre di una copia della ROM di avvio GBA (nota anche come BIOS) affinché questa funzione funzioni con la maggior parte dei giochi.
Una volta ottenuto il BIOS, è possibile configurarlo in Settings > BIOS e su File > Connect to Dolphin, da qui premere il pulsante Connect. Se l’emulatore Dolphin si trova in esecuzione in attesa di una connessione GBA, si connetterà.
Volendo è possibile inserire anche l’indirizzo IP di un computer se l’emulatore Dolphin è in esecuzione su un altro computer sulla rete locale, c’è una casella di controllo che consente di reimpostare mGBA quando si connette, il che è utile per la connessione a giochi come Pokémon Colosseum.
Altre funzionalità evidenziate
- Il collegamento al gioco Single Pak ora funziona con la maggior parte dei giochi.
- Miglioramenti di precisione e velocità per il renderizzatore di ottimizzazione OpenGL.
- L’esecuzione di mGBA per Wii come titolo Wii U VC iniettato ora supporta il game pad.
- Supporto preliminare per cartucce per Game Boy con memoria flash MBC6 (per Net de Get @ 100) e mappatori aggiuntivi senza licenza.
- Una modalità di compatibilità dei bug per gli hack ROM che sono stati testati solo in VBA consente ora a molti hack ROM non funzionanti di funzionare anche in mGBA. Questa modalità è abilitata per impostazione predefinita per gli hack di FireRed ROM e deve essere abilitata manualmente nelle sostituzioni per altri giochi.
- Decine e dozzine di correzioni di bug.
Piattaforme supportate
- Windows Vista o superiore.
- Mac OS X 10.7 (Lion) o più recente.
- Linux.
- FreeBSD.
- Nintendo 3DS.
- Nintendo Switch. New!!
- Wii.
- PlayStation Vita.
Controlli
Changelog
Caratteristiche
- Scansione della scheda e-Reader.
- Nuovo strumento per la conversione tra diversi formati di salvataggi.
- Registrazione WebP e APNG.
- Sostituzioni separate per i giochi GBC che possono essere eseguiti anche su SGB o GB normali.
- Le funzionalità del Game Boy Player possono essere abilitate per impostazione predefinita per tutti i giochi compatibili.
- Supporto del visualizzatore di frame e I/O per Game Boy.
- Strumento di segnalazione bug per raccogliere informazioni utili per segnalare bug.
- Opzione muto nelle porte homebrew.
- Indicatori di stato per avanzamento rapido e disattivazione dell’audio nelle porte homebrew.
- Modalità di compatibilità dei bug VBA per hack ROM che non funzionano su hardware reale.
- Supporto di sola lettura per la memoria flash MBC6.
- Nuovi mappatori GB senza licenza: Pokémon Giada/Diamante, BBD e Hitek.
- Strumenti di tracciamento dello stack nel debugger ARM (di ahigerd).
- Script di comando per il debugger della CLI (di ahigerd).
- Dumping degli eventi pianificato nel debugger della CLI.
- Il disassemblatore ARM ora risolve gli indirizzi in nomi di simboli.
- Aggiungi il supporto delle funzionalità per Game Boy Player alle porte.
- Ora è possibile attivare i singoli tipi di finestra nelle visualizzazioni di debug.
- Supporto per il Wii U GamePad durante l’esecuzione come titolo VC iniettato.
Correzioni di emulazione
- ARM: Corretto il problema con ALU che leggeva il PC dopo lo spostamento.
- ARM: Corretto l’archiviazione di STR sul PC dopo il calcolo dell’indirizzo.
- ARM: Correzione del cambio della modalità di indirizzamento 1 su rs == pc(correzione
#1926
). - ARM: Corretto l’ordine di scrittura del registro moltiplicato e accumulato lungo (correzione
#1956
). - ARM: Corretti i tempi di moltiplicazione lunghi e accumulati.
- GB: Correzione parziale dei tempi per il BIOS ignorato.
- GB: Downgrade delle ROM solo DMG dalla modalità CGB anche senza ROM di avvio.
- GB: Corretto il contrassegno del BIOS come non mappato quando si salta il BIOS (correzione
#2061
). - GB Audio: Corretto il tempo di sweep della serializzazione.
- GB Audio: Corretti alcuni casi limite di temporizzazione del canale 4.
- GB MBC: Corretto il comportamento di modifica della modalità MBC1.
- GB MBC: Corretti alcuni problemi di mascheramento dei bit MBC3.
- GB Video: Correzione dello stato dopo aver saltato il BIOS (correzioni
#1715
e#1716
). - GBA: Corretto il problema del tempo che avanzava troppo rapidamente in rari casi.
- GBA: Cancella connessione GBP al ripristino.
- GBA Audio: Revamp emulazione FIFO (correzioni
#356
,#875
,#1847
). - GBA BIOS: Implementate chiamate fittizie di driver audio.
- GBA BIOS: Migliorati i tempi del BIOS HLE.
- GBA BIOS: Corretto il ricaricamento dei registri video dopo il ripristino (correzione
#1808
). - GBA BIOS: Rese interrompibili le chiamate del BIOS HLE (correzioni
#1711
e#1823
). - GBA BIOS: Corretto il controllo dei limiti di decompressione non validi.
- GBA DMA: Linger last DMA on bus (correzioni
#301
e#1320
). - GBA DMA: Correzione dell’ordine e della tempistica dei DMA sovrapposti.
- GBA I/O: Il registro di scambio verde dovrebbe essere leggibile.
- GBA I/O: Ignora i bit alti su IME.
- GBA Memory: Migliorati i tempi di precaricamento del gamepak.
- GBA Memory: Blocco all’accesso alla VRAM in modalità 2 (correzione
#190
). - GBA Memory: Migliorata la robustezza del supporto della memoria Matrix.
- GBA Memory: Contrassegnati 22 giochi Famicom Mini da 22 a 28 come non mirroring.
- GBA Memory: Restituito il byte corretto per indirizzi bus aperti ROM dispari.
- GBA Memory: Migliorata l’emulazione AGBPrint dei casi limite (correzione
#1867
). - GBA Memory: Correzione del mascheramento dei salti disallineati.
- GBA Serialize: Corretto il controllo dell’allineamento durante il caricamento degli stati.
- GBA SIO: Corretta la copia dei valori di trasferimento in modalità normale.
- GBA SIO: Corretto il problema con la modalità normale (correzione
#1800
). - GBA SIO: Corretto il problema della deseralizzazione dei registri SIO.
- GBA SIO: Corretto il problema che si bloccava all’avvio di una seconda finestra multiplayer (correzione
#854
). - GBA SIO: Corretto il tempo di avvio del trasferimento in modalità normale (correzione
#425
). - GBA Timers: Corretto il problema con il timer a cascata mentre il timer è attivo (correzione
#2043
) - GBA Video: Latch scanline alla fine di Hblank (correzione
#1319
). - GBA Video: Corretti i tempi di Hblank.
- GBA Video: Implementazione dello scambio verde (correzione
#1609
). - GBA Video: Emula i limiti del ciclo sprite nel renderer OpenGL (correzione
#1635
). - GBA Video: Corretto il rendering irregolare OBJWIN nel renderer OpenGL.
- GBA Video: Correzione dell’offset x nel mosaico BG a 256 colori (correzione
#1684
). - GBA Video: Corretti i parametri del mosaico BG trasposti nel renderizzatore GL.
- SM83: Emula bug HALT.
- SM83: Migliorati gli interrupt a metà ciclo M.
- SM83: HALT non dovrebbe consumare uno stato T extra.
Altre correzioni
- 3DS: Correzione della pulizia del thread.
- Tutto: Migliorate le intestazioni di esportazione (correzione
#1738
). - Cheats: Corretti i trucchi di scrittura indiretta (correzione
#2026
). - CMake: Correzione della build con minizip downstream che esporta simboli incompatibili.
- CMake: Collegamento con la libreria OpenGL corretta (correzione
#1872
). - Core: Assicurarsi che le regioni ELF possano essere scritte prima di provare.
- Core: Corretto il problema con il threading che impostava in modo errato lo stato di pausa durante l’interruzione.
- Core: Corretto il caricamento di file ELF con intestazioni di programma vuote inaspettate.
- Core: Corretto il problema con la distruzione di un mVL con un numero di canali non valido.
- Debugger: Non salta le istruzioni non definite quando è collegato il debugger.
- Debugger: Chiudere il registro delle traccie al termine della traccia.
- Debugger: Correzione dei punti di controllo delle modifiche (correzione
#1947
). - Debugger: Chiama l’init del sistema debugger della CLI.
- FFmpeg: Corrette alcune piccole perdite di memoria.
- FFmpeg: Correzione della codifica della base dei tempi.
- GB: Corretto il crash quando si cambia la ROM mentre si trova nello spazio degli indirizzi in banca.
- GB: Correzione delle sostituzioni del modello di caricamento.
- GB MBC: Forza la dimensione minima della SRAM su MBC rari che hanno sempre SRAM.
- GB Serialize: Corretto il problema di arresto anomalo durante il caricamento di salvataggi SGB precedenti alla 0.7.
- GB Video: Corretti i registri video SGB.
- GB Video: Elimina i pacchetti SGB in mVL non SGB.
- GB Video: Corretto il problema della deserializzazione dello stato LX negativo.
- GB Video: Non esegue il rendering di batch negativi.
- GBA: Corretto il caricamento di file ELF multiboot (correzione
#1949
). - GBA: Corretto il caricamento dei file di salvataggio successivi (correzione
#2067
). - mGUI: Non tentare di precaricare file più grandi di quelli che possono essere contenuti nella RAM.
- Qt: Forza thread di creazione del motore di pittura OpenGL (correzione
#1642
). - Qt: Correzione della compilazione statica in MinGW (correzione
#1769
). - Qt: Corretta una race condition nell’ispettore frame.
- Qt: Carica/salva byte dal visualizzatore di memoria nell’ordine visibile (correzione
#1900
). - Qt: Corretto il problema con il video proxy in esecuzione se viene inviato al thread principale.
- Qt: Corretto il problema con la visualizzazione del gioco che a volte scompariva dopo aver chiuso la schermata di stato di caricamento/salvataggio.
- Qt: Corretto l’annullamento della pausa prima della fine del frame.
- Qt: Correzione dell’invio di eventi del gamepad (correzione
#1922
). - Qt: Pre-allega lo stub GDB all’avvio con -g (correzione
#1950
). - Qt: Corretto il crash durante la modifica delle scorciatoie senza nessuna selezionata (correzione
#1964
). - Qt: Corretto l’arresto anomalo quando non è possibile ottenere il contesto OpenGL.
- Qt: Corretti i problemi con il visualizzatore I/O che non sincronizza correttamente lo stato.
- Qt: Corretto il caricamento di un nuovo gioco che si bloccava su Wayland (correzione
#1992
). - Qt: Corretta l’impossibilità di cancellare gli attacchi hat bindings.
- SM83: Semplificato l’accesso alla coppia di registri su big endian.
- SM83: Disassembla STOP come un byte.
- Switch: Correzione dell’altezza di gioco GB in modalità pixel accurata (correzione
#2073
). - Wii: Corretto il problema di arresto anomalo durante lo scaricamento di ROM GBA di dimensioni irregolari.
Varie
- 3DS: Utilizza la “modalità wide” dove applicabile per un filtraggio leggermente migliore.
- 3DS: letture di directory batch.
- Core: Aggiunto callback savedataUpdated.
- Core: Aggiunto callback di arresto.
- Core: Rielaborata la sincronizzazione dello stato del thread.
- Core: Migliorato il supporto per cheat patch ROM, supportando la disabilitazione di patch sovrapposte.
- Core: L’aggiunta alla libreria ora è ricorsiva.
- GB: Consenti la sospensione del ciclo di eventi mentre la CPU è bloccata.
- GB: Aggiunto il supporto per le callback di sospensione e spegnimento.
- GB: Ripeti l’emulazione a doppia velocità (chiuso
#1515
). - GB: Supporto per il caricamento della ROM di avvio CGB su AGB.
- GB Audio: Aggiunto il batching del canale 4 (correzione
#1313
). - GB Core: Restituisce il numero corrente di banchi per ROM/SRAM, non teorico max.
- GB I/O: Implementato il supporto preliminare per PCM12/PCM34 (chiuso
#1468
). - GB MBC: Rimossa la dimensione SRAM inutilizzata.
- GBA: Consenti la sospensione del ciclo di eventi mentre la CPU è bloccata.
- GBA BIOS: La divisione per zero dovrebbe generare un errore IRREVERSIBILE.
- GBA Cheats: Consenti codici di tipo patch ROM illimitati per set.
- GBA Video: Converte la texture OpenGL VRAM in un numero intero.
- GBA Video: Salta il tentativo di renderizzare gli sprite fuori schermo in OpenGL.
- GBA Video: Nuovo approccio alla tavolozza GL, non più suddivisa in batch sulle modifiche alla tavolozza.
- GBA Video: Evita la divisione di numeri interi utilizzando trucchi reciproci.
- Debugger: Tieni traccia del conteggio dei cicli globali.
- FFmpeg: Aggiunta l’opzione di loop per GIF/APNG.
- FFmpeg: Aggiunto il supporto CRF per i codec applicabili.
- mGUI: Mostra la percentuale della batteria.
- mGUI: Salta il secondo ciclo di scansione quando possibile.
- mGUI: Migliora la velocità di caricamento (correzione
#1957
). - Qt: Il renderer può essere modificato mentre un gioco è in esecuzione.
- Qt: Aggiunto un indice esadecimale alla vista della tavolozza.
- Qt: Aggiunte le informazioni sulla matrice di trasformazione alla vista sprite.
- Qt: Memory viewer ora supporta la modifica diretta dei valori decimali (chiuso
#1705
). - Qt: Aggiunto il pulsante di copia alla finestra di dialogo della stampante GB.
- Qt: Gli aggiornamenti del titolo della finestra possono essere disabilitati (chiuso
#1912
). - Qt: Redo OpenGL context thread handling (correzione
#1724
). - Qt: Scarta i frame aggiuntivi disegnati se l’attesa fallisce.
- Qt: Unifica l’utilizzo dei caratteri a spaziatura fissa.
- Qt: Aggiunto un pulsante per passare alle impostazioni del registro.
- Qt: Utilizza percorsi relativi in modalità portabile quando applicabile (correzione
#838
). - Qt: Migliori dimensioni iniziali delle colonne dell’editor delle scorciatoie.
- SDL: Torna a sw blit se l’inizializzazione OpenGL non riesce.
- Switch: Ottimizzato il rendering dei caratteri (correzione
#2078
). - Switch: Consente il passaggio tra i renderer CPU e GPU senza ricaricare.
- Util: Reimposta la dimensione del vettore su deinit.
- VFS: Modificata la semantica di VFile.sync sui file mappati (correzione
#1730
).
Download: Emulatore mGBA v0.9.0 (3DS)
Download: Emulatore mGBA v0.9.0 (MacOS)
Download: Emulatore mGBA v0.9.0 (Switch)
Download: Emulatore mGBA v0.9.0 (Ubuntu64-Bionic)
Download: Emulatore mGBA v0.9.0 (Ubuntu64-focal)
Download: Emulatore mGBA v0.9.0 (Ubuntu64-groovy)
Download: Emulatore mGBA v0.9.0 (Ubuntu64-hirsute)
Download: Emulatore mGBA v0.9.0 (Ubuntu64-xenial)
Download: Emulatore mGBA v0.9.0 (PS Vita)
Download: Emulatore mGBA v0.9.0 (Wii)
Download: Emulatore mGBA v0.9.0 (Win32-Installer)
Download: Emulatore mGBA v0.9.0 (Win32)
Download: Emulatore mGBA v0.9.0 (Win64-Installer)
Download: Emulatore mGBA v0.9.0 (Win64)
Download: Source code mGBA v0.9.0
Fonte: mgba.io