Fw: [閒聊] 洛克人X1鬼故事:你已成為正版的受害者
※ [本文轉錄自 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萬銷量
洛克人系列得以再續香火
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.9.235 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Rockman/M.1722680002.A.292.html
留言