Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

WorkBoy - Le PDA fantôme de la Game Boy

En 1992, Eddie Gil de la boîte anglaise Source R&D et Frank Ballouz de Fabtek s'étaient mis en tête d'une chose : transformer la Game Boy en PDA. La console à pile AA de Nintendo avec son écran vert pissette devait, dans leurs rêves les plus fous, devenir l'agenda électronique des cadres dynamiques. Le projet s'appelait WorkBoy, et il a même été présenté au CES en 1992, puis... plus rien.

Évaporé durant 28 ans.

Jusqu'à ce qu'en 2020, Liam Robertson, le mec derrière DidYouKnowGaming , retrouve un prototype fonctionnel chez Frank Ballouz lui-même. Ballouz l'avait sur son étagère depuis trois décennies. Quand Robertson l'a contacté, il lui a lâché tranquillou : "Oh yeah, j'ai le WorkBoy derrière moi" et après 7 mois de relances, le proto est finalement arrivé dans les mains de Robertson pour être testé en vidéo :

Le WorkBoy, c'est un clavier QWERTY plus gros que la Game Boy elle-même, avec une cartouche dédiée qui se branche dans l'emplacement où d'ordinaire, on met les jeux. Et à l'intérieur du clavier, il y a une horloge, de la mémoire interne (la Game Boy n'en avait pas, c'était LE problème majeur de l'époque), ainsi que tout un OS de bureautique de poche.

Et au menu des fonctionnalités, on avait donc le droit à un calendrier, un répertoire téléphonique, un convertisseur d'unités (parce qu'en 1992 vous saviez jamais quand ce serait le moment de convertir des pieds en mètres en pleine réunion), une calculatrice, et même un traducteur multilingue.

Mais le clou du spectacle, c'est la carte du monde qui jouait... les hymnes nationaux en 8-bit ! Voilà, je crois que là, tout est dit ! Vous cliquez sur la France, et hop vous avez la Marseillaise version Tetris. Vous cliquez sur l'URSS, vous avez l'Internationale en mode bip-bip. C'était fou pour l'époque !!

Eddie Gil avait passé des années à peaufiner ce truc, et Ballouz utilisait son carnet d'adresses Nintendo (il avait été cadre chez Nintendo Of America du temps des bornes d'arcade) pour pousser le projet en interne. Le lancement était alors prévu pour décembre 1992... l'usine était prête et la certification quasi bouclée.

Et puis Nintendo a annoncé qu'ils allaient faire baisser le prix de la Game Boy !! C'était la cata car d'un coup, l'accessoire WorkBoy, à 90 dollars environ, devenait plus cher que la console qu'il était censé compléter !

Ballouz a refait ses calculs, a fait la grimace, et a annulé la production quelques mois avant le CES. Game over pour le projet. Et voilà comment pendant trois décennies, le seul souvenir tangible du projet, c'était quelques photos floues et une marque déposée.

Mais le truc cool suite à cette redécouverte, c'est que Robertson a aussi mis la main sur le code source du WorkBoy via le fameux Nintendo Gigaleak de 2020 (c'était une fuite massive des serveurs Nintendo qui a balancé pelle-mêle des ROMs prototypes, du code source, des trucs internes...).

Un anonyme sur Twitter lui a alors signalé qu'on pouvait choper la ROM en ligne. Robertson était mal à l'aise avec la source car c'était du code volé, mais bon, il a fini par graver le binaire sur une cartouche et réussi à faire tourner le proto.

Et là, surprise : le truc a fonctionné nickel. "C'est plus rapide que mon ancien smartphone", a balancé Robertson. Faut dire qu'en 1992, avoir une UI réactive sur un écran 160×144 pixels en 4 nuances de vert, c'était de l'orfèvrerie. À l'époque, les développeurs savaient optimiser leur code au cycle CPU près, et ça se voyait...

Par contre, le WorkBoy nécessitait obligatoirement le hardware physique pour fonctionner correctement car l'horloge et la mémoire interne sont dans le clavier et pas dans la cartouche. Du coup, l'émulation pure ne suffisait pas. C'est probablement pour ça qu'on n'en avait jamais entendu parler avant que Ballouz daigne sortir le sien du grenier.

Ce WorkBoy disparu était l'incarnation parfaite de cette ère charnière où on cherchait à entasser de la productivité dans tout ce qui avait un microprocesseur. Comme quoi, bien avant le PalmPilot (1996), dans la foulée du Psion 3 (sorti un an plus tôt), Nintendo et ses partenaires avaient donc déjà flairé le truc.

Source

GB Recompiled - Vos ROMs Game Boy traduites en C natif

La recompilation statique , je vous en avais parlé avec Zelda 64 et Sonic Unleashed. Le principe, en gros c'est qu'au lieu d'émuler bêtement le processeur et la mémoire d'origine, on traduit tout simplement le code assembleur du jeu directement en C natif. Du coup le jeu tourne nativement sur votre machine, sans couche d'émulation.

Et la bonne nouvelle du jour c'est que cette technique vient de parvenir jusqu'à la Game Boy avec GB Recompiled .

Vous filez à cet outil un fichier .gb et il vous sort OKLM un dossier avec du code C, un CMakeLists.txt et tout ce qu'il faut pour le compiler. Vous lancez cmake puis ninja, et votre vieux Pokemon Bleu tourne nativement sur votre PC plutôt que de passer par un émulateur qui simule le processeur Z80 à chaque frame.

Plutôt chouette non ???

Pour réussir ce tour de force, le recompilateur parse les opcodes Z80 de la cartouche, construit un graphe de contrôle de flux et résout les sauts indirects (genre les tables de jump, le truc qui rend la décompilation galère parce que l'adresse de destination dépend de la valeur d'un registre). Le taux de découverte dépasse alors les 98% même sur des RPGs bien touffus... pas mal pour de l'analyse purement statique !

Côté compatibilité, 7 jeux sont pour le moment validés : Tetris, Pokemon Blue, Donkey Kong Land, Kirby's Dream Land, Zelda Link's Awakening, Castlevania et Super Mario Land.

Par contre, attention, tous les jeux ne passent pas encore. Le runtime embarque un rendu PPU scanline , un système audio 4 canaux et les contrôleurs mémoire MBC1, MBC2, MBC3 et MBC5. Et comme tout ça tourne avec SDL2, du coup ça compile tranquillou sur macOS, Linux et Windows sans broncher !

Y'a aussi des outils de vérification assez bien pensés. Par exemple, un mode différentiel lance le binaire recompilé et un interpréteur Z80 côte à côte, puis compare l'exécution cycle par cycle avec une implémentation de référence. Tant que ça colle, le portage est fidèle !

Et y'a aussi un script Python basé sur PyBoy qui génère des traces d'exécution pour repérer les instructions que l'analyse statique aurait loupées. Voilà, ce que je veux vous dire c'est que c'est pas juste un traducteur tout bête. Y'a vraiment tout un pipeline de tests derrière pour assurer le meilleur portage possible.

Si vous avez suivi les autres projets autour de la portable de Nintendo, comme le GB Interceptor qui espionne le bus mémoire avec un adaptateur USB ou le Game Bub et son FPGA Xilinx, GB Recompiled choisit plutôt l'angle purement logiciel. Là où le FPGA reproduit les circuits et l'émulateur simule le CPU, la recompilation traduit le code source. Ce sont 3 philosophies différentes mais qui ont un seul et même objectif : Faire en sorte que ces jeux ne crèvent pas avec leurs cartouches en plastique gris.

Pour tester chez vous, c'est du classique : un petit terminal, un petit git clone, un cmake, un ninja, et vous passez votre fichier .gb au recompilateur.

git clone https://github.com/arcanite24/gb-recompiled.git
cd gb-recompiled
cmake -G Ninja -B build .
ninja -C build

# Générer le code C depuis la ROM
./build/bin/gbrecomp path/to/game.gb -o output/game

# Compiler la nouvelle version en C
cmake -G Ninja -S output/game -B output/game/build
ninja -C output/game/build

# Optionnel: Baisser ou augmenter le niveau d'optimisation
cmake -S output/game -B output/game/build -DGBRECOMP_GENERATED_OPT_LEVEL=2

# Et on lance !
./output/game/build/game

Voilà comment avec juste quelques commandes, votre bonne vieille cartouche GB peut enfin tourner nativement sur votre laptop. Notez que le support Game Boy Color est dans les tuyaux, ainsi qu'un build Android.

Le projet est franchement actif et ça sent très bon pour la suite !

Quand le set LEGO Game Boy prend vie

J’espère que votre semaine se passe bien. Moi c’est la course comme d’hab… Mais je viens de tomber sur un truc que j’ai trouvé super cool et je ne résiste pas à l’envie de partager ça avec vous. Vous avez vu le nouveau set LEGO Game Boy officiel (lien affilié) qui vient de sortir ? 421 pièces, une soixantaines d’euros, une réplique à l’échelle 1:1 avec des cartouches Link’s Awakening et Super Mario Land faits de briques… C’est joli, c’est nostalgique, mais ça ne fait strictement rien. C’est juste décoratif.

Et bien selon The Verge , une moddeuse australienne du nom de Natalie the Nerd a trouvé ça carrément abusé, alors elle a fait ce que ferait n’importe quel geek qui se respecte : elle l’a transformé en vraie console Game Boy fonctionnelle. Et attention, je ne vous parle pas d’un vulgaire Raspberry Pi Zero planqué dedans avec un émulateur. Non, non, non, elle y a mis des vrais morceaux de Game Boy, avec de VRAIES cartouches qui tournent, ainsi qu’un circuit imprimé qu’elle a conçu elle-même.

Bah oui, pourquoi faire simple quand on peut faire compliqué ?

Pour arriver à ses fins, elle a dû miniaturiser toute la logique d’une Game Boy sur un PCB de la taille d’un timbre-poste. Elle a installé l’écran le plus petit du marché (ce qui l’a obligée à retirer quelques briques LEGO au passage), passé un port USB-C pour l’alimentation, et même prévu des boutons totalement fonctionnels.

D’ailleurs, en août dernier, Natalie avait fait aussi le buzz avec une Game Boy Color entièrement transparente , circuit imprimé inclus. Elle a conçu un PCB en matériau acrylique transparent où on voit tous les fils de cuivre flotter dans le vide. Super beau, super technique, mais elle-même disait que c’était juste un projet artistique pour montrer son travail, et pas quelque chose de très pratique.

Elle a même fondé le Modded Gameboy Club , une communauté avec un Discord et un Wiki où les gens partagent leurs tutos pour réparer, modifier, upgrader leurs vieilles consoles Nintendo. Elle vend aussi des composants de seconde main pour les modders et partage ses designs de circuits en open source.

Et bonne nouvelle pour ceux qui voudraient reproduire sa version fonctionnelle de la LEGO Game Boy puisqu’elle a annoncé qu’elle publierait les schémas et les plans une fois qu’elle serait satisfaite du résultat final. Donc si vous avez des compétences en soudure et que l’idée de fabriquer un PCB custom ne vous fait pas peur, vous pourrez bientôt tenter l’aventure.

En tout cas, moi je trouve ça trop super méga génial !

Comment modder une Game Boy avec du matos basique de chez basique

Quand j’étais jeune, j’ai eu la chance d’avoir une Game Boy originale et au fil des années, j’avais accumulé pas mal de jeux. Malheureusement un jour, un membre malfaisant de ma famille a quasiment tout volé pour les revendre à je ne sais qui, mais j’ai quand même réussi à sauver ma GB d’origine et surtout Tetris qui est, encore aujourd’hui, mon jeu préféré.

Je n’y joue pas souvent, mais je sais que si un jour elle tombe en panne, grâce à ce projet, je pourrais la réparer sans souci et même avoir de nouvelles fonctionnalités super cools. D’ailleurs qui n’a jamais rêvé de pimper sa bonne vieille Game Boy tout en conservant son look d’origine indémodable ?

❌