/home/etienne-larroumets/Sega Game Gear RecalBox:~#

Sega Game Gear RecalBox/

Image de Sega Game Gear RecalBox

Présentation

Le but de ce projet était de recycler une vieille Sega GameGear de 1990 dont la carte mère était HS.

Pour cela, j'ai utilisé un Raspberry Pi Zero W sur lequel j'ai installé l'OS RecalBox. L'avantage de ce modèle de Raspberry est sa petite taille (à peine quelques centimètres de long), ce qui permet de le loger facilement et discrètement dans la GameGear.

RecalBox est un OS dédié au rétrogaming. Il permet de faire fonctionner des émulateurs de consoles de jeux vidéo anciennes (Nintendo GameBoy, Atari Lynx, Sega Master System, Sharp X68000, etc.).

Matériel

Cette console fonctionne avec :

Technique

Le principe global de cette machine est simple:

L'écran LCD est relié au Raspberry via une prise mini-HDMI.
La pile alimente le Raspberry par l'intermédiaire d'un convertisseur de tension DC/DC.
Un interrupteur permet de couper la liaison entre le convertisseur et le Raspberry.
Un BMS permet de gérer la charge de la batterie qui s'effectue via un connecteur mini-USB.
Le Raspberry reçoit sur ses entrées les signaux des boutons de la console via une simple mise à la masse (la carte mère d'origine a été découpée pour récupérer l'électronique des boutons d'origine).
Le fichier de configuration de Recalbox est adapté afin de prendre en compte les boutons et la résolution de l'écran.
Des scripts supplémentaires sont intégrés à RecalBox pour la prise en charge de la pile, de la luminosité de l'écran et l'extinction sécurisée du système.

Gestion de la tension batterie

Alimentation de la GameGear Recalbox
La gestion de l'alimentation de la GameGear Recalbox

La pile au lithium fonctionne dans une plage de tension comprise entre 3.2V et 4.2V. Le choix de 3.2V est volontaire, il permet de garder une marge de sécurité (certains n'hésitent pas à faire descendre les piles sous les 2.5V mais cela diminue la durée de vie de la batterie et pose des problèmes de sécurité).

J'ai donc dû récupérer la tension brute de la pile via le convertisseur ads1015 puis créer un script Python permettant de faire clignoter la LED d'alimentation afin d'avertir l'utilisateur que la pile arrive à sa tension de seuil critique. Si l'utilisateur insiste et que la tension passe sous les 3V, le script déclenche la procédure d'extinction automatique de la console.

Le système principal de la GameGear Recalbox
Le système principal de la GameGear Recalbox

Gestion de la luminosité

Dans son état d'origine, la GameGear possède une molette de réglage permettant de faire varier le contraste de l'écran. L'écran MPI3508 quant à lui, possède un bouton poussoir permettant de faire varier la luminosité incrémentalement. Quand le niveau de luminosité maximum est atteint, un appui supplémentaire permet de revenir au niveau minimum.

Là encore, on se sert du convertisseur ads1015 pour récupérer la tension du potentiomètre d'origine, que l'on aura alimenté en 5V au préalable. Cette tension est convertie en signal numérique puis envoyée par protocole I2C au Raspberry. Un script Python, récupère les valeurs, les mappe, puis vient piloter une sortie du Raspberry afin de mettre à la masse le bouton poussoir de l'écran LCD afin d'incrémenter sa luminosité en fonction des variations du potentiomètre.

Extinction de la console

Étant donné que le Raspberry fonctionne comme un micro-ordinateur, il a fallu créer un script, toujours en Python, permettant d'éteindre la console en toute sécurité. Par défaut, il est possible d'éteindre le système en passant par le menu Recalbox, mais cela implique de sortir du jeu, de revenir à l'écran principal, d'ouvrir le menu, etc... Le script automatisant cette procédure se déclenche par l'appui simultané des boutons START + BOUT1 + BAS.

Alimentation de la GameGear Recalbox
Super Mario Bros sur GameBoy mais sur ...GameGear!

Scripts

Vous pouvez retrouver tous les scripts et fichiers de configuration sur le dépôt GitHub du projet : https://github.com/slan012/GameGear-Zero