INFO - NES - Lecteur CD pour console NES 💿 - Everdrive N8 Pro

Salon dédié uniquement à vos tutoriels concernant la modification, le modding ou la réparation de vos consoles "Nintendo / Famicom".
Répondre
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 5673
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Pays : 🇫🇷 FR
Contact :

INFO - NES - Lecteur CD pour console NES 💿 - Everdrive N8 Pro

Message par Xrider »



NESCD-001 : un véritable lecteur CD-ROM pour la Nintendo NES
Quand la NES rencontre le CD-ROM, plus de 40 ans après sa conception

Et si la Nintendo NES avait elle aussi eu droit à son lecteur CD-ROM ?

C'est précisément l'idée derrière NESCD-001, un projet open source développé par Throaty Mumbo qui transforme cette idée improbable en véritable extension matérielle fonctionnelle.
L'objectif n'est pas d'émuler une NES ou simplement de placer des ROM sur un CD : le NESCD utilise une véritable console Nintendo NES, un véritable lecteur CD-ROM IDE et un EverDrive N8 Pro.
Le CD devient ainsi un support depuis lequel la NES peut charger un jeu, mais également accéder à des pistes audio.

GitHub officiel du projet NESCD-001

Image


Une NES équipée d'un lecteur CD-ROM

Le projet NESCD-001 est né d'une idée volontairement décalée.

ThroatyMumbo s'intéressait initialement au célèbre projet de lecteur CD-ROM destiné à la Super Nintendo, développé dans les années 1990 avant d'être abandonné.
Plutôt que d'en réaliser une nouvelle interprétation pour la SNES, il décide d'aller encore plus loin :

Pourquoi ne pas construire un lecteur CD pour la NES ?

Une machine commercialisée au Japon dès 1983 et dont l'architecture n'avait évidemment jamais été pensée pour manipuler directement plusieurs centaines de mégaoctets de données.
Le résultat est le NESCD-001.


Architecture du NESCD-001
RP2350B + EverDrive N8 Pro + lecteur CD-ROM IDE

Le NESCD ne transforme pas directement le bus cartouche de la NES en interface CD-ROM.

Le projet utilise une architecture intermédiaire particulièrement intéressante :

Code : Tout sélectionner

CD-ROM IDE
     |
     v
  RP2350B
   /     \
  /       \
USB       Audio
 |          |
 v          v
EverDrive   Port d'expansion NES
N8 Pro
 |
 v
NES
Le cœur du système est un microcontrôleur RP2350B.

Celui-ci sert de passerelle entre :
  • le lecteur CD-ROM IDE 40 broches ;
  • l'EverDrive N8 Pro ;
  • la Nintendo NES ;
  • et le circuit audio du système.
Le RP2350B coordonne donc les échanges entre le média optique et la console.


Comment un jeu NES peut-il démarrer depuis un CD ?
La NES n'exécute pas directement le programme depuis le CD.
Lorsqu'un disque compatible est inséré, le RP2350B lit la ROM NES présente sur le CD.
Cette ROM est ensuite envoyée par USB vers l'EverDrive N8 Pro.
Le microcontrôleur demande alors au menu de l'EverDrive d'installer puis d'exécuter automatiquement le jeu.
Le chemin est donc approximativement :

Code : Tout sélectionner

CD-ROM
   |
Lecture de la ROM
   |
   v
RP2350B
   |
USB
   |
   v
EverDrive N8 Pro
   |
Chargement du jeu
   |
   v
NES
Une fois le transfert terminé, le jeu démarre automatiquement.

Le lecteur CD devient donc une véritable source de données externe, tandis que l'EverDrive assure l'interface avec l'architecture mémoire de la NES.


Et le CD continue à servir pendant le jeu
Le rôle du NESCD ne s'arrête pas au chargement de la ROM.
Une fois le jeu lancé, le RP2350B surveille une zone utilisée comme "mailbox" dans la CHR RAM de l'EverDrive.
Le logiciel exécuté sur la NES peut ainsi écrire une commande dans cette zone afin de demander au NESCD de lancer une piste musicale.
Le principe devient alors :

Code : Tout sélectionner

Jeu NES
   |
Commande audio
   |
CHR RAM / Mailbox
   |
   v
RP2350B
   |
   v
CD-ROM
   |
Lecture de la piste
Cela permet à un programme spécialement développé pour le NESCD d'associer des événements du jeu à des pistes audio stockées sur le disque.


Audio CD : le port d'expansion de la NES entre en jeu
Pour l'audio, Throaty Mumbo avait initialement envisagé de transmettre les données via l'EverDrive.
La bande passante disponible sur la liaison USB de l'EverDrive s'est cependant révélée trop limitée pour cette utilisation sans mettre en œuvre une compression importante.
Le NESCD exploite donc une autre particularité intéressante de la NES : son port d'expansion inférieur.
Le système intègre notamment un DAC PCM5102.
Le signal audio provenant du CD est converti puis injecté dans l'entrée de mixage audio disponible via le port d'expansion de la console.
Cette solution présente également un autre avantage : elle permet de conserver un réglage indépendant du volume.
C'est la raison de la présence du potentiomètre visible sur la façade du NESCD.

La NES devient également... un lecteur de CD Audio

Conséquence assez amusante de cette architecture : le NESCD peut tout simplement transformer la Nintendo NES en lecteur de CD Audio.

Le projet fournit une ROM spécifique :

Code : Tout sélectionner

cdplayer.nes
Il suffit de placer cette ROM sur la carte SD de l'EverDrive N8 Pro, de la lancer depuis son menu puis d'insérer un CD Audio standard dans le lecteur.

La NES peut alors servir d'interface pour la lecture du disque.

Une fonction presque évidente une fois le matériel réalisé... mais à laquelle le créateur reconnaît lui-même ne pas avoir pensé lors de la conception initiale du projet !

Le hardware nécessaire

La configuration actuelle du NESCD-001 repose principalement sur :
  • Nintendo NES
  • EverDrive N8 Pro
  • RP2350B
  • lecteur CD-ROM IDE 40 broches
  • DAC audio PCM5102
  • PCB NESCD spécifique
  • interface avec le port d'expansion de la NES
  • alimentation 5 V / 12 V pour le lecteur et l'électronique
Image

Le projet ne se limite pas à un prototype présenté en vidéo.
Throaty Mumbo publie les fichiers nécessaires à sa reproduction.
Un projet entièrement documenté et reproductible

Le dépôt GitHub contient notamment :
  • les schémas électroniques ;
  • le design du PCB ;
  • le firmware ;
  • les outils permettant de créer les disques ;
  • un jeu de démonstration ;
  • les modèles STL du boîtier à imprimer en 3D ;
  • les fichiers destinés aux stickers et labels ;
  • plusieurs captures et éléments de documentation.
Le projet est publié sous licence MIT.

Télécharger les sources du NESCD-001 sur GitHub


Créer son propre CD NESCD

Le dépôt fournit également les outils permettant de fabriquer une image disque.

Pour compiler la démonstration et générer le disque, plusieurs outils sont utilisés :
  • cc65 / ca65 / ld65 ;
  • Python 3 ;
  • NumPy ;
  • FFmpeg ;
  • xorriso.
Le développeur fournit notamment deux scripts intéressants :

Code : Tout sélectionner

mktrack.py
mkgamedisc.py
Le premier permet de préparer une piste audio tandis que le second construit l'image contenant la ROM NES et les différentes pistes.

Exemple donné par le projet :

Code : Tout sélectionner

python3 firmware/tools/mktrack.py theme.wav -o theme.rom --loop-start 4.2

python3 firmware/tools/mkgamedisc.py -o mygame.img --title "MY GAME" --nes mygame.nes --track 1=theme.rom --verify
Il devient donc possible de créer un disque contenant :

Code : Tout sélectionner

ROM NES
+
Piste audio 1
+
Piste audio 2
+
Piste audio 3
+
...
Le logiciel NES peut ensuite demander au contrôleur de jouer les différentes pistes.

Insertion du disque et démarrage automatique
L'utilisation est particulièrement sympathique.
La NES est démarrée normalement sur le menu de l'EverDrive N8 Pro.
Il suffit ensuite d'insérer un disque NESCD compatible.
Le système :
  1. détecte le disque ;
  2. lit son contenu ;
  3. récupère la ROM NES ;
  4. transfère la ROM vers l'EverDrive via USB ;
  5. demande son installation ;
  6. puis lance automatiquement le jeu.
Pour l'utilisateur, le résultat donne réellement l'impression de charger un jeu NES depuis un CD-ROM.


Une alimentation commune

Le lecteur CD nécessite naturellement davantage de puissance que ce que l'alimentation originale de la NES peut confortablement fournir.

Le prototype utilise donc une alimentation externe disposant des rails 5 V et 12 V nécessaires au lecteur CD-ROM.

Le 12 V est également abaissé aux environs de 9,5 V grâce à un convertisseur afin de pouvoir alimenter la NES.

Le NESCD et la console peuvent ainsi fonctionner à partir d'une seule alimentation.
Il reste néanmoins possible d'alimenter la NES avec son adaptateur d'origine.

Pourquoi ne pas tout faire passer par le port d'expansion ?

La question est intéressante car la NES dispose justement de son connecteur d'expansion sous la console.
Le développeur a étudié cette possibilité.
Mais sa bande passante est insuffisante pour remplacer efficacement la liaison USB utilisée avec l'EverDrive.
Le port d'expansion est donc principalement exploité ici pour l'intégration audio, domaine dans lequel il apporte justement un avantage important.

Quelques limitations

NESCD-001 reste un projet expérimental et plusieurs points peuvent encore évoluer.
Le retour automatique au menu EverDrive après le lancement d'un disque n'est par exemple pas totalement résolu.

Le développeur envisage notamment la possibilité de contrôler l'alimentation de la NES avec un relais afin de provoquer un véritable redémarrage de la console lorsque cela devient nécessaire.
Autre absence volontaire : le code permettant les démonstrations de type FMV montrées par le créateur n'est pas publié.
Une partie de ce travail reposait sur de la rétro-ingénierie autour du projet Bad Apple!! Ultimate NES Demake et de technologies développées pour Former Dawn. Throaty Mumbo a donc préféré ne pas redistribuer ce code tant que les auteurs concernés n'ont pas publié officiellement leurs propres travaux.

Un périphérique qui n'a jamais existé
Mais qui aurait presque pu sortir d'une autre ligne temporelle

Le NESCD-001 n'a évidemment pas vocation à réécrire l'histoire de Nintendo.
La Famicom avait déjà reçu au Japon une extension officielle destinée au stockage : le Famicom Disk System.
Mais NESCD explore une autre voie : celle d'une hypothétique NES équipée d'un média optique.
Et techniquement, le résultat est particulièrement intéressant.
Il réunit dans une même réalisation :
  • une console NES originale ;
  • un média optique ;
  • un microcontrôleur moderne RP2350B ;
  • un EverDrive N8 Pro ;
  • une interface IDE ;
  • un DAC audio ;
  • le port d'expansion de la NES ;
  • et du logiciel spécialement développé pour faire communiquer l'ensemble.
Plus de quatre décennies après la conception de la Famicom, voir une NES charger un programme depuis un véritable CD-ROM reste assez improbable.

Conclusion

NESCD-001 fait partie de ces projets qui mélangent rétro-ingénierie, développement embarqué et une bonne dose de "pourquoi pas ?".
Ce n'est pas simplement un lecteur CD posé à côté d'une NES pour l'apparence.
Le RP2350B pilote réellement le lecteur IDE, récupère les données présentes sur le disque, communique avec l'EverDrive N8 Pro et gère les demandes audio provenant du programme exécuté sur la console.
Le projet exploite même le port d'expansion de la NES pour réinjecter l'audio dans la console.
Et surtout, Throaty Mumbo ne s'est pas contenté de montrer un prototype fonctionnel : schémas, PCB, firmware, modèles 3D et outils sont disponibles publiquement.

Un projet totalement inutile ?
Donc totalement indispensable

Mais voir une Nintendo NES de 1985 charger son jeu depuis un véritable CD-ROM IDE est précisément le genre de détournement hardware que nous aimons voir apparaître plus de 40 ans après la conception de la machine. ;)

Liens

GitHub NESCD-001 :
https://github.com/ThroatyMumbo/NESCD

Vidéo de présentation de Throaty Mumbo :
Creating an NES CD Add-on

Article Hackaday :
Giving The NES An Optical Data Storage Add-On

Source et conception : Throaty Mumbo – NESCD-001
Licence du projet : MIT
Image
Delta Store - Modchip - Mods - Tools - Modification pour vos consoles de jeux video
Delta island - Jeux Vidéo - Retro-Ingénierie - Développement Hardware & Software
Avatar du membre
Bouz
Expert Technique
Expert Technique
Messages : 1648
Enregistré le : mer. 22 déc. 2021 18:52
Localisation : Hérault
Pays : 🇫🇷 FR
Contact :

Re: INFO - NES - Lecteur CD pour console NES 💿 - Everdrive N8 Pro

Message par Bouz »

La conclusion a tout dit :)
Avatar du membre
Tatsupicchu
Delta User Lv4
Delta User Lv4
Messages : 326
Enregistré le : ven. 29 déc. 2023 23:38
Pays : 🇫🇷 FR

Re: INFO - NES - Lecteur CD pour console NES 💿 - Everdrive N8 Pro

Message par Tatsupicchu »

Alors ça c'est complètement dingue , ça ouvre tellement de perspectives 😍😍😍😍
Avatar du membre
Kenedarbz
Référent Technique
Référent Technique
Messages : 185
Enregistré le : mar. 20 sept. 2022 21:26
Localisation : Drome (26)
Pays : 🇫🇷 FR

Re: INFO - NES - Lecteur CD pour console NES 💿 - Everdrive N8 Pro

Message par Kenedarbz »

Excellent, dommage pas de version Twin Famicom ::d
Avatar du membre
Xrider
Administrateur
Administrateur
Messages : 5673
Enregistré le : sam. 14 sept. 2019 10:47
Localisation : MaskRom
Pays : 🇫🇷 FR
Contact :

Re: INFO - NES - Lecteur CD pour console NES 💿 - Everdrive N8 Pro

Message par Xrider »

Bouz a écrit : lun. 31 août 2026 21:09 La conclusion a tout dit :)

Je savais que ça allait te plaire ;)

Un projet totalement inutile ?
Donc totalement indispensable
Kenedarbz a écrit : lun. 31 août 2026 21:14 Excellent, dommage pas de version Twin Famicom ::d
C’est juste une adaptation à réaliser, rien de bien méchant ;)
Delta Store - Modchip - Mods - Tools - Modification pour vos consoles de jeux video
Delta island - Jeux Vidéo - Retro-Ingénierie - Développement Hardware & Software
Avatar du membre
Tatsupicchu
Delta User Lv4
Delta User Lv4
Messages : 326
Enregistré le : ven. 29 déc. 2023 23:38
Pays : 🇫🇷 FR

Re: INFO - NES - Lecteur CD pour console NES 💿 - Everdrive N8 Pro

Message par Tatsupicchu »

Image

Ce genre de possibilités, je pense que je vais m'amuser a refaire les ost de pas mal de jeux , en plus des jeux megadrive :D

Et ça ouvre des perspectives de dingues pour la scène homebrew :D[
Répondre

Retourner vers « Nintendo - Nes / Famicom / Famicom Disk System »