转贴
【新手入門】不求人!DIY 自己找尋 NDS 遊戲金手指密碼_1 (基本修改)
很多人都喜歡使用金手指密碼,無論是為了令遊戲難度降低也好,
或是希望在某些遊戲中的收集品全部齊全也好,
或是希望能出現一些遊戲中原本不會出現的特殊情況也好(例如 MoonJump),
總之就是想透過金手指來獲得一些樂趣,雖則有朋友認為玩遊戲應該用實力,
不該借助作弊碼的幫助,有些更說使用金手指會令遊戲性降低,怎樣也好,對於應否使用金手指,
並不是本文的主旨,總之喜歡的就使用,不喜歡的不使用就可以,隨各位喜好。
好了!言歸正傳,開始運用工具來找尋金手指密碼 (作弊碼)。
使用工具:1)NDS 模擬器 (例如 DeSmuME/ iDeaS / No$gba)
2)HasteDS (一個用作搜尋作弊碼的工具)
模擬器方面由於 DeSmuME 0.6.0 及 No$gba 2.4a 現時對遊戲的支援度較高,
建議使用此兩種模擬器來找尋。
HasteDS 原本是一個日文介面的程序,本人已把其繁體中文化,各位可以於本帖附件下載。
【 找 尋 步 驟 】
1.先執行模擬器,並載入遊戲,然後才執行 HasteDS。
(由於 HasteDS 與模擬器的連繫原理是搜尋記憶體中的字串/數據,如果未有載入遊戲,
視乎使用的模擬器,有可能連繫不到,或連繫後的記憶體位址是錯誤的。)
[attach]31448[/attach]
2.HasteDS 的搜尋模式,可分為『輸入值』及『與舊值作比較』,『輸入值』是在遊戲中,
直接看到的數字,『與舊值作比較』通常用於能源棒或其他不是數字顯示的變量。
本例子中,在遊戲畫面見到時間是 1800,在 HasteDS 中參考過「輸入參數格式」後,
輸入 M1800,就會在下面的列表出現很多合乎搜尋條件之位址,但實在太多,不知哪個才是,
回到遊戲中待時間被減去一些後,依照看到的數字再次輸入搜尋,合乎條件的記錄便會減少,
幾次之後,通常就會只剩下 1 筆或幾筆記錄,就可以進行作弊碼測試。
[attach]31449[/attach]
3.在列表中對作弊碼按滑鼠一下,HasteDS 的記憶體檢視區會立即跳到該位址行,
我們可以對其修改,使用 [ 修改寫入記憶體 ] 功能寫入位址值及資料值就可以進行修改,
然後回到遊戲中,看看數字是否成為自己修改的那樣;另一個測試方法是把列表中的作弊碼,
用滑鼠雙按,就會自動把作弊碼添加到左面的【 檢 查 作 弊 碼 】區,
然後把「自動鎖定作弊碼」功能選取,回到遊戲看看是否數字被鎖定不再減少。
[attach]31450[/attach]
4.好了!作弊碼找到了,相信很多朋友都希望能在 DS 主機上使用而不是只用於模擬器,
那就要進行下面的格式轉換,由於現在找到的是 Raw Code,對於 Raw Code 的意義,
網上有很多說明,大家只要明白 Raw Code 就是最原始狀態的碼就成了,既然是最原始,
就是未有加密,未有加入不同金手指功能所支援的判斷碼,因此 Raw Code 只要稍加轉換,
就能用於所有支援金手指功能的(甚至不支援金手指的)燒錄卡上,由於 R4 燒錄卡現已支援,
現在就簡單一點以 R4 作為範例說明。 (轉為 R4 支援的 Action Replay DS 格式金手指密碼)
剛才找到的金手指密碼位址是 0x0211BCEE ,0x 是十六進位的意思,如果數值中含有英文字,
當然一看就明白,如果全是數字,又沒特別註明的話,會很容易混淆的,所以最好用 0x 註明,
剛才鎖定的數字是 0x0302 ,在記憶體檢視區看到的不是 02 03 麼?為何會交換了位置?
由於變量值的存放是由最低位開始、最高位在最後面的,例如 0x01020304 存放在檔案、
或在記憶體時,位置就會是 04 03 02 01,大家可以用 Windows 自帶的【小算盤】,
以 16 進位的模式下,輸入 0302,然後切換為 10 進位的話,就會見到該數值是 770 的了。
由於之前在測試中用了不少時間,所以現在被鎖定的的數字並不是全滿的,為了美觀一點,
我們就把數值定為第一次搜尋時,時間全滿的值 1800 (即是 0x0708)。
Action Replay DS 金手指密碼可分為「判斷式指令」及「直接寫入記憶體指令」,
此例子中只需使用簡單的「直接寫入記憶體指令」就可以,指令格式是:
0XXXXXXX YYYYYYYY ’把 4 byte 數據 YYYYYYYY 寫入到位址 XXXXXXX 上。
1XXXXXXX 0000YYYY ’把 2 byte 數據 YYYY寫入到位址 XXXXXXX 上。
2XXXXXXX 000000YY ’把 1 byte 數據 YY 寫入到位址 XXXXXXX 上。
為了不會錯誤地把不想修改的數據也修改覆蓋掉,請注意使用適當的使用 0 1 2 作頭碼,
參照以上格式,剛才找到的作弊碼就可以寫成 1211BCEE 00000708,
用 R4 官網提供的 Cheat Code Editor 加入此密碼到金手指數據庫 usrcheat.dat 內,
然後複制到燒錄卡上就可以在遊戲中使用此金手指密碼。
【 備 註 】
1.有關 HasteDS 的使用,本文只舉出一個簡單的例子,其他的功能例如『跳到指定位址』、
、『匯出記憶體數據』,和『與舊值作比較』之搜尋方式,或界面上的其他未提及的設定,
這些看界面就已經知道是用來做甚麼的了,在此就不多說明了,如有需要大家可妆Ρπ嘗試。
2.如想更詳細的了解 HasteDS 有關輸入參數格式的標準與限制,可參看下載的檔案中,
內裡的 hasteds_manual.htm。
3.HasteDS 可支援找尋的模擬器,就如 HasteDS 界面上看到的,但實際支援的版本沒有註明,
本人只試過 DeSmuME 0.6.0 及 No$gba 2.4a 免費版,這些暫時來說的已是最新版本了。
4.本文作為一個入門級的找尋金手指範例,只適合新手看的,對於動態分配記憶體給變量的遊戲,
即是找到的密碼下次再玩就巳經失效,或想依照找到的密碼,對遊戲 Rom 作靜態修改,
把運算該變量的指令修改,以求達到與鎖定記憶體位址方式有相同效果的做法並未提及,
有興趣者請妆Ρπ研究。