Infocom Frotz: Online player for Infocom's multimedia games

I teased this a few days ago, but I think it’s now ready for a proper announcement. Introducing…

Infocom Frotz!

You can now play Infocom’s six multimedia games online, including in mobile browsers (tested on Android Chrome and iOS Safari.)

Visit the Github page for the source code etc, and you can report bugs on the issues page.

Compiling SDL Frotz with Emscripten wasn’t too difficult (though one compiler bug I ran into is frustrating). But there were two pretty big issues: SDL Frotz doesn’t support higher pixel densities, and Emscripten has no support for the input event, meaning no mobile keyboard input. Luckily I had already dealt with both in Parchment, so I could borrow a lot of solutions I’d developed there.

Testing this on iOS was supported by my IFTF grant. I haven’t actually used it for Parchment yet (though I will soon), but it was very helpful here, so thank you IFTF and IFTF supporters!

22 Likes

This is actually amazing!! I love it. It’s really cool and definitely worth it (I think).

And touchscreen clicks work as well! Unfortunately Beyond Zork never loads on Parchment, so porting it would be good (how difficult is it to port these?)

1 Like

I haven’t looked into Beyond Zork so I’m not sure why it doesn’t work in Parchment. In theory any z5 game could be played with this (maybe I should add a way to do that?), but it would be better to get them working in Parchment instead.

2 Likes

Splendid work! Bookmarked.

“Infocom’s non-Z6 games should be played with Parchment instead.”

Does Parchment do sound (Sherlock, The Lurking Horror)?

1 Like

It doesn’t, that’s one of the few things a desktop interpreter would be needed for.

Could Infocom Frotz handle those sounds?

1 Like

Maybe? Emscripten + SDL do support sound, but I’m not sure if any manual work would be required.

Fun fact about Journey, it will look a bit different depending on if the interpreter presents itself as DOS …

image

… Amiga …

image

… or Macintosh.

image

So at least for playing in SDL Frotz, I think the Amiga version is the best looking one.

At least the last release of the game tries to adapt itself depending on which platform you run it on. But there may be glitches if you try to run it under anything else than the intended platform, so I guess they never fully tested that. (Which is why Frotz tries to detect which platform setting it should use.)

There was also an Apple II version that again would have been slightly different, but I don’t know of any Z-Machine interpreter that emulates that.

4 Likes

The Apple II version is pretty much identical to the MS-DOS version apart from the lower resolution and some abbreviated commands. Note that the text is more readable on a real Apple II monitor an NTSC TV screen than in the screenshot below (from MAME):

EDIT: Here is a video of it running on a real machine: https://youtu.be/iM1O5gaJyDE?si=hDqJAYIRTjwlzIJA

2 Likes

It uses subpixel rendering? :open_mouth:

An early form, according to some:

EDIT: It (ab)uses the NTSC color encoding scheme, so it won’t work on an RGB monitor, contrary to what I implied above.

1 Like

It’s more like the opposite of subpixel rendering; “superpixel rendering” if you will.

Subpixel rendering takes advantage of the way that in most LCD displays, each coloured pixel is actually a red, a green, and a blue subpixel in a consistent order. The program draws a low-resolution colour image, expecting it to interfere with the display to produce a higher-resolution, mostly black-and-white image.

“Superpixel” rendering is the result of the way the NTSC standard chose to encode colour information: If a horizontal line changed from bright to dark too quickly, an NTSC television interpreted that as colour information rather than brightness, and the particular pattern of brightness and darkness produced different colours. An Apple II program draws a high-resolution black-and-white image, expecting it to interfere with the display to produce a lower-resolution, colour image.

Unlike subpixel rendering, there’s no trade-off of colour and brightness that allows you to get a medium-resolution rainbow-tinted image, you always get crisp-edged black-and-white on a monochrome monitor, or crisp-edged blotchy colour on a colour one. Apple II colour monitors often included a “mono” button on the front to disable colour processing entirely, so you could turn it on, read the text, then turn it off to look at the graphics.

4 Likes

Since people might be confused: Journey used the “double hi-res” mode available on the Apple IIc and IIgs. 560x192 (when considered monochrome) rather than 280x192, and more colors.

1 Like

Yes, it is indeed confusing. It seems this mode is available on Apple IIe as well. At least Journey and the other version 6 Infocom games work fine on an emulated IIe.

If you add an 80-column video extension card. The emulator has that, but it wasn’t in the stock IIe.

1 Like

Turns out yes, with basically no changes Infocom Frotz already supported sound. All that was needed was to add the game files and tell the build script to generate html files for The Lurking Horror and Sherlock. Thanks to @dfabulich Infocom Frotz now does so, meaning all of Infocom’s multimedia games are supported! :grinning:

However the mobile keyboard is currently buggy. I’m investigating. Edit: and I think it’s fixed!

4 Likes