Re-Setting The Game Clock

by Octagon

The Problem

This note will describe a work-around for a bug that causes the clock to slow down when the game time reaches 72 hrs. 49 min. 4 sec.

Symptoms:

- A level, once cleared, will not restock with monsters or allow new quests in the usual 20-30 minutes.

- When the journal is opened and the clock examined, the seconds will not change at the rate of one per second, instead, they will change much more slowly, sometimes appearing completely frozen.

Cause:

The format the time is stored in is floating point. At 72+ hours, there is enough time on the clock that the time increment for the next tick, when rounded to the accuracy of the stored time, is zero.

Blouge has provided a more complete description (note #33) which I think is more or less correct, although I think the parts about it being linked to the frame rate of the video card and possibly different from machine to machine are speculative and may or may not be correct.

The Work Around:

Unfortunately, the work around is a bit daunting to people with no experience with programming or data formats. But don’t be intimidated. Even the uninitiated can do it. Here is the procedure.

Step 1:

Obtain a hex editor. I cannot recommend the one I use, because it is part of a much larger (and very expensive) programming package. TechnoCat, however, has suggested using XVI32 (see note #5 in the Resetting Clock thread).

Step 2:

Back up your .ffd file. BuggsBunny964 has a description of how to do that in note #4 here. Just find the .ffd files in the Save folder, and copy them to a different folder.

Step 3:

Open the original .ffd file in the hex editor. In most hex editors, the data is displayed in two ways: on one side in hexadecimal (this looks like pairs of digits or letters between a-f), and on the other side in ASCII (which will look like a mix of letters, punctuation symbols, and dots or spaces, usually in lines of 16 characters). Look through it until you find your character name to make sure you have the right one.

An illustration of a typical 3 column layout for a hex editor is shown below. This uses HHD Free Hex Editor, which is free-ware and is available for download at: www.hhdsoftware.com

Step 4:

Locate the 4 bytes you want to change. They are the third, fourth, fifth, and sixth bytes after the word PLAYER, near the beginning of the file. It will be easiest to find "PLAYER" on the ASCII side, then locate the corresponding bytes on the hexadecimal side. On the hexadecimal side, PLAYER looks like “50 4C 41 59 45 52”.

With most hex editors, changing bytes is just like using a regular editor--highlight the bytes you'd like to change, then type in the correct values. Make sure you highlight them in the side of the display with the hex values, not the side with ASCII values. Then change these four bytes to B7 53 A2 3F. Save and quit.

Here is an example of a file (thanks to surdin!) that has the location of the correct four bytes highlighted. The relevant file is the top one. In this example, those bytes are dd 88 bf 45. Naturally, in your file, the values of those four bytes will be different, but this shows you roughly what your file will look like and where to look.

Step 5:

Start Fate. Your character clock should now read 0 hrs. 0 min. 1 sec., and should tick normally.

You may need to revisit any levels you want to reset, or those you were on when the clock hung, before the levels start resetting normally. Magda the Tolerated’s experience seems to be that the levels won’t reset otherwise.

Other threads which address this issue are: Levels Won’t Restock and Is There a Time Limit On This Game?

In addition to those already mentioned, I would also like to thank Siao, Magda the Tolerated, and Apricottwist for their contribution to this discussion.