你玩過無執照的台灣遊戲嗎Huang Di: Zhuo Lu Zhi Zhan在Famicom / NES上?如果有的話,您已經知道,如果持有跳躍按鈕,您的角色會在其中飛行。它消除了任何挑戰並打破了遊戲。好吧,問題已經解決,我將解釋我是如何做到的。如果您只想要沒有故事的補丁,請滾動到底部。
如果有不是扮演黃di(整個標題的翻譯為黃色皇帝:朱盧戰役),那你應該。這是系統中絕對最佳無執照的遊戲之一。有很多有趣的無執照的遊戲可用,例如生化危機和最終幻想VIIDemakes,但Huang di是獨一無二的,因為它不是基於另一個遊戲,而是現實生活中的神話主權黃色皇帝。
因此,它具有各種以古代傳奇為基礎的酷炫的套裝和怪物,並得到了一些很棒的音樂的支持。正確播放時,這也是一個非常具有挑戰性的動作平台遊戲 - 您可以在網上看到的各種“ speedruns”非常有趣,因為它們顯然已經播放了錯誤的版本。我第一次寫有關黃di的文章復古遊戲玩家許多年前(該屏幕截圖被篡改以顯示出比正常情況更多的敵人),然後再次鐵桿遊戲101。實際上,我喜歡它所以我決心找到一種按預期播放它的方法。但是首先,一些背景...
早在2012年,當撰寫HG101文章時,就討論了這實際上是一個錯誤還是故意的。鑑於遊戲中的電影院顯示主角在劍上飛來飛去,一位讀者假設也許你是意思是飛。各種模擬器重現了這個問題,直到讀者Ghegs追踪了原始的Famicom墨盒之後不是在真實硬件上發生。那麼簡單,這顯然只是一種模擬器故障,在真實硬件上不會發生。一旦我們擁有循環準確的NES模擬器,它可能會消失,類似於模擬器無法顯示陰影空襲巡邏在SNE上直到我們有希根。
然後,我購買了NES PowerPak Flash彈藥筒,在我的原始NTSC烤麵包機NES上玩遊戲,而沒有這種故障(以60hz!)。黃di正常工作。但是,在2012年至今的某個時候,隨著它們的可用,各種新的映射器集已更新,最終以1.35B的形式達到最終,加上Loopy的額外映射器,以及TheFox的Power Mapper,以及其他一些其他雜項。 (我還認為也許我升級了固件,但是事實並非如此。)無論如何,在各種文件更新之後,遊戲再次破裂。同樣的無限飛行故障。
好吧,簡單的解決方案,對嗎?只需刪除存儲卡並重新安裝較舊的映射器即可。首先是以前的映射器文件夾,因為我總是保留備份,以防萬一出現問題。不好。 NES PowerPak Maker Retrosb仍然可以使用較舊的傳統映射器v1.20,但是在使用URL鏈接進行了播放之後,我設法訪問了他們的v1.00的隱藏檔案。幾個小時後,經過多次擦除和重新安裝和黃色仍然無法正常工作。
您是否曾經有這樣的情況,您認為自己記得某種方式,但是證據證明了這是另一種方式,所以您只是假設自己記得錯了?我開始想也許黃di絕不在PowerPak上工作,我剛剛想像...除了不,我在網上發布有關它的工作,所以記憶是真實的。
花費了數小時來研究這個問題。黃DI使用INES映射器112,其名稱轉換為PowerPak的菜單文件夾的十六進制,並將其命名為Map70.map - 但是,PowerPak的每個映射器發行版都會產生相同的問題。也許是固件有過錯?但是如何,為什麼呢?我更新了嗎?甚至有可能降級墨盒固件,還是可以磚塊?
倒流得到了適當的聯繫,他們解釋說:
“購物車上的實際固件無法更新。您正在使用具有修改的替代ROM。”
解決方案似乎是如此誘人關閉。也許Romhacking或Nesdev上的一位黑客可能有一個主意?早在2016年,NESDEV上的論壇用戶Rainwarrior,實際發布的信息會導致我們找到答案。他發布了某人對NES模擬器FCEUX的評論的摘錄。啟動時,模擬器將RAM初始化為00和FF的字符串。它基本上可以擦拭公羊清潔。有人弄清楚黃di期望公羊在地址0x0100返回一個非零數字。如果數字為零,則默認為調試模式 - 大概是為了使開發人員更容易測試。
事實證明,無限跳躍的故障不是真的小故障;這是一種故意的調試模式,該模式是由偶然觸發的。但是如何在PowerPak上修復它呢?我再次詢問了映射者。
NESDEV用戶DWEDIT詳細解釋了:
“這與映射器根本沒有關係,並且與非初始化的內存完全無關。遊戲從未將任何內容寫入位置0100,而是在讀取字節回去。該值實際上可以是任何東西,因為非初始化的RAM的初始值是基於的。在靜態電荷和環境溫度,記憶的先前值以及如何構建內存的環境因素上重複一個00 00 00 00 00 ff ff ff ff ff ff的模式,該模式以0100的值為00。”
好吧,當時我們需要的只是確保0100的RAM不是零。我最初的希望是遊戲精靈代碼。該設備通過在遊戲中更改變量而運行,PowerPak具有內置的遊戲精靈功能,所以...容易,對嗎?只需要使用多個實用程序之一來弄清代碼。除了不可能的那樣,正如Cyneprepou4uk在RHDN上指出的那樣:“這是0100的RAM地址。GameGenie並未直接修改RAM。仿真器作弊。”
提示更多的研究,而且...絕對正確,遊戲精靈只能寫信給地址8000及以上。沒有辦法使用遊戲精靈來更改最初的RAM值。為此,您需要使用允許直接操作的仿真器。儘管如此,這確實帶來了一個突破。加載NES模擬器並將以下內容作為作弊:
30000100 0001 ADR:0x0100 Val:1
這完全地解決了問題。通過強行將值編寫為1個特定地址的值,請按預期禁用調試模式。那麼,為什麼Powerpak突然停止工作呢?
德威迪特建議:
“ Flash彈藥筒也可能包含以清除內存的代碼。此遊戲已編程以填充0000-00FF,並在啟動時間為0200-07ff填充00字節,但是它不填充Page 0100-01ff。他們跳過了清除該頁面,因為因為他們使用子例程來清除RAM,並且不想在遊戲啟動時從菜單系統中留下剩餘的RAM內容。菜單可能已經清除了RAM,或者留下了不同的內存值。”
好吧,如果墨盒正在重置RAM,並且Game Genie無法訪問RAM,那是否意味著玩遊戲的唯一方法是與上述模擬器作弊代碼一起仿真?值得慶幸的是,Cyneprepou4uk和Dwedit都使用Code響應了使用HEX編輯器來攻擊遊戲的ROM。有趣的是,他們每個人提供了完全不同的解決方案,但它們都起作用:
Cynprepou4uk:
在0x1d391替換為20 a3 f7的8d 0f 01
在0x1f7b3替換00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00F 01 A9 FF 8D 00 01 60 60
說:
在0x1d36e替換A9 00 8D 00 20 8D 01 20用A9 01 8D 00 20 8D 00 01
使用十六進制編輯器來破解清潔的ROM之後,使用上述選項之一,很容易使用Lunarips將黑客ROM與未經編輯的ROM進行比較,並創建IPS補丁以進行合法分發。該補丁甚至可以與黃DI的粉絲翻譯一起使用!
兩個論壇用戶都允許上傳補丁,您現在可以找到這裡。最後,無論您演奏黃DI的手段,它都可以按預期播放。公平地說,一些模擬器為此正確,但不是全部。
如果您無法修補,Dwedit和Cyneprepou4uk還提供了遊戲精靈代碼。考慮到較早的RAM解釋,這些如何工作的技術解釋,太複雜了,無法總結。只需確保輸入所有三個:
Passylaa
aaviglpa
Paviilaz
對我來說,這一切的令人著迷的部分是,即將在40年前(1983年7月)(1983年7月)出現了第一個Famicom / NES硬件變化,我們仍在發現事物。十年前,這款好奇而精彩的無牌遊戲被認為具有故障。事實證明,由於RAM從零開始,它只是一種調試模式。這本身會導致其他有趣的觀點,例如銀河戰士在其最初的RAM中使用RNG- 因此,在模擬器中將RAM重置為零真的在原始硬件上準確,這是不是這樣?
不管這個技術兔子洞的細節如何,請在我借助Cyneprepou4uk和Dwedit。 (哦,有人可以告訴Speedrunners他們在玩錯誤,除非他們使用調試模式玩耍,否則他們所有的時間都是無效的嗎?)