CAUSE OF MONEY BUG
Civ 2 keeps track of the sum of the sizes (SOS) of all cities that belong to each civ, including barbarians.
This number is updated at the beginning of each turn to reflect any changes caused by city growth, founding of new cities or the conquest or loss of cities.
As far as I can tell, the main use of SOS is for computing the amount of gold a civ gains when it conquers an enemy city. I believe that the computation looks something like this:
GOLD GAINED = {gold possessed by enemy civ} x {(size of conquered city) / (SOS of enemy civ)} x {fudge factor that includes distance from capital, etc.}
The first turn money bug in scenarios (and games) arises from the fact that all SOS are zero because the program has not had a chance to update them.
Consequently, on the first turn, {(size of conquered city) / (SOS of enemy civ)} is infinite and GOLD GAINED = {gold possessed by enemy civ} .
HOW TO FIX BUG
In CIV II MGE, the following bytes (offsets in decimal) contain the SOS for each civ:
2386 - 7 Barbarians
3814 - 5 Civ 1
5242 - 3 Civ 2
6670 - 1 Civ 3
8098 - 9 Civ 4
9526 - 7 Civ 5
10954 - 5 Civ 6
12382 - 3 Civ 7
One way to fix the problem is to count up the SOS for each civ, convert the number to hex and enter it in the correct slot in the scenario save (remember that a hex number like 1C49 needs to be entered as 49 1C).
Alternately, one can fast forward through the first turn, save it and then copy each number from the save and paste it into the correct slot in the scenario save. This may introduce very minor errors in the amount of gold one gets for conquering a city during the first turn.
If anyone has a scen that is ready to launch but does not want to tackle hex editing, I'll try to help.
Civ 2 keeps track of the sum of the sizes (SOS) of all cities that belong to each civ, including barbarians.
This number is updated at the beginning of each turn to reflect any changes caused by city growth, founding of new cities or the conquest or loss of cities.
As far as I can tell, the main use of SOS is for computing the amount of gold a civ gains when it conquers an enemy city. I believe that the computation looks something like this:
GOLD GAINED = {gold possessed by enemy civ} x {(size of conquered city) / (SOS of enemy civ)} x {fudge factor that includes distance from capital, etc.}
The first turn money bug in scenarios (and games) arises from the fact that all SOS are zero because the program has not had a chance to update them.
Consequently, on the first turn, {(size of conquered city) / (SOS of enemy civ)} is infinite and GOLD GAINED = {gold possessed by enemy civ} .
HOW TO FIX BUG
In CIV II MGE, the following bytes (offsets in decimal) contain the SOS for each civ:
2386 - 7 Barbarians
3814 - 5 Civ 1
5242 - 3 Civ 2
6670 - 1 Civ 3
8098 - 9 Civ 4
9526 - 7 Civ 5
10954 - 5 Civ 6
12382 - 3 Civ 7
One way to fix the problem is to count up the SOS for each civ, convert the number to hex and enter it in the correct slot in the scenario save (remember that a hex number like 1C49 needs to be entered as 49 1C).
Alternately, one can fast forward through the first turn, save it and then copy each number from the save and paste it into the correct slot in the scenario save. This may introduce very minor errors in the amount of gold one gets for conquering a city during the first turn.
If anyone has a scen that is ready to launch but does not want to tackle hex editing, I'll try to help.
Comment