Bruno Steux dĂ©veloppe des compilateurs pour crĂ©er des jeux pour les consoles Atari 2600 et Atari 7800, cet entretien revient sur son parcours et les raisons qui lâont amenĂ© Ă sâintĂ©resser Ă cette console.
Sommaire
- Partie 1 : Présentation
-
Partie 2: LâAtari 2600
- Quâest-ce que cette console a de particulier ?
- Comment fonctionne le processeur graphique et sonore (Television Interface Adaptor)Â ?
- LâAtari 2600 a connu plusieurs versions (VCS, CX2600, 2800, 2600 Jr, 2600+âŠ) ? Les avez-vous testĂ©s ?
- Quelle est votre manette préférée ?
- Les émulateurs Atari 2600 sont-ils bons ?
- Quels sont vos jeux commerciaux préférés sur cette console ?
- Quels sont vos jeux «âŻhomebrewâŻÂ» prĂ©fĂ©rĂ©s sur cette console ?
-
Partie 3 LâAtari 7800
- Quâest-ce que cette console a de particulier ?
- Est-elle juste une Atari 2600 boostée ?
- Comment fonctionne le processeur graphique (MARIA)Â ?
- Les émulateurs Atari 7800 sont-ils bons ?
- Quels sont vos jeux commerciaux préférés sur cette console ?
- Quels sont vos jeux «âŻhomebrewâŻÂ» prĂ©fĂ©rĂ©s sur cette console ?
-
Partie 4 : cc2600 et cc7800
- Pourquoi crĂ©er des compilateurs aujourdâhui pour de si vieux systĂšme ? Pourquoi le C ?
- Quels ont été les difficultés pour créer cc2600 et cc7800 ?
- Quels conseils donneriez-vous Ă quelquâun qui veut se lancer dans le dĂ©veloppement de jeux avec ces compilateurs ?
- Quels sont les outils pour créer/préparer des graphismes, musiques et sons pour ces consoles ?
- Est-il possible de créer ses propres cartouches ?
- Comment sâaccommoder des faibles ressources (peu de RAM, CPU sans virgule flottanteâŠ) ?
-
Partie 5: Pour finir
- Vous aimeriez vivre du développement de vos logiciels libres?
- Au niveau personnel, quels logiciels libres utilisez-vous, sur quel OSÂ ?
- Au niveau professionnel, quels logiciels libres utilisez-vous, sur quel OSÂ ?
- Quelle est votre distribution GNU/Linux préférée et pourquoi, quels sont vos logiciels libres préférés ?
- Quelle question auriez-vous adorĂ© quâon vous pose ?
- Quelle question auriez-vous dĂ©testĂ© quâon vous pose ?
Partie 1 : Présentation
Qui ĂȘtes-vous, quel est votre parcours et est-il lié aux jeux vidĂ©os?
Je suis Bruno Steux, 50 ans. Je travaille comme ingĂ©nieur dans la dĂ©fense et je ne suis pas vraiment gamer. Jâai dĂ©butĂ© lâinformatique trĂšs tĂŽt sur un TI 99/4A, puis jâai enchaĂźnĂ© sur C64 puis Atari ST. Jâai passĂ© mon adolescence pendant lâĂąge dâor du jeu dâarcade : des milliards dâheures sur Commando, Bomb Jack, Green BeretâŠÂ Câest une pĂ©riode dont je suis restĂ© trĂšs nostalgique. Aujourdâhui, je joue trĂšs rarement, sauf Ă Dr. Mario avec ma femme (on se fait des duels infernaux), et un peu avec mes Atari avec mon fils de 9 ans.
Comment en ĂȘtes-vous venu Ă vous intĂ©resser aux consoles Atari ?
Jâai appris lâassembleur du 6502 sur mon C64 Ă©tant jeune et ai gardĂ© un souvenir impĂ©rissable des deux pages sur lâAtari 2600 dans le numĂ©ro spĂ©cial de lâordinateur individuel de dĂ©cembre 1982. CâĂ©tait une console trĂšs chĂšre Ă lâĂ©poque et je rĂȘvais dâen avoir une. LâannĂ©e derniĂšre, jâai lu le livre «âŻRacing the beamâŻÂ» et ai commandĂ© ma premiĂšre console sur eBay, une pauvre 2600 SECAM bien pourrie. Jâai ensuite dĂ©couvert lâunivers dâAtariAge et je me suis retrouvĂ© scotchĂ©.
Est-ce que vous participez vous-mĂȘme Ă la crĂ©ation de jeux ?
Pas vraiment, mais câest dans les cartons. Jâai Ă©crit un premier jeu disponible gratuitement pour Atari 2600 : Paulâs Happybird (Paul est le prĂ©nom de mon fils de 9 ans) et un deuxiĂšme fini mais pas encore diffusĂ© (Armor Ambush Reloaded). Pas eu le temps de faire lâannonce sur AtariAge⊠Une fois les projets cc2600 et cc7800 complĂštement terminĂ©s, je compte me mettre Ă la rĂ©alisation de jeux complets plus ambitieux.
Partie 2: LâAtari 2600
Quâest-ce que cette console a de particulier ?
Pour moi 3 éléments uniques: son design - elle reste la plus belle console de tous les temps, avec ses switchs en métal et sa façade de faux bois, sa communauté active sur AtariAge, et son modÚle de programmation tellement unique et plein de challenges.
Comment fonctionne le processeur graphique et sonore (Television Interface Adaptor)Â ?
Ah, le TIA. Un processeur graphique de machine Ă Pong, franchement pas vraiment bien conçu mĂȘme pour lâĂ©poque. 5 sprites (2 joueurs, la balle, et deux missiles) et un background de 40 pixels de rĂ©solution, et un paquet de registres Ă modifier Ă la volĂ©e Ă chaque ligne Ă afficher pour faire autre chose quâun Pong⊠Avec un processeur lent, mais lent⊠76 cycles processeurs par ligne. Un vrai challenge qui motive les meilleurs programmeurs depuis plus de 40 ansâŠ
LâAtari 2600 a connu plusieurs versions (VCS, CX2600, 2800, 2600 Jr, 2600+âŠ) ? Les avez-vous testĂ©s ?
Je suis lâheureux propriĂ©taire dâune Darth Vader Secam, une Darth Vader PAL et une magnifique light six PAL fabriquĂ©e Ă Sunnyvale, sortie de grange anglaise et donnĂ©e comme morte, mais qui aprĂšs nettoyage sâest rĂ©vĂ©lĂ©e parfaitement vivante. La 2600 Jr ? Trop laide. Je pense acheter lâAtari 2600+, ne serait-ce que pour vĂ©rifier que les jeux que je dĂ©veloppe tournent bien dessus (surtout en mode 7800).

Quelle est votre manette préférée ?
La manette dâorigine de lâAtari 2600 est inimitable. Elle a une trĂšs mauvaise prise en main, un seul bouton, mais elle est tellement belle. De loin ma manette prĂ©fĂ©rĂ©e, iconique. La manette de lâAtari 7800 est la pire jamais vue. Elle fait trĂšs mal trĂšs vite. Heureusement, on peut facilement utiliser des manettes de MegaDrive grĂące un petit adaptateur facile Ă souderâŠ

NDM : oui câest bien Patrick Bruel Ă la manette dans une publicitĂ© avec des captures vidĂ©os pas du tout truquĂ©es.
Les émulateurs Atari 2600 sont-ils bons ?
Jâutilise Stella. Il est plus que bon: il est excellent. Il Ă©mule mĂȘme le code ARM pour les cartouches Ă processeur additionnel, ou encore lâAtariVox pour la synthĂšse vocale⊠MĂȘme la connexion Wifi de la PlusCart est Ă©mulĂ©e⊠Le dĂ©bugger intĂ©grĂ© est tout Ă fait complet.
Quels sont vos jeux commerciaux préférés sur cette console ?
Moon Patrol, Q*Bert et Ms. Pacman sont les jeux auxquels jâai le plus jouĂ©. Ils sont trĂšs bons, mĂȘme pour 2023. Space Invaders ou encore Circus Atari (avec les paddles!) sont excellents aussi.

Quels sont vos jeux «âŻhomebrewâŻÂ» prĂ©fĂ©rĂ©s sur cette console ?
Lode Runner et Boulder Dash. Le premier est incroyable, mĂȘme si le code tourne sur un ARM dans la cartouche (il faut quand mĂȘme passer par le TIA pour lâaffichageâŠ). Le second nâutilise mĂȘme pas dâARM et est une incroyable rĂ©ussite technique. Jâai achetĂ© les deux cartouches sur AtariAge. Amoeba Jump est un petit jeu gratuit gĂ©nial si vous ne connaissez pas.
Partie 3 LâAtari 7800

Quâest-ce que cette console a de particulier ?
Outre son chip Maria excellent, il se trouve que câest une console qui est complĂštement compatible Atari 2600 ET qui a une sortie Peritel pour la version française. Elle est donc, contrairement Ă ses aĂŻeules, trĂšs simple Ă brancher sur un tĂ©lĂ©viseur moderneâŠ
Est-elle juste une Atari 2600 boostée ?
Câest vraiment la descendante de la 2600, car elle est 100% compatible : elle utilise un 6502 et le TIA. Le format de cartouche est compatible aussi (8 broches en plus sur les cĂŽtĂ©s pour les cartouches de 7800). Mais la prĂ©sence de Maria nâen fait pas quâune 2600 boostĂ©e. On passe dâune console Pong Ă un Ă©quivalent NES ou Sega Master Systems, sensiblement supĂ©rieure Ă un C64 par exemple.
Comment fonctionne le processeur graphique (MARIA)Â ?
Ce composant trĂšs simple et trĂšs low cost a Ă©tĂ© conçu par GCC (General Computer Corporation), les concepteurs du jeu dâarcade Ms. Pacman. Câest une puce trĂšs flexible dont lâarchitecture se rapproche de celle des jeux dâarcade de lâĂ©poque. Pas de notion de sprite ou de background, juste des listes dâobjets Ă transfĂ©rer par DMA (Direct Memory Access). On a donc une machine capable dâafficher des bitmaps ou des sprites sans limite de nombre ou de taille autre que celle imposĂ©e par son petit bus mĂ©moire 8 bits. Une puce vraiment gĂ©niale mais qui impose au programmeur un modĂšle de programmation exotique, dâautant que le mapping mĂ©moire impose dâentrelacer code et graphiques (les deux lignes successives dâun «âŻspriteâŻÂ» doivent ĂȘtre sĂ©parĂ©es de 256 octets en mĂ©moire. Sic.). Le tout uniquement en assembleur, car le 6502 est allergique Ă tout langage de haut niveau. DâoĂč une logithĂšque bien pauvre Ă la fin⊠Mais une machine excellente qui reste Ă exploiter en 2023 !
Les émulateurs Atari 7800 sont-ils bons ?
Oui, a7800 est excellent, parfaitement "cycle accurate" et dotĂ© dâun excellent debugger intĂ©grĂ© pour les programmeurs.
Quels sont vos jeux commerciaux préférés sur cette console ?
Franchement? Je trouve les jeux commerciaux sur Atari 7800 globalement mauvais, voire indĂ©cents (Jinks, Aces of Aces). Jâai Ă©tĂ© trĂšs déçu par les adaptations dâIkari Warriors et de Double Dragon, considĂ©rĂ©s pourtant comme des bons jeux sur Atari 7800. Commando est correct, mais sans plus par rapport Ă la version C64 Ă laquelle je jouais petit. Les jeux rĂ©alisĂ©s par GCC (les concepteurs de Maria) sont trĂšs corrects, mais il sâagit pour la plupart dâadaptations de jeux dâarcades assez simples (Dig Dug, Ms. Pacman).
Quels sont vos jeux «âŻhomebrewâŻÂ» prĂ©fĂ©rĂ©s sur cette console ?
Je nâai jouĂ© Ă aucun jeu homebrew sur Atari 7800. Câest dâabord pour moi une plateforme de dĂ©veloppement. Jâai vu sur Youtube lâadaptation de 1942 qui est vraiment trĂšs bonne, mais elle nâest pas diffusĂ©e sur cartouche. Rikki & Vikki a lâair aussi excellent, mais est aujourdâhui introuvable.
Partie 4 : cc2600 et cc7800
Pourquoi crĂ©er des compilateurs aujourdâhui pour de si vieux systĂšme ? Pourquoi le C ?
Pourquoi le C ? Parce que câest le standard pour le dĂ©veloppement systĂšme, a priori ce quâil faut pour ce type de consoles. Jâai fait du C pendant 30 ans, donc naturellement quand jâai dĂ©couvert les Atari 2600 et 7800 et que jâai vu que tout Ă©tait programmĂ© soit en assembleur, soit en basic, je me suis dit quâil fallait faire quelque chose. Il existe bien dĂ©jĂ un paquet de compilateur C pour le 6502 dont lâexcellent cc65, mais le 6502 est un processeur qui se prĂȘte trĂšs mal au langage C (nombre de registres trĂšs rĂ©duit et capacitĂ©s dâindexation extrĂȘmement limitĂ©es). RĂ©sultat: le code gĂ©nĂ©rĂ© par cc65 est inutilisable (trop gros) sur les Atari. Sur la NES, pas de souci, ça passe, car le processeur graphique de la NES fait lâessentiel. Sur les Atari 2600 comme 7800, câest le 6502 qui travaille et qui doit alimenter le TIA ou MARIA le plus vite possible. Le compilateur C doit donc gĂ©nĂ©rer un code proche dâun code assembleur Ă©crit Ă la main, dâoĂč cc2600 et cc7800. Ils ne sont pas aussi complets que cc65 mais gĂ©nĂšrent le code assembleur 6502 qui convient pour les Atari.
Quels ont été les difficultés pour créer cc2600 et cc7800 ?
Je nâai pas vraiment rencontrĂ© de difficultĂ© pour ĂȘtre franc. Jâai programmĂ© cc6502 (le code commun Ă cc2600 et cc7800) avec grand plaisir en Rust, en utilisant la librarie Pest pour gĂ©rer la grammaire du C. Ca a Ă©tĂ© un rĂ©gal. Jâai Ă©crit de nombreux tests unitaires (une facilitĂ© intĂ©grĂ©e Ă Rust) pour Ă©viter de me perdre dans les bugs. Au bout dâune semaine, jâavais un compilateur opĂ©rationnel, puis je lâai amĂ©liorĂ© au fur et Ă mesure du dĂ©veloppement de mes jeux ou exemples sur Atari 2600 puis 7800. Je me suis surtout servi de ce projet personnel pour apprendre le Rust, et je crois que lâobjectif est atteint.
Quels conseils donneriez-vous Ă quelquâun qui veut se lancer dans le dĂ©veloppement de jeux avec ces compilateurs ?
Ces compilateurs peuvent faire gagner beaucoup de temps comparĂ© Ă lâutilisation de lâassembleur, mais la spĂ©cificitĂ© des architectures des Atari 2600 et 7800 imposent dâabord de bien les maĂźtriser. On ne peut pas sâaffranchir non plus dâapprendre lâassembleur du 6502, car cc6502 est un compilateur C incomplet orientĂ© 6502 (il permet notamment dâutiliser directement les registres X et Y du 6502) et que tout dĂ©bogage se fera en assembleurâŠ
Quels sont les outils pour créer/préparer des graphismes, musiques et sons pour ces consoles ?
Jâai Ă©crit Ă©galement en Rust sprites7800 et tiles7800 qui gĂ©nĂšrent le code C des graphismes Ă partir dâimages PNG et dâune description en YAML des sprites et des tiles Ă gĂ©nĂ©rer. Pour la musique, il existe lâexcellent RMTracker sur Atari 7800 qui permet de rĂ©aliser de belles musiques de fond pour le chip POKEY, et que jâai intĂ©grĂ© Ă cc7800. Pour les musiques Ă base de TIA (pour 2600 comme 7800), je fournis un exemple dâintĂ©gration dâun ensemble de sons rĂ©alisĂ©s par lâauteur de 7800Basic. Il existe aussi un TIA tracker, mais je ne lâai pas encore intĂ©grĂ©. Jâessaie de dĂ©velopper au fur et Ă mesure de nouveaux « headers » pour cc2600 et cc7800 pour faciliter le travail des dĂ©veloppeurs.
Est-il possible de créer ses propres cartouches ?
Câest trĂšs simple sur la 2600 comme sur la 7800. On trouve les schĂ©mas de PCBs tout fait sur internet avec les fichiers pour rĂ©aliser les cartouches en impression 3D. Il nâest pas trĂšs complexe non plus de rĂ©aliser des cartouches intĂ©grant un micro-contrĂŽleur type STM32F (en se basant par exemple sur le projet UnoCart), qui peut non seulement Ă©muler lâEPROM mais exĂ©cuter du code spĂ©cifique (accĂ©lĂ©rateur matĂ©riel) ou encore assurer une connexion Wifi via un ESP32.
Comment sâaccommoder des faibles ressources (peu de RAM, CPU sans virgule flottanteâŠ) ?
Vous parlez des 128 octets de RAM Ă partager entre variables et pile sur lâAtari 2600 ? Ăa fait partie du jeu ! Je trouve que finalement on sâen accommode facilement. Le plus contraignant est cette sacrĂ©e limitation de dĂ©calage bit par bit sur le 6502⊠Et lâabsence de multiplieur matĂ©riel⊠Le plus souvent, on sâen tire en prĂ©calculant tout et en utilisant des tables, la taille de la ROM et donc du code Ă©tant comparativement trĂšs peu limitĂ©e.
Partie 5: Pour finir
Vous aimeriez vivre du développement de vos logiciels libres?
IdĂ©alement oui, mais je ne vois pas vraiment comment pour ĂȘtre franc⊠Pour lâinstant, ça mâa coĂ»tĂ© beaucoup de temps et pas rapportĂ© un kopek, mais sait-on jamais. La communautĂ© Atari, aussi dynamique soit-elle, reste rĂ©duite. JâespĂšre que lâAtari 2600+ sera un succĂšs. Bien que bourrĂ©e de dĂ©fauts, ça me paraĂźt ĂȘtre la proposition la plus sĂ©rieuse depuis longtemps de relance dâune activitĂ© par Atari.
Au niveau personnel, quels logiciels libres utilisez-vous, sur quel OSÂ ?
Je dĂ©veloppe tout sur mon PC sous Ubuntu 22.04. Je programme essentiellement en Rust en utilisant Neovim comme Ă©diteur. Jâutilise aussi GIMP pour tout ce qui est graphisme. Avec ces outils, je couvre 99% de mes besoins.
Au niveau professionnel, quels logiciels libres utilisez-vous, sur quel OSÂ ?
Pareil, au niveau professionel : dĂ©veloppement en Rust sous Ubuntu 22.04. Jâutilise Firefox comme navigateur. Pour la partie bureautique, jâai un second PC professionnel sous Windows avec Word et compagnie. Jâavoue avoir toujours du mal avec LibreOfficeâŠ
Quelle est votre distribution GNU/Linux préférée et pourquoi, quels sont vos logiciels libres préférés ?
Je devrais rĂ©pondre ArchLinux si jâĂ©tais un vrai un geek, mais franchement Ubuntu me satisfait pleinement. Câest simple et ça marche. Mes logiciels libres prĂ©fĂ©rĂ©s ? Rust, LLVM, Vim et Neovim, GIMP. Et KiCad pour le design de circuits. Jâutilise aussi parfois Blender et Audacity. Blender est particuliĂšrement impressionnant comme projet open source.
Quelle question auriez-vous adorĂ© quâon vous pose ?
Comment expliquez-vous les dizaines de milliers de like que vous obtenez pour chacune de vos publications sur AtariAge ? Humm, mon record de like est Ă 13. Ăa porte bonheur non ?
Quelle question auriez-vous dĂ©testĂ© quâon vous pose ?
Vous nâavez pas mieux Ă faire que de dĂ©velopper pour une plateforme complĂštement oubliĂ©e depuis plus de 30 ans ?
Aller plus loin
- cc2600 (62 clics)
- cc7800 (59 clics)
- Le dossier de grospixels sur l'Atari 2600 (70 clics)
- atarimania (32 clics)

# super intéressant
Posté par octane . Ăvalué à  8.
Merci pour ces chroniques, je trouve ça super intéressant. Que des personnes passent du temps 30 ans aprÚs (40?) à dev des trucs sur du vieux matos, je trouve ça passionnant.
Et j'ai joué à space invaders sur une vieille console atari2600 qui marchait encore, c'était rigolo :-)
[^] # Re: super intéressant
Posté par Tonton Th (site web personnel, Mastodon) . Ăvalué à  6.
Et pour ceux qui veulent découvrir les arcanes déments de la 2600, vous pouvez vous offrir ce livre pour Noël :
https://www.lulu.com/shop/oscar-toledo-gutierrez/programming-games-for-atari-2600/paperback/product-pq9dg4.html
# quand je penseâŠ
Posté par jseb . Ăvalué à  6. DerniĂšre modification le 09 novembre 2023 Ă 11:39.
Quand je pense que je croyais faire du bas niveau archéologique avec l'assembleur Z80 sur MSX :)
Merci pour l'interview, trĂšs vivante.
Discussions en français sur la création de jeux videos : IRC libera / #gamedev-fr
# 1024 excuses
Posté par devnewton đș (site web personnel) . Ăvalué à  6.
J'ai oubliĂ© de placer le jeu de mot Atari, Ă moitiĂ© dans ton lit dans la dĂ©pĂȘche :-(
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: 1024 excuses
Posté par Ysabeau đ§¶ (site web personnel, Mastodon) . Ăvalué à  3.
Tu peux la modifier !
Je nâai aucun avis sur systemd
# ah bah le 6502
Posté par BAud (site web personnel) . Ăvalué à  4. DerniĂšre modification le 09 novembre 2023 Ă 20:14.
moui, c'est un peu spartiate le 6502 avec ses 2 registres (A et B) et ses deux index (X et Y)
j'ai pas mal joué avec l'assembleur sur mon Apple IIe, de bons souvenirs⊠d'abord en Basic avec des PEEK et des POKE, puis avec un vrai assembleur (MASM ou TASM je crois). C'était indispensable pour pouvoir utiliser l'extension à 128 ko (l'AppleSoft Basic ne voyait que 48 ko sur les 64 ko de base et pas l'extension de 64 ko à 1500 Francs de l'époque :/)
Lode Runner et Boulder Dash, j'y ai passé des heures ! (ainsi que Conan, que Locksmith 5.0 avait mal copié et dont le dernier niveau plantait :/)
[^] # Re: ah bah le 6502
Posté par Nicolas Boulay (site web personnel) . Ăvalué à  4.
J avais 100 niveau perso de load runner :)
"La premiÚre sécurité est la liberté"
[^] # Re: ah bah le 6502
Posté par KĂ©vin Guilloy . Ăvalué à  3.
Et c'est mĂȘme pire que ça : le 6800 avait bien les registres A et B mais le 6502 faisait l'Ă©conomie du B et ne gardait qu'un unique registre accumulateur.
Cependant, l'accÚs rapide à la premiÚre page mémoire (la zeropage) permet de facto d'avoir l'équivalent de 256 registres généraux.
# Et reprendre des programmes d'ailleurs?.
Posté par abriotde (site web personnel, Mastodon) . Ăvalué à  2. DerniĂšre modification le 15 dĂ©cembre 2023 Ă 21:55.
Outre le fait de crĂ©er de nouveaux jeux pour l'Atari, est-ce que ton compilateur permet de reprendre certains jeux existant (Ou autres programmes) et de les faire tourner sur Atari en les recompilant? J'imagine qu'il y a pas mal de retouche manuel Ă faire (i.e. de lâassembleur).
Je pense un peu a des jeux écrit en C pour d'autres console mais aussi des programmes tels que ceux de l'IOCCC ou je ne sais pas (Il y avait un simulateur d'avion par exemple).
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
Suivre le flux des commentaires
Note : les commentaires appartiennent Ă celles et ceux qui les ont postĂ©s. Nous nâen sommes pas responsables.