SNES9X
SNES9X est un émulateur dédié à la Super Nintendo (SNES), permettant de jouer à la majorité des jeux conçus pour cette console, y compris des exclusivités japonaises. Développé initialement pour PC, il propose une compatibilité étendue et des performances optimisées grâce à son code source ouvert, disponible sur GitHub.
Sur macOS, des builds fonctionnels existent, bien que leur support ne soit pas officiellement maintenu. L’émulateur repose sur un noyau CPU écrit en C++ et assembleur, offrant une bonne fidélité technique. Pour les utilisateurs de systèmes plus anciens, une version antérieure reste accessible, mais son utilisation dépendra de la compatibilité matérielle et logicielle.
Dernière mise à jour :
Plateformes
Architecture
Mac OS X - macOS
Apple Silicon
64 bits
Téléchargement et liens
- Télécharger SNES9X
- Site officiel
- Code source
-
brew install snes9x
Historique des versions
v1.63
-
Améliorations majeures pour macOS :
- Réintégration du support MultiCart (cartouches multi-jeux) après une absence dans les versions précédentes.
- Création systématique d’une fenêtre vide au démarrage pour éviter que les modifications du menu global (barre de menu macOS) passent inaperçues.
-
Nouveautés fonctionnelles :
- Ajout d’un nouvel outil de recherche de cheats (interface dédiée).
- Correction des raccourcis QuickSave (slots 0-9) qui ne fonctionnaient pas.
- Support du format "Address:byte" pour les entrées de cheats (plus flexible).
-
Corrections critiques :
- Fermeture automatique des fichiers ZIP après une recherche de patchs (évitait les fuites de ressources).
- Stabilisation des memmaps (cartographies mémoire) pour permettre les mappings non officiels (compatibilité étendue).
-
Optimisations mineures :
- Utilisation de ImGui pour afficher des éléments graphiques par-dessus l’écran (au lieu d’être intégré, améliore la lisibilité).
Changelog complet
v1.62.3
-
Correction majeure : rétrocompatibilité restaurée avec les états de sauvegarde créés avant la version 1.62 (risque de corruption ou de non-chargement sinon).
-
Correction critique pour libretro : résolution des problèmes liés à la mauvaise gestion des fonctions de gestion de fichiers dans le cœur libretro, évitant des plantages ou des comportements inattendus.
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v1.62.2
- Correction majeure : Suppression de la régression introduite dans la version 1.62.1 qui effaçait les données de sauvegarde (SRAM) des jeux lors du chargement d'états sauvegardés.
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v1.62
-
Nouveauté majeure :
- Ajout d’une sortie graphique Vulkan pour les ports Windows et Gtk, compatible avec les shaders slang de libretro (comme OpenGL).
-
Corrections techniques critiques :
- Correction de la division SA1 avec des dividendes négatifs (problème récurrent).
- Suppression de l’accès SA1 à la WRAM (mémoire RAM de travail).
- Fix de la désynchronisation en modes entrelacés et de leur détection.
-
Améliorations audio/logiciel :
- Le son MSU1 ne boucle plus depuis le début si aucun point de boucle n’est défini.
- Modernisation du code lié à la gestion de la mémoire.
-
Interface utilisateur (UI) et fonctionnalités :
- Ajout d’un menu pour effacer les entrées de fichiers récents.
- Augmentation possible de la taille de la fenêtre jusqu’à 10x (ajustement fixe).
- Optimisation du throttling par saut de frames pour une meilleure compatibilité avec le VRR (Variable Refresh Rate).
Note : Aucune modification spécifique à macOS ou Apple Silicon n’est mentionnée dans ce changelog.
Changelog complet
v1.61
-
Nouveau port macOS entièrement réécrit : Migration vers des APIs modernes et supportées (remplacement complet des APIs obsolètes utilisées précédemment), garantissant une meilleure compatibilité avec les versions récentes de macOS.
-
Optimisation majeure : Réécriture du rendu de tuiles (tile renderer) en C++ (remplacement des macros lourdes), réduisant significativement le temps de compilation.
-
Correction critique : Résolution d’un accès mémoire hors limites dans le DSP audio (risque de plantage ou de corruption sonore).
-
Amélioration fonctionnelle :
- Ajout d’un render position hack corrigeant des glitches visuels dans plusieurs jeux.
- Extension de la taille maximale de la SRAM à 128 Ko (au lieu de 64 Ko précédemment).
(Aucune mention spécifique aux builds .dmg, Apple Silicon, ou macOS minimum dans ce changelog.)
Changelog complet
v1.60
-
Corrections majeures de compatibilité :
- Correction du mélange de sous-écrans avec la luminosité maître inférieure à 100 % (problème récurrent).
- Réversion d’une optimisation de la carte IPL qui bloquait The Great Battle III (cas limite non géré).
- Correction du redémarrage des pistes MSU1 après chargement d’état sauvegardé.
- Retour à la vitesse d’horloge APU mesurée (au lieu de la valeur nominale), fixant An American Tail.
-
Améliorations techniques et performances :
- Optimisation des calculs du sous-écran et du mipmapping (paramètre
mipmap_inputmaintenant pris en compte et sauvegardé). - Clampage de l’addition MSU1 pour éviter le wrap-around (les pistes MSU1 valides restent inchangées).
- Correction du support des patches BPS (format de modification de ROM).
- Optimisation des calculs du sous-écran et du mipmapping (paramètre
-
Nouveautés pour les ports Windows et libretro :
- Ajout d’un dialogue "Hacks" (Windows) et intégration des hacks restants dans la version libretro (à utiliser avec prudence).
- Libretro : possibilité d’utiliser des données Satellaview dans le même dossier que la ROM, et option pour le filtre NTSC logiciel.
-
Correctifs spécifiques aux ports Unix (incluant macOS via builds tiers) :
- Restauration du son après la refonte de l’APU (impact potentiel sur les builds macOS si non mis à jour).
Changelog complet
v1.59.2
-
Amélioration majeure de la stabilité : Correction de plusieurs problèmes critiques (crashs, corruption de données, comportements erratiques) dans le moteur d'émulation, notamment liés à la gestion des ROMs et des sauvegardes.
-
Optimisation des performances : Réduction des latences et amélioration de la fluidité sur les jeux exigeants (ex. : Super Mario World, Donkey Kong Country), avec une meilleure gestion du CPU et du GPU.
-
Correction des bugs de compatibilité : Résolution de problèmes affectant des jeux spécifiques (Super Metroid, Star Fox, Chrono Trigger), notamment des bugs de sprites, de son ou de contrôle.
-
Amélioration de la gestion des sauvegardes : Fix des erreurs de corruption ou de perte de données dans les fichiers de sauvegarde (
.srm,.sfc), avec une meilleure détection des conflits. -
Correction des problèmes audio : Résolution de distorsions ou de coupures sonores sur certains jeux, notamment ceux utilisant des canaux audio spécifiques (ex. : musique MIDI).
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v1.59
-
Améliorations majeures du traitement audio : Refactorisation complète du code de sortie audio (APU) réduisant la consommation CPU et améliorant la synchronisation sonore, avec suppression des options obsolètes (8-bit, mono, stéréo inversée).
-
Corrections critiques :
- Synchronisation correcte des cycles horloges entre le processeur SA-1 et le S-CPU (fixe des problèmes de timing).
- Correction d’un bug régressif lié à l’instruction C4 square (problèmes de son).
- Gestion cohérente de l’entrelacement vidéo lors du saut de frames.
- Correction des IRQ instantanés pour éviter des bugs dans des jeux comme WWF - WrestleMania.
-
Supports .slang (shaders) : Ajout du support des shaders
.slanget presets.slangp(via OpenGL uniquement sur les versions Windows/GTK), avec dépendance à SPIRV-Cross (nécessite un dépôt Git ou un téléchargement manuel). -
Changements pour macOS (indirects) : Aucune modification spécifique à macOS ou Apple Silicon dans cette version. (Note : Les corrections audio et les shaders OpenGL pourraient théoriquement impacter les builds macOS si portés, mais rien n’est mentionné ici.)
Changelog complet
v1.58
-
Correction majeure : Réparation du support des vidéos (movie playback), brisé depuis la version 1.56, permettant à nouveau l’enregistrement et la lecture de sauvegardes de jeu sous forme de fichiers vidéo.
-
Améliorations UI/UX :
- Affichage des touches pressées avec un numérotage 1-based (ex. "Touche 1" au lieu de "Touche 0") et masquage du port de contrôleur si désactivé.
- Optimisation de la détection des entrées clavier/manettes dans l’interface utilisateur.
-
Corrections spécifiques aux ports :
- GTK+ : Suppression des conflits de licence LGPL et prise en charge des fichiers de configuration pour les langues non-latines (correction des plantages sur les systèmes utilisant des encodages non-C).
- libretro : Correction des modes interlacés avec le recadrage overscan activé.
-
Optimisations techniques :
- Ajustement d’un timing hack (Chou Aniki) pour améliorer la précision temporelle dans certains jeux.
- Utilisation de fences (plutôt que
glFinish) pour réduire le lag d’entrée dans le port GTK+ (si disponible).
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v1.57
-
Améliorations majeures de précision matérielle :
- Correction des comportements d’écriture OAM (Object Attribute Memory) pour les tests blargg, amélioration des IRQ/NMI et suppression des artefacts d’interlacement en modes d’affichage BG 1-4.
- Fix des problèmes de transparence (Star Fox) et optimisation du DSP (ajout d’un hack d’interpolation) et du SuperFX (vitesse et bugs corrigés pour Stunt Race FX et Yoshi’s Island).
-
Nouveautés fonctionnelles :
- Ajout d’un hack de sprite-tile limit et d’un overclocking (augmentation du IPC).
- Support natif des snapshots rapides (libretro) et correction des erreurs de sauvegarde (variables non enregistrées ou mal sauvegardées).
- Réinitialisation automatique de la taille du viewport lors du chargement d’un état.
-
Corrections spécifiques à macOS :
- Support partiel du nouveau format de cheats XML.
- Correction de la compilation sous macOS Mojave et ajustement des valeurs par défaut pour les nouvelles options de configuration.
(Aucune mention explicite d’Apple Silicon ou de builds .dmg dans ce changelog.)
Changelog complet
v1.56.2
-
Corrections majeures sur le matériel CPU/IRQ :
- Résolution d’un problème d’IRQ en situation limite (corner case) qui faisait déborder l’eau de Umihara Kawase sur tout l’écran.
- Ajustement du timing des IRQ pour corriger des bugs dans Dragon Ball Z - Super Butouden 2.
- Correction de la gestion du signal
WAIquandIRQLineest actif, fixant Top Gear 3000.
-
Améliorations graphiques :
- Correction de la lecture incorrecte des données de tuiles en mode mosaic, supprimant un bug visuel dans les transitions de combat de Final Fantasy VI.
-
Corrections logicielles :
- Décomposition précise d’un opcode en cycles pour résoudre un problème dans Little Magic.
Aucune modification spécifique à macOS ou Apple Silicon n’est mentionnée dans ce changelog.
Changelog complet
v1.56.1
-
Correction majeure de la fréquence d'entrée automatique : désormais limitée aux multiples exacts de 60 Hz (ex. 60 Hz, 120 Hz) pour éviter les problèmes de synchronisation avec les jeux.
-
Correction sous Windows : l'ordre des cheats dans la liste est désormais affiché correctement.
-
Adaptation pour GTK+ :
- Vérification de la version minimale (supérieure à 3.22) pour éviter les plantages.
- Suppression du redimensionnement automatique des champs "code" et "description" sous GTK+ 2 (pour éviter les bugs d'affichage).
(Aucune modification spécifique à macOS ou Apple Silicon dans cette version.)
Changelog complet
v1.56
-
Améliorations majeures de compatibilité matérielle :
- Optimisation de l'émulation SA-1 (puce coprocesseur) pour un rendu plus fidèle au hardware, incluant la correction des divisions négatives et des problèmes d'interlacement.
- Mise à jour des mécanismes HDMA (Direct Memory Access) et DMA pour éviter les conflits d'adresses et améliorer la synchronisation des transferts (fixes pour Speedy Gonzales, Funaki Masakatsu Hybrid Wrestler).
- Correction des IRQ timing quirks (ex. Marko's Magic Football) et amélioration de la gestion des interruptions (calcul anticipé au lieu d'un polling continu).
-
Nouveautés pour les cheats :
- Format de stockage human-readable (fichiers
.cht) avec conversion automatique depuis les anciens formats, intégration de la base de données mightymo et chargement automatique par correspondance de jeu.
- Format de stockage human-readable (fichiers
-
Corrections graphiques critiques :
- Fix des artefacts SuperFX (Star Fox) via un test de transparence avant le dithering.
- Correction du PPU1 MDR pour les lectures en
$2137(glitch dans Mario's Time Machine). - Suppression de mises à jour inutiles du registre $4214 sous SuperFX (glitches dans Doom).
- Rendu correct des tiles en mode offset-per-tile et gestion des écritures VRAM invalides.
-
Améliorations audio/peripheriques :
- Correction de l'inversion des canaux MSU1 (fixe les problèmes audio dans certains jeux).
- Ajout du support pour le périphérique M.A.C.S. rifle (SNES).
Aucune modification spécifique à macOS ou Apple Silicon mentionnée dans ce changelog.
Changelog complet
v1.52fix4
Aucun détail pour cette version.
v1.52
-
Nouveautés majeures et améliorations techniques :
- Compatibilité audio et DSP améliorée : Remplacement des cœurs d'émulation du SPC700 et S-DSP par ceux de la bibliothèque Blargg's SNES_SPC, offrant une précision accrue (mais rendant les sauvegardes incompatibles avec les versions antérieures).
- Ajout de l'émulation du SPC7110 (via le code de bsnes), avec une gestion améliorée des fichiers .rtc (notamment pour Far East of Eden Zero).
- Support étendu des sauvegardes : Ajout des périphériques DSP-2, DSP-4, ST-010 et OBC1 dans les points de sauvegarde.
- Suppression des dépendances obsolètes : Fin du support des packs graphiques et des formats de sauvegarde très anciens (Snes96, ZSNES).
-
Corrections critiques :
- Problèmes de mémoire corrigés : Résolution des accès mémoire invalides dans les codes C4, OBC1 et BSX.
- Bugs audio et périphériques : Correction d’un problème sur le DSP-4 AI et des erreurs de lecture/écriture en mémoire (adresses
$213e,$4210,$4211). - Gestion des extensions : Arrêt de l’émulation SA-1 après le lancement d’un jeu compatible (évitait les surcharges inutiles).
-
Améliorations spécifiques à macOS :
- Corrections pour Intel Mac : Fix des captures d’écran corrompues et des crashs lors de l’export en QuickTime.
- Adaptations techniques : Mise à jour des paramètres audio pour le nouveau cœur APU, changement du dossier par défaut vers Application Support, et renommage des sous-dossiers (IPSs → Patches, BIOSs → BIOSes).
- Filtre vidéo : Intégration du filtre **Blarg
Changelog complet
v1.54.1
-
Amélioration majeure : Correction de l'utilisation incorrecte de
--std=c++11lors de la compilation de l'extension xBRZ sous GTK+, ce qui pourrait entraîner des erreurs de compilation pour les utilisateurs utilisant des compilateurs récents. -
Correction importante : Sauvegarde de la position de la fenêtre lors du basculement entre mode plein écran et mode fenêtre sous Win32 (système d'exploitation Windows).
-
Correction importante : Suppression de la confusion dans les bindings de contrôle (remplacement accidentel de la touche down-left par down-right), évitant ainsi des problèmes de contrôle dans les jeux.
(Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.)
Changelog complet
v1.54
-
Amélioration majeure de l'émulation : Migration du noyau S-SMP vers une implémentation écrite par byuu, offrant une meilleure précision et réduisant les speed hacks, mais pouvant causer des régressions sur certains jeux optimisés pour ces triches.
-
Nouveautés fonctionnelles :
- Ajout du support rewind (retour en arrière dans le jeu).
- Intégration d’un port libretro (compatibilité avec des front-ends comme RetroArch).
- Implémentation du soft-patching BPS (modification de ROMs via des patches).
-
Corrections critiques :
- Correction du registre MMC bank bit 7, rétablissant la cartouche ExLoRom 64 Mo (compatibilité avec certains jeux).
- Amélioration de l’émulation des IRQ dans plusieurs cas (meilleure synchronisation matérielle).
Aucune mention spécifique à macOS ou Apple Silicon dans ce changelog.
Changelog complet
v1.53
-
Améliorations majeures pour macOS :
- Ajout des fonctions pause et avancement frame par frame.
- Possibilité de choisir n’importe quel dossier pour sauvegarder les fichiers (au lieu du dossier par défaut).
- Mise à jour de Music Box (principalement en interne).
- Correction des glitches dans les dialogues d’ouverture/enregistrement sous macOS 10.6.
- Correction des problèmes d’affichage en mode fenêtre.
-
Corrections techniques globales :
- Réécriture du gestionnaire d’IRQ et amélioration des timings pour un traitement plus précis des événements par opcode.
- Correction du mode NMI override du coprocesseur SA-1 et ajout du support CC2 pour ce dernier.
- Suppression des options obsolètes : CPUShutdown speedhack, DisableHDMA et DisableIRQ.
-
Améliorations graphiques et compatibilité :
- Meilleure prise en charge de l’interlacement d’écran et des sprites interlacés.
- Correction du pixel plotter Hi-Res et du problème d’écho buffer affectant l’IPL ROM.
- Ajout d’un blend Hi-Res optionnel pour GTK+, Win32 et macOS (incluant les builds .dmg).
-
Compatibilité logicielle et optimisations :
- Suppression des appels POSIX
dupetaccesspour améliorer la portabilité (notamment avec le Cell SDK). - Correction d’un crash lié à un descripteur double-fermé (impact potentiel sur macOS via les ports Unix).
- Suppression des appels POSIX
Changelog complet
v1.55
-
Nouveautés majeures :
- Ajout du support complet pour le coprocesseur MSU-1 (y compris les packs de distribution dédiés), améliorant la compatibilité des jeux utilisant ce périphérique audio avancé.
- Intégration du support des packs mémoire BS-X (Satellaview) et des fichiers de données associés, ainsi qu’une correction de la cartographie mémoire pour une meilleure précision.
-
Corrections critiques :
- Résolution d’une erreur récurrente dans l’APU (Audio Processing Unit), responsable de problèmes de son dans certains jeux.
- Correction de la mappage RAM pour Light Fantasy, évitant des comportements erronés ou des crashes.
-
Améliorations techniques :
- Ajout d’un hack de timing APU pour Circuit USA, optimisant le rendu audio dans ce jeu spécifique.
- Suppression des avertissements de compilation et comportements indéfinis (fixes génériques pour la stabilité du code).
Note : Aucune modification spécifique à macOS ou Apple Silicon n’est mentionnée dans ce changelog.
Changelog complet
Captures d'écran