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.

Stav sestaveníStav překladu

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].

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.