En 1993, l'étudiant en ingénierie Rabah Shihab écrivait Babylonian Twins sur un Amiga 500 à Bagdad : 512 Ko de RAM, pas de disque dur, quelques heures d'électricité par jour, de l'assembleur 68000 pur. C'était le premier jeu commercial développé en Irak, mais la faillite de Commodore et les sanctions l'ont laissé sur une étagère. Un portage iOS manuel de 2010, environ 34 000 lignes de C++, a ensuite dépassé les deux millions de téléchargements.
--level=<name> load a level directly
--pose=<spec> put the twins at exact positions
--drive=<spec> press buttons on a script, frame by frame
--probe dump switch / gate / door / key state
--screenshot=<path> render a frame and quitCette année, il a mené une expérience contrôlée avec Claude Fable 5 dans Claude Code, doté d'un terminal et d'un accès au système de fichiers. Première étape : transférer le moteur C++ de 2010 vers Godot 4. Les horodatages montrent 21 minutes entre le projet vide et un personnage jouable ; à 02h15, le jeu s'exportait vers macOS, iOS et Android. Deuxième étape : porter les 72 758 lignes d'assembleur 68000 d'origine, réparties en 26 fichiers, aux 50 Hz de l'Amiga. Troisième étape : embarquer le jeu de 1993 dans le jeu moderne comme option de lancement. Les trois ont fonctionné ; la troisième a pris une soirée, de 21h58 à 23h43.
Avant tout portage, le modèle a réassemblé les sources de 1993 avec vasm sur Apple Silicon jusqu'à obtenir une sortie identique à l'octet près aux binaires livrés à l'époque. Quinze minutes se sont écoulées entre l'import et la première reconstruction conforme. Il a écrit un préprocesseur comblant cinq différences de dialecte entre ASM-One et vasm, et corrigé un bogue subtil d'org où un ds.b 800 dans un bloc rembobiné décalait tout le reste, liste copper comprise, de 944 octets. Un écart résiduel de 108 octets l'a conduit à conclure que les disquettes livrées étaient un instantané mémoire sauvegardé après une partie : le code écrit ces variables avant de les lire, si bien que les zéros d'un assemblage neuf restent sans effet. Shihab admet ne jamais avoir vérifié cette affirmation lui-même.
L'analyse des formats partait du code qui lit les octets. Le modèle a décodé les cartes de tuiles sans en-tête des cinq niveaux en une passe, les a rendues à nouveau et a obtenu zéro pixel divergent par rapport à ses captures de 2020, après avoir pris en compte deux effets copper : le dégradé du ciel et le cycle de couleur de l'eau. Il a reconstitué le format 16 bits des cellules de carte (6 bits de propriété, 1 bit de banque, 8 bits d'image), les tables d'objets par écran et le fait que les portes sont estampillées sur la carte à l'exécution par le code, jamais peintes dans l'éditeur. Ce dernier point corrigeait la conviction de Shihab, vieille de 33 ans, selon laquelle les portes étaient des données de carte. Quand les calculs des planches de sprites étaient ambigus, il a signalé l'ambiguïté et posé la question au lieu de deviner.
Il s'est aussi trompé, de façon instructive. Le coup d'un garde a perdu sa borne supérieure, si bien qu'un soldat treize tuiles au-dessus du joueur infligeait des dégâts à travers la roche. Afficher fidèlement la deuxième couche de tuiles cachée ouvrait tous les passages secrets dès le départ. Une liste de portes « p1,p2,p3,p4 » a été lue comme une seule clé, et la sortie du tutoriel ne s'est jamais ouverte. Une erreur stéréo/mono coupait chaque son en deux. Le bogue le plus coûteux venait d'une fonctionnalité demandée par Shihab lui-même, l'échange des jumeaux à toute distance, qui corrompait les statues. L'enquête a révélé que le contrôle de proximité d'origine n'était pas une limite de distance mais une protection contre la superposition de deux statues.
Le modèle a ensuite assuré le travail de publication : captures d'écran en cinq tailles dans onze langues, textes de boutique, icônes et remplissage des formulaires Steamworks par automatisation du navigateur, Shihab gardant les connexions et les boutons de validation. Il a récupéré quinze ans d'avis Google Play et isolé un avis une étoile, « cant get through door on level one », qui s'est révélé être un vrai défaut : l'invite invitant à franchir la sortie n'existait que dans deux des dix-huit niveaux. Le correctif est sorti en 2.0.3. Le signalement d'un trampoline trop haut n'a pas mené à la physique mais à la sémantique des entrées : un contournement tvOS de 2010 faisait qu'un bouton de saut maintenu se lisait comme relâché, et c'est ce comportement que ses mains avaient appris sur téléphone.
Le jeu original de 1993 est désormais disponible gratuitement sur itch.io après 33 ans, jouable dans FS-UAE, WinUAE ou sur du vrai matériel. Babylonian Twins: Definitive Edition est en ligne sur iOS et Android, avec une démo Steam gratuite ; la version Steam complète arrive cet automne avec le jeu de 1993 en option de lancement. Le produit livré ne contient aucun code Amiga : les données ont été décodées une fois en PNG, WAV et JSON, et le comportement réécrit en GDScript. Shihab reste sobre : il a demandé, joué et tranché, et l'IA allait plus vite qu'il ne pouvait suivre, y compris là où elle se trompait.




Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.