 |
|  |
 |
|
Starlifter
|
 |
Seattle's Rain....
Jun 2002 time: 21:15
|
|
Angelo Scotto:
quote: 00 means unit is supported by city 0
..
..
..
FE means unit is supported by city 255 |
Actually, a unsigned integer of FEh will refer to city 254d.
I've just read this thread, will add my comment that you will not be able to change the MGE to accomodate 256+ cities properly using simple value changed in the .EXE, but have not delved into the ToT differences. I've looked into those issues myself, in the MGE case.
I can suggest the 2 ways that will work; however, each has a significant drawback.
1. Decompile and map the .EXE, then change/add the necessary code. This takes time, and would be painful, and would be a big project. However, it could be done, and then even data type could be altered.
2. Much easier, and would require far less programming time and talent: Obtain the source code, and then make alterations and recompile. This would likely require some assistance from an insider or presumably Microprose. In theory, they could have you sign an NDA, and allow you to make certain changes, subject to conditions. Eventual incentive to them would be sustained end-life cycle sales of Civ 2, subject to patch which costs them nothing to develop.
If option 2 was used, several other things in Civ 2 could be fixed at the same time .
Either way, or maybe if some other way is eventually worked, the resulting file will be incompatible with all prior Civ 2 .SAV file formats. However, a utility could be written to do 2-way conversions. From 255 to 255+, existing files could be altered to contain null data for additional units and cities. Form 255+ to 255, existing excessive units and citeis could be truncated, and associated wonders "Lost", and unit numbers less than 2000 either destroyed or reassigned (support) to the first city in each civ's city list.
So it can work (1&2 above), but I am quite sure that making small-scale .EXE changes won't result in a stable result, as too many things simply won't work... people have listed some of the issues, but there are even more, at least in the MGE case... .
But I do applaud your efforts, and also hope you find a way to make it work in ToT. I might have to find and reinstall it then .

|
|
|  |
 |
|  |
 |
|
Darius871
|
 |
Smith, Wesson, and the RODINA!!!
Mar 2002 time: 23:15
|
|
In this CFC thread that I touched on before, Imperial-Markus made it seem that the solution was there to edit the column to three, but the matter was actually not how to do it but the fact that you have to go line-by-line down the entire file, which would take impractically long.
If he is correct though that he has the solution but not the time, then what must be done is for us to find a bunch of people, assign them lines to edit with techniques that he has apparently found, and wait for all of them to be finished. Another option is for you, Imperial-Markus, or any major programmer here to attempt to design a brand new executable file that would edit each individual line on its own, which would be faster than tedious human attempts.
I suggest you look at the thread as I have only vaguely understood what he meant.
|
|
|  |
 |
|
Angelo Scotto
|
|
Milan, Italy
Oct 1999 time: 05:15
|
|
quote: Originally posted by Starlifter
Angelo Scotto:
Actually, a unsigned integer of FEh will refer to city 254d.
|
Ok, ok, i made a lot of confusion, anyway i think it´s clear what i mean, FEh = 254d => 255th city since city with ID=0 is the 1st city in the game.
BTW, it's not the only HEX->DECIMAL confusion i had in that post:
I wrote "If you simply break the limit of 255 cities you allow Civ2 to create city 256, 256 is FF in hex, "
obviously 256d is 100h and not FFh, but again, what i mean was that 256th city had city ID = FFh (255d)
and i wrote also
"The same applies for city 257, 257 = 01FF (FF01 in reverse notation), this means that it uses 2 bytes to store the correct value, BUT Civ2 is programmed to read only a single byte, so from FF01 it reads only 01 and so it assigns units built in city FF01 to city 01, units built in city FF02 to city 02 and so on."
again 257 comes after 256 so if 256th city was FFh the 257th is 100h and not 1FFh (the only thing i can say to excuse me is that i wrote the post in real-time without thinking too much about hex digits) anyway, the whole point of my comment was that, from city 257h on you´ll need two bytes to store city ID and so, thanks God, my errors were secondary
quote: Originally posted by Starlifter
I can suggest the 2 ways that will work; however, each has a significant drawback.
1. Decompile and map the .EXE, then change/add the necessary code. This takes time, and would be painful, and would be a big project. However, it could be done, and then even data type could be altered.
|
I agree completely, as i wrote:
"A correct approach requires to find each instruction which reads from unit data structure the home city number and change it so that it can read 2 bytes instead of one but this requires a disassembler, a debugger and a lot of rainy days outside;
It's the same approach i'm following to break the 7-civ limit in Tot, but, even if the approach theorically works it requires a HUGE number of weeks of boring work and i'll quit soon. "
And, honestly, even if using that approach i discovered a lot of useful things about Tot, i quitted some weeks after that post 
quote: Originally posted by Starlifter
2. Much easier, and would require far less programming time and talent: Obtain the source code, and then make alterations and recompile. This would likely require some assistance from an insider or presumably Microprose. In theory, they could have you sign an NDA, and allow you to make certain changes, subject to conditions. Eventual incentive to them would be sustained end-life cycle sales of Civ 2, subject to patch which costs them nothing to develop.
If option 2 was used, several other things in Civ 2 could be fixed at the same time .
|
That would be the Civ Holy Grail, unfortunately i don't think the source code will ever be released (and i hope to be wrong, believe me, CSPL could be integrated totally in Civ2 engine... wonderful...)
Greetings,
Angelo
|
|
|  |
 |
|
Julius Brenzaida
|
 |
Currently cleaning the 9000 rooms of Sticky Mouse's Palace
Aug 2000 time: 05:15
|
|
1) the levels : it is possible to play Raging Hordes+4 and Deity+5, but the game crashes when retiring and games cannot be properly saved. If it worked, it would provide a new challenge. To create the level is very easy : go in games.txt and add them next to the others, in the opening menu dialogue. No idea what to do. It could be simple, maybe it’s just a bright idea away.
2) The number of civ2 : it is 8 with barbarians (yes a byte !). Why not more. Nobody has make progress on it as far as I know.
3) The number of units : it 1948 for 1 player and 2048 overall. I founded the numbers in the civ2.exe and changed them. But the game crashed after 2050 units, I believe. Test have been made, see above in this thread. Why, I don’t know !
4) The number of cities : 255 as everybody knows. I’ve found the correct FF00 and changed it (made it FFFF). Then more cities can be founded. The program remembers them well, and a lot of things work at 1st. Except that the unit allocation is wrong (well documented in the above comments of this thread), the 256th city, being the home of the None units, and the 257th is not told for the units from the 1st. And after about 300 cities or a few turns the game crashes.
|
|
|  |
All times are GMT. The time now is 05:15. Apolyton Time is 00:15. |
top of page
|
| archivepost |
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|