※ [本文转录自 Rockman 看板 #1chWB2AI ]
作者: h1236660 (X GOD/艾克轧德) 看板: Rockman
标题: [闲聊] 洛克人X1鬼故事:你已成为正版的受害者
时间: Sat Aug 3 18:13:13 2024
2个月前在讲解洛克人X2当年为什么没有盗版卡匣以后
有玩家跟我说希望可以讲解X1初版为什会有跳回序关的问题
而且还给我珍贵的初版卡匣让我测试
在一番研究后发现这要比讲解X2那集还复杂
所以也拖了这么久才终于完成
影片版
https://www.youtube.com/watch?v=oL8X4Tb2Mb0
以下图文版
今天要讲的是CAPCOM的黑历史
在距今约30年前的1993年12月17日
电玩界中的新英雄,洛克人X系列诞生
但在这天发售的1代犯了个不可原谅的巨大错误
导致CAPCOM在同月28日
于日本经济新闻第16页刊登全版道歉启事
说明将会把有问题的卡匣回收,并且于29日重新发售
这也算是CAPCOM品管不善的一个黑历史了
https://i.imgur.com/YlqOnUK.jpeg
1993年时网络还没普及到家庭
在日本,玩家还算有日经这个管道
但是在台湾就难有相关资讯
所以如果你确定在当年玩到的1代是正版
但却有各种诡异的情况,其实不是BUG
而是因为你成了正版的受害者
今天就是探讨当年玩家怎么莫名其妙变成“正版的受害者”
先来看看这期影片准备了哪些工具
https://i.imgur.com/ObhminG.jpeg
主要是超任主机和升频器RetroTink
还有用来焊接PCB电路的电烙铁设备
以上3项感谢RM9提供
卡匣方面,稀有的1.0版卡匣为吴胜仁提供
模拟盗版环境的烧录卡卡匣
以及其他已经过修正的对照组卡匣
为11号哥布提供
不过在研究的过程当中
我发现用实体来研究的项目很有限
因为有些防盗惩罚机制可能要用磁盘机才能触发
现在磁盘机也不好全找到
因此本影片主要还是运用模拟器来构建盗版环境
也比较好说明防盗惩罚的各个细项如何表现
说个题外话,卡匣如果读取不到,不要用吹的
因为我们呼出的空气有水气
虽然可以因此吹掉导致接触不良的灰尘
但同时会导致卡匣针脚在之后慢慢腐蚀
要使用“精密电器清洁剂”
或浓度95%以上的无水酒精来清洁
然后使用不会掉屑的布
比如用来擦相机镜头的布来擦拭
在开始说明惩罚机制前,需要先确认版本
本作有分日版1.0、日版1.1
美版1.0、美版1.1和欧版5个版本
如果它本身就有注明那当然不用再分
那如果没有注明怎么办
最方便分辨是否为日版1.0的方法,是“地狱冰车”
要看冰车打死头目以后是否碎掉,抑或继续成型
如果是后者,那就可以确定是日版1.0
其他版本都是碎掉,没有一定要打暴风铁鹰来测试
纯粹是因为打死他以后
可以把自己送下悬崖摔死很有表演感
逆袭战时如果时机正确,还能触发游戏卡当的BUG
这个会修掉估计是为了避免发生打赢头目后
冰车还带人去自杀的现象
因为这样会算玩家输,头目要再打一次
而美版想辨别1.0和1.1非常麻烦
因为地狱冰车已经修掉了
只剩下与狼形西克玛同归于尽时会不会当机这方法
1.0版中艾克斯被打死时,武器仍有攻击判定
因此可以同归于尽,但对话框无法按掉,游戏就此卡死
1.1版艾克斯死亡后,武器判定不复存在
所以无法触发同归于尽
判别欧版则非常简单
就是开头原本亮CAPCOM商标的地方,变成Nintendo
另外还修了2个BUG
一个是能不能跳进工厂舞台的管子里面,欧版跳不进去
其他版本还有个BUG
是有个特殊密码如果直接打会0血从序关开始
但如果先看了演示再打密码
可在没铠甲的全装备状态下开始序关
而欧版已封印这神奇密码
也就是说欧版初版就是修复BUG最完整的版本
所以它不用再细分1.0与1.1版
说完如何分辨版本以后
接下来对1.0版有哪些防盗惩罚进行说明
本作的防盗机制主要是看我们正在玩游戏的环境
有没有用来储存进度的SRAM
你如果是玩RPG游戏
比如太空战士或勇者斗恶龙系列,就需要SRAM来存盘
而且PCB上面还会附带电池来让SRAM保有电力
以免存盘遗失,这样一来即使关掉主机
下次再开时就能够读取上次存的进度继续玩
不用一次玩到底
而洛克人X1到3代由于进度是用密码来记忆
所以不需在PCB上安装SRAM与电池
这是一种节省成本的手段
但是,如果在盗版环境下游玩比如磁盘机
它设计上是让游戏资料储存在磁盘片当中
磁盘片装不了SRAM与电池
所以这两个硬件改成安装在磁盘机内
存盘从存在卡匣里面,变成存在磁盘机里
但我由于没有磁盘机
所以无法确定是否每一个磁盘机都有SRAM
所以如果你当年玩1代虽然是用磁盘机玩
但没有发生防盗惩罚的话
可以推测你用的磁盘机没有SRAM
或者该磁盘机有反制手段
在我个人的FB粉丝团中有玩家跟我提到拦截者
超任博士以及万变蝶龙能够进行反制
但具体上需要能够知道磁盘机的构造
才有办法更进一步分析,所以今天不讨论磁盘机
主题拉回来,由于本作没有SRAM
所以原本保留给SRAM使用的位址,应该要mirrored
也就是映射到游戏ROM的某个区块
所以CAPCOM的工程师对本作设计了一些检查
故意对SRAM的位址写入一些资料,然后进行资料比对
读取看看是不是刚才写入的值,如果是的话
就判定它是可以写入的SRAM
正版的X1并没有SRAM,不可能写入资料
所以能写入的应该不是正版
因此会触发各种与SRAM相关的防盗机制
https://i.imgur.com/ahoE7e8.png
CAPCOM的工程师很淘气
不会直接跟盗版玩家说“你就是在玩盗版”
而是加入各种奇奇怪怪的机制
借此破坏盗版玩家的游戏体验
不过要讲解正版玩家为何也受害的原因比较复杂
先来讲讲如果触发防盗惩罚会发生哪些现象
先说与SRAM无关的的惩罚机制
这个部份是由于位址00没有正确映射到位址40的关系
有些盗版环境会出现这种现象
这边一共整理出3种情况
第1个惩罚是先放著让游戏自己跑演示画面
如果艾克斯跑矿山时没穿铠甲
而且因为铠甲机能无法使用所以导致行动诡异
就可以知道位址00映射到位址40失败
那,在这情况下还继续玩会发生什么事
答案是“只要接关或跳出,铠甲就会被脱光光”
因此也能够进行“回头拿脚铠”这种神奇的行为
虽然最后还是会被脱光,而且就算打有拿到铠甲的密码
也一样会被脱光光,真的很机掰
好不容易打倒头目以后
刚拿到武器时虽然全身图有脚铠,但特武演示时却没有
赤裸裸地讽刺盗版玩家
这点还有一个小分支
就是E罐会不明所以地会在舞台中又再度出现
重复拿算有效
虽然就我测试结果4个E罐都可以正常使用
但反正铠甲都会被强制脱光
光这点就拿不到波动拳了
有其他玩家说在某些情况下E罐也会被消失
但我没有触发到这种现象
不过如果你输入满血并且有波动拳的密码
则能够素身打出波动拳
因为波动拳的使用条件是“血有32格”
与获得条件是分开的
注:波动拳与升龙拳直接获得的密码说明请见此影片
https://www.youtube.com/watch?v=KaXrZxnlcTw
第2点更惨,是接关机制错乱
如果在游玩途中拿到E罐或爱心后挂掉
会从该关起点开始
而且经过头目闸门后也会触发该惩罚
第3点也很严重,舞台本身的1UP没有问题
但若是杂鱼掉出1UP,就算你不吃
接着于该舞台全灭、过关或者跳出
就必定会回到序关
这导致掉落1UP变成一种可怕的诅咒
还有位址00804E,如果它没有正确映射到位址40804E
也会产生1UP诅咒
接下来要讲的才是与SRAM相关的3道防线
它们都是计数器,每一个计数器最高均记录256种数值
当爆炸到128次后便会溢位成负128
并且启动惩罚机制,之后数值如果增加到0
则惩罚解除,形成一个循环
Append对这个项目相当有研究
也成功模拟出有SRAM的环境
还制作了能够直接观测内存数值的脚本
为了方便让大家观察
Append有刻意把超过128的数值改成显示为红色
表示该计数器的相关惩罚机制发动
https://i.imgur.com/7V1qF6b.png
第1道防线最广为人知,因为由于设计上的疏失
正版玩家也被会莫名其妙被搞,它是“爆炸计数器”
如果位址701000被映射成功
那么就会开始计算游玩时所发生的爆炸次数
爆炸主要来自于打败敌人后产生,小型怪1次
红鹤这种体型比较大的是3次
而中头目大都超过10几次,而头目更不用说
在64次左右或更高
当防盗机制触发后,第1个惩罚是
“生命能源掉到地上以后很快就会消失”
好家伙,食物掉地上至少还有3秒钟可以捡
在惩罚机制下竟然只给10分之1秒
这么快就被细菌吃光了是不是
因此在这情况下补E罐会变难
不过用旋转护盾集气的话倒问题不大
附带一提,正常情况下生命能源落地以后
是经过4秒才会消失
第2个惩罚是在矿车上无法正常跳跃
必须往左右走才能离开,不然会被矿车带进无底洞
而且接关时我们会发现,计数器依然保持之前的数值
所以说计数器的资讯一直都在
不会因为接关或某关打完就归零
想要使之归零只能透过重新启动来解决
软重启或硬重启都可以
第3个惩罚是
使用非冲刺的黄豆攻击会反弹黄豆的敌人
将导致跳出舞台,会跳到哪里要看Stage Flag的值
是0时跳回序关,不是0则跳回八大选择
取决于是否使用过冲刺黄豆,一旦使用
Stage Flag就必定变0
这时再用非冲刺黄豆触发反弹,又或者自己跳出
你会发现如果是回序关,铠甲又会被脱光
CAPCOM工程师真的很变态,动不动就把人脱光光
但还好其他武器与道具都还在
因此可以利用强力武器再一次打通序关
可是也要小心自己武器太强
导致提早打败螺旋桨蜂时卡关,比如用旋风龙卷攻击
螺旋桨峰的残骸就会挡在路上
要趁打爆它时就赶快通过
如果跟着高速公路一起掉下去就会卡关
除了打通序关以外,没有增加Stage Flag的方法
在Stage Flag为0的情况下
如果又让黄豆打到会反弹的物体,会再度跳回开头
因此需小心不要打到电光枪砲和螺旋桨蜂的飞弹
而且StageFlag围0时所跳出的密码是坏掉的
重启游戏后输入这个密码将不得其门而入
没有任何反应
除此之外,如果执行此操作的程式码遭到篡改
将每隔128帧,也就是约2.1秒交替一次正常与惩罚状态
接下来,第2道防线是“落下计数器”
如果位址700804被映射成功,便开始计算落下次数
1.0正版也会受到这个惩罚的牵连
一样是计数到128次后启动惩罚,但是影响小很多
因为在1.0正版中,如果艾克斯没有跳跃
而是进行自由落体,那么数值会加1
而若有先跳跃再落下,那么数值减1
如果在原地一直跳,那么就会一直减1到变0为止
所以1.0正版想触发这个惩罚不太容易
想刻意触发的话,可利用机场的移动平台达成
当落下到128次
也就是计数器变成-128时开始第1项惩罚
内容是跳跃高度会被限制1次
而若落下到129次以后到256次前的这个区间
则看当前跳跃次数是偶数还奇数,若是偶数
跳跃高度会受限,但如果是奇数,则跳跃正常
但跳过后计数器都会归零
第2项惩罚是即使碰到骑乘装甲,也无法进行操控
第3项惩罚是发电厂中头目的血条从48变成96
第4项惩罚是在平地上射击时,舞台途中的接关点将失效
在此情况下若挂掉,将传送回该舞台起点
还好这惩罚对于1.0正版影响非常小
而如果盗版只通过一部分的检查
那么除了包括前面的状况以外,增加其他惩罚
第5项惩罚是摸到墙壁时会增加本计数器
到128次后将一直扣血到剩4分之1
也就是会导致喘气的状态
除非滑下来或者再跳1次才会归零
如果盗版完全没通过该检测,将产生最高级惩罚
跳起来不会减1,凡是落下都加1
到了128次以后,将强化第1项惩罚
效果是在小跳与正常跳之间切换,途中不会归零
只能再度跳128次直到计数器变0为止
而且摸到墙壁后最低不会再只扣到4分之1,而是剩1
罚得非常重
除此之外,如果执行此操作的程式码遭到篡改
将在跳跃1次,或者任意武器开火便立即进入惩罚状态
最后一个计数器的惩罚非常可怕
请大家接下来做好心理准备,它是计算受伤次数
在位址700505被映射成功后开始计算
还好正版完全不会发生
而且就算故意用修改将数值拉高
它也会变成每次受伤都减1,直到归零
没有通过本检测的盗版,将在受伤128次后进行随机输入
导致玩家失去游戏控制权
一旦触发这个惩罚,游戏将会在每帧
也就是频繁地每60分之1秒连续发送垃圾指令
游戏将会一直进出状态栏乱搞一通,就像是中邪一样
偶尔会正常,但很快又起乩并且跳出舞台
就算重新进入也会马上发癫
在这种情况下根本没办法好好玩游戏
已经可以视为死当
前面几项惩罚跟这个相比简直是小儿科
只能借由重启来解决
还有一件更加令人大感意外的事情
就是“暴风铁鹰竟然是这个相关防盗措施的守门员”
他不是有搧风与发龙卷两个推人的招式吗
看起来好像重复同一招,令人感到很不明所以
我看过有人骂制作群竟然给暴风铁鹰设计这种废招
其实那个龙卷风大有文章,大大地有文章
它会增加受伤计数器,如果完全吃下
有可能加120这么多
赶紧脱离龙卷风攻击范围就还好
但如果没有直接观看内存数值的方法
还真不知道发生什么事,因为龙卷风根本没有伤害
难以跟受伤计数器联想在一起
对盗版玩家来讲真的是“伤害性不大,侮辱性极强”了
而且还有一点,就是会让绿色飞弹的位置被固定
蓝色与粉红色飞弹不会
影片中我我有把计数器改回正常值
以方便大家观赏绿色飞弹的神奇现象
绿色飞弹被固定以后,艾克斯就再也无法集气
除非让绿色飞弹离远一点才能再度集气
除此之外,如果执行此操作的程式码遭到篡改
将在吃到生命能源后立即进入惩罚状态
最后,还有两项与SRAM有关,但与计数器无关的惩罚
是位址700800被映射成功后立即生效
分别是发电厂中头目放电频率更加凶猛
我就遇到就连续放了12次电,真的很凶
以及草盆放出的蠕虫将会有其中几只打不死
血锁定在128,连波动拳也杀不掉
因为波动拳伤害只有32
而且打到最后是凭空消失,不是因为自己打死的
因为它消失时没有发生爆炸
整理到这里,大约分类出了15项左右的惩罚机制
实在是多得过于夸张,至于吗CAPCOM
他们没有对ROM的资料复制设置防拷
而是朝“恶整盗版玩家”的方向来玩
所以拷贝X1时不会遇到阻碍
就是在盗版环境中玩游戏的人会有很糟糕的游戏体验
然而他们聪明反被聪明误
杜绝盗版的火苗,回头烧到了自己身上
X1在开发时所使用的PCB是SHVC-2P3B-01
负责把位址指向正确ROM的逻辑芯片是74LS139
bsnes与higan模拟器的开发者byuu(或暱称near)
有特别对1.0版另外写程式来反制
所以这两款模拟器在默认状态下不会触发惩罚
原理是本作开发时
当卡匣上被定义为BA4与BA5的针脚均通电时
必须对全部ROM进行“关闭”的动作
以让主机读不到资料而无法映射,而到了正式版
PCB换成了SHVC-2A0N-01与SHVC-2A0N-11
74LS139换成74LS00,因为这是众多游戏通用的规格
工程师们在早期没有发现74LS00逻辑不一样
导致BA4与BA5均通电时,其中一块ROM没有被关闭
导致就算游戏环境没有SRAM也会产生误判
回传了预料之外的资料,很不巧地
这份资料刚好跟它尝试写入的内容一样
所以系统会以为写入成功,便以此判定玩家在玩盗版
结果就是因为这个原因
导致当年玩1.0正版的玩家也会被惩罚,真的很无辜
这显然是厂商的疏失
其他游戏同样使用74LS00的也不少,但他们没事
为什么就你X1会出事
只能说CAPCOM工程师真的是玩过头
没事写什么“映射失败会怎样怎样”
“映射成功会怎样怎样”的复杂判断
惩罚种类还写一大堆
不幸中的大幸是,只有爆炸计数器部分会触发惩罚
落下与受伤计数器的检查都没有出错,基本上不会遇到
在游戏即将发售之时,他们才发现出了这一个天大的包
而且在当年可没有“网络更新”这么方便的事情
ROM写入完资料以后就无法修改,除非再重新生产一批
要不然你这个游戏的命运
就是上断头台卡喀一声后结束了
这可不行,一个新IP出师未捷身先死可太丢面子
SHVC-2A0N-01与SHVC-2A0N-11都有可能是1.0日版
玩家吴胜仁给我的测试的就是后者
日本玩家曾经做过一份测试,1.0未修正版有一个秘密
就是卡匣背面右边会有号码是"35"的钢印
在不拆开卡匣与游玩的情况下,这是最能判断的方法
如果号码有2组就是修正过了
而如果是"20A",则有可能是1.1版
时任CAPCOM社长的辻本宪三信心喊话:
“只要把电阻装上去就可以解决”
实务上他们进行亡羊补牢的方法,除了电阻以外
还有加上跳线与二极管,更有切断一条电路的物理修正
用意在于阻断会触发爆炸计数器方面的映射行为
其实网络上有些区分1.0与1.1日版的方法不对
不是加了物理修正就变成1.1
它其实还是有死亡冰车的1.0,但不会再触发爆炸计数器
关于电路部分,于1994年4月出版的隔月刊杂志
“备份活用技巧第36期”(バックアップ活用テクニック)
的107页
有位热爱电子学的专家丹治佐一对此特别进行讲解
还有画出简单的电路图
https://i.imgur.com/FDwfVWl.jpeg
我跟Append讨论了很久
后来觉得电路图还是再更简单说明比较好
74LS00有4个NAND,也就是“反及闸”
其运作原理,是除了两个进入口都是代表高电位的1
会输出低电位的0以外,其余3种情况都是输出1
ROM如果接收到1,则进行关闭行为
Append透过线上工具模拟了这组电路
去除跟防盗无关的部分
各位如果有兴趣可于这边玩玩看
https://reurl.cc/6d28DO
在1.0版电路中,BA4完全没参与逻辑
因此导致BA4与BA5都通电时
主机会抓到ROM1的资料,便造成误判
而在物理修正时,切断了PCB上其中一条线路
然后加条跳线重新接通,同时加上1k欧姆电阻
接着再加一条跳线把BA4加进逻辑当中
而且为了避免反及闸出口与BA4出口的电流互相冲突
BA4出口这边加上二极管完全阻断从反及闸出来的电流
而反及闸出口这边用电阻减弱BA4出来的电流
让它们都变成单行道,其实改用两个二极管也可以
但是因为二极管比较贵
所以反及闸出口装比较便宜的电阻
BA4出口这边则必需确保反及闸出口的电流完全过不去
在经过这样的修正后,便不会再发生误判
后来的1.1版与欧版则从软件方面进行修正
因此即使没有进行物理修正,也不会发生误判
我在实机测试方面有一个可惜的地方
就是11号哥布给了我5个卡匣来测试
结果都是1.0修正版,没有1.1
所以1.1有没有加上物理修正我无法亲自确认
但还好在网络上有找到欧版照片
正背面都没有物理修正
可以确认欧版的原因是
因为它的CIC防跨区芯片是欧版专用的D413A
而不是日美版通用的D411A
再加上用模拟器玩1.1版时
完全不会触发SRAM相关惩罚
因此可以合理推测1.1版确实进行了软件修正
理论上不用再物理修正
为了更加确认此点
Append有故意对5个版本都附加虚拟SRAM
结果都会因此发生SRAM相关惩罚
而且计数器位址全都一样
所以他们的防盗机制其实都还在
只是没特殊处理的话玩不出来
由此更可推测,就算是在当年玩到1.1磁盘机版本的玩家
如果磁盘机没有反制措施,一样会碰到SRAM相关惩罚
网络上有个都市传说
就是“剪线可以变回有问题的1.0版”
但没有人录成影片过,2017年时RM9有试过
结果在剪断电阻那一条后游戏开不起来
还在K岛上被别人骂智障,后来用电烙铁焊回去了
经过Append研究后,他说要剪二极管那条线才对
我不介意像RM9一样因为做了剪线实验而被骂智障
就我测试结果确实如此
就是要剪被修正过的1.0才能印证,1.1是变不回去的
虽然惩罚的种类这么多
但是Append发现爆炸计数器有漏洞
就是在八大舞台中爆炸128次以后
故意对着可以反弹黄豆的物体发射黄豆以直接跳出
这里有一个重点
就是接下来的武器获得画面不要跳掉
至少要等到艾克斯以变色的传送光束出现才可以跳掉
之后会发现虽然中途跳出舞台
但是头目会被判定已被打死
那如果太快跳掉会怎样,头目会被判定没打死
因此拿不到武器,而若你就算正常打死头目
也一定要等艾克斯以变色的传送光束出现才可以跳掉
Append以“咒杀”来称呼这个现象
以此你就可以从“1.0正版的受害者”摇身一变
成为“错误防盗机制的受益者”
但还有几个注意事项需要遵守,就是不要使出冲刺黄豆
以免舞台旗标变成0导致跳回序关
而且西克玛城头目无法咒杀,那要怎么办
就是多多改用特武来正式过关
不用太害怕特武能源用完,或者说要禁止使用冲刺黄豆
用走的慢慢过
Append影片的完整内容可以看这里
https://www.youtube.com/watch?v=S9XOGRJLZ9Y
至于X1最后的下场
虽然此事件无疑让CAPCOM付出了一笔不小的学费
后来的2与3代也没再玩这种花样
还好当时的玩家还是很给面子
愿意配合回收行动并且等待修正版出来
X1也缔造了X系列SFC版史上最高的全球116万销量
洛克人系列得以再续香火