mGBA je emulátor pro spouštění her Game Boy Advance. Jeho cílem je být rychlejší a přesnější než mnoho stávajících emulátorů Game Boy Advance a také přidat funkce, které jiným emulátorům chybí. Podporuje také hry pro Game Boy a Game Boy Color.
Aktuální novinky a soubory ke stažení najdete na adrese mgba.io.
Vlastnosti
- Vysoce přesná podpora hardwaru Game Boy Advance.
- Podpora hardwaru Game Boy/Game Boy Color.
- Rychlá emulace. Známá tím, že běží plnou rychlostí i na low-end hardwaru, jako jsou netbooky.
- Porty Qt a SDL pro těžký a lehký frontend.
- Podpora lokálního (stejný počítač) propojovacího kabelu.
- Detekce typu uložení, a to i pro velikost paměti flash.
- Podpora kazet se senzory pohybu a dunění (použitelné pouze s herními ovladači).
- Podpora hodin reálného času, a to i bez konfigurace.
- Podpora solárních senzorů pro hry Boktai.
- Podpora kamery Game Boy a tiskárny Game Boy.
- Vestavěná implementace systému BIOS a možnost načítání externích souborů BIOS.
- Podpora turba/rychlého převíjení vpřed podržením klávesy Tab.
- Převíjení vzad podržením klávesy Backquote.
- Frameskip, konfigurovatelný až na 10.
- Podpora snímků obrazovky.
- Podpora cheatovacích kódů.
- 9 slotů savestate. Savestaty lze zobrazit také jako snímky obrazovky.
- Záznam videa, GIF, WebP a APNG.
- Podpora čtečky e-Reader.
- Přenosné ovládání pro klávesnice i gamepady.
- Načítání ze souborů ZIP a 7z.
- Podpora záplatIPS, UPS a BPS.
- Ladění her prostřednictvím rozhraní příkazového řádku a vzdálené podpory GDB, kompatibilní s IDA Pro.
- Konfigurovatelné přetáčení emulace.
- Podpora načítání a exportu snímků GameShark a Action Replay.
- K dispozici jsou jádra pro RetroArch/Libretro a OpenEmu.
- Komunitou poskytované překlady pro několik jazyků prostřednictvím Weblate.
- Mnoho, mnoho menších věcí.
Mapovače pro Game Boy
Plně podporovány jsou následující mapovače:
- MBC1
- MBC1M
- MBC2
- MBC3
- MBC3+RTC
- MBC5
- MBC5+Rumble
- MBC7
- Strom mudrců (bez licence)
- Pokémon Jade/Diamond (bez licence)
- BBD (bez licence MBC5-like)
- Hitek (nelicencovaný MBC5-like)
Následující mapovače jsou podporovány částečně:
- MBC6 (chybí podpora zápisu do paměti flash)
- MMM01
- Pocket Cam
- TAMA5 (chybí podpora RTC)
- HuC-1 (chybí podpora IR)
- HuC-3 (chybí podpora RTC a IR)
Plánované funkce
- Podpora síťového propojovacího kabelu pro více hráčů.
- Podpora sběrnicového propojovacího kabelu Delfín/JOY.
- Mixování zvuku MP2k, pro kvalitnější zvuk než hardwarový.
- Podpora opětovného nahrávání pro běh s pomocí nástrojů.
- Podpora jazyka Lua pro skriptování.
- Komplexní sada pro ladění.
- Podpora bezdrátového adaptéru.
Podporované platformy
- Windows Vista nebo novější
- OS X 10.8 (Mountain Lion) nebo novější
- Linux
- FreeBSD
- Nintendo 3DS
- Nintendo Switch
- Wii
- PlayStation Vita
Je známo, že fungují i další platformy podobné Unixu, například OpenBSD, ale nejsou vyzkoušené a plně podporované.
Systémové požadavky
Požadavky jsou minimální. Emulaci by měl zvládnout každý počítač, na kterém lze spustit systém Windows Vista nebo novější. Vyžadována je také podpora OpenGL 1.1 nebo novější, pro shadery a pokročilé funkce OpenGL 3.2 nebo novější.
Stahování
Stahování naleznete na oficiálních stránkách v sekci Downloads. Zdrojový kód najdete na GitHubu.
Ovládací prvky
Ovládací prvky lze konfigurovat v nabídce nastavení. Mnoho herních ovladačů by mělo být ve výchozím nastavení namapováno automaticky. Výchozí ovládací prvky klávesnice jsou následující:
- A: X
- B: Z
- L: A
- R: S
- Start: Enter
- Select: Backspace
Kompilace
Kompilace vyžaduje použití CMake 3.1 nebo novější. Je známo, že GCC i Clang fungují pro kompilaci mGBA, ale je známo, že Visual Studio 2013 a starší nefungují. Podpora pro Visual Studio 2015 a novější se chystá brzy.
Sestavování pomocí Dockeru
Doporučeným způsobem sestavování pro většinu platforem je použití Dockeru. K dispozici je několik obrazů Docker, které obsahují potřebný řetězec nástrojů a závislostí pro sestavení mGBA na několika platformách.
Chcete-li použít obraz Docker pro sestavení mGBA, stačí v kořenovém adresáři mGBA spustit následující příkaz:
docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32
Vytvoří se adresář build-win32
s produkty sestavení. Nahraďte mgba/windows:w32
jiným obrazem Docker pro jiné platformy, čímž vznikne odpovídající jiný adresář. Na serveru Docker Hub jsou k dispozici následující obrazy Docker:
- mgba/3ds
- mgba/switch
- mgba/ubuntu:xenial
- mgba/ubuntu:bionic
- mgba/ubuntu:focal
- mgba/ubuntu:groovy
- mgba/vita
- mgba/wii
- mgba/windows:
- mgba/windows:w32
- mgba/windows:w64
*nixové sestavení
Pro použití CMake pro sestavení na unixovém systému jsou doporučené následující příkazy:
mkdir buildcd buildcmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..makesudo make install
Tím se sestaví a nainstaluje mGBA do /usr/bin
a /usr/lib
. Nainstalované závislosti budou detekovány automaticky a funkce, které jsou zakázány, pokud nejsou závislosti nalezeny, se zobrazí po spuštění příkazu cmake
po varování o nemožnosti jejich nalezení.
Pokud jste v systému MacOS, je postup trochu odlišný. Za předpokladu, že používáte správce balíčků Homebrew, jsou doporučené příkazy pro získání závislostí a sestavení následující:
brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-configmkdir buildcd buildcmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..make
Poznamenejte, že v systému MacOS byste neměli provádět příkaz make install
, protože nebude fungovat správně.
Sestavení pro vývojáře ve Windows
MSYS2
Pro sestavení ve Windows pro vývoj se doporučuje použít MSYS2. Postupujte podle instalačních kroků, které najdete na jejich webových stránkách. Ujistěte se, že používáte 32bitovou verzi („MSYS2 MinGW 32-bit“) (nebo 64bitovou verzi „MSYS2 MinGW 64-bit“, pokud chcete sestavovat pro x86_64), a spusťte tento dodatečný příkaz (včetně závorek) pro instalaci potřebných závislostí (upozorňujeme, že to zahrnuje stažení více než 1100MiB balíčků, takže to bude trvat dlouho):
pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,pkgconf,qt5,SDL2,ntldd-git}
Zkontrolujte zdrojový kód spuštěním tohoto příkazu:
git clone https://github.com/mgba-emu/mgba.git
Poté jej konečně sestavte spuštěním těchto příkazů:
mkdir -p mgba/buildcd mgba/buildcmake .. -G "MSYS Makefiles"make -j$(nproc --ignore=1)
Upozorňujeme, že toto sestavení mGBA pro Windows není vhodné pro distribuci kvůli roztroušenosti knihoven DLL, které potřebuje ke spuštění, ale je ideální pro vývoj. Pokud je však distribuce takového sestavení žádoucí (např. pro testování na počítačích, které nemají nainstalované prostředí MSYS2), spuštění příkazu cpack -G ZIP
připraví soubor zip se všemi potřebnými knihovnami DLL.
Visual Studio
Pro sestavení pomocí Visual Studia je podobně složité nastavení. Pro začátek je třeba nainstalovat vcpkg. Po instalaci vcpkg bude třeba nainstalovat několik dalších balíčků:
vcpkg install ffmpeg libepoxy libpng libzip sdl2 sqlite3
Upozorňujeme, že tato instalace nebude podporovat hardwarově akcelerované kódování videa na hardwaru Nvidia. Pokud vám na tom záleží, budete muset předtím nainstalovat CUDA a pak do předchozího příkazu dosadit ffmpeg
.
Bude také nutné nainstalovat Qt. Bohužel kvůli tomu, že Qt vlastní a provozuje nemocná společnost na rozdíl od rozumné organizace, již neexistuje offline instalátor open source edice nejnovější verze, takže se budete muset buď vrátit k instalátoru staré verze (který po vás chce vytvořit jinak nepoužitelný účet, ale můžete obejít dočasné nastavení neplatného proxy serveru nebo jinak zakázat síť), použít online instalátor (který vyžaduje účet bez ohledu na to), nebo použít vcpkg k sestavení (pomalu). Žádná z těchto možností není skvělá. Pro instalační program budete chtít nainstalovat příslušné verze MSVC. Všimněte si, že offline instalátory nepodporují MSVC 2019. Pro vcpkg budete chtít nainstalovat takto, což bude trvat poměrně dlouho, zejména na čtyřjádrových a méně výkonných počítačích:
vcpkg install qt5-base qt5-multimedia
Dále otevřete Visual Studio, vyberte možnost Klonovat úložiště a zadejte https://github.com/mgba-emu/mgba.git
. Po dokončení klonování ve Visual Studiu přejděte do Soubor > CMake a otevřete soubor CMakeLists.txt v kořenovém adresáři zkontrolovaného úložiště. Odtud lze mGBA vyvíjet ve Visual Studiu podobně jako jiné projekty CMake ve Visual Studiu.
Sestavení řetězce nástrojů
Pokud máte devkitARM (pro 3DS), devkitPPC (pro Wii), devkitA64 (pro Switch) nebo vitasdk (pro PS Vita), můžete pro sestavení použít následující příkazy:
mkdir buildcd buildcmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..make
Zaměňte parametr -DCMAKE_TOOLCHAIN_FILE
pro následující platformy:
- 3DS:
../src/platform/3ds/CMakeToolchain.txt
- Switch:
../src/platform/switch/CMakeToolchain.txt
- Vita:
../src/platform/psp2/CMakeToolchain.vitasdk
- Wii:
../src/platform/wii/CMakeToolchain.txt
Závislosti
mGBA nemá žádné pevné závislosti, nicméně následující volitelné závislosti jsou vyžadovány pro specifické funkce. Pokud se závislosti nepodaří najít, budou funkce zakázány.
- Qt 5: pro frontend grafického rozhraní. Pro zvuk je vyžadováno Qt Multimedia nebo SDL.
- SDL: pro základnější frontend a podporu gamepadu ve frontendu Qt. Doporučuje se SDL 2, ale podporována je i verze 1.2.
- zlib a libpng: pro podporu snímků obrazovky a savestate-in-PNG.
- libedit: pro podporu debuggeru příkazového řádku.
- ffmpeg nebo libav: pro záznam videa, GIF, WebP a APNG.
- libzip nebo zlib: pro načítání ROM uložených v souborech zip.
- SQLite3: pro databáze her.
- libelf: pro načítání ELF.
SQLite3, libpng a zlib jsou součástí emulátoru, takže je není třeba nejprve externě kompilovat.
Poznámky pod čarou
V současné době chybí tyto funkce
- OBJ okno pro režimy 3, 4 a 5 (chyba č. 5)
V některých případech nefunguje detekce velikosti paměti Flash. Ty lze nakonfigurovat za běhu, ale pokud se takový případ vyskytne, doporučujeme podat chybu.
10.8 je potřeba pouze pro port Qt. Je možné sestavit nebo spustit port Qt na verzi 10.7 nebo starší, ale není to oficiálně podporováno. Je známo, že port SDL funguje na verzi 10.5 a může fungovat i na starších.
Copyright
mGBA is Copyright © 2013 – 2021 Jeffrey Pfau. Je šířen pod licencí Mozilla Public License verze 2.0. Kopie licence je k dispozici v distribuovaném souboru LICENSE.
mGBA obsahuje následující knihovny třetích stran:
- inih, která je chráněna autorskými právy © 2009 – 2020 Ben Hoyt a používá se pod licencí BSD 3-clause.
- blip-buf, která je chráněna autorskými právy © 2003 – 2009 Shay Green a používá se pod Lesser GNU Public License.
- LZMA SDK, který je veřejnou doménou.
- Implementace MurmurHash3 od Austina Applebyho, která je veřejnou doménou.
- getopt pro MSVC, který je veřejnou doménou.
- SQLite3, který je veřejnou doménou.
Jestliže jste vydavatel hry a chcete mGBA licencovat pro komerční použití, napište si o více informací na [email protected].