mGBA on emulaattori Game Boy Advance -pelien ajamiseen. Sen tavoitteena on olla nopeampi ja tarkempi kuin monet nykyiset Game Boy Advance -emulaattorit, sekä lisätä ominaisuuksia, joita muista emulaattoreista puuttuu. Se tukee myös Game Boy- ja Game Boy Color -pelejä.
Ajantasaiset uutiset ja lataukset löytyvät osoitteesta mgba.io.
Ominaisuudet
- Tarkka Game Boy Advance -laitteistotuki.
- Game Boy/Game Boy Color -laitteistotuki.
- Nopea emulointi. Tunnetusti toimii täydellä nopeudella jopa heikkokuntoisilla laitteistoilla, kuten netbookeilla.
- Qt- ja SDL-portit raskaalle ja kevyelle frontendille.
- Lokaali (saman tietokoneen) linkkikaapelituki.
- Tallennustyypin tunnistus, myös flash-muistin koon osalta.
- Tuki kaseteille, joissa on liiketunnistimet ja rumble (käyttökelpoinen vain peliohjaimilla).
- Tuki reaaliaikaiselle kellolle, myös ilman konfigurointia.
- Aurinkosensorituki Boktai-pelejä varten.
- Game Boy -kameran ja Game Boy -tulostimen tuki.
- Sisäänrakennettu BIOS-toteutus ja mahdollisuus ladata ulkoisia BIOS-tiedostoja.
- Turbo/fast-forward-tuki pitämällä Tab-painiketta alhaalla.
- Rewind pitämällä Backquote-painiketta alhaalla.
- Frameskip, konfiguroitavissa jopa 10:een.
- Screenshot-tuki.
- Cheat-koodituki.
- 9 savestate-paikkaa. Savestatet ovat katseltavissa myös kuvakaappauksina.
- Video-, GIF-, WebP- ja APNG-tallennus.
- e-Reader-tuki.
- Muutettavat ohjaimet sekä näppäimistöille että gamepadeille.
- Lataus ZIP- ja 7z-tiedostoista.
- IPS-, UPS- ja BPS-korjaustuki.
- Pelin virheenkorjaus komentorivikäyttöliittymän ja GDB-etätuen kautta, yhteensopiva IDA Pro:n kanssa.
- Konfiguroitavissa oleva emulaation kelaus.
- Tuki GameShark- ja Action Replay -tilannekuvien lataamiselle ja viemiselle.
- Tallennukset saatavilla RetroArch/Libretrolle ja OpenEmulle.
- Yhteisön tarjoamat käännökset useille kielille Weblate:n välityksellä.
- Monet, monet, monet pienemmät asiat.
Game Boy -karttureita
Seuraavat kartturit ovat täysin tuettuja:
- MBC1
- MBC1M
- MBC2
- MBC3
- MBC3+RTC
- MBC5
- MBC5+Rumble
- MBC7
- Wisdom Tree (lisensoimaton)
- Pokémon Jade/Diamond (lisensoimaton)
- BBD (lisensoimaton MBC5-kaltainen)
- Hitek (lisensoimaton MBC5:n kaltainen)
Seuraavat kartoittajat ovat osittain tuettuja:
- MBC6 (puuttuu flash-muistin kirjoitustuki)
- MMM01
- Pocket Cam
- TAMA5 (puuttuu RTC-tuki)
- HuC-1 (puuttuu IR-tuki)
- HuC-3 (puuttuu RTC- ja IR-tuki)
Suunnitellut ominaisuudet
- Verkossa olevan moninpelin linkkikaapelituki.
- Dolphin/JOY-väylän linkkikaapelituki.
- MP2k-audiosekoitus, joka mahdollistaa laitteistoa paremman äänenlaadun.
- Uudelleentallennustuki työkaluavusteisille ajoille.
- Lua-tuki skriptaukseen.
- Laaja debug-paketti.
- Langattoman sovittimen tuki.
Tuetut alustat
- Windows Vista tai uudempi
- OS X 10.8 (Mountain Lion) tai uudempi
- Linux
- FreeBSD
- Nintendo 3DS
- Nintendo Switch
- Wii
- PlayStation Vita
Muiden Unixin kaltaisten alustojen, kuten OpenBSD:n, tiedetään toimivan myös, mutta niitä ei ole vielä testattu ja niitä ei ole tuettu täysin.
Järjestelmävaatimukset
Vaatimukset ovat minimaaliset. Minkä tahansa tietokoneen, joka voi käyttää Windows Vistaa tai uudempaa, pitäisi pystyä käsittelemään emulointia. Lisäksi vaaditaan tuki OpenGL 1.1:lle tai uudemmalle ja OpenGL 3.2:lle tai uudemmalle shadereille ja lisäominaisuuksille.
Lataukset
Lataukset löytyvät virallisilta verkkosivuilta, Lataukset-osiosta. Lähdekoodi löytyy GitHubista.
Ohjaimet
Ohjaimet ovat konfiguroitavissa asetusvalikossa. Monet peliohjaimet pitäisi kartoittaa automaattisesti oletusarvoisesti. Näppäimistön oletusohjaukset ovat seuraavat:
- A: X
- B: Z
- L: A
- R: S
- Start: Valitse: Enter
- Valitse: Backspace
Kääntäminen
Kääntäminen edellyttää CMake 3.1:n tai uudemman version käyttöä. GCC:n ja Clangin tiedetään toimivan mGBA:n kääntämiseen, mutta Visual Studio 2013:n ja sitä vanhempien ei tiedetä toimivan. Tuki Visual Studio 2015:lle ja uudemmille on tulossa lähiaikoina.
Docker-rakentaminen
Suositeltu tapa rakentaa useimmille alustoille on käyttää Dockeria. Tarjolla on useita Docker-kuvia, jotka sisältävät tarvittavat työkaluketjut ja riippuvuudet mGBA:n rakentamiseen useilla alustoilla.
Käyttääksesi Docker-kuvaa mGBA:n rakentamiseen, suorita yksinkertaisesti seuraava komento, kun olet mGBA:n tsekkauksen juuressa:
docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32
Tämä tuottaa build-win32
-hakemiston build-win32
, jossa on rakennustuotteet. Korvaa mgba/windows:w32
toisella Docker-kuvalla muille alustoille, mikä tuottaa vastaavan toisen hakemiston. Seuraavat Docker-kuvat saatavilla Docker Hubissa:
- 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-rakentaminen
Käyttääksesi CMakea rakentamiseen Unix-pohjaisessa järjestelmässä, suositellut komennot ovat seuraavat:
mkdir buildcd buildcmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..makesudo make install
Tämä rakentaa ja asentaa mGBA:n /usr/bin
ja /usr/lib
. Asennetut riippuvuudet havaitaan automaattisesti, ja ominaisuudet, jotka poistetaan käytöstä, jos riippuvuuksia ei löydy, näytetään komennon cmake
suorittamisen jälkeen varoitusten jälkeen siitä, että niitä ei löydy.
Jos olet macOS-käyttöjärjestelmässä, vaiheet ovat hieman erilaiset. Olettaen, että käytät homebrew-paketinhallintaa, suositellut komennot riippuvuuksien hankkimiseen ja rakentamiseen ovat:
brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-configmkdir buildcd buildcmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..make
Huomaa, että macOS:ssä ei kannata tehdä komentoa make install
, koska se ei toimi kunnolla.
Windows-kehittäjien rakentaminen
MSYS2
Kehityskäyttöön Windowsissa suositellaan MSYS2:n käyttöä. Seuraa niiden verkkosivuilta löytyviä asennusvaiheita. Varmista, että käytät 32-bittistä versiota (”MSYS2 MinGW 32-bit”) (tai 64-bittistä versiota ”MSYS2 MinGW 64-bit”, jos haluat rakentaa x86_64:lle), ja suorita tämä lisäkomento (hakasulkeet mukaan lukien) tarvittavien riippuvuuksien asentamiseksi (huomaa, että tämä edellyttää yli 1100MiB:n pakettien lataamista, joten se kestää kauan):
pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,pkgconf,qt5,SDL2,ntldd-git}
Tarkista lähdekoodi ajamalla tämä komento:
git clone https://github.com/mgba-emu/mgba.git
Sitten lopuksi rakenna se ajamalla nämä komennot:
mkdir -p mgba/buildcd mgba/buildcmake .. -G "MSYS Makefiles"make -j$(nproc --ignore=1)
Huomaa, että tämä mGBA:n Windows-rakennus ei sovellu jakeluun, koska se tarvitsee hajallaan olevia DLL:iä toimiakseen, mutta se sopii täydellisesti kehitykseen. Jos tällaisen buildin jakelu kuitenkin halutaan (esim. testausta varten koneilla, joihin ei ole asennettu MSYS2-ympäristöä), suoritus cpack -G ZIP
valmistaa zip-tiedoston, jossa on kaikki tarvittavat DLL:t.
Visual Studio
Visual Studion käyttäminen rakentamiseen Visual Studiolla on yhtä monimutkainen asennus. Aluksi sinun on asennettava vcpkg. Kun olet asentanut vcpkg:n, sinun on asennettava useita muita paketteja:
vcpkg install ffmpeg libepoxy libpng libzip sdl2 sqlite3
Huomaa, että tämä asennus ei tue laitteistokiihdytettyä videokoodausta Nvidia-laitteistolla. Jos välität tästä, sinun on asennettava CUDA etukäteen ja korvattava ffmpeg
edelliseen komentoon.
Sinun on myös asennettava Qt. Valitettavasti johtuen siitä, että Qt:n omistaa ja sitä pyörittää heikossa kunnossa oleva yritys järkevän organisaation sijaan, uusimmalle versiolle ei ole enää offline-asennusohjelmaa avoimen lähdekoodin versiosta, joten sinun on joko turvauduttava vanhan version asennusohjelmaan (joka haluaa, että luot muutoin käyttökelvottoman tilin, mutta voit ohittaa väliaikaisesti asettamalla epäkelvon välityspalvelimen (invalid proxy) tai muulla tavoin poistamalla verkkoyhteydet käytöstä), käytettävä online-asennusohjelmaa (joka vaatii tilin siitä huolimatta) tai rakennettava se (hitaasti) vcpkg:n avulla. Mikään näistä ei ole hyvä vaihtoehto. Asennusohjelmaa varten sinun on asennettava sovellettavat MSVC-versiot. Huomaa, että offline-asennusohjelmat eivät tue MSVC 2019:ää. Vcpkg:n haluat asentaa näin, mikä kestää melko kauan, varsinkin neliytimisissä tai pienemmissä tietokoneissa:
vcpkg install qt5-base qt5-multimedia
Avaa seuraavaksi Visual Studio, valitse Clone Repository ja kirjoita https://github.com/mgba-emu/mgba.git
. Kun Visual Studio on valmis kloonauksen jälkeen, siirry kohtaan File > CMake ja avaa CMakeLists.txt-tiedosto uloskirjautuneen arkiston juuressa. Siitä mGBA:ta voidaan kehittää Visual Studiossa samalla tavalla kuin muitakin Visual Studion CMake-projekteja.
Työkaluketjun rakentaminen
Jos käytössäsi on devkitARM (3DS:lle), devkitPPC (Wii:lle), devkitA64 (Switch:lle) tai vitasdk (PS Vita:lle), voit käyttää seuraavia komentoja rakentamiseen:
mkdir buildcd buildcmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..make
Vaihda -DCMAKE_TOOLCHAIN_FILE
-parametri seuraaville alustoille:
- 3DS:
../src/platform/3ds/CMakeToolchain.txt
- Switch:
../src/platform/switch/CMakeToolchain.txt
- Vita:
../src/platform/psp2/CMakeToolchain.vitasdk
- Wii:
../src/platform/wii/CMakeToolchain.txt
Riippuvuudet
mGBA:lla ei ole kovia riippuvuuksia, mutta seuraavia valinnaisia riippuvuuksia tarvitaan tiettyjä ominaisuuksia varten. Ominaisuudet poistetaan käytöstä, jos riippuvuuksia ei löydy.
- Qt 5: graafisen käyttöliittymän frontendiä varten. Qt Multimedia tai SDL tarvitaan ääntä varten.
- SDL: Qt:n perusrintamaa ja gamepad-tukea varten. SDL 2:ta suositellaan, mutta 1.2:ta tuetaan.
- zlib ja libpng: kuvakaappaustukea ja savestate-in-PNG-tukea varten.
- libedit: komentorivin debuggeritukea varten.
- ffmpeg tai libav: videon, GIF:n, WebP:n ja APNG:n tallentamiseen.
- libzip tai zlib: zip-tiedostoihin tallennettujen ROM-tiedostojen lataamiseen.
- SQLite3: pelien tietokantoihin.
- libelf: ELF:n lataamiseen.
SQLite3, libpng ja zlib sisältyvät emulaattorin mukana, joten niitä ei tarvitse kääntää ensin ulkoisesti.
Alaviitteet
Tällä hetkellä puuttuvat ominaisuudet ovat
- OBJ-ikkuna moodeille 3, 4 ja 5 (Bug #5)
Flash-muistin koon tunnistus ei toimi joissakin tapauksissa. Nämä voidaan konfiguroida ajonaikana, mutta vikailmoituksen tekeminen on suositeltavaa, jos tällainen tapaus ilmenee.
10.8 tarvitaan vain Qt-porttia varten. Qt-portin rakentaminen tai ajaminen 10.7:llä tai vanhemmalla voi olla mahdollista, mutta sitä ei virallisesti tueta. SDL-portin tiedetään toimivan 10.5:llä, ja se saattaa toimia vanhemmallakin.
Copyright
mGBA is Copyright © 2013 – 2021 Jeffrey Pfau. Se on jaettu Mozilla Public License version 2.0 mukaisesti. Kopio lisenssistä on saatavilla jaetussa LICENSE-tiedostossa.
mGBA sisältää seuraavat kolmannen osapuolen kirjastot:
- inih, jonka tekijänoikeus on © 2009 – 2020 Ben Hoyt ja jota käytetään BSD 3-clause -lisenssin alaisuudessa.
- blip-buf, jonka tekijänoikeus on © 2003 – 2009 Shay Green ja jota käytetään pienemmän GNU-lisenssin alla.
- LZMA SDK, joka on public domain.
- Austin Applebyn tekemä MurmurHash3-toteutus, joka on public domain.
- getopt for MSVC, joka on public domain.
- SQLite3, joka on public domain.
Jos olet pelijulkaisija ja haluat lisensoida mGBA:n kaupalliseen käyttöön, lähetä sähköpostia sähköpostitse osoitteeseen [email protected] saadaksesi lisätietoja.