Announcement

Collapse
No announcement yet.

New version of the no-limits add-on

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Feedback is sent

    Comment


    • #32
      Marco, thanks for the tests. It is quite mysterious indeed. I am afraid I must admit it is beyond my comprehension and will only remember that getting over the units or the cities limits simply don't work. Too bad, but it's just the way it is.
      Oh Man, when will you understand that your greatness lies in your failure - Goethe

      Comment


      • #33
        I too must thank you all for your hard work and wish you good luck. I and several others have completely stalled potentially great scenarios because of the stupid cities limit. If I were you I wouldn't release a version without the cities limit cracked, though. There has to be a way to change the number of bytes, there just has to...

        Please don't give up on us! Try to enlist any expert help that you can on this issue.

        Unbelievable!

        Comment


        • #34
          Angelo Scotto:
          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 .

          Comment


          • #35
            As I said in a similar CFC thread, I am willing to do any of the tedious work Starlifter described. I am able to hex-edit as long as I have directions in hand, so if the issue is how much time it takes and not difficulty, I can help anytime.
            Unbelievable!

            Comment


            • #36
              Starlifter, you're certainly right about the difficulties
              Somehow, I am afraid Microprose won't help us

              Darius871, thanks for your help, but the problem is that we don't what direction we shall take
              If there is 2 numbers (FF) for the units allocation, I don't see how we can turn that around without rewriting a lot of things. Which is hard in itself and impossible if we don't know where it is
              Oh Man, when will you understand that your greatness lies in your failure - Goethe

              Comment


              • #37
                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.
                Unbelievable!

                Comment


                • #38
                  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

                  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


                  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
                  "If it works, it's obsolete."
                  -- Marshall McLuhan

                  Comment


                  • #39
                    Hmm... on the other hand, Microprose isn't making that much money with Civ2 anymore... is it?
                    You make my life and times
                    A book of bluesy Saturdays

                    Comment


                    • #40
                      A quick summary of the civ2 limits one would dream to break.

                      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.
                      Oh Man, when will you understand that your greatness lies in your failure - Goethe

                      Comment


                      • #41
                        What I can do to help

                        What I can do to help.

                        Sorry, I can’t do that much.
                        1) I have a version of the civ2.exe for MGE and another for ToT, where I broke the units and cities limits. It could help for testing and finding what does not work. And maybe why too. I can mail them to you if you ask. I leave tomorrow but I am back for the 18th of August, just some patience please.
                        2) Very unfortunately and I was quite mad at myself for spending hours changing FF numbers for nothing and I threw away the paper where I wrote the line of the correct FF meaning the city limit. If I remember it’s around the 200th occurrence, but I might be wrong. I hope that if you have my modified version, you can compare with the original and find back more quickly than I did.
                        3) I think it’s obvious, but all that I said is for MGE and ToT, programs very similar, and not for 2.42 or FW that were designed for 16 bits and not 32.
                        Oh Man, when will you understand that your greatness lies in your failure - Goethe

                        Comment


                        • #42
                          Time is not on my side

                          It’s all that I can do for now, sorry must leave my computer …
                          I am glad to see brave people still trying to improve our beloved civ2 game.
                          I wish you all good luck and I am looking forward to see the results when I come back.
                          Then I’ll find the time to, perhaps more explanations (if I am able enough) and at least to send the modified version to whoever is interested.
                          Oh yes, one more thing : there was, I believe, at least 2 more threads in the past years talking about those limits, it could be worth looking at them. But once again I have no time now to find them and provide the link. Sorry, sorry, sorry !
                          Oh Man, when will you understand that your greatness lies in your failure - Goethe

                          Comment


                          • #43
                            I forgot another annoying "FF/255" limit. On the F2 screen (military advisor) you never get any figure higher than 255. For example, if you have 257 settlers, the game says you have 2. And for the losses if you kill 257 riflemen, the count stops at 255.
                            Oh Man, when will you understand that your greatness lies in your failure - Goethe

                            Comment

                            Working...
                            X