Mupen64Plus
Mupen64Plus est un émulateur Nintendo 64 multiplateforme basé sur des plugins, conçu pour offrir une compatibilité étendue avec de nombreux jeux. Il repose sur quatre émulateurs CPU MIPS R4300, incluant des recompilateurs dynamiques pour les architectures x86 (32/64 bits) et ARM, ainsi que des plugins dédiés à l’audio, au rendu graphique (RDP), au coprocesseur RSP et à la gestion des entrées.
Sur macOS, il supporte les machines Intel avec macOS 10.7 ou versions ultérieures. L’émulateur intègre deux plugins vidéo OpenGL (dont RiceVideo), prend en charge les fonctionnalités avancées comme les textures haute résolution, les Rumble Pak, les tricheurs (GameShark), et un système de réglage de vitesse avec un son fluide. Des interfaces alternatives, comme un front-end en ligne de commande ou des solutions tierces (Qt, Python), peuvent être utilisées pour une personnalisation accrue. Aucune version officielle n’est confirmée pour Apple Silicon ou les macOS plus anciens (10.5/10.6).
Dernière mise à jour :
Plateformes
Architecture
Mac OS X - macOS
64 bits
Téléchargement et liens
- Télécharger Mupen64Plus
- Site officiel
- Code source
-
brew install mupen64plus
Historique des versions
v2.6.0
-
Nouveauté majeure : Retour après 5 ans de développement avec une nouvelle version après une longue pause liée à la pandémie mondiale, incluant des bundles précompilés pour Linux 64-bit, Windows 64-bit et macOS 64-bit (via un fichier
.dmgnon précisé dans le changelog mais sous-entendu par la mention "Macintosh OSX 64-bit"). -
Corrections et améliorations techniques :
- Reprise exclusive de l'ancien moteur Dynarec (Hacktarux/Richard42) pour tous les bundles, avec une compatibilité garantie avec les versions précédentes (pas de migration forcée vers de nouvelles architectures).
- Mise à jour des dépendances Windows : les packages sont compilés avec Visual Studio 2019, nécessitant l'installation du Microsoft Visual C++ Redistributable 2019 pour les systèmes obsolètes (pas de mention spécifique pour macOS).
-
Modules inclus par défaut (identiques sur toutes les plateformes) :
- Noyau (
mupen64plus-core) + plugins audio (SDL), entrée (SDL), RSP HLE, et deux backends vidéo (Glide64mk2etRice). - Interface utilisateur (
ui-console) limitée au mode ligne de commande (pas de GUI native, mais des plugins tiers recommandés pour une expérience graphique).
- Noyau (
-
Spécificités macOS :
- Build officiel pour macOS 64-bit (probablement sous forme de
.dmg), mais aucune mention explicite des architectures Apple Silicon (M1/M2/M3) ou des versions minimales de macOS supportées (à vérifier manuellement dans le bundle). - Pas de correctifs ou optimisations Mac spécifiques signalés dans ce changelog (comportement générique 64-bit, sans adaptations pour les processeurs ARM ou les contraintes macOS).
- Build officiel pour macOS 64-bit (probablement sous forme de
Changelog complet
v2.5.9
-
Version bêta majeure : Publication d’une version bêta après quatre ans sans mise à jour stable (dernière version stable en 2015), avec une période de test limitée aux correctifs de bugs avant la sortie de la version 2.6.
-
Corrections et optimisations techniques :
- Changement de l’implémentation du Dynarec (compilateur dynamique) :
- Windows : Utilisation exclusive de l’Ari64 (nouvelle implémentation).
- Autres plateformes (Linux, macOS) : Retour à l’Hacktarux/Richard42 (ancienne implémentation, qualifiée d’"Old").
- Nécessité d’installer le Microsoft redistributable pour les bundles Windows (compatible avec Visual Studio 2013) sur les systèmes trop anciens.
- Changement de l’implémentation du Dynarec (compilateur dynamique) :
-
Supports officiels :
- macOS : Bundle précompilé disponible pour macOS 64-bit (version minimale non précisée, mais probablement compatible avec les versions récentes de macOS avant l’arrivée de l’Apple Silicon).
- Front-end : Inclusion du seul front-end officiel intégré, ui-console (interface en ligne de commande uniquement). Les interfaces graphiques (GUI) et plugins tiers doivent être téléchargés séparément via le wiki dédié.
-
Structure des bundles :
- Tous les bundles incluent les modules principaux (core, audio SDL, input SDL, rsp HLE, vidéo Glide64mk2/Rice), mais sans support pour les plugins ou front-ends tiers dans le bundle de base.
Changelog complet
v2.5
-
Nouveauté majeure :
- Introduction d’une version expérimentale du Dynarec (Dynamic Recompiler) "New Dynarec" pour Windows, offrant des performances significativement accrues, mais potentiellement instable (risque de bugs, artefacts graphiques ou plantages).
-
Corrections/améliorations techniques :
- Construction d’un bundle spécifique pour Ubuntu Linux utilisant une version obsolète de LibPNG (1.2) et SDL 1.2, pour assurer la compatibilité avec les anciennes versions d’Ubuntu.
-
Supports et prérequis :
- Les builds Windows nécessitent l’installation du Microsoft Visual C++ Redistributable 2013 pour les systèmes d’exploitation trop anciens.
- Les bundles incluent une interface utilisateur console-only (
ui-console) ; les interfaces graphiques et plugins tiers doivent être téléchargés séparément depuis le wiki officiel.
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v1.99.3
-
Nouveauté majeure :
- Ajout de la fonction
ConfigGetParameterType()pour une configuration plus flexible des paramètres.
- Ajout de la fonction
-
Améliorations fonctionnelles :
- Limite relevée à 1 000 captures d’écran par ROM (contre une limite antérieure non précisée).
- Support intégré des codes de patch pour Gameshark 3.3.
-
Corrections critiques :
- Dynarec activé par défaut si le noyau le supporte (rechute sur l’interpréteur en cache si indisponible).
- Gestion des chemins de sauvegarde des captures : suppression des séparateurs de chemins spécifiques à Unix (compatibilité multiplateforme).
- Correction d’un bug historique : évitement des blocages lors du chargement d’une ROM sans EEPROM de 16 Ko après une ROM en contenant une.
-
Correction spécifique à macOS :
- Symboles dans le code assembleur 64 bits : ajout de préfixes
_pour la compatibilité avec OS X (bug #313).
- Symboles dans le code assembleur 64 bits : ajout de préfixes
Changelog complet
v1.99.2
-
Suppression massive de code obsolète : Retrait quasi-total des directives
#ifdef WIN32, améliorant la portabilité sur les plateformes non-Windows (dont macOS). -
Corrections majeures de logs intrusifs :
- Arrêt des messages de console répétitifs liés aux fichiers de mémoire ("Core: couldn't open memory pack file...").
- Arrêt des messages de console répétitifs liés aux fichiers EEPROM ("Core: couldn't open eeprom file...").
-
Améliorations du système de construction (Makefile) :
- Détection explicite des systèmes/CPU non supportés avec une erreur claire.
- Intégration de
DESTDIRpour les chemins d'installation/désinstallation. - Prise en charge des chemins personnalisés pour les compilateurs (
CC,CXX) et le lien (LD). - Installation automatique des en-têtes du noyau pour faciliter la compilation ultérieure des plugins.
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v1.99.1
-
Nouveautés majeures pour la version 2.0 (architecture en cours de migration) :
- Architecture simplifiée du cœur de l'émulateur, améliorant sa portabilité sur différentes plateformes.
- Séparation complète du code GUI des plugins (simplification et portabilité accrue).
- Développement de l'interface utilisateur désormais indépendant des versions du cœur de l'émulateur.
- Messages du cœur et des plugins filtrables et affichables dans l'interface graphique (au-delà de la console).
- Extension vidéo permettant aux front-ends de redéfinir certaines fonctions (ex. : support de fenêtres intégrées).
- Démarrage direct en plein écran (au lieu d'un mode fenêtre suivi d'une transition).
- Définition de la résolution vidéo via une option en ligne de commande.
- Centralisation de toutes les options de configuration (cœur + plugins) dans un seul fichier, gérable via une interface unifiée.
- Utilisation automatique de plugins dummy en cas d'échec de chargement d'un plugin.
-
Corrections critiques :
- Correction du support des cheats (codes tricheurs).
- Raccourcis clavier pour les commandes du cœur désormais personnalisables par l'utilisateur.
- Prise en charge de l'enregistrement/lecture de fichiers d'état au format PJ64.
- Correction du comportement du frame advance (avancement cadre par cadre, et non par interruption verticale).
- Permet les mouvements diagonaux avec le hat (manette directionnelle) pour les commandes de joystick.
- Réécriture du code de gestion des événements SDL pour :
- Capturer les pressions de boutons GameShark.
- Adapter les commandes basées sur le niveau (edge-triggered) plutôt que sur l'état (level-triggered).
- Ajout d'hystérésis pour les commandes basées sur les axes et gestion unifiée des événements GameShark.
- Correction d'un plantage de l'OSD après une séquence pause-stop-start-pause.
- Restauration correcte de la largeur vidéo, du statut AI et du taux d'échantillonnage (aiDacrate) lors du chargement d'un état sauvegardé.
- Emp
Changelog complet
v2.0
-
Nouveautés majeures :
- Ajout du recompilateur dynamique Ari64, compatible avec les architectures x86 (32-bit) et ARM (pour une meilleure prise en charge des processeurs modernes).
-
Corrections et améliorations techniques :
- Correction de problèmes dans plusieurs jeux (dont Donkey Kong 64, Zelda, Blast Corps).
- Amélioration de la compatibilité des sauvegardes (PJ64) et détection automatique du format (Mupen64Plus ou PJ64) lors du chargement.
- Support de la redimensionnement de la fenêtre vidéo (selon la configuration du plugin vidéo et de l’interface frontale).
- Nettoyage et refactorisation du code (noyau, débogueur) pour une meilleure stabilité.
-
Compatibilité et builds :
- Prise en charge de SDL2 pour les compilations futures.
- Ajout de fichiers de projet pour Visual Studio 2012 et de Makefile mis à jour (support PowerPC, MinGW32, et cross-compilation sous Linux pour générer des binaires Win32 via MXE).
- Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.
Changelog complet
v1.99.5
-
Nouveauté majeure :
- Ajout du support de l'horloge interne en temps réel du N64 (N64 internal real-time clock).
-
Corrections importantes :
- Correction du problème d'affichage du texte On-Screen-Display dans les captures d'écran (bug #290).
- Correction du problème d'affichage On-Screen-Display spécifique à macOS (bug #468).
- Correction de la gestion du chemin de sauvegarde des états (SaveStatePath) depuis le fichier de configuration.
- Correction d'une segmentation fault liée à un problème de permissions dans le répertoire de configuration (bug #410).
- Utilisation des fonctions mathématiques correctes (ceil/floor/round/trunc) pour les cœurs Interpreter (remplace les modes de rondage x87).
-
Améliorations techniques :
- Mise à jour du cœur pour la compatibilité avec le nouveau schéma de versionnage de l'API 2.0.
- Séparation des données de configuration en deux sections (Core et CoreEvents), avec gestion des versions et mises à jour.
- Émulation précise de l'opération RSP DMA (contribution de Bobby Smiles).
- Utilisation de l'algorithme PIF-CIC de X-Scale (remplace les paires de défis/réponses codées en dur).
- Paramètre de configuration pour spécifier un chemin dédié aux fichiers SRAM/EEPROM/MPK (séparés des sauvegardes de l'émulateur).
- Correction de la priorité du chemin de configuration imposé par l'interface frontale (évite les conflits de sauvegarde).
- Évite l'appel à SDL_Quit() avant le déchargement du cœur, améliorant la stabilité avec les interfaces frontales.
Changelog complet
v1.99.4
-
Nouveauté majeure :
- Ajout d’un nouveau décompilateur (disassembleur) réentrant pour le processeur R4300 (MIPS), développé par tty68k/zzt32, améliorant la compatibilité et les performances sur certains jeux.
-
Corrections critiques :
- Correction d’un plantage (segfault) dans le code des extensions vidéo si l’initialisation de SDL échoue (problème lié à l’échec des plugins vidéo).
- Possibilité de faire tourner le Dynarec (Dynamic Recompiler) dans des fenêtres protégées par DEP (Data Execution Prevention), un mécanisme de sécurité Windows.
-
Améliorations techniques :
- Ajout de la fonction
CoreGetRomSettings()pour les interfaces frontales (outils tiers). - Modification de l’API : remplacement de
ReadScreen()parReadScreen2()dans les plugins vidéo. - Suppression des guillemets obligatoires autour des chaînes de caractères dans les fichiers de configuration (
.cfg). - Nettoyage et optimisations des fichiers makefile et du code source.
- Ajout de la fonction
Note : Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.
Changelog complet
Captures d'écran