Wednesday, December 23, 2020

Bonjour Stravingo

Je vous ai déjà un peu parlé de Stravingo, un développeur de homebrew avec qui j'avais eu quelques contacts du côté de 2007. Il a lancé un nouveau site web ces derniers temps, l'occasion de le retrouver et de lui poser quelques questions.

Voilà, donc. Est-ce que tu peux nous raconter comment tu as découvert la programmation homebrew ? Et à quelle époque de ta vie as-tu fait tes premiers pas sur DS ?

En fait, je suis tombé dans la programmation depuis tout petit, vers l'âge de 10 ans au début des années 80, grâce à un ZX81 gagné par mes parents à un concours organisé par un supermarché. C'était les débuts de la micro-informatique, rare étaient les gens qui avaient un ordinateur chez eux. Mais cette petite machine à l'affichage monochrome dotée de 1Ko de RAM a complètement orienté ma destinée et m'a permis de découvrir ce que je souhaitai faire plus tard. J'ai commencé à programmer très tôt, car à l'époque il était difficile de se procurer des cassettes de jeux pour cette machine.
J'ai en revanche eu des livres et des magazines expliquant la programmation en basic et donnant des listings d'exemples. J'ai donc dû pour jouer recopier ces exemples, parfois les relire pour trouver des erreurs de recopie occasionnant des bugs, appris peu à peu à les modifier puis à créer à partir de zéro mes premiers programmes. J'ai ainsi appris tout seul à programmer, en tâtonnant avec les ressources de l'époque. Mes premiers véritables cours en informatique, je ne les ai eu qu'à la fac 10 ans plus tard !
Entre temps j'ai eu d'autres ordinateurs, un ZX Spectrum donné par un oncle féru d'informatique qui m'a permis d'afficher mes premiers pixels en couleur (quelle émotion, encore maintenant), puis un Atari STE qui a redonné un coup de fouet à ma passion pour l'informatique. C'était pour moi une révolution, sonore et visuelle ! J'ai beaucoup joué dessus, mais aussi beaucoup codé. Toujours en Basic grâce à l'excellentissime GFA Basic, mais c'est aussi là que j'ai découvert l'assembleur et le langage C.

Le même GFA BASIC qui avait été utilisé par Eric Chahi pour développer les outils de son "Another World", si ma mémoire est bonne. Mais légèrement plus jeune qu'Eric ou Michel Ancel (qui avait aussi commencé sur ZX81?) si je calcule bien. Avais-tu déjà essayer de programmer sur une autre console (avant la DS) ou sur un autre appareil embarqué avant ? Avais-tu fais de la programmation PC ?
 C'était l'époque où le monde vidéoludique se partageait en 4 : l'arcade, les consoles, les Atari/Amiga, et les PC. Les Mac étaient dans une dimension un peu parallèle. Personne parmi mes connaissances n'avait de console ou de PC, mais j'en suivais l'actualité avec émerveillement dans les pages du regretté magazine TILT. Je voyais bien que les Super NES, Megadrive et autres PC Engine tenaient la dragée haute à l'Atari (je n'entrerai pas dans la polémique Atari/Amiga), mais le monde de la console ne m'interessait pas à l'époque, car une machine sans clavier qui ne permettait que de jouer ne me disait rien.
C'était la programmation qui m'attirait avant tout. Mais pas forcément pour développer des jeux. Ce que j'aime dans la programmation, c'est la possibilité de créer. Toutes sortes de choses. C'est un outil qui permet de créer et c'est ça en fait que j'aime avant tout, et pas forcément que dans le domaine de l'informatique.
Marrant... de mon côté, il y avait beaucoup de PC, quelques consoles 16-bit et quelques Amigas parmi les potes rencontrés après mes 15 ans. Pour jouer sur Amiga, il fallait une autorisation parentale et prendre deux bus. Et personne n'avait pris d'Atari.
Puis ça a été l'hégémonie du PC et les machines 16/32 bits ont laissé leur place. Un âge d'or à mon sens a disparu et j'en garde la nostalgie. Celle où deux potes peuvent faire un jeu dans leur garage. C'est ce qui est revenu avec l'esprit du homebrew et qui me plait. J'ai eu de nombreux PC, mais je crois que je ne me suis toujours pas remis de pouvoir afficher 256 couleurs simultanément avec une carte VGA. Merci Sylvain de me permettre de faire cette thérapie 😉 J'ai continuer à coder, sur PC et sur Mac, et j'en ai même fait mon métier 🙂

Mais pour ce qui est des consoles, c'est un monde dans lequel je n'ai mis les pieds que très tardivement ! J'ai acheté ma première Nintendo DS en 2007, mais très rapidement j'ai cherché un moyen de la programmer et c'est là que j'ai découvert de monde du homebrew et de ses kits de développement amateurs. 
Ca m'a tout de suite plu, car la petite bestiole aux deux écrans a bien des charmes et des possibilités techniques que j'ai cherché à expérimenter au travers de la réalisation de jeux (Ka-Boom, Setsuzoku no Puzzle) et d'utilitaires (DS Weather Report, Treasures of Gaia, Miniville DS Manager, Secret Hordes) et de quantité de projets plus ou moins esquissés. J'ai aussi découvert une communauté très active de développement amateur sur Nintendo DS, en particulier française sur un site web hélas maintenant disparu, dev-fr.org. C'est cet esprit de communauté que j'aime beaucoup dans le monde du homebrew, avec son esprit d'entraide, d'apport d'outils, de vision critique.
Une disparition que je regrette aussi, évidemment. On retrouve certains anciens sur twitter, de temps en temps, mais ce n'est plus la même chose.

L'autre console que j'ai acheté, c'est cette année, une gameboy FAT première génération de 1989. Avant tout pour le côté icônique, la nostalgie d'une époque, la beauté de son design. Mais on ne se refait pas, le côté programmeur a vite pris le dessus. J'ai acheté une cartouche avec mémoire flash, je me suis interessé aux possibilités de développement, et je viens de sortir mon premier essai de programme, Kalimboy, permettant d'utiliser la Gameboy comme kalimba, le "piano à pouces" africain 🙂
Intéressant. Je me demande si ça fonctionne aussi avec une cartouche programmable avec carte micro-SD ...
Sinon, en matière d'appareil embarqué, j'ai réalisé des applis sur smartphone et iPad, sur Arduino, sur Raspberry Pi et aussi sur une pédale d'effets pour guitare programmable ! En fait, ce que j'aime, c'est la diversité, explorer de nouveaux champs d'expression via la programmation, expérimenter de nouvelles plateformes, pas forcément récentes. D'ailleurs la programmation sur Super NES et sur Megadrive me tente bien 😉
Je te comprends ^_^

No comments: