Vue lecture

Dolphin - Le Game Boy Player émulé, et c'était pas une blague

Les développeurs de Dolphin viennent de mettre un point final à un truc qu'ils se traînaient depuis 16 ans : leur émulateur GameCube et Wii sait maintenant émuler le Game Boy Player.

Pour tester ça, faut charger une ROM Game Boy via le réglage "Game Boy Player ROM" planqué dans les paramètres GameCube de Dolphin, puis vous lancez le Start-Up disc officiel du Game Boy Player ou le homebrew Game Boy Interface, et c'est parti ! L'émulateur attache alors automatiquement le matériel quand il le faut. Annoncée sous forme de blague le 1er avril, cette version est enfin dispo depuis le 25 juin pour Windows, macOS, Linux et Android.

Maintenant pour ceux qui débarquent et qui ne sont pas très au fait de l'univers de la GameCube, le Game Boy Player c'était un petit boîtier qu'on clipsait sous la GameCube pour jouer à ses cartouches Game Boy Advance sur la télé. En gros c'est une Game Boy sans écran quoi, et ça envoyait l'image et le son à la console et récupérait les inputs de la manette. Nintendo avait même choisi d'y coller une vraie puce GBA plutôt que de coder un émulateur, parce qu'émuler proprement une GBA à l'époque, c'était mission quasi impossible.

Et comme supporter le Game Boy Player, ça voulait dire émuler une GBA entière en plus de sa communication avec la GameCube, bah c'est pour ça que ça a pris quelques années. Personne ne voulait se taper ce chantier monstrueux, que l'équipe appelle elle-même "une curiosité". Puis il y a environ cinq ans, quand mGBA a été intégré à Dolphin pour gérer les jeux GameCube qui causaient avec une GBA, d'un coup, la brique manquante était là !! Endrift, le dev du projet s'est alors lancé sur une implémentation... avant que le projet ne s'endorme et tombe dans l'oubli.

Et ça c'était jusqu'à fin mars, où Billiard, l'un des autres mainteneurs du projet, est retombé sur le code quasi terminé de son précédent collègue et a eu comme idée tordue de le finir pour le sortir le 1er avril.

Quelques jours de rush plus tard (pull request, review, test, merge, wesh tu connais), le support a fini par arriver quelques heures après minuit le jour J. L'équipe a alors posté une image énigmatique sur ses réseaux sans aucune explication, et a regardé la confusion des gens virer à l'excitation. Sauf que dans la foulée, un autre gars nommé extrems (une encyclopédie vivante de la GameCube et l'auteur de Game Boy Interface) a déboulé dans le chat des devs parce qu'il a tout de suite repéré ce que tout le monde avait loupé : un son strident à vous percer les tympans.

Le bug était passé sous le radar parce que les tests avaient été faits sur le Start-Up disc officiel, qui filtre et écrase tellement l'audio que ça sonnait juste un peu pâteux. Ils ont dû corriger vite, et c'est désormais propre.

Après Dolphin c'est pas vraiment un émulateur Game Boy. Il émule la GameCube, la Wii et la Triforce et ce support GB reste un peu en marge, comme une curiosité. C'est pas la meilleure façon de relancer vos jeux Game Boy et pour ça, les émulateurs dédiés font franchement mieux.

Et tant qu'à faire, cette version 2606 rend aussi enfin jouable The Key of Avalon (le dernier jeu Triforce qui résistait encore), corrige un vieux bug graphique en haute résolution qui traînait depuis la nuit des temps, et apporte enfin les RetroAchievements sur les jeux Wii. En tout cas, ça reste le même bon vieux Dolphin avec lequel un dev a réussi à faire parler Animal Crossing avec une IA en hackant la RAM émulée, si vous aviez loupé ce délire.

Voilà... 16 ans d'attente, un poisson d'avril foireux, et le plus vieux ticket du projet enfin refermé ! Bravo la team Dolphin !

À télécharger sur le site officiel .

Source

  •  

ANES - Il greffe une seconde puce graphique dans sa NES

Decrazyo vient de sortir ANES , un mod hardware qui transforme votre vieille NES en lui collant un deuxième PPU, la puce graphique de la console.

Résultat, plus de couleurs à l'écran, plus de sprites, et même du parallax scrolling, ces décors qui défilent sur plusieurs plans comme sur les bornes d'arcade. Que des trucs que la petite Nintendo de 1985 n'a jamais su faire, la miskine.

Le hic, c'est qu'il vous faut deux NES pour ça. Une qu'on garde, et une qu'on démonte pour lui piquer son PPU (le fameux RP2C02) pour ensuite le greffer sur la première via une carte maison bardée de logique. Ensuite (et attention, ça devient technique), un démultiplexeur 74LS139 aiguille le processeur vers l'un ou l'autre PPU selon l'adresse mémoire, un latch 74LS373 verrouille les signaux, et 8 Ko de RAM statique dédiée alimentent le second PPU.

En gros, le CPU jongle entre deux cartes graphiques au lieu d'une. C'est tout ce que vous devez savoir.

Pour comprendre pourquoi c'est énorme comme news, faut bien se rappeler les limites de la bestiole. La NES affiche 25 couleurs à l'écran maximum, piochées dans une palette de 64. Et elle ne dessine que 8 sprites par ligne horizontale, d'où le clignotement légendaire des persos quand ça se bouscule (les vétérans de Mega Man voient de quoi je parle). Alors qu'avec deux PPU qui bossent en parallèle, vous doublez le budget graphique d'un coup.

Decrazyo est le premier à reconnaître que personne ne va se lancer là-dedans parce que c'est bien relou à faire. Faut déjà sacrifier deux consoles, sortir le fer à souder, dessouder des puces et se taper du wire-wrap sur une carte prototype. On est dans de la bidouille de l'extrême, celle qu'on fait pour la beauté du geste .

Sauf que, bonne nouvelle les amis, vous allez pouvoir goûter au résultat sans flinguer la moindre console puisque decrazyo a forké l'émulateur Mesen2 pour simuler le double PPU. C'est dispo en build "Dual PPU Mesen 2.1.1" sur Windows, Linux et macOS, Intel comme Apple Silicon. Vous chargez la démo, et vous voyez de vos yeux ce que donnerait une NES dopée.

Ça me rappelle vraiment pourquoi j'adore toujours la scène homebrew NES , 40 ans après. Ces gens sans amis, ni famille (je plaisante, humour, humour, pas taper !) qui continuent de tordre ce hardware dans tous les sens juste pour voir jusqu'où il peut aller, c'est fou ! Les schémas KiCad et le code sont sur le GitHub de Decrazyo , sous licence GPL, si vous voulez fouiller.

  •  

New 3D Golf - Il greffe du Virtual Boy dans une Mega Drive

Matt Sephton, alias gingerbeardman, a passé une nuit d'avril à arracher un parcours de golf des entrailles d'un vieux jeu, et il en est ressorti avec une idée bien plus tordue. Vous connaissez New 3D Golf Simulation, la série de T&E Soft qui tournait sur PC-9801 dès 1989 ?

La Mega Drive en avait déjà eu quatre épisodes japonais à l'époque. Sauf que Matt a trouvé le moyen d'y faire entrer des parcours qui n'y avaient jamais mis les pieds puisqu'il a reverse-engineeré le format des données de terrain du jeu. Une fois ce format compris, vous ne lisez donc plus une cartouche, vous lisez une carte. Il a ensuite balancé tout ça dans un visualiseur Three.js dans son navigateur, et en une semaine son petit bricolage ressemblait déjà à un vrai jeu de golf 3D jouable.

À partir de là, il a pu extraire trois parcours nés ailleurs et les patcher direct dans la ROM Mega Drive. T&E Selection et Eight Lakes étaient planqués sur des disquettes additionnelles du PC-9801, et Papillon C.C. dormait carrément dans T&E Virtual Golf sorti sur le Virtual Boy de Nintendo. Des parcours Virtual Boy qui tournent sur Mega Drive, c'est pas quelque chose que j'aurais pensé voir un jour, j'avoue.

Et surtout, côté technique, c'est une jolie leçon de débrouille ambiance années 80 car la Mega Drive n'a pas de depth buffer pour gérer quel polygone passe devant quel autre. Du coup l'ordre de dessin est gravé à l'avance dans les données du parcours, du fond vers l'avant (le bon vieil algorithme des peintres ^^).

Et c'est précisément ce qui a mis Matt sur la piste. Comme l'ordre de tri ne collait pas avec celui du PC-9801 d'origine, cela voulait dire que quelqu'un avait retravaillé les données spécialement pour la console de Sega. Pour démêler tout ça, il a donc sorti l'artillerie du désassemblage moderne, rizin pour fouiller le binaire 68000, vasmm68k pour réassembler, et l'émulateur BlastEm pour vérifier que ses bidouilles ne plantaient pas la machine.

Et en bonus, Matt a même déterré une jolie histoire sur le jeu original. En 1989, T&E Soft n'avait pas pompé le parcours de golf Augusta de loin avec des photos, ils avaient signé un vrai contrat avec le club et bossé sur les plans officiels du parcours.

Et le club ne rigolait pas avec sa réputation car selon Matt, "Augusta a renvoyé environ 60 corrections", du genre arbres trop courts et trop espacés, fleurs trop roses, sable des bunkers de la mauvaise couleur. Le tout codé en grande partie par un seul gars, Eiji Kato, ce qui vous fait mieux comprendre pourquoi ces données valent la peine qu'on aille les déterrer 37 ans plus tard.

Mon détail préféré de ce jeu reste quand même la physique puisque le trou est trois fois trop gros, aspirant n'importe quelle balle qui passe à moins de 17 centimètres, soit le triple du rayon réel. Les balles tombent donc de bien plus loin qu'on ne le croit, ce qui est une petite triche d'ergonomie planquée là depuis trente ans que personne n'avait vraiment remarquée avant qu'on rouvre le code.

Après, je vais être clair sur l'état du chantier : ce n'est pas une ROM finie à télécharger pour ce week-end. Faut voir plutôt ça comme une démo expérimentale. Mais l'intérêt n'est pas là. Non, ce qui est beau, je trouve, c'est cette archéologie qui traite un jeu comme un site de fouilles et qui permet de mettre au jour de très belles choses enfouies dans le code.

Source

  •  

EmuDevz - Le jeu où vous codez votre émulateur NES

Afska, le développeur derrière une flopée d'outils pour Game Boy Advance, a eu avec son studio [r]labs une idée géniale ! Ça s'appelle EmuDevz, et c'est un jeu vidéo dans lequel vous devez coder votre propre émulateur NES. Et pas en cliquant sur des boutons comme un loser, hein mais en pissant du vrai code pour le processeur, la puce graphique et la puce audio de la console de Nintendo.

L'émulation, normalement, c'est un truc réputé aride où vous passez des semaines le nez dans la nesdev wiki à piger comment le 6502 gère ses cycles d'horloge. Et pourtant, là, tout devient clair et facile puisque vous avez un éditeur de code intégré façon shell Unix, et vous implémentez le CPU, le PPU et l'APU dans l'ordre que vous voulez. Puis au fil de votre progression, vous débloquez des ROMs et des homebrews à faire tourner dans l'émulateur que vous venez de pondre. Et pour vérifier que votre code tient la route, le jeu fournit même des tests unitaires, des tests vidéo et des tests audio.

Mais le truc qui m'a scotché dans ce "jeu", c'est le debugger. Dans celui-ci, vous avez droit à un visualiseur de mémoire, un log d'instructions, les nametables, la CHR, les sprites, les palettes, les canaux APU affichés un par un, le monitoring du contrôleur... l'arsenal complet du mec qui développe pour de vrai, mais emballé dans une interface gaming. Y'a même un tuto interactif pour apprendre l'assembleur 6502 si vous débarquez sans rien connaître...

Voilà, c'est génial pour apprendre des concepts liés à l'émulation et au développement de jeux retro. On savait déjà qu'il était possible d' apprendre Prolog grâce aux Pokemon ou de recréer une carte 3dfx de zéro et voilà que maintenant, on nous propose carrément de dompter l'émulation de la NES.

Puis surtout, une fois que vous maitriserez un peu plus, le mode libre de EmuDevz vous permettra de commencer à coder des émulateurs pour d'autres systèmes. Ah et y'a même une bande son retro-synthwave dans l'appli pour se mettre dans l'ambiance.

Et je vous l'ai dit ou pas que c'était open source, trouvable sur Steam mais surtout jouable directement depuis votre navigateur ???

La vie est belle ! Et bonne canicule à tous 🥵 !

Source

  •  

GB-Link USB - Faites jouer vos vraies Game Boy en ligne

Le bidouilleur Starlarkus vient de sortir son nouveau projet, le GB-Link USB V2 qui n'est ni plus ni moins qu'un petit adaptateur permettant de brancher une VRAIE Game Boy sur le net.

Le truc se fait passer pour un câble link tout ce qu'il y a de plus normal, et la console n'y voit que du feu. D'un côté y'a le port link de la Game Boy, de l'autre un port USB-C que vous branchez sur un ordi ou un smartphone Android. Et là, tout passe ensuite par le navigateur en WebUSB. Vous ouvrez une page web et vous pouvez retrouver un autre joueur et enfin échanger des Pokemon comme en 1999 ou vous mettre sur la gueule avec un Tetris, tout ça à distance.

C'est magique ! Sous la coque en plastique de l'appareil, on retrouve surtout un PCB maison monté sur une puce RP2040 (la même puce que dans le Raspberry Pico) et ça cause avec la Game Boy, la Game Boy Color et la Game Boy Advance, et même avec les clones FPGA modernes .

Côté jeux, ça va de Dr. Mario à Advance Wars en passant par tous les Pokémon de la première à la troisième génération.

Le firmware, le client web et le launcher sont tous open source et le GB-Link USB V2 en lui-même sera bientôt dispo dans un crowdfunding .

Si vous avez encore une Game Boy qui prend la poussière dans un tiroir, c'est peut-être donc le moment de lui offrir une seconde vie connectée !

Source

  •  

Half-Life 2 dans le navigateur - Le hack d'un lycéen

Vous vous souvenez de la première fois que vous avez lancé Half-Life 2 et que vous avez attrapé une caisse avec le gravity gun ? Eh bien un lycéen qui se fait appeler slqnt vient de remettre tout ça dans votre navigateur, gratuitement, sans avoir à installer Steam ni à télécharger le moindre gros paquet. Ça se passe sur hl2.slqnt.dev , c'est en ligne depuis hier, et le jeu tourne tout en fluidité, largement au-dessus des 60 images par seconde directement sous Chrome.

Sur mobile par contre, il vous faudra un clavier branché parce que les contrôles tactiles sont quasi inexistants pour l'instant, mais sur un PC, vous lancez la page et vous voilà à Black Mesa East.

Maintenant, le plus intéressant c'est comment il s'y est pris, parce que porter un jeu bâti sur le moteur Source de Valve (le même que celui de 2004, successeur de GoldSrc) dans un onglet, ça ne se fait pas en claquant des doigts.

Et slqnt n'est pas parti de zéro puisque c'est un copain qui lui a montré un portage de Portal fait par un autre dev nommé weliveinhell. Ce projet open source était d'ailleurs lui-même un fork de nillerusr/source-engine , c'est-à-dire une version modifiée de la fuite du code du moteur Source de Team Fortress 2 qui a circulé en 2020. Voilà pour la base du truc qui n'est ni plus ni moins que le moteur leaké patiemment retapé par la communauté.

L'astuce de ce portage tient dans un mode de rendu appelé ToGLES. En gros le moteur sait parler OpenGLES, le truc qu'on utilise d'habitude pour les applis Android, sauf qu'Emscripten sait traduire ces appels en WebGL2 dans le navigateur. Résultat, slqnt n'a eu quasiment aucun travail à faire côté affichage, le plus dur étant déjà fait.

Le casse-tête par contre, ça a été d'abord les assets, parce que cette version du moteur date d'avant la réédition anniversaire de HL2 et ne supportait pas ses fichiers. Il a donc fallu basculer sur la branche steam_legacy de Steam, puis dépaqueter tous les VPK du jeu et les redécouper en fichiers .data, un par carte, pour que le navigateur les charge au fur et à mesure.

Et puis il y a eu les animations faciales. C'était l'une des grandes fiertés techniques de HL2 à sa sortie, la façon dont les visages bougeaient en parlant. Sauf que ça faisait tellement planter le portage que slqnt a fini par désactiver complètement le système pour avoir quelque chose de stable.

Du coup le G-Man vous fait son monologue d'intro avec un visage figé, mais au moins ça tourne. Le reste de son journal de bord est également une jolie liste de galères de bidouilleur, vu de l'intérieur avec au hasard, les sauvegardes à recâbler sur le système de fichiers d'Emscripten, les batteries et medkits qui ne fonctionnaient pas, le gravity gun qu'Alyx vous tend mais qui n'arrivait jamais dans l'inventaire, les PNJ qui s'effondraient et mouraient au hasard, les headcrabs qui ne faisaient aucun dégât, l'eau toute noire et j'en passe...

Petit détail qui parle à quiconque a déjà bidouillé un jeu, il a dû remapper l'accroupissement sur la touche C, parce que CTRL déclenchait des raccourcis du navigateur qui pourrissent la partie.

Reste maintenant la question que tout le monde se pose : Est-ce que Valve est au courant ? Parce qu'un portage qui repose sur du code moteur leaké et sur les assets du jeu, légalement, c'est une zone grise bien grise qui tire vers le noir.

Valve a toujours été plutôt cool avec sa communauté de moddeurs, mais ça pourrait disparaître du jour au lendemain. Après si l'idée d'un jeu Source qui tourne dans un onglet vous fait marrer, c'est exactement le même esprit que ce Portal 2 transformé en serveur web , ou que ce Doom qui tourne avec juste du CSS . Mettre les vieux FPS dans le navigateur, c'est presque devenu un sport, je vous en parlais déjà avec Wolfenstein 3D .

Bref, foncez essayer tant que c'est en ligne. Et si vous y arrivez sur mobile sans clavier, écrivez vite un bouquin pour raconter comment vous avez fait !

Source

  •  
❌