home / blog

Theme park cursor freeze [solved]

Eventually tracked this down a solution to this on a forum by someone exceedingly clever. Turns out to be an issue in the original game, but happens more often using emulators such as DOSBox.

vogons.zetafleet.com/viewtopic.php?t=31983&sid=6a3a397399f9c7837e222a265b195f4a

I tracked down the mouse pointer freeze problem some time ago thinking it might be a DOSBox issue, but AFAICT it’s a game bug. The mouse handler has a non-reentrancy flag that isn’t cleared in a specific condition that appears to be related to the mouse IRQ firing while switching between hi-res and lo-res video modes. When you play in hi-res some of the subscreens are in lo-res and switching is inevitable, but if you are careful not to move the mouse at all during the switching then the freeze can be avoided.

You can patch MAIN.EXE to fix the pointer freeze bug, but the exact offset varies between versions:
Code:
search: 0F 84 4D 05 00 00
modify: 43

There may be another problem with the mouse pointer related to hi-res/lo-res switching, but it is considerably more complicated and it can take some time before it occurs. This other problem causes the mouse pointer to disappear, and unlike the freeze problem it can’t be avoided by not moving the mouse. Actually, I would be interested in reports of pointer disappearance in Theme Park on real systems, because the complexity of what is going on makes it difficult to be certain if there is a game bug or a DOSBox issue.

This entry was posted in geek and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published.