Une démo de 256 octets et son code expliqué

L'art de faire vraiment beaucoup avec extrêmement peu

Voici une demo (ou « intro » dans ce cas) qui tourne sous DOS :

memories par Desire

Ces deux minutes de vidéo sont donc générées par un programme qui fait 256 octets, que l’on peut télécharger ici et qui tourne sous DOS (ou plus probablement sur un émulateur, comme Dosbox). Jugez plutôt :

$ ls -lah memories.com 
-rw-rw-r-- 1 spacefox spacefox 256 avril  8 17:16 memories.com
$ xxd memories.com 
00000000: b013 cd10 9568 f69f 07b8 1c25 b245 cd21  .....h.....%.E.!
00000010: b8cd ccf7 e700 e030 e401 e8c1 e809 240f  .......0......$.
00000020: 93b7 018a 5f3a ffd3 aa47 4775 e3b0 85e6  ...._:...GGu....
00000030: 40e4 60fe c875 d9c3 0b93 747e 6190 a5c8  @.`..u....t~a...
00000040: ea37 4358 c345 f7c5 0700 7514 ba30 03be  .7CX.E....u..0..
00000050: 3701 6e6e 6e69 c580 f6c1 e80a 0416 ee6e  7.nnni.........n
00000060: cfb8 2913 00c6 f6f6 92f6 ea29 ea30 d488  ..)........).0..
00000070: e024 1cc3 9229 e830 e00c db04 13c3 88f0  .$...).0........
00000080: 2c64 f6e8 92f6 e800 e688 f001 e824 18c3  ,d...........$..
00000090: 89e9 bbf0 ff01 f9b8 3303 f7e9 d1ca 4377  ........3.....Cw
000000a0: f48d 471f c38d 8e00 f8c1 e103 0fb6 c60f  ..G.............
000000b0: bed2 89c3 0faf d900 d70f afd1 28f0 20f8  ............(. .
000000c0: 24fc d675 02b0 2ac3 b1f7 5288 f02c 64f6  $..u..*...R..,d.
000000d0: e992 00c8 f6e9 88f0 30e0 0404 a8f8 5ae1  ........0.....Z.
000000e0: e929 e930 c8d4 0604 14c3 80ee 7878 1089  .).0........xx..
000000f0: 10df 00da 38d9 58ff 8b00 01e8 2480 48c3  ....8.X.....$.H.

Le mieux, c’est que l’auteur ne garde pas ses secrets de fabrication pour lui :

Il donne le code source complet, commenté et avec toutes les explications de fonctionnement pour que chacun puisse comprendre comment il a réussi un truc pareil.

Détail amusant, la vidéo HD sur YouTube ferait 61 208 511 octets, donc la demo a un taux de compression de 1/239 095…



Icône sous licence MIT (!)

8 commentaires

Ouaw, j’ignorais l’existence de ce programme et c’est super impressionnant ! o_O
J’ai ouvert l’application memories.com avec le logiciel HxD et j’obtiens cette représentation du programme :

s

Pourquoi n’a-t-on pas la même représentation pour le texte décodé que celle qui illustre ton billet ?

Pour être plus précis, sur les screenshots de Green, il ne s’agit pas d’un encodage défini par l’ANSI mais de Windows-1252, l’encodage par défaut utilisé sous Windows en Europe de l’Ouest pour tout ce qui n’utilise pas Unicode. On le reconnaît notamment au fait que le symbole « € » soit à la position 0x80. Ce n’est pas le cas avec d’autres encodages concurrents comme ISO 8859–15.

Si tu utilises d’autres logiciels type OllyDBG, tu pourras aussi avoir des éditeurs hexadécimaux qui utilisent encore d’autres jeux de caractères, comme CP850 ou CP437 qui eux étaient utilisés sous DOS (et comportent de nombreux symboles amusants pour leur taille restreinte, comme ☻, ◘, ♠ ou ▓).

Ouaw, j’ignorais l’existence de ce programme et c’est super impressionnant ! o_O

C’était le passe-temps favori des gens dans les années 90, avant les bots Discord. Tu peux faire un tour sur le site Pouet.net si tu en veux une anthologie :)

+1 -0

J’avais lu quelque part qu’il existait un concours où le but était de coder une démo de ce style dans un langage très bas niveau (assembleur ou machine directement) en un temps limite (48h mais je suis vraiment plus sûr). Le nom m’échappe mais c’était très impressionnant.

Merci pour le partage en tout cas, je n’ai probablement pas le niveau pour comprendre le code, mais ça n’empêche pas d’apprécier le résultat !

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte