// HACKER NEWS — CYBERSECURITY
Analyzing Frontier Model Progress with My Favourite Game: Prince of Persia
I first played Prince of Persia in 1995 on an IBM PC XT. I still go back to it from time to time: the rotoscoped animation, the way the prince hangs from a ledge, the clank of a gate slamming shut. Thirty years later it still feels like nothing else.
In 2012 Jordan Mechner published the original Apple II 6502 assembly source, recovered from 3.5" floppy disks that had sat in a box for over 20 years (the restoration itself is quite a story): github.com/jmechner/Prince-of-Persia-Apple-II
C# is my favourite language, so I set myself an experiment. I would hand that source to an AI model and ask it to port the game to C#. I wouldn't read the code or edit it myself. My only job was to play the result and say what was wrong. Every new frontier model that came out got the same project, with nothing but prompts.
Source is in https://github.com/priyanr/PrinceOfPersia_C-Sharp_Port_By_AI
My first prompt was simple: "in this original code there 6502 assembly code for prince of persia, use the save level files and try to do it in c# console."
Over two days Opus 4.6 produced a C# console game, then a level editor, then a Raylib graphics version. It parsed the original level files correctly: rooms, tiles, gates, guard positions. It even rendered something that looked like the Apple II game.
But it didn't play like Prince of Persia. My prompts from those days tell the story:
The core problem, as I learned later, was the architecture. The prince moved one tile at a time, hopping from cell to cell. The real game plays hand-drawn animation frames with a small movement per frame.
I tried Codex too, though I've forgotten which model it was. I gave it the same codebase: "this is prince of persia original assembly code to c# port done by claude still graphics not good can you fix it."
It made sensible small fixes: sharp pixel filtering so the art wasn't blurred, transparent sprite backgrounds, open gates you could walk through, and pillar tops that no longer acted as walls. The prince still ended up in wrong positions and still got stuck. It polished the surface, but the engine underneath was still wrong.