Quiconque entretient une collection de jeux rétro connaît la chanson. Pour convertir une image disque PlayStation en CHD, on ouvre chdman en ligne de commande. Pour appliquer une traduction de fan sur une ROM Super Nintendo, on lance un patcheur IPS ou BPS. Pour renommer proprement ses fichiers selon les bases No-Intro ou Redump, on passe encore par un autre utilitaire, souvent vieillissant et réservé à Windows. Au bout du compte, le dossier « outils » finit par ressembler à un musée de petits logiciels qui ne se parlent pas entre eux. C'est précisément ce morcellement qu'OpenROM veut faire disparaître. Ce projet gratuit et open source, publié sur GitHub par M5Devs, se présente comme une boîte à outils universelle du rétrogaming : une seule application pour convertir, patcher, compresser, nettoyer et organiser ses ROM. Il est accompagné d'une mascotte, ROMeo, une petite cartouche en pixel art qui donne le ton d'un projet pensé par et pour des passionnés. Voici ce que l'application sait faire concrètement, et pourquoi elle mérite une place sur le disque dur de tout collectionneur.
Un seul logiciel pour convertir et patcher toute sa ludothèque
Le cœur d'OpenROM, c'est la conversion d'images disque. L'outil revendique plus de vingt chemins de conversion entre les formats les plus courants de la scène : ISO, BIN, CUE, GDI, IMG, ECM, CHD, CSO, ZSO, XISO, RVZ, WIA, WBFS ou encore GCZ. Autrement dit, on couvre aussi bien les jeux PlayStation et Saturn que les titres GameCube, Wii, PSP ou Xbox. Pour les émulateurs modernes, le format CHD est devenu une référence, car il compresse fortement les images de CD et de DVD sans perte de données. Encore faut-il l'utiliser correctement, et c'est là qu'OpenROM se montre plus malin que beaucoup de scripts maison.
Plutôt que de deviner la console d'origine à partir de la taille d'un fichier, l'application lit les « magic bytes », ces signatures présentes au début des images, pour identifier la plateforme : PS1, PS2, PSP, Xbox, GameCube, Wii, Dreamcast, Saturn et Sega CD sont reconnues. Cette détection sert ensuite à choisir la bonne commande de chdman. Les jeux sur CD (PS1, Dreamcast, Saturn, Sega CD) passent par createcd, tandis que les jeux sur DVD (PS2, GameCube, Wii, Xbox) passent par createdvd. Le projet insiste sur le fait que les deux ne sont jamais confondus, une erreur classique qui peut produire des fichiers mal reconnus par certains émulateurs. OpenROM lit d'ailleurs les en-têtes réels des fichiers CHD en versions 4 et 5 pour savoir s'il s'agit d'un CD ou d'un DVD, et lance une vérification d'intégrité avec chdman verify une fois la conversion terminée.
Autre détail qui fera plaisir à ceux qui ont déjà récupéré un fichier BIN orphelin : l'outil génère automatiquement la feuille CUE manquante. Il inspecte les en-têtes de secteurs pour déterminer le mode de chaque piste (MODE1, MODE2 ou AUDIO), ce qui évite de bricoler le fichier à la main dans un éditeur de texte.
Côté patchs, la liste est tout aussi généreuse. OpenROM prend en charge onze formats : IPS, IPS32, UPS, BPS, PPF, APS, EBP, DPS, xdelta3, SSP pour la Saturn et DCP pour la Dreamcast. Il suffit de déposer le fichier de patch pour que le format soit détecté automatiquement. Un contrôle CRC32 est effectué avant et après l'application, avec un rapport détaillé, ce qui permet de vérifier qu'on part bien de la bonne version de la ROM. Pour les cas particuliers, un mode permet d'ignorer la somme de contrôle et de forcer l'application sur une ROM déjà modifiée. C'est très pratique pour empiler une traduction et un correctif, à condition de savoir ce que l'on fait.
Des outils pointus pour la Dreamcast et le nettoyage des ROM
La Dreamcast bénéficie d'un traitement de faveur. OpenROM intègre un applicateur de patchs DCP compatible avec les fichiers d'Universal Dreamcast Patcher, avec la prise en charge complète des patchs delta xdelta3. On y trouve aussi un éditeur d'IP.BIN, le secteur de démarrage des disques Dreamcast. Il permet de lire et modifier le titre du jeu, les drapeaux de région (Japon, États-Unis, Europe ou sans zone) et l'option de mode VGA. L'encodage Shift-JIS est géré, ce qui permet de manipuler correctement les titres japonais. Enfin, un inspecteur de pistes GDI affiche la structure d'une image disque : numéro de piste, décalage LBA, type de piste (audio ou données), taille des secteurs et nom de fichier. Pour qui s'intéresse aux traductions ou aux hacks de la console de Sega, regrouper ces trois outils dans la même interface représente un vrai gain de temps.
La compression n'est pas oubliée. Le ZIP fonctionne sans rien installer, avec trois préréglages (rapide, normal et ultra), pour une ROM isolée comme pour un dossier entier. Le 7Z est également pris en charge, en compression comme en extraction, mais il nécessite un exécutable 7-Zip installé sur la machine, car il n'est pas fourni avec l'application. Sous Linux, le paquet p7zip-full fait l'affaire, sous macOS la commande brew install sevenzip installe le binaire 7zz, et sous Windows OpenROM va chercher 7-Zip dans son dossier d'installation par défaut. Il est aussi possible d'indiquer un chemin précis via la variable OPENROM_7Z. Si aucun binaire n'est trouvé, la tâche échoue avec un message clair. Les archives chiffrées ne sont pas prises en charge. Les formats déjà compressés comme CHD, CSO, RVZ ou 7Z sont ignorés automatiquement, et une option permet de supprimer les fichiers sources après une compression réussie.
Le module de suppression d'en-têtes vise les ROM issues de vieux copieurs de cartouches. Il détecte et retire ces en-têtes sur les jeux NES (iNES), Super Nintendo (SMC) et Game Boy / Game Boy Color, en indiquant un niveau de confiance (certain ou probable). Une protection empêche de nettoyer deux fois une ROM Super Nintendo déjà propre en validant son en-tête interne. Par prudence, l'original est sauvegardé en .bak avant toute modification, les sauvegardes existantes ne sont jamais écrasées et le résultat est écrit dans un fichier séparé.
Pour l'organisation de la collection, OpenROM génère des playlists M3U pour les jeux multidisques, sur PS1 ou Saturn par exemple. Il fusionne aussi les fichiers BIN multipistes en un seul BIN accompagné de son CUE, avec une gestion correcte du prégap INDEX 00, et propose un éditeur de fichiers CUE intégré. Le renommage s'appuie sur les fichiers DAT de No-Intro et Redump : l'application identifie les ROM par leur empreinte CRC32 et non par leur nom, propose un mode d'essai pour prévisualiser les changements et conserve localement une bibliothèque de DAT réutilisables. Tout cela fonctionne entièrement hors ligne, sans clé d'API.
Une interface moderne, une ligne de commande et le respect de la vie privée
Sur la forme, OpenROM tranche avec les utilitaires austères qu'il entend remplacer. L'interface, développée avec Flutter, adopte un tableau de bord sombre inspiré de l'esthétique des PS5 et Xbox, avec des cartes de ROM, des badges de plateforme et une progression en temps réel. Plusieurs thèmes sont fournis (Gaming Dashboard, Cyberpunk, Terminal, Minimal) et l'on peut créer le sien à partir d'un fichier JSON. Un journal de terminal glisse depuis le bas de l'écran pendant les conversions et affiche la sortie des processus horodatée, ce qui rassure quand un traitement long semble bloqué. Le glisser-déposer de fichiers et de dossiers est natif, et le traitement par lots permet de déposer un dossier complet pour tout traiter d'un coup. Un gestionnaire de file d'attente sert à réordonner les tâches avant de les lancer, et un aperçu estime la taille finale d'un fichier selon le format et le niveau de compression choisis.
Les utilisateurs avancés apprécieront la présence d'une interface en ligne de commande complète, openrom-core, utilisable sans interface graphique. Elle sert à l'automatisation et aux scripts, et c'est aussi elle qui dialogue avec l'interface Flutter. Chaque version publiée inclut les deux composants. L'application existe pour Windows (installateur ou version portable), pour Linux en AppImage sur x86_64 et ARM64, et pour macOS sur puces Apple Silicon comme sur Mac Intel. Une version Android via Termux est annoncée comme étant en préparation. Les téléchargements sont proposés sur la page des versions GitHub, avec un miroir sur SourceForge, et un wiki officiel détaille l'installation, l'utilisation sur Steam Deck ou sous Termux, ainsi qu'une foire aux questions. L'interface est disponible en six langues, dont le français, aux côtés de l'anglais, de l'arabe, de l'espagnol, du japonais et du portugais.
Enfin, le projet met en avant une approche respectueuse de la vie privée : ni télémétrie, ni statistiques d'usage, ni création de compte. Les deux fonctions en ligne sont désactivées par défaut. La première vérifie au démarrage sur GitHub si une nouvelle version existe. La seconde contrôle, avant une conversion, si une ROM est reconnue par RetroAchievements, ce qui demande un compte gratuit sur retroachievements.org. Pour les amateurs de succès rétro, c'est une façon simple de s'assurer qu'un fichier sera compatible avant de lancer une longue conversion.
En réunissant dans un même logiciel la conversion CHD, les patchs, les outils Dreamcast, le nettoyage d'en-têtes et le renommage par DAT, OpenROM répond à un vrai besoin de la communauté. Il reste à voir comment le projet évoluera, mais pour qui jongle aujourd'hui entre une demi-douzaine d'utilitaires, il vaut clairement le détour. Le code source, les téléchargements et la documentation sont disponibles sur le site officiel du projet OpenROM.





0 commentaire