Portando mi juego de Amiga de 1993 a Godot con un LLM leyendo el ensamblador 68000
Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

En 1993, en Bagdad, un estudiante de ingeniería creó Babylonian Twins en un Amiga 500, programando en ensamblador 68000 puro. Décadas después, el autor usó un modelo de lenguaje grande (LLM) para portar el juego original a Godot, logrando que el LLM leyera y tradujera las 72,758 líneas de ensamblador, reprodujera los binarios originales byte a byte y reconstruyera el juego en un solo paso. El port moderno se ejecuta a 60 Hz, mientras que el original corre a 50 Hz, preservando la física original. El proyecto también incluyó la portación de un motor C++ de 34,000 líneas a Godot en una noche, y la integración del juego original como una segunda experiencia jugable.
El formato de nivel que un año antes había requerido varias rondas y mis correcciones, salió en una sola pasada, sin pistas de mi parte.
- gmerc
Es un mundo completamente nuevo. Juegos retro aleatorios que porté a webgl/webgpu moderno en los últimos meses:
- The Adventures of Robin Hood - Opus 4.7/Sonnet
- Syndicate - Sol/Luna 5.6/Opus ( https://this.os.isfine.org/blog/posts/modern-game-port-syndi... )
- Kaiser 2
- Populous Plus - Sol/Luna 5.6/Opus
- Dragon Strike - (Fable 5.1 casi de una sola pasada)
- War of the Lance - Qwnen-3.7-27B-dense (se atascó, terminé con) Qwen-3.8-Flash-Next
https://this.os.isfine.org/blog/posts/what-reverse-engineeri...
- Dungeon Keeper - Varios
- Red Baron - Opus 4.8, DeepSeek 4
- Test Drive 3 (Qwen-3.8-Flash Next, DeepSeek-4-Flash-exp, GLM-5.3-Flash)
- En progreso Ultima 6 ... a 3d (Fable, GLM-5.3) ( https://this.os.isfine.org/#ultima6-atlas )
Algunos son ports directos de código fuente (Kaiser), algunos son trabajos completos de ingeniería inversa (Dragon Strike, Test Drive, WOTL)
Algunos son una mezcla de fuentes disponibles (Syndicate, Populous)
Algunos de los hallazgos están documentados aquí: https://this.os.isfine.org/blog/
- mattjoyce
Hace unas semanas descargué un volcado de memoria de un juego de ZX81 y le pedí a Claude que lo construyera en Go.
Lo logró perfectamente. Convirtió el binario de vuelta a BASIC y luego a Go. Mi idea era que el juego fuera desconocido para el entrenamiento del LLM y quizás un buen punto de referencia.
Qué locura es ser el primero en el advenimiento de la computación personal, y luego en el punto de inflexión donde la IA trata esa primera experiencia como arqueología.
- cesaref
Noté que mencionó que su juego corría a 50Hz - eso es cierto si un Amiga corre en PAL, pero si es una máquina estadounidense será 60Hz cuando corra en NTSC.
En aquel entonces, la mayoría de los juegos de Amiga se hacían en Europa, así que estaban ajustados para una frecuencia de actualización de 50Hz, y jugaban 'normalmente' aquí. A 60Hz, se sentían mal, y de igual manera, los juegos estadounidenses podían sentirse lentos e insatisfactorios.
Bloquear la máquina a la frecuencia de actualización del monitor de esta manera fue una maldición pero también una bendición. Permitía que las máquinas manejaran un televisor estándar en varias regiones, aunque la imagen era algo borrosa, pero también el uso de monitores dedicados una vez que te lo tomabas en serio. Esto redujo el precio y permitió que muchos niños convencieran a sus padres para comprar uno :) Los modos de mayor resolución simplemente no funcionaron, así que muchas cosas apuntaban a la resolución de 320x256.
El beneficio sorpresa fue también que el Amiga podía hacer genlock con una señal de TV y se usaba para superponer sobre una transmisión de video, lo que llevó a muchas capacidades interesantes de superposición gráfica barata que de otro modo eran totalmente inalcanzables para pequeños canales de TV o entusiastas.
Aquellos eran días felices.
- btbuildem
> una copia del Amiga Hardware Reference Manual
también conocido como El Libro... vaya, esto me trae recuerdos polvorientos
Babylonian Twins tiene unas vibraciones muy fuertes de "Gods: Into the Wonderful", me pregunto si ese juego fue una inspiración para ti
- dannyobrien
Solo quería añadir cuánto admiro que crearas este juego en el '93 en ensamblador. Por la misma época yo intentaba escribir un juego en el Atari ST, y la dedicación al proyecto -- especialmente cuando la documentación era tan escasa, pre-Internet -- es extraordinaria. ¿Tienes alguna historia de depuración del juego? Siempre encontré que era la parte más desalentadora, después de la esperanza interminable de crear el código a mano que estaba seguro que funcionaría a la primera...
- appstorelottery
¿Alguien que use "Claude Fable 5 ejecutándose en Claude Code"? ¿Podéis especular qué plan o costo podría haber estado involucrado en hacer esto (dado que parece aproximadamente 5 horas o más de operación continua tanto para los ports de C++ y ensamblador, junto con las funciones de envío / marketing donde no está claro cuánto cómputo se usó)? Gracias de antemano (estoy pensando en probar modelos basados en EE. UU., sin embargo, estoy escatimando usando DeepSeek Flash etc. por ahora).
- Gamemaster1379
Proyecto interesante. He estado experimentando con la creación de marcos de portabilidad de consolas reutilizables desde octubre pasado. Opus 4.6 fue mi primer éxito con el NES 6502.
Desde entonces he hecho ecosistemas estáticos/nativos para Super NES, GBA, Nintendo DS, Playstation (el más popular) e incluso Sega Genesis, que también usa el 68k.
https://github.com/mstan/segagenesisrecomp
Incluso extraje el decodificador 68k a su propio repositorio porque quería reutilizarlo para el Phillips CDI.
Sega hace Sonic 1, 2 y 3&K. También Rocket Knight Adventures. Aún es temprano.
CD-I hace la BIOS. Aún no he logrado que un juego corra de principio a fin.
- robviren
Me alegra ver que falló en algunas áreas. Siempre me sorprende lo mucho que acierta. Siempre había esperado que las partes bastante oscuras de la historia de la computación y los juegos fueran un área increíblemente difícil para que los agentes las minaran.
La cantidad de cosas no estándar, hacky y obtusas que tuvieron que hacerse para implementar cosas en el pasado se sienten imposiblemente complicadas de tocar hoy. Mucha gente lo improvisaba sobre la marcha y usaba el hardware de maneras que nadie esperaba. Me recuerda a Tim Follin haciendo el audio para Plock en SNES y a Miyamoto sorprendido de que el audio fuera real. Sería tan interesante ver qué podríamos aprender sobre el desarrollo del pasado a partir de las percepciones de los agentes sobre cómo se construyó el código. Me encanta este tipo de cosas y aprecio la publicación detallada.