Wanted: VoiceOver users to test Journey hack

I’ve tried to make Infocom’s Journey accessible in Spatterlight, and I think it is ready for testing.

Here is a link to a Spatterlight beta build. A custom blorb file is included (EDIT: updated with link to new build):
https://github.com/angstsmurf/spatterlight/releases/download/v1.2.6.3b/Spatterlight.zip

Any version of Journey found at the Obsessively Complete Infocom Catalog should work,
except the first one, the Z5 prototype named journey-dev-r46-s880603.z5.

It is recommended to set the interpreter to IBM PC or Apple IIe on the Format settings tab, rather than Amiga or Macintosh. This is to prevent VoiceOver from reading every graphic character individually.

The original game mainly uses two lists for input: a Party list which contains actions taken by the entire group, and an Individual Commands list for actions by individual members. This is now approximated by two new macOS menus at the top of the screen: the ”Journey Party” menu and the ”Individual Commands” menu. These will only be present when VoiceOver is active and there are actions available corresponding to the menus.

For example, at the very start of the game, there is no command menu, so none of the two Journey-specific macOS menus will appear. A few keypresses later, at the start menu, there are still no individual commands, so while the ”Journey Party” menu shows up, the Individual Commands menu is still hidden.

As these menus are at the right end of the menu bar, they can be reached by pressing VO + M followed by left arrow.

Individual Commands is a menu of submenus: Every character that has available actions, also has a submenu of verbs.

Often these actions lead to second-order submenus, for example to pick an object for the verb you selected. This is currently handled in Spatterlight by throwing up a modal dialog, which might contain a popup menu if there is more than one choice available.

I made all this under the assumption that the standard macOS controls would be sufficiently accessible out-of-the-box, but they seem to have a few problems. It is possible that this all has to be re-done in a completely different way.

The main problem is that VoiceOver really wants to read the start of the text buffer (“Our journey started on a day bright and clear …”) instead of the results of the latest action. What seems to be happening is that after selecting an action from a menu or a dialog, focus is returned to the game window, and this notifies VoiceOver that focus has moved to a new accessibility element, which has to be described. I haven’t found a reliable way to prevent this.

Therefore, it is recommended to use the Speak Last Move shortcut (Option + Command + left arrow) to interrupt VoiceOver if it starts misbehaving. Sometimes it has to be pressed repeatedly to work.

Another useful feature is the Command History Rotor (VO + U), which lists all previous moves in the game. Sometimes another rotor may show up by default. Then you will have to cycle through available rotors with the left and right arrow keys to get to the Command History Rotor.

Here is a YouTube video with audio that demonstrates playing the start of the game with VoiceOver. although I’m not sure how helpful it is.

You can’t tell from the video which buttons are pressed, but you can hear what results (and problems) to expect. It may not be apparent, but at many places in the video I use the Speak Last Move shortcut, sometimes repeatedly, to force VoiceOver to start speaking the results of the latest action.

As an added bonus I created a blorb file where the placeholder image descriptions from the dev-r46 prototype are added to every image, so that when you navigate the VoiceOver cursor to the graphics window, the image description will be read. These descriptions are usually not helpful and may not always accurately describe the actual images, but I hoped some people might still enjoy them.

4 Likes

I’d be happy to give this a go.

1 Like

Excellent! I know the instructions above are not great, so don’t be afraid to ask if anything is unclear.

1 Like

Hmmm … for some reason Spatterlight isn’t wanting to open my Journey game file. I’m given this error message: “invalid argument for -n: must be an integral number between 1 and 11 inclusive.”
Edit: it looks like this is happening with all Z-machine files. Glulx and TADS games are still working as expected.

1 Like

That bug is mentioned in this thread: Spatterlight release 1.2.5 is out! - #4 by Angstsmurf

Change the “Settings → Format → Interpreter version” setting.

2 Likes

Thanks, problem solved!

First impressions: this is pretty cool! Playing the game through the menu bar does take a bit of getting used to, but it seems to work quite well for the most part. There have been a few instances of the above-mentioned issue–VoiceOver not wanting to announce output for a command after a dialog pop-up selection is made–although for me it just tends to go silent instead of reading from the beginning of the text buffer. The Command History rotor is definitely a nice work-around in these situations.

Well, I seem to have run into a sticking point regarding spell-casting. When I select the “Cast” command from the relevant individual character’s menu, Spatterlight simply reads the contents of the spell-specific submenus instead of putting up a dialog selection. Could this be due to the fact that two separate selections need to be made here: one for for the spell itself and one for its intended target?

Hmmm … for some reason Spatterlight isn’t wanting to open my Journey game file. I’m given this error message: “invalid argument for -n: must be an integral number between 1 and 11 inclusive.”

Oops, I thought I had fixed that. Thanks for reporting it, and thanks to @zarf for providing the workaround.

Thanks again! The intended behaviour here is that a second dialog should pop up as soon as the first one is dismissed. This was tricky to get right, so it is not really surprising that it still isn’t working properly. I’ll look into it.

1 Like

A new beta build which should fix the reported issues is available here:
https://github.com/angstsmurf/spatterlight/releases/download/v1.2.6.1b/Spatterlight.zip

1 Like

Thankst, so far so good!

1 Like

Update: I am currently about a third of the way through the game, and it seems that Spatterlight has decided to stop accepting commands. For some context, the party is in the process of getting past a group of orcs, and Praxis the wizard needs to cast an Elevation spell on himself; he is the only character available under the Individual Commands menu at the moment. The relevant dialog boxes are popping up as expected, but when I press the OK button to send through the final command, Spatterlight gives me the error chime indicating that something wasn’t able to be processed. This is happening as well when I attempt to access the Game submenu under the Party commands, but that could be intentional—this might be one of those instances where players are not allowed to save.

Thanks! A new build is up at

https://github.com/angstsmurf/spatterlight/releases/download/v1.2.6.2b/Spatterlight.zip

which should fix this problem, hopefully without causing any new ones.

Let me know if you have any use for save files or command scripts to help you get back to this position in the game.

1 Like

Yes, that seems to have fixed it!

I am now one move away from completing Journey, and I believe the assembly process for this final command may be tripping up Spatterlight. This is the only point in the game where we need to have three dialog selection popups: one of the individual characters is mixing together three elemental essence powders. Unfortunately the third box isn’t wanting to show, and interestingly enough I have also noticed that even though Tag was the character I selected to carry out the action, I’m being told that Esher is the selected character when the first and second powders are getting added to the mix.

2 Likes

I can reproduce the “Esher is the selected character” bug, but it seems that apart from this, things might still be working as intended. After mixing the two reagents, you are supposed to select Individual Commands > Tag > Add Pinch. Is that menu option available?

1 Like

By the way, after winning the game, another bug manifests where the Individual Commands menu is still present, with a list of commands which no longer work, as the “real” command grid at the bottom of the window is empty. The menu is supposed to be hidden, and this used to work. Not sure how I broke it.

1 Like

New build that fixes these issues:
https://github.com/angstsmurf/spatterlight/releases/download/v1.2.6.3b/Spatterlight.zip

Oh wait, scratch that! I think the combination of the Esher bug and the silent VoiceOver output quirk led me to believe that the first half of the command hadn’t worked. This rag-tag party of adventurers has now completed their journey…but it seems that their saga will forever remain unfinished.
One very small oddity I forgot to mention earlier: in two out of the four instances where the player is asked to type into a text entry box, VoiceOver does not announce characters as they are being entered. Specifically when Praxis is trying to open the door to the storage room with elemental essences, and when the party is choosing a captain to take them to the island.

1 Like