fbpx

lutte / lutte: émulateur MGBA Game Boy Advance

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 et des téléchargements à jour peuvent être trouvés sur mgba.io.

État de la construction
Statut de la traduction

Fonctionnalités

  • Support matériel Game Boy Advance très précis[1].
  • 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 une interface lourde et légère.
  • Prise en charge du câble de liaison local (même ordinateur).
  • Enregistrer la détection du type, même pour la taille de la mémoire flash[2].
  • Prise en charge des cartouches avec capteurs de mouvement et grondement (utilisable uniquement avec les contrôleurs de jeu).
  • Prise en charge de l’horloge en temps réel, même sans configuration.
  • Prise en charge des capteurs solaires pour les jeux Boktai.
  • Prise en charge de la caméra Game Boy et de l’imprimante Game Boy.
  • Une implémentation BIOS intégrée et la possibilité de charger des fichiers BIOS externes.
  • Prise en charge Turbo / avance rapide en maintenant Tab.
  • Rembobinez en maintenant Backquote.
  • Frameskip, configurable jusqu’à 10.
  • Prise en charge des captures d’écran.
  • Prise en charge des codes de triche.
  • 9 emplacements savestate. Les états de sauvegarde sont également visibles sous forme de captures d’écran.
  • Enregistrement vidéo, GIF, WebP et APNG.
  • Prise en charge de l’e-Reader.
  • Commandes remappables pour les claviers et les manettes de jeu.
  • Chargement à partir de fichiers ZIP et 7z.
  • Prise en charge des patchs IPS, UPS et BPS.
  • Débogage de jeu via une interface de ligne de commande et support à distance GDB, compatible avec IDA Pro.
  • Rebobinage d’émulation configurable.
  • Prise en charge du chargement et de l’exportation des instantanés GameShark et Action Replay.
  • Cœurs disponibles pour RetroArch / Libretro et OpenEmu.
  • Traductions fournies par la communauté pour plusieurs langues via Weblate.
  • Beaucoup, beaucoup de petites choses.

Cartographes Game Boy

Les mappeurs suivants sont entièrement pris en charge:

  • 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 de type MBC5)
  • Hitek (sans licence de type MBC5)

Les mappeurs suivants sont partiellement pris en charge:

  • MBC6 (prise en charge de l’écriture sur la mémoire flash manquante)
  • MMM01
  • Caméra de poche
  • TAMA5 (support RTC manquant)
  • HuC-1 (support IR manquant)
  • HuC-3 (prise en charge RTC et IR manquante)

Fonctionnalités prévues

  • Prise en charge du câble de liaison multijoueur en 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.
  • Prise en charge de la réenregistrement des exécutions assistées par outil.
  • Prise en charge de Lua pour les scripts.
  • Une suite de débogage complète.
  • Prise en charge de l’adaptateur sans fil.

Plateformes prises en charge

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

D’autres plates-formes de type Unix, telles qu’OpenBSD, sont également connues pour fonctionner, mais ne sont pas testées et ne sont pas entièrement prises en charge.

Configuration requise

Les exigences sont minimes. Tout ordinateur pouvant exécuter Windows Vista ou une version plus récente doit pouvoir gérer l’émulation. La prise en charge d’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 officiel, dans la section Téléchargements. Le code source peut être trouvé sur GitHub.

Les contrôles

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

  • UNE: X
  • B: DE
  • L: UNE
  • R: S
  • Début: Entrer
  • Sélectionner: Retour arrière

Compiler

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 les versions antérieures ne fonctionnent pas. La prise en charge de Visual Studio 2015 et des versions plus récentes sera bientôt disponible.

Bâtiment Docker

La manière recommandée de créer pour la plupart des plates-formes consiste à utiliser Docker. Plusieurs images Docker sont fournies qui contiennent la chaîne d’outils et les dépendances nécessaires pour créer mGBA sur plusieurs plates-formes.

Pour utiliser une image Docker pour créer mGBA, exécutez simplement la commande suivante à la racine d’une extraction mGBA:

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

Cela produira un build-win32 répertoire avec les produits de construction. Remplacer mgba/windows:w32 avec une autre image Docker pour d’autres plates-formes, qui produira un autre répertoire correspondant. Les images Docker suivantes disponibles sur Docker Hub:

  • lutte / 3ds
  • changer
  • lutte: xenial
  • lutte: bionique
  • lutte: focale
  • lutte: groovy
  • lutte / vita
  • lutte / wii
  • lutte / windows: w32
  • lutte / windows: w64

* bâtiment nix

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

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

Cela construira et installera mGBA dans /usr/bin et /usr/lib. Les dépendances installées seront automatiquement détectées et les fonctionnalités désactivées si les dépendances ne sont pas trouvées seront affichées après l’exécution du cmake commande après des avertissements sur l’impossibilité de les trouver.

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

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

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

Bâtiment de développeur Windows

MSYS2

Pour construire sur Windows pour le développement, l’utilisation de MSYS2 est recommandée. Suivez les étapes d’installation trouvées sur leur site Web. Assurez-vous que vous exécutez la version 32 bits («MSYS2 MinGW 32 bits») (ou la version 64 bits «MSYS2 MinGW 64 bits» si vous souhaitez compiler pour x86_64) et exécutez cette commande supplémentaire (y compris la accolades) pour installer les dépendances nécessaires (veuillez noter que cela implique le téléchargement de plus de 1100 Mo 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érifiez le code source en exécutant cette commande:

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

Ensuite, construisez-le enfin 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 version de mGBA pour Windows n’est pas adaptée à la distribution, en raison de la dispersion des DLL dont elle a besoin pour s’exécuter, mais qu’elle est parfaite pour le développement. Cependant, si la distribution d’une telle version est souhaitée (par exemple pour des tests sur des machines sur lesquelles l’environnement MSYS2 n’est pas installé), exécutez cpack -G ZIP préparera un fichier zip avec toutes les DLL nécessaires.

Visual Studio

La création à l’aide de Visual Studio est une configuration tout aussi compliquée. Pour commencer, vous devrez installer vcpkg. Après avoir installé vcpkg, vous devrez installer plusieurs packages supplémentaires:

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

Notez que cette installation ne prend pas en charge 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 remplacer ffmpeg[vpx,x264,nvcodec] dans la commande précédente.

Vous devrez également installer Qt. Malheureusement, en raison du fait que Qt appartient et est géré par une entreprise en difficulté, par opposition à une organisation raisonnable, il n’y a plus de programme d’installation d’édition open source hors ligne pour la dernière version, vous devrez donc soit revenir à un ancien programme d’installation (qui veut vous pouvez créer un compte autrement inutile, mais vous pouvez contourner temporairement la configuration d’un proxy invalide ou désactiver la mise en réseau d’une autre manière), utiliser le programme d’installation en ligne (qui nécessite un compte malgré tout) ou utiliser vcpkg pour le créer (lentement). Aucune de ces options n’est excellente. Pour le programme d’installation, vous souhaiterez installer les versions MSVC applicables. Notez que les programmes d’installation 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 les ordinateurs quad core ou moins:

vcpkg install qt5-base qt5-multimedia

Ensuite, ouvrez Visual Studio, sélectionnez Clone Repository et entrez https://github.com/mgba-emu/mgba.git. Lorsque Visual Studio a terminé le clonage, accédez à Fichier> 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 la même manière que d’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 build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..
make

Remplace le -DCMAKE_TOOLCHAIN_FILE paramètre pour les plates-formes suivantes:

  • 3DS: ../src/platform/3ds/CMakeToolchain.txt
  • Changer: ../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 matérielles, cependant, les dépendances facultatives suivantes sont requises pour des fonctionnalités spécifiques. Les fonctionnalités seront désactivées si les dépendances sont introuvables.

  • Qt 5: pour l’interface graphique. Qt Multimedia ou SDL sont requis pour l’audio.
  • SDL: pour une interface plus basique et un support de manette de jeu dans l’interface Qt. SDL 2 est recommandé, mais la version 1.2 est prise en charge.
  • zlib et libpng: pour la prise en charge des captures d’écran et la prise en charge de savestate-in-PNG.
  • libedit: pour la prise en charge du débogueur en ligne de commande.
  • ffmpeg ou libav: pour l’enregistrement vidéo, GIF, WebP et APNG.
  • libzip ou zlib: pour charger des ROM 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

[1] Les fonctionnalités actuellement manquantes sont

  • Fenêtre OBJ pour les modes 3, 4 et 5 (bug n ° 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 au moment de l’exécution, mais le dépôt d’un bogue est recommandé si un tel cas est rencontré.

[3] 10.8 n’est nécessaire que pour le port Qt. Il peut être possible de construire ou d’exécuter le port Qt sur 10.7 ou une version antérieure, mais cela n’est pas officiellement pris en charge. Le port SDL est connu pour fonctionner sur 10.5 et peut fonctionner sur des versions plus anciennes.

droits d’auteur

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

mGBA contient les bibliothèques tierces suivantes:

  • inih, qui est copyright © 2009-2020 Ben Hoyt et utilisé sous une licence BSD à 3 clauses.
  • blip-buf, qui est copyright © 2003 – 2009 Shay Green et utilisé sous une licence publique GNU inférieure.
  • LZMA SDK, qui est du domaine public.
  • Implémentation MurmurHash3 par Austin Appleby, qui est du domaine public.
  • getopt pour MSVC, qui est du domaine public.
  • SQLite3, qui est du domaine public.

Si vous êtes un éditeur de jeux et souhaitez obtenir une licence mGBA à des fins commerciales, veuillez envoyer un e-mail à licensing@mgba.io pour plus d’informations.

Laisser un commentaire