Reverse engineer civilization 1 and compile it, to fix corruption bug ? (ghidra)

1 view
Skip to first unread message

skybuck2000

unread,
Oct 28, 2021, 1:15:35 AM10/28/21
to
Reverse engineering software from NSA:
https://ghidra-sre.org/

Maybe you assembler buffs can somehow find the "tank array overflow" issue that I suspect this game has ! =D

I don't know how to use this tool properly and how to actually compile the C code that it generates...

Is it possible to re-compile the reverse engineered c code ?

Anyway here is the story relating to civilization 1 corruption bug, save games also available:

In 199x something, when I was about 15 years old or so, I enjoyed playing civilization. I remember playing as french on earth map which was cousy and most amuzing to try and replay earth's history.

If there were americans they would build great library and dominate europe.

After seeing world war 2 documentary on history channel I decided to go back to civilization 1 and play as Adolf Hitler to see if it was possible to win against 2 or 3 super powers. Russias, America and Zulus usually also become strong.

Unfortunately just like back in 1995 on a real computer, it seems civilization 1 has a corruption bug. The screen becomes corrupted. I can remember the same happening back then in 1995. This time in 2021 the same happens in dosbox-x. This time I have the prove though and the means to communicate over the internet, to try and seek help to first confirm this issue and hopefully to get it fixed.

I also enjoy the video game World of Warships and I always wanted to play with modern ships in Civilization 1 and basically play world of warships in civilization but it becomes hard because of this bug.

I am hoping some people and developers will take a look at these save games and tell me what you think.

I also tried updating civilization 1 to latest patches as available on abadonware, I think patched to 1.05 or v5 or something.

Anyway I believe the bug/corruption might be related to the huge ammounts of tanks the zulus produce in this save game. I believe an array in civilization might be overflowing causing corruption bugs.

The save game in which it is must noticeable is called:

Emporer Hitler, Germans/1893 AD

I am not sure in which file this is exactly stored, so I stored all save games and then you can load the game and see this title above.

The save games can be downloaded from here:

Direct Link to save games:
http://www.skybuck.org/Games/Civilization1/CorruptionBug/SaveGames/Zipped/civ1savegames.zip

Link to folder:
http://www.skybuck.org/Games/Civilization1/CorruptionBug/SaveGames/Zipped/

In case the zip file is giving you trouble you can download each save game seperately:
http://www.skybuck.org/Games/Civilization1/CorruptionBug/SaveGames/Unzipped/

I am not a regular on this forum, but I have a question:

Is it known that civilization contains a corruption bug like this ? At least when playing on earth ?

Have you encountered it yourself ?

I am not sure if this corruption bug occurs when soundblaster is selected, I selected roland/mt32 and play with mt-32 emulation which sounds quite nice !

I would love to have a fix available to prevent civilization 1 from corrupting itself ? Is such a fix already available ?

I still have a 80486 intel PC and I could try re-playing civilization to once again confirm this bug, either from a scratch play/new play or indeed this same save game !

I do not believe it is emulater related, my laptop does have 3d chip corruption, but again different issue ha-ha, kinda funny someday skynet will emerge from all these corruptions ! =D

If you don't believe it, try loading this save game yourself in your own civilization 1 environment !

No I did not modify it myself to take over your system ! LOL.

I would also love to have the source code of civilization 1. Was it written in assembler ? Maybe C ?

There is ghyndra reverse engineering software available, have tried it briefly, but the code is hard to understand, I don't know how to compile such code yet... maybe in future.

Bye for now,
Skybuck.

P.S.: Adolf Hitler player name was chosen in case it's used as a seed for the random number generator ! =D
Reply all
Reply to author
Forward
0 new messages