DOS Civilization 1 versions overview

rahorvat

Warlord
Joined
Mar 12, 2023
Messages
242
Location
Croatia, EU
This thread will discuss different DOS Civilization versions and their differences in code (CIV.EXE, including the data segment).

The greatest difference is between version 1 and version 3 when a few new game play concepts were introduced.
Between version 3 and 5 the main focus was on a Advisor freeze fix and stability improvements.
The main stability concern which was never addressed are a few memory leaks and an array underflow/overflow issues which primarily caused a stack corruption.

Version:
  1. 474.01 - The initial release
  2. 474.02 - This version is little controversial because no original update package exists (unlike for other versions). Some even say that the version was never publicly released. The unofficial version that I found has a new overlay with a single function that contains no code. There is a call to that function in Seg4. Otherwise, no other differences can be observed
  3. 474.03 - To be documented
  4. 474.04 - To be documented
  5. 474.05:
  • In Seg5, Fn1, many changes were added, to be documented...
  • In Seg7, Fn6, few overflow checks vere added
  • In Ovr22, Fn1, Var_ba3c change from ASCII '4' to '5'
  • In Ovr28, Fn6, added a call to Seg0.Fn40
  • In Ovr28, Fn8, replaced function Seg13.Fn8 with Ovr28.Fn10, added a overflow check, at the end of function Fn8 removed a call to a Ovr28.Fn12

Later on I will attempt to describe what each function does.

I hope that this functional code analysis will be of help to the people that are wondering the same question: What are concrete differences between the versions?
 
Last edited:
For convenience, an earlier thread on versions, with links to even earlier posts. Some of the info may prove outdated and wrong, some may be useful.

 
For convenience, an earlier thread on versions, with links to even earlier posts. Some of the info may prove outdated and wrong, some may be useful.
Thanks. This is a complete different post. It will be based on actual C code differences between versions, and not the actual playing differences.
I'm currently working on code comparison and will soon publish the link and actual C code with differences between versions.
 
difference between 01 and 04 is in "civil disorder why?" thread:
the difficulty level has increased for the player who builds too many cities.


also "renaming cities":
 
Last edited:
I think he's more interested in the actual code changes rather than the feature list. Those red shirts do indeed change the game quite a lot though
 
difference between 01 and 04 is in "civil disorder why?" thread:
...
the difficulty level has increased for the player who builds too many cities.


also "renaming cities":
...

I think he's more interested in the actual code changes rather than the feature list. Those red shirts do indeed change the game quite a lot though

Yes, I have primary focus for this thread on changes in the code, rather than relative changes in behavior.
When finalized these behavior changes will be reflected in the differences in the code.

I think that code changes are more definitive and descriptive than simply stating: In v.04 I now have more red shirts...

Cheers :)
 
Back
Top Bottom