AI & computing › Agentic AI & autonome agents
AI leest dertig jaar oude Amiga-assembly en herbouwt spel uit Bagdad
In 1993 bouwde de Iraakse student Rabah Shihab in Bagdad het spel Babylonian Twins, regel voor regel in machinetaal, op een Amiga met 512 kilobyte geheugen. Ruim dertig jaar later liet hij een AI-agent diezelfde ongedocumenteerde code lezen en zelfstandig herbouwen in de moderne game-engine Godot.
Babylonian Twins ontstond onder bijzondere omstandigheden. Shihab was begin twintig en werkte, tijdens de internationale sancties tegen Irak, met onregelmatige stroom en zonder internet aan zijn spel. Hij had alleen de Amiga Hardware Reference Manual om de machine rechtstreeks aan te sturen. Kunstenaar Murtadha Salman tekende de graphics en componist Mahir AlSalman maakte de muziek. Het resultaat was het eerste commerciële computerspel dat ooit in Irak werd gemaakt. Door de val van fabrikant Commodore en de sancties die uitgevers afschrikten, bleef het spel jarenlang op de plank liggen, tot een Amiga-forum het in 2008 via YouTube-beelden van Shihabs broer terugvond. In 2010 volgde een eerste, handmatige poort naar de iPhone: 34.000 regels nieuwe C++-code, die uiteindelijk meer dan twee miljoen keer werd gedownload.
Dertig jaar oude code zonder handleiding
Voor de nieuwste poging koos Shihab een andere aanpak. Hij zette een AI-assistent aan het werk met toegang tot een terminal en zijn bestandssysteem, zodat die zelf code kon aanpassen, bouwen en testen — een vorm van agentic AI die verder gaat dan alleen tekst genereren. De eerste opdracht was de 2010-poort van 34.000 regels C++ overzetten naar Godot 4, wat grotendeels in één avond lukte. Daarna volgde de echte uitdaging: de originele 72.758 regels 68000-assembly uit 1993, verspreid over 26 bestanden, zonder noemenswaardig commentaar en met kapotte bestandsverwijzingen door een eerdere overzetting naar moderne opslag. Voordat er iets werd geport, moest de AI eerst aantonen dat ze de code begreep: met de assembler vasm werden de oude bronbestanden opnieuw vertaald totdat de uitkomst byte voor byte overeenkwam met het spel dat in 1993 op floppy's stond. Dat proces valt onder reverse engineering: techniek ontleden om te snappen hoe ze werkt, zonder documentatie als houvast.
Zelfstandig testen via de terminal
Om het resultaat te kunnen beoordelen zonder steeds een mens nodig te hebben, bouwde de AI eigen testgereedschap in het spel: commandoregel-opties om een level direct te laden, personages op een exacte positie te zetten, knoppen op een script te laten indrukken en een schermafbeelding te maken. Zo kon het systeem als AI-programmeertool in korte tijd duizenden combinaties automatisch controleren, terwijl Shihab zelf pas achteraf de resultaten beoordeelde. Alle scripts werden gecompileerd en elk level werd gebouwd in een geautomatiseerde check, voordat er iets aan de maker werd getoond.
Oude cijfers, nieuw jasje
Toch bleef er precisiewerk over voor de mens. De originele code past de wrijving van de speelfiguren multiplicatief toe, zestig keer per seconde in de iPhone-versie uit 2010, maar vijftig keer per seconde in de Amiga-assembly uit 1993. Verander je die snelheid zonder de rekensom aan te passen, dan verandert het hele bewegingsgevoel van het spel, zonder dat er iets crasht. De AI hield daarom bewust twee losse sets bewegingsformules aan, elk gekoppeld aan hun eigen snelheid. Ook liet ze de eigenzinnige, met de hand geschreven botsingsdetectie van Shihab intact, inclusief kleine correcties die hij vijftien jaar eerder om puur gevoelsmatige redenen had toegevoegd. Shihab testte de tussenresultaten wekenlang samen met zijn dertienjarige zoon, die voor het eerst meemaakte hoe zijn vader aan het spel werkte dat hij al zijn hele leven kende.
Achtergrond & begrippen
Wat betekent dit voor de toekomst? Dit project laat zien dat AI-agents inmiddels complexe, ongedocumenteerde broncode uit een uitgestorven computerarchitectuur kunnen doorgronden en overzetten naar moderne systemen, iets waar mensen eerder weken tot maanden handwerk voor nodig hadden. Voor softwarebehoud, game-geschiedenis en het redden van verouderde industriële of wetenschappelijke code kan dat grote gevolgen hebben, al blijft menselijke beoordeling van het 'gevoel' en de details onmisbaar.
- Assembly (assembleertaal)
- Een programmeertaal die zeer dicht op de hardware zit; elke instructie komt bijna één op één overeen met een bewerking van de processor, in dit geval de Motorola 68000-chip van de Amiga.
- Agentic AI
- AI die niet alleen tekst of code genereert, maar zelfstandig taken uitvoert, zoals bestanden aanpassen, programma's bouwen en testen, zonder dat een mens elke stap hoeft te sturen.
- Reverse engineering
- Het proces waarbij bestaande technologie of code wordt ontleed om te achterhalen hoe ze precies werkt, vaak omdat documentatie ontbreekt.
- Commandoregel
- Een tekstgebaseerde manier om een computerprogramma te besturen, waarbij je opdrachten intypt in plaats van met de muis te klikken.
- Tick rate (beeldfrequentie)
- Het aantal keer per seconde dat een programma zijn interne rekenstap uitvoert; bij games bepaalt dit onder meer hoe snelheid en wrijving worden berekend.
Bronnen
Dit artikel is met behulp van AI geschreven op basis van bovenstaande bronnen en is geen letterlijke vertaling. Zo werkt onze redactie.