Actually, those 4 data blocks are included at the end of the
Spaceships description...
Ah, ok, thank you
But if you prefer, I can make them separate.
No need, this will do
37234 9172 1 unknown
37235 9173 1 game.space_civs
These is the SpaceShip status flags. Although the 2 bytes have different meanings, the game will usually use them as one 2-byte variable.
One bit per civ, Barbarians are included (and irrelevant) as usually.
Low byte: space ship launched
High byte: space ship construction started
This area contains 2 variables.
1st variable (2 bytes): space ship success chance for the human player
2nd variable (2 bytes): another space ship success chance, but this one seems to be used (shared?) by the AI civs (not 100% sure)
[37304:37559] [0x91B8:0x92B7] 256 0x100 unknown (#27)
horizontal coordinates of cities, sorted by their city name ID
[37560:37815] [0x92B8:0x93B7] 256 0x100 unknown (#28)
vertical coordinates of cities, sorted by their city name ID
[37816:37817] [0x93B8:0x93B9] 2 0x2 unknown (#29)
Palace Level
(total number of palace improvements acquired by the human player)
This gives the game a quick way to determine if the palace is already maxed out.
[37818:37819] [0x93BA:0x93BB] 2 0x2 unknown (#30)
Peace Turn Count
(note that this is not used at all in the BC years)
[37820:37821] [0x93BC:0x93BD] 2 0x2 unknown (#31)
Level Of Competition
This is stored a bit awkwardly, it's actually the number of civs minus 1:
2 = (3 civilizations)
...
6 = (7 civilizations)
[37822:37837] [0x93BE:0x93CD] 16 0x10 unknown (#32)
Space Ship Population Counts (as multiples of 10,000)
2 bytes per value
8 valus (one for each civ)
[37838:37853] [0x93CE:0x93DD] 16 0x10 unknown (#33)
Space Ship Launch Year (actual year number, not turn count)
2 bytes per value
8 valus (one for each civ)
[37854:37855] [0x93DE:0x93DF] 2 0x2 unknown (#34)
Civ Identity Flags
0x02: Russians
0x04: Zulus
etc.
(basically it's the same as the "Civ identity / Leader graphics" variables, but as flags)
So question, is the 1750 AD set in stone, or is there a way to change it?
It can be changed with a hex editor. Takes less than a minute
For example, if it were changed to say, I don't know, 1 AD, would it continue at the interval of 1 or 2 or 5 years all the way until the year the game normally ends?
This is how the game determines the year increment:
1. If (Year < 1000), increase (Year) by 20. Else, go to step 2.
2. If (Year < 1500), increase (Year) by 10. Else, go to step 3.
3. If (Year < 1750), increase (Year) by 5. Else, go to step 4.
4. If (Year < 1850) and none of the SpaceShip status flags are set, increase (Year) by 2. Else, go to step 5.
5. Increase (Year) by 1.
So if you change "1750" to "1", then that would still not be effective until 1500 AD. You would have to change all 3 of the critical year numbers (1000, 1500 and 1750).
If you are interested in this, you can try to find this code sequence in civ.exe:
E8 03 7D 07 83 06 40 C1 14 EB 38 81 3E 40 C1
DC 05 7D 07 83 06 40 C1 0A EB 29 81 3E 40 C1
D6 06
The bold numbers are the critical year numbers ("E803" = 1000, "DC05" = 1500, "D606" = 1750). Changing the above code to
00 00 7D 07 83 06 40 C1 14 EB 38 81 3E 40 C1 00 00 7D 07 83 06 40 C1 0A EB 29 81 3E 40 C1 00 00
will enable the SpaceShip check from 0 AD (effectively from 1 AD, since 0 AD does not exist in Civilization), but as a side effect, years will only be incremented by 2 years per turn, even if no space ship has been launched yet.
To avoid the side effect, you could make 2 versions of civ.exe. Start the game with the original version. Immediately after launching your space ship, save your game, switch to the modified version and load your game again
t would be interesting to see if the spaceship can be launched and arrived in the BC years
IIRC, the game does not check for space ship arrivals until 1 AD.
Unless you are going to change that as well ^^