thomas@hammoudi:~/dev$

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.

  • activité: Pour le plaisir
  • état: prototype
  • mode: comment ça marche
  • mis à jour:
L'accueil d'ES-DE : trois rangées de cinq jeux
L'accueil d'ES-DE : trois rangées de cinq jeux

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.

L’accueil d’ES-DE : trois rangées de cinq jeux

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.

Le menu de la DS Lite, skin vert, simulé à partir des fichiers du skin

Qui fait quoi

Qui fait quoi, en un schémaconsole-retro/schema.svg
Console rétro : qui fait quoiLes jeux et leurs sauvegardes alimentent ES-DE, le menu à la manette, qui lance l'émulateur de chaque console. À la fin d'une partie, un script note le temps de jeu, l'accueil refait ses rangées et relance ES-DE. Une vraie DS Lite synchronise ses sauvegardes avec celles de l'émulateur. $ fonctionnement --console-retro 7 briques · 1 boucle JEUX ET SAUVEGARDES Vos cartouches, vos disques, leurs BIOS, et les sauvegardes partagées entre les Mac. ES-DE Le menu, à la manette. Accueil maison : derniers joués, plus joués, favoris. ÉMULATEURS RetroArch et ses cœurs, PCSX2, Dolphin : 15 systèmes, un émulateur chacun. MANETTE Une manette de type PlayStation. PS + Share quitte le jeu, partout. DS LITE La vraie console : un script synchronise ses sauvegardes avec celles de l'émulateur. ACCUEIL Refait les trois rangées de jeux, puis relance ES-DE. SCRIPTS DE PARTIE Notent le début et la fin de chaque partie : le temps de jeu. catalogue lance boutons fin de partie temps de jeu relance saves
Console rétro : qui fait quoiLes jeux et leurs sauvegardes alimentent ES-DE, le menu à la manette, qui lance l'émulateur de chaque console. À la fin d'une partie, un script note le temps de jeu, l'accueil refait ses rangées et relance ES-DE. Une vraie DS Lite synchronise ses sauvegardes avec celles de l'émulateur. $ fonctionnement --console-retro JEUX ET SAUVEGARDES Vos cartouches, vos disques, leurs BIOS, et les sauvegardes partagées entre les Mac. ES-DE Le menu, à la manette. Accueil maison : derniers joués, plus joués, favoris. ÉMULATEURS RetroArch et ses cœurs, PCSX2, Dolphin : 15 systèmes, un émulateur chacun. SCRIPTS DE PARTIE Notent le début et la fin de chaque partie : le temps de jeu. ACCUEIL Refait les trois rangées de jeux, puis relance ES-DE. MANETTE Une manette de type PlayStation. PS + Share quitte le jeu, partout. DS LITE La vraie console : un script synchronise ses sauvegardes avec celles de l'émulateur. catalogue lance fin de partie temps de jeu
le schéma en texte
  • 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.

Le carrousel des consoles, avec l’accueil en tête

Ce qui se reprend

La méthode se reprend sans mon code : 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.

tous les projets