DavidGriffith / frotz

Infocom-style interactive fiction player for Unix and DOS (moved to https://gitlab.com/DavidGriffith/frotz)
GNU General Public License v2.0
209 stars 64 forks source link

DOS Frotz crashes on real hardware #8

Open DavidGriffith opened 9 years ago

DavidGriffith commented 9 years ago

I posted to a few places asking for people to test DOS Frotz on real hardware. So far, only one person replied. The test machine was a 486DX4 running at 75 Mhz with 24M of RAM and no sound card. It crashes horrible after three but less than ten moves. Test game is LostPig.z8. The computer's display was photographed and sent to me. I'm just going to release 2.44 now. This is the transcription:

>go west
Grunk no allowed in field. That probably OK, because Grunk no think pig tall
enought to climb over wall.

>look around
Grunk not see that there.

>find the goddam pig
Grunk no know where that at.

>lol
Grunk not know what that mean.

>go east
Forest look dark. Pig probably some place in there, but Grunk not know which way
to go. Not want end up lost in forest with no pig.

>go west
        dos mem corrupt, first_mcb=0277
prev 0899:0000|4D 9A 08 80 64 E9 91 03 46 52 4F 54 5A 00 00 M?.?d??.FROTZ...
notM26D1A:0000|58 60 1D EA 23 25 FC A5 7B 54 1E 70 23 f2 6B X`..?#%??{T.p#?k

PANIC: before 4a: MCB chain corrupted
System halted
DavidGriffith commented 9 years ago

I loaded a FreeDOS 1.1 virtual disk image (http://virtualboxes.org/images/freedos/) into VirtualBox. I wasn't able to get Frotz 2.44 to crash with my port of Shadowgate. It did crash with Lost Pig and my port of Uninvited.

You open the car door.
You smell leaking gasoline.

>out

Front Yard
You stand at the front porch of a house. This old, Gothic mansion casts gloomy
shadows all around you. A sharp wind cuts through your flesh to chill your
bones. The pounding thunder grows louder and more threatening. A curiously-
shaped knocker adorns the front door. Flanking the front door is a pair of
marble statues.

You can see a mailbox (which is closed) here.

BOOM! There is a mighty explosion behind you as your car bursts into flames.
That will at least save you the cost of a tow. Better try to find your younger
brother and have him call a cab instead of a tow truck.

>open mailbox
             dos mem corrupt, first_mcb=-27c
prev 0a78:0000:4d 79 0a c0 67 8b fd eb 46 52 4f 54 5a 00 03 da My.?g???FROTZ..?
notMZ7239:0000|00 00 00 89 00 92 00 8e 3a e6 08 01 00 00 00 00 ...?.?.?:?......

PANIC: before 4a: MCB chain corrupted
System halted

Maybe the sizes of the game files has something to do with the problem?

-rw-r--r-- 1 dave dave 285184 Apr  6  2008 LostPig.z8
-rw-r--r-- 1 dave dave 186880 May 21 18:36 sgate.z5
-rw-r--r-- 1 dave dave 239104 May 21 18:37 uninvited.z5
DavidGriffith commented 9 years ago

Infocom's sherlock.z5 crashes with similar memory contents reported:

>get newspaper
You take the newspaper.

[Your score just went up by 1 point. The total is now 1 out of 100.]

>show it to sherlock
Holmes glances at the paper and his eye falls on the notice about the Tower of
London. He immediately leaps to his feet and hurls the phial and the case into
the fireplace. The phial and the syringe shatter, and the liquid evaporates
instantly, but the detective does not even notice. "They've closed the Tower?"
he exclaims. "Most singular."

[Your score just went up by 5 points. The total is now 6 out of 100.]

Holmes strides to the door and calls down to Mrs Hudson to bring up a tray of
food. Then he plops back down on the sofa, makes a steeple of his fingertips and
focuses his intense gaze upon you.

>play violin
            dos mem corrupt, first_mcb=027c
prev 0a7a:0000|4d 7b 0a 80 5d 1e a2 00 46 52 4f 54 5a 00 c0 b4 M{.?].? FROTZ.??
notMZ67fb:0000|02 61 58 9a 4a 6d 6e c2 6c 6f 25 00 03 21 cc 1a .aX?Jmn?lo%..!?.

PANIC: before 4a: MCB chain corrupted
System halted

That appearance of "FROTZ" in the dump is from the filename of the Frotz executable. If I change FROTZ.EXE to something like FOO.EXE, the crash message will contain "FOO".

DavidGriffith commented 7 years ago

I've gotten some feedback on this bug and it suggests that the bug has to do with memory allocation for undo slots. More to come later.

DavidGriffith commented 7 years ago

Confirmed that the bug has to do with undo slots. If Frotz is passed the -u0, no undo slots are allocated, the game "Lost Pig" proceeds without trouble.

Then when quitting the game, it crashes as before.