mGBA er en emulator til at køre Game Boy Advance-spil. Den har til formål at være hurtigere og mere præcis end mange eksisterende Game Boy Advance-emulatorer samt at tilføje funktioner, som andre emulatorer mangler. Den understøtter også Game Boy- og Game Boy Color-spil.

Aktuelle nyheder og downloads kan findes på mgba.io.

Status for opbygningStatus for oversættelse

Funktioner

  • Høj præcis Game Boy Advance-hardwareunderstøttelse.
  • Understøttelse af Game Boy/Game Boy Color-hardware.
  • Hurtig emulering. Kendt for at køre med fuld hastighed selv på hardware i den lave ende, f.eks. netbooks.
  • Qt- og SDL-porte til en tung og en letvægts frontend.
  • Lokal (samme computer) linkkabel-understøttelse.
  • Sparetype-detektion, selv for flash-hukommelsesstørrelse.
  • Understøttelse af patroner med bevægelsessensorer og rumble (kun anvendelig med spilcontrollere).
  • Understøttelse af realtidsklokke, selv uden konfiguration.
  • Solarsensorunderstøttelse til Boktai-spil.
  • Understøttelse af Game Boy-kamera og Game Boy-printer.
  • En indbygget BIOS-implementering og mulighed for at indlæse eksterne BIOS-filer.
  • Understøttelse af turbo/fast-forward ved at holde Tab nede.
  • Rewind ved at holde Backquote nede.
  • Frameskip, kan konfigureres op til 10.
  • Screenshot-understøttelse.
  • Understøttelse af snydekode.
  • 9 savestate-pladser. Savestates kan også ses som skærmbilleder.
  • Video, GIF, WebP og APNG-optagelse.
  • e-Reader-understøttelse.
  • Remappable kontroller til både tastaturer og gamepads.
  • Læsning fra ZIP- og 7z-filer.
  • IPS, UPS og BPS patch-understøttelse.
  • Game debugging via en kommandolinjeinterface og GDB fjernunderstøttelse, kompatibel med IDA Pro.
  • Konfigurerbar emuleringsspilning.
  • Støtte til indlæsning og eksport af GameShark- og Action Replay-snapshots.
  • Kerner til rådighed for RetroArch/Libretro og OpenEmu.
  • Fællesskabsleverede oversættelser til flere sprog via Weblate.
  • Mange, mange, mange mindre ting.

Game Boy-mappere

De følgende mappere understøttes fuldt ud:

  • MBC1
  • MBC1M
  • MBC2
  • MBC3
  • MBC3+RTC
  • MBC5
  • MBC5+Rumble
  • MBC7
  • Wisdom Tree (licensløs)
  • Pokémon Jade/Diamond (licensløs)
  • BBD (licensløs MBC5-lignende)
  • Hitek (licensløs MBC5-lignende)

De følgende mappere understøttes delvist:

  • MBC6 (manglende understøttelse af skrivning af flash-hukommelse)
  • MMMM01
  • Pocket Cam
  • TAMA5 (manglende understøttelse af RTC)
  • HuC-1 (mangler IR-understøttelse)
  • HuC-3 (mangler RTC- og IR-understøttelse)

Planlagte funktioner

  • Understøttelse af linkkabel til multiplayer-netværk.
  • Dolphin/JOY bus linkkabel-understøttelse.
  • MP2k-lydmixing, for højere lydkvalitet end hardware.
  • Understøttelse af genindspilning til værktøjsassist-kørsler.
  • Lua-understøttelse af scripting.
  • En omfattende debug-suite.
  • Understøttelse af trådløse adaptere.

Understøttede platforme

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

Andre Unix-lignende platforme, såsom OpenBSD, er kendt for også at fungere, men er ikke testet og ikke fuldt understøttet.

Systemkrav

Kravene er minimale. Enhver computer, der kan køre Windows Vista eller nyere, bør kunne håndtere emulering. Understøttelse af OpenGL 1.1 eller nyere er også påkrævet, med OpenGL 3.2 eller nyere for shaders og avancerede funktioner.

Downloads

Downloads kan findes på det officielle websted, i afsnittet Downloads. Kildekoden kan findes på GitHub.

Kontrolelementer

Kontrolelementer kan konfigureres i indstillingsmenuen. Mange spilcontrollere bør som standard være automatisk tilknyttet. Standardtastaturkontrollerne er som følger:

  • A: X
  • B: Z
  • L: A
  • R: S
  • Start: Enter
  • Vælg: Backspace

Kompilering

Kompilering kræver brug af CMake 3.1 eller nyere. GCC og Clang er begge kendt for at virke til at kompilere mGBA, men Visual Studio 2013 og ældre er kendt for ikke at virke. Understøttelse af Visual Studio 2015 og nyere er på vej.

Docker-bygning

Den anbefalede måde at bygge på til de fleste platforme er at bruge Docker. Der leveres flere Docker-aftryk, som indeholder den nødvendige værktøjskæde og afhængigheder til at bygge mGBA på tværs af flere platforme.

For at bruge et Docker-aftryk til at bygge mGBA skal du blot køre følgende kommando, mens du er i roden af en mGBA-checkout:

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

Dette vil producere en build-win32-mappe med byggeprodukterne. Udskift mgba/windows:w32 med et andet Docker-aftryk til andre platforme, hvilket vil producere en tilsvarende anden mappe. Følgende Docker-aftryk er tilgængelige på Docker Hub:

  • mgba/3ds
  • mgba/switch
  • mgba/ubuntu:xenial
  • mgba/ubuntu:bionic
  • mgba/ubuntu:focal
  • mgba/ubuntu:groovy
  • mgba/vita
  • mgba/wii
  • mgba/wii
  • mgba/windows:w32
  • mgba/windows:w64

*nix-bygning

For at bruge CMake til at bygge på et Unix-baseret system, er de anbefalede kommandoer som følger:

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

Dette vil bygge og installere mGBA i /usr/bin og /usr/lib. Afhængigheder, der er installeret, vil automatisk blive opdaget, og funktioner, der er deaktiveret, hvis afhængighederne ikke findes, vil blive vist efter at have kørt kommandoen cmake efter advarsler om, at de ikke kan findes.

Hvis du er på macOS, er trinene lidt anderledes. Hvis du antager, at du bruger homebrew-pakkehåndteringen, er de anbefalede kommandoer til at hente afhængighederne og bygge følgende:

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

Bemærk, at du ikke bør udføre en make install på macOS, da det ikke vil fungere korrekt.

Windows-udvikleropbygning

MSYS2

For at bygge på Windows til udvikling anbefales det at bruge MSYS2. Følg installationstrinnene, der findes på deres websted. Sørg for, at du kører 32-bit versionen (“MSYS2 MinGW 32-bit”) (eller 64-bit versionen “MSYS2 MinGW 64-bit”, hvis du vil bygge til x86_64) og kør denne ekstra kommando (inklusive parenteserne) for at installere de nødvendige afhængigheder (bemærk venligst, at dette indebærer downloading af over 1100MiB pakker, så det vil tage lang tid):

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

Tjek kildekoden ved at køre denne kommando:

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

Til sidst skal du bygge den ved at køre disse kommandoer:

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

Bemærk venligst, at denne build af mGBA til Windows ikke er egnet til distribution, på grund af den spredning af DLL’er, som den skal køre, men den er perfekt til udvikling. Hvis det imidlertid ønskes at distribuere et sådant build (f.eks. til test på maskiner, der ikke har MSYS2-miljøet installeret), kan du ved at køre cpack -G ZIP forberede en zip-fil med alle de nødvendige DLL’er.

Visual Studio

At bygge med Visual Studio er en tilsvarende kompliceret opsætning. For at begynde skal du installere vcpkg. Efter installation af vcpkg skal du installere flere yderligere pakker:

Bemærk, at denne installation ikke understøtter hardwareaccelereret videokodning på Nvidia-hardware. Hvis du er interesseret i dette, skal du installere CUDA på forhånd, og derefter erstatte ffmpeg med ffmpeg i den foregående kommando.

Du skal også installere Qt. Desværre på grund af at Qt ejes og drives af et kriseramt firma i modsætning til en fornuftig organisation, er der ikke længere et offline open source edition-installationsprogram til den nyeste version, så du skal enten falde tilbage til et installationsprogram til den gamle version (som vil have dig til at oprette en ellers ubrugelig konto, men du kan omgås ved midlertidigt at indstille en ugyldig proxy eller på anden måde deaktivere netværk), bruge online-installationsprogrammet (som kræver en konto uanset hvad), eller bruge vcpkg til at bygge det (langsomt). Ingen af disse er gode muligheder. Til installationsprogrammet skal du installere de relevante MSVC-versioner. Bemærk, at offline-installationsprogrammerne ikke understøtter MSVC 2019. For vcpkg skal du installere det som sådan, hvilket vil tage en del tid, især på quad core-computere eller mindre:

vcpkg install qt5-base qt5-multimedia

Næst skal du åbne Visual Studio, vælge Clone Repository og indtaste https://github.com/mgba-emu/mgba.git. Når Visual Studio er færdig med at klone, skal du gå til File > CMake og åbne filen CMakeLists.txt i roden af det udcheckede repository. Derfra kan mGBA udvikles i Visual Studio på samme måde som andre Visual Studio CMake-projekter.

Opbygning af værktøjskæde

Hvis du har devkitARM (til 3DS), devkitPPC (til Wii), devkitA64 (til Switch) eller vitasdk (til PS Vita), kan du bruge følgende kommandoer til opbygning:

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

Udskift parameteren -DCMAKE_TOOLCHAIN_FILE for følgende platforme:

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

Afhængigheder

mGBA har ingen hårde afhængigheder, men følgende valgfrie afhængigheder er dog påkrævet for specifikke funktioner. Funktionerne vil blive deaktiveret, hvis afhængighederne ikke kan findes.

  • Qt 5: til GUI-frontend. Qt Multimedia eller SDL er påkrævet for lyd.
  • SDL: for en mere grundlæggende frontend og gamepad-understøttelse i Qt-frontend’en. SDL 2 anbefales, men 1.2 understøttes.
  • zlib og libpng: til understøttelse af skærmbilleder og savestate-in-PNG-understøttelse.
  • libedit: til understøttelse af kommandolinje-fejlsøgningsprogram.
  • ffmpeg eller libav: til optagelse af video, GIF, WebP og APNG.
  • libzip eller zlib: til indlæsning af ROM’er, der er gemt i zip-filer.
  • SQLite3: til spildatabaser.
  • libelf: til ELF-indlæsning.

SQLite3, libpng og zlib er inkluderet med emulatoren, så de behøver ikke at blive kompileret eksternt først.

Fodnoter

I øjeblikket mangler følgende funktioner

  • OBJ-vindue til tilstand 3, 4 og 5 (fejl nr. 5)

Detektion af flashhukommelsesstørrelse virker ikke i nogle tilfælde. Disse kan konfigureres ved kørselstid, men det anbefales at indsende en fejl, hvis et sådant tilfælde opstår.

10.8 er kun nødvendig for Qt-porten. Det kan være muligt at bygge eller køre Qt-porten på 10.7 eller ældre, men dette er ikke officielt understøttet. SDL-porten er kendt for at virke på 10.5, og kan muligvis virke på ældre.

Copyright

mGBA er Copyright © 2013 – 2021 Jeffrey Pfau. Den er distribueret under Mozilla Public License version 2.0. En kopi af licensen findes i den distribuerede LICENSE-fil.

mGBA indeholder følgende biblioteker fra tredjeparter:

  • inih, som er copyright © 2009 – 2020 Ben Hoyt og bruges under en BSD 3-clause-licens.
  • blip-buf, som er copyright © 2003 – 2009 Shay Green og bruges under en Lesser GNU Public License.
  • LZMA SDK, som er offentligt domæne.
  • MurmurHash3-implementering af Austin Appleby, som er offentligt domæne.
  • getopt for MSVC, som er offentligt domæne.
  • SQLite3, som er offentligt domæne.

Hvis du er spiludgiver og ønsker at give licens til mGBA til kommerciel brug, bedes du sende en e-mail til [email protected] for yderligere oplysninger.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.