cat ~/projets/console-retro/README.md
Console rétro sur le Mac
Mon Mac transformé en console de jeux : un menu à la manette, un accueil qui retrouve mes jeux préférés, et une vraie DS Lite qui partage ses sauvegardes avec lui.
Le problème
J’ai grandi avec des cartouches et des disques. Je voulais les rejouer sans fouiller dans un tiroir, ni jongler entre dix applications qui ne se ressemblent pas. Une seule porte d’entrée, une manette, et retrouver « mes petits jeux » en deux secondes.
Ce que ça fait
Je n’ouvre qu’une chose : ES-DE, un menu fait pour la manette. Il s’ouvre sur un accueil que j’ai fabriqué : une rangée de mes derniers jeux, une rangée des plus joués, une rangée de favoris, toutes consoles confondues. Je choisis, le bon émulateur démarre avec le bon jeu. Un appui sur PS + Share et je reviens au menu, quel que soit l’émulateur.
Une quinzaine de systèmes tournent ainsi : Super Nintendo, Game Boy en trois versions, Nintendo 64, Mega Drive et Mega-CD, Saturn, Dreamcast, PlayStation 1 et 2, GameCube, Wii, Nintendo DS. Même un jeu PC de 1997 a son appli.

Comment ça marche
ES-DE n’affiche qu’une rangée navigable par écran. L’accueil est donc une fausse console : ses quinze emplacements sont de petits fichiers qui pointent vers les vrais jeux. À chaque partie, deux petits scripts notent l’heure de début et de fin. Le classement des plus joués se calcule sur ce temps de jeu, et l’accueil refait ses rangées avant de relancer ES-DE.
Derrière, chaque console a un seul émulateur, celui qui a passé ma recette : RetroArch et ses cœurs pour la plupart, PCSX2 pour la PlayStation 2, Dolphin pour GameCube et Wii. Cette recette lance chaque jeu comme le menu le ferait, puis contrôle sur l’écran qu’il y a bien une image, qu’elle est bien cadrée et que le jeu tourne à la bonne vitesse.
La vraie DS Lite, elle, garde ses jeux sur une carte mémoire. Dès que je branche sa carte mémoire au Mac, un script copie ses sauvegardes vers celles de l’émulateur, ou l’inverse, selon le côté où j’ai joué en dernier. Si les deux ont bougé, il ne choisit pas à ma place : rien n’est écrasé, et chaque ancienne sauvegarde est gardée. Le menu de la console est habillé d’un skin vert de style terminal.

Qui fait quoi
- ES-DE : le menu, à la manette, avec les jaquettes et les fiches de chaque jeu.
- L’accueil : un script qui refait les trois rangées de cinq jeux et relance ES-DE.
- RetroArch, PCSX2, Dolphin : les émulateurs, un par console.
- Les scripts de partie : notent le temps de jeu qui sert au classement.
- La recette : vérifie image, cadrage, vitesse et manette pour chaque jeu.
- Le script de la carte DS : sauvegarde la carte et synchronise les parties.
- L’installateur : remonte toute la chaîne sur un autre Mac, d’un seul geste.

Ce que vous pouvez récupérer
Rien de public pour l’instant : la chaîne est prototypée chez moi, sur un Mac, et le deuxième est à venir. L’idée, elle, se reprend telle quelle : ES-DE comme porte unique, une seule recette par console, un accueil fait de collections. Les jeux et les BIOS sont à fournir soi-même, à partir de ses propres cartouches et disques.
Ce que j'en retiens
Le plus long n’était pas de faire tourner un jeu, mais de rendre tout ça tranquille : un seul émulateur par console, des réglages qui se rejouent d’un Mac à l’autre, et une manette qui quitte proprement. Un détail aura tout changé : écrire une recette qui joue chaque jeu avant de me dire que ça marche.