mGBA è un emulatore per eseguire giochi per Game Boy Advance. Mira ad essere più veloce e più accurato di molti emulatori Game Boy Advance esistenti, oltre ad aggiungere caratteristiche che altri emulatori mancano. Supporta anche i giochi per Game Boy e Game Boy Color.
Notizie aggiornate e download possono essere trovati su mgba.io.
Caratteristiche
- Supporto hardware Game Boy Advance altamente accurato.
- Supporto hardware Game Boy/Game Boy Color.
- Emulazione veloce. Noto per funzionare a piena velocità anche su hardware di fascia bassa, come i netbook.
- Porte Qt e SDL per un frontend pesante e uno leggero.
- Supporto cavo link locale (stesso computer).
- Rilevamento del tipo di salvataggio, anche per le dimensioni della memoria flash.
- Supporto per cartucce con sensori di movimento e rumble (utilizzabile solo con controller di gioco).
- Supporto per orologio in tempo reale, anche senza configurazione.
- Supporto al sensore solare per i giochi Boktai.
- Supporto alla Game Boy Camera e alla Game Boy Printer.
- Un’implementazione del BIOS integrata e capacità di caricare file BIOS esterni.
- Supporto turbo/avanzamento rapido tenendo premuto Tab.
- Riavvolgimento tenendo premuto Backquote.
- Frameskip, configurabile fino a 10.
- Supporto screenshot.
- Supporto codice cheat.
- 9 slot savestate. I salvataggi sono anche visualizzabili come screenshot.
- Registrazione video, GIF, WebP e APNG.
- Supporto e-Reader.
- Controlli riapplicabili per tastiere e gamepad.
- Caricamento da file ZIP e 7z.
- Supporto per patchIPS, UPS e BPS.
- Debuging del gioco tramite interfaccia a riga di comando e supporto remoto GDB, compatibile con IDA Pro.
- Riavvolgimento dell’emulazione configurabile.
- Supporto per caricare ed esportare istantanee di GameShark e Action Replay.
- Core disponibili per RetroArch/Libretro e OpenEmu.
- Traduzioni fornite dalla comunità per diverse lingue tramite Weblate.
- Molte, molte cose più piccole.
Mapper per Game Boy
I seguenti mapper sono pienamente supportati:
- MBC1
- MBC1M
- MBC2
- MBC3
- MBC3+RTC
- MBC5
- MBC5+Rumble
- MBC7
- Albero della Saggezza (senza licenza)
- Pokémon Giada/Diamante (senza licenza)
- BBD (senza licenza MBC5-come)
- Hitek (senza licenza MBC5-like)
I seguenti mapper sono parzialmente supportati:
- MBC6 (supporto scrittura memoria flash mancante)
- MMM01
- Pocket Cam
- TAMA5 (supporto RTC mancante)
- HuC-1 (supporto IR mancante)
- HuC-3 (supporto RTC e IR mancante)
Caratteristiche previste
- Supporto cavo di collegamento multiplayer in rete.
- Supporto per cavo di collegamento bus Dolphin/JOY.
- Miscelazione audio MP2k, per un suono di qualità superiore all’hardware.
- Supporto per la ri-registrazione delle corse assistite da strumenti.
- Supporto Lua per lo scripting.
- Una suite di debug completa.
- Supporto adattatore wireless.
Piattaforme supportate
- Windows Vista o più recente
- OS X 10.8 (Mountain Lion) o più recente
- Linux
- FreeBSD
- Nintendo 3DS
- Nintendo Switch
- Wii
- PlayStation Vita
Anche altre piattaforme Unix-like, come OpenBSD, sono note per funzionare, ma non sono testate e non pienamente supportate.
Requisiti di sistema
I requisiti sono minimi. Qualsiasi computer che può eseguire Windows Vista o più recente dovrebbe essere in grado di gestire l’emulazione. È richiesto anche il supporto per OpenGL 1.1 o più recente, con OpenGL 3.2 o più recente per gli shader e le funzioni avanzate.
Download
I download possono essere trovati sul sito ufficiale, nella sezione Downloads. Il codice sorgente può essere trovato su GitHub.
Controlli
I controlli sono configurabili nel menu delle impostazioni. Molti controller di gioco dovrebbero essere mappati automaticamente per impostazione predefinita. I controlli da tastiera predefiniti sono i seguenti:
- A: X
- B: Z
- L: A
- R: S
- Start: Invio
- Seleziona: Backspace
Compilazione
La compilazione richiede l’uso di CMake 3.1 o più recente. GCC e Clang sono entrambi noti per funzionare per compilare mGBA, ma Visual Studio 2013 e precedenti sono noti per non funzionare. Il supporto per Visual Studio 2015 e successivi è in arrivo.
Costruire con Docker
Il modo raccomandato per compilare per la maggior parte delle piattaforme è di usare Docker. Sono fornite diverse immagini Docker che contengono la toolchain e le dipendenze necessarie per costruire mGBA su diverse piattaforme.
Per usare un’immagine Docker per costruire mGBA, esegui semplicemente il seguente comando mentre sei nella root di un checkout di mGBA:
docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32
Questo produrrà una directory build-win32
con i prodotti di build. Sostituisci mgba/windows:w32
con un’altra immagine Docker per altre piattaforme, che produrrà un’altra directory corrispondente. Le seguenti immagini Docker disponibili su Docker Hub:
- mgba/3ds
- mgba/switch
- mgba/ubuntu:xenial
- mgba/ubuntu:bionic
- mgba/ubuntu:focal
- mgba/ubuntu:groovy
- mgba/vita
- mgba/wii
- mgba/windows:w32
- mgba/windows:w64
*nix building
Per usare CMake per costruire su un sistema basato su Unix, i comandi consigliati sono i seguenti:
mkdir buildcd buildcmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..makesudo make install
Questo costruirà e installerà mGBA in /usr/bin
e /usr/lib
. Le dipendenze che sono installate saranno rilevate automaticamente, e le caratteristiche che sono disabilitate se le dipendenze non sono trovate saranno mostrate dopo l’esecuzione del comando cmake
dopo gli avvertimenti sull’impossibilità di trovarle.
Se sei su macOS, i passi sono un po’ diversi. Assumendo che tu stia usando il gestore di pacchetti homebrew, i comandi raccomandati per ottenere le dipendenze e costruire sono:
brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-configmkdir buildcd buildcmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..make
Nota che non dovresti fare un make install
su macOS, poiché non funzionerà correttamente.
Windows developer building
MSYS2
Per costruire su Windows per lo sviluppo, si raccomanda di usare MSYS2. Segui i passi di installazione che trovi sul loro sito web. Assicurati di eseguire la versione a 32 bit (“MSYS2 MinGW 32-bit”) (o la versione a 64 bit “MSYS2 MinGW 64-bit” se vuoi compilare per x86_64) ed esegui questo comando aggiuntivo (comprese le parentesi graffe) per installare le dipendenze necessarie (nota che questo comporta il download di oltre 1100MiB di pacchetti, quindi ci vorrà molto tempo):
pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,pkgconf,qt5,SDL2,ntldd-git}
Controlla il codice sorgente eseguendo questo comando:
git clone https://github.com/mgba-emu/mgba.git
Poi finalmente costruiscilo eseguendo questi comandi:
mkdir -p mgba/buildcd mgba/buildcmake .. -G "MSYS Makefiles"make -j$(nproc --ignore=1)
Si noti che questa build di mGBA per Windows non è adatta alla distribuzione, a causa della dispersione delle DLL di cui ha bisogno per funzionare, ma è perfetta per lo sviluppo. Tuttavia, se si desidera distribuire tale build (ad esempio per test su macchine che non hanno l’ambiente MSYS2 installato), l’esecuzione di cpack -G ZIP
preparerà un file zip con tutte le DLL necessarie.
Visual Studio
Costruire usando Visual Studio è una configurazione altrettanto complicata. Per iniziare avrete bisogno di installare vcpkg. Dopo aver installato vcpkg avrai bisogno di installare diversi pacchetti aggiuntivi:
vcpkg install ffmpeg libepoxy libpng libzip sdl2 sqlite3
Nota che questa installazione non supporterà la codifica video accelerata dall’hardware su hardware Nvidia. Se ti interessa questo, dovrai installare prima CUDA, e poi sostituire ffmpeg
al comando precedente.
Hai anche bisogno di installare Qt. Sfortunatamente a causa del fatto che Qt è posseduto e gestito da un’azienda malata invece che da un’organizzazione ragionevole, non c’è più un installatore offline dell’edizione open source per l’ultima versione, quindi dovrete ripiegare su un installatore della vecchia versione (che vuole che creiate un account altrimenti inutile, ma potete aggirare impostando temporaneamente un proxy non valido o disabilitando altrimenti la rete), usare l’installatore online (che richiede comunque un account), o usare vcpkg per compilarlo (lentamente). Nessuna di queste è una grande opzione. Per l’installatore vorrai installare le versioni MSVC applicabili. Nota che gli installatori offline non supportano MSVC 2019. Per vcpkg vorrai installarlo in questo modo, che richiederà un bel po’ di tempo, specialmente su computer quad core o meno:
vcpkg install qt5-base qt5-multimedia
Poi, apri Visual Studio, seleziona Clone Repository e inserisci https://github.com/mgba-emu/mgba.git
. Quando Visual Studio ha finito la clonazione, vai su File > CMake e apri il file CMakeLists.txt nella root del repository controllato. Da lì, mGBA può essere sviluppato in Visual Studio in modo simile agli altri progetti CMake di Visual Studio.
Costruzione della toolchain
Se hai devkitARM (per 3DS), devkitPPC (per Wii), devkitA64 (per Switch), o vitasdk (per PS Vita), puoi usare i seguenti comandi per la costruzione:
mkdir buildcd buildcmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..make
Sostituisci il parametro -DCMAKE_TOOLCHAIN_FILE
per le seguenti piattaforme:
- 3DS:
../src/platform/3ds/CMakeToolchain.txt
- Switch:
../src/platform/switch/CMakeToolchain.txt
- Vita:
../src/platform/psp2/CMakeToolchain.vitasdk
- Wii:
../src/platform/wii/CMakeToolchain.txt
Dipendenze
mGBA non ha dipendenze rigide, tuttavia, le seguenti dipendenze opzionali sono richieste per specifiche caratteristiche. Le caratteristiche saranno disabilitate se le dipendenze non possono essere trovate.
- Qt 5: per il frontend GUI. Qt Multimedia o SDL sono richiesti per l’audio.
- SDL: per un frontend più basilare e il supporto al gamepad nel frontend Qt. Si raccomanda SDL 2, ma è supportata la 1.2.
- zlib e libpng: per il supporto agli screenshot e al savestate-in-PNG.
- libedit: per il supporto al debugger a riga di comando.
- ffmpeg o libav: per la registrazione di video, GIF, WebP e APNG.
- libzip o zlib: per caricare ROM memorizzate in file zip.
- SQLite3: per i database dei giochi.
- libelf: per il caricamento di ELF.
SQLite3, libpng e zlib sono inclusi nell’emulatore, quindi non hanno bisogno di essere prima compilati esternamente.
Note a piè di pagina
Le caratteristiche attualmente mancanti sono
- Finestra OBJ per i modi 3, 4 e 5 (Bug #5)
Il rilevamento della dimensione della memoria flash non funziona in alcuni casi. Queste possono essere configurate in fase di esecuzione, ma si raccomanda di segnalare un bug se si verifica un caso del genere.
La 10.8 è necessaria solo per il port Qt. Potrebbe essere possibile costruire o eseguire il port Qt su 10.7 o più vecchio, ma questo non è ufficialmente supportato. Il port SDL è noto per funzionare su 10.5, e potrebbe funzionare su versioni precedenti.
Copyright
mGBA è Copyright © 2013 – 2021 Jeffrey Pfau. È distribuito sotto la Mozilla Public License versione 2.0. Una copia della licenza è disponibile nel file LICENSE distribuito.
mGBA contiene le seguenti librerie di terze parti:
- inih, che è copyright © 2009 – 2020 Ben Hoyt e usato sotto una licenza BSD 3-clause.
- blip-buf, che è copyright © 2003 – 2009 Shay Green e usato sotto una Lesser GNU Public License.
- LZMA SDK, che è di pubblico dominio.
- Implementazione di MurmurHash3 di Austin Appleby, che è di pubblico dominio.
- getopt per MSVC, che è di pubblico dominio.
- SQLite3, che è di pubblico dominio.
Se sei un editore di giochi e desideri dare in licenza mGBA per uso commerciale, manda un’email a [email protected] per maggiori informazioni.