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 qu’à ajouter des fonctionnalités qui manquent aux autres émulateurs. Il prend également en charge les jeux Game Boy et Game Boy Color.

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

Statut de constructionStatut de traduction

Caractéristiques

  • Support matériel Game Boy Advance très précis.
  • Support matériel Game Boy/Game Boy Color.
  • Émulation rapide. Connu pour fonctionner à pleine vitesse même sur du matériel bas de gamme, comme les netbooks.
  • Ports Qt et SDL pour un front-end lourd et un front-end léger.
  • Support du câble de liaison local (même ordinateur).
  • Détection du type de sauvegarde, même pour la taille de la mémoire flash.
  • Support des cartouches avec capteurs de mouvement et ronflement (utilisable uniquement avec les manettes de jeu).
  • Support de l’horloge en temps réel, même sans configuration.
  • Support du capteur solaire pour les jeux Boktai.
  • Support de la caméra Game Boy et de l’imprimante Game Boy.
  • Mise en œuvre d’un BIOS intégré, et possibilité de charger des fichiers BIOS externes.
  • Support de l’avance rapide/turbo en maintenant la touche Tab.
  • Rembobinage en maintenant la touche Backquote.
  • Frameskip, configurable jusqu’à 10.
  • Support des captures d’écran.
  • Support des codes de triche.
  • 9 emplacements de savestate. Les savestates sont également visualisables en tant que captures d’écran.
  • Enregistrement vidéo, GIF, WebP et APNG.
  • Support d’e-Reader.
  • Contrôles réapplicables pour les claviers et les gamepads.
  • Chargement à partir de fichiers ZIP et 7z.
  • Support des patchs IPS, UPS et BPS.
  • Débogage du jeu via une interface en ligne de commande et support à distance de GDB, compatible avec IDA Pro.
  • Rembobinage d’émulation configurable.
  • Support du chargement et de l’exportation de snapshots GameShark et Action Replay.
  • Cores disponibles pour RetroArch/Libretro et OpenEmu.
  • Traductions fournies par la communauté pour plusieurs langues via Weblate.
  • Plusieurs, beaucoup de petites choses.

Mappages Game Boy

Les mappeurs suivants sont entièrement supportés :

  • MBC1
  • MBC1M
  • MBC2
  • MBC3
  • MBC3+RTC
  • MBC5
  • MBC5+Rumble
  • .

  • MBC7
  • Arbre de la sagesse (sans licence)
  • Pokémon Jade/Diamant (sans licence)
  • BBD (sans licence MBC5-like)
  • Hitek (unlicensed MBC5-like)

Les mappeurs suivants sont partiellement supportés :

  • MBC6 (support d’écriture de mémoire flash manquant)
  • MMM01
  • Pocket Cam
  • TAMA5 (support RTC manquant)
  • HuC-1 (support IR manquant)
  • HuC-3 (support RTC et IR manquant)

Caractéristiques prévues

  • Support du câble de liaison multijoueur en réseau.
  • Support du câble de liaison du bus Dolphin/JOY.
  • Mixage audioMP2k, pour un son de qualité supérieure à celle du matériel.
  • Support de réenregistrement pour les courses d’assistance aux outils.
  • Support du langage Lua pour les scripts.
  • Une suite de débogage complète.
  • Prise en charge des adaptateurs sans fil.

Plateformes prises en charge

  • Windows Vista ou plus récent
  • OS X 10.8 (Mountain Lion) ou plus récent
  • Linux
  • FreeBSD
  • Nintendo 3DS
  • Nintendo Switch
  • Wii
  • PlayStation Vita

Les autres plateformes de type Unix, telles que OpenBSD, sont connues pour fonctionner également, mais ne sont pas testées et ne sont pas entièrement prises en charge.

Configuration du système

Les exigences sont minimales. Tout ordinateur qui peut exécuter Windows Vista ou plus récent devrait être en mesure de gérer l’émulation. Le support d’OpenGL 1.1 ou plus récent est également requis, 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 officiel, dans la section Téléchargements. Le code source peut être trouvé sur GitHub.

Contrôles

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

  • A : X
  • B : Z
  • L : A
  • R : S
  • Démarrage : Enter
  • Sélectionner : Backspace

Compilation

La compilation nécessite l’utilisation de CMake 3.1 ou plus récent. GCC et Clang sont tous deux connus pour fonctionner pour compiler mGBA, mais Visual Studio 2013 et plus anciens sont connus pour ne pas fonctionner. Le support pour Visual Studio 2015 et plus récent est à venir.

Construction Docker

La façon recommandée de construire pour la plupart des plateformes est d’utiliser Docker. Plusieurs images Docker sont fournies qui contiennent la chaîne d’outils et les dépendances requises pour construire mGBA sur plusieurs plateformes.

Pour utiliser une image Docker pour construire mGBA, il suffit d’exécuter la commande suivante tout en étant à la racine d’un checkout mGBA:

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

Cela produira un répertoire build-win32 avec les produits de construction. Remplacez mgba/windows:w32 par une autre image Docker pour d’autres plateformes, ce qui produira un autre répertoire correspondant. Les images Docker suivantes sont disponibles sur 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

*compilation nix

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

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

Ceci compilera et installera mGBA dans /usr/bin et /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 la commande cmake après des avertissements sur l’impossibilité 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 pkg-configmkdir buildcd buildcmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..make

Notez que vous ne devriez pas faire un make install sur macOS, car cela ne fonctionnera pas correctement.

Construction pour développeur Windows

MSYS2

Pour construire sur Windows pour le développement, il est recommandé d’utiliser MSYS2. Suivez les étapes d’installation trouvées sur leur site web. Assurez-vous que vous exécutez la version 32 bits (« MSYS2 MinGW 32-bit ») (ou la version 64 bits « MSYS2 MinGW 64-bit » si vous voulez construire pour x86_64) et exécutez cette commande supplémentaire (y compris les accolades) pour installer les dépendances nécessaires (veuillez noter que cela implique le téléchargement de plus de 1100MiB de paquets, donc cela prendra beaucoup de temps) :

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

Vérifier le code source en exécutant cette commande:

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

Puis finalement le construire en exécutant ces commandes:

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

Veuillez noter que cette build de mGBA pour Windows n’est pas adaptée à la distribution, en raison de la dispersion des DLL qu’elle doit exécuter, mais est parfaite pour le développement. Cependant, si la distribution d’une telle build est souhaitée (par exemple, pour des tests sur des machines qui n’ont pas l’environnement MSYS2 installé), l’exécution de cpack -G ZIP préparera un fichier zip avec toutes les DLL nécessaires.

Visual Studio

Pour construire à l’aide de Visual Studio, la configuration est tout aussi compliquée. Pour commencer, vous aurez besoin d’installer vcpkg. Après avoir installé vcpkg, vous devrez installer plusieurs paquets supplémentaires :

vcpkg install ffmpeg libepoxy libpng libzip sdl2 sqlite3

Notez que cette installation ne supportera pas l’encodage vidéo accéléré par le matériel sur le matériel Nvidia. Si vous vous souciez de cela, vous devrez installer CUDA au préalable, puis substituer ffmpeg dans la commande précédente.

Vous devrez également installer Qt. Malheureusement, en raison de 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 retomber sur un installateur de l’ancienne version (qui veut que vous créiez un compte autrement inutile, mais vous pouvez contourner temporairement la mise en place d’un proxy invalide ou la désactivation du réseau d’une autre manière), utiliser l’installateur en ligne (qui nécessite un compte indépendamment), ou utiliser vcpkg pour le construire (lentement). Aucune de ces options n’est excellente. Pour l’installateur, vous voudrez installer les versions MSVC applicables. Notez que les installateurs hors ligne ne prennent pas en charge MSVC 2019. Pour vcpkg, vous voudrez l’installer comme tel, ce qui prendra un certain temps, en particulier sur les ordinateurs à quatre cœurs ou moins :

vcpkg install qt5-base qt5-multimedia

Puis, ouvrez Visual Studio, sélectionnez Cloner le référentiel et entrez https://github.com/mgba-emu/mgba.git. Lorsque Visual Studio a terminé le clonage, allez dans File > CMake et ouvrez le fichier CMakeLists.txt à la racine du référentiel extrait. À partir de là, mGBA peut être développé dans Visual Studio de manière similaire aux autres projets 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 la construction :

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

Remplacer le paramètre -DCMAKE_TOOLCHAIN_FILE pour les plateformes suivantes :

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

Dépendances

mGBA n’a pas de dépendances dures, cependant, les dépendances optionnelles suivantes sont requises pour des fonctionnalités spécifiques. Les fonctionnalités seront désactivées si les dépendances ne peuvent pas être trouvées.

  • Qt 5 : pour le frontal de l’interface graphique. Qt Multimedia ou SDL sont nécessaires pour l’audio.
  • SDL : pour un front-end plus basique et le support du gamepad dans le front-end Qt. SDL 2 est recommandé, mais 1.2 est supporté.
  • zlib et libpng : pour le support des captures d’écran et le support de savestate-in-PNG.
  • libedit : pour le support du débogueur en ligne de commande.
  • ffmpeg ou libav : pour l’enregistrement de vidéos, GIF, WebP et APNG.
  • libzip ou zlib : pour le chargement de ROMs stockées dans des fichiers zip.
  • SQLite3 : pour les bases de données de jeux.
  • libelf : pour le chargement ELF.

SQLite3, libpng, et zlib sont inclus avec l’émulateur, ils n’ont donc pas besoin d’être compilés en externe au préalable.

Notes de bas de page

Les fonctionnalités actuellement manquantes sont

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

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é.

La version 10.8 est uniquement nécessaire pour le portage Qt. Il peut être possible de construire ou d’exécuter le portage Qt sur 10.7 ou plus ancien, mais cela n’est pas officiellement pris en charge. Le port SDL est connu pour fonctionner sur 10.5, et peut fonctionner sur plus ancien.

Copyright

mGBA est Copyright © 2013 – 2021 Jeffrey Pfau. Il est distribué sous la licence publique Mozilla 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 sous copyright © 2009 – 2020 Ben Hoyt et utilisé sous une licence BSD 3-clause.
  • blip-buf, qui est sous copyright © 2003 – 2009 Shay Green et utilisé sous une Lesser GNU Public License.
  • LZMA SDK, qui est du domaine public.
  • MurmurHash3 implementation by 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 jeux et que vous souhaitez obtenir une licence pour mGBA pour un usage commercial, veuillez envoyer un courriel à [email protected] pour plus d’informations.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.