Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • From the article:

    move.l #$dff000,a0 ;Base for hardware registers

    lea save(pc),a1 ;Get the system

    move.w #$4000,intena(A0) ;from the AMIGA

    Crude, although perfectly fine in practice. The system-friendly way is to call the function exec.library has for the purpose, Disable()[0].

    0. http://amigadev.elowar.com/read/ADCD_2.1/Includes_and_Autodo...

  • Thanks. I wonder if that was documented in the Amiga Hardware Reference Manual :) that was the only book I had back then. I remember it was mostly registers and assembly language.
  • Wow, that's gorgeous for something written in assembly, running in 512k, nice work!
  • Looks like a pretty de-facto Amiga game of the era, to be honest.

    Amiga 500 (and 1000 prior to it) supported smooth scrolling by simply setting the screen-visible pointer in memory.

  • amigas were way ahead of their time. We had an Amiga 500 and then got a 386 and it was such a downgrade, but the Amiga was clearly a dying system.
  • I did Moonbase Commander, in JS and HTML canvas. Currently building an AI opponent that doesn't suck as much as in the original.

    It's amazing that this is possible. I took quite a bit of steering and was definitely not a one prompt endeavor but having a lot of fun with it.

  • I'm actually glad to see it stumbled in a few areas. Always surprised to see how much it gets right though. I had always hoped the rather obscure parts of computer history and games would be this incredibly difficult area for Agents to mine.

    The amount of non standard hackish and obtuse things that had to be done to implement things in the past feel impossibly complicated to touch today. Lots of people made it up as they went along and used the hardware in ways no one expected. Reminds me of Tim Follin doing the audio for Plock on SNES and Miamoto being shocked the audio was real. It would be so interesting to see what we could learn about development of the past from agentic insights into how code was constructed. I love stuff like this an appreciate the in depth post.

  • Do you think AI could actually help us discover techniques from old games that were never documented by their original developers?
  • This is fantastic. It would be interesting to have Claude Code export an engineering guide for doing similar ports, including descriptions of the tooling it built to do it. I've done some reversing from binary but never with results this good.
  • session stored on the drive would also contain all of the tool calls , right? unless op changed the default settings it would've expired though by now, since the run was in July
  • I'm doing something similar for DOS SDL ports. Repo isn't public yet, but idea is to have a repo with a knowledge base, skills and patches agents can use when porting to avoid having to bootstrap everything from scratch.
  • This is a great idea. It could be a generic game porting skill to make the porting experience smoother. After my experience above. I have actually tried giving Claude binary files of games and it was able to reverse engineer to GoDot!
  • Neat project.I've been experimenting with making reusable console porting frameworks since last October. Opus 4.6 was my first success with the NES 6502.

    Since then I've done static/native ecosystems for the Super NES, GBA. Nintendo DS, Playstation (most popular) and even Sega Genesis, such also uses the 68k.

    https://github.com/mstan/segagenesisrecomp

    I even extracted the 68k decoder to its own repo because I wanted to reuse it for the Phillips CDI.

    Sega does Sonic 1 2 and 3&K. Also Rocket Knight adventures. Still early yet though. CD-I does the BIOS. Didn't get a game running end to end yet though.

  • Cool. I wonder how much additional harnesses would improve the porting process. In my case, I gave more freedom to Fable 5. The model was able to figure things out. I am hearing that the latest models works better with less restrictions. Curious to know the progress on the above.
  • Rocket Knight Adventures!!! Immediately I can hear the music in my head, and I haven't thought about this game in a long, looooong time! Thank you for mentioning it, I'm off to get a Mega Drive emulator :)
  • I noticed he mentioned that his game was running at 50hz - that's true if an Amiga is running on PAL, but if it's a US machine it'll be 60hz when running with NTSC.

    Back in the day, most Amiga games were made in Europe, so were tuned for 50Hz refresh, and played 'normally' over here. At 60hz, they would feel wrong, and likewise, US games could feel sluggish and unsatisfying.

    Locking the machine to the monitor refresh rate in this way was a curse but also a blessing. It allowed the machines to drive a standard television in various regions, although the image was somewhat blurry, but also the use of dedicated monitors once you started taking it seriously. This reduced the price point and allowed lots of kids to convince their parents to get one :) The higher resolution modes just didn't work out though, so lots of stuff targeted the 320x256 resolution.

    The surprise benefit was also that the amiga could genlock to a TV signal and used to overlay onto a video feed, leading to many interesting cheap graphics overlay capabilities which were otherwise totally unobtainable by small TV channels or enthusiasts.

    Those were happy days.

  • > I spent the last few weeks analyzing what Claude did, feeding it my 33 years of memory of how I built the game, my notes and the git repos. It wrote the first draft of the article, and I edited line by line over a week.

    Sooooo cool! I did something similar a few months ago: had the old source code (and executable files) of a game I wrote in 1991 (PC DOS) and a few notes in source code and, well, my old memories of how things worked. I didn't know how to compile it anymore but with the help of LLMs I managed to get it compiling again.

    Since then I found about 8 pages of handwritten notes I took back in the days and I did immediately scan them and I added them to the repo.

    Now my PC DOS from 1991/1992 does compile again and, well, I really should blog post about it one of these days (if only I had a blog...).

  • You can pout it on itch.io and write a devlog there.
  • Thanks for sharing. It is truly an amazing feeling when AI helps us excavate the past. I never thought I would be able to do so. I'm so glad I kept all my files over the past 33 years.
  • I just wanted to add how much in awe I am at you creating this game in '93 in assembly. Around the same time I was trying to write a game on the Atari ST, and the dedication to the project -- especially when documentation was so thin on the ground, pre-Internet -- is extraordinary. Do you have any stories from debugging the game? I always found that the most dispiriting part, after the endless hope of handcrafting the code that I was sure would work first time...
  • Thank you for sharing your experience. It can be hard to remember all the details of debugging in assembly, but the main aspect I recall was managing game performance to ensure all rendering and processing stayed within 1/50 of a second. My technique was drawing a white line using the Amiga Copper, starting at the beginning of the top vertical blanking period. As I added more game objects, logic, and rendering, I had to make sure the line does not drop below the beginning of the active display area. If it went below that point, a frame would be dropped, resulting the game to flicker. I had to use many techniques to split the processing of the game objects in batches across multiple frames. Fun time.
  • > one copy of the Amiga Hardware Reference Manual

    aka The Book... my, this brings back dusty memories

    Babylonian Twins has such strong "Gods: Into the Wonderful" vibes, I wonder if that game was an inspiration for you

    https://www.lemonamiga.com/game/gods-into-the-wonderful

    https://www.youtube.com/watch?v=1kAXGjUwHyA

  • "Gods: Into the Wonderful" is perhaps the most amazing and inspiring game of the early 90s that literally blew my mind the first time I played it. Been playing it on and off for more than 15 years afterwards. It is a shame that publisher went down, they also released some other good games, but GODs is the legend among them.

    Besides, if it wasn't for BBSs and pirated software, we'd never be ever able to put hands on it, as my country was going through regime change in 1989 and in 1992 the economy was completely mashed down and the game's price was half my mother's salary at the time. What a time to be alive. Of course it was not dad, but a friend who dug it from some BBS or perhaps the eraly tucows archive.

  • The main inspiration for Babylonian Twins that nobody mentioned or even thought about was https://en.wikipedia.org/wiki/The_Maze_of_Galious it predates them all.
  • A few weeks ago I downloaded a memory dump of a zx81 game, and ask Claude to build it in Go. It nailed it. Converted the binary back to basic and then to go. My idea was that the game would be unknown to llm training and perhaps a nice bench.

    What a crazy thing it is to be first at the advent of personal computing, and then in the inflection point where AI treats that first experience as archeology.

  • Curious if you had to do any follow up prompts. How large was the binary and which model did you use?
  • I tried this as an experiment with the hobbit tape file to Godot. Worked, and I was quite impressed in how it deconstructed the binary. At one point it did cheat by looking up the zx81 Hobbit online to find pieces that were missing.
  • It's a completely new world. Random retro games I ported to modern webgl/webgpu in the last few months:

    - The Adventures of Robin Hood - Opus 4.7/Sonnet https://robin.tooclever.org

    - 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 almost one shot)

    - War of the Lance - Qwnen-3.7-27B-dense (got stuck, finished with) Qwen-3.8-Flash-Next https://this.os.isfine.org/blog/posts/what-reverse-engineeri...

    - Dungeon Keeper - Various

    - Red Baron - Opus 4.8, DeepSeek 4

    - Test Drive 3 (Qwen-3.8-Flash Next, DeepSeek-4-Flash-exp, GLM-5.3-Flash)

    - In progress Ultima 6 ... to 3d (Fable, GLM-5.3) ( https://this.os.isfine.org/#ultima6-atlas )

    Some straight source ports (Kaiser), some full RE jobs (Dragon Strike, Test Drive, WOTL)

    Some a mix of available sources (Syndicate, Populous)

    Some of the findings are documented here: https://this.os.isfine.org/blog/

  • wow really nice!!
  • ai slop port is not a port, re-creating the full game engine to run in natively a modern cpu architecture that is the challenge
    by mt_