Civ 1 DOS freezes after intro

kerl

Chieftain
Joined
Dec 7, 2017
Messages
11
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
 
Sorry I did not mention it - I am starting dos mode directly with f8.
 
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.
 
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.
 
...try to start with Dack's
civ$ editor
in the downloads here:
https://forums.civfanatics.com/resources/civilization-dollar-sign-civ.2632/

Version: 07.90 040414

The program is meant to be aid to playing Civilization for DOS.

Features:
  • Change the treasure amount of any country.
  • Control of Civilization advances.
  • Shows Advances others have that you don't.
  • Quick Start of CIV.
  • Quick removal of barbarians
  • Addition or removal of units from a map.
  • Editing of city size and contents
  • Control of Wonders.

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:
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.
 
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.
 
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.
 
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.
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
 
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.
 
play some civ in the process. Hopefully colonization and master of magic will have a similar resolution.

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.
 
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.
Thanks.
 
Hi,

I cannot register for the vogons forum. The games mentioned in your post work in my P3 with no modifcations with the exception of Lightspeed. Railroad tycoon intro seems to get stuck but waiting for a few seconds and pressing space seems to move forward and play normally. I was unable to rectify this.

For Lightspeed both mgraphic.exe and lightspd.exe need to be modified:

Comparing files LIGHTSPD.BAK and LIGHTSPD.EXE
0000ABC7: 74 90
0000ABC8: 0A 90
0000ABD1: 74 90
0000ABD2: FA 90

Comparing files MGRAPHIC.BAK and MGRAPHIC.EXE
000008D2: 74 90
 
Thanks, its possible upload just patched files, or some patching utility?

I will retest Railroad tycoon, im not sure if tried Space key to progress..

What exactly problem do you have with Vogons? Its not locked or something like that, maybe only try different browser.
 
These files work for me.
VOGONS does not seem to have a register option I tried different browsers.
 

Attachments

  • LIGHTSPD.zip
    69.5 KB · Views: 118
  • MGRAPHIC.zip
    4.4 KB · Views: 123
Top Bottom