用稀奇古怪的密码来存档,是老游戏最“丧心病狂”的一件事

之前在《大力水手》的回顾文章中,曾提到关于游戏存档的描述。

在电池记忆方法诞生前,FC游戏的进度存档主要依靠记录密码完成。有很多小伙伴看到这里眼睛就放了光,纷纷表示对密码记录的原理很感兴趣,希望进一步了解详情。像《勇者斗恶龙2》这样复杂的RPG,如何用52个平假名就能记录游戏进度。

既然你诚心诚意地问了,我就大发慈悲地告诉你,这些古老的游戏,究竟是如何利用密码存档的。看完这篇文章,你不仅能大呼长知识,还能自己动手改出各种稀奇古怪的游戏进度。

《特种部队》的密码就很丧心病狂《特种部队》的密码就很丧心病狂


没有电池的日子里·群魔乱舞

早期的电子游戏非常简陋,容量极低,流程也很短。在FC诞生后最初的几年里,游戏不仅不能记录,甚至都没有通关的概念。那时的玩家也几乎没有记录进度的需求,因为很多游戏只要打个两三关就开始不断重复循环(如《大金刚》),更有甚者永远只有一关(如《超时空要塞》)。对于玩家而言,唯一需要记录的,可能就只有自己的高分了。可又不是人人都可以当高桥名人,这点需求只能说微不足道。

高分榜可能是玩家想要记录的唯一动力高分榜可能是玩家想要记录的唯一动力

后来随着《越野机车》、《淘金者》这样自带编辑器的游戏出现,玩家第一次有了想要记录下自己劳动成果的冲动。任天堂给这些辛辛苦苦建造关卡的玩家所准备的,是一个像录音机一样的塑料盒子。只要将磁带放进去,就能记录和读取自己的关卡。

这个听上去似乎很酷,但实际应用起来并不美好。一个小小的关卡,可能要花去大半个小时来记录或读取,有这个时间,玩家差不多可以再搭一个关卡了。由于使用极其不便,使得任天堂根本没有勇气把这个设备推向海外。这也造成只有日本玩家知道这个原本用来记录Basic程序的“录音机”。

这套设备小霸王也有山寨哦,真是其乐无穷啦这套设备小霸王也有山寨哦,真是其乐无穷啦

1986年的时候,记录进度这件事对FC玩家来说,突然间出现了曙光。任天堂隆重推出了FC专用的磁碟机。除了容量大增、音效更佳、可反复擦写等卖点外,能够便捷地记录游戏进度,成了磁碟机的杀手锏,一举击中玩家的痛点。

不过磁碟机最终没能成为赢家,在卡带突破容量限制的技术瓶颈之后,原本磁碟机的卖点全部成了劣势。磁碟记录这种方式也退出了竞争舞台。

昙花一现的FC磁碟机,曾让玩家体会到存档的好处昙花一现的FC磁碟机,曾让玩家体会到存档的好处

就在磁碟机上市的当年,Enix发卖了改变日本玩家游戏习惯的产品——《勇者斗恶龙》,从此宣告JRPG这一独特游戏类型的正式诞生。DQ的热卖,也让玩家逐渐培养起一种既古老又陌生的记录方式——密码续关。

FC玩家最早接触游戏密码,应该从UGC大作《淘金者锦标赛》算起。DQ的出现让这一方式深入人心。从此抄密码成了FC玩家的必备功课。游戏玩多了,谁家要是没个几本写满字母、数字和假名的小本本,都不好意思跟别人说自己是高玩。

在其后的很长一段时间里,抄密码都是FC游戏最主流的保存进度方式。即便在1987年诞生了使用电池记录的FC卡带,大多数游戏厂商仍然基于成本的考虑,选择使用密码记录。

对于动作游戏而言,所要记录的内容主要是当前关卡等简单信息,完全没必要为此给卡带多加一块SRAM和电池,所以用密码接关可称得上相当经济的做法。

连一块纽扣电池都不舍得,还说一切为了玩家?连一块纽扣电池都不舍得,还说一切为了玩家?

到了FC的中后期,密码记录的样式已经是群魔乱舞,各式各样奇形怪状的密码形式粉墨登场。

起初大家都很规矩,比如《合金装备》(《燃烧战车》),老老实实打几个英文字母就行了,也不分大小写,清晰好认。

小岛秀夫:别看我,这垃圾版本不是我做的小岛秀夫:别看我,这垃圾版本不是我做的

但也有《勇者斗恶龙》这种打着民族主义旗号的坏家伙,一下子把抄密码的难度提了一个级别。FC的日文字体本来就模糊不清,这下要在密密麻麻几十个假名当中,准确无误地区分开清浊音,还要排除相似字的干扰,其实并不是一件轻松地事情。一旦抄错一个密码,就前功尽弃。

DQ1只要记20个假名就行了DQ1只要记20个假名就行了

后来各种奇葩密码就出现了。

《忍者龙剑传3黄泉的方舟》,忍龙系列从这一代开始可以密码接关。一共才那么几关,还要用密码来续。你倒是给个方便记的符号啊!这下好了,虽说只有四个框,可每个符号都像出自专业画师之手,这叫我怎么画呀?最后只能记成人头、药瓶、飞镖之类的文字。

大哥,画得太专业,真的抄不下来啊大哥,画得太专业,真的抄不下来啊

《洛克人》从二代开始出现密码的游戏。很好,六阶行列式都出来了。你觉得玩FC的小学生能搞得懂线性代数吗?最可气的是,人家密码抄个几行字就行了,卡婊还要你自己画格子。

《恐龙战队》,虽然只有三个符号,但你真的不是来搞笑的吗?站姿、跪资、射击姿势,这倒好,美术资源是不浪费了,只是你让我怎么跟别人形容这种密码。

勇者斗恶龙II·恶趣味的雄帝

在众多使用密码接关的游戏里,最终选择以《勇者斗恶龙2恶灵的众神》为例,简单介绍密码记录的原理。为了照顾不同知识背景的读者,我会尽量讲得简单一点,不造成障碍。

为了消除一些人的疑惑,先来说说为什么选择DQ2吧,主要基于两点考虑:

首先,DQ2是密码时代最后的RPG大作,也是FC上最复杂的密码之一。作为角色扮演游戏,DQ2需要记录的内容远非普通动作游戏可比,必须涵盖角色状态、游戏进度、物品栏、出生点等诸多内容。

需要记录的数据多,每次记录时,玩家就不得不手抄多达52个平假名的密码,给幼小的心灵带来极大的伤害。但正因为这套密码够复杂,如果了解其工作原理,其他动作游戏的密码在我们看来就是小儿科了。

在DQ2发售的同年,第一款使用电池记录的FC游戏《森田将棋》就问世了,从此这一存档方法迅速成为角色扮演游戏的主流。年底推出的《最终幻想》甚至将可随时记录作为游戏的卖点。而DQ系列也在次年的第三作(又是神奇的三代)上彻底倒向电池记录。从此“复活的咒文”彻底从DQ系列中清扫出门。

玩DQ2,学平假名玩DQ2,学平假名

第二个原因是DQ2的密码分析是网上最容易找到的密码资料之一。拜该作两百万多的销量所赐,日本有许多变态玩家,整天钻研破解本作的密码。能够随手引用别人的成果,也省去了不少麻烦。

在《勇者斗恶龙2》中,被称为“复活的咒文”的接关密码,每次都由国王告知(有些地方是神父),后期也可以获得随时可以查看密码的道具,但读取后会重置到上一个出生点。

要记录,找国王,这是洛特三部曲的特征,之后就是找神父老爷啦要记录,找国王,这是洛特三部曲的特征,之后就是找神父老爷啦

在当时的日本玩家之间,流传着一条非常著名的“复活咒文”。一旦输入这条密码,主角罗雷西亚王子的等级将直接变为48,手里有两万多金币,但此刻的游戏进度会退到初期,第二个角色杀马特利亚王子还躺在床上哼哼着呢。这等于让玩家拿着快练满的角色,在新手村重生。

这次就以这条DQ玩家皆知的密码,来讲讲这套记录系统的玄妙。先来看看这条日本玩家耳熟能详的密码究竟长什么模样——

ゆうて いみや おうきむ
こうほ りいゆ うじとり
やまあ きらぺ ぺぺぺぺ
ぺぺぺ ぺぺぺ ぺぺぺぺ
ぺぺぺ ぺぺぺ ぺぺぺぺ ぺぺ


先不急着解析密码,说说这条密码背后的故事。原来在这条密码中,《勇者斗恶龙》系列的制作人堀井雄二还埋了个小彩蛋。

密码头四个假名ゆうてい,写成汉字就是“雄帝”,这其实指的就是堀井雄二本人。当年《勇者斗恶龙》的营销策略很独特,不在游戏杂志做广告,而是跑到发行量更大的漫画杂志《少年JUMP》,在上面开了个专栏起名叫FC神拳,“雄帝”就是堀井雄二在杂志上的笔名。

接下去四个假名みやおう,意思是“宫王”,指的是专栏里的另一人宫冈宽。这人还是DQ“洛特三部曲”的迷宫设计者,DQ里那几个恶心的无限迷宫就是他搞出来的,因此在DQ2发售后,他自称是“现在日本最遭恨的人”。

再往后四个假名きむこう,“木皇”,就是专栏三人组的最后一人木村初。DQ2里那个披在身上就能从塔顶跳下的“风之斗篷”,就是这哥们想出来的。

FC神拳是DQ最重要的宣传阵地,封面三人便是“宫王”、“雄帝”和“木皇”FC神拳是DQ最重要的宣传阵地,封面三人便是“宫王”、“雄帝”和“木皇”

后面这个ほりいゆうじ,其实是堀井雄二的平假名写法。话说你这个秃头很自恋啊,名字要出现两遍。

紧跟在后头的とりやまあきら,那可是大名鼎鼎DQ人设——写成汉字就是鸟山明

嗯,鸟山明是谁?孩子,赶紧回家看熊二戏耍光头强,读怀旧文章很危险,会被龟派气功轰成渣的。

真的不是天下第一武道会真的不是天下第一武道会

最后这几个鬼畜般的ぺ,读成“呸”,表示对堀井雄二不务正业的鄙视。(大误)

最有意思的是,这个串起主创人员名字的密码,居然还能读取成功,难免让人以为是程序员故意留了一个破绽。真的是这样吗?接下去就要拿这条密码来剖析最核心的部分。


复活的咒文·二进制领域

言归正传,马上就把这个充满堀井雄二恶趣味的密码分拆开来,看看它是怎么工作的。为了方便起见,姑且把这段密码称为“恶搞密码"。

在解析前,首先普及个基础概念——二进制数字。我们平时数数用的是十进制,逢十进位。二进制顾名思义,逢二进位。因此二进制只有0和1两个数字,超过1就要向上进一位。这是计算机科学的基础,大家知道这个概念就行。

放在今天的话题中,就是你输入密码时的那一堆平假名,但是在FC看来,其实是一堆0和1。那么平假名是怎么变为0和1的呢?我们一步步看它怎么变化——


二进制平假名

先来看看这张表——

表一:咒文文字/十进制/二进制对应表表一:咒文文字/十进制/二进制对应表

在DQ2中,一共使用了64个不同的平假名作为密码。每个假名对应0到63中的一个数字,然后转换为相应的二进制数字,每个二进制数字都记录六位。记住,之后你所抄下的平假名密码,都会以这张表为依据,转换为只有0和1的二进制数字。

有人要问了,平假名不止64个啊。这话没错,但因为六位二进制数字最多只能记64个符号,如果再往上进位到七位就有128个数字了,这样确实可以用来对应所有平假名,却会空出更多没用的位置。毕竟FC时代容量有限,一个字节也不能浪费啊。这也是为什么DQ2的密码里,没有ん和を的原因,不够用了嘛。


减数

以为输进去的52个平假名,就是照着表一直接转换成相应的二进制数字了?

图样图森破。就这样还不是让人分分钟破解啊,程序员可没那么偷懒。除了第一个假名以外,剩下的密码还要再经过一轮变化,才能变成FC读取到的模样。

我们把目光聚焦到恶搞密码的第一个平假名上。

第一个平假名“ゆ”,在表一中对应的编号是36,转换成二进制就是100100,这也就是FC处理的二进制密码的头六位。同时这个假名还有另一个工作——作为因子,参与后面的编码工作。

请看这张表——

表二:咒文首字减数表表二:咒文首字减数表

同样是五十音图,却和表一不一样,关键就在于颜色。在表中,不同颜色表示转换成不同的减数。

绿色表示1

蓝色表示2

红色表示3

黄色表示4

在这张表格中,查找游戏密码的第一个平假名,看看它是什么颜色的,就能得到被称为“减数”的数字。

而在我们使用的恶搞密码中,第一个平假名“ゆ”处在红色的这一列里,因此它所代表的减数就是3。

平假名解码

接下去就能进行后面密码的解码工作了。密码首字后面的每一个平假名,都要根据表一,找到对应的编号,再与前一个平假名的编号和减数一起运算,得到一个真正的编码。经过一系列公式运算,前面那条经典的DQ2密码,可以换算为一个超长的312位的二进制数字,这才是FC认得出的真实密码。


转换内容

接下去就是把这些0和1,转换成游戏对应的内容。

请看下表——

表三:咒文数据表表三:咒文数据表

表三中的每一个格子,都代表312位二进制数字中的一位。从表中可以清楚地看到,不同格子的组合对应着不同的记录内容。

而我们所选用的这条恶搞密码,转换成二进制数字,填到表里就是下面这样的——

恶搞密码的二进制记录恶搞密码的二进制记录

还是不太清楚这些0和1代表的意思,那下面我就拿其中几个典型数据做例子,来说说这些0和1的处理方法。

出生点和道具

编号5~7这三位(第一行三个淡绿色的格子),记录的是玩家的出生点。

三位二进制数字最多能记录8个地点(2的3次方)。而DQ2中共有7个出生点,其实还空了一个位置。

在我们的密码中,这三位的编码是001,对应的十进制数字也是1,从下面的出生点表可知,该密码对应的出生点,是还躺着诈病王子的杀马特利亚城。

出生点表出生点表

此外道具的记录方式也跟出生点类似,不过道具种类多达63种,因此需要用高达六位的二进制数字来记录(2的6次方)。

道具表,黑色是可能产生装备错误的道具道具表,黑色是可能产生装备错误的道具

所以说,FC游戏的制作者其实是螺丝壳里做道场,出生点、道具的数量都受到严格限制,哪像现在的手游数值策划,Excel一拉,不管多长的字段都能读进去。


玩家名字

在DQ系列中,主角的名字是可以自己定义的,通常能够记录最多四个假名。

从表三可以发现,玩家名字对应的格子并不是连续的。第一个假名被记录在编号26~31的位置,第三个字记录在8~13,第四个字记录在41~46。最诡异的是第二个假名,一共6位,被分别放在了14、15、24、25、40、47六个非连续位置上。

请注意,玩家名字中的平假名,使用的是和密码平假名不同的对应表。否则叫工藤新一小朋友就不能玩DQ啦,因为他的名字しんいち里的ん在表一中找不到。

玩家名字用的是下面这张表——

玩家名字假名编号对应表玩家名字假名编号对应表

表示浊音和半浊音的点点和圈圈,都单独编码,所以会占一个字的位置。如果你名字里带浊音或半浊音,就会比别人白白少掉一个字,也挺痛苦的。

再来看我们的恶搞密码,其对应的名字记录经过转换,又变成了四个十进制数字44、59、44、29,再从上表中找到对应的平假名——もょもと,这是个连日本人都发不好的奇怪读音,中文可以读成“喵摩托”。搞笑的是,后来日本玩家索性把它当成了DQ2主角的本名。

简单来说,玩家名字的密码,就是把假名变成数字,再变回假名的过程。

罗雷西亚王子:什么,竟有此事!罗雷西亚王子:什么,竟有此事!

剧情关键事件

关键事件通俗来说就是游戏的进度节点。只有完成了关键事件,才能触发后面的剧情。从编号50的格子开始,就是用来记录一连串的关键事件状态。

比如取得船的事件就存放在编号52的位置上。事件的记录只占一位,用两个数字就能表示事件的状态,0代表未完成,1代表已经过了这段剧情。

52号格子的关键事件过后就可以开船出航啦52号格子的关键事件过后就可以开船出航啦

金币和经验值

金币和经验值是比较大的数字,所以占用的格子比较长。金币用了16位,而主角的经验值用了整整20位……

用大家能听的懂的话来说,你在游戏里能拿到的金币,最多就是2的16次方,那是多少呢?

因为计算机是从0开始数的,所以你能看到的金币数目最多就是

2^16-1 = 65535

如果你是《勇者斗恶龙》的老玩家,一定会对这个数字特别眼熟,现在这个数字已经成了某些宅向论坛的口头语……

+65535+65535


被篡改的历史·走火入魔

让我们来稍微总结一下上面的内容,让一头雾水的文科生喘一口气,用通俗简单的语言,从玩家的角度,再解释一遍DQ2密码记录的原理。

你抄的鬼画符一样的密码,每一个字都对应一个数字。这些数字再经过一套扭曲的公式,转换成另一个种只有0和1的数字。这一串0和1里,不同的位置组合,都对应一个需要记录的游戏内容。最后把0和1变为相应的游戏内容。

如果你记错一个假名,就有可能造成一连串的编码错误,从而找不到相对应的数据,这就是抄错密码就人生暗淡的背后原理。

“咒文错误”——看到这排字就会吓得一身冷汗“咒文错误”——看到这排字就会吓得一身冷汗

了解了原理,有些玩家肯定按耐不住了,迫不及待想要修改游戏。1996年的《电子游戏软件》上,就刊登过一条只有主角一人,却可以上高原的密码。然而以DQ2的变态难度来说,这无异于是自杀。

那怎么才能修改自己的记录呢?很简单,逆运算啊。

先根据表格设置好你想要的数值,然后一步步倒推计算,就能得到一套属于自己的密码。当然,这个运算量不小,而且非常容易出错。每次修改,都必须重新演算一遍。这时互联网的优势就体现出来了。网上有热心的程序员,帮大家做了密码生成器。只要在软件上勾选想要的内容,就能迅速生成相应的密码,超简单超傻瓜。

好孩子不要过分解读这段密码哟好孩子不要过分解读这段密码哟

除了《勇者斗恶龙2》,像《银河战士》、《科乐美世界》都有相应的密码生成器,有兴趣的朋友可以自己去找找看。

大多数动作游戏的密码则更短,更简单,但万变不离其宗。只是因为实在太简单了,也就没必要做生成器,直接用别人的密码就行啦。

给大家留道作业,算算《洛克人5》的密码转换成二进制数字会有多少位呢?给大家留道作业,算算《洛克人5》的密码转换成二进制数字会有多少位呢?

好了,关于DQ2的密码原理就先说到这里。虽然本文只是浅谈一番,但应该够在小伙伴面前装一阵子了。当看见别人正在玩《天使之翼》,你就可以神兜兜地走到他的面前,笑嘻嘻地问他——


“你知道密码有几种写法吗?”


“滚!模拟器用即时存档就够了。”


这是什么?这是什么?

本文部分内容来源于日站:http://www.geocities.co.jp


展开全文

1 条评论

发布
取消
返回顶部
App内打开