Space Invaders: maintenant en 512 octets (assembleur x86)

image

Il semblerait que, tout récemment, Space Invaders tenait dans 1 kilo - octet , mais maintenant ils pouvaient tenir dans un secteur de démarrage (512 octets). L'auteur du programme est Oscar Toledo, cinq fois vainqueur de l'IOCCC ( International Obfuscated C Code Contest ) et membre régulier du JS1K, également connu comme le créateur des échecs, qui n'occupent que 392 octets .

Le code source du jeu peut être consulté dans le référentiel sur Github: github.com/nanochess/Invaders

Pour fonctionner, vous aurez besoin de nasm (Netwide Assembler), qui peut être téléchargé sur le site officiel . Le jeu peut être assemblé en exécutant la commande:

nasm -f bin invaders.asm -Dcom_file=1 -o invaders.com 

En fait, il est toujours 4 fois plus grand que la taille totale de la RAM Atari 2600 - mais il pourrait facilement tenir sur sa cartouche, qui fournissait 2 kilo-octets de mémoire. En outre, l'utilisation d'instructions d'assembleur PUSHA/POPA dans le code de programme nécessite un processeur 80186 et supérieur.

Le Space Invaders original a été publié en 1980 et est devenu l'une des premières arcades portées sur l'Atari 2600 à partir de machines à sous. Le jeu est devenu un best-seller, augmentant les ventes de la console elle-même 4 fois. Le jeu original, qui est apparu sur les machines d'arcade en 1978, selon son auteur, a lui-même été inspiré par un autre jeu Atari - Breakout.

Une démonstration du jeu peut être vue dans la vidéo.

Source: https://habr.com/ru/post/fr454872/


All Articles