[Col] Colonization DOS Utility to keep track of Indian settlements

Bladrov

Warlord
Joined
Apr 2, 2020
Messages
157
Location
Sacramento, CA
It would be very handy in the game if there were a way to keep track of the Indian settlements. The absolute ideal (apart from actual editing of the game) would be something like the Gold Box Companion (https://gbc.zorbus.net/). Imagine: a utility that could draw the map, showing all the cities and settlements, and display data on Indian settlements you click on or hover over. That is, of course, a bit ambitious.

At the least, it seems like it should be possible to mine the data in your save game and generate a text file showing information about the Indian settlements you've visited, something like:
(39, 22) Iroquois village - No skills
_ Wants: Tools, Muskets, Cigars
_ Sells: Cotton, Furs, Coats
(32, 23) Iroquois capital - Master Tobacco Planter (unlimited)
_ Wants: Muskets, Cigars, Rum
_ Sells: Cotton, Furs, Tobacco
(55, 38) Apache camp - Master Fur Trapper
_ Wants: Rum, Cigars, Tools
_ Sells: Furs, Coats, Sugar


If unvisited settlements are available in the save file maybe they could be included too:
(73, 101) Inca city - Uncontacted

Maybe the utility could automatically parse the most recently modified save game, possibly with an option or something to view a different file.
 
Last edited:
AyCe has found an impressive utility somewhat like the Gold Box Companion, for Master of Magic: https://sourceforge.net/projects/momrtgt/. Again, probably ambitious, but heartening to see such fan work for other old games.

He's also found some promising analysis of the old Colonization save games: http://www.colonization.biz/hack.htm (I've attached a plaintext copy of the page here). I should have thought to crawl through that old Colonization site myself! Incidentally, the owner has forgotten the password so he can no longer maintain the site - but I have it archived, so if it goes off the air, so to speak, I still have it available if anyone needs it, or parts of it.
 

Attachments

  • Hacking the .SAV Files.txt
    12.9 KB · Views: 107
Last edited:
Ok, I've opened the game I'm currently playing, and found an Indian village next to my colonies which I've visited, at (37, 42). I searched for the x coord for the village in the autosave's hex file, but am not finding it. Maybe tribal info is stored more obscurely than the colony data.
 

Attachments

  • COLONY00.SAV
    26.7 KB · Views: 63
As a starting point, I looked for "New Amsterdam" and then the hex-encoding of its coordinates (34 and 43 -> 22 and 2b). I saw they were apparently saved 1 byte per number left of the colony name. Now i searched for the hex-encoding of the village's coordinates (37,42 -> 252a). There are 3 places in the file where this occurs. But I cannot tell you which of these is the village. Maybe test it with some other village coordinates.

Btw, the coordinates start at 0, but you can never see terrain at X=0 (or max) and Y=0 (or max), since left & right there is high seas (that you can't visit) and top/bottom there's ice (that you can't visit, but you sometimes see it connecting/leaking into the water). You can't even edit this area. If you load the america map in the editor, you can see that there is tundra in these tiles (so they did edit it at some point), which gets overwritten with ice when started ingame.
 
Oh! Yes, more settlements. The one at (37, 42) is an Iroquois village of Expert Fur Trappers which has taught someone. There are also Sioux camps at (27, 43) [Fur Trappers], (32, 46) [Seasoned Scouts], (22, 48) [Fur Trappers], and the Sioux capital at (29, 46) [Seasoned Scouts]. Those are all on my island. Others include an Iroquois village at (37, 36) and an Iroquois village with an English mission at (43, 38).

Looking these over, (32, 46) has two references so I'll ignore it for now. Here are the others, with the coords, hex translation, then the 8 hex characters following them. Not sure what it tells us.

(37, 42) 25, 2A - 08 00 0E 00 00 00 00 FF - Iroquois Fur Trappers
(27, 43) 1B, 2B - 0A 08 03 FF 00 FF FF FF - Sioux Fur Trappers
(22, 48) 16, 30 - 0A 08 03 FF 00 FF FF FF - Sioux Fur Trappers
(29, 46) 1D, 2E - 0A 0C 04 FF 00 FF FF FF - Sioux Capital, Scouts
(37, 36) 25, 24 - 07 08 05 FF 00 FF FF FF - Iroquois
(43, 38) 2B, 26 - 07 00 05 00 00 FF 08 FF - Iroquois with mission
 
Last edited:
If you want it to simplify your excel/paper work, such way will be a little cheaty. Because 1) indians change their trades and wanted goods from time to time, so your excel/paper info can be not correct, but info in such hypothetical save file/RAM utility will be always correct. 2) flag that some eupopean was in village before can be not from you, but from AI. Probably game does not store who it was, but only a bit flag.

But anyway we need a full save editor for ColDos similar to JCivED for civdos. Maybe one day. Maybe it's even a good idea to fork JCivED for this purpose. Anyway first we need to create a full documentation of col save file structure. Again: maybe one day. It's a simpler task.
 
Last edited:
You can look for bytes that designate the village's owner. For Iroquois this may be 07. For the order of the indian tribes you can look in the NAMES.TXT. I suspect that Incas start with 04, but the owner in this case may also start from 00 for Inca.

To make debugging this easier you can use ALT+"W" "I" "N" to enable the cheat menu and reveal the map.
 
There is a map editor (mapedit.exe) and save game editor (cedit.exe). The latter only allows editing the map, tax rate, and funds though.
Never heard about cedit.exe. Can you tell me more about it? Is it for dos? Is it closed source? Where can I dowload it? Google gave me nothing. It's still can be a good starting point. I'm not gonna reverse it (if it's closed source), but at least it can be a easier way to detect some addresses than Alt+W.I.N.
 

Attachments

  • cedit.zip
    13.6 KB · Views: 89
Last edited:
Judging by what I'm seeing here, it looks like Indian settlement data starts probably around 4096 (1000 hex) and goes to somewhere around 7744 (1e40 hex). It would be handy if we had a script that could pull the data out and line up the settlements - though that's tough to do without knowing exactly where the settlements start and stop, and just how many hex chars each settlement has. Oi, what a headache.
 
Good idea, about using Alt-WIN! Ok, here's a list of the Indian settlements in that game, with the starred ones being of course the capitals. I probably missed one or two, but that's fairly exhaustive.

This is an updated file, which includes the hex values for the coordinates plus where they occur in the save file (in decimal). Looks like, sure enough, all the settlements occur from 6432 to 7760 (possibly with room beyond that to store more settlements).
 

Attachments

  • Indian settlements in COLONY00.SAV.txt
    1.5 KB · Views: 67
Last edited:
So yes, it looks like the first number identifies the tribe. Taking one village I was able to change the tribal affiliation (but not who the land around it belongs to):
04 Inca
05 Aztec
06 Arawak
07 Iroquois
08 Cherokee
09 Apache
0A Sioux
0B Tupi

The icon changes from camp to village to city, depending on the tribe I change it to.

I could also change it to some other identities:
00 (nothing, just "Camp")
01 Spring
02 Spring
03 Spanish
10 Spring
11 Advanced
0C France (not French)
 
Last edited:
Another thing I've noticed is that almost all settlements seem to start with that marker for tribe, plus two other markers I'm not sure what they are (e.g. 0A 08 03), followed by:

FF 00 FF FF FF 00 00 00 00 00 00 00 00

After which seems to be the coordinates for the next settlement. There are some variations in these figures, but I haven't noticed any patterns. So if it's mostly (effectively) whitespace, where is the data being stored for the settlements? There has to be at least:
Flag for capital
Flag for mission
Flag for level of alarm
Last good you traded with them
. . . but where could they be?
 
Last edited:
Top Bottom