Entre infoart et infoviz, le dernier Ben Fry vous propose de visualiser d'une manière bien particulière le code de plusieurs jeux Atari 2600. Il nous servait déjà les excellents dismap et mariosoup il y a quelques temps, et voilà qu'il remet ça avec ce nouveau sketch Processing (forcément). Comme dans beaucoup d'autres jeux consoles, les cartouches d'Atari 2600 contiennent du code à la fois exécutable et combinable avec des données. Généralement, il se planque dans des tableaux en assembleur et sont bourrés de d'itérations et de "go to" qui pointent évidemment vers une autre portion de code. Vous l'aurez compris, tout ça devient une matière première incroyablement riche pour Ben Fry, qui propose donc sa propre représentation visuelle. Du coup, quand un byte de données (1 kilo octet (Ko) vaut 2 puissance 10 soit 1.024 octets ou byte et 8.192 bits) est trouvé dans la cartouche, il se retrouve matérialisé par une ligne orange (un block pour un "1", et un point pour un "0"). Vous suivez? Commencez donc par jeter un oeil aux images générées. Vous verrez qu'une ligne est composée de 8 éléments, formant un byte. En clair, cela signigie que les images sont visibles en entier pendant une partie lorsque la ligne est complète! Les sprites étaient en effet souvent stockés à l'envers via des méthodes de programmation obscures que je ne saurai expliquer. A la base, les images font 13x19" et on pouvait lire chaque bits de texte mais le bonhomme a ensuite modifié une version de Distella (un désassembleur) afin de ressortir du texte dans le format qu'il souhaitait. Pour finir, l'image finale a été générée via un sketch Processing. Ouf! Si au final le résultat n'est pas forcément époustoufflant, la démarche est réellement intéressante. On est d'ailleurs plutôt amusé de voir que certains jeux semblent particulièrement simplistes au vu du code, tandis que certains, d'apparence beaucoup plus complexes, multiplient les destinations. Et oui, plutôt balaise le Pong! Les six répresentations de Distellmap sont disponibles ici ou dans la suite.

