令人着迷的Infocom目录

2020-09-29 20:13:57

这个网站是我试图收集每个Infocom游戏的每一个版本,包括源代码和编译后的游戏文件。在可能的情况下,我已经在每个包裹上贴上了版本和序列号信息的标签。(Infocom序列号是编译日期的时间戳,这对于重建开发序列非常有用。)。

杰森·斯科特(Jason Scott)在2019年4月开始了这个过程,当时他在GitHub上发布了一大批Infocom源代码。实际上是源代码和编译后的文件。

这对老式文本冒险的粉丝和学者来说是非常令人兴奋的。众所周知,这些材料是私人收藏的,但从来没有以这种形式公开提供过。

杰森的藏品非常棒,但它们都是经过编辑的摘录自一个来源:所谓的Infocom Drive。它们省略了一些已公布的变体、Beta测试等等。我认为把所有Infocom游戏文件放在一个地方是很好的。

尽管如此,让我澄清一下:如果没有杰森·斯科特的努力,这个网站就不会存在。谢谢你,杰森!还要感谢Beaux Hemmer维护补丁收藏。感谢Torbjörn Andersson热情帮助您追踪更多版本和相关信息。当然,也要感谢最初创建这些游戏的实现者。

这些是专有文件。版权归Activision所有。请注意,Activision肯定不再拥有编译此源代码的开发工具或专业知识。很可能他们甚至再也没有源代码了。如果不是私人收藏家把它传来传去,这些材料就会完全丢失。

像Jason一样,我相信这些文档对IF社区的历史价值超过了合法所有者的权利。正如我在4月份写的那样,版权是一种平衡。Activision尚未对此事发表评论。

GitHub存储库将源代码组织为提交序列,显示开发过程。该站点将每个源目录单独打包。

该站点包括从原始游戏版本中收集的游戏文件。这些补丁文件历来都是作为补丁文件收集的。这是一个合法的图形;它允许用户将合法拥有的游戏文件转换为不同的版本,而无需实际分发每个版本的副本。我已经使用这些转换重新创建了所有已知的游戏文件版本。

几个GitHub存储库包含一个常见错误:在较新的提交中,旧的源文件有时不会被删除。例如,Zork 2源代码在R22和R48中包含";rufty.zil";,但该文件在R63中已被删除。GitHub zork2回购无法将其删除。这个网站避免了这个错误。

GitHub的报告省略了在源代码集合中找到的个人电子邮件和个别开发人员的评论。这个网站也是这样做的,在这件事上,我效仿了杰森的例子。即使在事件发生30年后,我也不打算揭露私人通讯。

不过,我已经包含了几个Jason遗漏的文件,主要是游戏包中的Browsie/Feel手稿。

这里收集的游戏文件是Z-code文件,可以用任何Z-code解释器来玩。源包包含zil源代码和相关文件。

我没有试图收集Infocom的口译员。从原始磁盘(针对每个平台)提取解释器二进制文件会相当容易。Infocom的解释器源代码没有保存下来,只有一个例外:他们的TRS-80(Tandy)Coco解释器的汇编源程序。(感谢布莱恩·莫里亚蒂、卡洛斯·卡马乔和约翰·林维尔。)。

Z-code文件有各种版本。Infocom将其称为";zip";(版本3)、";eZip(版本4)、";xzip";(版本5)和";yzip";(版本6)。他们对所有这些文件都使用了";.zip";文件后缀;版本由游戏文件的第一个字节来区分。目前,";.zip";是一种压缩格式,因此我们将文件标记为";.z3";、";.z4";、";.z5";、";.z6";。

此集合还包括从Zork 1的早期版本恢复的几个";.z1";和";.z2";文件。这些文件具有非标准序列号。

(在1995年,Graham Nelson建议将";.z7&34;和";.z8&34;作为支持更大游戏文件的简单修改。INFORM编译器和大多数现代解释器都支持这些版本。请参阅Z-CODE规范。)。

从Z-code文件中提取版本、发行版和序列号非常容易。我使用这个小Python脚本:zcanalyze.py。

将zil源代码编译成游戏文件需要付出更多努力。Infocom';的原始zil编译器已经恢复,但只是一个非常早期的版本(大约在1981年;见下文)。但是,ZILF是一个正在积极开发的开源zil编译器。

尽管这个页面有标题,但它并不是一个完整的集合!我们找到了被找回的东西。特别是,不能保证最新的源代码与最终版本相对应。

所有源包都包含源(.zil)文件。有些还包含不同编译阶段临时文件(.zap、.zabstr)。有些包含编译报告、设计文档或其他相关文件。这只是一个在源档案中找到什么的问题。

版本号并不总是连续的。Infocom倾向于在Beta/Gamma测试结束后或在其他主要开发里程碑时重置版本号序列。序列号日期更可靠,除非它们明显被归零了。

了解到Solid Gold版本(Z5重新发布,内置了无感功能)在开发过程中被贴上了廉价版本的标签,这可能是件很有趣的事情。

带有声音(“神探夏洛克”、“潜伏的恐怖”)和图形(大多数z6游戏)的游戏可能会在源目录中包含媒体文件,也可能不会。游戏文件从不包含媒体。即使这些文件存在于源代码中,也可能不是现代解释器能够理解的形式。有关这些媒体文件的便携版本,请参阅此页面。

一些游戏文件针对Macintosh进行了修改。根据内部说明,修改的是某些物品上的特殊旗帜。这显然是指使用ASCII艺术为描述设置固定宽度的字体。Infocom的Mac解释器需要这一点;它是同类产品中唯一默认使用可变宽度字体显示的。(大多数现代口译员都这样做。)。

SEASTALKER--在声纳镜上设置特殊旗帜,在SUB中设置控制面板,在布莱办公室中设置控制面板。

ZORK2--在魔法井蚀刻(顶部和底部)上设置特殊旗帜,在银行金库的蜜饯昆虫和石块上贴上标签。

附魔--在半透明的迷宫地图上设置特殊的旗帜,在通往小溪的小路上签名,在烟花上为卷轴画上记号。

暂停--在所有三个监视器上设置特殊标志:1)天气,2)水培3)过境。

异教徒--为象形文字设置的特殊旗帜:楼梯底部,圣甲虫,死亡之书,死亡之书,横梁,向前小屋中的卷轴,金字塔顶部的开口,石方,砖,凹板,通道的西端,北前厅,南前厅,尼弗提室,伊希斯,塞尔基斯,尼斯,狭窄的走廊,立方体房间,立方体南面,银色房间,金色房间,房间里的骷髅。

有时会发现Z代码游戏文件的末尾填充了零或垃圾数据。这不会影响游戏行为。我通常忽略了这些变化。我也忽略了游戏文件字节1中的变体;这些变体代表不同平台的解释器变体,而不是游戏差异。

补丁存档包含几个序列号为空或毫无意义的游戏文件。这些始终是对其他游戏文件的微小修改,通常仅更改序列号(和校验和)。我们假设这些是由用户修改的版本。我无论如何都会收录它们,因为它们的日期是未知的;它们可能与最初发布的版本是同时代的。

补丁存档还包括一组游戏文件,这些文件已被修改以绕过Infocom的感觉版权保护。我省略了这些,因为它们绝对要晚于Infocom(它们大约在1999年发布)。当然,在任何情况下,感觉数据都是存档良好的。

Zork/Dunjo的大型机版本,由麻省理工学院在1977至1979年间创建。这个包与本站点上的其他包不同,它是用MDL编写的。

Zork-MDL推出已经有一段时间了。(它于2003年发布在鲍勃·苏普尼克的网站上,或许更早。通往Fortran和C的端口也很容易找到。)。我把它写在这里是因为,嗯,它是佐克。

来源的四个版本,根据美国新闻和地下城报告的日期标注(参见dung.m;;注意,1979年的版本显示的日期不一致)。1981年的版本说不再受支持,并让玩家参考Infocom的商业版本。

已经从麻省理工学院的磁带中恢复了几个可运行的版本。这些都可以在ITS项目中找到。我没有镜像可执行文件,因为它们只在ITS内可执行(在模拟的PDP-10上运行)。有关找到的Zork版本列表,请参阅此帖子。有关设置ITS的信息,请访问项目页面;或访问telnet its.pdp10.se 10003在线试用。

您可以在线试用ITS环境!远程登录到its.pdp10.se,端口10003(telnet its.pdp10.se 10003)。当显示“";Connected...";”时,按Ctrl-Z。然后键入:login your name。(任何名称都可以。)。然后键入:zork以播放。:Coment也是可用的;这是Crowther的原始版本。您也可以尝试:Games;Adv350和:Games;Adv448。

值得注意的是,1977-78年的版本在自我介绍时说:欢迎来到地下城;1979-81年的版本说欢迎来到佐克。当然,在游戏中的许多地方,地下城的版本仍然会提到佐克。

Infocom的zil编译器的早期版本,用MDL编写。这些文件的日期不晚于1981年初;大多数是1979-1980年。该版本包括编译器(Zilch)和汇编器(ZAP)两个阶段。

此源文件最初由Lars Brinkhoff存档在https://github.com/PDP-10/its-vault(twenex/zork目录)。另请参阅https://github.com/PDP-10/zil.上的独立存储库。

这些文档是从互联网档案馆、frobnitz.co.uk和其他来源收集的。请注意,.rno是产生式,.fwf是Scribe,这两种古老的文档格式化标记语言。

Doc--Infocom文档,提供zil语言的快速摘要;未注明日期。Zil-Course.fwf--关于使用zil编写游戏的Infocom文档,由Marc Blank于1982年10月编写。

第一个是用PDP-10的MIDAS汇编语言编写的。这个版本的日期是1982年1月7日。它是在minizork-r2源目录中找到的(见下文)。

第二个是用C写的,日期是1988年3月。评论说,Zinn Computer Company为Infocom提供服务,暗示这项工作是外包的。该目录包括.o和可执行二进制文件,大概在Sun体系结构中(该目录标记为";sun";)。从这一历史回购中。(还包括一些其他实用程序,包括zplit、zglue、zSpix和zsymtest。这些似乎与为特定平台将游戏文件打包到磁盘有关。)。

第三个更早的版本可以在上面的zil源代码库中找到。这是MDL代码,日期为1980年1月18日和#34;。我不确定它是否可以独立于zil工具集的其余部分运行。

ZorkI Release 2游戏文件是从自引导、受复制保护的TRS-80Model I磁盘提取的。该磁盘本身不是原件,也没有标签或包装,但它似乎是早期的个人软件版本。

挂起的-r5-sXXXXXX.z3--与r5 s830222的区别仅在于消除的序列号。已挂起-r5-s830222.z3已挂起-r7-s830419.z3已挂起-r8-s830521.z3已挂起-alt-r8-s840521.z3--这似乎与Mac版本仅在文本编码错误方面有所不同:";机构的呼吸变得不平稳...";这可能是磁盘读取错误的结果。

我们有两个标记为R22的游戏文件,Mac和Non-Mac。它们似乎都不符合最新的来源。(例如:如果您键入help,源代码会提到InvisiClues,但没有游戏文件包含此行。)。由于缺乏更好的信息,我已经将当前的来源贴上了异教徒的标签。

来自修补程序存档的Magcerer-beta-r67-s000000.z3;序列号已被删除,但没有更正校验和。因此,$VERIFY命令失败。

Pitchhiker-beta1-r108-s840809.z3-测试版,标签为";beta1.zip";。Pitchhiker-beta2-r119-s840822.z3-测试版,标签为";beta2.zip";。Hitchhiker-r47-s840914.z3搭便车-r56-s841221.z3搭便车-r42-s850323.z3--R56的黑客攻击,序列号和版本(42,当然是PAL)都已更改。这是一个罕见的可约会用户攻击的例子。

我们有两个版本的R18游戏文件。除了内部序列号(189或190)之外,它们完全相同,如果您键入$VERIFY 1949,则会显示该序列号。

许多带有平台名称的游戏文件变体(";Tandy";,";Coco";等)。这无疑是由于使声纳显示器(状态窗口)在不同屏幕尺寸上工作的困难。

拼写破译器-R63-sXXXXXX.z3-似乎基于R63 s850916,序列号被删除,但数据从地址0x1CF00开始有所不同。该文件似乎未正确运行。

请注意,在r79和后来的版本之间删除了许多源文件,因此GitHub回购错误特别明显。

Wishbringer-invclues-r23.zip wishbringer-r69.zip wishbringer-invclues-rearlier.zip--InvisiClues发布的早期阶段。它包含提示文本(如hints.zil),但在其他方面几乎与r69源文件相同。

Wishbringer-r68-s850501.z3 wishbringer-r69-s850920.z3 wishbringer-rX165-s880609.z3--发行号为32933(设置了高位的165.。在现代解释器中,这是由于内存错误而失败的。它可能是编译失败或中间编译阶段。

补丁存档中的moonmist-beta-r65-sXXXXXX.z3--标签为";beta";。较高的版本号支持这一假设。然而,它的序列号被抹去了,而且它在运行时失败得太严重了,不可能成为一个可信的测试版。

补丁存档包含另外两个hack,它们与r59 s000001完全相同,除了Release和Serial之外;我省略了这两个。

一个难题,华生。此时将显示四个源目录。基本目录和-声音目录只有几行zil不同。Noound目录用nosound.zil代替gamesound.zil。Ss目录与其他目录有很大的不同;头时间戳暗示它是早期开发版本。值得一提的是,随附的版本说明上写着:

声音版本是发行版。NOSOUND版本目前不是发布版本,但包含声音版本中的Bob Bates更新(当然没有声音代码)。

许多阿尔法和贝塔游戏文件。还有两个演示版本,可以考虑";Mini-Zork Zero";。

注意Z5的早期版本,其版本号(46)是无序的。我们有两个似乎与此版本匹配的源目录。最初,这是一个包含";.zil";和";.beta&34;文件的源目录;";.beta";文件是较早的,因此我将它们移到了单独的beta目录。

Torbjörn Andersson报告说,当你离开旋转木马房间时,这个游戏文件在现代翻译器上失败了。

采样器似乎经历了几种游戏组合。R26-R55包含佐克1号、行星坠落、异教徒和见证者的样本。R97包含Zork、Trinity和LGOP;但是我们找到了一个并行的R8,它只包含Zork和Trinity,外加添加Ballyhoo的部分工作。来自R8来源的评论:

此目录用于NSAMPLER内容,其中对LGOP的所有引用都已删除。XM4.*文件是一个精简的Ballyhoo,本可以插入到XSAMPLER中来代替LGOP,但没有。这些文件作为单独的小游戏独立存在,如果使用过(当地狱结冰时)需要集成到XSAMPLER中。

还有一个文件夹采样器-三位一体,它似乎是三位一体的非常部分的拆卸(或积聚)。

斯图·加利(Stu Gley)的一款未完成和未发布的游戏。奇怪的是,最初在此目录中找到的游戏文件";spy.zip";根本不是Checkpoint,而是Journey的早期版本。

托马斯·博克未完成的游戏。博克在大学之前曾在Infocom工作过一段时间(参见这个论坛帖子)。忧郁症是他在自己的时间里从事的一个有趣的项目。

源包是Bok';的工作目录,包含几个与忧郁症无关的源代码片段。其中一些(boot.zil、Circuit it.zil、maintenance.zil)来自一款不完整的科幻游戏,名为“搜索救援”(Search';n Rescue&34;)。其他的是来自Infocom游戏(Zork,LGOP等)的源文件,在Bok尝试zil时修改过。

这是Infocom在其历史后期的1987年左右开发的新解析器。他们早期的游戏基于为Zork1开发的ZIL解析器,然后按照进化顺序从一个游戏复制到另一个游戏。

ZilLib是下一代解析器的一次尝试,以配合下一代(Z6)Z机器。请看这篇来自Infocom‘s 1989时事通讯的文章。