










Intro : pourquoi ce projet
Je n’ai pas la place d’avoir un écran cathodique dans mon salon. Pourtant, j’aime la NES d’origine : le rendu Péritel, le clic des boutons, l’insertion de la cartouche. En même temps, sur la TV du salon, Recalbox est pratique : sauvegardes, scanlines en option, bibliothèque de jeux. Au lieu de choisir, j’ai voulu les deux dans la même NES : une vraie NES sur Péritel quand je veux le rendu d’époque, et une version Recalbox pour le salon, sans changer de boîtier ni ajouter de switch visible. Ce post décrit la première étape : réutiliser les boutons Power et Reset pour basculer entre les deux mondes.
L’idée générale
L’objectif est simple : une seule console, deux modes. Soit la NES d’origine (carte mère alimentée, image Péritel), soit le Raspberry Pi (Recalbox sur la TV). On ne les alimente pas en même temps, pour éviter les conflits avec les manettes et l’électronique. Tout se fait avec les boutons d’origine : Power et Reset. Aucun bouton supplémentaire, pas de switch caché : le mode est déterminé par l’état du bouton Power.
Comportement des boutons
Quand la NES est allumée (bouton Power ON) :
- La NES fonctionne comme à l’origine. Le bouton Power allume la console, le bouton Reset reset le jeu. Le Raspberry Pi est ignoré — il ne reçoit aucun signal, on joue à la vraie NES.
Quand la NES est éteinte (bouton Power OFF) :
- Le bouton Reset ne touche plus à la NES. Il sert à piloter le Pi : un appui démarre le Pi s’il est éteint (impulsion sur la broche RUN), ou déclenche un arrêt propre s’il est déjà allumé (signal sur le GPIO shutdown). Même geste qu’à l’époque, mais pour allumer ou éteindre l’émulateur.
Pour que ce soit cohérent, quand le Pi s’allume, la LED rouge d’origine de la NES s’allume aussi, pilotée par un GPIO du Pi. Côté manettes : en mode Pi, je passe par les GPIO du Pi et le driver gamecon dans Recalbox, pas par les connecteurs NES, pour éviter les conflits.
Comment ça marche techniquement
La bascule entre les deux modes est gérée par un ESP32-C3 Mini, petit et peu gourmand. Il reste toujours alimenté (en 5 V, comme le Pi) et fait l’interface entre la NES et le Pi.
Détection du mode NES allumée / éteinte
L’ESP32 lit une ligne « 5 V NES » : le 5 V qui n’existe qu’après le bouton Power de la NES. S’il y a du 5 V → la NES est allumée → l’ESP32 ne pilote rien côté Pi (sorties RUN et shutdown inactives). S’il n’y a plus de 5 V → la NES est éteinte → le bouton Reset est écouté pour le Pi.
Quand la NES est éteinte et qu’on appuie sur Reset
L’ESP32 envoie une impulsion courte (environ 200 ms) sur la broche RUN du Pi : ça le démarre s’il était éteint. En parallèle, il met à la masse le GPIO de shutdown du Pi (par ex. GPIO 17). Recalbox est configuré avec l’overlay gpio-shutdown sur ce GPIO : quand il voit le signal à 0 V, il lance un arrêt propre. Donc un seul appui sur Reset peut soit démarrer le Pi, soit l’éteindre proprement, selon son état.
Alimentation
Le Pi et l’ESP32 sont alimentés en 5 V en permanence (régulation depuis le 12 V de l’alim NES). Le Pi ne coupe pas l’alim : il fait un shutdown logiciel ; c’est l’ESP32 qui, en tirant RUN ou le GPIO shutdown, déclenche le démarrage ou l’arrêt. Pas de coupure de courant brut, donc pas de corruption de carte SD.
Matériel utilisé
- Une NES d’origine avec ses boutons Power et Reset et sa connectique Péritel.
- Un ESP32-C3 Mini pour la logique Power / Reset → RUN et shutdown.
- Un Raspberry Pi Zero 2 W avec Recalbox.
- Alimentation : 12 V pris sur l’alim NES, régulé en 5 V pour alimenter l’ESP32 et le Pi en continu.
Le câblage consiste à prélever le 5 V après le Power, à brancher le bouton Reset sur une entrée de l’ESP32 (l’autre contact du bouton à la masse), et à relier deux sorties de l’ESP32 au Pi : une sur RUN, une sur le GPIO shutdown (ex. GPIO 17).
Où en est le projet
Pour l’instant, l’alimentation 12 V → 5 V est en place, Recalbox tourne sur le Pi, et le code sur l’ESP32 gère la logique Reset ↔ RUN / shutdown.
Les prochains billets détailleront le câblage (NES, ESP32, Pi), la config Recalbox (gpio-shutdown, gamecon), le pilotage de la LED, et éventuellement d’autres améliorations.
Une idée pour plus tard : intégrer des puces NFC dans les vraies cartouches NES. Un lecteur NFC côté Pi (ou dans le slot cartouche) lirait le tag de la cartouche insérée et lancerait automatiquement le bon jeu sur Recalbox. Insérer la vraie cartouche pour lancer la version émulée du même jeu — ce serait vraiment sympa.