Blind player needs help with Zork

A blind player contacted the IFDB moderators. He’s playing Zork and could use some assistance, probably in the form of hints. We recommended he registered here on the forum, but apparently it was not working well with his screen reader.

Could someone who is knowledgeable about Zork e-mail him and offer some assistance? Let me know and I will give you his e-mail address.

3 Likes

I’d be glad to help

2 Likes

It turns out he’s playing the 646 point Inform port of Dungeon. I’d never actually played it, but decided complete it to ensure my hints would be accurate. My knowledge of Zork I, II, and III was helpful and I was able to play through almost the entire game fairly quickly and give him hints, except I’m stuck on the endgame.

After breaking the red beam and pushing the red switch the mirror swings out on a panel, but eventually swings closed again. I’ve tried everything I can think of here but nothing works.
Some help would be appreciated.

2 Likes

I’ve only played through an earlier version of the game (possibly Dungeon version 2.7A), but my recollection is that this part of the endgame works just as in Zork III (minus the invisibility potion). That is, can’t you just walk north through the open panel to enter the “Inside Mirror” room?

That’s what I thought too, but alas it does not work. This is the zdungeon.z5 file from ifarchive

Edit: I figured it out. It has to be just “enter” with no direct object. Grrrrr

Ah. I was scratching my head over that bit in the MDL source code. I’m not overly familiar with the language, but it does seem to define an exit for “ENTER” (or “IN”) that takes you inside the mirror:

<SETG MR-D <CEXIT "FROBOZZ" "MRD" "" <> MRGO>>
<SETG MR-G <CEXIT "FROBOZZ" "MRG" "" <> MRGO>>
<SETG MR-C <CEXIT "FROBOZZ" "MRC" "" <> MRGO>>
<SETG MR-B <CEXIT "FROBOZZ" "MRB" "" <> MRGO>>
<SETG MR-A <CEXIT "FROBOZZ" "MRA" "" <> MRGO>>
<SETG MOUT <CEXIT "FROBOZZ" "MRA" "" <> MIROUT>>
<SETG MIREX <CEXIT "MIRROR-OPEN" "INMIR" "" <> MIRIN>>
<ROOM "MRA"
       "" "Hallway"
       <EXIT "NORTH" ,MR-B "NW" ,MR-B "NE" ,MR-B
	      "ENTER" ,MIREX "SOUTH" "MREYE">
       ()
       MRAF
       <+ ,RENDGAME ,RLANDBIT ,RLIGHTBIT>
       (RGLOBAL <+ ,MIRRORBIT ,PANELBIT ,ROSEBIT ,CHANBIT>)>

Which I think means that “IN” or “ENTER” will use the MIRIN routine for player movement, while “NORTH” will use the MRGO routine. The MIRIN routine will definitely move you into the mirror if it is here and open:

<DEFINE MIRIN ()
    <COND (<==? <MIRROR-HERE? ,HERE> 1>
	   <COND (,MIRROR-OPEN!-FLAG <SFIND-ROOM "INMIR">)
		 (<TELL "The panel is closed."> <>)>)
	  (<TELL "The structure blocks your way."> T)>>

I had hoped that plain old “NORTH” would do the same thing, but apparently the MRGO routine isn’t that clever:

	<COND (<MEMQ .DIR [<FIND-DIR "NORTH"> <FIND-DIR "SOUTH">]>
	       <COND (<==? ,MLOC .TORM>
		      <COND (<N-S .MDIR>
			     <TELL "There is a wooden wall blocking your way.">)
			    (<MIRBLOCK .DIR .MDIR>)>
		      <>)
		     (.TORM)>)

Again, not entirely sure what this does, but I think it’s something along the lines of if you’re walking north or south, and the box is in the way, you will either be blocked by a wall or by a mirror, regardless of if the mirror is open or not.

The Zork III version of the MRGO routine adds a call to MIRIN, so that’s presumably why “NORTH” works. That’s what I was missing yesterday:

	 <COND (<EQUAL? ,PRSO ,P?NORTH ,P?SOUTH>
	        <COND (<==? ,MLOC .TORM>
		       <COND (<0? <MOD ,MDIR 180>>
			      <TELL
 "There is a wooden wall blocking your way." CR>
			      <RFALSE>)
			     (<MIRIN <>> ,IN-MIRROR)
			     (T <MIRBLOCK> <RFALSE>)>)
		     (T .TORM)>)

[Insert clever one does not simply walk… joke here.]

3 Likes

The block puzzle is not very friendly for screen readers.

Nope, and looking at it in Braille doesn’t help much either.

Just wanted to say the player I was helping has completed Zork. :smiley:

6 Likes