El proyecto comenzó con una pregunta sencilla: ¿podría un modelo de IA tomar el código fuente publicado por Jordan Mechner para Apple II —ensamblador 6502 para un juego de Broderbund de 1989, adquirido posteriormente por Ubisoft— y producir un puerto funcional a C#? Priyan R. suministró el código, no escribió nada él mismo y jugó los resultados.
El primer párrafo explica que el experimento partió del código fuente Apple II publicado por Jordan Mechner —ensamblador 6502 para un juego de Broderbund de 1989 adquirido después por Ubisoft—, siendo Priyan R. quien suministró ese código como única entrada.
Ronda 1 (Claude Opus 4.6, febrero de 2026) produjo un juego de consola C#, luego un editor de niveles y después una versión con gráficos Raylib. Analizó correctamente los archivos de niveles originales —salas, baldosas, puertas, posiciones de guardias—, pero el motor era incorrecto. El príncipe se movía una baldosa a la vez, saltando entre celdas, mientras que el juego real reproduce fotogramas de animación dibujados a mano con movimiento sub-tile por fotograma.
Ronda 2 (OpenAI Codex, marzo de 2026) hizo correcciones superficiales sensatas: filtrado de píxeles más nítido, fondos de sprites transparentes, puertas que se pueden abrir, y tops de pilares que ya no eran muros. El príncipe seguía acabando en posiciones incorrectas y se quedaba atascado. Pulieron sin arreglar los cimientos.
Ronda 3 (Claude Opus 5, septiembre de 2026) cambió las reglas. Dos habilidades de Claude Code controlaban DOSBox —lanzando el juego real, enviando teclas, capturando capturas de pantalla— y el modelo comparaba contra él. Opus 5 diagnosticó el problema de arquitectura, reconstruyó el motor en torno al diseño de secuencia de fotogramas original y extrajo las tablas de animación de PRINCE.EXE buscando patrones de bytes reconocidos del código fuente de Apple II. Confirmó cada tabla contra un segundo valor conocido antes de confiar en ella. Ningún dato protegido por copyright entró en el repositorio; el programa C# lo lee en vivo desde la instalación DOS del usuario.
Ronda 4 (Claude Opus 5.5, septiembre de 2026) requirió un solo prompt: «the character moves runs jumps but gate positions bricks all different, you are new model let see anything u can improve.» Opus 5.5 encontró la rutina de dibujo de salas del juego original, documentada por Dávid Nagy y la comunidad de princed.org en el proyecto de código abierto SDLPoP, y la portó. El archivo DosRoomDrawer.cs es un puerto en C# del src/seg008.c de SDLPoP, como indica el encabezado del archivo.
La documentación de SDLPoP explicó lo que sesiones anteriores solo habían supuesto: el patrón de ladrillos se siembra a partir de sala, fila y columna, de modo que cada muro se ve idéntico en cada visita; la puerta del nivel 1 está abierta en los datos del nivel, con un botón oculto que se pulsa cuando el príncipe cae, lo que explica el sonido de golpe.
Opus 5.5 también descubrió que PRINCE.EXE está comprimido con Microsoft EXEPACK — las tablas anteriores solo habían funcionado porque estaban en una zona que el empaquetador dejaba intacta. Escribió un desempaquetador y leyó las tablas de dibujo de baldosas directamente. Una comparación píxel a píxel contra el juego real en DOSBox redujo las diferencias en la primera pantalla del nivel 1 de 8.429 a 2 (una llama de antorcha atrapada en un momento diferente). La segunda sala y la puerta de salida del nivel 3 también coincidieron.
No era perfecto: el sprite del príncipe se dibujaba correctamente mirando hacia un lado, pero se hundía unos píxeles en las paredes mirando hacia el otro. Opus 5.5 verificó el movimiento en todos los fotogramas de prueba, aisló el problema del sprite y revirtió solo esa parte —una auto-verificación que el autor llama señal de progreso.
El repositorio del proyecto (github.com/priyanr/PrinceOfPersia_C-Sharp_Port_By_AI) conserva cada sesión en SESSION_HISTORY.md y está licenciado bajo GPL-3.0-or-later porque DosRoomDrawer.cs incluye el aviso de GPL de SDLPoP. Requiere que el jugador tenga su propia copia de Prince of Persia para DOS, legalmente obtenida; no se distribuyen datos del juego.
El párrafo 9 describe el repositorio del proyecto en github.com/priyanr/PrinceOfPersia_C-Sharp_Port_By_AI, señalando que conserva cada sesión en SESSION_HISTORY.md y está licenciado bajo GPL-3.0-or-later porque DosRoomDrawer.cs incluye el aviso de GPL de SDLPoP.
Qué queda incierto. Opus 5.5 dijo que no podría haber reconstruido el código de dibujo solo desde el binario DOS en un solo prompt — dependió de la ingeniería inversa publicada por SDLPoP. Los guardias, combate con espada, niveles de palacio y posiciones exactas de aterrizaje siguen incompletos. El experimento demuestra lo que los modelos sucesivos pueden lograr cuando tienen forma de probar contra la realidad, pero es el proyecto de un solo desarrollador, no un benchmark controlado.
El experimento se sustenta en décadas de trabajo comunitario: el código fuente publicado por Jordan Mechner para Apple II, la reconstrucción SDLPoP de Dávid Nagy y la revisión de código de Fabien Sanglard del original.