URL: https://linuxfr.org/news/entretien-avec-stephane-d-a-propos-du-sgdk Title: Entretien avec Stephane-D Ă  propos du SGDK Authors: devnewton đŸș Pierre Jarillon, gUI, Ysabeau đŸ§¶, bobble bubble, BenoĂźt Sibaud, Florent Zara et claudex Date: 2023ćčŽ02月13æ—„T09:18:02+01:00 License: CC By-SA Tags: jeu_vidĂ©o, retrogaming et retrosdk Score: 58 Stephane-D dĂ©veloppe [un SDK pour crĂ©er des jeux pour la console Megadrive](https://www.patreon.com/SGDK), cet entretien revient sur son parcours et les raisons qui l’ont amenĂ© Ă  s’intĂ©resser Ă  cette console. ![Console Megadrive, source WikipĂ©adia, © Bill Bertram (Pixel8) 2011](https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Sega_Mega_Drive_PAL.jpg/320px-Sega_Mega_Drive_PAL.jpg) [Code du SDK sous licence MIT](https://github.com/Stephane-D/SGDK) [Un article prĂ©sentant le hardware de la Megadrive](https://www.copetti.org/writings/consoles/mega-drive-genesis/) [Un podcast publiĂ© pour les 30 ans de la console](https://mag.mo5.com/150642/les-podcasts-de-mo5-com-42-la-mega-drive-a-30-ans/) [Un autre podcast sur l’histoire de SEGA](https://cpu.dascritch.net/post/2020/06/11/Ex0139-Sega%2C-game-over-sur-console) [Un site consacrĂ© Ă  SEGA et ses consoles](https://www.sega-16.com/) [Z-Team, une Ă©quipe qui porte des jeux micros sur Megadrive](https://z-team.itch.io/) ---- ---- ## PrĂ©sentation ### Bonjour, qui ĂȘtes-vous, quel est votre parcours et est-il liĂ© aux jeux vidĂ©os ? Bonjour, Mon nom est StĂ©phane Dallongeville, j’ai 43 ans et je suis dĂ©veloppeur de mĂ©tier. Étrangement, j’ai toujours travaillĂ© dans le domaine de la santĂ©, pas forcĂ©ment par choix, mais plutĂŽt par le hasard de la vie et surement parce que c’est un domaine oĂč les besoins sont assez techniques et que c’est ce qui m’intĂ©resse en gĂ©nĂ©ral 🙂. Contrairement Ă  bon nombre de personnes de ma gĂ©nĂ©ration, j’ai dĂ©couvert les jeux vidĂ©os avec les bornes d’arcade vers l’age de 7-8 ans. Il y avait une salle de jeux d’arcade (le Flipper's house de CompiĂšgne pour celles et ceux qui ont connu) juste Ă  cĂŽtĂ© de mon Ă©cole et, avec mon frĂšre, on avait pris l’habitude d’y passer avant et aprĂšs l’école (avec pas mal d’arrivĂ©es en retard Ă  cause de ça) et d’y passer une bonne partie de nos week-ends Ă©galement. Je me souviens qu’on Ă©tait vraiment accro, on venait juste pour regarder les gens jouer, car on n’avait pas ou trĂšs peu d’argent Ă  dĂ©penser. Du coup, on a dĂ©couvert pas mal de classiques en arcade (Pole Position, Pac Man, Double Dragon, WonderBoy, Street Fighter 2, Final fight...) avant mĂȘme d’avoir une console. D’ailleurs notre premiĂšre console (en 1990) fut une... [GX-4000](https://www.gx4000.net/) 😅. LĂ  encore, ce n’était pas forcĂ©ment par choix, mais simplement parce que c’était la seule en stock (mes parents achetaient beaucoup par correspondance), il faut admettre qu’elle ne nous a pas laissĂ© de souvenirs impĂ©rissables... Mais par la suite, on s’est bien rattrapĂ© avec la NES d’abord, puis la Megadrive, la SNES, etc. J’ai passĂ© beaucoup, beaucoup d’heures Ă  jouer Ă©tant jeune, mais Ă  partir de 16 ans, j’ai commencĂ© Ă  m’intĂ©resser davantage au PC et Ă  la programmation, j’ai alors dĂ©laissĂ© un peu les consoles. Il faut dire que la gĂ©nĂ©ration 32 bit ne m’a jamais vraiment attirĂ©, dĂ©jĂ  parce que le prix des consoles devenait indĂ©cent (_NDM : peut-ĂȘtre un lapsus faisant rĂ©fĂ©rence Ă  [Descent](https://www.mobygames.com/game/Descent) ?_ ) mais surtout parce que le passage Ă  la 3D s’est fait dans la douleur... MĂȘme si techniquement, c’était certes une rĂ©volution, visuellement, c’était moche et pendant ce temps-lĂ  sur PC, on commençait Ă  avoir de la 3D filtrĂ©e bien plus flatteuse. ### Comment en ĂȘtes-vous venu Ă  vous intĂ©resser Ă  la megadrive ? J’ai toujours Ă©tĂ© plus Sega que Nintendo, surement parce que j’ai un frĂšre jumeau et, quand on Ă©tait jeune, il fallait se diffĂ©rencier l’un de l’autre, comme il Ă©tait plutĂŽt Nintendo alors, j’étais Sega, avec le recul, je pense que ça correspondait aussi un peu Ă  nos diffĂ©rences de caractĂšre 😄. La gĂ©nĂ©ration des consoles 16 bits est indĂ©niablement celle qui m’a le plus marquĂ© et, donc, la Mega Drive est un peu ma machine de cƓur mĂȘme si j’ai passĂ© au moins autant de temps Ă  jouer sur SNES. ## Parlons hard ### Qu’est-ce que cette console a de particulier ? DĂ©jĂ , c’est une console de la gĂ©nĂ©ration 16 bits et donc on est encore sur des machines pensĂ©es pour la 2D, je pense qu’on aurait pu aller beaucoup plus loin sur les jeux 2D si l’arrivĂ©e de la Playstation n’avait pas « imposĂ© » un saut prĂ©coce Ă  la 3D. Mais du coup « faute de mieux » la gĂ©nĂ©ration 16 bits reprĂ©sentent un peu la quintessence des jeux 2D dans un sens. Ensuite, par rapport Ă  cette gĂ©nĂ©ration 16 bit et surtout par rapport Ă  sa concurrente directe, la SNES, la Mega Drive est beaucoup plus simple Ă  programmer, et, disons-le offre plus de libertĂ© au dĂ©veloppeur contrairement Ă  ce qu’on pourrait penser. Son processeur central - le 68000 - qui Ă©tait un peu « la rolls » des processeurs 16 bits de l’époque, est en grande partie responsable de cet Ă©tat de fait, surtout en comparaison du 65C816 qui Ă©quipe la SNES et qui est Ă  l’extrĂȘme opposĂ©. Mais le reste de l’architecture n’est pas en reste. La SNES est plus moderne assurĂ©ment (elle est sortie quand mĂȘme 2 ans aprĂšs), elle affiche plus de couleurs avec beaucoup d’effets graphiques hardware et un son Ă  base de samples, mais l’ensemble est assez contraint et il est difficile de sortir des frontiĂšres dessinĂ©es par les capacitĂ©s hardware de la machine. La Mega Drive c’est un peu l’opposĂ©, on a peu d’effets cĂąblĂ©s, c’est assez root avec du son FM et des capacitĂ©s PCM rĂ©duites au minimum syndical. Par contre, on a beaucoup de flexibilitĂ© et de puissante brute pour dĂ©passer ces frontiĂšres et c’est ça qui est plaisant avec cette machine. ### Comment fonctionne le processeur graphique (VDP) ? C’est un processeur graphique optimisĂ© pour l’affichage 2D, ça reprend le mĂȘme principe qu’on avait sur les consoles 8 bits : un arriĂšre-plan scrollable et des sprites qu’on affiche par-dessus. L’affichage est composĂ© exclusivement de blocs de 8 ×ば぀ 8 pixels en 4 bpp (16 couleurs) qu’on appelle « tuile », la mĂ©moire vidĂ©o (VRAM) va donc contenir un set de tuiles et des tables permettant de mapper ces tuiles sur les plans et sur les sprites (des tables d’index en gros). Par rapport Ă  la gĂ©nĂ©ration prĂ©cĂ©dente, la Mega Drive apporte un 2e plan scrollable pour ajouter plus de profondeur et de complexitĂ© dans les dĂ©cors ainsi que des capacitĂ©s de sprites gonflĂ©es (taille variable de 8 ×ば぀ 8 Ă  32 ×ば぀ 32 et jusqu’à 80 sprites maximum). Le VDP apporte aussi quelques fonctionnalitĂ©s hardware pour faire des parallaxes facilement ainsi qu’un scrolling vertical assez avancĂ© qui permettait de scroller des colonnes de 16 pixels individuellement (c’est grĂące Ă  lui qu’on pouvait rĂ©aliser des effets de rotations avec des angles restreints par exemple). Une fonction majeure de cette gĂ©nĂ©ration Ă©tait l’apport du DMA qui permettait de faire des transferts rapides vers la mĂ©moire vidĂ©o. Par contre, la faiblesse majeure du VDP c’est sans conteste son faible nombre de palettes : seulement 4 palettes de 16 couleurs sur une profondeur de 512 couleurs (RGB333), c’est vraiment peu. La SNES en a 4 fois plus (8 palettes pour les arriĂšres plans + 8 palettes pour les sprites) et la PC Engine pourtant sortie 1 an avant en avait pas moins de 16 + 16 palettes. C’est d’autant plus dommage qu’à la base le VDP a Ă©tĂ© conçu pour accueillir 4 + 4 palettes en RGB444 mais pour des raisons de coĂ»t ça a Ă©tĂ© tronquĂ© Ă  4 palettes partagĂ©es en RGB333. _NDM: pour aller plus loin voir le site [Rasterscroll](https://rasterscroll.com/mdgraphics/)._ ### Comment fonctionnent les puces sonores (Yamaha YM2612, Texas Instruments SN76489) ? Le SN76489 est vraiment un gĂ©nĂ©rateur audio assez basique que l’on retrouve sur beaucoup de machine 8 bit. Il est d’ailleurs prĂ©sent sur la Master System... C’est un gĂ©nĂ©rateur d’onde carrĂ© sur 3 voies + 1 voie de bruit blanc, les capacitĂ©s audio de ce chip sont, disons-le, trĂšs limitĂ©es... Le YM2612 est un synthĂ©tiseur FM sur 6 voies, c’est le mĂȘme type de synthĂ©tiseur qu’on trouvait dans certains synthĂ©tiseurs des annĂ©es 80 (comme le Yamaha DX 11). Le principe de la synthĂšse FM est assez complexe, chaque voie est composĂ©e de plusieurs opĂ©rateurs (4 sur le YM2612) qui sont connectĂ©s ensemble selon plusieurs configurations possibles (8 possibles sur le YM2612). À la base, chaque opĂ©rateur produit une onde sinusoĂŻdale Ă  une certaine frĂ©quence et une enveloppe de type ADSR par-dessus. Ensuite, selon la configuration des opĂ©rateurs, certains opĂ©rateurs vont servir Ă  « moduler » l’onde sonore de l’opĂ©rateur suivant ou simplement produire le son de sortie. Prenons l’exemple de la configuration #0, dans cette configuration, les 4 opĂ©rateurs sont connectĂ©s en sĂ©rie : 0 --- 1 --- 2 --- 3 On a donc l’opĂ©rateur 0 qui va moduler le son de l’opĂ©rateur 1, qui va lui-mĂȘme moduler le son de l’opĂ©rateur 2, qui va lui-mĂȘme moduler le son de l’opĂ©rateur 3 qui va lui sortir le son final de la voie. Cette configuration permet de produire des ondes trĂšs complexes. À l’inverse, la configuration #7 positionne les 4 opĂ©rateurs en parallĂšle : 0 1 2 3 La sortie des 4 opĂ©rateurs est simplement mixĂ©e ensemble pour produire le son final de la voie. Une particularitĂ© du YM2612 est que la 6e voie peut ĂȘtre configurĂ©e en simple DAC pour pouvoir produire des samples (voix digitalisĂ©es), c’est grĂące Ă  ça que la Mega Drive peut produire du son digitalisĂ©. La synthĂšse FM reste un procĂ©dĂ© sonore complexe et difficile Ă  maĂźtriser qui est capable du meilleur comme du pire. Beaucoup de dĂ©veloppeurs occidentaux se sont cassĂ©s les dents dessus (nos tympans en ont fait les frais) mais dans de bonnes mains ça pouvait produire du son extrĂȘmement riche et de meilleure qualitĂ© que les sampleurs de l’époque. De par le principe de fonctionnement des chips FM, l’onde de sortie est gĂ©nĂ©rĂ©e Ă  haute frĂ©quence, sur le YM2612, on est Ă  53 KHz par exemple. ### Qu’est-ce que le Blast Processing ? Est-ce juste une blague du service marketing de Sega ? Oui et non 🙂 Il n’y a donc pas de techno « Blast Processing » Ă  proprement parler. À la base ça vient d’un trick trouvĂ© par un dĂ©veloppeur interne : il a dĂ©couvert qu’on pouvait produire un pseudo-mode bitmap en transfĂ©rant en continu en CRAM (palette) via le DMA. Il a utilisĂ© le mot « blast » pour dĂ©crire ce procĂ©dĂ© de transfert en continu via le DMA... et en effet le marketing a repris ce terme pour en faire le fameux Blast Processing, car ils trouvaient que ça sonnait bien ! _NDM : le marketing de Sega et de ses partenaires Ă©tait connu pour ĂȘtre [agressif ](https://www.sega-dreamcast-info-games-preservation.com/pub-megadrive-aventure-numerisation), voire carrĂ©ment [lourd](https://www.sega-16.com/2016/08/sex-sega-partners-in-print/)._ ### Que dire sur le megacd ? Je pense que le MegaCD est assez sous-estimĂ©, ou plutĂŽt sa ludothĂšque. Il y a beaucoup de trĂšs bons jeux sortis sur MegaCD. Par contre, je pense sincĂšrement que le MegaCD aurait eu bien plus de succĂšs si Sega s’était contentĂ© d’en faire juste un « gros support de stockage » (comme sur la PCE) plutĂŽt qu’en faire un add-on si couteux avec des fonctions de pseudos mode 7 uniquement lĂ  pour faire face Ă  la SNES. À l’époque Ă  plus de 2000Fr je n’ai jamais *regardĂ©* le Mega-CD, il Ă©tait hors course Ă  un prix si prohibitif et le positionnement marketing sur le FMV Ă©tait aussi une erreur, je pense. La Mega Drive en avait dĂ©jĂ  pas mal dans le ventre et un simple gros stockage lui aurait permis de s’exprimer pleinement. ![MegaCD](https://upload.wikimedia.org/wikipedia/commons/0/0c/MegaCD.png) ### Que dire sur la 32x ? LĂ  pour le coup c’est assez difficile d’en dire du bien si on considĂšre la ludothĂšque de la machine... Ă  peine 50 jeux dont une dizaine qui en vaille rĂ©ellement la peine 😕. Le 32X Ă©tait une vaine tentative de prolonger artificiellement la vie de la Mega Drive mais le timing n’était pas le bon avec l’arrivĂ©e de la Saturn et de la Playstation. Je pense que le 32X aurait peut-ĂȘtre pu avoir son marchĂ© comme « 32 bits abordable » en console standalone Ă  cartouche. LĂ  oĂč la Saturn et la Playstation s’affichaient Ă  3000 Fr ou plus, le 32X aurait pu sĂ©duire les moins fortunĂ©s en se positionnant entre 1000 Fr et 1500 Fr, surtout qu’en puissance brute le 32X est plutĂŽt capable ! ![32x](https://upload.wikimedia.org/wikipedia/commons/a/a0/Sega-Genesis-Model2-32X.jpg) ### La megadrive a connu plusieurs versions (model 2, CDX, Nomad, Teradrive, Wondermega, LaserActive...) ? Les avez-vous testĂ©s ? Pas tous ! J’ai eu une MD2 que j’ai revendue, mais je possĂšde encore une Nomad et un WonderMega (le premier). J’ai aussi un TeraDrive, mais je ne l’ai pas encore utilisĂ© (sic). Personnellement, j’adore le design du WonderMega 🙂. ![Wondermega](https://upload.wikimedia.org/wikipedia/commons/9/92/Console-wondermega.jpg) ### La megadrive a rĂ©cemment eu deux versions « mini » ? Qu’en pensez-vous ? J’ai la premiĂšre que j’aime beaucoup, j’ai dĂ» la payer 50€ ou 60€ et pour le prix payĂ©, je trouve le contenu (en termes de jeux) trĂšs correct. Je n’ai pas pu tester la 2e version, mais j’en ai entendu pas mal de bien. AprĂšs ce que je trouve dommage, c’est que ces deux versions mini ont Ă©tĂ© prĂ©cĂ©dĂ©es de *beaucoup* de modĂšles AtGame dont la qualitĂ© Ă©tait vraiment discutable... ![Megadrive mini](https://upload.wikimedia.org/wikipedia/commons/4/44/Sega_Mega_Drive_Mini.jpg) ### Quelle est votre manette prĂ©fĂ©rĂ©e ? Je n’ai pas vraiment de manette prĂ©fĂ©rĂ©e, mais j’aime beaucoup la manette 6 boutons de la Mega Drive et celle de la Saturn. ![manette six boutons](https://upload.wikimedia.org/wikipedia/commons/6/66/Sega-Genesis-6But-Cont.jpg) ## Parlons soft ### Les Ă©mulateurs megadrive sont-ils bons ? Ce n’était pas forcĂ©ment le cas par le passĂ© (dont mon propre Ă©mulateur Gens \^\^) mais aujourd’hui oui, ils existe plusieurs Ă©mulateurs de trĂšs bonne qualitĂ© (Genesis Plus, Exodus, BlastEm...). Si je devais en retenir qu’un, je choisirais [BlastEm](https://www.retrodev.com/blastem/) qui est Ă  la fois rapide et avec un trĂšs haut niveau de prĂ©cision sur l’émulation. ### Quels sont vos jeux commerciaux prĂ©fĂ©rĂ©s sur cette console ? Difficile Ă  dire mais lĂ  comme ça, ceux-lĂ  me viennent en tĂȘte : Street of Rage 2, Sonic 2, Gunstar Heroes, Ranger-X, Mickey Mania, Landstalker, Aladdin, Yuyu Hakusho. ![Gunstar Heroes](https://upload.wikimedia.org/wikipedia/en/2/23/GunstarHeroes_SevenForce.gif) ### Quels sont vos jeux _homebrew_ prĂ©fĂ©rĂ©s sur cette console ? Pas d’ordre particulier lĂ  encore : Demons of Asteborg, Tanzer, Paprium, Xeno Crisis, Cave story, Omega Blast et j’en oublie c’est certain. ![Tanzer](https://www.mobygames.com/images/promo/l/599365-tanzer-screenshot.png) ### Pourquoi crĂ©er un SDK aujourd’hui pour un si vieux systĂšme ? À la base, j’ai créé ce SDK (vraiment minimaliste au dĂ©part) pour moi, car il n’existait pas de bons outils pour dĂ©velopper sur cette machine (ça remonte Ă  2006 donc ça date !). Je voulais construire des petites roms de test afin de perfectionner mon Ă©mulateur (Gens). Par la suite, c’est devenu un hobby parce que ça m’amusait vraiment de dĂ©velopper pour cette machine et j’ai commencĂ© Ă  ajouter de nouvelles fonctions, c’est aussi Ă  ce moment-lĂ  que j’ai commencĂ© Ă  le distribuer en me disant que ça pourrait peut-ĂȘtre servir Ă  d’autres. Les retours ont tellement Ă©tĂ© positifs que ça m’a poussĂ© Ă  continuer le dĂ©veloppement, ce qui a abouti Ă  SGDK 🙂. ### Est-ce que vous participez vous-mĂȘme Ă  la crĂ©ation de jeux ? Oui ça m’arrive, j’ai participĂ© notamment au dĂ©veloppement de Demons of Asteborg (j’ai assistĂ© l’équipe sous contrat) et actuellement, je travaille sur un autre jeu, mais le dĂ©veloppement de SGDK reste mon activitĂ© principale, on va dire ! Je ne dĂ©sespĂšre pas de travailler sur mon propre jeu un de ces jours \^\^. ![Demons of Asteborg](https://www.demonsofasteborg.com/wp-content/uploads/2021/03/swamp_and_people-1024x724.png) ### Quels ont Ă©tĂ© les difficultĂ©s pour crĂ©er SGDK ? Le plus compliquĂ© est assurĂ©ment le dĂ©veloppement des drivers son et le dĂ©veloppement du driver XGM en particulier qui est le driver son principal de SGDK. C’est compliquĂ©, car ça nĂ©cessite de programmer sur le second CPU (Z80) entiĂšrement en assembleur et avec des possibilitĂ©s de debug trĂšs limitĂ©es comparĂ© au CPU principal (le 68000). L’autre complexitĂ©, c’est que le driver son a besoin de gĂ©rer le stream PCM (il y a 0 assistance hardware pour ça) sans interruption en mĂȘme temps que la gestion de la partie FM et PSG. Je travaille actuellement sur une version 2 du driver XGM afin de rĂ©duire sensiblement la taille des _tracks_ (c’est un point faible du driver XGM actuel) en plus d’ajouter certaines fonctionnalitĂ©s et je peux dire que ça me prend un temps considĂ©rable ! Sur les autres aspects, le dĂ©veloppement de SGDK est plutĂŽt « facile », seul le dĂ©veloppement des outils annexes (compilateur de ressources par exemple) peut ĂȘtre assez ennuyant par moment... ### Vous aimeriez vivre du dĂ©veloppement de ce logiciel libre? En effet, j’adore ce que je fais avec SGDK et si je pouvais en vivre ça serait gĂ©nial 🙂. Mais je pense que c’est assez illusoire, car ça reste un marchĂ© de niche. ### Est-ce que SGDK gĂšre les manettes Ă  6 boutons de la megadrive, les multitaps et les pistolets (Menacer Gun) ? Pour tout ça oui, la gestion du multipad et des pistolets a d’ailleurs Ă©tĂ© une contribution extĂ©rieure 🙂. Les pistolets sont supportĂ©s par SGDK mais ne fonctionnent pas avec les TVs modernes. Il me semble qu’il existe des kits pour les faire fonctionner sur des TVs modernes, mais honnĂȘtement, je ne suis jamais vraiment allĂ© voir ça... Sinon sur Ă©mulateur la souris permet de remplacer le pistolet. ![Sega Menacer](https://upload.wikimedia.org/wikipedia/commons/6/63/Sega_Menacer_cropped.jpg) ### Est-ce que SGDK gĂšre les modems ? Non, mais il existe un module [MegaWifi](https://gitlab.com/doragasu/mw) qui permet donc l’exploitation d’une cartouche spĂ©ciale avec un module Wifi (lĂ  encore c’est une contribution extĂ©rieure). ![MegaWifi](https://www.segamegadrive.it/wp-content/uploads/2020/09/EgmwOITXgAMoi2q-1024x907.jpg) ### Est-ce que SGDK gĂšre d’autres pĂ©riphĂ©riques de la megadrive (souris, Miracle Keyboard System, Aura Interactor, Sega Activator...) ? La souris uniquement, les autres pĂ©riphĂ©riques Ă©tant vraiment anecdotiques (le Sega Activator n’est jamais sorti, il me semble ?). _NDM: peut-ĂȘtre au [BrĂ©sil](https://www.sega-brasil.com.br/Tectoy/Activator_para_Mega_Drive) ?_ ![Sega Activator](https://www.sega-brasil.com.br/Tectoy/images/thumb/b/b1/Activator_Caixa_Tras_MD_01.jpg/1280px-Activator_Caixa_Tras_MD_01.jpg) ### Quels conseils donneriez-vous Ă  quelqu’un qui veut se lancer dans le dĂ©veloppement megadrive ? De ne pas vouloir aller trop vite \^\^. Il faut savoir que SGDK est un SDK en langage C, si vous ne connaissez ni le langage C ni l’architecture de la Mega Drive et que vous souhaitez vous lancer dans le dĂ©veloppement megadrive avec SGDK alors je vous conseille trĂšs fortement de vous familiariser d’abord avec le langage C et la programmation en gĂ©nĂ©ral. Apprendre les deux en mĂȘme temps, c’est vraiment trĂšs (trop) compliquĂ©. 95% des requĂȘtes d’aide / support / bugs que je peux avoir sur le serveur Discord de SGDK concerne d’abord des questions ou des erreurs de programmation plus que SGDK en lui-mĂȘme. Ensuite, une fois qu’on est plutĂŽt Ă  l’aise avec le C, c’est toujours un gros plus de savoir comment fonctionne la machine _under the hood_. SGDK abstrait pas mal de choses, mais ça Ă©vitera tout de mĂȘme des belles prises de tĂȘte sur la comprĂ©hension de certains bugs. Enfin et surtout, bien lire le fichier README de SGDK qui donne une foule d’informations importantes sur l’utilisation de SGDK en gĂ©nĂ©ral. AprĂšs, je dirais que lorsqu’on a la motivation, on arrive toujours Ă  ses fins 😉. ### Quels sont les outils pour crĂ©er/prĂ©parer des graphismes utilisables par SGDK ? N’importe quel outil capable de gĂ©rer des PNG en couleurs indexĂ©es peut faire l’affaire, car c’est ce que SGDK exploite en gĂ©nĂ©ral. MalgrĂ© tout certains outils sont plus appropriĂ©s que d’autres, car on y manipule plus facilement les palettes, personnellement je conseille ceux-lĂ  : - Asesprite (_NDM: un [fork libre](https://libresprite.github.io) existe_) ; - Graphics gale ; - Pro Motion ; - [Grafx2](https://gitlab.com/GrafX2/grafX2) ; - [Palette quantizer](https://rilden.github.io/tiledpalettequant/) (un trĂšs bon outil pour convertir les graphismes). ### Quels sont les outils pour crĂ©er/prĂ©parer des musiques et des sons utilisable par SGDK ? Tout ce qui peut exporter au format [VGM Mega Drive](https://vgmrips.net/wiki/VGM_Specification) pour les musiques et des outils pour la retouche de samples. - Deflemask (tracker) - [Furnace](https://github.com/tildearrow/furnace) (tracker) - Wavosaur ou Audacity (Ă©diteurs WAV) À noter que certains prĂ©fĂšreront dĂ©velopper leurs propres outils 😉. ### Est-il possible de crĂ©er ses propres cartouches ? Oui bien sĂ»r ! Aujourd’hui il existe plusieurs Ă©diteurs qui peuvent produire des cartouches Mega Drive ([Broke studio](https://www.brokestudio.fr/) ou [MegaCats Studios](https://megacatstudios.com/) pour ne citer qu’eux). ### On a vu rĂ©cemment des dĂ©mos impressionnantes (portages de [Star Fox](https://mag.mo5.com/236549/star-fox-decolle-de-nouveau-sur-mega-drive/) ou [F-Zero](https://mag.mo5.com/66493/f-zero-aussi-porte-sur-mega-drive/)), comment est-ce possible ? Quelles sont vos astuces ou optimisations prĂ©fĂ©rĂ©es ? C’est un peu ce que je disais tout au dĂ©but en parlant de la Mega Drive, son architecture laisse pas mal de libertĂ©s. DĂ©jĂ  son CPU central - le [68000](https://fr.wikipedia.org/wiki/Motorola_68000) - a de la ressource ! Quand on l’exploite vraiment bien, on peut en sortir pas mal de choses (je parle relativement pour cette Ă©poque) 🙂. Ensuite un autre avantage de la MD comparĂ© Ă  pas mal de ses concurrentes, c’est que les pixels des tuiles sont stockĂ©s en [chunky](https://en.wikipedia.org/wiki/Packed_pixel) et non en [planar](https://en.wikipedia.org/wiki/Planar_(computer_graphics)) ce qui permet de faire du rendu software plus facilement. Des astuces que j’aime bien, c’est de jouer avec le registre d’incrĂ©ment automatique sur l’adresse VRAM (aprĂšs une Ă©criture en VRAM, l’adresse destination est automatiquement incrĂ©mentĂ©e selon la valeur d’un registre) pour faciliter et accĂ©lĂ©rer la conversion des donnĂ©es graphiques (par exemple pour simuler un [frame buffer](https://en.wikipedia.org/wiki/Framebuffer) plus ou moins linĂ©aire). Il y a aussi beaucoup d’astuces et d’effet possibles en jouant avec les capacitĂ©s de scrolling ou en reprogrammant le VDP pendant l’affichage (modification des couleurs, du scrolling vertical, des sprites). LĂ  encore, le VDP se montre assez flexible sur ce point, ce qui ouvre les possibilitĂ©s (multiplexing sur les sprites par exemple). ### Comment s’accommoder des faibles ressources (peu de RAM, CPU sans virgule flottante...) ? Avec des astuces et comme on le faisait Ă  l’époque :) La « faible RAM » n’est en rĂ©alitĂ© pas un vrai problĂšme, car 64 Kio de RAM est en gĂ©nĂ©ral bien suffisant, il faut bien voir qu’on a un accĂšs direct Ă  toute la ROM dont la taille est bien plus importante, la RAM va juste servir Ă  stocker les donnĂ©es dynamiques. Aussi, aujourd’hui, on peut dĂ©passer allĂšgrement la barriĂšre des 4 Mio pour la ROM ce qui lĂ  encore offre plus de possibilitĂ©s et permet d’exploiter la machine Ă  son plein potentiel. Il faut bien voir qu’à l’époque la taille de la ROM (donc le coĂ»t de production dĂ©coulait directement) Ă©tait vraiment une contrainte trĂšs forte sur le dĂ©veloppement des jeux. Pour la virgule flottante, on utilise Ă  la place une virgule fixe, c’était quelque chose d’assez courant Ă  cette Ă©poque oĂč les unitĂ©s flottantes n’étaient pas encore rĂ©pandues. Quand on dĂ©veloppe sur ce genre de machine, il faut quand mĂȘme avoir une certaine connaissance de comment fonctionne un ordinateur en gĂ©nĂ©ral pour comprendre ce qui consomme ou pas beaucoup de ressources. ## Libre Ă  vous ### Au niveau personnel, quels logiciels libres utilisez-vous, sur quel OS ? J’utilise quasiment exclusivement des logiciels libres, tellement qui serait difficile de tous les Ă©numĂ©rer, mais entre autres Firefox, Eclipse, Code::Blocks, VLC, LibreSprite, GCC et la suite GNU en gĂ©nĂ©ral... Étrangement par contre, je suis sous Windows, probablement parce que j’utilise beaucoup les Ă©mulateurs et qu’il faut admettre qu’on a plus de choix ou au moins plus de facilitĂ© de ce cĂŽtĂ© sous l’OS de Microsoft. Mais vu que je ne joue plus aujourd’hui, il est assez probable que je repasse Ă  Linux. ### Au niveau professionnel, quels logiciels libres utilisez-vous, sur quel OS ? Au niveau professionnel, j’utilise certains des outils dont j’ai l’habitude comme Eclipse, mais principalement, on fonctionne sous Windows et Linux. En termes de technos, on utilise beaucoup de choses venant du monde libre comme tout le monde, je pense (node, angular, react.js, etc.) 🙂 J’utilise aussi beaucoup Java pour le dĂ©veloppement, professionnellement comme personnellement, mais depuis la rĂ©cupĂ©ration par Oracle, on ne peut plus parler de logiciel libre, je pense (_NDM : les distributions Linux et la plupart des entreprises utilisent aujourd’hui [Openjdk](https://openjdk.org/), la version libre de Java plutĂŽt qu’Oracle Java qui a de gros morceaux privateurs dedans_). ### Quelle est votre distribution GNU/Linux prĂ©fĂ©rĂ©e et pourquoi, quels sont vos logiciels libres prĂ©fĂ©rĂ©s ? Je n’utilise pas beaucoup Linux, mais j’aime les distributions plutĂŽt lĂ©gĂšres comme [Lubuntu](https://lubuntu.me/) ou [Mint](https://linuxmint.com/). Je n’ai pas vraiment de logiciels libres prĂ©fĂ©rĂ©s, mais j’apprĂ©cie beaucoup Firefox mĂȘme si ce n’est pas le navigateur le plus performant. ### Quelle question auriez-vous adorĂ© qu’on vous pose ? Pourquoi la Mega Drive et pas la Super Nintendo ? Mais dans un sens la question a Ă©tĂ© posĂ©e (pourquoi la Mega Drive ?) 🙂. ### Quelle question auriez-vous dĂ©testĂ© qu’on vous pose ? Je n’en vois aucune vraiment \^\^.

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /