Production screen freezes

Thorvald of Lym

A Little Sketchy
Joined
Nov 21, 2005
Messages
8,808
Location
A Palace north of Oslo
Apologies in advance if this is a repost; I tried searching for like discussions but didn't find anything quite matching my situation.

A Civ2 retrospective prodded me to dust off the OG, and I've run into a bug I don't think I've ever seen before: When trying to change city production, the build list fails after loading the Military Advisor advice, without displaying producible items. There's no way to abort and I have to force-quit DOSBox. Doing some experiments, it only affects the same city, (other two are fine) and is present in multiple save points.

I tried poking around in JCivED to see if I could fix it, but I don't know what I'm looking for, and nothing immediately looked askew in the provided stats.

Has anyone else encountered something like this, and/or knows a fix?
 
Hi Thorvald,

Probably others will provide details, but for me this was a regular bug when playing CIV French version 474.05). It's true I can't remind seeing it addressed in the forums either...

I remember it is a bug in the Advisor routine who cannot find any interesting production to suggest and gets stuck in an endless loop.

I used to always disable Advisors, which bypasses this bug, although now I could spend some time reversing the bug and maybe release some patch to fix it, it would need some time...

Cheers and thanks for posting
 
Sounds like the classic advisor bug to me, amusingly the patch history suggests Microprose attempted to fix it in three different patches and failed each time!

 
Civilization 1 can hang if a civilization has more units than the maximum unit limit per civilization something like 255 + number of cities or something.

This will ultimately result in some kind of "advisery screen" advising to reduce your number of units. But if it happens to the enemy, maybe this gets stuck or this screen gets stuck.

However there might also be other causes of hangs, some kind of sentry/fortification bug where units refer to each other in a loop.

The solution is always quite simple:

1. Activate the dos-box-x debugger via the menu.
2. Cycle through the computer instructions with F10.

Observe how it runs through the instructions, at some point it starts to "jump" around and repeats loops.

The solution is then to find the "jmp" instruction at the bottom of this looping, preferably one with the highest memory address. Sometimes it might also be a jnz, but mostly just jmp.

Then type in the following command:

SR EIP <address of next instruction beyond the jmp".

This means the following:

SR = set register
EIP = extended instruction pointer

The address is the addesses you see in front of the instructions, it's not necessary to type in all the leading zeroes.

So for example there might be this jmp instruction at the bottom:

00000265 jmp $3634645
00000270 some instruction

then you type in:

SR EIP 270

press enter.

Now run the debugger as normal and you should be able to continue playing the game. It might require an F1 key press to get through the adversory screen or unpause game with F1 or so.

So far I have had great success with this method, basically 100% possible to continue play the game.

It might happen again on the next turn, and the next turn, so go to war and kill some units, that will most likely solve it for a while.

(Now I am not sure if this is actually your issue, but what you can do is to see if the debugger is still looping around instructions, if so then it's a coding/loop bug, if not then it's something totally else, for example maybe out of memory/maybe dos-box-x crashed, actually I can remember some situations where civ1 indeed failed to load some graphics, kinda weird, not sure if it's a dos-box-x bug but maybe... it's super rare though and it does crash with some error message back to dos...).
 
Top Bottom