VisualBoyAdvance-M
VisualBoyAdvance-M est un émulateur spécialisé dans la reproduction des consoles Game Boy, Game Boy Color et Game Boy Advance, héritier amélioré de VisualBoy Advance. Il se distingue par des fonctionnalités étendues, notamment une meilleure gestion des entrées (raccourcis personnalisables, support des manettes via SDL) et une stabilité renforcée, notamment pour les jeux exigeants en performance.
Sur macOS, il propose une version 32 bits compilée officiellement, compatible avec les systèmes récents. Les améliorations récentes incluent une optimisation des dialogues, une meilleure gestion du son (mute pendant le speed-up, suppression du pilote SDL obsolète) et des corrections de build pour macOS (compatibilité avec Homebrew, ffmpeg 7.x). L’émulateur reste actif avec des contributions régulières, bien que son développement se concentre désormais aussi sur Android.
Dernière mise à jour :
Plateformes
Architecture
Mac OS X - macOS
64 bits
Téléchargement et liens
- Télécharger VisualBoyAdvance-M
- Site officiel
- Code source
-
brew install --cask visualboyadvance-m
Historique des versions
v2.2.3
-
Ajout majeur : Intégration fonctionnelle de la correction des couleurs, avec des paramètres configurables (code initial par Squall-Leonhart, finalisé par Andy Vandijck et Rafael Kitover). Applicable aux jeux GBA et GBC sur matériel GBA, mais désactivée pour le matériel SGB.
-
Corrections critiques :
- Correction d’un bug de segmentation lors du chargement de jeux invalides ou non supportés (libretro).
- Fix d’un problème de timing dans l’update des points de référence des backgrounds en mode affine (GBA).
- Résolution d’une fuite mémoire et d’une utilisation incorrecte de l’API dans le pilote Metal (macOS).
- Correction du comportement de pause lors de l’inactivité avec la nouvelle version de wxWidgets.
-
Améliorations spécifiques macOS :
- Optimisation pour macOS : Ajout d’une catégorie "Games" dans l’application macOS pour une meilleure intégration (via
d1547200). - Stabilité audio : Correction d’un blocage du pilote CoreAudio (
0561ef91). - Builds macOS :
- Désactivation par défaut du bundling des dylibs pour réduire la taille des paquets (
e8aa4467). - Correction des problèmes de compilation liés à CMake et aux dépendances (ex. :
bad10342pour SDL3).
- Désactivation par défaut du bundling des dylibs pour réduire la taille des paquets (
- Pilote audio : Résolution des issues du pilote CoreAudio (ex. :
4208f5af).
- Optimisation pour macOS : Ajout d’une catégorie "Games" dans l’application macOS pour une meilleure intégration (via
-
Interface utilisateur :
- Filtres LCD activés par défaut pour GBA/GB (
33c5aeb8), avec paramètres configurables et ajout d’un filtre spécifique pour GBC. - Affichage amélioré : Tooltips avec valeurs numériques sur tous les curseurs (
9551313e,c2d1bf48). - Correction de l’affichage des tuiles pour les jeux DMG en mode CGB (`f95
- Filtres LCD activés par défaut pour GBA/GB (
Changelog complet
v2.2.2
-
Nouveauté majeure :
- Ajout de la configurabilité de la langue dans l'interface utilisateur (soutien aux traductions locales).
-
Corrections importantes :
- Résolution des problèmes avec les ROMs dépassant 32 Mo (compatibilité étendue).
- Correction des opcodes du Virtual Console Wii U (meilleure précision dans l'émulation).
-
Améliorations macOS :
- Mise à jour de wxWidgets à la version 3.3.1 pour le build natif macOS (stabilité et compatibilité).
- Pas de correctif spécifique ou de support Apple Silicon (M1/M2/M3) mentionné dans ce changelog.
Changelog complet
v2.2.1
-
Nouveautés majeures :
- Ajout du support des archives
.tar,.xz,.bz2et amélioration du support RAR (mise à jour de UnRAR à la version 7.1.8), facilitant l'extraction de ROMs compressées. - Correction du son GBA (Game Boy Advance) pour une meilleure fidélité audio.
- Ajout du support des archives
-
Corrections importantes :
- Résolution de problèmes liés à la compilation avec OpenAL et aux chemins d’inclusion de SFML (bibliothèque bundled).
- Suppression de la traduction japonaise incomplète (ja_JP) pour éviter des erreurs de localisation.
- Optimisation du temps de démarrage de CMake avec vcpkg pour les builds.
-
Améliorations spécifiques à macOS :
- Mise à jour du plist pour macOS (fichier de configuration système), compatible avec les versions récentes.
- Utilisation de Sparkle (v10.10) pour les mises à jour logicielles, standardisant l’intégration avec macOS.
- Correction potentielle de dépendances système pour les builds .dmg (pas de mention explicite de compatibilité Apple Silicon dans ce changelog, mais les commits suggèrent une maintenance générale de la plateforme).
Changelog complet
v2.2.0
-
Améliorations majeures pour macOS (Apple Silicon et Intel) :
- Support natif des processeurs ARM64 (M1/M2/M3) : mise à jour des scripts de build pour générer une version binaire ARM64 dédiée, avec optimisation des dépendances (ex. :
libtiffvia Homebrew). - Intégration de Metal et Quartz : migration vers les APIs SDL3 et support du rendu vidéo via Metal (pour Apple Silicon) et Quartz (pour Intel), avec correction des problèmes de bpp (bits-per-pixel) et de rendu.
- Interface utilisateur macOS :
- Ajout d’une option pour cacher la barre de statut dans les paramètres UI.
- Correction des dialogues de sauvegarde/ouverture de fichiers (path par défaut et gestion des dialogues génériques).
- Support du mode sombre pour l’interface (via wxWidgets).
- CoreAudio : implémentation complète du pilote audio (remplaçant partiellement les solutions cross-platform comme OpenAL), avec corrections des bugs (ex. :
CoreAudio fixet gestion des alertes sonores).
- Support natif des processeurs ARM64 (M1/M2/M3) : mise à jour des scripts de build pour générer une version binaire ARM64 dédiée, avec optimisation des dépendances (ex. :
-
Corrections critiques pour macOS :
- FFmpeg et codecs vidéo :
- Résolution des problèmes de build pour FFmpeg (notamment pour
libx264/libx265) et intégration des dépendances via vcpkg (ex. :add x264+x265 for ffmpeg). - Correction des erreurs de lienage pour les builds macOS (ex. :
Fix FFMPEG for macOS).
- Résolution des problèmes de build pour FFmpeg (notamment pour
- Stabilité et sécurité :
- Ajout d’un fichier d’entitlements pour le sandboxing (macOS Catalina et versions ultérieures).
- Correction des crashes liés à Sparkle (mises à jour automatiques) et suppression des dépendances inutiles (ex. :
Make Sparkle framework optional).
- Dépendances système :
- Mise à jour des scripts de build pour inclure libtiff via Homebrew (
add libtiff to brews on macOS). - Correction des problèmes de détection de
- Mise à jour des scripts de build pour inclure libtiff via Homebrew (
- FFmpeg et codecs vidéo :
Changelog complet
v2.1.11
-
Correction majeure : Fix de l’URL des traductions dans le menu Aide (lien vers le dépôt officiel mis à jour).
-
Amélioration des raccourcis : Les raccourcis clavier sont désormais correctement affichés dans la section dédiée du menu (résolution d’un problème d’affichage récurrent).
-
Compatibilité macOS : Mise à jour de WinSparkle (outil de mises à jour) vers la version 0.8.1, avec prise en charge officielle des architectures ARM64 (Apple Silicon M1/M2/M3) et des binaires universels.
(Aucune modification spécifique aux builds .dmg ou aux contraintes macOS n’est mentionnée.)
Changelog complet
v2.1.10
-
Améliorations majeures pour macOS :
- Mise à jour des outils de construction pour macOS (linker 1.5, ffmpeg 7.0) et résolution de compatibilité avec les versions antérieures de ffmpeg.
- Correction des problèmes de compilation sur macOS via Homebrew et avec Nix, ainsi que suppression des références à OpenAL dans les builds macOS.
-
Corrections critiques pour macOS :
- Suppression de la construction des binaires SDL sur macOS (évite les conflits de dépendances).
- Correction des dépendances OpenGL pour les builds macOS sous Nix.
-
Nouveautés fonctionnelles :
- Ajout d’une option pour muter le son pendant les accélérations (utile pour éviter les distorsions).
- Réorganisation du menu pour une meilleure ergonomie.
- Suppression des allocations mémoire manuelles dans le sous-système audio et amélioration de l’énumération des périphériques audio.
-
Stabilité et sécurité :
- Correction de la gestion des événements clavier (évite les répétitions de commandes raccourcis).
- Prévention des crashes liés aux dialogues (ex. : visualiseurs de ROM).
- Désactivation de la sauvegarde/réinitialisation des positions des dialogues (wxGTK) pour éviter les problèmes de compatibilité.
(Note : Les problèmes mentionnés dans le préambule du changelog concernent des erreurs de packaging et non des fonctionnalités de l’émulateur lui-même.)
Changelog complet
v2.1.9
-
Suppression du pilote audio SDL : retrait définitif du support du pilote audio SDL, simplifiant potentiellement les dépendances et réduisant les risques de conflits.
-
Correction majeure de l’enregistrement audio WAV : résolution d’un problème critique empêchant l’enregistrement audio dans les fichiers WAV (affectait notamment les captures de jeu).
-
Améliorations des interfaces utilisateur : ajustements esthétiques des boîtes de dialogue et suppression d’un avertissement lié aux liens externes.
-
Compatibilité avec les bibliothèques musl libc : suppression des appels à
fseeko64()/ftello64()pour éviter des incompatibilités sur les systèmes utilisant musl libc (moins critique pour macOS, mais utile pour les builds multiplateformes).
Changelog complet
v2.1.8
-
Correction majeure : Résolution d’un problème critique dans la lecture des valeurs de configuration des joystick hats (capteurs directionnels), améliorant la compatibilité avec certains périphériques.
-
Amélioration UI : Affichage correct du GameArea après l’initialisation de la fenêtre principale, et masquage systématique de la barre de statut au démarrage.
-
Correction mineure : Correction d’un bug où le menu ne se rafraîchissait pas correctement après un changement de lien (ex. : sauvegardes, ROMs).
(Aucune modification spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v2.1.7
-
Correction majeure pour les utilisateurs Wayland : Prise en charge de l’ouverture sous XWayland si l’EGL est absent dans les distributions utilisant wxGTK, améliorant la compatibilité OpenGL sur les environnements Wayland.
-
Amélioration des performances : Désactivation automatique du mirroring (reflet) pour les ROMs dépassant 32 Mo, réduisant les risques de plantages ou de corruption.
-
Correction technique : Réparation du build NO_LINK pour éviter les erreurs de compilation liées à des dépendances manquantes.
-
Sauvegarde des données : Conservation des données MBC7 EEPROM (Game Boy) dans le fichier
gbRam, évitant la perte de données après un redémarrage. -
Nouvelle instruction GBA : Implémentation de l’instruction Thumb manquante, améliorant la précision de l’émulation pour certains jeux.
-
Refactorisation du code : Extraction de la configuration du Joypad dans une classe dédiée, simplifiant la maintenance et l’extension future des dialogues.
Changelog complet
v2.1.6
-
Amélioration majeure pour la compatibilité audio : Correction du problème de boucles sonores (DSound) lors du déplacement ou de la redimensionnement de la fenêtre, ainsi que du réglage du sound clock pour une meilleure synchronisation (~1074 échantillons par frame).
-
Corrections critiques sur Game Boy/Color :
- Meilleure gestion des en-têtes ROM (parsing sécurisé et corrigé).
- Allocations mémoire optimisées pour éviter les plantages.
- Support étendu des tailles de RAM pour le MBC7 (cartes mémoire avancées).
-
Compatibilité et build pour macOS :
- Mise à jour du build officiel : support de macOS 10.10 (Yosemite) minimum avec wxWidgets 3.2.2.1 (nécessaire pour les compilations natives).
- Correction potentielle de problèmes liés à OpenGL/EGL (vérification de la version de wxWidgets pour éviter des régressions).
- Note : Aucune mention explicite de support Apple Silicon (M1/M2/M3) dans ce changelog, mais le build est compatible avec les architectures x86_64 (Intel) et ARM64 (via compilations croisées, voir commit
6307346c).
-
Autres corrections techniques :
- Fix des dialogues d’enregistrement/lecture pour les sauvegardes natives.
- Réinitialisation du SIOCNT (port série) lors de la déconnexion du lien câblé (pour les jeux multi-console).
- Correction d’un plantage sur Stuart Little 2 en mode son désactivé.
Changelog complet
v2.1.5
-
Améliorations majeures pour la précision d'émulation :
- Correction des cycles horloges pour les instructions MUL/MLA (ARM/THUMB) et amélioration des tests BIOS (score passé de 425 à 625).
- Fix des lectures/écritures mémoire non alignées en VRAM (16/32 bits) et optimisation des opérations THUMB.
- Ajout du support pour 4 Mo de ROM MBC30 (Game Boy) et correction des lectures/sérielles en mode NO_LINK.
-
Corrections critiques :
- Suppression du remplissage à zéro des mémoires Flash effacées (corrigé pour FFh).
- Fix des fuites mémoire liées aux entrées/sorties (joysticks, clavier).
- Correction des problèmes d’audio (délais, spécifications SDL, gestion des buffers multi-trames).
-
Interface utilisateur et accessibilité :
- CTRL+I par défaut pour ajuster le blending inter-frame (avec affichage du nom du filtre dans l’OSD).
- Désactivation du type de lien sans fil (option désactivée par défaut).
- Réorganisation du menu et suppression de l’affichage du filtre LCD sauf pour les jeux Game Boy/Game Boy Advance.
-
Spécifique macOS :
- Correction du codesign pour la compatibilité avec Gatekeeper.
- Réorganisation de l’auto-mise à jour (intégration macOS/Windows).
- Amélioration de la gestion des fichiers Unicode (sous-titre Windows, mais impact potentiel sur les builds macOS).
Changelog complet
v2.0.1
-
Suppression d'un rendu obsolète : Retrait du Cairo Renderer, jugé performant mais inefficace, sans remplacement direct (impact potentiel sur les configurations graphiques spécifiques).
-
Corrections critiques de stabilité :
- Résolution d’un buffer-overflow potentiel et d’un crash lié à flibc (message d’erreur ajouté sur échec de
fopen). - Correction d’un deadlock dans SoundSDL:deinit() et d’un problème de mémoire (leak dû à une syntaxe incorrecte).
- Amélioration de la gestion des sauvegardes de configuration (SDL) et des erreurs de permission.
- Résolution d’un buffer-overflow potentiel et d’un crash lié à flibc (message d’erreur ajouté sur échec de
-
Optimisations techniques :
- Désactivation par défaut du LTO (Link-Time Optimization) sur MinGW 64-bit pour éviter des bugs liés à GCC 7.x.
- Nettoyage et unification du code SoundSDL (gestion du silence en pause, suppression de clés de raccourci par défaut comme F11 pour les sauvegardes).
- Correction de problèmes de portabilité (strerror_r(), compatibilité wxWidgets 2.7/3.1+).
-
Améliorations mineures :
- Mise à jour des fichiers de traduction et du README (suppression de la table des matières automatique).
- Réorganisation des dépendances (gestion des sous-modules Git pour Windows, parallélisation des builds avec le nombre de cœurs CPU).
Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.
Changelog complet
v2.0.2
-
Correction majeure : Changement du pilote audio par défaut vers SDL pour améliorer la stabilité et réduire les problèmes de latence ou de blocages sonores, notamment sur les systèmes avec des configurations audio complexes.
-
Amélioration technique : Ajout d’une vérification renforcée (
max_threads) pour éviter les erreurs liées à des valeurs erronées, ce qui peut impacter les performances sur des machines multi-cœurs ou mal configurées.
(Note : Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v2.1.0
-
Corrections de vulnérabilités critiques :
- Correction de failles liées au parsing de fichiers ELF (potentiellement exploitable pour des attaques par déni de service ou des fuites de mémoire).
-
Améliorations pour macOS :
- Support officiel des Mac 32 bits fonctionnant sous macOS 10.7 (Lion) (branche
osx-32bit). - Correction des dialogues d’enregistrement/sauvegarde (#268), améliorant la compatibilité avec les versions récentes de macOS.
- Correction des problèmes de build pour macOS 10.13 (High Sierra).
- Support officiel des Mac 32 bits fonctionnant sous macOS 10.7 (Lion) (branche
-
Optimisations et corrections mineures :
- Suppression du filtre LCD dans la version Libretro, améliorant les performances et la compatibilité.
- Correction des cheats dans Game Boy Advance (GBA) et optimisation des options audio (interpolation, filtrage, muting).
- Suppression de comportements obsolètes (pause automatique lors de l’ouverture du menu, uniquement sur Windows dans une version antérieure).
-
Améliorations techniques :
- Ajout de badges Coverity et intégration de Travis CI pour le suivi des tests automatisés.
- Nettoyage du code (suppression de fonctions inutiles, corrections de warnings, gestion des préprocesseurs
#ifdef). - Correction de la gestion des types de sauvegarde (SRAM/Flash) avec affichage de logs en cas d’utilisation.
(Aucune mention spécifique des architectures Apple Silicon (M1/M2) ou de builds .dmg dans ce changelog.)
Changelog complet
v2.1.1
-
Correction majeure pour macOS :
- Ajout de
-stdlib=libc++aux flags de compilation (CFLAGS/LDFLAGS) pour garantir la compatibilité avec les outils Apple (Clang, LLVM) sur macOS.
- Ajout de
-
Correction spécifique aux builds macOS :
- Correction du build 32 bits pour macOS (fixe une erreur de compilation).
-
Améliorations générales (non macOS-spécifiques) :
- Correction d’un crash dans le Map Viewer lors de l’exécution de jeux Game Boy/Color.
- Correction de l’incompatibilité entre les sauvegardes/states 32 bits et 64 bits pour Game Boy.
- Ajout d’une option de factory reset (réinitialisation complète des paramètres).
- Correction de bugs liés à l’audio (API sonore, gestion des périphériques, et suppression de configurations par défaut problématiques).
- Améliorations mineures pour la compatibilité libretro (support des palettes couleurs Game Boy, gestion des périphériques comme le rumble pak ou les capteurs de tilt/gyro).
- Optimisations internes (suppression de dépendances obsolètes comme
faudiotemporairement, corrections de mémoire et de timing pour Game Boy Advance).
Changelog complet
v2.1.2
-
Correction majeure : Restauration du fonctionnement des manettes analogiques (régression introduite en v2.1.1) et prise en charge corrigée des plugins RPI.
-
Améliorations utilisateur :
- Sauvegarde/réinitialisation automatique de la géométrie de la fenêtre (y compris en plein écran) via l’interface wxGUI.
- Respect du standard XDG pour les dossiers de configuration (compatibilité Linux améliorée, mais impact indirect possible sur macOS via des outils tiers comme Homebrew).
-
Corrections techniques macOS :
- Suppression d’une erreur de segmentation lors de l’utilisation de l’option
WX porten ligne de commande (affectait aussi Linux, mais notée explicitement pour macOS). - Corrections de compilations pour les builds macOS (fix des avertissements et compatibilité avec les outils modernes comme CMake).
- Suppression d’une erreur de segmentation lors de l’utilisation de l’option
-
Améliorations build/générales :
- Nettoyage de menus obsolètes (ex. "multithread filter") et optimisations CMake (meilleure détection des outils LLVM, gestion des warnings).
- Gestion améliorée des paramètres en ligne de commande (retour de codes non-erreur pour les cas valides).
Changelog complet
v2.1.3
-
Correction majeure : Résolution d’un problème critique de géométrie et de redimensionnement de la zone de jeu sur Windows (et indirectement sur d’autres OS), notamment pour le positionnement de démarrage des jeux (fixe lié à l’issue #406).
-
Améliorations mineures :
- Mise à jour de la version de FreeType (de 2.9.1 à 2.10.0) dans les outils de construction.
- Refactorisation des dépendances croisées pour OpenSUSE et mises à jour associées.
-
Optimisations techniques :
- Corrections dans les scripts de construction (
CMake) pour les environnements Windows (ex. : gestion deSetupAPI, compatibilité avec MSVC pourunistd.h). - Ajout de modifications pour la compatibilité libretro (formatage de la version avec le SHA Git).
- Corrections dans les scripts de construction (
Aucune modification spécifique à macOS ou Apple Silicon mentionnée dans ce changelog.
Changelog complet
v2.1.4
-
Amélioration des performances : Optimisation du code de calcul de racine carrée (
sqrt) pour les filtres xBRZ, rendant l’upscaling plus fluide. -
Corrections majeures :
- Suppression définitive de code obsolète et inutilisé.
- Correction du comportement du menu lien (link) lorsque désactivé (
ENABLE_LINK=NO). - Fix des problèmes de configuration lors de la suppression des accélérations matérielles (system accels).
- Correction des toggles du menu pour les options de couche vidéo/audio.
- Affichage systématique de tous les commandes disponibles dans le menu.
- Ajout du support pour les boutons autohold et correction du fonctionnement des autofire (L/R).
- Correction du Memory Viewer dans Tools (problème #486).
-
Compatibilité macOS :
- Prise en charge partielle de macOS 32 bits (ajustements mineurs dans le build).
- Correction des problèmes de compilation liés à FFmpeg et intégration des dépendances (SFML, OpenAL) via auto-détection.
- Mise à jour des distributions (dists) et optimisation des builds pour macOS (correction du cache TravisCI).
-
Améliorations mineures :
- Traductions mises à jour (via Transifex) pour les termes "Open", "Quit", "Browse" et amélioration de l’interface utilisateur (GUI).
- Ajout de patches UPS pour les jeux GBA et activation de l’horloge réelle (RTC) pour Game Boy/GBA (selon type de ROM).
- Support étendu des tailles d’échantillonnage audio dans la GUI et nouveaux formats de sortie pour l’enregistrement vidéo/audio.
- Nettoyage et simplification des options libretro (masquage automatique des options inutiles selon le type de ROM).
Changelog complet
Captures d'écran