URL: https://linuxfr.org/news/entretien-avec-alekmaul-a-propos-de-pvsneslib Title: Entretien avec Alekmaul Ă propos de PVSnesLib Authors: devnewton đș NeoX, BenoĂźt Sibaud, ted et Ysabeau đ§¶ Date: 2023ćčŽ08æ06æ„T19:40:15+02:00 License: CC By-SA Tags: retrogaming, super_nintendo, retrosdk et rĂ©tro-informatique Score: 43 Alekmaul dĂ©veloppe [un SDK pour crĂ©er des jeux pour la console Super Nintendo](https://github.com/alekmaul/pvsneslib) aussi appelĂ©e Super NES ou SNES, cet entretien revient sur son parcours et les raisons qui lâont amenĂ© Ă sâintĂ©resser Ă cette console.  ---- [PVSnesLib](https://github.com/alekmaul/pvsneslib) [L'architecture de la Super Nintendo](https://www.copetti.org/writings/consoles/super-nintendo/) [Un dossier consacrĂ© Ă cette console](https://www.grospixels.com/site/snes.php) [Le site d'Alekmaul](https://www.portabledev.com/) [Le site d'Alekmaul Studio](https://alekmaulstudio.fr/) ---- Partie 1: prĂ©sentation ====================== ## Qui ĂȘtes-vous, quel est votre parcours et est-il liĂ© aux jeux vidĂ©os ? Hello, je mâappelle Jean-Michel Girard, connu sous le nom dâAlekmaul dans le monde du retro gaming. Jâai fait des Ă©tudes dâinformatique il y a maintenant bien longtemps oĂč lâon apprenait encore comment dĂ©velopper en assembleur ;) **NDM: moules< enseignantes et Ă©tudiantes, nâhĂ©sitez pas Ă rĂ©agir en commentaires sur ce sujet de lâenseignement de lâassembleur** Jâai toujours aimĂ© dĂ©velopper des jeux vidĂ©os. Jâai connu la grande Ă©poque [dâHebdogiciel](https://fr.wikipedia.org/wiki/Hebdogiciel), le journal qui publiait des listings Ă taper sur le clavier de pas mal de machines, listings quâenvoyaient les lecteurs du journal. Moi-mĂȘme je nâai jamais Ă©tĂ© publiĂ© dedans Ă lâĂ©poque ^^. Jâai vu les dĂ©buts des micro-ordinateurs et consoles dans les annĂ©es 80, jâai commencĂ© Ă dĂ©velopper sur [ZX81](https://fr.wikipedia.org/wiki/ZX81), [Casio PB-100](https://fr.wikipedia.org/wiki/Casio_PB-100) et [ZX Spectrum](https://fr.wikipedia.org/wiki/ZX_Spectrum), ma passion du dĂ©veloppement de jeux vidĂ©os date de lĂ ;) Jâai aussi fait un passage Ă©clair dans le jeu vidĂ©o chez Virgin Espagne pour dĂ©velopper un jeu sur [DS](https://fr.wikipedia.org/wiki/Nintendo_DS), mais yâa eu la banqueroute en Espagne Ă ce moment-lĂ (vers 2010 si je me souviens bien), il nâest jamais sorti mais je suis fier dâavoir pu profiter du kit officiel de Nintendo sur DS \^\^. Jâai maintenant 56 ans, je travaille toujours dans lâinformatique dans le monde du paiement sur Internet, je gĂšre des personnes, des projets mais je ne dĂ©veloppe plus. Je mâĂ©clate donc Ă dĂ©velopper sur mon temps perso sur de vieilles consoles ! Partie 2: SNES ============== ## Comment en ĂȘtes-vous venu Ă vous intĂ©resser Ă la SNES ? Câest un ami, connaissant mes crĂ©ations sur Nintendo DS et [GBA](https://fr.wikipedia.org/wiki/Game_Boy_Advance) qui mâa demandĂ© de voir si jâĂ©tais intĂ©ressĂ© pour rĂ©aliser un kit de dĂ©veloppement sur SNES. En effet, le dĂ©veloppement en assembleur est pas simple et il se disait que si quelque chose Ă©tait disponible en C comme pour la GBA ou la DS, ça aiderait Ă promouvoir cette machine. Un dĂ©but de kit existait sur googlecode, basĂ© sur un fork du compilateur [tcc](https://bellard.org/tcc/). Tout est parti de lĂ sur cette console. Je lâai sorti il y a maintenant plus de 10 ans sur SNES, pour les 20 ans de la console en France. On continue toujours Ă maintenir PVSneslib avec de plus en plus de contributeurs ! ## Quâest-ce que cette console a de particulier ? Elle nâest pas facile Ă programmer avec son processeur entre le 8 bits et 16 bits. Elle possĂšde un chip sonore bien sympathique et des capacitĂ©s graphiques permettant pas mal dâeffets surtout avec lâaide des transferts rapides de mĂ©moire possibles. Ses diffĂ©rents modes graphiques peuvent ĂȘtre un atout mais aussi un frein Ă comprendre la console. Sa rĂ©solution est moindre que la Megadrive mais dans la lignĂ©e des machines de lâĂ©poque. Son processeur est par contre bien lent, ça aurait Ă©tĂ© super dâavoir un 68000 dedans \^\^. **NDM : la console taĂŻwanaise [Super A'Can](https://fr.wikipedia.org/wiki/Super_A%27Can) ressemble beaucoup Ă une Super Nintendo avec un 68000. Si vous programmez dessus, nâhĂ©sitez Ă contacter devnewton< pour un futur entretien.** ## Comment fonctionne les processeurs graphiques (Super PPU) ? Le processeur graphique est du mĂȘme genre que les autres consoles de lâĂ©poque. Il possĂšde certains modes graphiques avec un certain nombre de couleurs gĂ©rables par mode graphique. Le mode le plus utilisĂ© est le mode 1. Chaque mode possĂšde un certain nombre de « fonds » ou plans sur lequel on peut rĂ©aliser des graphiques, les faire se dĂ©placer. Chaque plan dans ce mode possĂšde 16 couleurs parmi « tout plein » de couleurs, comme les sprites. On fait ainsi de trĂšs jolis jeux (non je dirais pas des jeux plus jolis que sur Megadrive ;) :P ). On possĂšde aussi un certain nombre dâobjets animĂ©s nommĂ©s sprites, ce qui aide beaucoup pour tout Ă dessiner sur un seul plan. Le terme « Super PPU », en tant que tel, je connais pas dĂ©solĂ© :( ( **NDM: ce terme est utilisĂ© par [cet article](https://www.copetti.org/writings/consoles/super-nintendo/)**). ## Comment fonctionnent les puces sonores (S-DSP, SPC700) ? La puce sonore fonctionne par transfert de donnĂ©es depuis la puce de la SNES vers le processeur du SPC700. Cela prend donc du temps, câest pour cela que dans mes jeux, yâa un petit dĂ©lai au dĂ©but des niveaux pour transfĂ©rer les musiques. De plus, elle ne supporte pas plus de 64Ko de mĂ©moire, sons et programmes sonore compris, câest peu mais il faut faire avec ! ## Beaucoup de cartouches embarquent des coprocesseurs, quels sont les plus remarquables ? Jâen sais fichtrement rien :D ! je ne dĂ©veloppe pas sur ces processeurs. Peut-ĂȘtre que le DSP1 est sympa de part ses capacitĂ©s de calculs matriciels et le Super-FX pour la 3D ;) ## La SNES a rĂ©cemment eu une version « mini » ? Quâen pensez-vous ? Câest mignon, câest mini, pas grand-chose de plus. Je la possĂšde Ă la maison, mais elle prend la poussiĂšre je dois dire \^\^. Faudrait que je la patche un de ces jours avec mes jeux pour les voir sur grand Ă©cran \^\^.  ## Quelle est votre manette prĂ©fĂ©rĂ©e ? Les manettes dâorigines, elles me suffisent et fonctionnent bien :P.  ## Les Ă©mulateurs SNES sont-ils bons ? Ils sont plus ou moins bons. Le meilleur est le dernier sorti : [Mesen-S](https://github.com/SourMesen/Mesen-S) ou MEsen maintenant depuis la reprise du projet par lâauteur aprĂšs quelques rebondissements. B-Snes est trĂšs bon aussi. Jâutilise pas mal aussi no$sns, car câest facile de dĂ©boguer avec. Mais lâĂ©mulation nâest pas tout Ă fait fidĂšle pour ce dernier. En gros, Mesen-S pour tester la compatibilitĂ© avant de tester sur une vraie console (car rien ne remplace les vraies consoles) et no$sns pour debugger rapidement. ## Quels sont vos jeux commerciaux prĂ©fĂ©rĂ©s sur cette console ? Mario Kart et Metroid ! Mais aussi Chrono Trigger qui est une vraie claque sur SNES.  ## Quels sont vos jeux "homebrew" prĂ©fĂ©rĂ©s sur cette console ? HĂ©hĂ©, je vais pas dire les miens, mais il y en a trĂšs peu sur SNES. Certainement les homebrews de [Shiru](http://shiru.untergrund.net/software.shtml), un dĂ©veloppeur russe bourrĂ© de talent. Comme par exemple Classic Kong qui exploite bien la console. ## Pourquoi crĂ©er un SDK aujourdâhui pour si vieux systĂšme ? Jâai créé le SDK Ă la demande dâun ami. Il voulait savoir si on pouvait programmer facilement sur cette console. Je suis parti dâun code basĂ© sur un fork de tcc par Ulrich Hecht nommĂ© SNES C SDK. Les 20 ans de la console arrivaient, câĂ©tait le bon moment de travailler sur quelque chose. Le SDK commence donc Ă dater mais nâa pas eu beaucoup de succĂšs au dĂ©part, mais il commence Ă prendre forme maintenant, 10 ans plus tard... ## Est-ce que vous participez vous-mĂȘme Ă la crĂ©ation de jeux ? Ah bah oui, câest mĂȘme mon activitĂ© principale sur SNES. Parmi les plus connus, jâai créé Sydney Hunter and the Caverns of Death, puis Eyra the Crow Maiden et je travaille maintenant sur The Illmoore Bay (plus pas mal dâautres jeux aussi `^^`).    ## Quels ont Ă©tĂ© les difficultĂ©s pour crĂ©er PVSnesLib ? Tout dâabord, bien connaitre la console. Câest le minimum avant de se lancer lĂ -dedans. Jâai donc potassĂ© tout ce que je trouvais, consultĂ© les wikis, le fichier dâaide de no$sns qui est une mine dâinformation. Ensuite, il faut rĂ©flĂ©chir Ă trouver comment rĂ©aliser quelque chose de portable (et il reste du chemin avec PVSNeslib !) pour que tout le monde puisse lâutiliser sur son projet. Câest ce que jâai tentĂ© de faire. Dâautres personnes ont utilisĂ© le kit, mâont fait part de remarque et on est maintenant plusieurs Ă le faire Ă©voluer, ce qui est ma plus grande fiertĂ© ! ## Vous aimeriez vivre du dĂ©veloppement de ce logiciel libre? Vivre du dĂ©veloppement de jeu sur ancienne console ? Pas possible Ă mon avis, il faut faire quelque chose Ă cĂŽtĂ©. Pour ma part, câest maintenant plus un projet pour ma retraite ! Jâai dâailleurs créé « Alekmaul Studio » pour essayer de rĂ©gulariser tout cela et prĂ©parer cette seconde Ă©tape dans mes dĂ©veloppements Homebrews. ## Quels materiels sont gĂ©rĂ©s par PVSnesLib ? ### Est-ce que PVSnesLib gĂšre les multitaps ? Oui, il gĂšre le multitap et un futur jeu va lâexploiter (Bizbille, pour mes amis Canadiens, un genre de roue de la fortune).  ### Est-ce que PVSnesLib gĂšre les pistolets (Super Scope) ? Jâai un dĂ©but dâimplĂ©mentation mais rien de concret ! Jâattends de lâaide sur ce sujet !  ### Est-ce que PVSnesLib gĂšre dâautres pĂ©riphĂ©riques de la SNES (souris, modems...) ? Non, rien dâautre pour lâinstant, Ă part la SRAM.  ## Quels conseils donneriez-vous Ă quelquâun qui veut se lancer dans le dĂ©veloppement SNES ? Erf... Tout dâabord avoir la passion car ça va ĂȘtre long. Ensuite, connaitre le langage C, langage utilisĂ© pour programmer avec PVSnesLib. Puis, connaitre le langage machine de la SNES (le 65C816), car ça aide Ă debugger. Et enfin et surtout, connaitre la SNES, comment elle fonctionne, quelles sont ses limites en matiĂšre de graphismes, de son, de mĂ©moire. ### Quels sont les outils pour crĂ©er/prĂ©parer des graphismes utilisable par PVSnesLib ? Jâutilise GraphicGale pour crĂ©er mes graphiques et câest ensuite lâoutil gfx2snes, livrĂ© avec PVSneslib qui fait le job pour rendre cela compatible avec ce que lâon souhaite. ### Quels sont les outils pour crĂ©er/prĂ©parer des musiques et des sons utilisable par PVSnesLib ? Il faut un tracker de musique qui supporte le format IT, comme openMPT. Lâoutil smconv livrĂ© avec PVSneslib fera ensuite le job pour rendre tout cela compatible avec ce que lâon souhaite. ### Est-il possible de crĂ©er ses propres cartouches ? Bien sur ! jâen suis dĂ©jĂ Ă 4 jeux diffĂ©rents Ă©ditĂ©s sur SNES :) ! ### Comment sâaccommoder des faibles ressources (peu de RAM, CPU 8 bits...) ? Bah, faut rĂ©flĂ©chir, bien poser les problĂšmes, savoir optimiser ce quâil faut (on le dit jamais assez mais un octet fait 8 bits, on peut donc stocker 8 informations binaires dedans \^\^). Partie 3: pour finir ==================== ## Au niveau personnel, quels logiciels libres utilisez-vous, sur quel OS ? Quâest-ce que lâon qualifie exactement de logiciel libre ? ( **NDM : en gĂ©nĂ©ral sur linuxfr, on parle de logiciel libre pour ceux qui respectent les [4 libertĂ©s](https://www.gnu.org/philosophy/free-sw.html#four-freedoms)** ) Les compilateurs pour mes programmes, dont jâai les sources, ça câest certain. Je crois que jâutilise peu de logiciels libres en tant que tel. Car sinon, jâai aussi du VSCode et du VirtualBox pour tester et Ă©diter, mais je pense pas que cela soit considĂ©rĂ© comme du libre. Jâutilise par contre pas mal de logiciels gratuits. Ah si, jâutilise aussi VI, jâadore :D ! ## Au niveau professionnel, quels logiciels libres utilisez-vous, sur quel OS ? Je ne peux hĂ©las pas en parler ;) Tout ce que je peux dire câest que lâon dĂ©veloppe avec Java sous Linux (RedHat). ## Quelle est votre distribution GNU/Linux prĂ©fĂ©rĂ©e et pourquoi, quels sont vos logiciels libres prĂ©fĂ©rĂ©s ? Ubuntu est sympa pour le peu de ce que je fais sous Linux. Au taf, on est sous RedHat. Pas de logiciel libre sur Linux, je mâen sers uniquement pour tester PVSneslib et la compilation de cette derniĂšre. ## Quelle question auriez-vous adorĂ© quâon vous pose ? Je dois dire que je sais pas... Peut ĂȘtre « tâes pas trop vieux pour faire ce genre de chose ? » :D ! ## Quelle question auriez-vous dĂ©testĂ© quâon vous pose ? Câest pas vraiment une question mais plus quelque chose qui est de plus en plus frĂ©quent et qui me fatigue : pourquoi ne pas faire un SNESStudio ou un SNESMaker ? Câest trop dur de dĂ©velopper avec PVSneslIb... Jâai mĂȘme le droit à « câest plus simple de dĂ©velopper sur Megadrive avec [SGDK](https://linuxfr.org/news/entretien-avec-stephane-d-a-propos-du-sgdk) :D » !