Entretien avec LuigiBlood

Posté par  (site web personnel) . ÉditĂ© par gUI, Ysabeau đŸ§¶ et Arkem. ModĂ©rĂ© par Pierre Jarillon. Licence CC By‑SA.
35
12
avr.
2023
Jeu

LuigiBlood est acteur de la scĂšne Retrogaming, cet entretien revient sur ses projets et rĂ©alisations dans le domaine : traductions, rom hacking, ingĂ©nierie inverse, etc. C’est presque une histoire des jeux vidĂ©os qu’il dĂ©livre Ă  travers cet entretien.

LuigiBlood avatar

Sommaire

Partie 1 : présentation

Qui ĂȘtes-vous, quel est votre parcours et en quoi est-il liĂ© aux jeux vidĂ©os ?

Je suis LuigiBlood, parfois connu sous le nom de Yakumono aussi, je ne parle pas trop de ma vie privĂ©e sur Internet en gĂ©nĂ©ral, une sorte de rĂšgle que je me suis donnĂ© Ă©tant plus jeune dĂ©jĂ . Mais j’habitais en banlieue parisienne puis j’ai dĂ©mĂ©nagĂ© dans le sud plus tard, avec un parcours scolaire plutĂŽt compliquĂ© oĂč j’avais du mal Ă  m’intĂ©resser Ă  des matiĂšres et d’autres trucs que je supportais moins.

J’avais commencĂ© Ă  jouer aux jeux vidĂ©os depuis je pense mes cinq ans, avec la Super NES qui Ă©tait dĂ©jĂ  considĂ©rĂ©e comme d’ancienne gĂ©nĂ©ration. Ma famille est plutĂŽt fan de jeux vidĂ©os en gĂ©nĂ©ral et plutĂŽt ouverte. La plupart des consoles que je possĂšde actuellement viennent de ma famille, avec du Nintendo, Sega, Sony, Microsoft, mais la majeure partie du temps c’était plus Nintendo qui dominait nos intĂ©rĂȘts de jeux. On n’était pas spĂ©cialement riches, mais on Ă©tait assez aisĂ©s pour avoir toujours Ă  peu prĂšs ce qu’on voulait au bout d’un moment.

À peu prĂšs dans le mĂȘme temps, je commençais dĂ©jĂ  Ă  me fasciner pour l’informatique Ă  regarder mon pĂšre faire des manipulations sur DOS et Windows, formatage, installation de drivers, etc, et au fur et Ă  mesure je commençais Ă  me familiariser avec tout ça on avait un vieux Packard Bell avec un Windows 95 puis un HP avec Windows XP, qui Ă©taient plutĂŽt les ordinateurs qu’on se partageait l’utilisation Ă  l’époque avant d’opter pour d’autres ordinateurs dont j’avais un PC Ă  moi avec Windows ME pendant trĂšs longtemps.

Avec Internet j’ai ensuite beaucoup appris de l’anglais, de la programmation, comment crĂ©er un jeu vidĂ©o aussi qui Ă©tait un sujet qui m’intĂ©ressait beaucoup dĂ©jĂ  avec The Games Factory et RPG Maker qui Ă©taient cools pour un enfant comme moi Ă  l’époque, je voyais beaucoup du milieu amateur de la crĂ©ation JV. Puis j’avais vu le milieu du ROM Hacking qui me fascinait beaucoup aussi, c’était vraiment plutĂŽt Ă©trange de voir autant d’engouement d’une petite communautĂ© qui se passionnait pour l’édition des vieux ROMs de jeux de vieilles consoles. Puis y a eu l’apparition de YouTube oĂč j’ai commencĂ© Ă  connaĂźtre des choses parfois obscures sur Nintendo comme les fameux jeux Mario et Zelda sur Philips CD-i et de les voir parodiĂ©s Ă  outrance qui me faisaient beaucoup rire.

J’avais participĂ© Ă  l’extraction et conversion des donnĂ©es vidĂ©o des cinĂ©matiques de ces jeux CD-i, avec les animations et les dĂ©cors en sĂ©parĂ©s, histoire de bien amĂ©liorer ces parodies avec des assets de haute qualitĂ©, puis au fur et Ă  mesure je m’enfonçais de plus en plus dans l’obscur Nintendo jusqu’au point de non-retour.

Partie 2 : N64 et 64DD

N64 avec un 64DD
N64 avec un 64DD

Comment en ĂȘtes-vous venu Ă  vous intĂ©resser Ă  la N64 ?

C’était une console avec laquelle j’avais dĂ©jĂ  pas mal jouĂ©e, Ă  peu prĂšs vers la transition vers la gĂ©nĂ©ration “128-bit” avec Super Mario 64, Mario Kart 64, Goldeneye et Smash Bros entre autres. Mais aprĂšs que j’étais intĂ©ressĂ© avec la Satellaview sur Super Famicom, la 64DD Ă©tait dĂ©jĂ  dans ma ligne de mire parce que j’avais passĂ© beaucoup de temps sur Mario Paint sur Super NES et que j’étais trĂšs curieux de ses successeurs Mario Artist sur 64DD.

Qu’est-ce que cette console a de particulier ?

C’est trĂšs complexe comme console, j’avais plus ou moins pris goĂ»t aux systĂšmes plus simples comme la Super Nintendo, j’ai dĂ» m’habituer au fait qu’on devait tout charger dans la RAM mĂȘme quand la ROM de la cartouche est en accĂšs direct en mĂ©moire parce que c’était trop lent.

Que dire du processeur (NEC VR4300) ?

L’architecture MIPS est plutĂŽt simple, mais, pour moi, l’enfer c’est que je confonds toujours le delay slot Ă  chaque branche donc je mets quasi toujours un nop aprĂšs dans le doute, et le pire c’est le cache parce que j’avais pas affaire Ă  ça avant, au point que ça m’a posĂ© problĂšme plusieurs fois, et la prĂ©cision des calculs Ă  virgule flottante laisse vraiment Ă  dĂ©sirer


Comment fonctionnent les processeurs graphiques (RSP, RDP) et audio ?

Je ne connais pas trĂšs bien le fonctionnement.

Comment fonctionne l’audio ?

C’est en rapport avec le RSP mais je n’en sais rien.

NDM : si vous connaissez bien cette console, contactez-nous pour une future interview !

Quelle est votre manette préférée ?

Switch Pro Controller
Switch Pro Controller

Certainement pas la manette Nintendo 64 ! Si je devais choisir une manette ça serait probablement le Switch Pro Controller, j’aurai pu choisir les Joy-Cons si le stick drift n’existait pas parce que avoir deux parties d’une manette dans chaque main est assez confortable. Mais si je devais choisir une manette rĂ©tro ça serait la manette Super NES sans hĂ©siter.

Les émulateurs N64 sont-ils bons ?

On m’aurait posĂ© cette question y a dix ans j’aurai dit absolument pas. Maintenant il y a surtout eu une prise de conscience que l’émulation N64 a beaucoup de problĂšmes, que ce soit dans la qualitĂ© de l’émulation mĂȘme ou l’interface utilisateur, je me souviens avoir passĂ© beaucoup de temps Ă  me plaindre de ce dernier parce que les deux Ă©mulateurs connus, Project64 et mupen64plus, ne viennent pas avec la meilleure configuration possible dĂšs le dĂ©part, et c’est toujours pas le cas totalement.

Il y a eu beaucoup de dĂ©veloppement sur l’émulation graphique de la N64, et comme la norme des Ă©mulateurs N64 c’est qu’ils utilisent toujours des plugins sĂ©parĂ©s, on peut gĂ©nĂ©ralement profiter de ça, mais mupen64plus a plus ou moins eu une renaissance avec les frontends et les forks comme Rosalie’s Mupen GUI, simple64 et mupen64plus-next (pour RetroArch). Mais je reste toujours Ă  prĂ©fĂ©rer Project64 bien qu’il soit uniquement Windows pour le moment, mais le dĂ©veloppeur est totalement interessĂ© de le rendre multi plateforme, mais il gĂšre tout un projet quasiment tout seul et ça prend du temps. Il est le seul qui fait 64DD et avoir un debugger en mĂȘme temps.

Y a eu un nouvel Ă©mulateur qui s’appelle Ares, par le regrettĂ© Near, dĂ©veloppeur de bsnes et higan, Ares est un multi Ă©mulateur mais Near a voulu s’occuper de la N64 par lui-mĂȘme pour le dĂ©fi technique, et aprĂšs son dĂ©cĂšs d’autres ont repris la oĂč il l’avait laissĂ© et ça se prĂ©sente trĂšs bien, il est actuellement l’émulateur N64 le plus prĂ©cis, bien que la compatibilitĂ© ne soit pas encore parfaite, mais ça avance.

En ce qui concerne l’émulation N64 officielle, l’émulateur N64 de Rare Replay et de Goldeneye sur Xbox semble faire Ă  peu prĂšs son taf mais n’est pas parfait, mais en ce qui concerne Nintendo avec le service Switch Online, c’était le pire Ă©mulateur N64 que j’avais vu Ă  son lancement en 2022, et bien qu’il y ait eu pas mal d’amĂ©liorations et de bugs corrigĂ©s, y a toujours des problĂšmes en ce qui concerne les contrĂŽles absolument pas adaptĂ©s correctement pour les manettes actuelles, des problĂšmes qu’on sait dĂ©jĂ  corriger sur les Ă©mulateurs PC.

Quels sont vos jeux commerciaux préférés sur cette console ?

Je n’étonnerai personne si je mentionnais des jeux Nintendo en gĂ©nĂ©ral, mais j’aime beaucoup Pilotwings 64, Kirby 64, F-Zero X et Super Smash Bros., certains de ces jeux je les ai connus plus tard, mais je peux aussi mentionner Road Rash 64, apparemment un peu mal aimĂ© mais je le trouve sympa avec les diffĂ©rentes armes disponibles pendant les courses. Et j’aime beaucoup Mario Artist sur 64DD, vraiment une suite de jeux uniques.

Quels sont vos jeux “homebrew” prĂ©fĂ©rĂ©s sur cette console ?

Je faisais partie d’un jury pour la N64brew Game Jam 2021, oĂč j’ai pu essayer pas mal de jeux homebrew N64 rĂ©alisĂ©s pour l’occasion, je pense que la scĂšne homebrew N64 Ă  de beaux jours devant elle, j’avais beaucoup aimĂ© Wizard of the Board, un mĂ©lange entre un jeu d’échecs et un FPS plutĂŽt sympa, Mission Lost Control est un jeu d’action et de stratĂ©gie oĂč il faut prendre le plus de bases avec Ă  la fois un personnage qu’on contrĂŽle directement et des petits drones qui rĂ©pondent Ă  une stratĂ©gie qu’on leur donne, et Voidblade qui est un jeu assez Ă©trange utilisant deux manettes pour avoir deux sticks pour contrĂŽler deux “triangles” reliĂ©s Ă  une “scie” et il faut esquiver ou scier tout ce qui tombe.

Il y en a eu d’autres des game jams N64 chez N64brew qui ont tous des jeux intĂ©ressants.

Vous avez beaucoup travaillé sur le 64DD, pourquoi ?

La curiositĂ©, je voulais absolument essayer Mario Artist sans dĂ©bourser des centaines d’euros (et encore, maintenant c’est encore pire), j’avais vu pendant des annĂ©es des promesses de personnes qui disent vouloir Ă©muler la 64DD sans jamais que ça se fasse, puis y a eu une tentative de prĂ©servation des disquettes 64DD qui s’était soldĂ© sur un Ă©chec en 2014, et j’ai eu un sentiment de ras-le-bol, et j’ai voulu tenter quelque chose par moi-mĂȘme.

Je voulais faire un dumper 64DD, mais je n’y connaissais rien en dĂ©veloppement N64. J’avais fait une tentative en utilisant libdragon pendant quelques mois, le SDK open source N64, mais je n’arrivais pas Ă  faire quelque chose qui marchait. J’ai donc optĂ© pour une option plus simple qui Ă©tait d’utiliser le SDK officiel avec la bibliothĂšque 64DD officielle, modifiĂ©e pour l’occasion grĂące a certaines personnes qui m’ont Ă©paulĂ© sur la tĂąche. En reprenant certaines dĂ©mos SDK pour avoir un affichage, j’avais rĂ©ussi Ă  avoir un dumper qui fonctionne en deux semaines. Et le dernier jour de 2014, on avait tous les jeux 64DD prĂ©servĂ©s avec un dumper Ă©crit totalement Ă  l’aveugle sans pouvoir tester par moi-mĂȘme, mais plutĂŽt en testant avec la 64DD des collectionneurs qui sont dans des pays diffĂ©rents.

Puis Zoinkity, un hacker N64 de gĂ©nie, avant mĂȘme que l’émulation 64DD existe, a rĂ©alisĂ© un portage des jeux 64DD vers le format cartouche N64 pour les flashcarts, donc il y a eu un moment oĂč j’ai pu enfin jouer Ă  Mario Artist, bien que c’était loin d’ĂȘtre parfait sur Ă©mulateur. Puis quelqu’un qui s’appelle Happy_ a Ă©mulĂ© la 64DD pour la premiĂšre fois sur MESS (qui aura fusionnĂ© avec MAME peu aprĂšs), puis j’ai utilisĂ© cette base de travail pour Ă©muler la 64DD sur Project64, puis mupen64plus en partie, puis Ares. J’avais rĂ©Ă©crit une bonne partie au fur et Ă  mesure des annĂ©es donc la logique du code n’a plus grand-chose Ă  voir avec ce qu’il y a dans MAME, Ă  force de comprendre le fonctionnement de la 64DD parfois avec quelques tests rĂ©alisĂ©s sur le vrai 64DD qu’entre-temps on m’en a fait don et je ne remercierai jamais assez pour la confiance qu’ils ont pour moi. J’ai pu rĂ©Ă©crire le dumper deux fois finalement, et entre-temps j’ai pu avoir la confiance de rĂ©aliser un nouvel interface complĂštement de zĂ©ro.

Pouvez-vous nous présenter Mario Artist ?

Mario Artist

Mario Artist, c’est une suite de logiciels qui fait suite à Mario Paint sur Super NES, un logiciel de dessin, d’animation et de musique. Mario Artist a eu 4 logiciels, Paint Studio, Talent Studio, Polygon Studio et Communication Kit.

Paint Studio c’est le logiciel de dessin classique, jouable jusqu’à 4 en mĂȘme temps, avec un mode animation, le tout est vraiment trĂšs dĂ©veloppĂ© et dĂ©taillĂ©, et avec un mode de monde 3D Ă  explorer oĂč il est possible de tout re-texturer et prendre des photos, je pense que j’aurais vraiment aimĂ© Ă©tant gosse Ă  l’époque.

Talent Studio c’est l’ancĂȘtre des Miis, un Ă©diteur de personnage simple et complexe Ă  la fois avec parfois des options qui feraient rougir certains jeux actuels avec la crĂ©ation de personnage, puisque quasi tout est re-texturable, et y a un Ă©diteur de film qui est assez limitĂ© mais qu’on peut en revanche animer chaque personnage quasi sans limites.

Polygon Studio c’est un Ă©diteur 3D, avec un vrai Ă©diteur de modĂšles 3D en polygones, et un Ă©diteur simplifiĂ© conçu pour mettre plusieurs bouts prĂ©mĂąchĂ©s ensemble, et un Ă©diteur pour donner un petit dĂ©cor Ă  la crĂ©ation 3D. Il est un peu connu pour ĂȘtre le jeu qui a inspirĂ© directement Wario Ware avec un mode micro jeux dont Wario Ware en fait la copie conforme, et un mode open world utilisant un vĂ©hicule crĂ©Ă© avec l’éditeur simplifiĂ©, et on rĂ©cupĂšre d’autres parties de vĂ©hicule parfois plus puissants et permettant d’explorer plus loin, c’est un mode trĂšs sous-cĂŽtĂ© et que je recommanderais de faire un jour, bien que ce jeu demande une Ă©mulation graphique N64 beaucoup plus prĂ©cise pour fonctionner correctement.

Communication Kit c’est plus pour partager ses crĂ©ations sur le service Randnet qui Ă©tait le service Internet. Quand on avait la 64DD c’était uniquement avec un abonnement Randnet. Il y a aussi un mode alternatif pour utiliser la cartouche de capture RCA (NTSC) qui Ă©tait aussi compatible avec Paint Studio et Talent Studio mais celui-ci permettait des effets en plus.

J’avais pris le temps de traduire les trois premiers Mario Artist en anglais pour l’accessibilitĂ©, bien que mon Japonais ne soit absolument pas bien, mais vu qu’on est surtout dans la traduction de mots simples dans les menus, c’est pas trop difficile, Polygon Studio est celui qui m’a posĂ© le plus de problĂšmes avec le mode open world, mais j’ai dĂ» retraduire les Mario Artist jusqu’à trois fois au total, chacun avec une meilleure tentative de la technique qui rendait la traduction possible, Ă©tant donnĂ© que le plus compliquĂ© c’était surtout la place qui manquait, chaque caractĂšre utilisant deux octets j’ai pu rĂ©duire Ă  un octet, ce qui double la place disponible et ça m’a fait gagner beaucoup de temps. AprĂšs , il y a eu les changements graphiques Ă  faire mais Polygon Studio Ă©tait super bien programmĂ© comparĂ© aux deux autres qui sont parfois vraiment codĂ©s en dur ce qui m’avait compliquĂ© la tache parfois. Les sources des traductions que je rĂ©alise sont gĂ©nĂ©ralement en ligne.

Quels “hacks” avez-vous fait sur Zelda ?

Pendant un temps, Zoinkity avait un peu explorĂ© la compatibilitĂ© 64DD de Zelda Ocarina of Time, et j’ai voulu aller plus loin et j’ai pu comprendre comment remplacer le texte, puis les maps du jeu. J’ai pu rĂ©aliser un test rapide sur le vrai hardware, ce dont le cache m’a vraiment posĂ© problĂšme que j’ai dĂ» utiliser la zone mĂ©moire non cache pour ĂȘtre sĂ»r que ça marche, j’ai vraiment l’impression qu’il y a un vrai bug dans le code du jeu de base.

Puis, aprĂšs ça, j’ai cherchĂ© si quelqu’un Ă©tait intĂ©ressĂ© pour rĂ©aliser un mod compatible 64DD, et le projet a pu ĂȘtre en chantier pendant quelques annĂ©es. À la base ça aurait dĂ» ĂȘtre qu’une seule map, mais c’était trop peu et pas assez impressionnant qu’on a prĂ©fĂ©rĂ© faire quelque chose de plus grand, mais j’avais imposĂ© la seule condition de faire seulement une expĂ©rience de deux Ă  trois heures tout au plus.

Ce projet deviendra Zelda 64 Dawn & Dusk, et est techniquement entiĂšrement rĂ©alisĂ© par Captain Seedy-Eye en version cartouche via la version debug de Master Quest qui avait Ă©tĂ© dumpĂ© et fuitĂ© y a pas mal d’annĂ©es. J’étais plutĂŽt en charge de faire fonctionner tout ça sur 64DD, j’avais dit qu’il pouvait faire ce qu’il voulait et que c’était Ă  moi de gĂ©rer tous les soucis si il faisait des choses qui Ă©taient absolument pas prĂ©vu par la fonctionnalitĂ© 64DD de base.

J’avais, Ă  la base, voulu rĂ©aliser le code pour la fonctionnalitĂ© 64DD de Zelda OoT en C, mais je savais pas trop comment gĂ©rer le linker correctement et je me suis rĂ©solu Ă  tout faire en assembleur MIPS parce qu’au moins je savais comment les choses seraient assemblĂ©es et que j’avais un contrĂŽle total. À ce moment-lĂ  j’avais pas totalement compris les normes d’utilisation des registres du CPU par rapport au compilateur, je pense que j’aurais codĂ© complĂštement diffĂ©remment maintenant.

J’ai dĂ» hacker le moteur du jeu en temps rĂ©el avec le code chargĂ© via la 64DD par le jeu, la N64 n’avait pas de systĂšme de permissions, donc aucune limite. Le dĂ©veloppeur avait rĂ©alisĂ© beaucoup de choses, comme de nouvelles musiques, ce qui n’était pas du tout prĂ©vu par les dĂ©veloppeurs originaux de Zelda donc j’ai dĂ» Ă©crire du code pour qu’il lise les donnĂ©es des musiques par la RAM au lieu de la cartouche ROM. Parfois, j’ai eu Ă  prĂ©charger beaucoup de fichiers dans la RAM et les modifier, crĂ©er une table pour le remplacement de fichiers Ă  charger en temps rĂ©el, une grosse cache pour les fichiers maps du jeu parce que charger des maps de la disquette en plein gameplay faisait stopper le jeu et arrĂȘtait complĂštement la musique. Il y a eu beaucoup de dĂ©tails comme ça avec lesquels j’avais eu affaire, heureusement que j’avais 4 Mo de RAM supplĂ©mentaire grĂące Ă  l’Expansion Pak qui Ă©tait de toute façon requise par Nintendo pour toute interaction avec la 64DD.

En soi ce n’était pas forcĂ©ment compliquĂ©, je trouvais toujours une solution technique Ă  chaque problĂšme, mais comme je testais tout sur Ă©mulateur avec un debugger, il a fallu quand mĂȘme que je trouve un moment pour le test sur le vrai hardware. Mais comme rĂ©Ă©crire une disquette 64DD via une 64DD normale n’était pas possible Ă  cause des protections, j’ai donc Ă©crit les donnĂ©es sur la partie rĂ©inscriptible d’une disquette 64DD, et modifiĂ© le jeu de base pour indiquer de charger de cette partie Ă  la place. Ça aurait du fonctionner, mais le jeu n’arrĂȘtait pas de planter. Donc j’ai implĂ©mentĂ© un retour par USB pour voir, et clairement mon code Ă©tait exĂ©cutĂ©, mais ça plantait quand mĂȘme au final.

Il m’a fallu deux semaines pour comprendre que les donnĂ©es sur 64DD n’étaient pas alignĂ©es et que l’implĂ©mentation de la copie mĂ©moire (bcopy) du jeu de base Ă©tait complĂštement buguĂ©e sur ce point et ignorait certains octets quand ils n’étaient pas copiĂ©s correctement. Ce problĂšme n’existe pourtant pas sur Ă©mulateur alors que c’est le mĂȘme code ! Et lĂ , j’ai compris que la prĂ©cision des calculs Ă  virgule flottante sur le CPU (ne me demandez pas pourquoi ils s’en servent pour de la copie mĂ©moire, je n’en ai aucune idĂ©e) n’était vraiment pas trĂšs au point. Une fois que toutes les donnĂ©es Ă©taient alignĂ©es, tout fonctionnait correctement, et j’ai pu tester le jeu sans problĂšmes. Il fallait ensuite faire en sorte que ça fonctionne sur toutes les versions NTSC de Zelda Ocarina of Time : il en existe trois versions, mais c’était surtout un travail de recherche des adresses de chaque fonction que j’utilisais. Le plus compliquĂ© c’était d’adapter la musique pour chaque version puisque les donnĂ©es son n’étaient pas exactement les mĂȘmes, mais Ă  cĂŽtĂ© du problĂšme d’alignement c’était facile.

Et puis j’ai finalement portĂ© tout ça pour en faire des patchs pour les ROMs cartouche de chaque version en plus d’avoir une version disquette 64DD, ce qui en fait le seul mod Zelda Ocarina of Time a ĂȘtre compatible avec toutes les versions NTSC finaux du jeu.

Zelda 64 Dawn & Dusk est apparu presque au moment oĂč les mods Zelda 64 avaient une renaissance avec beaucoup de mods de trĂšs bonne facture sont apparus ensuite, les gens pensaient que Dawn & Dusk Ă©tait trĂšs beau, et Captain Seedy-Eye avait vraiment fait du trĂšs bon travail. En revanche le cĂŽtĂ© implĂ©mentation 64DD Ă©tait assez ignorĂ©, j’étais un peu dĂ©pitĂ©, j’avais vraiment passĂ© du temps dessus et c'Ă©tait la raison principale de pourquoi ce mod existe. J’avais portĂ© en version ROM parce que je me doutais bien qu’émuler la 64DD juste pour ça Ă©tait pas forcĂ©ment nĂ©cessaire, mais aurait pu ĂȘtre au moins apprĂ©ciĂ© par le fait que ça existe. Le lancement n’était pas forcĂ©ment parfait non plus, Ă  la fois parce que le jour d’aprĂšs on avait dĂ©jĂ  fait une version 2.0 avec une map corrigĂ©e, mais j’ai crĂ©Ă© une confusion en la nommant 2.0 faisant penser que le mod existait dĂ©jĂ  bien avant, et que les instructions pour jouer Ă  la version 64DD Ă©taient pas claires et trop prĂ©cises. Tant pis.

Quelques annĂ©es plus tard, y a eu le mod Zelda Expansion, basĂ© sur les maps 64DD officielles du gigaleak de 2020, et le dĂ©veloppeur m’a contactĂ© pour en rĂ©aliser un portage 64DD, ce que j’ai fait finalement assez vite avec la mĂȘme base de code de Zelda 64 Dawn & Dusk. Mais que j’ai mieux compartimentĂ©, et finalement c’était mĂȘme beaucoup plus simple parce qu’il s’agit juste de remplacement de maps de donjon, ce Ă  quoi Ă©tait principalement conçue la fonctionnalitĂ© 64DD du jeu de base.

Partie 3 : SNES et BS-X

SNES et BS-X
SNES et BS-X

Quels sont vos jeux commerciaux préférés sur cette console ?

Je suis pas spĂ©cialement un original parce que la plupart des jeux que j’aime bien sont des jeux dĂ©veloppĂ©s par Nintendo, comme Super Mario All-Stars, mĂȘme si c’est surtout un portage des quatre Mario en version 16-bit. Mais si je devais en choisir d’autres, je pourrais dire Sutte Hakkun, un jeu de puzzle un peu action qui Ă©tait sur Satellaview puis sorti en cartouche plus tard, Marvelous - Another Treasure Island - que j’ai bien aimĂ© aussi, le portage SNES de Detective Club Part II qui a rĂ©cemment eu un remake sur Switch, Kirby’s Dream Course, Special Tee Shot, Pilotwings, Tetris Attack, et une bonne partie de ma vie d’enfant Ă©tait passĂ© sur Mario Paint avec la souris Super NES, d’oĂč mon intĂ©rĂȘt pour Mario Artist. Mais pour des jeux d’éditeurs tiers, je pense que Prince of Persia sur SNES est la meilleure version du jeu, Super Off-Road, rĂ©cemment j’ai pu jouer a Demon’s Crest par Capcom qui est vraiment cool par le service Nintendo Switch Online, Operation Logic Bomb, Clock Tower, il y en a d’autres mais ce sont gĂ©nĂ©ralement les jeux Nintendo qui sont plutĂŽt en haut dans mon classement.

Quels sont vos jeux “homebrew” prĂ©fĂ©rĂ©s sur cette console ?

Je n’en ai pas beaucoup jouĂ©s, mais je pense Ă  Super Boss Gaiden, un beat ’em up platforme assez humoristique avec le prĂ©sident de Sony qui bat tout le monde parce que la Playstation originelle qui Ă©tait Ă  la base une Super NES et une Super NES CD en un, avait Ă©tĂ© trouvĂ© et blĂąme tout Sony pour ça. C’est rempli de rĂ©fĂ©rences parfois obscures et ça peut se jouer jusqu’à trois.

Quelle est votre manette préférée ?

Manettes américaines et japonaises
Manettes américaines et japonaises

J’aime beaucoup la manette Super Nintendo, aprĂšs j’ai une prĂ©fĂ©rence sur la version colorĂ©e de la Super Famicom et Super NES PAL, mais en mĂȘme temps j’aime bien la manette Super NES amĂ©ricaine pour les boutons X et Y concaves, malgrĂ© le violet que je trouve un peu dĂ©gueulasse.

Vous avez beaucoup travaillĂ© sur le SatellaView, qu’en dire ?

SNES et Satellaview
SNES et Satellaview

C’est quelque chose sur laquelle j’ai travaillĂ© trĂšs trĂšs tĂŽt, bien avant la 64DD, mĂȘme pendant mon adolescence, alors que j’apprenais comment coder en assembleur. Je dĂ©couvrais aussi BS Zelda, et les autres jeux Satellaview Ă  peu prĂšs au mĂȘme moment, mais je me rendais compte qu’il s’agissait d’un vrai service par satellite, avec pas mal d’interactions possibles, et j’avais posĂ© la question si quelqu’un avait fait de la recherche sur comment reproduire le signal d’époque ou du moins refaire fonctionner le service. Personne ne le faisait donc je me suis dit de le faire moi-mĂȘme, et c’est comme ça que je commençais mon premier projet de rĂ©tro-ingĂ©nierie, Ă  base d’une documentation trĂšs basique sur le hardware Satellaview qui se fixait sous la console avec le port EXT, puis d’un Ă©mulateur oĂč je passais mon temps Ă  activer le trace log, un dĂ©sassembleur automatisĂ© parfois capricieux. J’ai vraiment appris sur le tas, j’ai sans doute perdu beaucoup de temps Ă  faire des trucs inutilement longs, mais ça a portĂ© ses fruits en terme d’apprentissage en gĂ©nĂ©ral, puis le crĂ©ateur des Ă©mulateurs nocash vient avec un nouvel Ă©mulateur SNES et une documentation gargantuesque y compris la Satellaview, avec tout le systĂšme compris, et le systĂšme de machine virtuelle avec un bytecode de la cartouche BS-X qui sert d’accĂšs au service.

Bien que j’ai appris plein de choses tout seul dans mon coin, il y a eu quand mĂȘme beaucoup d’aides d’autres personnes surtout plus spĂ©cialisĂ©es au niveau hardware pour comprendre le fonctionnement de la cartouche BS-X par exemple qui utilise un mapper un peu spĂ©cial capable de re-mapper diffĂ©rentes parties entre la carte mĂ©moire et la RAM de 512 Ko sur le bus SNES, ce genre de travail Ă  ne pas nĂ©gliger quant Ă  l’époque la plupart du temps, c’était plutĂŽt des trucs que des gens ont essayĂ© de deviner Ă  partir du code sans pouvoir le vĂ©rifier avec le vrai hardware.

J’avais fait un fork de bsnes et de snes9x pour avoir une meilleure Ă©mulation de la Satellaview avec des donnĂ©es externes, au final pour les abandonner au profit de directement contribuer au code officiel de snes9x, et au fork bsnes-plus. Certains ont utilisĂ© cette base de travail sur leur Ă©mulateur comme Mesen. J’ai partiellement aidĂ© au dĂ©veloppement de l’émulation Satellaview sur le flashcart open source sd2snes, en particulier d’expliquer comment ça marche et de faire les donnĂ©es Ă  “tĂ©lĂ©charger” pour faire marcher le plus de contenu possible, car certains jeux refusent de fonctionner sans des donnĂ©es supplĂ©mentaires Ă  tĂ©lĂ©charger.

Les donnĂ©es externes en question on peut les gĂ©nĂ©rer grĂące Ă  SatellaWave, un logiciel que j’avais promis de refaire parce que la premiĂšre version Ă©tait vraiment trop compliquĂ©e Ă  ĂȘtre utilisĂ©e, l’interface Ă©tait imbitable, mĂȘme pour moi qui a rĂ©ussi Ă  ne plus comprendre comment ça marche des annĂ©es plus tard. Je m’étais rĂ©solu Ă  ce moment de ne plus jamais faire de logiciels incomprĂ©hensibles par moi-mĂȘme et de coder mieux, pour faire une version vraiment simple d’utilisation dans le futur. Ce qui a pris vraiment beaucoup trop de temps Ă  ĂȘtre rĂ©alisĂ© par procrastination + la vie privĂ©e qui changeait au fur et Ă  mesure, mais j’ai pu dĂ©velopper ce logiciel de la façon que je voulais en C#, et les (rares) autres personnes qui s’en servent avaient mieux compris comment on s’en sert parce que j’avais tout misĂ© sur l’expĂ©rience utilisateur que je prenais beaucoup plus au sĂ©rieux.

Depuis tout ça, j’aide beaucoup Ă  la prĂ©servation de la Satellaview, parce que, finalement, ce sont tous les problĂšmes typiques d’un service dĂ©matĂ©rialisĂ©. Sauf que, dans les annĂ©es 90, trĂšs peu se sont intĂ©ressĂ©s Ă  prĂ©server ce contenu, donc, maintenant, le seul moyen de prĂ©server, Ă  notre Ă©chelle, c’est d’acheter les cartes mĂ©moire Satellaview et espĂ©rer de voir du nouveau Ă  l’intĂ©rieur, et qui ne soit pas corrompu en plus de ça, ce qui malheureusement, arrive de temps en temps
 Ce n’est pas un service qu’on pourra prĂ©server entiĂšrement, donc la seule chose Ă  faire c’est de prendre ce qu’il y a, mĂȘme si ça coĂ»te vraiment cher en ce moment. Je regarde les dumps avec un Ă©diteur hexadĂ©cimal Ă  la main, parfois aidĂ© d’autres outils, je tente Ă  mon Ă©chelle de planifier tout ça mais c’est gĂ©nĂ©ralement un projet communautaire oĂč les gens dĂ©pensent comme ils peuvent.

Vous avez traduit Marvelous - Another Treasure Island, quel est-ce jeu ?

Marvelous - Another Treasure Island

Marvelous c’est le premier jeu dont Eiji Aonuma, producteur actuel des jeux Zelda, Ă©tait le directeur, juste avant avoir bossĂ© sur The Legend of Zelda : Ocarina of Time. C’est un jeu qui Ă©tait uniquement sorti au Japon, avec deux prĂ©quelles sur Satellaview (Time Athletic & Camp Arnold), qui suit les aventures de trois enfants dans une colonie dans une Ăźle au loin, qui se joue presque comme un Zelda finalement, sauf que c’est beaucoup plus basĂ© sur des Ă©nigmes Ă  rĂ©soudre et le travail d’équipe entre les 3 protagonistes.

C’était dĂ©jĂ  traduit par tashi et DackR y a quelques annĂ©es, et le patch anglais Ă©tait
 disons que j’avais des soucis avec Ă  la fois Ă  cause d’un bug graphique vers la fin du jeu qui n’était pas trop grave. Aussi le script Ă©tait vraiment bizarre par moments mĂȘme si on comprenait trĂšs bien le jeu, mais c’était vraiment un jeu trĂšs sympa Ă  faire.

J’ai voulu traduire les BS Marvelous pour Satellaview, j’ai fini par dĂ©velopper un systĂšme de rendu de texte Ă  largeur variable ce qui Ă©tait assez nouveau puisque le patch anglais du jeu principal n’en avait pas, puis je me suis dit que je pourrais faire peut-ĂȘtre quelque chose pour ce jeu en particulier, il y avait la source de la traduction anglaise, sauf que les outils sont parfois inutilisables
 donc j’ai entrepris de rĂ©implĂ©menter exactement la mĂȘme base mais pour des outils plus actuels et fonctionnels, puis de corriger le bug graphique que j’avais eu. Et ensuite d’amĂ©liorer la technique et la traduction, et, entre-temps, DackR et moi avons pu prendre contact et on s’est arrangĂ©s pour que je fasse uniquement la technique et DackR tout ce qui est texte et graphismes Ă  changer.

On a un rĂ©sultat qui, pour l’instant, n’est pas encore terminĂ©. Mais, tout ce qui est technique est terminĂ© et il ne manque vraiment plus qu’à faire les finitions sur le texte, les graphismes et le bĂȘta test, mais DackR maintenant trĂšs occupĂ© par sa vie. Actuellement le projet est un peu en pause, bien que je tente de faire en sorte que ça puisse sortir cette annĂ©e. AprĂšs ça, j’aimerais pouvoir rĂ©aliser une version française du jeu. Je connais dĂ©jĂ  des gens intĂ©ressĂ©s pour le faire. Je veux vraiment pouvoir rendre ce jeu plus accessible parce qu’il est vraiment sympa et pas trop difficile non plus.

Pouvez-vous nous parler de Ongaku Tsukuru (Music Maker)

Music Maker

Ongaku Tsukuru fait partie de la sĂ©rie Tsukuru, dont fait partie la sĂ©rie RPG Maker dĂ©jĂ  bien connu sur PC, mais ça date de plus de 30 ans ! Et c’était dĂ©jĂ  prĂ©sent sur les micro-ordinateurs de l’époque, mais la ASCII Corporation a publiĂ© des versions Super Famicom, avec RPG Tsukuru Super Dante, puis RPG Tsukuru 2, Sound Novel Tsukuru (un Ă©diteur de jeu textuel avec quelques graphismes basiques) et Ongaku Tsukuru. Ces trois derniers sont compatibles Satellaview avec le systĂšme de carte mĂ©moire, et le truc avec Ongaku Tsukuru c’est qu’on peut crĂ©er des musiques avec un Ă©diteur en mode solfĂšge trĂšs prĂ©cis, puis on pouvait convertir les musiques dans un format compatible pour RPG Tsukuru 2 et Sound Novel Tsukuru, ce qui est plutĂŽt cool, et c’est quelque chose qu’ils ont fait sur les successeurs sur Playstation 1 au Japon aussi.

J’ai commencĂ© Ă  traduire Ongaku Tsukuru un peu pour le fun et de passer le temps. J’ai dĂ» passer Ă©normĂ©ment de temps de trouver comment je peux traduire sans prendre plus de place mĂ©moire vidĂ©o que je n’en ai, et que ça soit comprĂ©hensible surtout : c’est surtout ça le plus compliquĂ©, surtout pour un Ă©diteur avec pleins de menus diffĂ©rents avec des utilisations prĂ©cises


Vous avez patché des jeux (Flash Back, Special Tee Shot), comment et pourquoi ?

Special tee Shot

Souvent je patche parce que j’avais envie de le faire en premier lieu, je fais rarement des requĂȘtes par exemple.

Pour le cas de Flashback sur Super NES j’avais fait un patch MSU1 qui permet d’avoir les musiques qualitĂ© CD et surtout de pouvoir remettre les musiques qui manquent, c’est un portage qui, d’une part, rame pas mal, et les cinĂ©matiques sont jamais Ă  la bonne vitesse, et d’autre part, une bonne partie des musiques ont Ă©tĂ© amputĂ©es du jeu, donc j’ai voulu au moins corriger ce dernier problĂšme. J’avais initialement rĂ©alisĂ© ce patch sur le prototype du MSU1 qui s’appelait 21FX, et pour rĂ©sumer le MSU1 pour celles et ceux qui ne savent pas, c’est une “puce” inventĂ©e de toute piĂšce Ă  l’émulateur pour ajouter un accĂšs Ă  la volĂ©e de 4 Go de donnĂ©es additionnelles et 65536 pistes audio en qualitĂ© CD. Cette “puce” finira par ĂȘtre implĂ©mentĂ©e sur FPGA via le flashcart open source sd2snes (actuellement FX Pak Pro) et deviendra l’implĂ©mentation officielle du MSU1.

Special Tee Shot c’est un jeu de minigolf loufouque qui existe sur Satellaview en 1996, qui a eu un contexte de dĂ©veloppement assez atypique puisqu’il Ă©tait en dĂ©veloppement en 1992 par Nintendo et HAL Laboratory, puis Kirby est sorti et il est devenu Kirby’s Dream Course en 1994, mais qu’ils ont quand mĂȘme fini l’original pour Satellaview en 1996. On a rĂ©ussi Ă  dumper une version de 1992 via une cartouche vendue Ă  1 dollar trouvĂ© par pur hasard, mais les contrĂŽles du jeu sont vraiment beaucoup moins intuitifs pour la visĂ©e de la balle comparĂ© Ă  ce qui est sorti. Du coup j’avais rĂ©alisĂ© un patch pour rendre les contrĂŽles plus proches de la version Satellaview du jeu, parce que je trouve cette version du jeu plutĂŽt intĂ©ressante d’une certaine maniĂšre.

Partie 4 : pour finir

Que dire sur vos autres projets ?

Mario no Photopi

J’aime bien faire des petits projets de temps en temps qui ne nĂ©cessitent pas trop de temps Ă  faire, j’ai dĂ©jĂ  un peu fait du travail sur l’émulation sur du hardware peu connu de la Nintendo 64 comme le lecteur de cartes SmartMedia (qui fait un peu ancĂȘtre de la carte SD) pour Mario no Photopi, un logiciel de compositing photo pour N64 avec une cartouche trĂšs atypique avec deux slots SmartMedia.

Nintendo e-Reader
Nintendo e-Reader

Mes premiers projets de programmation sont en rapport avec l’e-Reader de la Game Boy Advance, qui est un lecteur de cartes Ă  points, avec la mĂȘme technologie que le QR Code mais beaucoup plus petits. Il existait des cartes avec des niveaux entiers pour Super Mario Advance 4, niveaux qui sont prĂ©sents dans la version Wii U et Switch Ă  prĂ©sent. Ce projet s’appelait “Solar Magic Advance” en rĂ©ference Ă  Lunar Magic, l’éditeur de niveaux de Super Mario World par excellence. J’avais Ă  la base rĂ©alisĂ© un gĂ©nĂ©rateur de cartes pouvoir (qui file un power-up dans l’inventaire) sur Liberty Basic parce que je ne savais pas encore coder Ă  l’époque, puis au fur et Ă  mesure je prenais conscience des limitations techniques, je suis passĂ© sur Visual Basic avec une version qui lit les cartes niveaux, puis j’ai appris le C# que j’utilise rĂ©guliĂšrement sur beaucoup d’autres projets. Au final Solar Magic Advance n’est restĂ© qu’un projet vaporware, le vrai Ă©diteur de niveaux que j’avais prĂ©vu ne sera probablement jamais rĂ©alisĂ©, bien trop occupĂ© ailleurs pour le faire.

Au final j’aurai quand mĂȘme rĂ©alisĂ© quelques projets pour la GBA, comme un logiciel de communication pour Super Mario Advance 4 et Mario VS Donkey Kong pour transfĂ©rer les donnĂ©es e-Reader, et un logiciel qui permet de prĂ©tendre Ă  la GBA d’ĂȘtre un pĂ©riphĂ©rique pour Nintendo 64 reliĂ© Ă  une Game Boy Printer, jamais sortie mais totalement compatible et fonctionnel dans Mario Artist Paint Studio et Communication Kit. Il est mĂȘme compatible avec une eventuelle Game Boy Printer Color, qui n’a jamais Ă©tĂ© annoncĂ©.

Vous avez de futurs projets en cours ?

Je retente une petite carriĂšre de vidĂ©os YouTube travaillĂ©es, mais ça prend un peu de temps, ça sera ultra niche, je ne cherche pas forcĂ©ment une certaine popularitĂ© dans ce milieu, mais je veux pouvoir parler de sujets qui me passionnent sans filtre. La premiĂšre grosse vidĂ©o sera sur l’accessoire Turbo File Twin pour la Super Famicom, mais ça reste assez demandeur donc il n’est pas impossible que je chercherai Ă  faire une vidĂ©o plus courte et facile Ă  rĂ©aliser avant.

Au niveau personnel, quels logiciels libres utilisez-vous, sur quel OS ?

Je suis majoritairement un utilisateur de Windows, mais, des logiciels dont j’ai eu beaucoup d’utilitĂ© c’est je pense bass qui est un logiciel Ă  la base dĂ©veloppĂ© par Near puis forkĂ© par un autre qui se nomme ARM9, et ça permet d’assembler du code assembleur trĂšs trĂšs bas niveau, Ă  la base ça faisait du 65c816 pour SNES et du THUMB pour ARM7TDMI pour GBA (pour la traduction anglaise de Mother 3, entre autres), puis ce fork a vraiment Ă©tĂ© plus loin dans le dĂ©lire pour permettre encore plus d’architectures, et ça me sert pour tous mes projets rĂ©tro comme les ROM hacks et les traductions de jeux.

J’ai dĂ©jĂ  utilisĂ© Blender, Inkscape, Audacity, pour des trucs parfois plus crĂ©atifs, OpenSCAD Ă  un moment pour faire des modĂšles 3D Ă  imprimer. J’utilisais MadEdit et maintenant son fork wxMEdit en tant qu’éditeur texte basique et surtout hexadĂ©cimal parce qu’il reconnaĂźt vraiment beaucoup d’encodages de caractĂšres diffĂ©rentes dont le EUC-JP qui est plutĂŽt abandonnĂ© dans beaucoup d’éditeurs alors que j’en ai parfois besoin quand je m’attelle Ă  des trucs vieux qui s’en servent.

Au niveau professionnel, quels logiciels libres utilisez-vous, sur quel OS ?

Tout est un peu entremĂȘlĂ©, donc je n’ai pas vraiment de rĂ©ponse diffĂ©rente Ă  donner.

Quelle est votre distribution GNU/Linux préférée et pourquoi, quels sont vos logiciels libres préférés ?

J’ai plutĂŽt tendance Ă  utiliser Kubuntu juste pour l’interface KDE qui se rapproche de Windows, mais c’est vrai que j’ai pas pour habitude d’utiliser Linux en dehors du Windows Subsystem for Linux en ce moment, et via Docker parce que l’environnement de dĂ©veloppement des distros Linux en gĂ©nĂ©ral sont quand mĂȘme bien supĂ©rieures Ă  Windows, mais c’est pas Ă©vident de changer des habitudes qui sont restĂ©es depuis l’enfance.

Quelle question auriez-vous adorĂ© qu’on vous pose ?

HonnĂȘtement si on me pose des questions sur la Satellaview et la 64DD ou tous mes autres sujets de prĂ©dilections, je reste plutĂŽt heureux de rĂ©pondre.

Quelle question auriez-vous dĂ©testĂ© qu’on vous pose ?

“Pourquoi prends-tu autant de temps pour faire quelque chose ?” – Parce que mĂȘme si je fais quand mĂȘme pas mal de trucs, je reste aussi un immense flemmard et procrastinateur, et j’ai rarement eu une rĂ©ponse satisfaisante Ă  donner.

Yakumono

Aller plus loin

  • # devnewton, j'adore tes interviews !

    Posté par  . Évalué à 6.

    J'adore tous ces à-cÎtés que les personnes interviewés mettent dans leur réponses. Tu les choisit bien! ou alors ce sont les gens de la scÚne qui sont tous comme ça.
    C'est super intĂ©ressant en tout cas de lire qu'on peut faire de l'assembleur, bricoler sans tout comprendre pour au final maĂźtriser pas mal de trucs obscurs, sans ĂȘtre passĂ© par la case "Ă©cole d'ingĂ©nieur".
    Et puis la scÚne c'est tout un cÎté du libre dont on parle trop peu ici.

Suivre le flux des commentaires

Note : les commentaires appartiennent Ă  celles et ceux qui les ont postĂ©s. Nous n’en sommes pas responsables.