6 points par GN⁺ 2025-10-09 | 3 commentaires | Partager sur WhatsApp
  • Le Hyper Neo Geo 64 est un système d’arcade 3D exploité par SNK pendant deux ans, de 1997 à 1999. Seulement 7 jeux sont sortis avant sa disparition rapide, ce qui en fait une plateforme expérimentale de la période de transition entre la 2D et la 3D
  • Le développeur de MAME, David Haywood, menait depuis 2004 un travail d’émulation sur 21 ans qui a récemment atteint son stade final : les graphismes, les entrées, ainsi que l’émulation sonore fonctionnent désormais correctement
  • Au cours du dernier mois, des contributeurs MAME comme R. Belmont ont résolu la synthèse sonore et le traitement des filtres, entraînant des progrès rapides, et la version MAME 0.282 prévue en octobre apportera une prise en charge audio complète
  • Pendant le développement de l’émulation, des avancées techniques périphériques comme le dump du microcontrôleur d’E/S et l’amélioration du cœur CPU V53 ont servi de percées décisives, avec en plus une synergie inattendue avec le travail d’émulation de synthétiseur
  • Ce cas illustre bien les spécificités du développement d’émulateurs : des années de travail invisible, de patience, et l’importance d’un processus collaboratif où différents éléments techniques finissent par s’emboîter un à un

Le long parcours de l’émulation du Hyper Neo Geo 64

  • Lorsque David "MameHaze" Haywood a commencé à travailler sur l’émulation du Hyper Neo Geo 64 en 2004, MAME prenait à peine en charge les jeux 3D, le cœur CPU MIPS n’en était qu’à ses débuts, et il n’existait même pas encore de dump du microcontrôleur d’E/S
    • À l’époque, la mémoire des PC était insuffisante même pour charger et décoder des graphismes 2D
    • Nous étions avant YouTube, dans un contexte où il était très difficile d’obtenir des documents de référence
    • Une grande partie des jeunes adultes aujourd’hui intéressés par l’émulation de cette plateforme n’étaient même pas nés au moment où ce travail a commencé
  • Il y a quelques semaines, Haywood a fait passer le système à l’état « fonctionnel » dans MAME, mais il s’agissait d’une décision en partie formelle
    • Une émulation sonore correcte manquait encore, et Haywood lui-même n’avait plus travaillé sur le cœur depuis 2023
    • Il a estimé qu’on pouvait lui attribuer l’étiquette « fonctionnel » puisque les gens jouaient depuis longtemps sans le son
    • Cela a servi de déclencheur pour que d’autres contributeurs MAME se penchent sur l’amélioration audio

Vue d’ensemble du système Hyper Neo Geo 64

  • Il n’a existé dans les salles d’arcade que pendant deux ans, de 1997 à 1999, avec un total de 7 jeux sortis
    • Road's Edge
    • Samurai Shodown 64
    • Xtreme Rally
    • Beat Busters: Second Nightmare
    • Samurai Shodown 64: Warriors Rage
    • Fatal Fury: Wild Ambition
    • Buriki One
  • Pris individuellement, ces jeux ne constituaient pas une motivation majeure pour l’émulation, mais la volonté de l’équipe MAME de rétroconcevoir et préserver tous les systèmes d’arcade a permis au projet de continuer
  • Contrairement à la carte CPS3 de Capcom, dont la prise en charge a été ajoutée rapidement après son déchiffrement, le Hyper Neo Geo 64 a nécessité 21 ans d’efforts intermittents et laborieux

Les efforts invisibles du développement d’émulation

  • Haywood souligne que « ce que les gens ne comprennent vraiment pas à propos de l’émulation, c’est la quantité de temps qu’il faut investir dans un travail qui ne produit absolument aucun résultat positif »
    • Il a travaillé plusieurs fois sur le pilote Hyper Neo Geo 64 pendant des semaines, avec l’impression de n’obtenir aucun progrès
    • La frustration de chercher à tout comprendre pour finalement ne conclure que : « ça ne fonctionne pas comme ça »
  • Il y a quelques années, un dump du microcontrôleur d’E/S a finalement été obtenu, et Haywood a écrit un cœur CPU pour l’émuler, ce qui a permis une avancée concrète
    • Les entrées ont commencé à fonctionner dans de nombreux jeux, permettant de pousser plus loin le travail d’amélioration vidéo
    • La prise en charge du CPU V53, développée pour un autre système, a ensuite joué un rôle décisif pour faire tourner le DSP audio

Des progrès rapides sur l’émulation sonore

  • Quand Haywood a marqué la plateforme comme « fonctionnelle », cela a attiré l’attention de contributeurs MAME comme R. Belmont
    • Belmont, Happy, O. Galibert et d’autres ont passé le dernier mois à faire en sorte que les jeux sonnent correctement
    • La désassemblage détaillé du programme du CPU audio réalisé par Happy s’est révélé très utile
  • Belmont et Galibert travaillaient aussi sur la prise en charge de synthétiseurs dans MAME, et la puce audio du Hyper Neo Geo 64 étant également utilisée dans des synthétiseurs, il y a eu un chevauchement de spécialité très opportun
  • La version MAME 0.281 inclut déjà une série d’améliorations rapides documentées par Belmont dans une vidéo YouTube
    • Correction du démarrage et de l’arrêt des échantillons de base pour qu’ils fonctionnent correctement
    • Ajout d’une prise en charge préliminaire des enveloppes de volume, améliorant l’équilibre audio
    • Ajout d’un filtre passe-bas par voix, ce qui nettoie le bruit haute fréquence et rend le son plus propre

Les principales améliorations de MAME 0.282

  • La version MAME 0.282, prévue en octobre, doit corriger les problèmes audio de Xtreme Rally et améliorer la qualité d’ensemble
  • Olivier Galibert a compris comment compresser une plage dynamique de 12 bits en 8 bits, puis l’a remplacée par un filtre Chamberlin plus adapté, ce qui donne un son bien plus clair et fidèle
  • En comprenant le fonctionnement réel des échantillons en boucle, en corrigeant la distorsion dans le mixage final, puis en ajustant les enveloppes de filtre, l’équipe a obtenu une amélioration spectaculaire de l’introduction de Beast Busters Second Nightmare
  • Résolution d’un problème de code spécifique à Xtreme Rally
    • Ce jeu utilisait un code particulier visant à envoyer les commandes sonores au CPU audio aussi vite que possible, ce qui entraînait la perte des deux tiers des commandes
    • Le problème a été corrigé pour que toutes les commandes soient transmises, et Xtreme Rally sonne désormais très bien
  • À la sortie de MAME 0.282, le Hyper Neo Geo 64 sera véritablement à la hauteur de l’étiquette « fonctionnel »

Un exemple parfait de projet collaboratif

  • Galibert a expliqué sur Reddit que sa contribution venait de son intérêt pour l’émulation de synthétiseurs, tout en notant que « de façon assez ironique, le synthétiseur lui-même (MPC3000) ne fonctionne toujours pas du tout »
  • Certaines parties du synthétiseur n’ont toujours pas été dumpées ni documentées, mais il arrive qu’une des pièces disponibles s’emboîte parfaitement dans un tout autre puzzle
  • Haywood résume cela ainsi : « ce fut simplement un processus long et lent », ajoutant que « les choses ont progressé petit à petit au fil des années, et à mesure que le code périphérique de MAME est devenu meilleur et plus capable, il a été possible d’avancer davantage étape par étape »

3 commentaires

 
colus001 2025-10-10

Faire autant d’efforts pour une console qui ne prend en charge que 7 jeux, c’est vraiment génial.

 
t7vonn 2025-10-10

Les vieux briscards de l’émulation… impressionnant.

 
GN⁺ 2025-10-09
Avis Hacker News
  • Un travail vraiment impressionnant, mais les billets de Byuu et les récents devlogs de Dolphin me manquent. Je recommande aussi vivement le blog de développement de Shonumi. Il traite de périphériques rares ou difficiles à émuler pour Gameboy et GBA, de modems infrarouges à des sonars de détection de poissons, par exemple : Shonumi devlog

    • Byuu était vraiment quelqu’un d’exceptionnel. Je me souviens de l’époque où il est arrivé et a énormément contribué à améliorer la compatibilité des émulateurs. Les changements positifs qu’il a apportés au monde continuent de me marquer

    • Il y a aussi des articles vraiment fascinants sur tous les efforts déployés dans Dolphin pour faire tourner les jeux de Factor 5. Sur du matériel fixe, des astuces absolument remarquables sont utilisées pour tirer un maximum de performances. On ne réalise vraiment leur génie que des années plus tard, quand quelqu’un essaie de faire tourner ce logiciel via un émulateur

    • Je me demande si quelqu’un connaît un émulateur PC capable de bien prendre en charge l’entrée micro via l’émulation Soundblaster. J’ai retrouvé sur archive.org ma première appli, publiée vers 1994 : c’est un visualiseur musical, et il a besoin d’une entrée audio

    • L’article du devlog de Shonumi sur le Battle Chip Gate m’a replongé dans mes souvenirs d’enfance. J’étais fan de Battle Network sur GBA quand j’étais petit, et j’ai commencé à participer à des communautés en ligne sur GameWinners.com pour rejoindre des forums Mega Man. Mon premier pseudo venait même d’une nouveauté de MMBN2. C’est grâce à Battle Network que je me suis intéressé à la préservation des vieux jeux, et les IA ainsi que l’univers cybernétique du jeu donnent une impression étonnamment prophétique. Des PC directement connectés à Internet, des IA personnalisées pour chacun, des agents IA qui aident à naviguer dans la complexité du monde numérique, la cybercriminalité et les hackers, sans oublier des failles numériques intemporelles ou le piratage de systèmes de contrôle environnemental : c’était une vision du futur vraiment saisissante. MMBN2 m’a aussi aidé à apprendre l’anglais et à devenir programmeur. J’y repense encore avec beaucoup d’affection

  • Ce qui m’étonne, c’est que le projet MAME soit encore activement développé après plus de 28 ans sans que sa nature fondamentale ait vraiment changé. C’est probablement grâce à une communauté de développeurs extrêmement dévouée

    • Entre la base de code C++, le code qui génère du code C++, le processus de build qui génère encore un autre processus de build, et l’obsession de celui qui renomme tous les fichiers chaque année, il s’en dégage vraiment une ambiance de moine dans une grotte

    • Ce n’était pas exactement un fork, mais il y a bien eu à un moment un projet séparé appelé MESS, qui a essayé d’élargir le périmètre aux systèmes non arcade avant d’être réintégré

    • Il existe aussi des forks populaires comme Final Burn Alpha/Neo

    • L’un des détails les plus intéressants que j’ai découverts par hasard, c’est qu’ils émulent même SGI/IRIX

    • Il existe effectivement plusieurs forks, mais je ne sais pas vraiment si l’un d’eux peut être considéré comme un fork vraiment « important ». Et j’ai aussi pu constater que les développeurs de MAME évaluent le code externe de manière très stricte

  • J’adore ce genre d’article. On sent à quel point l’émulation de jeux a permis à plusieurs auteurs de développer des compétences techniques très poussées. Je crains que des DRM extrêmement difficiles, profondément enfouis dans le matériel, comme ceux qu’on voit sur Xbox One X et autres, ne laissent à l’avenir de grands vides dans les expositions du patrimoine culturel. Il y a clairement un coût social majeur aux DRM, que nous ne mesurons pas assez

  • La passion des développeurs en émulation, prêts à faire autant d’efforts pour moins de dix jeux, est vraiment admirable

    • Même sur des plateformes avec très peu de jeux, il arrive que quelqu’un se passionne pour un titre et l’analyse à fond. Je suis moi-même fan de T-Mek et j’ai une machine capricieuse dans ma grange. C’est un système qui n’a que deux jeux, mais il faut qu’une personne réunissant l’intérêt, les compétences et l’équipement nécessaires s’y mette pour casser les protections afin qu’il puisse vraiment fonctionner correctement dans MAME

    • Habbo Origins existe encore aujourd’hui parce qu’à une époque, certains ont trouvé comment faire tourner des DCR Habbo déjà compilés comme application desktop autonome. Un employé de Sulake l’a même testé lui-même, et cette personne venait en fait de la scène Habbo Retro/Emulator. La scène du reverse engineering est vraiment une communauté fascinante

    • Parmi les matériels d’arcade, on trouve des cartes totalement custom conçues pour un seul jeu, voire des puces qui n’ont jamais été réutilisées. La mission de MAME est claire, mais HNG64 a toujours suscité de l’intérêt avec SNK, Samurai Shodown et Fatal Fury

    • Le travail de documentation et de préservation du passé a énormément de valeur

    • Dans un cas comme celui-ci, le mot le plus juste est probablement passionate

  • Même après 28 ans, des évolutions intéressantes continuent encore d’apparaître un peu partout dans MAME. Cela va bien au-delà des simples bornes d’arcade, avec une extension vers des consoles de salon peu connues, des ordinateurs vintage et divers matériels. Récemment, les progrès de l’émulation de synthétiseurs musicaux professionnels comme la légendaire série Yamaha MU sont particulièrement intéressants : Yamaha MU-series wiki. À la fin des années 80, les jeux PC ont commencé à proposer des bandes-son MIDI, mais la plupart des joueurs n’entendaient qu’une version vaguement dégradée via les cartes son PC limitées de l’époque. Avec suffisamment d’argent, on pouvait profiter d’un rendu bien plus vivant grâce à un module MIDI externe comme le Roland Sound Canvas, mais le vrai sommet, c’était le Yamaha MU80 à 64 voix. La première fois que j’ai entendu le son du MU80, j’ai compris tout ce qui m’avait échappé : MU80 Demo Song. Désormais, grâce à MAME, on peut découvrir librement ce matériel professionnel coûteux rien qu’avec une émulation logicielle

    • Je me souviens que les morceaux MIDI fournis avec mon Packard Bell Pentium 166 paraissaient vraiment bizarres et assez mauvais. Je ne savais pas qu’il existait déjà des appareils aussi performants à l’époque. J’ai cherché sur YouTube une vidéo comparant Sound Blaster et MU80, et c’est vraiment fascinant : vidéo de comparaison

    • Je me demande quand arrivera le jour où l’on pourra demander à une IA de recréer un jeu de fantasy qui baigne dans la nostalgie des années 90

  • Je me demande si cette méthode ressemble au système DRM étrange que CAPCOM utilisait autrefois sur ses systèmes d’arcade. Il existait un mécanisme qui obligeait à faire reprogrammer la machine par CAPCOM si l’alimentation était coupée

    • Je ne crois pas que ce soit la même chose. Tu parles sans doute des systèmes CPS, en particulier des célèbres cartes CPS2. Sur ces cartes, la batterie alimentait le dispositif anti-copie, et si sa tension tombait sous un certain seuil, la clé de sécurité était effacée de la mémoire. Les ROM restaient alors chiffrées. Éteindre et rallumer la machine ne posait aucun problème en soi. En revanche, les batteries CPS2 avaient tendance à détruire des composants importants, d’où leur surnom de « batteries suicide ». Aujourd’hui, on peut contourner la protection de plusieurs façons : utiliser des Phoenix ROM déchiffrées, ou souder un PCB Infinikey pour remplacer la clé stockée dans les ROM par une alimentation fournie par la carte, entre autres. À l’inverse, HNG64 semble surtout avoir été moins analysé parce que son matériel était plus obscur et plus complexe

    • Ce mécanisme se faisait en deux étapes. Il y avait entre la ROM du programme et le CPU une puce de déchiffrement propriétaire, qui utilisait une table stockée dans une petite SRAM alimentée par batterie. Si elle perdait l’alimentation, que ce soit parce que la batterie était vide ou à cause d’une tentative de piratage, les clés de déchiffrement disparaissaient aussi. On a découvert par hasard que la broche FC1 était connectée à la puce de déchiffrement, et qu’en réalité seule la ROM du programme était chiffrée. Quand le CPU 68000 demandait une instruction, il envoyait un signal spécifique indiquant au décrypteur s’il devait déchiffrer ou non. Mais le mode d’adressage PC-relative envoyait le même signal, ce qui a permis d’extraire les instructions chiffrées. À cause d’une autre protection, la puce cessait aussi de fonctionner après un court moment. Plus tard, on a découvert, dans des consoles domestiques basées sur des cartes CPS et dans des portages console de jeux comme SF Zero, qu’il y avait des instructions lisant d’étranges adresses que la puce attendait. Sans accès à certaines adresses spécifiques, la puce arrêtait de déchiffrer. Ce secret a été révélé à cause des portages console, et ensuite il est devenu possible de dumper correctement les ROM en combinant astucieusement l’adressage PC-relative et ces accès. Documentation de référence du processeur 68000

    • On voit encore ce type de système aujourd’hui dans du matériel de jeu d’argent, par exemple. Les machines à sous modernes embarquent de nombreuses protections, des batteries, des mécanismes anti-perçage, etc., mais l’objectif est désormais davantage d’empêcher la fraude fiscale que de protéger le copyright

  • L’article mentionne le LaserActive. J’en ai vu un pour la première fois chez mon oncle quand j’étais enfant, sans même savoir que ça existait : LaserActive wiki. J’ai surtout le souvenir d’y avoir joué à des jeux Genesis

    • Très peu de gens connaissaient même l’existence de ce genre de machine. Elles se vendaient cher chez les collectionneurs, et quand j’ai commencé à m’intéresser au matériel PC Engine/TurboGrafx il y a 15 ans, les prix étaient déjà élevés. J’imagine qu’aujourd’hui c’est encore pire
  • J’ai été surpris d’apprendre que Vajra et Vajra 2 étaient des shoot’em up exclusifs au LaserActive développés par une société appelée Data West. Le nom ressemble à Data East, les deux sont japonaises, et pourtant ça ne semble pas être un spin-off de Data East. Je me demande si le nom n’a pas été choisi exprès pour semer la confusion : infos sur la société Data West

  • J’ai zoomé sur l’étiquette de prix de la première photo de l’article. Battle Toad in Battlemaniac est à 53 900 yens, Akumajou Dracula XX à 27 500 yens, et The King of Dragons à 39 800 yens

  • Sur Galaga et Galaga Fast Shoot, il y a toujours plus de 100 ms de latence entre l’appui sur une touche et la réaction du jeu, et j’espère qu’un jour ce problème sera complètement résolu