Entretien avec Alekmaul Ă  propos de PVSnesLib

Posté par  (site web personnel) . ÉditĂ© par NeoX, BenoĂźt Sibaud, ted et Ysabeau đŸ§¶. ModĂ©rĂ© par Ysabeau đŸ§¶. Licence CC By‑SA.
43
9
août
2023
Jeu

Alekmaul dĂ©veloppe un SDK pour crĂ©er des jeux pour la console Super Nintendo 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.

Super Nintendo

Sommaire

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, 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, Casio PB-100 et 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, 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 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. 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 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).

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 ^^.

SNES Mini

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

Les manettes d’origines, elles me suffisent et fonctionnent bien :P.
Manette US

Les émulateurs SNES sont-ils bons ?

Ils sont plus ou moins bons. Le meilleur est le dernier sorti : 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.

Chrono Trigger

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, 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 ^^).

Sydney Hunter and the Caverns of Death
Eyra the Crow Maiden
Block em Sock em

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).

multitap

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 !

Super scope

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.

souris

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 )

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 :D » !

Aller plus loin

  • # je vais me rĂ©pĂ©ter

    Posté par  . Évalué à 6. DerniĂšre modification le 09 aoĂ»t 2023 Ă  18:18.

    Je l'ai déjà dit dans les commentaires dess autres interviews, mais c'est une chouette interview avec plein d'infos et de la technique dedans !
    linuxfr.org, plus fort que les éditions « retro-machin » et leurs « anecdotes » sur la couleur du slip du programmeur !

    Il reste des consoles à voir dans de futures interviews ?

    Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

    • [^] # Re: je vais me rĂ©pĂ©ter

      Posté par  . Évalué à 3.

      Il reste des consoles à voir dans de futures interviews ?

      Si tu n'as pas peur de te faire spoiler, c'est direct en avant-premiĂšre pour l'interview suivant.

    • [^] # Re: je vais me rĂ©pĂ©ter

      Posté par  (site web personnel) . Évalué à 6.

      Il reste des consoles à voir dans de futures interviews ?

      Il en reste un paquet : pour les plus connues comme la PC Engine ou la GameBoy, je pense trouver en guettant les forums.

      Pour la FM Towns Marty ou le Philips CD-i, ce sera plus dur :-)

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

      • [^] # Re: je vais me rĂ©pĂ©ter

        Posté par  . Évalué à 2.

        N'oublions pas le SDK de la Videopac :)

        Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

      • [^] # Re: je vais me rĂ©pĂ©ter

        Posté par  (site web personnel, Mastodon) . Évalué à 2.

        Pour l'Amstrad CPC: https://github.com/lronaldo/cpctelera

        L'interview des organisateurs de http://cpcretrodev.byterealms.com/en/ pourrait ĂȘtre intĂ©ressante aussi (concours de programmation oĂč participent entre autres des Ă©tudiants d'universitĂ© qui reçoivent un cours sur la programmation de l'Amstrad CPC. Des points bonus sont attribuĂ©s aux jeux publiĂ©s sous licence libre)

        • [^] # Re: je vais me rĂ©pĂ©ter

          Posté par  (site web personnel) . Évalué à 5.

          Je cherche des francophones et du logiciels libres pour coller Ă  la ligne Ă©ditoriale invisible de linuxfr.

          Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

          • [^] # Re: je vais me rĂ©pĂ©ter

            Posté par  . Évalué à 2.

            J'ai cru que tu allais faire remarquer que le CPC n'Ă©tait pas une console de jeux (enfin dans les faits si, mais c'est un autre dĂ©bat :ĂŸ )

            Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

            • [^] # Re: je vais me rĂ©pĂ©ter

              Posté par  (site web personnel) . Évalué à 3.

              Je ne compte pas me limiter aux consoles !

              Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

            • [^] # Re: je vais me rĂ©pĂ©ter

              Posté par  (site web personnel, Mastodon) . Évalué à 2.

              ça marche aussi pour la console Amstrad GX4000 qui utilise le mĂȘme matĂ©riel que l'Amstrad 464Plus (sans clavier et sans lecteur cassettes).

              • [^] # Re: je vais me rĂ©pĂ©ter

                Posté par  (site web personnel) . Évalué à 3.

                A propal, à quand une console ou un micro ordinateur avec Haiku ? :-)

                Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

                • [^] # Re: je vais me rĂ©pĂ©ter

                  Posté par  . Évalué à 2.

                  Sur le raspberry ou apparenté, ça serait bien.

                  Je suis étonné que ces cartes n'aient pas leur propre OS et fassent tourner péniblement un linux et son écosystÚme , inutilement lourd pour elles (quand on veut l'utiliser en desktop, ce qui serait le cas d'une machine de jeux).

                  Discussions en français sur la création de jeux videos : IRC freenode / #gamedev-fr

          • [^] # Re: je vais me rĂ©pĂ©ter

            Posté par  . Évalué à 3.

            Quid de l'AMIGA ??

            Aussi quid s'il y a interview en anglais qui est ensuite traduite en français ? (parce qu'il y a pas mal de personne dans le retro libre qui parle en anglais (pas juste US ou UK )) Sinon on se coupe d'une partie de la richesse et de la diversité des talents dans le libre (en plus sachant que matiÚre jeux vidéos et retro gaming en général c'est le parent pauvre du libre )

            • [^] # Re: je vais me rĂ©pĂ©ter

              Posté par  (site web personnel) . Évalué à 4.

              Je connais mal le monde Amiga, si tu as des idées


              Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

              • [^] # Re: je vais me rĂ©pĂ©ter

                Posté par  . Évalué à 3.

                Il y a l'émulateur UAE, avec un historique amrrant: le U de UAE signifie "Unusable" car l'émulation était beaucoup trop lente au début :-D

                AprÚs, il y a AmigaOS qui est toujours maintenu, donc il y a sans doute des développeurs qui peuvent en parler (ou pas, histoire de droits tout ça).

  • # processeur SNES

    Posté par  . Évalué à 2. DerniĂšre modification le 28 aoĂ»t 2023 Ă  12:06.

    Bonjour,
    D’abord, merci à Alekmaul pour ce super SDK (que j’utilise actuellement)
    J’ai une remarque concernant le processeur de la Super Nintendo :
    Dans l’interview Alekmaul qualifie le processeur de la snes de « bien lent » par rapport Ă  la Megadrive.

    Je voulais apporter une précision :
    Le processeur de la snes est certes plus lent en frĂ©quence d’horloge que celui de la Megadrive

    Megadrive : Motorola 68000 => 7,67 MHz
    SNES : 65816 (dérivé du 6502) => 3,58 MHz

    Mais les 2 architectures (et les jeux d’instructions) Ă©tant diffĂ©rentes, il n’est pas judicieux de les comparer de cette maniĂšre
    Pour exemple, un benchmark de l’époque donne :

    Motorola 68000 Ă  7,67 MHz => 1,4 MIPS
    6502 Ă  3,58 MHz => 1,79 MIPS

    (Ce qui ne veut pas dire non plus que le processeur de la snes est plus rapide que celui de la Megadrive, mais ça fait relativiser)

    La véritable raison pour laquelle la snes semble parfois « asthmatique » sur certains jeux est certainement le bus de données de 8 bits contre 16 bits sur Megadrive
    Finalement, je qualifierais le processeur de la snes de comparable a celui de la megadrive
    Nintendo a fait le choix de privilĂ©gier les capacitĂ©s graphiques de la console, c’est sur ce point la que la console excellait (mode7
)
    J’adore ces 2 consoles, c’était une Ă©poque ou les consoles avaient de la personnalitĂ©, on pouvait reconnaitre la console avec une semble image d’un jeu (en se basant sur les couleurs ou les effets)

    • [^] # Re: processeur SNES

      Posté par  (Mastodon) . Évalué à 5.

      J’adore ces 2 consoles, c’était une Ă©poque ou les consoles avaient de la personnalitĂ©, on pouvait reconnaitre la console avec une semble image d’un jeu (en se basant sur les couleurs ou les effets)

      Oui. On a toujours Ă©tĂ© dans une maison SEGA mais on a eu la chance de pouvoir faire des Ă©changes de consoles avec des copains. C'Ă©tait sympa de pouvoir jouer pendant 3-4 mois avec la SNES, certains jeux Ă©taient bien diffĂ©rents. J'exprimerais ça dans le sens oĂč la megadrive avait un bon rendu mĂ©tal quand la snes avait un bon rendu plastique. Je m'explique: mĂȘme si les textures Ă©taient plus dĂ©taillĂ©es sur les versions SNES, les jeux sombres avec des contrastes et jeux de lumiĂšres rendaient en gĂ©nĂ©ral mieux sur megadrive Ă  mon humble avis, je pense par exemple aux Castlevania, Ghouls 'n Ghosts, etc. En revanche tout ce qui Ă©tait tirĂ© de dessin animĂ©, mangas, avec des couleurs vives me paraissaient meilleurs sur la SNES>

      On pouvait mĂȘme aussi remarquer sur une console unique quels Ă©taient les jeux "natifs" (dans le sens crĂ©Ă©s pour elle) et quels Ă©taient les ports. Par exemple les ports de jeux Amiga/Atari ST avaient souvent une patte diffĂ©rente (plus adulte?).

Suivre le flux des commentaires

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