Live data from Hacker News

Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

babyloniantwins.com

91–100 of 148 posts

Re: Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

#91
post #21

Earlier quoted context omitted.

> I have actually tried giving Claude binary files of games and it was able to reverse engineer to GoDot! Oh wow...I hadn't even thought of trying something like this. There are soooo many games from that era that I'd love to play again without the hackery of emulation.

Just grab any game, especially old rom files form the 80s (I tried TimePilot and Road Fighter from MSX era). The model extracted the graphics, the sounds and then built the whole game. It takes less than 1 hour to port a 16kb rom file, in one shot. You will get a playable game, but you need a few follow up prompts to get it back to its original form. Usually some sprites or sounds issues, but very easy to fix, if you…

So by old ROM files, you mean still PC games or MSX, Sega, NES, SNES? And when you have them in place what do you specifically ask Claude? This is interesting and I'd love to see if it can get me porting old games with zero coding knowledge.

Re: Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

#92
post #3

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.

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.

Porting to DOS sounds like a great plan for retro games, to only have to do the port once and know there are stable emulators to run it in, as opposed to porting to some modern OS and then have to port the game again and again to keep up with API changes.

Re: Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

#93

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…

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 :)

Re: Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

#94
post #21

Earlier quoted context omitted.

Just grab any game, especially old rom files form the 80s (I tried TimePilot and Road Fighter from MSX era). The model extracted the graphics, the sounds and then built the whole game. It takes less than 1 hour to port a 16kb rom file, in one shot. You will get a playable game, but you need a few follow up prompts to get it back to its original form. Usually some sprites or sounds issues, but very easy to fix, if you…

So by old ROM files, you mean still PC games or MSX, Sega, NES, SNES? And when you have them in place what do you specifically ask Claude? This is interesting and I'd love to see if it can get me porting old games with zero coding knowledge.

Yes, you can try your game out. I tried with old msx rom files and it worked.

Re: Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

#95
post #37

Hmm did you ever run the game port against the original one in UAE? With the same inputs? Or is it just "it plays right when I play it"? That 108 byte delta is puzzling...

You mean run them side by side ? No, I did not do that. I played the ported game on my Mac only. The movement feels right based on my thousands of hours playing the original. There was only small tweak I had to make the trampoline jump, but everything else ported so smooth. I think the decision that Claude made not to use Godot physics and just port everything as as, made the gameplay feels right without much tweaks.

Nice, so it works quite good! So it’s a port, not a re-implementation. Good job on that, I like it that way:) do you have an idea why the trampoline jump didn’t come across?

Re: Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

#96
post #13

Earlier quoted context omitted.

> I have actually tried giving Claude binary files of games and it was able to reverse engineer to GoDot! Oh wow...I hadn't even thought of trying something like this. There are soooo many games from that era that I'd love to play again without the hackery of emulation.

Yeah, someone reverse engineered Red Alert 2 recently. Took Fable cranking for almost a month, but it's pretty amazing to see.

https://github.com/harshilmathur/openra2

this is the closest thing I could find. do you have a link to the reverse engineered RA2? I am surprised I do not get any recent repositories or forum posts about this, you'd think it would be more talked about

Re: Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

#97
post #39

Hmm did you ever run the game port against the original one in UAE? With the same inputs? Or is it just "it plays right when I play it"? That 108 byte delta is puzzling...

There are a few instructions that are functionally equivalent. It is possible that one of the assemblers has the ability to auto convert equivalent behaviour instructions into smaller instructions that do the exactly the same thing. That is fairly common in assemblers. If one of the assemblers had a normalisation phase where they treat multiple forms of the same instruction as the same thing prior to checking if a mo…

Ok but if assembler normalises encoding then a byte diff won’t prove anything. Behaviour check is the way.

Re: Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

#98
post #87

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…

I would like to see all of them :-)

One of the most difficult reverse-engineering projects from that era for me was Stunt Car Racer on the C64 (also ported to DOS). It features a highly optimized 8-bit 3D graphics and physics engine. Fable was the first one that was able to generate a complete port of the game.

Now I am trying of Flight Simulator 4 and Wing Commander 1. Then maybe Frontier Elite 2. So much fun ....

Re: Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

#99
Anyone that uses "Claude Fable 5 running in Claude Code"? Can you speculate that plan or cost might have been involved in doing this (given that it seems approximately 5 hours or so of continuous operation for both C++ and Assembly ports, along with the shipping / marketing functions where it's not clear how much compute was used". Thanks in advance (I'm thinking of trying US based models, however I'm penny pinching using DeepSeek Flash etc. ATM).

Re: Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

#100
post #87

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…

Syndicate!! Actually, this one feels especially appropriate to use an LLM for.
Post reply on HN