Entretien avec Fabien Sanglard Ă  propos du CPS-1

Posté par  (site web personnel) . ÉditĂ© par BAud, Christophe, Julien Jorge, orfenor, tisaac et Ysabeau đŸ§¶. ModĂ©rĂ© par Ysabeau đŸ§¶. Licence CC By‑SA.
Étiquettes :
55
19
oct.
2022
Jeu

Fabien Sanglard a publiĂ© rĂ©cemment un SDK pour crĂ©er des jeux pour le systĂšme de Capcom, cet entretien revient sur son parcours et les raisons qui l’ont amenĂ© Ă  s’intĂ©resser Ă  ces bornes d’arcade au point de publier un livre sur le sujet.

C’est l’occasion de revenir dans les annĂ©es 80-90 lĂ  oĂč les bornes d’arcade prolifĂ©raient :-) (j’vous prends au baby quand vous l’voul’ :p)

N. D. M. : la lecture de cette dĂ©pĂȘche est compatible avec les jeans, les blousons en cuir marron et les coupes mulets.

   
couverture du livre arcade

Sommaire

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

Je suis originaire de Romans-sur-IsĂšre dans la Drome. Un joli coin avec une vue sur le Vercors magnifique. J’ai surtout passĂ© mon temps Ă  jouer aux jeux vidĂ©o et au foot. Parcours banal avec collĂšge, lycĂ©e, Bac S, Miage Ă  Grenoble et ensuite Master. Ensuite, je voulais voir le monde, je suis parti Ă  Paris un an, puis au Canada en PVT pour y rester six mois. J’y suis restĂ© dix ans. UltĂ©rieurement, j’ai reçu une offre d’emploi de la part d’un employeur dont je rĂȘvais depuis plusieurs annĂ©es. Du coup, j’ai dĂ©mĂ©nagĂ© aux USA, ou je vis encore aujourd’hui.

La fascination pour les jeux vidĂ©o, c’est en grande partie liĂ© Ă  mes annĂ©es d’adolescence oĂč c’était dur d’accĂ©der Ă  une expĂ©rience idĂ©ale. Mon premier ordinateur Ă©tait un ZX Spectrum, ensuite un Amstrad CPC, et ensuite un Atari ST.
Toutes ces machines n’ont pas de hardware sprites donc pendant des annĂ©es j’ai jouĂ© avec un framerate 15fps. Je me rappelle avoir Ă©prouvĂ© une admiration devant les jeux de la NES ou ce que je voyais dans les salles d’arcade avec tous ces sprites, parfois Ă©normes, qui bougeaient en mĂȘme temps
 Les bornes d’arcade Ă©taient difficiles Ă  trouver. Quand je marchais dans les rues, je regardais toujours dans les bars pour voir s’il y en avait une. J’avais mĂȘme l’oreille fine pour entendre le son des CRT. MĂȘme si je ne la voyais pas je pouvais l’entendre.

Pareil quand DOOM est sorti, j’avais un PC 386 et ça ramait un truc de ouf. J’avais un ami qui avait un 486 SX et ça avait Ă©tĂ© la gifle de voir ce que l’expĂ©rience Ă©tait avec du matos adĂ©quat.

Plus tard, quand j’ai pu dĂ©velopper les compĂ©tences techniques, j’ai eu envie de revenir sur ces technologies pour comprendre la quĂȘte du frame-per-second.

Comment en ĂȘtes-vous venu Ă  vous intĂ©resser au CPS-1 ?

J’étais en vacances en Corse en 1992 et je cherchais les bornes d’arcade dans Bonifacio. Je devais avoir 14 ans et je me tapais toute la vieille ville et les remparts pour les trouver. PrĂšs du port je trouve une borne au fond d’un bar. Street Fighter II tournait dessus et ça a Ă©tĂ© une gifle monumentale. Il devait y avoir 10 personnes autour et ça a Ă©tĂ© un tournant. La machine n’avait que trois boutons (y'avait pas les pieds) et, bien sĂ»r, les coups spĂ©ciaux n’étaient pas expliquĂ©s, mais ça reste un moment magique. J’ai Ă©normĂ©ment jouĂ© Ă  ce jeu quand j’arrivais Ă  le trouver (enfin tant que j’avais des piĂšces de 5 F et 10 F).

Plus tard, avec les compĂ©tences acquises dans mes Ă©tudes, d’autres jeux vidĂ©os et les bouquins prĂ©cĂ©dents, j’ai voulu comprendre comment ça marchait. En particulier, je voulais comprendre la diffĂ©rence entre une machine de salon comme la NES ou la SNES et une machine « industry-grade » qui permet autant de couleurs et surtout une taille de sprites aussi gigantesque.

Qu’est-ce que ce systùme a de particulier ?

Ça a Ă©tĂ© un tournant pour Capcom. Ça prouve que les directeurs et le CEO ont su sentir le vent venir. J’entends parfois des programmeurs rĂąler aprĂšs la direction et les gens « pas techniques » mais c’est un exemple que sans ce type d'initiatives, la boĂźte aurait subi le mĂȘme sort que Technos (NdM: Technos a fait faillite en 1996, leurs derniers jeux utilisaient le systĂšme Neo Geo de SNK).

C’est aussi un systĂšme d’une grande simplicitĂ©. Grosso-modo c’est trois arriĂšre-plans et un plan pour les sprites. Plus j’étudiais le CPS-1 (je parle de ça dans l’épilogue du livre) et plus je me disais c'etait une machine simple et puissance mais pas du tout une silver bullet, surtout comparĂ© Ă  la Neo-Geo. Peut-ĂȘtre que c’est lĂ , finalement, sa force, le petit plus nĂ©cessaire a fait un bon jeu : ce n’étaient pas des gros processeurs comme les bornes de Sega ou Namco, mais les designers et les artistes de Capcom.

CPS1 CPU

Que dire sur les CPS-2 et CPS-3 ?

Le CPS-2 ajoute de la RAM, un plus gros CPU (12MHz vs 10MHz), et un HSYNC interrupt
 mais c’est vraiment question lutte contre le piratage que c’est une machine impressionnante. Autant le CPS-1 s’était fait copier Ă  outrance, autant le CPS-2 n’a Ă©tĂ© craquĂ© que beaucoup plus tard, genre 15 ans aprĂšs. La couche d’encryption que Capcom a mis sur le Z80 et le 68000 a Ă©tĂ© efficace et je leur tire mon chapeau. Il y avait tellement d’argent en jeu que probablement pas mal de gens douĂ©s (y'a qu’a voir ce que certains avaient rĂ©ussi Ă  faire en reprogrammant SF2 en accĂ©lĂ©rant la vitesse) ont essayĂ© et ont Ă©chouĂ©.

Ces systĂšmes sont basĂ©s sur le X68000 de Sharp qui va bientĂŽt ressortir en version « mini » ? Qu’en pensez-vous ?

Une partie de l’attrait des X68000, c’est que ce sont des machines imposantes de par leur taille et leur poids. Rien que l’objet sur la table, avec son design "Manhattan", c’est magnifique. Le ressortir en plastique et Ă  Ă©chelle 1:3, alors qu’il y a dĂ©jĂ  des Ă©mulateurs disponibles, ça ne m’attire pas. Si ça avait Ă©tĂ© une reproduction 1:1 et que j’avais pu faire tourner Linux dessus ça aurait Ă©tĂ© un achat immĂ©diat. Maintenant, il y a tellement de gens pour qui c’est une machine mythique que je ne doute pas que ça va ĂȘtre un succĂšs.

x68000

Les émulateurs CPS-1 sont-ils bons ?

J’ai essayĂ© XM6 Pro-68k (NdM : malheureusement un logiciel non libre) et c’était tellement bon que je n’en ai pas testĂ© d’autres. En plus il est pĂ©tĂ© de features pour observer les buffers et les couches intermĂ©diaires. C’est au-delĂ  de bon, c’est magnifique. J’ai commencĂ© Ă  m’intĂ©resser Ă  la SNES et j’espĂšre que je trouverai un Ă©mulateur comme ça.

 Quels sont vos jeux préférés pour ces systÚmes ?

À part les ports de Capcom, j’aime beaucoup R-Type. Bonanza Bros est aussi impressionnant, il a un cĂŽtĂ© innovant qui lui donne beaucoup de charmes (comme les sprites prĂ©-rendus en raytracing). Il a aussi des dĂ©fauts de clipping qui me font me mettre dans les bottes du dĂ©veloppeur. Ça rend le dur labeur palpable.

Je trouve tous les jeux de la X68000 intĂ©ressants. Il y aurait de quoi Ă©crire un livre juste en les faisant tourner dans XM6 Pro-68k et en Ă©tudiant comment ils marchent. Le peu que j’ai vu sur les ports de Capcom montrait des trĂ©sors d’inventivitĂ©. C’est dommage que peu de personnes Ă©crivent dessus. Il y a plein de gens trĂšs trĂšs douĂ©s, surtout dans la communautĂ© française, bien plus compĂ©tents que moi d’ailleurs, mais qui n’arrivent pas Ă  se motiver pour Ă©crire des articles (vous savez qui vous ĂȘtes). C’est super dommage que ce savoir se perde un jour. Peut-ĂȘtre quand ces gens lĂ  arriveront Ă  la retraite on verra des articles sortir. Peut-ĂȘtre que c’est juste une question de patience.

Pourquoi créer un SDK en 2022 pour un si vieux systÚme ?

Pour tester mes connaissances du hardware. Tu peux pas vraiment connaĂźtre le hardware si tu ne connais pas le software qui tourne dessus. Surtout le cĂŽtĂ© bootstrap. D’ailleurs, ça m’a servi Ă  me dĂ©tromper plusieurs fois. Et puis aussi parce que quand j’ai commencĂ© Ă  Ă©crire le bouquin je me disais que ça devait exister et j’étais surpris que personne ne s’en soit chargĂ© vu la popularitĂ© de la plateforme. AprĂšs, j’en profite pour dire que c’est encore un WIP, il manque des trucs comme les backgrounds ou la musique. Pull Requests welcome! (en clair : ya du taf').

Que prĂ©fĂ©rez-vous ? L’arcade Ă  la maison ou l’arcade en arcade ?

Mes souvenirs des salles d’arcade, c’est des bars crado avec des gens qui craignaient un peu. Et aussi 10 F en poche pour toute l’aprùs-midi. De ce point de vue là, à la maison c’est bien mieux. Par contre tu joues seul. On peut pas tout avoir.

home arcade

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

En majoritĂ© Ubuntu. C’est facile Ă  installer et j’ai jamais eu de problĂšmes sur mes Thinkpads. J’utilise encore Windows pour Cyberduck et Photoshop. C’est dommage qu’il n’y ait pas de client SFTP potable sur Linux. J’ai essayĂ© de configurer KVM mais c’était un carnage et j’ai abandonnĂ© aprĂšs plusieurs heures Ă  rechercher des problĂšmes obscurs de TPM. Sinon j’utilise beaucoup LaTeX et Evince. Je sais pas trop ce que ça veut dire « libres », j’ai peut-ĂȘtre rĂ©pondu Ă  cĂŽtĂ© de la plaque, dĂ©solĂ© :( !

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

J’utilise 99% du temps CLion, Golang et Intellij. Ce sont des merveilles. En logiciel libre
, git ?

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

Je n’ai jamais regardĂ© ailleurs que Ubuntu, car j’ai toujours Ă©tĂ© trĂšs content du truc. Sauf pour les clients SFTP qui est trĂšs bugged (c.f: J’espĂšre un port de CyberDuck).

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

Vous n’aviez vraiment rien de mieux Ă  faire de votre temps que d’écrire un livre entier sur une plateforme morte depuis 20 ans ?

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

Quels sont les outils utilisĂ©s pour Ă©crire un livre. Quand j’ai commencĂ© ça m’aurait Ă©conomisĂ© beaucoup de temps d’avoir une mĂ©thode et des exemples de projet. C’est aussi pour ça que je publie les sources de mes bouquins.

Ce sera peut ĂȘtre pour une autre dĂ©pĂȘche consacrĂ©e Ă  la documentation, car beaucoup de gens s'intĂ©ressent au sujet sur linuxfr.

Aller plus loin

  • # Mine d'or

    Posté par  . Évalué à 9.

    Ça fait plaisir de voir une interview de Fabien Sanglard en dĂ©pĂȘche.

    J'étais tombé sur son site, ses revues de code de jeux et moteurs de jeux1, ses articles concernant des micro-ordinateurs/consoles/bornes d'arcade, tous pleins d'explications intéressantes :

    • l'architecture avec des schĂ©mas
    • des explications sur les limitations techniques (contraintes mĂ©moire, vitesse des processeurs, palettes de couleurs limitĂ©es, j'en passe) et les astuces habiles qui ont permis de composer avec
    • des anecdotes et et des morceaux d'histoire de l'informatique.

    Bref, son blog est aussi technique qu'il est enrichissant : https://fabiensanglard.net/

    Merci à lui (et aux gentils contributeurs de LinuxFR aussi 😉).


    1. comme par exemple Doom sur PC, sur iPhone et sur Playstation, mais aussi Quake, Doom 3, Another World, Duke Nukem 3D, etc. Dans un registre diffĂ©rent on peut aussi trouver une revue du code de Git. ↩

  • # Composants F ?

    Posté par  . Évalué à 2.

    D'aprÚs vous, que sont les composants orangés notés F sur la photo du circuit ?

    • [^] # Re: Composants F ?

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

      C'est noté FB..
      On dirait des résistances.

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: Composants F ?

        Posté par  . Évalué à 3.

        Les rĂ©sistances sont bien marquĂ© R
 (par exemple R12), et ça n'y ressemble pas trop.
        Par contre ça pourrait correspondre à "Ferrite bead" pour filtrer l'alim

        Les vrais naviguent en -42

        • [^] # Re: Composants F ?

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

          Bien vu (ferrite bead)
          Comme tu dis, ça y ressemble pas (les R
 et les C
)

          “It is seldom that liberty of any kind is lost all at once.” ― David Hume

        • [^] # Re: Composants F ?

          Posté par  . Évalué à 2.

          Merci, je n'avais pas vu le B !

  • # SFTP

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

    Qu'est-ce qui lui manque dans les gestionnaire de fichiers linux que cyberduck propose?

    Il me semble que Nautilus (Gnome fichier), Dolphin (KDE), Thunar ou quelconque gestionnaire de fichier de nos jours gÚre le sftp et quoi de meilleur qu'un gestionnaire de fichier si on n'utilise pas le shell pour 
 gérer des fichiers?

    • [^] # Re: SFTP

      Posté par  (site web personnel) . Évalué à 3. DerniĂšre modification le 21 octobre 2022 Ă  11:36.

      Pour SFTP, je ne sais pas, mais pour Swift, ça doit ĂȘtre le seul client graphique potable.

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

      • [^] # Re: SFTP

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

        Tu parle du stockage objet de openstack? Tu peux toujours le monter avec cloudfuse ou rclone et utiliser n'importe quel gestionnaire de fichier non?

        • [^] # Re: SFTP

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

          J'ai essayé avec FUSE et les perfs n'étaient pas terrible.

          De toute façon le stockage objet n'Ă©tant pas un filesystem, donc je ne suis pas fou de passer par lĂ  pour Ă©crire mes objets


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

    • [^] # Re: SFTP

      Posté par  . Évalué à 3.

      Le probleme avec Nautilus (Ubuntu) c'est que ca deadlock souvent.

      Case 1: J'ai besoin de faire un transfert pour updater mon site web. Je "monte" le sftp dans le gestionnaire de fichier. Je fais mon transfert. Juste que la tout va bien. Je ferme mon laptop et je vais manger. Je reviens, j'ouvre le laptop, je clique sur mon mount sftp -> Deadlock, y'a plus rien qui repond.

      Case 2: J'ai besoin de corriger un typo sur mon site web. J'edite le fichier avec vim et je sauvegarde. Ca marche. Je surf le web 1h. Je reviens sur vim et la ca bloque de nouveau.

      J'ai remonte le bug ici, ca fait bien longtemps, mais c'est toujours un probleme.

      Note que si j'utilise Windows et Cyberduck j'ai jamais de problemes. Le PC peut dormir pendant deux jours, je laisse Cyberduck ouvert et le truc se reconnecte tout seul. Meme mes remote edit sont encore valide (je sauvegarde et ca upload direct sur mon site web).

      • [^] # Re: SFTP

        Posté par  (site web personnel, Mastodon) . Évalué à 3. DerniĂšre modification le 22 octobre 2022 Ă  15:34.

        Pour le second cas, à moins d'avoir Nautilus ouvert aussi, j'ai l'impression que ça fuse mal sur ta buntu. M'enfin, simples suppositions de ma part. Mais je ragerais aussi si j'étais à ta place.

        Pour moi, l'équivalent de l'usage de Cyberduck serait d'utiliser un client gFTP ou FileZilla ou autre non ? Car me semble que le Finder fait du SFTP (je n'avais testé que pour FTP/FTPS/CIFS avec plus ou moins de bonheur.)

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: SFTP

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

        Case 2: J'ai besoin de corriger un typo sur mon site web. J'edite le fichier avec vim et je sauvegarde. Ca marche. Je surf le web 1h. Je reviens sur vim et la ca bloque de nouveau.

        Ces trucs clika-convi, ça ne marche pas trĂšs bien
 Revenons aux vieilles mĂ©thodes :

        Chez moi, j'ai un montage sshfs de mon site web dans ~/Bu/ qui tient depuis 36 days, 10:45, et aucun souci. Gimp, mousepad, thunar, audacity, jamais de blo

        • [^] # Re: SFTP

          Posté par  . Évalué à 3.

          Je viens de tester "sshfs" et ca marche super bien! Merci infiniment (une raison de moins d'utiliser Windows!).

          Par contre il faut entrer le mot de passe a chaque fois si je reboot ma machine. A part creer une key et ssh-copy-id sur le server, il y a un autre moyens d'eviter le prompt?

          • [^] # Re: SFTP

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

            C'est du SSH, donc non, pas vraiment.

            • Yth.
            • [^] # Re: SFTP

              Posté par  . Évalué à 0. DerniĂšre modification le 23 octobre 2022 Ă  14:49.

              C'est possible d'utiliser le une clé ssh avec l'option IdentityFile (avec ssh-agent ou une clé sans mot de passe et autofs pour rendre le montage transparent, mais la seconde solution est moins sûre car il n'y a qu'avoir possession de la clé privée pour pouvoir accéder au serveur).
              Oups, en fait la réponse est bien non pas vraiment, il faut une clé, désolé pour le bruit :)

  • # Oui mais non

    Posté par  . Évalué à 3.

    Mon premier ordinateur Ă©tait un ZX Spectrum, ensuite un Amstrad CPC, et ensuite un Atari ST.
    Toutes ces machines n’ont pas de hardware sprites donc pendant des annĂ©es j’ai jouĂ© avec un framerate 15fps.

    Je ne sais pas trop pour le Spectrum, mais les deux autres etaient tout à fait capables d'afficher pleins de sprites à 50fps. 25 au pire pour les jeux les plus gourmands/mal optimisés.

    • [^] # Re: Oui mais non

      Posté par  (site web personnel) . Évalué à 7. DerniĂšre modification le 21 octobre 2022 Ă  23:34.

      Sur ces machines, on affiche les sprites par "blitting" (copie des pixels dans une mémoire du processeur graphique qui représente tout l'écran) mais pas via des "sprites hardwares" (le processeur graphique calcule la couleur à afficher au moment du balayage de l'écran en consultant une liste de sprites) je suppose?

      Pour les FPS, je ne sais pas trop, mais je trouve souvent les jeux de cet époque pas trÚs animés sur microordinateur (exemple : Prince of Persia) contre leur équivalent console (exemple: Sonic).

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

      • [^] # Re: Oui mais non

        Posté par  . Évalué à 3. DerniĂšre modification le 22 octobre 2022 Ă  10:19.

        Oui tout à fait. Alors on ne copie pas pixel par pixel, mais plutÎt par autant de mémoire qu'on peut à la fois, mais c'est l'idée. Sur CPC, la zone de mémoire graphique est en RAM donc ça va bien (et relocalisable si on veut faire du double buffer), mais il faut faire une petite gymnastique parce que, arrivé en fin de ligne, on saute de 8 pixels verticaux donc c'est relou, mais ça marche.

        Bah oui forcément, avoir des sprites hards facilite et accelÚre les choses. Mais les meilleurs programeurs arrivent à faire des animations tout à fait étonnantes avec juste du soft et beaucoup d'intelligence.
        Des jeux avec des dizaines de sprites, ou avec des gros sprites qui font la moitié de l'écran, il y en à eu. Surtout vers la fin de vie des machine quand les démo makers se sont mis à faire des jeux. Il ont eu du mal avec la jouabilité à mon sens, mais c'est un autre débat.

        Quant aux FPS c'est simple, sur 8 et 16 bits, il faut que ça soit un diviseur entier du rafraichissement de l'écran, sinon il y a du tearing. Sur les vieux ordis 8 et 16 bits, l'affichage se faisait en suivant de prÚs le balayage du moniteur. En inserant des NOP dans les boucles si besoin pour syncroniser. Donc le chiffre de 15 FPS n'à pas de sens. La plupart des jeux tournaient à 50FPS sans soucis, 25 restait acceptable s'il y avait vraiment beaucoup de choses à afficher. En dessous de ça, il y en a eu quelques uns bien sûr, mais généralement c'était des jeux vendu 10 balles que personne voulait '

  • # Nimage

    Posté par  . Évalué à 4.

    Mais dis donc, c'est quoi cette image ??

    Donkey kong est sorti en 81 sur une borne custom.

    Le CPS-1 est sorti en 88.

  • # Commentaire supprimĂ©

    Posté par  . Évalué à -2. DerniĂšre modification le 26 octobre 2022 Ă  12:50.

    Ce commentaire a Ă©tĂ© supprimĂ© par l’équipe de modĂ©ration.

Suivre le flux des commentaires

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