1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Civ 1 DOS freezes after intro

Discussion in 'Civ1 - General Discussions' started by kerl, Dec 7, 2017.

  1. kerl

    kerl Chieftain

    Joined:
    Dec 7, 2017
    Messages:
    9
    Hi,

    I have a P3 450 with Win98 which I also use for dos gaming. Civilization 1, Master of Magic and Colonisation all fail in the same fashion: The load up, start playing the intro, now if I stop the intro or I let it play, the menu never shows up and the screen just freezes. In the Civ1 case it should show up the logo.pic graphic and the menu but the screen just freezes - music keeps playing normally. Sames file in a dosbox system work fine.

    Any ideas how to resolve this? Tried different memory managers/no memory managers/different VGA cards without any luck.

    Cheers
     
  2. SWY

    SWY Chieftain

    Joined:
    Oct 3, 2014
    Messages:
    329
    Gender:
    Male
    Location:
    The Netherlands
    What happens when you exit Windows into dos mode, or start dos mode directly using the F8 on computer start up?
     
  3. kerl

    kerl Chieftain

    Joined:
    Dec 7, 2017
    Messages:
    9
    Sorry I did not mention it - I am starting dos mode directly with f8.
     
  4. kerl

    kerl Chieftain

    Joined:
    Dec 7, 2017
    Messages:
    9
    I am trying now to see if I can modify the executable to skip the intro and go straight to the menu. Anyone that has done this before? I found where in the executable logo.pic is defined but not where it is called.
     
  5. kerl

    kerl Chieftain

    Joined:
    Dec 7, 2017
    Messages:
    9
    So it looks like in the dosbox test system 2596:021b mov ax, 323A is where the logo.pic location is called. However I am guessing due to the overlay the contents of this address change few times before containing the instruction.
     
  6. GoldBerg

    GoldBerg CivDosPlayer of '91

    Joined:
    Aug 20, 2003
    Messages:
    564
    Gender:
    Male
    Location:
    Palace Improvement
    ...try to start with Dack's
    civ$ editor
    in the downloads here:
    https://forums.civfanatics.com/resources/civilization-dollar-sign-civ.2632/

    Dack's Forum Discussion about:
    https://forums.civfanatics.com/threads/civ-civ-dollar-sign-version-08-01-140717.530420/

    .
    .

    i remember i did play civDOS within win95_b and win95_c, later win98se the longest time (1999 to 2006);
    accessing dos mode with an AMD 500 processor and just 48MB RAM
    directly from win98se desktop -
    it did work most times flawless,
    but sometimes with a delay (slower game) or faster blinkin' active units.

    i guess i remember there were problems with the earlier (first) win98 version back in the days.
     
    Last edited: Dec 19, 2017
  7. kerl

    kerl Chieftain

    Joined:
    Dec 7, 2017
    Messages:
    9
    Thank you for your answers. Neither civ$ nor running under windows 98 helped. Under my 486DX4-100 and my Pentium 200 MMX there are no problems with the same files. At some point I will try with a P2 266. Just moving very slow with this as got busy with other problems.
     
  8. kerl

    kerl Chieftain

    Joined:
    Dec 7, 2017
    Messages:
    9
    I believe I have found the offending code. It is inside MGRAPHIC.EXE:

    seg000:06C1 assume es:nothing
    seg000:06C1 mov al, 1
    seg000:06C3 mov es:440h, al
    seg000:06C7
    seg000:06C7 loc_106C7: ; CODE XREF: seg000:06CCj
    seg000:06C7 cmp es:440h, al
    seg000:06CC jz short loc_106C7

    seg000:06CE mov si, [bp+6]

    In dosbox the bit in bold loops few times, then all the sudden es:440h changes value (seen two different values already, one being 0 other being somethign that looked random) and then moves forward. In the P3 es:440h always stays 1 so loops there forever.
    No idea who changes es:440h in dosbox. Maybe I will just replace the jz with a noop and see what happens.
     
  9. kerl

    kerl Chieftain

    Joined:
    Dec 7, 2017
    Messages:
    9
    Confirmed that replacing the jz with nop works - I played the game for about 30 minutes without problems.
    Binary comparison:

    I:\games\civil>fc /b MGRAPHIC.BAK MGRAPHIC.EXE
    Comparing files MGRAPHIC.BAK and MGRAPHIC.EXE
    000008CC: 74 90


    I was unable to figure out the root cause. In dosbox a PUSH AX from code in the BIOS region F000:FEA9 enables the game to continue by doing PUSH AX, which seems to be INT 8/IRQ 0 code . According to dosbox debugger this causes 0:0440 to change from 01 to 00.

    In my P3 IRQ0 code location varies depending if I start the system with conventional memory only or with memory managers (Windows 98 in DOS mode). MDS reports handled by Default handlers as opposed to BIOS in dosbox. On two different boot configurations I tried so far there is no PUSH AX instructions before IRET is encountered.

    Gonna mess around with this a bit more and play some civ in the process. Hopefully colonization and master of magic will have a similar resolution.
     
  10. RuThan

    RuThan Chieftain

    Joined:
    Aug 3, 2018
    Messages:
    2
    Gender:
    Male
    Hello, i found that this library is used by ~10 Microprose games, could you try to fix them too?
    Details:
    https://www.vogons.org/viewtopic.php?f=61&t=61242
     
  11. kerl

    kerl Chieftain

    Joined:
    Dec 7, 2017
    Messages:
    9
    Hi,

    I can have a look at those games starting with master of magic which I think shares a lot with darklands. I cannot promise when though, I am going to our first holiday with our baby for the next month.
     
  12. tuga2112

    tuga2112 Chieftain

    Joined:
    Dec 10, 2007
    Messages:
    96
    very good choise of games.
    one thing to note. if you play masters of magic to some extent, you will find random crashes. my experience with it, is that its an unstable assembly. so suggest you save often. (if you like it, i know of at least to modern alternatives that you are likely to also enjoy)

    Colonisation is very stable, although theres a random infinite loop here and there. if you search, theres a patch "canalisation" (i think its miss spelt on purpose) which fixes some bugs. i cant recall how long ago i have came across a noticeable bug on that game.
     
  13. RuThan

    RuThan Chieftain

    Joined:
    Aug 3, 2018
    Messages:
    2
    Gender:
    Male
    Thanks.
     

Share This Page