Show HN: Civ 1 period accurate decompilation

Reverse-engineered source code for the MS-DOS version of the 1991 game "Sid Meier's Civilization". - sjmelia/civd
7 points by crc32 1 days ago github.com 5 comments
Summary not yet generated for this article.

Original Text

I've used LLMs to decompile Civ 1 and put the reconstructed C source on GitHub, along with a technical book and story.

The reconstructed source builds with what i'm pretty sure is the original Microsoft C compiler and toolchain. It produces a byte-for-byte match with the original executable, aside from a four-byte correction for what appears to be a patch applied after linking. So it should be pretty close to how the original game was made; although it can't be said that this is the "original source code".

I've also used that source to create a modern build of the game, in the `reciv` repository.

Like most people, I'm in two minds about the benefits and downsides of LLMs. This work also builds on OpenCiv1, which probably deserves most of the credit - not only did I direct the LLM to use that work; but it was almost certainly in the training data.

Qualms aside - I couldn't resist having a look inside one of my all-time favourite games. There's a few attempts at Civ 1 including recent LLM ones. But i'm not aware of any that publicise the resulting source code.

Comments (5 of ) ⌛

Loading more comments... ⌛
Scroll down to load more comments
No comments available.
Type to search HN and engineering blog articles
Press Escape to close  |  ↑↓ to navigate  |  Enter to open