diff --git a/README.md b/README.md index 352aa5e..b6a0176 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ -Infocom Frotz: play Infocom's Z6 games online -============================================= +Infocom Frotz: play Infocom's multimedia games online +===================================================== -Infocom Frotz builds [Frotz](https://gitlab.com/DavidGriffith/frotz) with [Emscripten](https://emscripten.org/) so that Infocom's Z6 games can be played online. +Infocom Frotz builds [Frotz](https://gitlab.com/DavidGriffith/frotz) with [Emscripten](https://emscripten.org/) so that Infocom's multimedia games can be played online. Infocom Frotz is GPL-2.0 licensed. The game files were obtained from [The Obsessively Complete Infocom Catalog](https://eblong.com/infocom/), the media files from the [IF Archive](https://ifarchive.org/indexes/if-archive/infocom/media/blorb/), and the manuals from the [Infocom Documentation Project](https://infodoc.plover.net/manuals/index.html). They are proprietary documents whose copyright belongs to Activision. -Infocom's non-Z6 games should be played with [Parchment](https://iplayif.com/) instead. +Infocom's non-multimedia games should be played with [Parchment](https://iplayif.com/) instead. Building -------- diff --git a/frotz b/frotz index a550e70..453412f 160000 --- a/frotz +++ b/frotz @@ -1 +1 @@ -Subproject commit a550e70aa7eba0d382da10a318d98cbc02430c19 +Subproject commit 453412f374021c75147cda167fc5d7c8fb538230 diff --git a/src/makehtml.mjs b/src/makehtml.mjs index 5ab7c7a..4c10865 100755 --- a/src/makehtml.mjs +++ b/src/makehtml.mjs @@ -18,6 +18,22 @@ const storyfiles = [ storyfile: 'journey-r83-s890706-graphics.zblorb', title: 'Journey: The Quest Begins', }, + { + blorb: 'Lurking.blb', + id: 'lurkinghorror', + manual: 'lurking.pdf', + short_title: 'The Lurking Horror', + storyfile: 'lurkinghorror-r221-s870918.z3', + title: 'The Lurking Horror', + }, + { + blorb: 'Sherlock.blb', + id: 'sherlock', + manual: 'sherlock.pdf', + short_title: 'Sherlock', + storyfile: 'sherlock-r26-s880127.z5', + title: 'Sherlock: The Riddle of the Crown Jewels', + }, { id: 'shogun', short_title: 'Shōgun', @@ -31,20 +47,6 @@ const storyfiles = [ storyfile: 'zork0-r393-s890714-graphics.zblorb', title: 'Zork Zero: The Revenge of Megaboz', }, - { - id: 'sherlock', - manual: 'sherlock.pdf', - short_title: 'Sherlock', - storyfile: 'sherlock-r26-s880127-sound.zblorb', - title: 'Sherlock: The Riddle of the Crown Jewels', - }, - { - id: 'lurkinghorror', - manual: 'lurking.pdf', - short_title: 'The Lurking Horror', - storyfile: 'lurkinghorror-r221-s870918-sound.zblorb', - title: 'The Lurking Horror', - }, ] const template = ` @@ -69,7 +71,7 @@ const template = ` - + @@ -86,11 +88,15 @@ const arthurmodes = ` ` for (const story of storyfiles) { + const files = [story.storyfile] + if (story.blorb) { + files.push(story.blorb) + } const html = template .replace('ARTHURMODES', story.id === 'arthur' ? arthurmodes : '') + .replace('FILES', files.map(story => `"${story}"`).join(', ')) .replace('MANUAL', story.manual ? `

Manual

` : '') .replace('SHORTTITLE', story.short_title) - .replace('STORYFILE', story.storyfile) .replace('TITLE', story.title) fs.writeFileSync(`dist/${story.id}.html`, html) } \ No newline at end of file diff --git a/src/preamble.js b/src/preamble.js index b172359..7dac45e 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -1,12 +1,14 @@ // Infocom Frotz Emscripten preamble const files = window.files -Module.arguments = ['/' + files[0]] +Module.arguments = files.map(file => '/' + file) Module.canvas = document.getElementById('canvas') Module.preRun = () => { - // Load storyfile and blorb - FS.createPreloadedFile('/', files[0], files[0], true, false) + // Load files + for (const file of files) { + FS.createPreloadedFile('/', file, file, true, false) + } // Set up the saves folder with IDBFS FS.mkdir('/saves') diff --git a/src/static/index.html b/src/static/index.html index 227f311..2e1fae3 100644 --- a/src/static/index.html +++ b/src/static/index.html @@ -8,18 +8,18 @@

Infocom Frotz

-

Online player for Infocom's Z6 games

+

Online player for Infocom's multimedia games

Arthur: The Quest for Excalibur

Journey: The Quest Begins

-

James Clavell's Shōgun

-

Zork Zero: The Revenge of Megaboz

The Lurking Horror

Sherlock: The Riddle of the Crown Jewels

+

James Clavell's Shōgun

+

Zork Zero: The Revenge of Megaboz

-

Infocom Frotz builds Frotz with Emscripten so that Infocom's Z6 games can be played online.

+

Infocom Frotz builds Frotz with Emscripten so that Infocom's multimedia games can be played online.

The game files were obtained from The Obsessively Complete Infocom Catalog, the media files from the IF Archive, and the manuals from the Infocom Documentation Project. They are proprietary documents whose copyright belongs to Activision.

-

Infocom's non-Z6 games should be played with Parchment instead.

+

Infocom's non-multimedia games should be played with Parchment instead.

See the Infocom Frotz Github page for the interpreter's source code. Infocom Frotz is GPL-2.0 licensed.

\ No newline at end of file diff --git a/src/static/lurkinghorror.jpg b/src/static/lurkinghorror.jpg index ac351dc..0c0a62c 100644 Binary files a/src/static/lurkinghorror.jpg and b/src/static/lurkinghorror.jpg differ diff --git a/src/static/sherlock.jpg b/src/static/sherlock.jpg index 397ff3f..a23bdd0 100644 Binary files a/src/static/sherlock.jpg and b/src/static/sherlock.jpg differ