Mgba

mgba-emu mgba-emu
Dépôt créer le : 09/12/2014
Release du : 25/02/2026 0.10.5 – Version inconu
Forks: 934 Watcher: 0 6809
Choisir une liste...
FR

mGBA

mGBA est un émulateur pour exécuter des jeux Game Boy Advance. Il vise à être plus rapide et plus précis que de nombreux émulateurs Game Boy Advance existants, ainsi que d'ajouter des fonctionnalités que d'autres émulateurs manquent. Il prend également en charge les jeux Game Boy et Game Boy Color.

Des nouvelles et des téléchargements à jour peuvent être trouvés àmgba.io.

Build status Translation status

Caractéristiques

  • Support matériel Game Boy Advance hautement précis[1].
  • Game Boy/Game Boy Color support matériel.
  • Une émulation rapide. Connu pour fonctionner à pleine vitesse même sur le matériel bas de gamme, comme les netbooks.
  • Ports Qt et SDL pour une façade lourde et légère.
  • Support de câble de liaison local (même ordinateur).
  • Enregistrer la détection de type, même pour la taille de la mémoire flash[2].
  • Support pour cartouches avec détecteurs de mouvement et rumble (uniquement utilisable avec des contrôleurs de jeu).
  • Support d'horloge en temps réel, même sans configuration.
  • Prise en charge des capteurs solaires pour les jeux Boktai.
  • Support pour appareil photo Game Boy et imprimante Game Boy.
  • Une implémentation BIOS intégrée, et la capacité de charger des fichiers BIOS externes.
  • Support de script en utilisant Lua.
  • Soutien Turbo/Fast-forward en tenant Tab.
  • Remontez en tenant Backquote.
  • Frameskip, configurable jusqu'à 10.
  • Support de capture d'écran.
  • Support du code de chauffage.
  • 9 machines à sous de sauvegarde. Les états de sauvegarde sont également visibles sous forme de captures d'écran.
  • Enregistrement vidéo, GIF, WebP et APNG.
  • e-Reader soutien.
  • Commandes retouchables pour claviers et gamepads.
  • Chargement à partir de fichiers ZIP et 7z.
  • Support IPS, UPS et BPS patch.
  • Déboguage de jeu via une interface en ligne de commande et une prise en charge à distance GDB, compatible avec Ghidra et IDA Pro.
  • Remontage de l'émulation configurable.
  • Support pour charger et exporter des instantanés GameShark et Action Replay.
  • Cores disponibles pour RetroArch/Libretro et OpenEmu.
  • Traductions fournies par la Communauté pour plusieurs languesWeblate.
  • Beaucoup, beaucoup de petites choses.

Game Boy mappers

Les cartes suivantes sont entièrement prises en charge:

  • MBC1
  • MBC1M
  • MBC2
  • MBC3
  • MBC3+RTC
  • MBC30
  • MBC5
  • MBC5+Rumble
  • MBC7
  • M161
  • Arbre de la sagesse (sans licence)
  • NT "ancien type" 1 et 2 (multicart non autorisé)
  • NT "nouveau type" (comme MBC5 non homologué)
  • Pokémon Jade/Diamond (sans licence)
  • Sachen MMC1 (sans licence)

Les cartes suivantes sont partiellement prises en charge:

  • MBC6 (maîtrise de mémoire flash manquante)
  • MMM01
  • Camion de poche
  • TAMA5 (assistance RTC incomplète)
  • HuC-1 (absence de soutien IR)
  • HuC-3 (absence de soutien IR)
  • Sachen MMC2 (sans autre support de câblage)
  • BBD (changement de logo manquant)
  • Hitek (changement de logo manquant)
  • GGB-81 (changement de logo manquant)
  • Li Cheng (changement de logo manquant)
  • Sintax (changement de logo manquant)

Caractéristiques prévues

  • Prise en charge du câble de liaison multijoueur réseau.
  • Prise en charge du câble de liaison bus Dolphin/JOY.
  • Mixage audio MP2k, pour un son de meilleure qualité que le matériel.
  • Re-enregistrer le support pour les essais d'outils.
  • Une suite de débogage complète.
  • Support adaptateur sans fil.

Plateformes soutenues

  • Windows 7 ou plus récent
  • OS X 10.9 (Mavericks)[3]ou plus récents
  • Linux
  • FreeBSD
  • Nintendo 3DS
  • Interrupteur Nintendo
  • Wii
  • PlayStation Vita

D'autres plateformes similaires à Unix, telles qu'OpenBSD, sont connues pour fonctionner aussi bien, mais ne sont pas testées et ne sont pas entièrement prises en charge.

Exigences du système

Les exigences sont minimales. Tout ordinateur qui peut exécuter Windows Vista ou plus récent devrait pouvoir gérer l'émulation. Une prise en charge pour OpenGL 1.1 ou plus récent est également requise, avec OpenGL 3.2 ou plus récent pour les shaders et les fonctionnalités avancées.

Téléchargements

Les téléchargements peuvent être trouvés sur le site officielDownloadschapitre. Le code source se trouve surGitHub.

Contrôles

Les commandes sont configurables dans le menu Paramètres. De nombreux contrôleurs de jeu devraient être automatiquement mapés par défaut. Les commandes par défaut du clavier sont les suivantes:

  • A: X
  • B: Z
  • L: A
  • PAYS: S
  • Démarrer: Entrez
  • Sélectionner: Espace arrière

Compilation

Compilation nécessite l'utilisation de CMake 3.1 ou plus récent. GCC, Clang et Visual Studio 2019 sont connus pour travailler pour la compilation de mGBA.

Bâtiment Docker

Pour la plupart des plateformes, il est recommandé d'utiliser Docker. Plusieurs images Docker sont fournies qui contiennent la chaîne d'outils et les dépendances nécessaires pour construire mGBA sur plusieurs plateformes.

Remarque: Si vous êtes sur un ancien système Windows avant Windows 10, vous pouvez avoir besoin de configurer votre Docker pour utiliser VirtualBox dossiers partagés pour correctement mapper votre actuelmgbarépertoire de caisse du répertoire de travail de l'image Docker. (Voir le numéro#1985pour plus de détails.)

Pour utiliser une image Docker pour construire mGBA, lancez simplement la commande suivante dans la racine d'une commande mGBA :

docker run --rm -it -v ${PWD}:/home/mgba/src mgba/windows:w32

Après le démarrage du conteneur Docker, il produira unebuild-win32répertoire avec les produits de construction. Remplacermgba/windows:w32avec une autre image Docker pour d'autres plateformes, qui produira un autre répertoire correspondant. Les images Docker suivantes sont disponibles sur Docker Hub:

  • mgba/3ds
  • mgba/switch
  • mgba/ubuntu:xénial
  • mgba/ubuntu:bionique
  • mgba/ubuntu:focal
  • mgba/ubuntu:groovy
  • mgba/vita
  • mgba/wii
  • mgba/fenêtres:w32
  • mgba/fenêtres:w64

Si vous voulez accélérer le processus de construction, envisagez d'ajouter le drapeau-e MAKEFLAGS=-jNpour faire une construction parallèle pour mGBA avecNnombre de cœurs CPU.

*nix bâtiment

Pour utiliser CMake pour construire sur un système Unix, les commandes recommandées sont les suivantes :

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
make
sudo make install

Ceci va construire et installer mGBA dans/usr/binet/usr/lib. Les dépendances qui sont installées seront automatiquement détectées, et les fonctionnalités qui sont désactivées si les dépendances ne sont pas trouvées seront affichées après l'exécution de lacmakecommande après les avertissements sur l'incapacité de les trouver.

Si vous êtes sur macOS, les étapes sont un peu différentes. En supposant que vous utilisez le gestionnaire de paquets homebrew, les commandes recommandées pour obtenir les dépendances et construire sont:

brew install cmake ffmpeg libzip qt5 sdl2 libedit lua pkg-config
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..
make

Notez que vous ne devriez pasmake installsur macOS, car il ne fonctionnera pas correctement.

Construction du développeur Windows

MOYS2

Pour construire sur Windows pour le développement, l'utilisation de MSYS2 est recommandée. Suivez les étapes d'installation trouvées sur leurwebsite. Assurez-vous d'exécuter la version 32-bit ("MSYS2 MinGW 32-bit") (ou la version 64-bit "MSYS2 MinGW 64-bit" si vous voulez construire pour x86 64) et exécutez cette commande supplémentaire (y compris les appareils) pour installer les dépendances nécessaires (veuillez noter que cela implique de télécharger plus de 1100MiB de paquets, donc cela prendra du temps):

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

Consultez le code source en exécutant cette commande :

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

Ensuite, construisez-le en exécutant ces commandes :

mkdir -p mgba/build
cd mgba/build
cmake .. -G "MSYS Makefiles"
make -j$(nproc --ignore=1)

Veuillez noter que cette construction de mGBA pour Windows n'est pas adapté pour la distribution, en raison de la diffusion des DLLs dont il a besoin pour fonctionner, mais est parfait pour le développement. Toutefois, si la distribution d'une telle construction est souhaitée (par exemple pour tester sur des machines qui n'ont pas l'environnement MSYS2), exécutercpack -G ZIPpréparera un fichier zip avec toutes les DLL nécessaires.

Studio visuel

Construire en utilisant Visual Studio est une configuration aussi compliquée. Pour commencer, vous devrez installervcpkg. Après avoir installé vcpkg, vous devrez installer plusieurs paquets supplémentaires:

vcpkg install ffmpeg[vpx,x264] libepoxy libpng libzip lua sdl2 sqlite3

Notez que cette installation ne supportera pas l'encodage vidéo accéléré du matériel Nvidia. Si vous vous souciez de cela, vous devrez installer CUDA au préalable, puis remplacerffmpeg[vpx,x264,nvcodec]dans la commande précédente.

Vous aurez également besoin d'installer Qt. Malheureusement, Qt étant détenu et géré par une société en difficulté par opposition à une organisation raisonnable, il n'y a plus d'installateur d'édition open source hors ligne pour la dernière version, donc vous devrez soit revenir à unold version installer(qui veut que vous créiez un compte sans autre utilisation, mais vous pouvez contourner temporairement la configuration d'un proxy invalide ou autrement désactiver le réseau), utiliser l'installateur en ligne (qui nécessite un compte indépendamment), ou utiliser vcpkg pour le construire (slowly). Aucune de ces options n'est excellente. Pour l'installateur, vous souhaitez installer les versions MSVC applicables. Notez que les installateurs hors ligne ne prennent pas en charge MSVC 2019. Pour vcpkg, vous voudrez l'installer en tant que tel, ce qui prendra un certain temps, en particulier sur le noyau quad ou moins d'ordinateurs:

vcpkg install qt5-base qt5-multimedia

Ensuite, ouvrez Visual Studio, sélectionnez Clone Repository, et entrezhttps://github.com/mgba-emu/mgba.git. Lorsque Visual Studio a terminé le clonage, allez dans Fichier > CMake et ouvrez le fichier CMakeLists.txt à la racine du dépôt vérifié. De là, mGBA peut être développé dans Visual Studio de la même manière que d'autres projets de Visual Studio CMake.

Construction de la chaîne d'outils

Si vous avez devkitARM (pour 3DS), devkitPPC (pour Wii), devkitA64 (pour Switch) ou vitasdk (pour PS Vita), vous pouvez utiliser les commandes suivantes pour construire:

mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..
make

Remplacer-DCMAKE_TOOLCHAIN_FILEparamètre pour les plateformes suivantes:

  • 3DS:../src/platform/3ds/CMakeToolchain.txt
  • Interrupteur & #160;:../src/platform/switch/CMakeToolchain.txt
  • - Oui../src/platform/psp2/CMakeToolchain.vitasdk
  • Oui../src/platform/wii/CMakeToolchain.txt

Dépendances

mGBA n'a pas de dépendances difficiles, mais les dépendances optionnelles suivantes sont nécessaires pour des caractéristiques spécifiques. Les fonctionnalités seront désactivées si les dépendances ne peuvent pas être trouvées.

  • Qt 5 : pour la façade de l'interface graphique. Qt Multimedia ou SDL sont nécessaires pour l'audio.
  • SDL : pour une prise en charge de frontend et de gamepad plus basique dans le frontend Qt. SDL 2 est recommandé, mais 1.2 est supporté.
  • zlib et libpng : pour la prise en charge de la capture d'écran et la prise en charge de l'état dans la PNG.
  • libedit : pour le support du débogueur en ligne de commande.
  • ffmpeg ou libav: pour enregistrement vidéo, GIF, WebP et APNG.
  • libzip ou zlib: pour charger des ROM stockés dans des fichiers zip.
  • SQLite3: pour les bases de données de jeux.
  • libelf: pour chargement ELF.
  • Lua: pour le script.
  • json-c: pour le scriptstorageAPI.

SQLite3, libpng et zlib sont inclus avec l'émulateur, de sorte qu'ils n'ont pas besoin d'être compilés en premier.

Notes

[1]Les caractéristiques actuellement manquantes sont

  • Fenêtre OBJ pour les modes 3, 4 et 5 (Bug #5)

[2]La détection de la taille de la mémoire Flash ne fonctionne pas dans certains cas. Ceux-ci peuvent être configurés à l'exécution, mais le dépôt d'un bug est recommandé si un tel cas est rencontré.

[3]Le 10.9 est seulement nécessaire pour le port Qt. Il peut être possible de construire ou d'exécuter le port Qt sur 10.7 ou plus, mais ce n'est pas officiellement supporté. Le port SDL est connu pour travailler sur 10.5, et peut travailler sur plus vieux.

Droit d'auteur

mGBA est Copyright © 2013 – 2026 Jeffrey Pfau. Il est distribué sousMozilla Public License version 2.0. Une copie de la licence est disponible dans le fichier LICENSE distribué.

mGBA contient les bibliothèques tierces suivantes:

  • inih, qui est copyright © 2009 – 2020 Ben Hoyt et utilisé sous licence BSD 3-clause.
  • LZMA SDK, qui est du domaine public.
  • MurmurHash3mise en œuvre par Austin Appleby, qui est du domaine public.
  • getopt for MSVC, qui est du domaine public.
  • SQLite3, qui est du domaine public.

Si vous êtes un éditeur de jeu et souhaitez licence mGBA pour une utilisation commerciale, s'il vous plaît email[email protected]pour plus d'informations.

Contributeurs GitHub

lioncash
lioncash
47 contributions
oltolm
oltolm
23 contributions
theheroGAC
theheroGAC
8 contributions
yuriks
yuriks
6 contributions
endrift
endrift
7 contributions
ahigerd
ahigerd
63 contributions
lotharsm
lotharsm
35 contributions
bentley
bentley
1 contributions
waddlesplash
waddlesplash
5 contributions
EmpyreusX
EmpyreusX
16 contributions
ccawley2011
ccawley2011
22 contributions
Felipefpl
Felipefpl
14 contributions
CasualPokePlayer
CasualPokePlayer
1282 contributions
kddlb
kddlb
11 contributions
dobyrch
dobyrch
8 contributions
DDinghoya
DDinghoya
1 contributions
momocaoo
momocaoo
6 contributions
shinyoyo
shinyoyo
6 contributions
LunaDook
LunaDook
6 contributions
Extrems
Extrems
1399 contributions
Eijebong
Eijebong
6 contributions
arves100
arves100
6 contributions
Hexaae
Hexaae
5 contributions
felixjones
felixjones
4 contributions
SantosSi
SantosSi
4 contributions
sergiobenrocha2
sergiobenrocha2
10 contributions
hunterk
hunterk
4 contributions
aldelaro5
aldelaro5
4 contributions
omgitsraven
omgitsraven
4 contributions
Bonta0
Bonta0
4 contributions