mGBA är en emulator för att köra Game Boy Advance-spel. Den syftar till att vara snabbare och mer exakt än många befintliga Game Boy Advance-emulatorer, samt att lägga till funktioner som andra emulatorer saknar. Den stöder även Game Boy- och Game Boy Color-spel.
Aktuella nyheter och nedladdningar finns på mgba.io.
Funktioner
- Högprecisa maskinvarustöd för Game Boy Advance.
- Hårdvarustöd för Game Boy/Game Boy Color.
- Snabb emulering. Känd för att köras i full hastighet även på maskinvara med låg kapacitet, t.ex. netbooks.
- Qt- och SDL-portar för en tung och en lätt frontend.
- Stöd för lokal länkkabel (samma dator).
- Detektering av sparartyper, även för flashminnets storlek.
- Stöd för patroner med rörelsesensorer och rumble (endast användbart med spelkontroller).
- Stöd för realtidsklocka, även utan konfiguration.
- Stöd för solsensor för Boktai-spel.
- Stöd för Game Boy-kamera och Game Boy-skrivare.
- En inbyggd BIOS-implementering och möjlighet att läsa in externa BIOS-filer.
- Stöd för turbo/fast-forward genom att hålla ned Tab.
- Rewind genom att hålla ned Backquote.
- Frameskip, konfigurerbart upp till 10.
- Screenshot-stöd.
- Stöd för fuskkod.
- 9 savestateplatser. Savestates kan också visas som skärmdumpar.
- Video, GIF, WebP och APNG-inspelning.
- Stöd för e-Reader.
- Remapperbara kontroller för både tangentbord och gamepads.
- Laddning från ZIP- och 7z-filer.
- Stöd för IPS-, UPS- och BPS-patchar.
- Speldebuggning via ett kommandoradsgränssnitt och GDB-fjärrstöd, kompatibel med IDA Pro.
- Konfigurerbar återspolning av emulering.
- Stöd för laddning och export av ögonblicksbilder från GameShark och Action Replay.
- Kärnor tillgängliga för RetroArch/Libretro och OpenEmu.
- Gemenskapsförmedlade översättningar för flera språk via Weblate.
- Många, många mindre saker.
Game Boy-mappningar
Följande mappningar har fullt stöd:
- MBC1
- MBC1M
- MBC2
- MBC3
- MBC3+RTC
- MBC5
- MBC5+Rumble
- MBC7
- Wisdom Tree (licensfri)
- Pokémon Jade/Diamond (licensfri)
- BBD (licensfri MBC5-liknande)
- Hitek (licensierad MBC5-liknande)
Följande kartläggare stöds delvis:
- MBC6 (saknar stöd för skrivning av flashminne)
- MMM01
- Pocket Cam
- TAMA5 (saknar stöd för RTC)
- HuC-1 (saknar IR-stöd)
- HuC-3 (saknar RTC- och IR-stöd)
Planerade funktioner
- Stöd för länkkabel för flerspelarledare i nätverk.
- Stöd för länkkabel för Delfin/JOY-buss.
- MP2k-ljudblandning, för högre ljudkvalitet än hårdvara.
- Stöd för återinspelning för körningar med verktygsassistans.
- Lua-stöd för skript.
- En omfattande felsökningssvit.
- Stöd för trådlösa adaptrar.
Stödda plattformar
- Windows Vista eller nyare
- OS X 10.8 (Mountain Lion) eller senare
- Linux
- FreeBSD
- Nintendo 3DS
- Nintendo Switch
- Wii
- PlayStation Vita
Andra Unix-liknande plattformar, såsom OpenBSD, är kända för att fungera också, men de är otestade och har inte fullt stöd.
Systemkrav
Kraven är minimala. Alla datorer som kan köra Windows Vista eller nyare bör kunna hantera emulering. Stöd för OpenGL 1.1 eller senare krävs också, med OpenGL 3.2 eller senare för shaders och avancerade funktioner.
Nedladdningar
Nedladdningar finns på den officiella webbplatsen, i avsnittet Downloads. Källkoden finns på GitHub.
Kontroller
Kontrollerna kan konfigureras i inställningsmenyn. Många spelkontroller ska automatiskt mappas som standard. Standardkontrollerna för tangentbordet är följande:
- A: X
- B: Z
- L: A
- R: S
- Start: Enter
- Välj: Backspace
Kompilering
Kompilering kräver att CMake 3.1 eller senare används. GCC och Clang fungerar båda för att kompilera mGBA, men Visual Studio 2013 och äldre fungerar inte. Stöd för Visual Studio 2015 och nyare kommer snart.
Dockerbyggande
Det rekommenderade sättet att bygga för de flesta plattformar är att använda Docker. Flera Docker-avbildningar tillhandahålls som innehåller den nödvändiga verktygskedjan och beroenden för att bygga mGBA på flera plattformar.
För att använda en Docker-avbildning för att bygga mGBA kör du helt enkelt följande kommando när du befinner dig i roten av en mGBA-checkout:
docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32
Detta kommer att producera en build-win32
-katalog med byggprodukterna. Ersätt mgba/windows:w32
med en annan Docker-avbildning för andra plattformar, vilket kommer att producera en motsvarande annan katalog. Följande Docker-avbildningar finns tillgängliga på 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
För att använda CMake för att bygga på ett Unix-baserat system är de rekommenderade kommandona följande:
mkdir buildcd buildcmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..makesudo make install
Detta kommer att bygga och installera mGBA i /usr/bin
och /usr/lib
. Beroenden som är installerade kommer att upptäckas automatiskt, och funktioner som är inaktiverade om beroendena inte hittas kommer att visas efter att ha kört kommandot cmake
efter varningar om att de inte kan hittas.
Om du är på macOS är stegen lite annorlunda. Om du antar att du använder pakethanteraren Homebrew är de rekommenderade kommandona för att få fram beroendena och bygga följande:
brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-configmkdir buildcd buildcmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..make
Notera att du inte bör göra en make install
på macOS, eftersom det inte kommer att fungera korrekt.
Byggning för Windows-utvecklare
MSYS2
Om du vill bygga i Windows för utveckling, rekommenderas att du använder MSYS2. Följ installationsstegen som finns på deras webbplats. Se till att du kör 32-bitarsversionen (”MSYS2 MinGW 32-bit”) (eller 64-bitarsversionen ”MSYS2 MinGW 64-bit” om du vill bygga för x86_64) och kör det här tilläggskommandot (inklusive hakparenteserna) för att installera de nödvändiga beroendena (observera att detta innebär att man laddar ner över 1100MiB paket, så det kommer att ta lång tid):
pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,pkgconf,qt5,SDL2,ntldd-git}
Kontrollera källkoden genom att köra det här kommandot:
git clone https://github.com/mgba-emu/mgba.git
Sluttningsvis byggs den genom att köra de här kommandona:
mkdir -p mgba/buildcd mgba/buildcmake .. -G "MSYS Makefiles"make -j$(nproc --ignore=1)
Bemärk att den här byggnaden av mGBA för Windows inte lämpar sig för distribution, på grund av det stora antalet DLL:er som den behöver för att kunna köras, men den är perfekt för utveckling. Om man dock vill distribuera ett sådant bygge (t.ex. för testning på maskiner som inte har MSYS2-miljön installerad) kan man genom att köra cpack -G ZIP
förbereda en zip-fil med alla nödvändiga DLL:er.
Visual Studio
Att bygga med hjälp av Visual Studio är en lika komplicerad inställning. För att börja måste du installera vcpkg. Efter att ha installerat vcpkg måste du installera flera ytterligare paket:
Notera att den här installationen inte kommer att stödja hårdvaruaccelererad videokodning på Nvidia-hårdvara. Om du bryr dig om detta måste du installera CUDA i förväg och sedan ersätta ffmpeg
med ffmpeg
i föregående kommando.
Du måste också installera Qt. På grund av att Qt tyvärr ägs och drivs av ett krisande företag i motsats till en rimlig organisation finns det inte längre något installationsprogram för den senaste versionen i en offline-version av open source-utgåvan, så du måste antingen falla tillbaka till ett installationsprogram för den gamla versionen (som vill att du ska skapa ett i övrigt onödigt konto, men du kan kringgå det genom att temporärt ställa in en ogiltig proxy eller på annat sätt inaktivera nätverk), använda online-installationsprogrammet (som kräver ett konto oavsett), eller använda vcpkg för att bygga det (långsamt). Inget av dessa är bra alternativ. För installationsprogrammet vill du installera de tillämpliga MSVC-versionerna. Observera att offlineinstallationsprogrammen inte stöder MSVC 2019. För vcpkg vill du installera det så här, vilket kommer att ta ganska lång tid, särskilt på datorer med fyrkärnig eller mindre:
vcpkg install qt5-base qt5-multimedia
Nästan, öppna Visual Studio, välj Clone Repository och ange https://github.com/mgba-emu/mgba.git
. När Visual Studio är klar med kloningen går du till File > CMake och öppnar filen CMakeLists.txt i roten av det utcheckade förrådet. Därifrån kan mGBA utvecklas i Visual Studio på samma sätt som andra CMake-projekt i Visual Studio.
Toolchain building
Om du har devkitARM (för 3DS), devkitPPC (för Wii), devkitA64 (för Switch) eller vitasdk (för PS Vita) kan du använda följande kommandon för att bygga:
mkdir buildcd buildcmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..make
Ersätt parametern -DCMAKE_TOOLCHAIN_FILE
för följande plattformar:
- 3DS:
../src/platform/3ds/CMakeToolchain.txt
- Switch:
../src/platform/switch/CMakeToolchain.txt
- Vita:
../src/platform/psp2/CMakeToolchain.vitasdk
- Wii:
../src/platform/wii/CMakeToolchain.txt
Beroenden
mGBA har inga hårda beroenden, men följande valfria beroenden krävs för specifika funktioner. Funktionerna kommer att inaktiveras om beroendena inte kan hittas.
- Qt 5: för GUI frontend. Qt Multimedia eller SDL krävs för ljud.
- SDL: för en mer grundläggande frontend och stöd för gamepad i Qt-frontend. SDL 2 rekommenderas, men 1.2 stöds.
- zlib och libpng: för stöd för skärmdumpar och savestate-in-PNG-stöd.
- libedit: för stöd för kommandoradsdebugger.
- ffmpeg eller libav: för inspelning av video, GIF, WebP och APNG.
- libzip eller zlib: för inläsning av ROM som lagras i zip-filer.
- SQLite3: för speldatabaser.
- libelf: för ELF-laddning.
SQLite3, libpng och zlib ingår i emulatorn, så de behöver inte kompileras externt först.
Fotnoter
För närvarande saknas följande funktioner
- OBJ-fönster för lägena 3, 4 och 5 (Bug #5)
Detektering av flashminnets storlek fungerar inte i vissa fall. Dessa kan konfigureras vid körning, men det rekommenderas att lämna in en felrapport om ett sådant fall inträffar.
10.8 behövs endast för Qt-anpassningen. Det kan vara möjligt att bygga eller köra Qt-anpassningen på 10.7 eller äldre, men detta stöds inte officiellt. SDL-anpassningen är känd för att fungera på 10.5 och kan fungera på äldre versioner.
Copyright
mGBA är Copyright © 2013 – 2021 Jeffrey Pfau. Den distribueras under Mozilla Public License version 2.0. En kopia av licensen finns i den distribuerade LICENSE-filen.
mGBA innehåller följande bibliotek från tredje part:
- inih, som är upphovsrättsligt skyddad © 2009 – 2020 Ben Hoyt och som används under en BSD 3-klausulig licens.
- blip-buf, som är upphovsrättsligt skyddad © 2003 – 2009 Shay Green och som används under en Lesser GNU Public License.
- LZMA SDK, som är offentlig egendom.
- MurmurHash3-implementation av Austin Appleby, som är offentlig egendom.
- getopt för MSVC, som är offentlig egendom.
- SQLite3, som är offentlig egendom.
Om du är en spelförläggare och vill licensiera mGBA för kommersiell användning, vänligen skicka ett e-postmeddelande till [email protected] för mer information.