mGBA este un emulator pentru a rula jocuri Game Boy Advance. Acesta își propune să fie mai rapid și mai precis decât multe emulatoare Game Boy Advance existente, precum și să adauge caracteristici care lipsesc altor emulatoare. De asemenea, suportă jocuri Game Boy și Game Boy Color.
Știri actualizate și descărcări pot fi găsite la mgba.io.
Caracteristici
- Suport hardware Game Boy Advance extrem de precis.
- Suport hardware Game Boy/Game Boy Color.
- Emulare rapidă. Cunoscută pentru a rula la viteză maximă chiar și pe hardware-ul low end, cum ar fi netbook-urile.
- Porturi Qt și SDL pentru un frontend cu greutate mare și unul cu greutate redusă.
- Suport cablu de legătură locală (același calculator).
- Detectarea tipului de salvare, chiar și pentru dimensiunea memoriei flash.
- Suport pentru cartușe cu senzori de mișcare și rumble (utilizabil numai cu controllere de jocuri).
- Suport pentru ceas în timp real, chiar și fără configurare.
- Suport pentru senzorul solar pentru jocurile Boktai.
- Suport pentru camera Game Boy și imprimanta Game Boy.
- O implementare BIOS încorporată și posibilitatea de a încărca fișiere BIOS externe.
- Suport turbo/fast-forward ținând apăsat Tab.
- Rewind ținând apăsat Backquote.
- Frameskip, configurabil până la 10.
- Suport pentru captură de ecran.
- Suport pentru coduri de înșelăciune.
- 9 sloturi savestate. Savestates sunt, de asemenea, vizionabile ca capturi de ecran.
- Înregistrare video, GIF, WebP și APNG.
- Suport pentru e-Reader.
- Controale resimțitoare atât pentru tastaturi cât și pentru gamepads.
- Încărcare din fișiere ZIP și 7z.
- Suport pentru patch-uriIPS, UPS și BPS.
- Depanare jocuri prin intermediul unei interfețe de linie de comandă și suport de la distanță GDB, compatibil cu IDA Pro.
- Reîntoarcere configurabilă a emulației.
- Suport pentru încărcarea și exportul instantaneelor GameShark și Action Replay.
- Core disponibile pentru RetroArch/Libretro și OpenEmu.
- Traduceri furnizate de comunitate pentru mai multe limbi prin Weblate.
- Multe, multe lucruri mai mici.
Mapperii pentru Game Boy
Sunt pe deplin suportate următoarele mape:
- MBC1
- MBC1M
- MBC2
- MBC3
- MBC3+RTC
- MBC5
- MBC5+Rumble
- MBC7
- Wisdom Tree (nelicențiat)
- Pokémon Jade/Diamond (nelicențiat)
- BBD (nelicențiat MBC5-like)
- Hitek (unlicensed MBC5-like)
.
Sunt parțial acceptate următoarele cartografii:
- MBC6 (lipsește suportul de scriere a memoriei flash)
- MMM01
- Pocket Cam
- TAMA5 (lipsește suportul RTC)
- HuC…1 (lipsește suportul IR)
- HuC-3 (lipsește suportul RTC și IR)
Caracteristici planificate
- Suport pentru cablu de legătură multiplayer în rețea.
- Suport pentru cablu de legătură cu busul Delfinul/JOY.
- Mixare audio MP2k, pentru un sunet de mai bună calitate decât cel hardware.
- Suport de reînregistrare pentru rulări cu ajutorul instrumentelor.
- Suport Lua pentru scripting.
- O suită completă de depanare.
- Suport pentru adaptoare wireless.
Platforme acceptate
- Windows Vista sau mai nou
- OS X 10.8 (Mountain Lion) sau mai nou
- Linux
- FreeBSD
- Nintendo 3DS
- Nintendo Switch
- Wii
- PlayStation Vita
Se știe că și alte platforme de tip Unix, cum ar fi OpenBSD, funcționează, dar nu sunt testate și nu sunt pe deplin acceptate.
Cerințe de sistem
Requizitele sunt minime. Orice calculator care poate rula Windows Vista sau mai nou ar trebui să fie capabil să gestioneze emulația. De asemenea, este necesar suportul pentru OpenGL 1.1 sau mai nou, cu OpenGL 3.2 sau mai nou pentru shaders și caracteristici avansate.
Descărcări
Descărcările pot fi găsite pe site-ul oficial, în secțiunea Descărcări. Codul sursă poate fi găsit pe GitHub.
Controale
Controalele sunt configurabile în meniul de setări. Multe controllere de joc ar trebui să fie mapate automat în mod implicit. Controalele implicite ale tastaturii sunt următoarele:
- A: X
- B: Z
- L: A
- R: S
- Start: Enter
- Enter
- Select: Backspace
Compilare
Compilarea necesită utilizarea CMake 3.1 sau o versiune mai nouă. Se știe că GCC și Clang funcționează pentru a compila mGBA, dar se știe că Visual Studio 2013 și mai vechi nu funcționează. Suportul pentru Visual Studio 2015 și mai nou va fi disponibil în curând.
Construcția Docker
Modul recomandat de a construi pentru majoritatea platformelor este de a folosi Docker. Sunt furnizate mai multe imagini Docker care conțin lanțul de instrumente și dependențele necesare pentru construirea mGBA pe mai multe platforme.
Pentru a utiliza o imagine Docker pentru a construi mGBA, pur și simplu rulați următoarea comandă în timp ce vă aflați în rădăcina unei verificări mGBA:
docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32
Aceasta va produce un director build-win32
cu produsele de construire. Înlocuiți mgba/windows:w32
cu o altă imagine Docker pentru alte platforme, care va produce un alt director corespunzător. Următoarele imagini Docker disponibile pe 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
*construire *nix
Pentru a utiliza CMake pentru a construi pe un sistem bazat pe Unix, comenzile recomandate sunt următoarele:
mkdir buildcd buildcmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..makesudo make install
Aceasta va construi și instala mGBA în /usr/bin
și /usr/lib
. Dependențele care sunt instalate vor fi detectate automat, iar caracteristicile care sunt dezactivate în cazul în care dependențele nu sunt găsite vor fi afișate după rularea comenzii cmake
, după avertismente privind imposibilitatea de a le găsi.
Dacă sunteți pe macOS, pașii sunt puțin diferiți. Presupunând că folosiți managerul de pachete homebrew, comenzile recomandate pentru a obține dependențele și a construi sunt:
brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-configmkdir buildcd buildcmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..make
Rețineți că nu ar trebui să faceți un make install
pe macOS, deoarece nu va funcționa corect.
Construirea pentru dezvoltatori Windows
MSYS2
Pentru a construi pe Windows pentru dezvoltare, se recomandă folosirea MSYS2. Urmați pașii de instalare găsiți pe site-ul lor. Asigurați-vă că rulați versiunea pe 32 de biți („MSYS2 MinGW 32-bit”) (sau versiunea pe 64 de biți „MSYS2 MinGW 64-bit” dacă doriți să construiți pentru x86_64) și rulați această comandă suplimentară (inclusiv parantezele) pentru a instala dependențele necesare (rețineți că acest lucru implică descărcarea a peste 1100MiB de pachete, deci va dura mult timp):
pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,pkgconf,qt5,SDL2,ntldd-git}
Verificați codul sursă rulând această comandă:
git clone https://github.com/mgba-emu/mgba.git
În cele din urmă construiți-l rulând aceste comenzi:
mkdir -p mgba/buildcd mgba/buildcmake .. -G "MSYS Makefiles"make -j$(nproc --ignore=1)
Rețineți că această construcție a mGBA pentru Windows nu este potrivită pentru distribuție, din cauza împrăștierii de DLL-uri de care are nevoie pentru a rula, dar este perfectă pentru dezvoltare. Cu toate acestea, dacă se dorește distribuirea unui astfel de build (de exemplu, pentru testare pe mașini care nu au instalat mediul MSYS2), rularea cpack -G ZIP
va pregăti un fișier zip cu toate DLL-urile necesare.
Visual Studio
Pentru a construi folosind Visual Studio este o configurare la fel de complicată. Pentru a începe, va trebui să instalați vcpkg. După instalarea vcpkg va trebui să instalați câteva pachete suplimentare:
vcpkg install ffmpeg libepoxy libpng libzip sdl2 sqlite3
Rețineți că această instalare nu va suporta codificarea video accelerată hardware pe hardware Nvidia. Dacă vă interesează acest lucru, va trebui să instalați în prealabil CUDA, iar apoi să înlocuiți ffmpeg
în comanda anterioară.
De asemenea, va trebui să instalați Qt. Din nefericire, din cauza faptului că Qt este deținut și condus de o companie bolnavă, spre deosebire de o organizație rezonabilă, nu mai există un program de instalare offline a ediției open source pentru cea mai recentă versiune, așa că va trebui fie să reveniți la un program de instalare a versiunii vechi (care dorește să creați un cont inutil, dar pe care îl puteți ocoli prin setarea temporară a unui proxy invalid sau prin dezactivarea în alt mod a rețelei), fie să folosiți programul de instalare online (care necesită un cont, indiferent de situație), fie să folosiți vcpkg pentru a-l construi (încet). Niciuna dintre acestea nu este o opțiune grozavă. Pentru programul de instalare, veți dori să instalați versiunile MSVC aplicabile. Rețineți că programele de instalare offline nu acceptă MSVC 2019. Pentru vcpkg, veți dori să îl instalați ca atare, ceea ce va dura destul de mult timp, în special pe computere quad core sau mai puțin:
vcpkg install qt5-base qt5-multimedia
În continuare, deschideți Visual Studio, selectați Clone Repository și introduceți https://github.com/mgba-emu/mgba.git
. Când Visual Studio a terminat clonarea, mergeți la File > CMake și deschideți fișierul CMakeLists.txt de la rădăcina depozitului verificat. De acolo, mGBA poate fi dezvoltat în Visual Studio în mod similar cu alte proiecte Visual Studio CMake.
Toolchain building
Dacă aveți devkitARM (pentru 3DS), devkitPPC (pentru Wii), devkitA64 (pentru Switch) sau vitasdk (pentru PS Vita), puteți folosi următoarele comenzi pentru building:
mkdir buildcd buildcmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..make
Înlocuiți parametrul -DCMAKE_TOOLCHAIN_FILE
pentru următoarele platforme:
- 3DS:
../src/platform/3ds/CMakeToolchain.txt
- Switch:
../src/platform/switch/CMakeToolchain.txt
- Vita:
../src/platform/psp2/CMakeToolchain.vitasdk
- Wii:
../src/platform/wii/CMakeToolchain.txt
Dependențe
mGBA nu are dependențe stricte, cu toate acestea, următoarele dependențe opționale sunt necesare pentru caracteristici specifice. Caracteristicile vor fi dezactivate dacă dependențele nu pot fi găsite.
- Qt 5: pentru frontendul GUI. Qt Multimedia sau SDL sunt necesare pentru audio.
- SDL: pentru un frontend mai de bază și suport pentru gamepad în frontend-ul Qt. Se recomandă SDL 2, dar se acceptă și 1.2.
- zlib și libpng: pentru suport pentru capturi de ecran și suport pentru salvarea în format PNG.
- libedit: pentru suport pentru depanatorul de linie de comandă.
- ffmpeg sau libav: pentru înregistrare video, GIF, WebP și APNG.
- libzip sau zlib: pentru încărcarea ROM-urilor stocate în fișiere zip.
- SQLite3: pentru baze de date de jocuri.
- libelf: pentru încărcarea ELF.
SQLite3, libpng și zlib sunt incluse împreună cu emulatorul, deci nu este nevoie să fie compilate din exterior mai întâi.
Note de subsol
Caracteristicile care lipsesc în prezent sunt
- Fereastra OBJ pentru modurile 3, 4 și 5 (Bug #5)
Detectarea dimensiunii memoriei flash nu funcționează în unele cazuri. Acestea pot fi configurate în timpul execuției, dar se recomandă depunerea unui bug dacă se întâlnește un astfel de caz.
10.8 este necesar doar pentru portul Qt. Poate fi posibil să se construiască sau să ruleze portul Qt pe 10.7 sau mai vechi, dar acest lucru nu este susținut oficial. Se știe că portul SDL funcționează pe 10.5 și este posibil să funcționeze pe versiunea mai veche.
Copyright
mGBA este Copyright © 2013 – 2021 Jeffrey Pfau. Este distribuit sub licența Mozilla Public License versiunea 2.0. O copie a licenței este disponibilă în fișierul LICENȚĂ distribuit.
mGBA conține următoarele biblioteci de la terți:
- inih, care este copyright © 2009 – 2020 Ben Hoyt și este folosită sub o licență BSD cu 3 clauze.
- blip-buf, care este copyright © 2003 – 2009 Shay Green și este folosită sub o licență publică GNU mai mică.
- LZMA SDK, care este de domeniul public.
- Implementarea MurmurHash3 de Austin Appleby, care este de domeniul public.
- getopt pentru MSVC, care este de domeniul public.
- SQLite3, care este de domeniul public.
Dacă sunteți un editor de jocuri și doriți să obțineți o licență pentru mGBA pentru utilizare comercială, vă rugăm să trimiteți un e-mail la [email protected] pentru mai multe informații.