教學 › 暖身課:打開一個遊戲的檔案
暖身課:打開一個遊戲的檔案
本站的第 0 課要你先學會開命令提示字元,之後每一課還要裝 Python、解壓縮。這一課排在第 0 課前面 —— 什麼都不用。遊戲資料夾裡有一個純文字檔, 用記事本就打得開、看得懂、改得動,而且改壞了一定回得來。
這一課要你學會的不是「改鍵位」
改鍵位在遊戲的設定畫面裡就能做,不需要碰檔案。
這一課真正在教的是三件事,而這三件事後面每一課都會用到:
一、遊戲的檔案不是天書,有些是純文字。
二、先找到還原的方法,再動手。
三、看到一個沒看過的檔案,怎麼從它自己身上找出規律。
🛟 動手之前:先完整備份整個遊戲資料夾
把整個遊戲資料夾複製一份到別的地方, 包括裡面存放紀錄的資料夾。不要挑檔案,整包複製最省事也最保險。
「紀錄」是指這些(它們跟遊戲檔混在同一個資料夾裡):
Support\MVP Baseball 2005\—— 遊戲自己建的, 裡面是設定(MVPOptions_Options.sav)與手把設定 (controller.cfg)。剛安裝好時沒有這個資料夾,玩過才出現。- 王朝、老闆模式、名單與玩家檔案的存檔(
*_Franchise.sav、*_Owner Mode.sav、*_Rosters.sav、*_Profile.sav)—— 沒有固定的資料夾名,你或你裝的模組包叫它什麼它就叫什麼。找不到就用這一行找:
dir /s /b "〔你的遊戲資料夾〕\*.sav"
find "〔你的遊戲資料夾〕" -name "*.sav"
上面第一行 Windows、第二行 Mac。 本站每一支工具都會自己備份它要動的那一個檔, 但那只保得住那一個檔 —— 整包備份保的是「你玩到現在的一切」。 完整做法看備份與還原 SOP。
⚡ 只想趕快做完?照這五步
- 打開遊戲資料夾(裡面有
mvp2005.exe的那一層),找到controller.cfg,對著它按右鍵複製貼上,把複製檔拖到桌面。 - 用記事本打開原本那個
controller.cfg,先看形狀:每一行都是「名字= 值」,一行例外都沒有(本站那份 315 行全部符合)。 - 從頭往下數
profile=出現幾次,那就是幾個輸入裝置;代入算式,記事本右下角顯示的行數要等於算出來的數字、或比它多 1(差 0 或差 1 都正常,看檔尾有沒有多一個換行)。2 + 段數 × 63 + (段數 − 1) = 總行數 - 按
Ctrl+F搜CROSS,找得到就完成最後一項成功標準,然後直接關掉,不要存檔。 - 不小心存壞了:先把桌面那份複製回去覆蓋;還是不對,再進遊戲 → 設定 → 手把設定 → 選「還原預設」。
這一課不用任何工具,所以沒有指令可以還原 —— 上面第 1 步那份手動備份就是你的安全網。
記事本要先把「自動換行」關掉、把「狀態列」勾起來,右下角才會出現行數。
Mac 的「文字編輯」沒有行號,第三步改驗「隨便挑一段,從它的 profile= 數到下一個 profile= 之前剛好 63 行」。
想知道這個檔為什麼長這樣,往下讀;只想複習,跳到📌 重點整理。
為什麼從這個檔開始
| 條件 | 這個檔 |
|---|---|
| 要不要解壓縮 | 不用,它就攤在遊戲資料夾最外層 |
| 要不要工具 | 不用,記事本就行 |
| 是不是純文字 | 是,整份都讀得出來:以英數字、底線、等號為主,另外會有 + - . 與括號(來自裝置名稱與搖桿軸向) |
| 改壞了怎麼辦 | 遊戲設定畫面裡有一個「還原預設」按鈕 |
| 會不會弄壞存檔 | 不會,它跟球員名單、賽季進度完全無關 |
前置
- 你已經安裝好 EA MVP Baseball 2005,而且找得到它的資料夾
- 你至少進過遊戲一次 ——
controller.cfg是玩過之後才會出現的(本站沒有實測它確切是在哪一步被寫出來), 剛安裝好、還沒玩過的話,那個檔根本不存在。 (本站拿三份剛安裝好的原版實測,三份都沒有這個檔。) - 你知道記事本在哪(Windows 內建;Mac 用「文字編輯」—— Mac 版沒有行號,這一課有一項成功標準要換一個方式驗,下面會說)
- 沒有其他前置了 —— 不用裝任何東西
👉 你要做的事
步驟 1:先做一份備份。這是本站所有教學的第一步,永遠不會變。
- (1a) 打開遊戲的資料夾(裡面有
mvp2005.exe的那一層) - (1b) 找到
controller.cfg - (1c) 對著它按右鍵 → 複製 → 貼上。你會多出一個「controller - 複製.cfg」
- (1d) 把那份複製檔拖到桌面,不要留在遊戲資料夾裡
為什麼要拖到桌面
留在原地的備份,很容易在下次整理資料夾時被自己刪掉,或被遊戲一起覆蓋。 備份要放在「不會被你正在做的事情碰到」的地方。
步驟 2:用記事本打開原本那個 controller.cfg。
- (2a) 對
controller.cfg按右鍵 → 開啟檔案 → 記事本 - (2b) 如果沒有「記事本」選項,選「選擇其他應用程式」再找記事本
profile= Keyboard_Profile_1
device= Keyboard_Profile_1
player= 2
number_of_buttons= 0
number_of_povs= 0
number_of_axis= 0
VPAD_VIRTUAL_BUTTON_START= key sc_esc
VPAD_VIRTUAL_BUTTON_SELECT= key sc_divide
VPAD_VIRTUAL_BUTTON_CROSS= key sc_down
VPAD_VIRTUAL_BUTTON_CIRCLE= key sc_right
VPAD_VIRTUAL_BUTTON_SQUARE= key sc_left
VPAD_VIRTUAL_BUTTON_TRIANGLE= key sc_up
...
看不懂沒關係,先看形狀:每一行都是
名字= 值,等號前面沒有空格、等號後面剛好一個空格。
全檔 315 行都是這個形狀,一行例外都沒有。
步驟 3:數一數這個檔有幾段。
- (3a) 按 Ctrl+Home 回到最上面
- (3b) 從上往下捲,找
profile=開頭的行,數它出現幾次
每一次 profile= 就是一個輸入裝置。
本站測試機上有五段:兩支 USB 手把、兩組鍵盤配置、一支 Xbox 手把。
你的電腦上通常會比較少,因為它記的是「這台電腦接過什麼」。
每一段的長度是固定的:63 行
6 行裝置資訊 + 24 行按鈕對照 + 33 行動作設定 = 63。所以整個檔案的行數是算得出來的:
開頭 2 行空白 + 5 段 × 63 行 + 段與段之間 4 行空白 = 321 行
本站測試機那份剛好 321 行。
你可以拿自己的檔案驗這條算式:
2 + 段數 × 63 + (段數 − 1) = 總行數。
記事本要先做兩件事才看得到行數
很多人到這一步會卡住,因為記事本預設不顯示行號:
- (a) 上方選單 格式 → 把「自動換行」關掉。 開著的時候,狀態列會被停用 —— 這是最常見的原因。
- (b) 上方選單 檢視 → 勾「狀態列」。 右下角就會出現「第 X 列,第 Y 行」。
- (c) 按
Ctrl + End跳到檔案最後面, 看右下角那個「第 X 列」。
⚠️ 這裡會差 1,那是正常的
有些機器上,這個檔最後一行結尾還有一個換行,最底下就會多一個空行, 記事本會把那個空行也算進去。
那種情況下,算式算出來的數字會比記事本顯示的少 1。 本站量了三份檔案,兩份是這樣;另外一份最後一行沒有換行, 記事本顯示的數字就剛好等於算式。差 0 或差 1 都算過關。
(2026-09-05 訂正:本站原本寫成「兩台不同機器上的檔案都是這樣」、 把「減 1」寫成必然。再量第三份才發現不是每一份檔尾都有那個換行。)
| 五段的情況 | |
|---|---|
算式 2 + 5×63 + 4 | 321 |
| 記事本 Ctrl+End 顯示 | 321 或 322 |
| 真正有內容的行 | 315 |
所以:記事本顯示的數字,等於算式算出來的數字、或比它多 1,兩種都算對。
本站原本沒寫這一段,成功標準寫成「兩個數字一致」—— 檔尾有那個換行的機器上,照著做的人會看到差 1,然後以為自己數錯了。 這是拿第二個樣本重驗才發現的。
🍎 Mac 的「文字編輯」沒有行號,這個算式在 Mac 上驗不了。 Mac 讀者跳過這一項就好,下面的成功標準也有寫。 (這款遊戲本來就是 Windows 遊戲,Mac 上多半是透過相容層在跑。)
步驟 4:找出這個遊戲的一個小祕密。
- (4a) 按 Ctrl+F 打開搜尋
- (4b) 搜
CROSS
PC 版遊戲,內部是一支 PlayStation 手把
24 個按鈕名字全部是 PlayStation 的講法:
CROSS(×)、CIRCLE(○)、SQUARE(□)、TRIANGLE(△)、
L1、R1、L2、R2、START、SELECT。
沒有任何一顆叫 A/B/X/Y。
連 Xbox 手把那一段也是 —— 一支根本沒有「×」鍵的手把,
在這個檔裡被記成 CROSS = button 1。
鍵盤也一樣:CROSS = key sc_down,方向鍵下被登記成「×鍵」。
換句話說,遊戲把手把、鍵盤、Xbox 手把全部先翻譯成同一支虛擬的 PlayStation 手把, 這 24 行就是那張翻譯表。
這是移植遊戲留下的痕跡。想看更多這種痕跡,見 平安夜凌晨的兩次建置。
⚠️ 一件必須先知道的事
這個檔不是「給你填的」,是「遊戲自己寫出來的」
本站在遊戲主程式裡找到整整 17 種輸出模板, 形狀就是這個檔每一行的樣子。拿那 17 種模板去比對整個檔案: 315 行全部命中,沒有任何一行落單,而且 17 種模板每一種都真的用到了。
意思是:你在遊戲的設定畫面按下確定的時候,遊戲會把整個檔案重印一次。 你手動改的內容,可能會在那個時候被蓋掉。
所以 這一課的目的是看懂它。真的要改鍵位,在遊戲的設定畫面改比較保險。
附帶:按鍵名稱表也在主程式裡
檔案裡的鍵盤按鍵寫成 key sc_down、key sc_numpad6 這樣。
那些 sc_ 名字不是隨便取的 —— 完整的清單就在遊戲主程式裡,
只是全部大寫:
SC_ESC SC_1 SC_2 … SC_NUMPAD0 … SC_LWIN SC_RWIN SC_KANJI …
實測 122 個不重複的名字,而你的 controller.cfg 只用到其中一小部分。
裡面甚至有 SC_KANJI(日文鍵)、SC_SLEEP(睡眠鍵)這種
這個遊戲根本用不到的按鍵。
這代表什麼
那是一張通用的鍵盤按鍵對照表,不是為這個遊戲寫的。 遊戲把整張表帶著走,用到哪個算哪個。
跟前面「PC 版內部是一支 PlayStation 手把」是同一件事的兩面: 輸入這一層是通用的,遊戲只是接上去。
✅ 成功標準
以下全部做到就算過關:
- 桌面上有一份
controller.cfg的備份 - 你用記事本打開了原檔,而且沒有存檔
- 你數得出自己的檔案裡有幾個
profile= - Windows:記事本右下角顯示的行數,
等於你用
2 + 段數 × 63 + (段數 − 1)算出來的數字,或比它多 1 (為什麼會多 1,看上面那張「這裡會差 1」; 看不到行號的話看「記事本要先做兩件事」) - Mac 或看不到行號的人:改驗這一項 ——
隨便挑一段,從它的
profile=那行數到下一個profile=之前, 中間剛好 63 行 - 你找得到
CROSS這個字
❌ 出錯處理
| 狀況 | 怎麼辦 |
|---|---|
找不到 controller.cfg |
你可能開在錯的資料夾。先確認同一層有 mvp2005.exe。
如果從來沒有玩過這款遊戲,這個檔可能還沒被建立出來 ——
先進遊戲玩一次再回來 |
| 打開是一堆亂碼 | 你開錯檔了。這個檔整份都是看得懂的英數字,
最「特別」的字元也只有 =、底線,以及裝置名稱與搖桿軸向會用到的
+ - . ( ) |
| 行數算式對不上 | 先確認你數的是 profile= 而不是 device=(兩者長得很像、值也一樣)。
如果還是對不上,那是有意義的發現 —— 照下面的範本回報 |
| 不小心存檔了,遊戲怪怪的 | 三個辦法,從上往下試: 一、把桌面那份備份複製回去覆蓋 二、進遊戲 → 設定 → 手把設定 → 選「還原預設」 三、看下面「原廠預設值放在哪」 |
原廠預設值放在哪
可以拿來對照的預設值有兩份,兩份還不一樣(第二份不是遊戲安裝時就有的,是玩過之後才出現):
| 哪一份 | 位置 | 內容 |
|---|---|---|
| 原廠裝置表 | data\profiles.big | 28 種裝置的完整預設綁定。它是純文字 CSV、沒有壓縮,
用記事本打開 .big 就看得到內容 |
| 遊戲自己留下的一份 | Support\MVP Baseball 2005\controller.cfg | 只有兩組鍵盤配置,126 行(跟上面 315 行同一種數法:有內容的行;記事本會顯示 130) |
⚠️ 那份「備份」反而不是原廠值
直覺會以為 Support\ 那份是最乾淨的原廠檔。反過來。
把它跟 profiles.big 的原廠表逐欄比對,有 8 欄不同,
全部集中在同一個地方:兩組鍵盤配置的右類比搖桿四個方向。
原廠表寫「未綁定」,那份備份卻綁了小鍵盤與 WASD。
而遊戲根目錄那份反而跟原廠表一致。 所以要還原,用遊戲裡的「還原預設」最保險。
一個你可以自己做的驗算
把原廠表裡兩組鍵盤配置那兩列,照下面的換算規則翻成 controller.cfg 的寫法:
na → not_assigned -1
sc_xxx → key sc_xxx
p0 → pov0 1
a-3 → axis- 3
7 → button 7
再跟你電腦上的 controller.cfg 逐欄比對。
本站測試機的結果是 34 / 34 完全相同,兩組鍵盤配置都是。
如果你的也是 34/34,代表你的鍵盤設定從來沒被改過。
在 Wine 底下按鈕會對不上,而那不是你設錯
本站原本沒有講這件事
MVP 2005 用的是 2005 年的 DirectInput 按鈕編號。 那些編號跟現代手把上印的標籤不保證對得上 —— 透過 USB 轉接器接老手把時更亂。
在 Wine 底下最麻煩:Linux、Wine、遊戲三邊 可能各自用不同的編號在描述同一顆按鈕。
症狀很好認:手把只有一半能用 —— 左類比可以瞄投球,但選球種、傳球、跑壘或右類比的動作跑到別顆按鈕上。 那不是你設錯,是編號對不上。
有人做了一支工具解決它
2026 年 7 月出現的 mvp2005padcfg(MIT 授權,原始碼公開)。
本站沒有使用它,但它的做法有兩點值得學:
- 它不猜編號,它問你。 依序要你按每一顆按鈕、每一個方向, 記下「MVP 實際收到的是幾號」,再照那個產生設定檔。 這樣三邊怎麼描述都不重要 —— 只看遊戲收到什麼
- 它另存新檔,不覆蓋你的
controller.cfg。 這一點比本站這一課教的做法安全:本站教的是直接改那個檔, 雖然有教備份,但「產生一份新的、原檔不動」本來就更好 - 它明說可以在 Wine 底下跑,但必須跟遊戲在同一個 Wine prefix 裡 —— 不然它問到的是另一套環境的編號,等於白做
⚠️ 本站沒有實際跑過那支工具,上面是讀它的說明與原始碼得到的。
這一課的做法(自己讀懂 controller.cfg 再手改)仍然成立,
而且你會知道每一格是什麼 —— 那是工具給不了的。
難度
★☆☆ 什麼工具都不用
時間
約 10 分鐘
要會什麼
會用記事本
本站沒有測的一件事
直接刪掉 controller.cfg 會怎樣?
未解 本站沒有測。
從「遊戲會自己重印這個檔」這件事推測它會重新產生一份, 但本站的紀律是全程唯讀、不動使用者的檔案,所以沒有實際刪掉來驗。
不要拿這件事當還原方法。用備份或遊戲裡的「還原預設」。
如果你有完整備份、願意實測,歡迎照下面的範本回報,本站會把結果補上並註明來源。
📋 回報範本
卡住或有發現,複製下面這段填一填:
暖身課 status: ✅ / ❌
我的 profile= 有幾段: ___
記事本顯示的總行數: ___ (看不到行號就填「沒有行號」)
算式 2 + 段數×63 + (段數-1) 算出來: ___
記事本那個數字跟算式差多少: 0 / 1 / 其他 ___ / 沒驗
一段是不是剛好 63 行: 是 / 否 (上面那項沒驗的人填這個)
找得到 CROSS 嗎: 是 / 否
卡在哪一步: ___
其他發現: ___
📌 重點整理
- 一句話 這一課教的不是改鍵位,是「打開、看懂、還原」這三件後面每一課都要用的事,練習對象是一個記事本就打得開的純文字檔。
- 前置
controller.cfg是玩過之後才會出現的(本站沒有實測它確切是在哪一步被寫出來),本站拿三份剛安裝好的原版實測,三份都沒有這個檔,所以你至少要先進過遊戲一次。 - 關鍵數字 每一段固定 63 行(6 行裝置資訊 + 24 行按鈕對照 + 33 行動作設定);本站測試機五段,算式得 321、記事本顯示 321 或 322(看檔尾有沒有多一個換行)、真正有內容 315 行。
- 最容易踩的雷 記事本那個數字可能比算式多 1,因為有些機器上最後一行結尾還有一個換行(本站量的三份裡有兩份),差 0 或差 1 都正常;還有要數的是
profile=,不是長得很像、值也一樣的device=。 - 看得到的祕密 PC 版內部是一支虛擬 PlayStation 手把,24 個按鈕名字全是 PlayStation 的講法(
CROSS、CIRCLE、SQUARE、TRIANGLE、L1、R1、L2、R2、START、SELECT),沒有任何一顆叫 A/B/X/Y,連 Xbox 手把那一段也是;鍵盤按鍵表則是通用的,主程式裡實測 122 個不重複的大寫SC_名字,含這遊戲根本用不到的SC_KANJI。 - 它會被整份重印 主程式裡 17 種輸出模板打中全部 315 行、每一種都真的用到,代表你在設定畫面按確定時整個檔案會被重寫一次,所以真要改鍵位,在遊戲的設定畫面改比較保險。
- 安全網 動手前先複製一份拖到桌面;改壞了依序試「複製回去覆蓋」「遊戲裡的還原預設」「查原廠值」。原廠裝置表在
data\profiles.big(28 種裝置、純文字 CSV 沒有壓縮),注意Support\底下那份反而不是原廠值,跟原廠表有 8 欄不同。 - 本站沒驗的 直接刪掉
controller.cfg會怎樣沒有測,只從「遊戲會自己重印」推測它會重新產生,不要拿這件事當還原方法;那支mvp2005padcfg本站也沒有實際跑過,寫的是讀它的說明與原始碼得到的。
接下來去第 0 課
學會「打開、看懂、還原」之後,可以往兩個方向走:
- 新手基本功 —— 學會開命令提示字元,本站大部分教學都需要
- 把整季賽程搬到任何年份 —— 三分鐘,隨時可以還原
- 遊戲檔案地圖 —— 其他東西都放在哪裡
- 文字表 .LOC —— 遊戲本體介面的文字存在哪