2026年4月25日 星期六

修改PS2野球魂6的WBC球員姓名與背號

2009年出的野球魂6WBC日本隊,怎麼可能出現大谷翔平?動手改就有可能。


關於內建球員能力修改,此部分請參考舊文:
但就算改了本部分,進入WBC模式觀看,除了日本隊球員的姓名以外,其他隊伍都不會改變,且日本隊球員的背號與球衣背後顯示的名字也不相同。

這些修改Plug-in的作者BX大神也承認他找不到WBC選手的資料記錄在哪裡,以下是當時的記事:


プロスピ6のWBCモードですが、あれからもチマチマ探していますが全く見つからず。

解析データも2010年以前のものはすべて失われているので、現状としては手詰まり。

あきらめたわけではないですが、優先順位はかなり下がってしまいました。

よくよく考えると、2015年時点でのデータを作ることにはかなり無理があるのかなと。

(翻譯:我一直在野球魂6裡努力尋找WBC模式,但始終找不到。 2010年之前的所有分析資料都遺失了,我現在完全束手無策。我還沒放棄,但這件事的優先順序已經大大降低了。仔細想想,要創造2015年的資料似乎根本不可能。)


プロスピ6のWBC出場国の背番号が一部見つからない件ですが、

実行ファイルを中心に何度も調べたけど・・・見つかりません。

もしかしたらBASEBALL.FBDを調べたら・・・

いやいや、ファイルサイズがギガクラスなので読み込めないし、

読み込んだところで調べきれません。

 

例えば、カリーム・ガルシアはWBCでは10なのですが、選手データでは28。

つまり、オリックスに在籍した当時の番号。

(翻譯:關於野球魂 6中部分WBC參賽國球員球衣號碼缺失的問題,我反覆搜索,主要集中在可執行文件上,但…還是找不到。也許檢查BASEBALL.FBD檔案會有幫助……不行,檔案太大了,我載入不了,就算能加載,也檢查不了全部內容。

例如,卡里姆·加西亞在WBC中的球衣號碼是10號,但他的球員數據裡卻是28號。也就是說,那是他效力歐力士猛牛時的號碼。 )

もう一つわからない・・・というか、データの雑な点が。

(翻譯:還有一件事我不明白……或者更確切地說,數據很混亂。)

名字・名前・登録名・背番号で1セットっと思いきや、背番号だけではなく名前もない選手が。

別に名字が長いとかいうわけでもなさそうで、なぜこんなことになっているのかなと。

ってか、そもそも選手データのデータを使えば済む話なのになんでこんな・・・。

これがなければサクサク進む話なだけに困ってます。ってか解決でき無さげ・・・
(翻譯:我以為一套資料應該包含姓氏、名字、註冊名和球衣號碼,但有些球員不只球衣號碼,連名字都沒有。他們的姓氏看起來也不長,所以我不知道為什麼會這樣。我的意思是,如果他們直接使用球員數據,那豈不是簡單多了?為什麼會這樣呢?這真讓人沮喪,因為如果不是這個問題,一切都會很順利。或者說,看來我可能解決不了這個問題了。)


プロスピ6を少し眺めていますが、ちょっと問題発生。

普通に選手データだけなら解析できそうなのですが・・・といっても手は掛かりそうなのですが、

(PS2版とはエンディアンが異なるだけでなくビット格納位置が一部ずれているっぽい)

WBCモードの謎の仕様に悩まされています。

まず、WBCモードにはシステムデータがないのです(トーナメントデータのみ存在する)。

よって、16チームのデータ管理はセーブデータではなく、実行ファイルに依存します。

で、選手名の表示と背番号も実行ファイルで別管理されているのですが、ここから問題。

日本以外のチームの選手はアルファベット表記で、それ半角英数で記録されます。

選手名の幅は各個人で違うのですが、この幅を管理しているアドレスが解らない。

しかも、そこでは背番号が記録されているチームとそうでないチームがある。

記録されているチームはそこを書き換えれば反映されるが、

そうでないチームはどこから反映されているのか・・・

かといって選手データの背番号データは使用されていない・・・

行ファイルのどこかに反映されるべきデータは設定されているはず。むーぅ・・・

(翻譯:我研究野球魂6一段時間了,但遇到了一些問題。分析球員數據本身似乎可行……雖然會非常耗時(不僅字節序與PS2版本不同,而且一些位元存儲位置似乎也發生了偏移)。我目前最困惑的是WBC模式的神秘特性。首先,WBC模式中沒有系統資料(只有賽事資料)。因此,16支球隊數據的管理依賴可執行文件,而不是存檔數據。球員姓名和球衣號碼也在執行檔中單獨管理,問題就出在這裡。除日本隊以外的球員姓名是用半角字母數字字元記錄的。每個球員姓名的寬度都不同,但我不知道管理這種寬度的地址在哪裡。此外,有些球隊的球衣號碼也記錄在執行檔中,而有些球隊則沒有。對於記錄了球衣號碼的球隊,我可以更新那部分數據,但對於沒有記錄球衣號碼的球隊,我不知道數據來源……然而,球員數據中的球衣號碼數據卻沒有被使用……應該反映這些數據的信息肯定在某個行文件中設置好了。…)

現在有了AI的幫忙,找到這些都不是問題。

個人曾經修改過WBC2017與世界12強2019年中華隊的版本,但是因為當時能力與數據不足,除了中華隊的資料都正確以外,其他球隊的球員背號都必須「遷就」中華隊,比如:鄭錡鴻與鈴木一朗同為51號,將鄭錡鴻(C.H.Cheng)改成黃子鵬(T.P.Huang),背號51改成69之後,韓國隊原本51號選手奉重根(J K Bong)這個位子的選手背號也變成69號,其他原本使用背號51的也都跟著變成「69」號。
圖:2019年12強國手黃子鵬(2009年原本是鄭錡鴻)。

原本2009年韓國的「奉重根」的位置修改成「梁玹種(H J Yang)」,但背號原本與鄭錡鴻相同的「51」因為修改跟著變成「69」(當然包括日本隊的鈴木一朗也會跟著變)。

猜測:應該是使用「指針」的原理在其他地方保存下這些資料,會改變是因為「指向同一的地方的值變了」,如果找得到這個指針的位址並修改便可以完全控制它。

關於「指針」的解釋,在「計算機科學」裡的英文為 (Pointer): 一種程式語言變數,儲存的是資料在記憶體中的位址,直接指向該資料的位置。

會使用Cheat Engine的應該能夠理解,現在的遊戲都需要靠找指針,否則找到的數值多半都是一次性的,關機下一次再進來,記憶體裡的位址又改變了。

先用PS2光碟工具Apache v1.1把FBD資料夾下面的BASEBALL.FBD檔案導出來。

用Binary Editor打開這個檔案,在070A6038這個位置可以找到Suzuki Ichiro這些文字(日本隊選手姓名還是顯示漢字,修改改這裡只能變更球衣背後的名字與背號)


結束在070A9FD0這一行的TAVAREZ。
下一行070A9FE0開始就是記錄WBC球員的「指針位址」。
每4個位元一組,從低位元到高位元順序剛好是顛倒過來記錄的,每個球員依序有6組,以下依序是指針的解說:
070A9FE0-E4:WBC球員ID
BE是鈴木一朗在野球魂6裡的ID,稲葉則是070A9FF8-FB的012B,其餘以此類推,每個球員間隔24個位元。

要查看所有球員的ID,之前有下載BX大神做的MSC Plug-in的,打開DEF資料夾裡面的LIST.DEF可以查看。

070A9FE5-E8:WBC球員「姓氏」指針
日本隊的球員在這裡無效,還是顯示漢字,但日本隊之外的選手會顯示這指針所指向的「記憶體位址」的文字。


打開Cheat Engine的記憶體檢視,發現Suziki的位址在01ED8238,而位址070A9FE5-E8的值剛好就是反過來寫的38 82 ED 01。

070A9FE9-EB:WBC球員「名字」指針

Ichiro的位址在01ED8240,而位址070A9FE9-EB的值剛好就是反過來寫的40 82 ED 01。
(如果是WBC日本隊球員,以上兩個值可不用修改,會顯示球員編輯區的漢字姓名)

070A9FEC-EF:WBC球員「顯示名稱」指針

鈴木一朗顯示的姓名是Ichiro,所以還是與名字相同的「40 82 ED 01」。日本隊成員這個部分還是以球員資料區的設定為主,這裡的設定似乎無關緊要。

070A9FF0-F4:WBC球員「球衣顯示姓名」指針

鈴木一朗球衣上顯示的姓名是大寫的「ICHIRO」,位址在「48 82 ED 01」。日本隊成員這個部分這裡的設定「必須修改」,中島裕之在WBC的球衣上姓名為H.NAKAJIMA,與西武隊球衣上的設定不相同,如下圖所示。


070A9FF5-F8:WBC球員「背號」指針

鈴木一朗背號「51」的位址在01ED8250,而位址070A9FF5-F8的值剛好就是反過來寫的50 82 ED 01。這樣也可以解釋為什麼當年歐力士的賈西亞在WBC墨西哥隊與歐力士隊的背號並不相同,同樣的情形也發生在中華隊的鄭凱文身上(阪神隊64,中華隊20)。

掌握這個原則就可以修改所有WBC選手在WBC模式顯示的名稱與背號了。

日本隊的選手幾乎都可以換遊戲中臉部的頭像,但中華隊因為大部分的球員都是罐頭臉,所以只有當年在日職的鄭凱文與林威助兩個人可以換臉。把林威助的位置留給Stuart Fairchild,然後給他換上一張帥氣的混血臉。

罐頭臉的大概只能像這樣,但還能改改身高體重跟裝備:


看到這樣的畫面大家應該很興奮吧!雖然結果是不太想再回憶的。


















沒有留言:

張貼留言

野球魂6-WBC2026日本隊的選手能力(外野手篇)

  日本隊的外野手找了許多現役大聯盟選手,但感覺缺乏一個中外野。