upvote
How do you validate the functions are correct? I did something similar, letting it (mostly deepseek 4.1) translate from assembly to C but it commonly made mistakes, some really hard to discover and fix.
reply
You should be able to validate it by creating tests against the assembler.
reply
can you share more details? was this very involved or asking codex/claude/open code with a 1 shot like approach?
reply
I'll write a blogpost when I actually have it working, but basically I gave the game .msi installer to claude opus 5.5 and said to read these blogs:

  - https://blog.chrislewis.au/using-coding-agents-to-decompile-nintendo-64-games/
  - https://blog.chrislewis.au/the-long-tail-of-llm-assisted-decompilation/
And to setup a harness that will decompile the game and start doing a matching decompilation of every function. It set up a bunch of tooling and started a service in the background to do this actual decompilation campaign. I put some instructions into the main opus chat now and then to e.g. add automatic git pushing including a nice svg chart of progress and to switch model strategies here and there i.e. to do a first pass with a cheap model and then switch to opus/sol if the small model can't solve it.

I could now one-shot a new game, yeah.

reply
Maybe a Show HN? I would be quite interested in seeing the results of this project
reply
I've done the same with some old games I used to play, SimTower and Oregon Trail II, both fully decompiled and now running natively on modern macOS.

I'm going to try create an interactive twitch stream where viewers can play the game through the stream and other non-player viewers can trigger events in the game via points.

Crazy time we live in.

Edit, you come to really understand the game in the process, and why things happen and how to better play the game. And occasionally come across bugs, dev assets, assets never used, or assets all coded up, but code never triggered.

reply
Amusingly I just saw a "Show HN" for SimTower running online via WASM:

https://news.ycombinator.com/item?id=49676394

reply
Haha yeah, I saw that post when I looked into reverse engineering SimTower, that guy saved me so much time decompiling. Didn't get so lucky with Oregon Trail II, there are some very old github repo's with attempts, but none got very far.
reply
We're definitely in the age of ports! Interested to see how the OT2 port turns out.

Reverse engineering Redhook's Revenge binary (an old DOS game) before the advent of LLMs cost me way more hours than I'd care to admit back in the day - so I can't wait to put an LLM to work on some more obscure games like Sword Quest.

On a side note I should really give Oregon Trail II a shot. I never got into any of the successors like Yukon Trail, Amazon Trail, etc.

reply
decompilation doesn't trigger any safeguard refusals? I would have assumed it would but glad it doesn't. Very cool and would also love to hear more.
reply
Surprisingly, no. I've been using Fable and Astra both to orchestrate decompilation of a relatively modern game (delivered via Steam) and they have no qualms about it.
reply
i love Age of Mythology, but why did you feel the need to decompile it? Its got a great world editor if you were trying to "mod" it.
reply
I want to get the original (Age of Mythology Gold Edition) running natively on macOS and then port it to WASM to run it on the web so I can easily play it with friends
reply
Intriguing, I wonder how far you could go with turning games into websites.

Like could total war become a browser game?

reply
I saw recently that someone had ported Halo CE to the web and had 1024 players in Blood Gulch.
reply
Probably. There have been dozens of examples of taking old games (Crazy Taxi, Super Monkey Ball, Quake, etc) and making WASM browser equivalents using AI to decompile them just on "Show HN" alone.

They often ship the original assets in a somewhat brazen disregard for basic copyright law even when the games are still for sale on places like GOG though.

reply
Last time I gave that a try (without LLM assistance though) it was really hard as games DirectX calls cannot simply be glued to WebGL so performance was bad.
reply