Persistence of bottom-of-screen messages

NOTE: I HATE A LOT OF YOUR ZZT GAMES, SO WATCH OUT!

Moderators: Commodore, Zenith Nadir

Post Reply
User avatar
Quantum P.
Level 17 Accordion Thief
Posts: 1433
Joined: Fri Sep 12, 2003 1:41 am
Location: Edmonds, WA
Contact:

Persistence of bottom-of-screen messages

Post by Quantum P. »

I noticed this a while back but forgot to post about it.

Start up TOWN.ZZT and run into the armory. Ring the doorbell, and the bottom of the screen will say "The doorbell rings." Before the text disappears, save the game and immediately quit the game (but not ZZT). Now, restore from the saved game. The message is still there, at the bottom of the screen.

This time, wait for the whole "Go away, cretin" routine to finish -- i.e., wait until there are no messages on the bottom of the screen. Now quit and restore. The "The doorbell rings." message is gone.

There is a space in the ZZT file format where the current message can be stored, but whether or not it will be displayed is unreliable. This could be explained as resulting from some internal state within ZZT: if you quit the game while the message is still there, the "display message" switch remains on, and so the message appears when you restore from the game. If you wait until the message disappears, the "display message" switch is turned off, and the message does not appear.

So I'm a bit surprised by the following example, which I have not yet been able to reproduce. Spoiler alert -- contains a saved game from Commodore's Psychic Solar War Adventure (which is awesome, by the way -- download link here).

Persistent bottom-of-screen message examples (100 KB)

Open MESSAGE.SAV. If you get the "A fake wall - secret passage!" message, wait for it to disappear. Now quit and restore. There's a message there!

Just out of curiosity, I edited out all the fakes in a hex editor, so that there would be no prior messages. I also edited the message, as some proof that the message isn't being generated by an object. The result is MESSEDIT.SAV. The message does not appear when you restore from this one (which seems to solve the mystery -- the fake wall message is necessary to turn on the "display message" switch). However, if you wait for all messages to disappear (which should turn off the "display message" switch), the message still appears.

For those who can't be bothered to read all this: There's an insignificant slightly unexplained behavior in message displaying, and you should go play Commodore's game.
User avatar
Commodore
fgsdfs
Posts: 2471
Joined: Wed Mar 12, 2003 5:44 pm
Location: :noitacoL
Contact:

Post by Commodore »

ok, i think i understand. but what's so unreproducible about it?
*POW* *CLANK* *PING*
Post Reply