rahorvat
Warlord
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:
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?
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:
- 474.01 - The initial release
- 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
- 474.03 - To be documented
- 474.04 - To be documented
- 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: