L'extrait suivant est tiré deArcade Parfait: Comment Pac-Man, Mortal Kombat et d'autres classiques du Coin-Op ont envahi le salonpar David L. Craddock,disponible en livre de poche et Kindleformats.
DANIEL FILNER NE POUVAIT PAS croire que cela se produisait. Il avait dix-sept ans et lui et son ami traînaient au Skywalker Ranch, le centre de l'univers Star Wars de George Lucas. «J'avais sept ans quand Star Wars est sorti. C'était incroyable.
Le voyage de Filner vers cette galaxie très lointaine a commencé à l'âge de onze ans, la première fois qu'il a touché l'ordinateur personnel TRS-80 de Radio Shack. Son école en avait un et son professeur de mathématiques a donné à Filner la permission de le bricoler parce qu'il était en avance sur le reste de la classe. Au collège, il s'est inscrit à des cours de programmation pendant les vacances d'été et a appris le BASIC sur Apple II.

Filner est venu honnêtement grâce à son penchant pour les chiffres. Son père, un scientifique, ne voulait pas que son fils perde son temps à jouer à des jeux vidéo sur une de ces Ataris ou Nintendo dont il avait entendu parler. En guise de compromis, il lui a acheté un TI-99/4A, l'ordinateur personnel de Texas Instruments sorti en 1981. Pour la modique somme de 525 $, le PC était équipé d'un processeur de trois mégahertz, de 256 octets de mémoire et d'une compatibilité avec des supports de stockage tels que sous forme de cartouches, de disquettes et de cassettes.
Là, dit son père alors qu'il finissait d'installer le PC. Son fils pouvait désormais acquérir des compétences pratiques au lieu de perdre son temps en jeux. Naturellement, la première chose que Filner a faite avec son nouvel ordinateur a été d'écrire des jeux. « Au moment où j'étais en septième et huitième année, j'essayais d'écrireÂne Kongpour le PET, etPac-Manpour la TI994A, j'essayais juste de reproduire des jeux d'arcade sur les ordinateurs personnels auxquels j'avais accès. Je n'ai pas fait un excellent travail, mais c'est comme ça que j'ai commencé à programmer, en recréant simplement des jeux d'arcade sur des ordinateurs personnels, principalement parce que je n'avais pas vingt-cinq cents à investir dans un jeu d'arcade.
Pac-Man» Filner, perplexe. Il programmait en BASIC, et malgré tous ses efforts, les quatre fantômes refusaient de se déplacer librement, en temps réel, pendant qu'il guidait le personnage en forme de rondelle de hockey dans le labyrinthe. D’abord il bougea, puis les fantômes bougèrent. «Ma mère a vraiment aimé ça», se souvient-il. « Je me souviens que ma mère y jouait et j'étais déçu parce que les fantômes ne bougeaient pas tout seuls. Mais ma mère trouvait cela plus stratégique car il fallait parcourir le labyrinthe sans perdre de terrain.
Filner a emballé son TI lorsque sa famille a déménagé en Californie. Sa nouvelle école avait un Commodore PET et il s'efforça de recréerÂne Kongdessus pour des résultats légèrement meilleurs. « Quelque part dans mon garage se trouve une cassette étiquetéeFilner Kong, ce qui étaitÂne Kong», a-t-il déclaré.
En entrant au lycée, Filner recherchait des défis de programmation plus complexes. Son père a acheté un Atari ST et Filner est passé du BASIC au langage assembleur. Son objectif était d'écrire son propre BBS, ou système de babillard électronique, un forum de discussion en ligne où les utilisateurs pourraient partager des messages et des fichiers. Puis son ami Tim lui a montré un jeu appeléBlazer boule, un jeu d'action réalisé par Lucasfilm Games, rebaptisé plus tard LucasArts, pour le PC Atari 800. Ils l'ont aimé et ont décidé de le porter sur le ST. Filner a téléchargé le jeu sur un BBS et a été contacté par un gars qui prétendait occuper le travail de ses rêves dont Filner rêvait depuis son enfance.
« J'ai dix-sept ans, il est un adulte et il savait que j'étais opérateur de tableau d'affichage dans le quartier. Il avait besoin de travailler sur un BBS qu'il essayait de monter, mais il s'est avéré qu'il avait travaillé dans l'industrie du jeu vidéo et qu'il avait des relations. Il a vu ce que nous faisions avec notre version Atari ST deBlazer boule, et il nous a mis en contact avec Lucasfilm Games.
Lucasfilm a invité Filner et Tim au Skywalker Ranch. Après le grand tour, les dirigeants leur ont remis un contrat à terminerBlazer boulepour le ST. C'était amusant tant que ça durait. "Le montant total pour nous deux aurait pu être inférieur à 2 000 dollars", a déclaré Filner. « Nous étions des lycéens. Nous l'avons terminé et fait fonctionner, et le résultat est assez bon. Mais il s’est avéré qu’ils n’allaient pas le publier. Cela n’allait pas se transformer en quelque chose et nous en avons été très déçus.
Un an plus tard, Filner suivait des cours à l'UC Berkeley lorsqu'il reçut un appel d'un responsable de LucasArts. Il recherchait un programmeur pour écrire un pilote audio (un fichier qui assure la communication entre le matériel et le logiciel) pour la version Atari ST deZak McKracken et les Alien Mindbenders, un jeu d'aventure pointer-cliquer fonctionnant sur le moteur exclusif SCUMM (Script Creation Utility for Maniac Mansion) de la société. Le producteur avait contacté Filner parce qu'il figurait sur une très courte liste de programmeurs familiers avec le ST. Juste comme ça, il était redevenu un Jedi.
«Je veux dire, ils m'ont envoyé des chèques papier avec Yoda sur eux. Je suis à l'université et je gagne… pas un salaire décent », a déclaré Filner après une pause, « mais plus d'argent que ce dont un étudiant a besoin, et j'obtiens mon diplôme en informatique et je travaille déjà professionnellement.

LucasArts a continué à développer des aventures pointer-cliquer sur le moteur SCUMM. Chaque nouveau jeu introduisait de nouvelles fonctionnalités telles que la possibilité de redimensionner les personnages à mesure qu'ils se rapprochaient ou s'éloignaient de l'écran. Filner est resté en tant qu'entrepreneur, portant des jeux tels queMétier à tisseretManoir maniaqueà l'Atari ST. Les versions ultérieures du moteur l'ont forcé à maintenir ses compétences à niveau en faisant des choses comme écrire dans un hybride d'assembly et de C.
À l'université, l'un de ses cours était centré sur l'apprentissage de la présentation. Filner a parlé de son sujet préféré : Comment créer des jeux vidéo. À peu près à la même époque, il s’inscrit à un cours de langage assembleur. Son professeur les a accueillis le premier jour en leur disant : « Vous n'aurez jamais vraiment besoin d'utiliser ce genre de choses » puisque les langages de haut niveau comme le C étaient beaucoup plus répandus dans les emplois de neuf à cinq, comme l'écriture de logiciels pour les banques, mais, a-t-il admis. , quelques étudiants pourraient le trouver utile.
Filner eut un sourire narquois. «C'était comme: 'Eh bien, en fait, je suis payé pour utiliser ce genre de choses en ce moment.' Ce n’était pas une hypothèse. C’était en fait ce que je faisais.
Après avoir obtenu son diplôme, Filner a obtenu un emploi dans la programmation de jeux sous licence pour une société appelée Equilibrium. Il a travaillé sur un jeu de baseball mettant en vedette Bo Jackson, un jeu d'action sous licence pour les personnages d'Attack of the Killer Tomatoes et un titre dans lequel les joueurs exécutaient les mouvements astucieux du rappeur Vanilla Ice. Un après-midi, il a reçu un appel d'un gars qui lui a demandé s'il serait intéressé à travailler sur une collection de vieux jeux d'arcade.
Filner fut surpris. Il n'avait aucune idée de qui était ce type ni comment il avait obtenu son numéro, mais oui, il était intéressé.

L'entreprise s'appelait Digital Eclipse et la mission consistait à obtenirDéfenseur,Porte des étoiles, et d'autres jeux Williams classiques fonctionnant sur Sega Genesis. « Le gars a dit : 'D'accord. Voici le kit de développement Genesis. Voici le code source deDéfenseur. Voyez si vous pouvez faireDéfenseurtravail.' C'était comme si on lui remettait les joyaux de la couronne : regarderDéfenseuret voir comment il fonctionnait. J'étais en train de traduire de l'assemblage 6809 à l'assemblage 68000 », a expliqué Filner, ce dernier étant le dialecte de l'assemblage traité par la Genèse. «Je devais comprendre tout le programme de fond en comble.»
Chaque jeu Williams utilisait un système bitmap qui stockait chaque pixel de l'écran dans un registre mémoire. Le produit final affiché à une résolution plus que suffisante. Deux semaines plus tard, Filner a appelé son contact chez Digital Eclipse et lui a dit qu'il avait obtenuDéfenseurfonctionnement. "Super", dit le gars. "Maintenant, faisPorte des étoiles.» Filner a terminé le travail encore plus rapidement. Il est passé àRobotron, alorsSinistar.
Pour son prochain travail, Digital Eclipse souhaitait que Filner convertisse la même collection sur Saturn, la console sur CD de Sega. Ce travail, il le savait, représentait un obstacle encore plus grand à franchir. Ses conversions Genesis étaient des traductions d'un jeu d'une langue à une autre. La Saturn nécessitait un émulateur. Cela rendrait chaque jeu rétro de la collection d'arcade parfait, si Filner pouvait comprendre comment fonctionnaient les émulateurs et comment en écrire un. Heureusement, l'un des ingénieurs de DE lui a donné une introduction. "Vous n'êtes pas obligé de masser chaque octet de chaque ligne à la main", a déclaré Filner. « Vous n'avez qu'à faire fonctionner l'émulateur, et puis, boum, tout se passe dans le bon sens. Je ne pense pas y avoir déjà pensé de cette façon auparavant, mais j'étais sur le point d'avoir un jeu où le système cible n'était pas assez puissant pour faire un émulateur, j'ai donc dû créer un émulateur pour ce jeu. Je le savais déjà de haut en bas.
Au cours des années suivantes, l'émulation de jeux de console et d'arcade classiques est devenue la spécialité de Filner. Il a géré leCollection de classiques Capcom, qui comprenait des versions deCombattant de rue II, une anthologie de jeux Sega Genesis commeSonic le hérissonetHache d'or, et d'autres titres d'arcade de Midway. Beaucoup de ces projets et d'autres lui ont été confiés sous contrat par Digital Eclipse, qui à ce moment-là l'avait en numérotation abrégée.
«Quand ils ont euCollection 30e anniversaire de Street Fighter, ils ont tout de suite su que c’était le genre de chose que je pouvais faire », a déclaré Filner.
✽✽✽
DANIEL FILNER ESPÉRAIT que les choses se passeraient d'une certaine manière lorsqu'il travaillerait avec des éditeurs. J'espérais, mais je ne m'attendais pas.
Par exemple, il parlait rarement directement aux propriétaires comme Capcom, il a donc demandé à des entrepreneurs tels que Digital Eclipse de parler à sa place. Sa demande deCollection 30e anniversaire de Street Fighterétait simple, et identique à tout projet impliquant un portage ou une émulation : obtenir le code source. Avoir la source d'un jeu, c'était comme avoir un GPS lors d'un long voyage en voiture. Sans cela, il lui suffisait de monter dans sa voiture et de conduire. "Habituellement, cela n'arrive pas", a admis Filner. « C'est extrêmement difficile, parce que le code source est peut-être complètement manquant ou difficile d'accès, et ils ne comprennent pas ou ne se soucient pas de son utilité, ou ils sont paranoïaques à l'idée de le laisser hors de leur portée. Parfois, cela arrive une fois le projet terminé.
Combattant de rue 30eétait un cas particulier. Au début du projet, il possédait déjà une bibliothèque personnelle deSFcode qu'il avait accumulé depuis le début des années 2000, lorsqu'il avait travaillé sur diverses anthologies Capcom comprenant des saveurs variées deSFII.Il travaillait contre rémunération à l'époque, donc l'émulateur qu'il avait écrit appartenait à son employeur. Depuis, il avait construit le sien à partir de zéro, le mettant à jour chaque fois qu'unCombattant de rue-un projet lié est arrivé.
Chaque programmeur a écrit un émulateur à sa manière. Quelle que soit la méthode utilisée, l’objectif reste le même. « Fondamentalement, un émulateur prétend être un autre élément matériel », a déclaré Mike Mika, directeur du studio Digital Eclipse et ingénieur qui a écrit pas mal d'émulateurs.

À l'aube de tout projet d'émulation, les programmeurs réfléchissent à la structure technique de la plateforme qu'ils souhaitent émuler : ses processeurs, sa mémoire, ses puces audio et vidéo et le langage du code du jeu, qui exécute les instructions qui font fonctionner tout ce matériel. . La plupart des jeux d'arcade sont écrits en assembleur. Le travail du processeur principal d'un jeu, le CPU, est de lire les instructions du code, une par une, et de faire ce que ces instructions lui disent de faire : ajouter des valeurs, soustraire des valeurs, stocker une valeur, charger une valeur, comparer deux ou plusieurs. valeurs, branchez-vous à d’autres sections de code. "Un émulateur fait ce que fait le processeur", a expliqué Filner. "Il a un numéro qui pointe vers le compteur du programme et il extrait l'instruction suivante en lisant la ROM du jeu."
Les émulateurs sont agnostiques. Ils ne se soucient pas du jeu que le processeur essaie d'exécuter. Ils attendent simplement des instructions et demandent au processeur d'agir en conséquence. « Chaque puce, qu'il s'agisse d'une puce sonore ou autre, suit le même schéma de base consistant à effectuer un petit peu de traitement, à produire une sortie, à vérifier les entrées, qu'il s'agisse d'entrées de joystick, d'un bouton enfoncé ou d'une entrée provenant d'un autre puce », a poursuivi Filner.

Pour chaque image d'animation, les émulateurs produisent deux types de sortie : une image rendue à la résolution native du jeu et un flux audio. Une autre partie de l'émulateur décide quoi faire de cette sortie. Habituellement, cela signifie agrandir une image pour remplir l’écran et diriger le son vers un canal de sortie, le plus souvent un ensemble de haut-parleurs. « Le cœur de l'émulateur ne se soucie pas du système sur lequel il se trouve. Il produit simplement un bitmap et un flux d'échantillons audio », a déclaré Filner. « Si vous pensez à un jeu d'arcade de dix-huit pouces carrés, peut-être, et comportant trente puces, l'une d'elles est le processeur, l'autre pourrait être une puce sonore et l'autre pourrait être un autre processeur pour communiquer avec la puce sonore. Un émulateur doit simplement faire ce que le matériel a fait.
Des jeux primordiaux tels quePongétaient constitués de circuits avec des portes qui s'ouvraient électroniquement et envoyaient des signaux binaires oui ou non, un ou zéro. Cela les rendait difficiles à reproduire exactement, un à un, dans le code. Lorsque la technologie a permis aux ingénieurs de créer des jeux à partir de processeurs et de puces RAM, la plupart des fabricants de jeux de pièces ont acheté ces produits, ainsi que d'autres, plutôt que de réinventer la roue. Chacune de ces puces et cartes était accompagnée d'une documentation qui les aidait à comprendre comment construire ce qu'ils voulaient construire.
L'écriture d'émulateurs reste un art obscur plutôt qu'une science, mais des passionnés et des programmeurs de carrière comme Filner ont comblé le fossé en suivant les traces des fabricants de pièces de monnaie. Lorsqu'on leur confie un projet d'émulation, ils essaient de ne pas réinventer la roue. "Si vous pensez aux pièces automobiles, c'est comme si vous aviez un groupe d'entreprises fabriquant des automobiles, mais que les entreprises obtenaient toutes leurs pièces auprès de trois fabricants de pièces", a expliqué Filner. « Vous pourriez avoir une voiture avec un Z80 et une autre avec un processeur 68000. L’extérieur pourrait ressembler à ce qu’ils voulaient, mais l’intérieur ressemblerait aux pièces que tout le monde savait utiliser. Si vous savez comment émuler ces parties, tout est modulaire. La quantité de matériel unique pour chaque système matériel est encore plutôt faible.
D'une certaine manière, émuler un jeu est simple. Une fois que les programmeurs comprennent un élément matériel particulier, ils peuvent écrire du code afin que des émulateurs tels que MAME, l'émulateur de machine d'arcade le plus populaire, le prennent en charge. La partie délicate survient lorsque les éditeurs demandent que des modifications soient apportées. « Chaque fois que vous devez modifier le comportement original de quelque manière que ce soit, cela perce le voile de l’émulation. Vous pouvez casser des choses », a déclaré Filner.

À l'époque deCombattant de rue IIetTortues Ninja adolescentes mutantes, des fabricants comme Capcom et Konami ont inclus un écran arborant le logo du FBI accompagné d'une citation désormais synonyme d'arcades vidéo,Les gagnants ne se droguent pas. « Récemment, se souvient Filner, un avocat de génie a déclaré : « L'avocat du FBI sur cet écran est une marque déposée du gouvernement américain. Nous ne sommes pas nécessairement encore autorisés à l'utiliser, nous ferions donc mieux de le supprimer. Quoi? Non, cela fait partie du jeu original. Eh bien, je ne fais pas partie du service juridique, donc je ne peux pas poser ces questions. Ils disent simplement : « S'il vous plaît, retirez l'écran du FBI. »
Effectuer un changement aussi direct que déchirer un écran est facile lors du développement d’un jeu original. Pour les programmeurs d’émulation n’ayant pas accès au code source, les jeux classiques sont des boîtes noires. Ils pouvaient ouvrir la ROM du jeu, la démonter et parcourir le code pour trouver les instructions relatives à cet écran, mais cela comportait des risques. Filner pourrait accidentellement endommager d'autres parties du code. Au lieu de cela, il essaie de comprendre comment passer de l'instruction relative à l'écran qui doit être supprimée à l'instruction suivante en ligne. Une autre option consiste à laisser l’écran intact, mais à mettre en œuvre un moyen de l’ignorer.
Les éditeurs ont également tendance à demander que l'écran des droits d'auteur d'un jeu soit mis à jour pour indiquer l'année de sa réédition. Cela ressemble moins à une intervention chirurgicale qu'à désamorcer une bombe. "Le message sur le droit d'auteur est la première chose qui pourrait contenir des pièges", a déclaré Filner. "Lorsqu'un programmeur essayait d'empêcher le bootlegging, il avait des sommes de contrôle" - une séquence de caractères vérifiée par le jeu - "et des sommes de contrôle pour vérifier les sommes de contrôle. Si on vous demande de modifier quelque chose qui, selon vous, aurait pu être piégé, vous il faut être très prudent pour que l'émulateur ne puisse pas dire que vous avez changé quoi que ce soit.
L'approche choisie par Filner pourCombattant de rue 30econsistait à insérer des points d'arrêt, des panneaux de signalisation qui détournent l'exécution d'un programme sans même avoir besoin de voir le code existant, et encore moins de le modifier. « Les points d'arrêt signifient qu'à cette instruction, l'émulateur s'arrête et appelle cette fonction C++. La fonction C++ est essentiellement une montre magique qui arrête le monde : cela se produit entre les instructions, et vous pouvez modifier les choses sans que le programme d'origine ne s'en aperçoive, si vous faites attention. »

Au fur et à mesure que Filner approfondissait le code des douze jeux inclus dansCombattant de rue 30e, il a dû apporter d'autres modifications demandées par Capcom. Avant chaque match,Combattant de ruelaissez les joueurs choisir parmi une poignée d’étapes ayant pour thème les villes et les pays.timidea élargi cette pratique en concevant une scène autour de la personnalité de chaque personnage et de la culture de son pays : un dojo au Japon pour Ryu, un hangar de l'US Air Force pour Guile avec un avion au ralenti en arrière-plan et des soldats qui traînent pour l'encourager, un marché chinois pour Chun Li est une ruche d'activité. Les citoyens font des allers-retours à vélo, un vendeur étrangle un poulet et une famille applaudit à l'ombre et en sécurité de leur magasin. Derrière la famille se trouve une pile de caisses décorées de l'iconographie blanche sur fond rouge de Coca-Cola. Un autre objet incriminé, une canette de Coca-Cola, repose par terre dans le hangar de Guile. "Capcom a décidé : 'Peut-être que nous ne devrions pas les avoir parce que nous n'en avons pas parlé à Coca-Cola'", a déclaré Filner. « J'ai dû repeindre ou effacer ces caisses pour qu'elles ne ressemblent pas à du Coca-Coca [iconographie].
"Il y a environ 64 000 tuiles pour chacun de ces jeux, donc il y a cette tapisserie géante de tuiles. Les cartes et les sprites des personnages des joueurs sont générés à partir de ces listes de tuiles", a-t-il déclaré. «Quand est venu le temps d'apporter ces modifications, j'ai simplement inséré des tuiles de caisse qui avaient été superposées. Les tuiles ne sont pas réellement stockées sous forme de gros bitmap dans les ROM. Afin d'effectuer ces modifications, j'ai dû écrire un programme de conversion pour prendre l'image ROM et la convertir en bitmap. Ensuite, j'ai pu modifier le bitmap et l'outil a dû reconvertir le bitmap au format ROM.
Changer les détails subtils du contenu de jeux vieux de plusieurs décennies donne à Filner une perspective différente d'une carrière fondée sur la préservation des jeux. « Ce sujet particulier n'est pas vraiment une question de préservation. Cela corrompt certaines parties du jeu original pour rendre légalement possible de [vendre à nouveau]. »
Arcade Parfait: Comment Pac-Man, Mortal Kombat et d'autres classiques du Coin-Op ont envahi le salonpar David L. Craddockestdisponible en livre de poche et Kindleformats. Divulgation : David L. Craddock est l'auteur d'Arcade Perfect et l'éditeur de longreads sur Shacknews.com. Cette fonctionnalité n'est pas considérée comme une approbation de son livre
Éditeur de lectures longues
David L. Craddock écrit des listes de fiction, de non-fiction et d'épicerie. Il est l'auteur de la série Stay Awhile and Listen et de la série de romans fantastiques Gairden Chronicles pour jeunes adultes. En dehors de l'écriture, il aime jouer aux jeux Mario, Zelda et Dark Souls, et sera heureux de discuter longuement des innombrables raisons pour lesquelles Dark Souls 2 est le meilleur de la série. Suivez-le en ligne surdavidlcraddock.comet @davidlcraddock.