mGBA is een emulator voor het spelen van Game Boy Advance spellen. Het is bedoeld om sneller en nauwkeuriger te zijn dan veel bestaande Game Boy Advance-emulators, en functies toe te voegen die andere emulators missen. Het ondersteunt ook Game Boy- en Game Boy Color-spellen.

Up-to-date nieuws en downloads zijn te vinden op mgba.io.

BouwstatusVertaalstatus

Functies

  • Hoog nauwkeurige Game Boy Advance hardware-ondersteuning.
  • Game Boy/Game Boy Color hardware-ondersteuning.
  • Snelle emulatie. Staat erom bekend op volle snelheid te draaien, zelfs op low-end hardware, zoals netbooks.
  • Qt en SDL poorten voor een zwaargewicht en een lichtgewicht frontend.
  • Lokale (dezelfde computer) link kabel ondersteuning.
  • Opslaan type detectie, zelfs voor flash geheugen grootte.
  • Ondersteuning voor cartridges met bewegingssensoren en rumble (alleen bruikbaar met game controllers).
  • Real-time klok ondersteuning, zelfs zonder configuratie.
  • Solar sensor support voor Boktai games.
  • Game Boy Camera en Game Boy Printer support.
  • Een ingebouwde BIOS implementatie, en de mogelijkheid om externe BIOS files te laden.
  • Turbo/fast-forward ondersteuning door Tab ingedrukt te houden.
  • Rewind door Backquote ingedrukt te houden.
  • Frameskip, instelbaar tot 10.
  • Screenshot ondersteuning.
  • Cheat code ondersteuning.
  • 9 savestate slots. Savestates zijn ook te bekijken als screenshots.
  • Video, GIF, WebP, en APNG opname.
  • e-Reader ondersteuning.
  • Herhaalbare controls voor zowel toetsenborden als gamepads.
  • Laden van ZIP en 7z files.
  • IPS, UPS en BPS patch ondersteuning.
  • Game debugging via een command-line interface en GDB remote ondersteuning, compatibel met IDA Pro.
  • Configureerbare emulatie terugspoelen.
  • Support voor laden en exporteren van GameShark en Action Replay snapshots.
  • Cores beschikbaar voor RetroArch/Libretro en OpenEmu.
  • Community-vertalingen voor verschillende talen via Weblate.
  • Vele, vele kleinere dingen.

Game Boy mappers

De volgende mappers worden volledig ondersteund:

  • MBC1
  • MBC1M
  • MBC2
  • MBC3
  • MBC3+RTC
  • MBC5
  • MBC5+Rumble
  • MBC7
  • Wisdom Tree (zonder licentie)
  • Pokémon Jade/Diamond (zonder licentie)
  • BBD (zonder licentie MBC5-achtig)
  • Hitek (zonder licentie MBC5-achtig)

De volgende mappers worden gedeeltelijk ondersteund:

  • MBC6 (ondersteuning voor schrijven van flashgeheugen ontbreekt)
  • MMM01
  • Pocket Cam
  • TAMA5 (ondersteuning voor RTC ontbreekt)
  • HuC-1 (mist IR ondersteuning)
  • HuC-3 (mist RTC en IR ondersteuning)

Geplande features

  • Networked multiplayer link cable support.
  • Dolphin/JOY bus link cable support.
  • MP2k audio mixing, voor geluid van hogere kwaliteit dan hardware.
  • Her-opname ondersteuning voor tool-assist runs.
  • Lua ondersteuning voor scripting.
  • Een uitgebreide debug suite.
  • Wireless adapter support.

Ondersteunde platformen

  • Windows Vista of nieuwer
  • OS X 10.8 (Mountain Lion) of nieuwer
  • Linux
  • FreeBSD
  • Nintendo 3DS
  • Nintendo Switch
  • Wii
  • PlayStation Vita

Van andere Unix-achtige platforms, zoals OpenBSD, is bekend dat ze ook werken, maar ze zijn niet getest en niet volledig ondersteund.

Systeemeisen

De eisen zijn minimaal. Elke computer waarop Windows Vista of nieuwer kan draaien, zou in staat moeten zijn de emulatie aan te kunnen. Ondersteuning voor OpenGL 1.1 of nieuwer is ook vereist, met OpenGL 3.2 of nieuwer voor shaders en geavanceerde functies.

Downloads

Downloads zijn te vinden op de officiële website, in de Downloads sectie. De broncode is te vinden op GitHub.

Controls

Controls zijn configureerbaar in het instellingen menu. Veel spelcontrollers worden standaard automatisch in kaart gebracht. De standaard toetsenbordbesturing is als volgt:

  • A: X
  • B: Z
  • L: A
  • R: S
  • Start: Enter
  • Kies: Backspace

Compileren

Compileren vereist het gebruik van CMake 3.1 of nieuwer. Van GCC en Clang is bekend dat ze beide werken om mGBA te compileren, maar van Visual Studio 2013 en ouder is bekend dat ze niet werken. Ondersteuning voor Visual Studio 2015 en nieuwer komt binnenkort.

Docker building

De aanbevolen manier om te bouwen voor de meeste platformen is om Docker te gebruiken. Er zijn verschillende Docker-images beschikbaar die de vereiste toolchain en afhankelijkheden bevatten voor het bouwen van mGBA op verschillende platforms.

Om een Docker-image te gebruiken om mGBA te bouwen, voert u eenvoudig het volgende commando uit terwijl u in de root van een mGBA-checkout zit:

docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32

Dit zal een build-win32 map met de bouwproducten produceren. Vervang mgba/windows:w32 door een ander Docker image voor andere platformen, wat een overeenkomstige andere directory zal produceren. De volgende Docker-images zijn beschikbaar op 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 bouwen

Om CMake te gebruiken om te bouwen op een Unix-gebaseerd systeem, zijn de aanbevolen commando’s als volgt:

mkdir buildcd buildcmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..makesudo make install

Dit zal mGBA bouwen en installeren in /usr/bin en /usr/lib. Afhankelijkheden die zijn geïnstalleerd zullen automatisch worden gedetecteerd, en functies die zijn uitgeschakeld als de afhankelijkheden niet worden gevonden zullen worden getoond na het uitvoeren van het cmake commando na waarschuwingen over het niet kunnen vinden ervan.

Als u op macOS zit, zijn de stappen een beetje anders. Ervan uitgaande dat u de homebrew package manager gebruikt, zijn de aanbevolen commando’s om de dependencies te verkrijgen en te bouwen:

brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-configmkdir buildcd buildcmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..make

Merk op dat u geen make install moet doen op macOS, omdat het niet goed zal werken.

Windows developer building

MSYS2

Om te bouwen op Windows voor ontwikkeling, wordt het gebruik van MSYS2 aanbevolen. Volg de installatie stappen op hun website. Zorg ervoor dat u de 32-bit versie (“MSYS2 MinGW 32-bit”) gebruikt (of de 64-bit versie “MSYS2 MinGW 64-bit” als u wilt bouwen voor x86_64) en voer dit extra commando uit (inclusief de accolades) om de benodigde afhankelijkheden te installeren (merk op dat dit gepaard gaat met het downloaden van meer dan 1100MiB aan pakketten, dus het zal een lange tijd in beslag nemen):

pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,pkgconf,qt5,SDL2,ntldd-git}

Kijk naar de broncode door dit commando uit te voeren:

git clone https://github.com/mgba-emu/mgba.git

Bouw het tenslotte door deze commando’s uit te voeren:

mkdir -p mgba/buildcd mgba/buildcmake .. -G "MSYS Makefiles"make -j$(nproc --ignore=1)

Merk op dat deze build van mGBA voor Windows niet geschikt is voor distributie, vanwege de vele DLL’s die nodig zijn om het te draaien, maar het is perfect voor ontwikkeling. Echter, als distributie van zo’n build gewenst is (b.v. voor testen op machines die de MSYS2 omgeving niet geïnstalleerd hebben), dan zal het draaien van cpack -G ZIP een zip bestand voorbereiden met alle benodigde DLL’s.

Visual Studio

Om te bouwen met Visual Studio is een vergelijkbare gecompliceerde setup nodig. Om te beginnen moet je vcpkg installeren. Na de installatie van vcpkg moet u nog enkele pakketten installeren:

vcpkg install ffmpeg libepoxy libpng libzip sdl2 sqlite3

Merk op dat deze installatie geen ondersteuning biedt voor hardware versnelde video encoding op Nvidia hardware. Als u dit belangrijk vindt, moet u CUDA eerst installeren, en dan ffmpeg in het vorige commando invoegen.

U zult ook Qt moeten installeren. Helaas, omdat Qt eigendom is van een noodlijdend bedrijf in plaats van een redelijke organisatie, is er niet langer een offline open source editie installer voor de laatste versie, dus je zult ofwel terug moeten vallen op een oude versie installer (die wil dat je een verder nutteloos account aanmaakt, maar je kunt het omzeilen door tijdelijk een ongeldige proxy in te stellen of op een andere manier netwerken uit te schakelen), de online installer gebruiken (die hoe dan ook een account vereist), of vcpkg gebruiken om het te bouwen (langzaam). Geen van deze opties zijn geweldig. Voor het installatieprogramma moet u de toepasselijke MSVC versies installeren. Merk op dat de offline installers geen ondersteuning bieden voor MSVC 2019. Voor vcpkg wil je het als volgt installeren, wat een tijdje zal duren, vooral op quad core of minder computers:

vcpkg install qt5-base qt5-multimedia

Volgende, open Visual Studio, selecteer Clone Repository, en voer https://github.com/mgba-emu/mgba.git in. Als Visual Studio klaar is met klonen, ga dan naar File > CMake en open het CMakeLists.txt bestand in de root van de uitgecheckte repository. Van daaruit kan mGBA in Visual Studio ontwikkeld worden, net zoals andere Visual Studio CMake projecten.

Toolchain building

Als u devkitARM (voor 3DS), devkitPPC (voor Wii), devkitA64 (voor Switch), of vitasdk (voor PS Vita) heeft, kunt u de volgende commando’s gebruiken voor het bouwen:

mkdir buildcd buildcmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..make

Vervang de -DCMAKE_TOOLCHAIN_FILE parameter voor de volgende platformen:

  • 3DS: ../src/platform/3ds/CMakeToolchain.txt
  • Switch: ../src/platform/switch/CMakeToolchain.txt
  • Vita: ../src/platform/psp2/CMakeToolchain.vitasdk
  • Wii: ../src/platform/wii/CMakeToolchain.txt

Afhankelijkheden

mGBA heeft geen harde afhankelijkheden, echter, de volgende optionele afhankelijkheden zijn nodig voor specifieke features. De functies zullen worden uitgeschakeld als de afhankelijkheden niet kunnen worden gevonden.

  • Qt 5: voor de GUI frontend. Qt Multimedia of SDL zijn nodig voor audio.
  • SDL: voor een meer basis frontend en gamepad ondersteuning in de Qt frontend. SDL 2 wordt aanbevolen, maar 1.2 wordt ondersteund.
  • zlib en libpng: voor ondersteuning van screenshots en savestate-in-PNG.
  • libedit: voor command-line debugger ondersteuning.
  • ffmpeg of libav: voor video, GIF, WebP, en APNG opname.
  • libzip of zlib: voor het laden van ROMs opgeslagen in zip bestanden.
  • SQLite3: voor spel databases.
  • libelf: voor het laden van ELF.

SQLite3, libpng, en zlib worden met de emulator meegeleverd, dus ze hoeven niet eerst extern gecompileerd te worden.

Voetnoten

Momenteel ontbreken de volgende features

  • OBJ window voor modes 3, 4 en 5 (Bug #5)

Flash memory size detection werkt in sommige gevallen niet. Dit kan tijdens runtime worden geconfigureerd, maar het wordt aangeraden een bug te melden als een dergelijk geval zich voordoet.

10.8 is alleen nodig voor de Qt port. Het is misschien mogelijk om de Qt port te bouwen of te draaien op 10.7 of ouder, maar dit wordt niet officieel ondersteund. Van de SDL port is bekend dat hij op 10.5 werkt, en mogelijk ook op ouder.

Copyright

mGBA is Copyright © 2013 – 2021 Jeffrey Pfau. Het wordt verspreid onder de Mozilla Public License versie 2.0. Een kopie van de licentie is beschikbaar in het gedistribueerde LICENSE bestand.

mGBA bevat de volgende bibliotheken van derden:

  • inih, die copyright © 2009 – 2020 Ben Hoyt is en gebruikt wordt onder een BSD 3-clausule licentie.
  • blip-buf, die copyright © 2003 – 2009 Shay Green is en gebruikt wordt onder een Kleine GNU Publieke Licentie.
  • LZMA SDK, dat publiek domein is.
  • MurmurHash3 implementatie door Austin Appleby, dat publiek domein is.
  • getopt voor MSVC, dat publiek domein is.
  • SQLite3, dat publiek domein is.

Als u een speluitgever bent en een licentie wilt voor mGBA voor commercieel gebruik, stuur dan een e-mail naar [email protected] voor meer informatie.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.