更新紀錄
這個站寫錯過什麼
這個站的規矩是:數字要量過才寫,沒量到的就標出來。實際做下來,猜的地方還是有, 而且不只被自己抓到過一次:有的是數字算錯,有的是把推測寫成了結論, 其中一次是整段結論寫反。這頁把散在各頁的訂正與改動集中起來,共 209 條, 一條一條列出原本寫什麼、後來改成什麼、為什麼會錯。
為什麼要有這一頁
訂正如果只留在原頁上,讀者得一頁一頁翻才看得到。集中列出來是為了讓一件事變得可以查證: 這個站寫錯的地方會留著改動紀錄,不會悄悄換掉。
本頁只收已經寫進站裡、後來被推翻、改寫或補救的內容。 還沒寫進站裡就修掉的不算,那不叫訂正,那叫還沒寫完。 (例如球員代號那頁的「兩位二刀流」,是那一頁第一次寫進站裡時就已經修好的,所以不在下表裡。) 批次欄寫的「上線前」「開張前」,指的是 2026-09-11 正式公開之前: 那時各頁已經寫進站裡,只是還沒對外公開,所以算在裡面。 寫「開張當天」「開張後」的,是公開之後才改的。
一、訂正
下表 209 條,每一條都對應站上一次實際的改動,按上線批次排。 (這個數字是數表格列數數出來的,不是手寫的。2026-09-04 核實時發現原本三處都寫著 132,而表上已經有 134 列;加了 09-04 那一列之後,三處統一成量到的 135。2026-09-06 這一輪補了 7 列,三處再同步成 142。2026-09-23 這一輪補了 22 列,三處再同步成 164。2026-09-24 這一輪補了 6 列,三處再同步成 170;同一天第二批又補了 8 列,三處再同步成 178。2026-09-25 補了 2 列,三處再同步成 180;2026-09-26 補了 5 列,三處再同步成 185;2026-10-29 補了 3 列,三處再同步成 188。) 其中五頁在內文裡直接留著訂正段落(開頭寫著「本站改過這一段」或「本頁上線時寫」), 可以在該頁看到原文;其餘幾條的原文隨著頁面改版拿掉了,只留在版本紀錄裡。
| 批次 | 哪一頁 | 改了什麼 | 為什麼會錯 |
|---|---|---|---|
| 開張後(2026-10-31) | 全站約 46 頁教學裡跑腳本的指令與 30 支讀者工具印出來的提示,加上第 0 課新增的「操作六:準備專用資料夾」 | 三件事。一、每一行跑腳本的指令,開頭多了 -I(Windows 是 python -I mvp_xxx.py,Mac 是 python3 -I mvp_xxx.py)。二、腳本改放進專用資料夾 MVP_Tools,命令視窗在那裡開;原本寫的是「瀏覽器放進『下載』資料夾,命令視窗就在『下載』裡開,不用把檔案搬到別處」,每一頁的指令與說明都跟著改,工具印出的提示也一樣。三、遇到「沒有權限寫入」時,原本建議「對命令提示字元按右鍵選『以系統管理員身分執行』」,現在改成「不要用系統管理員身分跑,把整個遊戲資料夾複製到桌面(或你自己的資料夾)再改那一份」;原因說明(遊戲裝在 Program Files、一般帳號在那裡不能寫)照舊。第 0 課另外多了一張選用卡片,教 Windows 用 set NoDefaultCurrentDirectoryInExePath=1 讓這個視窗不要先找目前資料夾。 |
舊寫法不是算錯,是少了一層保護、又多給了一個不必要的權限。依微軟官方文件,Windows 的命令提示字元找執行檔時,預設先看目前所在的資料夾,而「下載」資料夾什麼檔都有;依 Python 官方文件,不加 -I 時腳本所在的資料夾會被放進模組搜尋路徑。「用系統管理員身分」則是把整支腳本用最高權限跑,而它真正要解決的只是「在 Program Files 底下寫檔」,複製出一份自己的資料夾就不需要。這些都只是依官方文件做的預防,不代表有人遇過問題。 本站對 30 支讀者工具各跑過一次自我測試,加與不加 -I 結果相同、沒有殘留;Windows 上的指令與畫面字樣還沒實測,頁面各處照實標了。 |
| 開張後(2026-10-30) | 法律頁第 3 節、法律頁的本機儲存說明(第 8-1 節)與第 6 節,以及教學列表最下面那張卡 | 第 3 節原本寫「本站教學不需要、也不會教任何規避措施」。現在改成有範圍限定的三點:本站執行檔工具的三個旋鈕(調記憶體池、王朝起始年份、跟著電腦日期走的時鐘年份)只有在沒有光碟防拷保護的那一族執行檔上才找得到要改的位置,原版光碟安裝的執行檔帶有保護,工具在上面會停下來、不改檔;社群流傳的某些現成包裡,執行檔已經是第三方處理過的,不是原版;那一類執行檔本站不提供、不指引取得、不說明來源或做法,也不替它背書。 本機儲存那一列補上:這份紀錄是以「同源」為界,同一個 github.io 帳號底下的其他網站看得到它,目前裡面只有步驟打勾與快速鍵開關兩項。隱私一節補上:本站無法防止被其他網站嵌入,發現被冒用請依下架與回報管道通知。 第 6 節的「將即時移除」「原作者提出即立即移除」改成「儘速處理」「合理期間內」,與前一批下架措辭一致。教學列表最下面那張卡拿掉「不用註冊 GitHub」的對比,改成留言區要 Google 帳號、寄信不用帳號,並指向回報頁看三條管道各要什麼。 | 「教學不需要任何規避措施」對檔案格式的教學成立,但對調記憶體池、王朝年份、時鐘年份這三個旋鈕字面上不成立:它們只在沒有光碟防拷保護的那一族執行檔上才有位置可改,而那一族不是照原版光碟安裝出來的。法律頁沒有交代這個範圍,等於留了一個讀者會自己補上錯誤想像的空隙。 「立即移除」「即時移除」是想表達善意卻把時間講成了承諾;「不用註冊 GitHub」則是 GitHub Issues 還開著時才成立的對比,教學列表那一處在前一批只改了三頁,漏掉了這一張卡。本機儲存是同源共用、頁面能不能被嵌入,兩件事本來就存在,只是法律頁沒有講。 |
| 開張後(2026-10-30) | 把賽程換到任何年份(含附的 mvp_shift_schedule_year.py,工具日期 2026-10-30) |
腳本改完賽程之後印的完成訊息,原本寫「開遊戲進入『新賽季』就會看到 N 年的賽程」。現在改成「賽程檔已改成 N 年;王朝顯示哪一年由執行檔決定,季賽與其他模式的效果本站還沒測,細節看教學頁」,與教學頁已改寫的說法一致。自我測試多一道檢查(85 道全過),訊息若退回舊說法會變紅;頁面上寫的項數同步改成 85。 | 教學頁先改了:王朝顯示哪一年是執行檔決定的,不看賽程檔,季賽與其他模式的日期是否跟著賽程檔本站沒測。但腳本跑完印的那句話沒有跟著改,還在承諾開遊戲就會看到。同一個事實寫在兩個地方,只改了一處。 |
| 開張後(2026-10-30) | 球衣模組:安裝與製作入門(球衣對照圖的圖說)、社群工具怎麼分工、2009 年那份名冊是誰做的 | 三處原本寫「原作者提出即立即移除」或「本站會立即移除」。現在改成與法律頁一致的說法:球衣圖說是「原作者提出時,本站會在合理期間內移除這張圖」,另外兩頁是「本站會儘速處理,包含移除對該工具的介紹/把你的名字從這一頁移除」。通知管道與善意都沒有變。 | 法律頁已經把下架的時間承諾改成「儘速處理」「合理期間內」,但這三頁還留著「立即」這種沒有時間界線的承諾:由一個人在業餘時間維護的站做不到,也跟法律頁不一致。同一件事散在多頁,只改一處就是改一半。 |
| 開張後(2026-10-30) | 中文版為什麼會跳出、中文版配大球場就跳出、執行檔上的六個旋鈕、讓它在 2026 年跑起來(含附的 mvp_modernize.py,工具日期 2026-10-30.2)、自己做中文化、官方繁體中文版的三個更新檔,以及首頁、教學列表、前輩故事與七分鐘調執行檔裡的同一句提醒 |
這幾頁原本把「照原版光碟安裝的那一份,為什麼做不到記憶體池那一項」講得很細:把各版本的執行檔並排比較,還講了那層保護怎麼運作。現在全部縮成同一個結論:原版光碟安裝的執行檔帶有光碟防拷保護,本站的工具在上面找不到要改的位置,會停下來、不改檔。
社群流傳的某些現成包裡的執行檔已經不是原版執行檔,本站不提供、不指引、不說明它的來源或做法,也不替它背書;本站只教用你自己那份官方安裝檔能做的事。
mvp_modernize.py 的說明與訊息同步改成同一句話(行數不變,頁內附錄已重產,自我測試仍是 148 道全過)。中文版那一頁的節次與連結都沒有動。 |
不是數字算錯,是公開的界線沒守住:為了把量測講完整,這些頁把本站明訂不談的那一類細節也寫上來,同一件事又散在好幾頁,只改一處就是改一半。上線後複查才發現,班主任決定縮成高階結論。 |
| 開張後(2026-10-30) | 法律頁第 10 節與回報與下架(兩頁同一份,同步改);關於頁的聯絡表 | 下架那一段原本寫「收到通知後先下架、再討論,不會要求您先證明什麼」、「個別頁面或整站可以在幾分鐘內下線」、「目標在七日內回應」,並用「不用註冊 GitHub」當對比。 現在改成:維護者收到具體通知後得先把爭議的頁面暫時隱藏或下架,同時保留請通知人提供具體頁面網址、權利人身分與所主張著作說明的權利,以防範濫用;拿掉「幾分鐘」這種時間標準,改成「合理期間內」; 「七日內」保留為目標,並寫明它僅供參考、由個人在業餘時間維護、留言可能卡在審核(急件請寄信),而且不構成具法律拘束力的契約承諾、服務水準協議或保證,也不代表對任何法律責任的承認。 標題「本站的承諾」改成「本站的處理方針」。另外,三頁的聯絡表與重點整理不再用「不用註冊 GitHub」當對比,改成三條管道各自需要什麼:電子郵件不用帳號、部落格留言要 Google 帳號、GitHub 的下架流程依 GitHub 規定; 回報頁重點整理的「GitHub 那兩條管道本站都還沒有實際走過一次」改成「GitHub 的下架流程本站還沒有實際走過一次」。 | 原本的寫法是想表達善意,卻把話說得太滿:「不會要求您先證明什麼」等於任何人寄一封信都能要求拿掉任何一課;「幾分鐘內」是把技術上的部署速度寫成對外的時間標準; 「七日內」沒有交代留言管道可能卡在審核、個人維護的時間只是目標。「不用註冊 GitHub」則是 GitHub Issues 還開著時才成立的對比,2026-10-29 Issues 關閉、網站的原始檔倉庫轉成私人之後, GitHub 只剩下架流程一條,頁面上卻還寫著「GitHub 那兩條管道」,只有兩條管道的表格也把「另一條」數成「另外兩條」。語意殘留沒有連結可掃,所以檢查器一直沒有亮。 |
| 開張後(2026-10-30) | 每一課最上面那張「先備份」卡(57 頁),以及首頁、新手基本功、備份與還原 SOP各自的完整版 | 這幾張卡原本只說紀錄放在遊戲資料夾的 Support\MVP Baseball 2005\ 底下,存檔樣式也漏了 *_Dynasty.sav,找存檔的指令只搜遊戲資料夾。
現在把「文件」裡的 MVP Baseball 2005(硬碟上叫 Documents)列為第一個要看的位置,Support\ 列第二,兩個位置各標實測範圍:
在一台 Mac(用 Wine 跑遊戲)上現場看到,設定檔、手把設定與全部存檔都在「文件」那個資料夾,那份遊戲資料夾裡一個 .sav 與 controller.cfg 都沒有;
Windows 這邊是社群回報、說法一致,本站還沒有在 Windows 上實測。存檔樣式同時列 *_Dynasty.sav 與 *_Franchise.sav,
dir / find 指令兩個位置都搜。57 頁的精簡卡多一句「紀錄也可能放在遊戲資料夾外面,那一個要另外複製」;備份 SOP 的第〇節加第 5 步(把「文件」裡那個資料夾也複製一份),還原那一節同步補一步。 |
「紀錄在遊戲資料夾的 Support\ 底下」是 2026-08-30 在從 Windows 帶來的安裝上量到的,之後一路被當成通則;
沒有人在 Mac 上照著「在 Mac 上玩 MVP 2005」那一課跑過遊戲、再回頭找存檔。照舊卡把整個遊戲資料夾複製一份的讀者,會漏掉放在「文件」裡的全部王朝、名單與設定,
而且照 SOP 的指令搜遊戲資料夾會得到 0 筆,以為自己沒有存檔。 |
| 開張後(2026-10-30) | 備份與還原 SOP的逐課清單 | 第二張表補上 2026-10-29 新增的改傳奇隊與英雄隊的名字:FEENG.LOC / IGENG.LOC 工具會留 .menutextbak,
選做的 data\database\team.dat 沒有工具備份,要自己先複製一份。課數與頁數更新為 40 課 41 頁(31 課會寫檔、21 課動五個核心檔以外的檔),盤點日期改 2026-10-30,並寫上數法
(第一張表 13 課加第二張表 21 課加完全不寫檔的 6 課,要等於教學列表的課數)。 |
清單停在 2026-09-05 的 39 課。隱藏隊伍那一課上線時沒有回頭更新這一頁,只做精簡版備份的讀者找不到 team.dat,改壞時手上沒有那個檔的備份。這是這一頁第三次被抓到清單過期。 |
| 開張後(2026-10-30) | 備份與還原 SOP附的 mvp_check_backup.py(工具日期 2026-10-30.3) |
遊戲資料夾裡找不到 controller.cfg 時,原本只印「這個檔要玩過一次遊戲才會出現,現在沒有是正常的」。現在改成「遊戲資料夾裡沒有它不代表有問題:它也可能在『文件\MVP Baseball 2005』,請到那裡看;還沒玩過遊戲的話,哪裡都沒有是正常的」。
工具檔頭「做不到的事」補一條:它只看你交給它的遊戲資料夾,不會去看「文件」裡的那個資料夾。自我測試從 21 道增加到 23 道(新增陰性對照與陽性各一道)。 |
舊訊息暗示「玩過就會出現」。實際上有些電腦上它一直在「文件」裡,玩過了遊戲資料夾裡也不會有,照訊息會以為檔案不見了。 |
| 開張後(2026-10-30) | 暖身課:打開一個遊戲的檔案 | 原本寫「它就攤在遊戲資料夾最外層」,出錯處理也只叫讀者先進遊戲玩一次。現在新增「它在哪裡:兩個可能的位置」一節(「文件」裡的 MVP Baseball 2005 與遊戲資料夾最外層,各標本站在哪裡看過,Windows 位置標「社群回報、本站未實測」),
附 Windows 與 Mac 的找法指令;步驟 1、前置、出錯處理與重點整理同步改寫;Support\ 那一份標明「在從 Windows 帶來的安裝上量到,Mac 那台沒有」。 |
這一課的數字(315 行、五段)是在從 Windows 帶來的安裝上量的,那份檔在遊戲資料夾最外層;寫成了每個人都一樣。在 Mac 上用 Wine 跑遊戲時,遊戲啟動只打開「文件」裡的那一個,遊戲資料夾裡根本沒有,照課文找會找不到。 |
| 開張後(2026-10-30) | 把你改好的東西打包成一包與它附的
mvp_pack.py(工具日期 2026-10-30.3) |
原本裝別人的包時,.exe、.dll、.bat 跟資料檔一視同仁:
預覽只看路徑安不安全,頁面「擋不住的事」只舉了「attrib.dat 可以把名單改成任何樣子」,沒提到執行碼。
現在包裡有 .exe .dll .asi .bat .cmd .com
.ps1 .vbs .js .scr .lnk,或內容開頭是 MZ 的檔,
預覽另外列成「🔴 會執行的程式碼」(名稱、大小、原因、SHA-256),預設整包不裝、結束碼 1,
要加 --allow-code;之前能直接裝的包現在要加旗標。同一批補了三件事:
預覽的大小改印壓縮檔裡實際的(跟 manifest 不符標 🔴);
讀任何項目的內容之前先用壓縮檔目錄檢查大小上限(單項 1 GB、整包 4 GB、壓縮比 200 倍、manifest.json 1 MB;
拿 300 MB 的零、壓縮後 298.6 KB 的包實測,修之前 --install --apply 最大常駐記憶體 341 MB 而且真的裝進去,
修之後 26 到 28 MB 且被拒絕);所有印到畫面上的包名、作者、說明、路徑都洗掉控制字元。
自我測試的餌從 18 個增加到 25 個。 |
不是某一句寫錯,是原本的設計只防「寫到資料夾外面」,沒想到「寫在資料夾裡面的程式」同樣是風險; 預覽的大小與說明欄是包的作者自己寫的字串,原本直接信、直接印。 只在 Mac 上實跑過,還沒在 Windows 上實跑。 |
| 開張後(2026-10-30) | 一整包模組自動歸位與它附的
mvp_autoinstall.py(工具日期 2026-10-30) |
原本對模組裡的 .exe、.dll、.bat 一視同仁:
現行遊戲資料夾裡 mvp2005.exe 與 delete.bat 各只有一個,會被分到 ✅ 直接裝,整頁沒有「信任模組來源」的提醒。
現在會執行的程式碼(判斷條件同上一列)另外列成「🔴 會執行的程式碼」放在清點結果最前面,
沒加 --allow-code 時 --install(不論有沒有 --apply)整包結束碼 1、遊戲檔不動,
連本來歸 ❓、本工具不會裝的 x.dll 也一樣;之前能直接裝的模組現在要加旗標。
檔名裡的控制字元(ESC 之類)印出來之前先洗成可見寫法,去處路徑含控制字元一律不寫。
頁面新增紅色信任警示卡。自我測試從 51 道檢查 13 塊反向餌增加到 130 道 17 塊。 |
這支工具的前提是「去處由你自己那份遊戲決定」,卻沒有問「去處是不是會被執行的檔」; 模組作者決定的檔名原本直接印到終端機。只在 Mac 上實跑過,還沒在 Windows 上實跑。 |
| 開張後(2026-10-30) | 把賽程換到任何年份、 一次更新整個年度、首頁「最快有感」那一列、 我想做什麼的賽程那一列 | 賽程年份那一課原本的成功標準寫「開新 Dynasty 時,賽程日期是你設定的年份」,速解與重點整理也說「要開新的 Dynasty 才看得到新年份」,
首頁與「我想做什麼」把這一課當成「讓整季搬到你要的年份」的唯一入口,年度更新那一課的賽程步驟也只跑 mvp_shift_schedule_year.py。
但同一頁的警示卡早就寫了 Windows 實測:賽程檔是 2026 年、執行檔沒改,新王朝畫面仍是 2005;賽程檔是 2005 年、執行檔設 2034 或 2100,畫面就是 2034 或 2100。
也就是王朝模式的年份由執行檔決定,不看賽程檔。現在成功標準改成工具自己的複驗(未對齊日期 0 個、項目數 9 個),
明寫「王朝顯示哪一年不算這一課的成功標準,這一課改的是賽程檔本身,季賽與其他模式的效果本站還沒測」;
步驟 6 不再要求「看到你設的年份」。年度更新那一課的階段表多一列選配(mvp_modernize.py --dynasty-year clock 或指定年份,連到
時鐘版),說明它與 schedule.big 的關係,並補上備份表一列與 --restore 一組。
首頁與「我想做什麼」各加一條「讓王朝從今年開始」。 |
同一個事實寫在好幾個地方,只改了一份:2026-10-29 實測推翻「年份跟著賽程檔」之後,只在這一課的步驟 6 加了一張警示卡, 速解、成功標準、重點整理、首頁、入口索引與年度更新課都沒有回頭改。新手照成功標準開新王朝看到 2005,會以為自己改壞了。 |
| 開張後(2026-10-30) | 中文版為什麼會跳出、全站搜尋 | 全站搜尋 2026-10-29 上線時,把「中文版為什麼會跳出」那一頁在同意閘後面才顯示的小節(出錯怎麼辦、為什麼調記憶體池做不到、重點整理等)也收進了索引:搜尋結果會直接秀出閘後的文字摘錄,點進去又落在藏起來的位置,頁面不捲動,看起來像連結壞了。 現在搜尋只收閘門以前的內容;從搜尋、法律頁或別課連到那一頁的某一節時,閘門卡片會說明「你要找的那一節在勾完下面三項之後才會出現」,勾完按「我了解」會直接捲到那一節。 另外:搜尋框底下多了「啟用快速鍵 /」的開關,Ctrl+K(Mac 是 ⌘+K)隨時可以開搜尋;搜尋功能載入失敗時會顯示訊息,連按不會疊出兩層搜尋框;信箱按鈕按下後鍵盤焦點會移到信箱連結;步驟打勾按鈕的名稱改成「第 N 步做完了:…」;錯誤訊息查詢框只比對前 2,000 字,貼整份終端機輸出不會再卡住。 | 產生搜尋索引的程式只略過程式碼、導覽列這類標籤,沒有處理「藏起來」的區塊;上線前的檢查只看錨點存不存在,看不到「存在但被藏起來」。同意閘的設計原則是同意之前不給任何捷徑通到閘後內容(頁內目錄有做到),搜尋這個新入口沒有被守到。已補上對應的檢查:索引與站內連結只要指到藏起來的位置就會被擋下。 |
| 開張後(2026-10-30) | 網站根目錄的 README.md(不是教學頁,但網站上讀得到) |
這份說明原本指引讀者去一條已經停用的回報管道(寫著「Issues 是公開的」),還叫讀者「下載這個 repo 的任何檔案」。現在改成:回報問題與下架管道一律見回報頁,「這個 repo」改成「這個網站的原始檔」;「貼腳本輸出到公開的地方之前,先把路徑裡的使用者名稱改成 XXX」這條提醒保留。 | 2026-10-29 把回報管道換成電子郵件時,只改了站上的頁面。這份 README 是發布腳本每次重寫的,不在站內檢查的範圍(檢查器只掃 site/),於是同一個事實寫在兩個地方、只改了一份。現在發布腳本裡那一段也納入了一致性檢查。 |
| 開張後(2026-10-30) | 換打擊姿勢與投球姿勢與它附的
mvp_edit_stance.py(工具日期 2026-10-30.2) |
原本工具把 attrib.dat、pitcher.dat 的備份存成通用的 .bak,
遇到事先就存在的 .bak(讀者自己複製的、別的工具留下的)會當成「最早那一份」而不再覆蓋,
--restore 再把它蓋回去。現在備份改成專屬的 attrib.dat.stancebak / pitcher.dat.stancebak;
既有的 .bak 只讀不寫(--set --apply 會印出它的修改時間與大小,另外建 .stancebak);
只有 .bak 時 --restore 預設拒絕(不動檔案、結束碼非 0),確定那份就是要還原的才加 --restore-legacy-bak。
已經用舊版備份過的讀者:升級後第一次 --apply 會多建一份 .stancebak。
還原的預檢是全有全無,開始實際覆蓋之後仍逐檔進行。自我測試從 54 道增為 204 道(其中 161 道是反向餌)。 |
備份檔名是通用的,工具分不出「它自己留的」與「別人留的」,
於是把任何事先存在的 .bak 都當成可信的原始檔。幾個月前的舊名冊被當成原廠檔蓋回去,
會把期間所有的修改一起倒退。 |
| 開張後(2026-10-30) | 換一位球員、在 Mac 上玩 | 兩頁原本教讀者在終端機跑 xattr -dr com.apple.quarantine "整個資料夾"。-r 會把資料夾底下所有檔案的隔離標記一起拿掉,
讀者萬一拖成整個「下載」,連還沒打開過的其他下載檔也被放行;而且路徑放在雙引號裡時,含空白的資料夾經終端機拖曳後會多出反斜線,指令常常找不到路徑。
現在改成:先打 cd 加一個空白、把資料夾拖進來(不加引號),用 pwd 確認,再只對三個檔(play-on-mac 為 ./*.command)跑 xattr -d com.apple.quarantine,不加 -r。
另外,換一位球員工具的互動模式請讀者把遊戲資料夾拖進黑色視窗時,以前只剝掉引號;路徑含空白的 Mac 讀者會一直被說「拖錯資料夾了」。
現在工具會照 shell 的規則解開反斜線跳脫,Windows 維持只剝引號。 |
稽核時看出:寫指令時只考慮了路徑「沒有空白」的情形,沒有想到拖曳進終端機的路徑會被加上跳脫,也沒有想到範圍可能被拖大。 終端機實際插入的形式是推論,本站在輸入含反斜線字串時驗過工具的行為,但還沒在 Terminal.app 上真的拖一次。 |
| 開張後(2026-10-30) | 改傳奇隊與英雄隊的名字 | 兩處。一、速解寫「Windows 指令用 python,Mac 把它換成 python3」,但頁面上每一個指令都是 python3,說法剛好反過來;
改成「下面的指令照 Mac 寫法;Windows 把 python3 換成 python」,步驟 3 也補同一句。
二、「本站沒驗的」被後來的實機結果縮小:同一台 Mac(用 Wine 跑遊戲)、一個已經解鎖隱藏隊伍的設定檔,選隊畫面與投手、打線頁顯示的是字串表(18099、18102),
用兩支隱藏隊伍開一場 Play Now,記分板縮寫(18101、18104)與暫停選單的隊名(18100、18103)也都是字串表,沒有任何一處用 team.dat 的字。
舊句「隱藏隊伍…沒有真的解鎖來看」「沒有人在遊戲裡開一場比賽看過」已拿掉。仍沒驗的是王朝畫面與 team.dat 的城市欄,Windows 也沒看過。
另外照實補上一個副作用:走完比賽設定畫面時,遊戲自己會改寫 MVPOptions_Options.sav,所以進遊戲開比賽之前要先把存放紀錄的資料夾也複製好。 |
第一處是寫的人把「頁面已經是哪一種寫法」記反了,沒有拿指令區塊對一次。 第二處沒有寫錯,是把原本整段「沒驗」縮小:上線時只量了檔案和選隊畫面,現在多看了隱藏隊伍的幾個畫面, 但範圍仍是一台機器、一個設定檔,所以結論只推到看過的那幾個畫面,沒有推到王朝畫面。 |
| 開張後(2026-10-30) | 改主選單的文字與它附的
mvp_menu_text.py(工具日期 2026-10-29.2) |
工具寫入前最後一道「字串長度沒變」的檢查原本是 assert,
而 python -O 會把 assert 整行拿掉;現在改成 if ... raise,
不管怎麼執行都在,檢查沒過時會當場中止、一個位元組都不寫。課頁「這支腳本在做什麼」那一格同步改寫,
並補一道自我測試:槽位終點超出檔案結尾時,這道防線要丟出錯誤。
同一頁兩處自我測試道數原本互相矛盾(一處寫 33 道、另一處寫 51 道),現在統一成實際跑出來的 53 道(其中 36 道是反向餌)。 |
這不是寫錯,是防線的寫法有一個縫:正常執行時 assert 會擋,加了 -O 就不見了。
自我測試本來就拒絕在 -O 下跑,所以這道防線只被「不加 -O」的測試證明過。
道數互相矛盾則是「同一個事實寫在兩個地方,只改了一份」。 |
| 開張後(2026-10-29) | 改傳奇隊與英雄隊的名字 | 這一課上線時寫「哪個畫面用字串表、哪個畫面用 team.dat,沒有逐一在遊戲裡看過」,
也因此把改 team.dat 放在「選做」。現在補上第一個實機結果:在 Mac 上用 Wine 跑遊戲,
拿一支一般球隊,字串表的全名放 LOCFULL、team.dat 的城市與隊名放 DATCITY / DATNICK,
選隊畫面的標題顯示 LOCFULL,所以選隊畫面的隊名取自字串表。
課頁「本站沒驗的」改成:選隊畫面看過了;其餘畫面(記分板、王朝球隊目標、暱稱 / 縮寫 / 城市出現的地方)
與隱藏隊伍解鎖後實際出現的畫面仍沒驗。課裡的做法不用改:主配方改的字串表那六條,本來就是選隊畫面用的那一邊,
team.dat 維持選做。 |
這一條沒有寫錯,是把原本整個「沒驗」縮小一格:上線時只量了檔案,沒有在遊戲裡看; 現在看了一個畫面(一台機器、一支一般球隊),隱藏隊伍本身沒有解鎖看過,所以結論只推到選隊畫面, 沒有推到「所有畫面都用字串表」。 |
| 開張後(2026-10-29) | 改主選單的文字與它附的
mvp_menu_text.py(工具日期 2026-10-29) |
課頁「這支腳本在做什麼」那一格原本寫:同一個編號兩張字串表都有時只會改到排在前面的那一張;
腳本裡的註解還寫「兩張表的編號各自獨立」。兩句都是錯的:選單與比賽中兩張表有 1,310 個共用編號
(文字表 .LOC 那頁早就量過)。
現在 --set 對兩張表都有的編號預設兩張一起改,每張表各自量放不放得下,
任何一張放不下整批停住;新增 --find 字(用字找編號)、FE: / IG:(只改一張)、
--first-only(回到舊行為);自我測試從 33 道增加到 51 道。
另外「本站還沒有改隊名的課」那幾句(換球隊隊徽、能改什麼、我想做什麼三頁)補上:
隱藏的傳奇隊與英雄隊現在有一課。 |
「兩張表編號各自獨立」是寫工具時的假設,沒有量;後來文字表那一頁量到 1,310 個共用編號, 卻沒有回頭改這支工具與這一課 —— 同一個事實寫在兩個地方,只改了一份。 被班主任問到隱藏隊伍的名字時才發現:用舊版預覽,只看得到選單那一張,比賽中那一張從頭到尾沒被改到。 |
| 開張後(2026-10-29) | 球員資料檔全欄位清單的生日那一欄, 以及本站做不到的事總表收的那一條 | 球員資料檔那頁原本寫:生日的第五個樣本 Mike Trout 反推出 1948-01-31,差了一個月, 四比一之下採 1947-12-31,標成「未解、沒有再往下追」,總表也收了這一條。 現在補上:GameCube 版反編譯專案的文件獨立寫出起點(1948-01-01 的第 1 天); 另外核對 6 位球員全部吻合(Jeter 與 Pujols 在剛安裝好的原版就是同樣的欄位值); Trout 不在 2005 年的原版名單裡,他那一列欄位值換算是 1991-07-07、實際生日 1991-08-07, 是那一列資料自己差一個月,不是起點的問題。「未解」標記拿掉,總表少一個標記;原本的文字留在頁面上,只補了後來查到的。 | 不是寫錯,是當時只有四個樣本、沒有獨立出處,不合的那一筆沒辦法判斷是起點還是資料,所以誠實標成未解。 後來有了獨立出處和原版資料才能確定。這一列算補救,不算更正。 |
| 開張後(2026-10-29) | 讓它在 2026 年跑起來:第三輪(時鐘版)、
把賽程換到任何年份的
mvp_modernize.py --dynasty-year |
兩頁原本對想玩老闆模式的人只有一句建議:「想完整玩老闆模式(30 年),請用沒改過年份的執行檔」。
也就是寫死年份的做法下,王朝跟老闆模式只能二選一(起始 2026 的老闆模式只剩 9 季)。
測試者提出另一個方向:王朝的起始年份不要寫死,改成「開新王朝時讀電腦的日期」,老闆模式維持原版 2005。
工具新增 --dynasty-year clock,Windows 實測:電腦日期是當時的 2026 → 開出 2026、改成 2030 → 2030、改成 2001 → 夾回 2005;
老闆模式維持 2005、有「前進至下一日」;舊存檔載得進去。兩頁把建議改寫成「想要兩個都能玩,用 clock」,
並寫明代價(老闆模式畫面上的年份是 2005,測試者說可以接受)與沒測的部分(2100 那一側的夾限、Wine / macOS、老闆模式前進兩天沒有照片)。 |
之前只想到把年份當成一個要改的數字,沒想到可以讓程式自己去問電腦日期; 「請用沒改過年份的執行檔」在當時是對的,但它把問題丟回給讀者,而不是解決它。 這一列不算寫錯,是把原本的建議改寫成有第二個選項。 |
| 開張後(2026-10-29) | 讓它在 2026 年跑起來:第四個旋鈕、
把賽程換到任何年份的
mvp_modernize.py --dynasty-year |
三件事。一、這一頁 2026-10-29 下午上線時寫「王朝最多打到 2034 年,因為遊戲每季往一個 30 格的陣列記一筆」, 工具也拒絕 2035 以上的年份。實機測過之後更正:起始年份 2034 的王朝打完一季進到 2035;起始年份 2100 的王朝日期與星期都對、整季打完進到 2101。 那個 30 格陣列只有老闆模式(Owner Mode)會寫,老闆模式的上限是另一個寫死的 2035 年;王朝的上限是 2125 年。 現在工具放行 2005 到 2100(實測過的最大值),改完年份時印出老闆模式的警語(從起始年份 Y 起只剩 2035 − Y 季、第一天「擁有時間」會顯示 Y − 2005 年), 兩頁都補了這一條。 二、兩頁都寫「賽程要另外換成同一個年份,兩邊一致」。實測:賽程檔是 2005 年、執行檔設 2034 或 2100,新王朝照樣顯示 2034 或 2100, 遊戲會把賽程平移到執行檔的年份,所以改成「賽程檔不用另外換」(只測了王朝模式)。 三、兩頁都寫「跨季與 2034 年的上限沒測」,已經測了;現在沒測的是起始年份 2101 到 2123。 | 第一件:只查了誰「寫入」那個陣列,沒查誰「呼叫」那個寫入的函式,所以沒發現它在王朝裡根本不會執行。 當晚就發現錯了,但為了等實機驗證,公開頁拖到驗證之後才改,中間有一段時間線上是錯的。 第二件:第一輪測試剛好賽程檔與執行檔都是 2026,就推成「兩邊要一致」,沒有拿兩邊不一樣的組合去測。 |
| 開張後檢驗(2026-09-26) | 介面萬用工具 fel_toolkit、 把一套球衣裝進遊戲、 換球隊隊徽、 換掉遊戲的聲音 | 接下面 2026-09-24「不是每一道都有餌」那一列。那時只把說法改成量到的數字,沒有補餌; 這一輪替這四支工具讀者最常撞到的守門補了餌,頁面上的數字跟著改。用同一個量法 (把條件成立就讓腳本停下來的守門一道一道拆掉,再跑自我測試)量到: 介面萬用工具 64 道裡會紅的從 2 道變成 64 道;換球衣 28 道全部會紅; 換隊徽 42 道全部會紅;換聲音那一支 2026-09-24 寫的是 27 道裡 2 道,那次怎麼數到 27 沒有留下紀錄,這次用兩種數法重數同一份程式:「下一行就停下來的 if」23 道,會紅的從 1 道變成 23 道;「丟出錯誤的那一行」29 道,會紅的從 5 道變成 29 道。 四頁都照樣寫著「不是每一道守門都有餌」,並寫出還沒有餌的是哪幾道、為什麼。 另外有兩個數字 2026-09-24 本身就數錯了:換球衣那時寫 29 道,重數是 28 道; 換隊徽那時寫 47 道,重數是 42 道。差的那幾道都沒查出原因,改成以重數的為準。 | 「沒有餌」那一輪改的是說法,守門的證明要等補了餌才算數。 道數數錯,是 2026-09-24 那次沒有留下可以重跑的清單,後來重數對不上也追不回去。 |
| 開張後檢驗(2026-09-26) | 中文版配大球場就跳出的
mvp_font_swap.py 與 mvp_wine_log.sh |
兩件事。一、mvp_font_swap.py 的自我測試在唯讀資料夾擋不住寫入時
(例如用系統管理員身分跑),以前一個字都不印就跳過餌 13,最後一行照樣寫涵蓋 17 組反向餌。
現在會當場印一行 ⏭ 說略過,最後一行照實寫「反向餌跑了幾組、略過幾組」。
二、mvp_wine_log.sh 在遮蔽版沒通過複驗時,說明「log 本身沒事」的那一段會印出原始 log 的完整路徑,
而路徑裡有你的家目錄與帳號名稱;腳本自己的說明卻寫這一段只印檔名。現在那一段只印檔名,
自我測試也多了一道檢查:那一段之後、結論之前不准再印完整路徑。 |
第一件是「擋不住就略過」卻沒有說出來,最後的數字又是寫死的。 第二件是說明跟程式各寫各的,沒有一道檢查把兩邊對起來;把整段輸出貼出去問人的讀者,會連帶貼出帳號名稱。 |
| 開張後檢驗(2026-09-26) | 拆開一個語音檔的
mvp_read_voice.py |
兩件事。一、腳本說明寫「路徑給的是資料夾卻沒加 --list,印一句人話然後回 2(不丟 traceback)」。
這句在 Mac/Linux 成立;Windows 開一個資料夾丟的是另一種錯誤,原本沒有接,讀者會看到一整片錯誤訊息
(Windows 的反應是推論,本站還沒在 Windows 上實測)。現在開檔之前先判斷是不是資料夾,兩種系統印同一句話;
沒有權限讀的檔也改印一句「沒有權限讀這個檔」。
二、用 --list 掃資料夾時,只要有一個封裝檔讀不到,整份清單就停在那一個檔、後面的都沒列到。
現在會點名讀不到的是哪一個、跳過它、其餘照樣列完,最後再說一次清單不完整。 |
第一件是只接了 Mac/Linux 會丟的那一種錯誤,自我測試也只模擬那一種。 第二件是「一個壞項目不該卡住整份概觀」只顧到封裝檔裡面的每一項,整個封裝檔打不開的情況沒有接住 (本站在 Mac 上把一個封裝檔設成沒有讀取權限,重現過線上那一版會停下來)。 |
| 開張後檢驗(2026-09-26) | 把應援曲指給別的球員的
mvp_swap_chant.py |
把改好的索引檔換上去那一步被作業系統擋下來時,腳本以前一律說「遊戲檔可能已經換過了」並叫你 --restore。
本站模擬三種情況(第一次改、改過之後再改、還原本身),正本其實都原封不動。
而已經成功改過一次的人照那句話跑 --restore,會連第一次的改動一起退掉,因為備份留的是最早那一份。
現在先把正本讀回來比:跟動手之前一樣,就照實說沒動到、叫你重跑同一行;比不出來才給還原指令。
另外,在 Mac 上用 Finder 把 spch_cht.txt 鎖定之後第一次 --apply,
會在應援曲資料夾留下一個鎖住、刪不掉的暫存檔(本站實測),也一起修掉。 |
換名失敗跟按 Ctrl-C 中斷共用同一個「結果不明」的處理,沒有讀回來確認; 備份暫存檔抄時間戳的那一步在 macOS 上連鎖定旗標一起抄,之前沒有測到。 |
| 開張後檢驗(2026-09-26) | 一整包模組自動歸位的
mvp_autoinstall.py |
自我測試的最後一行以前寫死「其中 13 塊是反向餌」。 在權限擋不住讀取的機器上(例如用系統管理員身分跑),「模組裡有讀不到的檔」那一塊會整塊跳過、一個字都不印, 最後一行卻照樣說全部通過、13 塊。現在跳過時會先印一行 ⏭ 說這一塊沒驗到, 最後一行改成照實寫「反向餌 13 塊只跑了幾塊」,數字是跑的當下數出來的。 頁面上說明 Windows 會怎樣的那一段也分成兩種情況寫(做不出符號連結的 Windows 會更早停下來,根本看不到這兩行)。 | 「擋不住就略過」沒有說出來,最後的數字又是寫死的,讀者看到「全部通過、13 塊」會以為每一塊都驗過。 |
| 開張後檢驗(2026-09-25) | 法律與版權說明第 1 節 | 原本寫「遊戲程式、美術、音樂、資料檔著作權歸 Electronic Arts 所有」。 遊戲手冊自己的法律聲明是分開寫的:大聯盟球隊的商標與著作是經 Major League Baseball Properties, Inc. 同意使用、 EA 是美國職棒大聯盟球員工會(MLBPA)的官方授權商、小聯盟隊徽是各球團的商標、其他商標屬於各自的所有人; 遊戲收錄的授權歌曲也不是 EA 的。改成逐項列出權利人,並寫明每一項的來源 (手冊讀的是 archive.org 收藏的 PS2 美版手冊掃描檔,PC 版手冊本站沒有原件)。 法律頁開頭與頁尾的非關聯聲明同時補上 MLB 與 MLBPA;其他頁的頁尾照舊,那一句沒有錯,只是沒有列全。 | 那一句沒有附來源,拿手冊的法律聲明一對就對不上。 「這個產品是誰的」跟「產品裡每一樣東西的權利是誰的」是兩件事,授權來的東西只是被放進去,不會因此變成 EA 的。 |
| 開張後檢驗(2026-09-25) | 法律與版權說明第 2-1 節 | 原本寫遊戲的使用者授權合約「就在遊戲安裝資料夾的 Support\ 底下,是純文字,打得開」。
本站拿兩份剛安裝好的原版(英文版、中文版)與測試機那一份逐檔搜過:Support\ 底下只有讀我檔案,
裡面提到授權合約的只有安裝 DirectX 那一句。改成:它不在安裝好的資料夾裡,要看請找光碟、包裝或手冊;
並寫出資料夾裡真正找得到的那一份 —— data\easo\commonHtml\about\ 底下的 EA 線上服務使用條款,
以及它對線上服務用的軟體寫了不得修改、不得還原工程。同一節開頭「隨附一份使用者授權合約」也改成「本站手上沒有原件」。 |
本站找不到當時怎麼確認的紀錄,而三份安裝都對不上這個位置。 越具體的句子越像查過,讀者會照著去找,找不到時會懷疑自己的安裝,而不是懷疑這一句。 |
| 開張後檢驗(2026-09-24) | 備份與還原 SOP (所有步驟可以打勾的頁都用同一套紀錄) | 備份那一課 2026-09-23 改版,在原本四步前面加了四個「整包複製」的步驟,從 4 步變成 8 步。 步驟的勾選原本是照排列順序記在你的瀏覽器裡,所以在這次改版之前、四步那一版勾過步驟的讀者, 之後重開這一頁,新加的整包複製步驟裡位置對應的那幾步會顯示成已勾 (之前四步全勾,就是新的第 1 到 4 步全亮),其實那幾步沒做過。 改版之後才勾的讀者不受影響;同一次改版裡,其他有步驟的頁步驟數都沒變,只改了字,沒有勾錯。 改成:勾選照每一步的標題記,這一版之前存的勾選一律不再套用,開頁時清掉一次, 頁面上會說一次原因,請照現在的步驟重新勾一次。 法律與版權說明裡「瀏覽器本機儲存」那一列,存的內容跟著改寫。 | 用排列順序記紀錄,步驟一增減就會對到別的步驟上 —— 偏偏出事的是備份那幾步,而且顯示成「做過了」比顯示成「沒做」危險。 |
| 開張後檢驗(2026-09-24) | 本站怎麼量的的
mvp_fingerprint.py |
頁面寫「路徑給錯時,錯誤訊息也不會把你給的路徑印回來」,
2026-09-23 那一列訂正也寫「現在路徑給錯的時候……預設都不印你給的路徑」。
可是 Python 內建的參數解析自己先擋下來的錯誤,不經過腳本的遮蔽:
把路徑接在 --all= 後面,或選項只打一半(例如 --s=)又接了路徑,
錯誤訊息會把你打的那一串原樣印出來。本站拿四個 Python 版本各試 6 種寫法,24 次全部印出來。
改成:這類錯誤只印用法與一段中文說明,不重複你打的內容,加 --show-full-paths 才照原樣印。
另外,把輸出存成檔案而檔案的編碼存不下 ⚠️ 這類符號時(例如繁體中文版 Windows 用的 cp950),
以前印到那裡就中斷、只留下半截輸出;現在存不下的字換成問號
(本站在 Mac 上模擬這個編碼,Windows 上還沒實測)。
自我測試從 25 道增加到 30 道。頁面那句話本身沒有改字,現在才是真的。 |
2026-09-23 那一輪只攔了腳本自己處理的錯誤; 參數解析自己擋下的那幾種錯走的是另一條路,沒有測到。 編碼那一條是只在 UTF-8 的終端機上跑過。 |
| 開張後檢驗(2026-09-24) | 中文版配大球場就跳出的
mvp_wine_log.sh |
另外產生的「可回報」版沒有通過複驗時,這支腳本印
「遮蔽版沒有通過複驗,已經刪掉,不留一份「以為安全」的檔。」,
但它只下了刪除,沒看刪掉了沒有:資料夾是唯讀、或權限不夠的時候,
那一份沒過複驗、可能還留著帳號名稱的檔其實還在,畫面卻說已經刪掉,
而刪除失敗時系統自己的錯誤訊息還會帶出完整路徑
(本站在唯讀資料夾裡重現過:檔案還在,畫面說已經刪掉)。
改成:刪完再看檔案還在不在;刪不掉就照實說,只印檔名,請你自己刪、不要貼出去;
之後按 Ctrl+C 的收尾一樣照實說。自我測試從 75 項增加到 82 項。 |
只測過刪得掉的情況。 這支腳本遇到指令失敗不會自己停下來,刪除失敗也照樣往下走,印出「已經刪掉」。 |
| 開張後檢驗(2026-09-24) | 把一位球員改成你想要的球員的 Windows 雙擊檔 | 這一列是補救。頁面照實寫著「Windows 那個雙擊檔只確認 python 叫得起來,不會比對版本號」:
電腦上先找到的是 3.7 以前的舊版 Python(例如 Python 2 或 3.6)時,雙擊檔就拿那一支去跑,工具跑不起來。
改成:依序試 python、py、python3,真的跑一次,用第一支 3.7 以上的;
都不符合就印英文 This computer does not have Python 3.7 or newer yet.。
頁面上引用的英文訊息與那句限制跟著改,並標本站還沒在 Windows 上實測。 |
2026-09-23 那一輪把 Mac 那支雙擊檔改成真的跑一次、3.7 以上才用, Windows 那支沒有跟著改,仍然只問版本號叫不叫得出來,兩支沒有對齊。 |
| 開張後檢驗(2026-09-24) | 把真實成績換算成遊戲裡的能力值、 換掉遊戲的聲音、 介面萬用工具 fel_toolkit、 備份與還原 SOP、 換掉開機畫面、 把一套球衣裝進遊戲、 中文版配大球場就跳出、 換打擊姿勢與投球姿勢、 幫球員換一張臉、 改記分板的顏色、 換球隊隊徽、 把賽程換到任何年份、 關掉開場動畫、 做一張新的球員臉皮、 修改球員跑壘速度、 把一位球員改成你想要的球員、 球場超過 10MB 就當機 | 跟下面「六個旋鈕、打包」那一列同一件事,範圍更大。
這幾課的頁面或附的腳本說明寫「每一道守門都下了餌」「每一道都配一個餌」
「把每一道把關正反各測一次」「每一條都下餌」「證明每一道檢查真的會擋」;
有幾課把範圍限定在「新守門」「那兩輪補的守門」,限定之後照樣不成立。
本站把自我測試以外、條件成立就讓腳本停下來的守門逐一拆掉(那一個 if 改成永遠不成立)再跑自我測試,
例如:把真實成績換算能力值 25 道裡會紅 5 道、換掉遊戲的聲音 27 道裡 2 道、
介面萬用工具 64 道裡 2 道、做新臉皮 44 道裡 6 道、跑壘速度 23 道裡 2 道、
換球員 31 道裡 7 道、換臉 34 道裡 7 道、中文版那一課兩支各 20 道裡 5 道與 6 道。
改成照實寫「不是每一道都有餌」,附量法與量到的數字。
中文版那一課的第三支 mvp_wine_log.sh,自我測試那一段的標題也寫「每一道守門配一個餌」:
把「執行檔是符號連結就不跑」那一道拆掉,自我測試照樣全綠,標題一併改成「不是每一道都有」。
另外四課(2026 年的電腦怎麼跑得起 2005 年的遊戲、
封裝檔可以拆成散裝嗎、
把應援曲指給別的球員、
換球員大頭照)
的腳本說明把「每一道守門」收窄成實際驗得到的範圍。守門本身沒有改:腳本照樣會擋,只是自我測試證明不了。 |
跟「六個旋鈕、打包」那一列同一個原因:「每一道都有餌」是照寫餌的人想測的那幾道講的, 沒有反過來把守門一道一道拆掉,看自我測試會不會叫。 |
| 開張後檢驗(2026-09-24) | 備份與還原 SOP、 把你改好的東西打包成一包、 把一位球員改成你想要的球員 | 備份與打包兩支腳本的說明寫出一支檢查器在本站工作資料夾裡的路徑,說「守門的是」它,
備份那一支還叫你「要知道現在缺不缺,跑上面那支檢查器」;換球員那一課正文也寫這幾項「鎖在」另一支檢查器裡、
每次都會重跑,同樣附了路徑。
改成說明那是本站發布前自用、不在下載包裡的檢查,不再寫路徑;備份清單那一段另外教你自己核對:
在各課腳本裡搜「bak」,把引號裡的 .xxxbak 挑出來跟清單比。 |
那幾支檢查器只在本站自己的工作資料夾裡, 下載包跟公開的原始碼都沒有它們,照著說明去找會找不到檔。 |
| 開張後檢驗(2026-09-24) | 球場超過 10MB 就當機、 執行檔上的六個旋鈕、 中文版配大球場就跳出、 EA 自己的繁體中文版是怎麼做的 | 2026-09-23 那一列(記憶體池說過頭)的 ② ③ 有幾處漏改。 〈球場超過 10MB 就當機〉寫「本站後來把真因找出來了,而它不是檔案大小」 「而不是球場檔本身有多大」,重點整理寫「中文版跳出的真因是遊戲寫死的 64 MB 記憶體池,不是球場檔多大」, 本站沒驗的那一條寫「跟球場檔大小沒有關係 —— 把球場縮小並不會讓中文版不跳出」; 〈執行檔上的六個旋鈕〉寫「其實跟球場多大沒有關係」,而同一句前半還寫著「再配一座大球場就滿了」。 一律改成「不是『球場檔不能超過 10MB』那回事/那條線」; 「把球場縮小並不會讓中文版不跳出」改成量到的事實「本站把一顆球場清到 8.51 MB,中文版照樣跳出」。 同一課還有一處「四種池子大小的實機表」,改成「三種池子大小、四次實機測試的表」。 〈中文版配大球場就跳出〉附的換字型腳本,說明裡從「清到 8.51 MB 照樣當」直接推到問題跟檔案大小無關 (頁面最後的原始碼附錄是同一段),改成「所以卡住的不是『球場檔不能超過 10MB』那條線」; 〈EA 自己的繁體中文版是怎麼做的〉的訂正段說真正卡住的不是球場檔、而是執行檔裡寫死的一塊 64 MB 記憶體池, 改成「真正卡住的不是『球場檔有沒有超過 10MB』」。 | 跟 2026-09-23 那一列同一種病:球場大小不是無關,只是卡住的不是傳說裡那條 10MB 的線。 那一次搜的是「跟球場大小沒有關係」,這幾句寫的是「球場檔大小」「球場多大」「檔案大小」「球場檔」,字不一樣,沒被一起改到。 「把球場縮小並不會…」是拿一個樣本推成通則。 |
| 開張後檢驗(2026-09-24) | 中文版為什麼會跳出、 中文版配大球場就跳出 | 兩頁的頁面說明(網址被分享、全站目錄、搜尋結果摘要會用的那一段)寫 「兩個地方各改一個位元組就解決了」/「就好了」,沒有前提。 改成先寫前提:「照原版光碟安裝的那一份做不到;做得到的,兩個地方各改一個位元組就解決了」 (〈中文版配大球場就跳出〉寫「就好了」)。 | 2026-09-23 那一列 ① 在名詞、課表與正文開頭補了這個前提,這兩段摘要漏掉了。 摘要常被截斷,所以前提要排在前面。 |
| 開張後檢驗(2026-09-24) | 執行檔上的六個旋鈕、 把你改好的東西打包成一包 | 兩課都說自我測試替每一道守門下了餌。
六個旋鈕那一課寫「包含十個區塊,每一道守門都下了餌 —— 把守門拆掉自我測試就會變紅」;
打包那一課寫「對每一道守門各下一個餌」,mvp_pack.py --selftest 全綠時自己也印
「每一道守門都真的擋下了它該擋的東西。」。
本站把兩支腳本在自我測試以外、條件成立就讓腳本停下來的守門逐一拆掉再跑自我測試:
mvp_exe_pe.py 17 道裡只有 1 道會讓它變紅,
「IAT 目錄是空的,只加 --sections 就不寫」那一道拆掉照樣全綠;
mvp_pack.py 23 道裡只有 3 道會變紅,
--install 時「包裡的檔跟 manifest 寫的 SHA-256 對不上,不敢裝」那一道拆掉照樣全綠。
兩頁改成照實說哪幾道有餌、哪一道沒有,腳本全綠時印的那一句也改掉了。
守門本身沒有改:腳本照樣會擋,只是自我測試證明不了。 |
「每一道都有餌」是照寫餌的人心裡想測的那幾道講的, 沒有反過來把守門一道一道拆掉,看自我測試會不會叫。 |
| 開張後檢驗(2026-09-24) | 本站做不到的事、 關於本站 | 這一頁的開頭與頁面說明寫「清單不會漏收哪一頁」,〈關於本站〉介紹這一頁時也這樣寫。 但換球員大頭照重點整理的最後一條, 從 2026-09-04 總表第一次產生起,就從來沒有出現在總表裡; 2026-09-23 那一列訂正把七分鐘系列補進來之後,這句話照樣不成立。 漏掉的內容是:這支腳本只處理 DXT3,而剛安裝好的原版 2,391 張大頭照全部是 ARGB32, 所以原版目前一張都換不了。 現在這一條收進來了,總表變成 96 頁、96 條,教學那一區 40 頁(原本是 95 頁、95 條、39 頁)。 產生這一頁的程式也加了檢查:以後哪一頁的標籤寫法再換,發布前就會被擋下來。 那句話本身沒有改字,現在才是真的。 | 產生這一頁的程式只認一字不差的「本站沒驗的」標籤, 那一課寫的是「本站沒驗的、還沒做的」,後面多接幾個字就認不得。 「不會漏收」靠的是程式,程式卻沒有檢查自己漏了什麼。 |
| 開張後檢驗(2026-09-24) | 球場超過 10MB 就當機 | 「腳本裡每一段在做什麼」表的 cmd_shrink() 那一格寫:
換名之後才被打斷(含外接碟被拔),畫面會照實說「已經換成清過的那一版」,
並印出可以直接複製的 --restore。
線上那一版腳本在「換名之後複驗時讀不到檔」這種情形,只印「停下來了:讀不到 …」,
不說已經換過,也不印 --restore。
這一版改的是腳本:這條路跟 Ctrl-C 那條路用同一段收尾,照實說已經換過並印出 --restore,
那一格現在成立。出錯處理表「作業系統不讓我讀寫這個檔」那一列也補上「讀不到 ○○」與接下來怎麼做。 |
腳本把「讀不到檔」包成另一種錯誤往上丟,而那種錯誤的收尾沒有看檔案是不是已經換過。 頁面那一句是照 Ctrl-C 那條路寫的,外接碟被拔走的是另一條路。 |
| 開張後檢驗(2026-09-24) | 中文版配大球場就跳出的
mvp_wine_log.sh |
照在 Mac 上玩 MVP 2005設好
WINEPREFIX 再跑這支,它每次都印「找不到〔…〕,
這一輪會用 Wine 的預設環境。那跟你平常玩的環境不一樣」
(它找的是遊戲資料夾底下一個站上從來沒有提供過的資料夾)。
其實它沒有清掉你設的 WINEPREFIX,Wine 用的就是你平常那一個 ——
畫面上說的,跟它實際用的不是同一個環境。
頁面也寫它會讀遊戲資料夾裡的 .wine_path 設定檔,而站上從來沒有提供會寫這個檔的東西。
改成:沿用你設的 WINEPREFIX,畫面上照實說用的是哪一個(沒設才提醒用的是預設環境),
指到不存在的資料夾或相對路徑就先停下來;
要指定 Wine 改用 MVP_WINE="<Wine 的完整路徑>",一樣只認標準安裝位置;
遊戲資料夾裡的檔一律不拿來找 Wine。 |
這支腳本是從班主任自己用的啟動工具改出來的,沿用了那邊的資料夾結構, 而站上從來沒有提供那個結構。自我測試只在有那個結構的假資料夾裡跑過, 沒測過讀者手上真正的情況。 |
| 開張後檢驗(2026-09-24) | 一整包模組自動歸位、 執行檔上的六個旋鈕、 介面萬用工具 fel_toolkit、 關掉跑壘者速度數值、 改主選單的文字、 換打擊姿勢與投球姿勢、 幫球員換一張臉 | 七課都寫著跑 --selftest 會印出幾道檢查,
數字停在更早的版本,跟線上那支腳本實際印出來的對不上:
① 自動歸位寫 40 道、10 塊反向餌,實際印 46 道、12 塊;
② 六個旋鈕寫「十項全過」「包含十個區塊」,實際是 12 個區塊;
③ fel_toolkit 寫「11 組全部通過」,實際是 13 組;
④ 跑壘者速度寫 9 個反向餌,實際是 11 個(腳本自己的說明也寫 11);
⑤ 主選單文字寫 29 道、20 道反向餌,實際是 31 道、22 道,
建不了符號連結的機器跳過的是 9 道不是 7 道(跳過之後 22 道、15 道那組是對的);
⑥ 打擊姿勢寫 42 道、28 道是餌,實際是 52 道、37 道;
⑦ 換臉寫 39 道,實際是 53 道。
這一輪七支都多了「在 python -O 底下拒跑」那道守門自己的餌,
頁面改成新版實際印出來的數字:48 道、13 塊;13 個區塊;14 組;12 個;
33 道、23 道(建不了符號連結時 24 道、16 道,這一組是模擬出來的,Windows 上還沒實測);
54 道、38 道;55 道。 |
後來幾輪陸續幫腳本補了餌,頁面上寫死的數字沒有跟著改。 讀者照著跑,看到的數字跟頁面不一樣,分不出是腳本壞了還是頁面舊了。 |
| 開張後檢驗(2026-09-24) | 備份與還原 SOP、 七分鐘從電腦小白到可以修改模組 | ① 備份 SOP 複製五個檔那一步的「你會看到」框寫 「確切用字看你的 Windows 版本,本站沒有逐版本比對過」,讀起來像至少比對過一個版本; 實際上一個版本都還沒實測過。改成「這幾句訊息本站還沒在 Windows 上實測,你的畫面上用字可能略有不同」。 ② 七分鐘電腦課出錯處理表 2026-09-23 新加的 「按下載之後,瀏覽器說檔案被擋下來、『可能有害』或『不常下載』」那一列,沒有標還沒實測 (它連過去的第 0 課那張卡片有標),補上。 | ① 「沒有逐版本比對」把「完全沒測」講成了「測得不夠細」。 ② 新加那一列時搬了第 0 課的內容,卻沒把那張卡片的但書一起帶過來。 |
| ⭐ 開張後檢驗(2026-09-23) | 一次更新整個年度、 名詞小教室的「還原」、 課程地圖 | 三處都說還原順序不重要: 年度更新那一課寫「每支工具還原的是自己那個檔的備份,互不干涉」, 名詞「還原」的解釋寫「每支工具只還原自己動過的那個檔,互不干涉」 (各頁正文裡標出來的「還原」,點開看到的也是這一句), 課程地圖寫「八行清單,還原順序不重要」。這是錯的。 三處都改成要倒著跑:最後做的那一堂先還原。
年度更新那張還原清單整組倒過來排,
並補上原本漏掉的「做一張全新的臉」那一行(還原 |
同一個檔會被好幾堂寫到。
在這一課的流程裡,attrib.dat 被三堂寫過(名冊、能力值、臉),
而每一支的還原,都是把整份檔蓋回它第一次動手之前的樣子。
本站用四位球員的測試名冊照舊清單由上往下跑:三支都印還原成功、結束碼都是 0,
名冊卻還留著名冊與能力值那兩堂的修改;倒著跑,才逐位元組回到動手之前。
每一支都說自己成功,合起來卻是錯的。 |
| ⭐ 開張後檢驗(2026-09-23) | 執行檔上的六個旋鈕 | 速解最後一步(第 6 步)「後悔了就還原」原本寫:兩支都套用過的話,
先還原 mvp_exe_pe.py,再還原 mvp_modernize.py,
並說反過來會卡住。順序寫反了。
這一頁的套用順序是先 mvp_exe_pe.py、後 mvp_modernize.py,
照它自己寫的「後改的先還原」,應該先還原 mvp_modernize.py。
現在改過來,並補一句:先上過
2026 年的電腦怎麼跑得起 2005 年的遊戲
才來做這一課的,兩行要倒過來跑。
七分鐘調好你的執行檔那一頁的順序一直是對的。 |
本站拿原版執行檔的複本照舊順序實測:
mvp_exe_pe.py 還原完,檔案其實已經回到原本;
接著 mvp_modernize.py --restore 停下來(結束碼 2),建議你手動複製它那份備份 ——
照做反而會把 mvp_exe_pe.py 的修改帶回來。
照新順序跑,兩支都成功,逐位元組回到原本。
規則寫對了,舉的例子卻跟規則相反。 |
| ⭐ 開張後檢驗(2026-09-23) | 課程地圖 | 兩件。
①「介面實例集」與
「一次更新整個年度」兩張課卡掛的是
「只看不動」,但兩課都要你加 --apply 真的寫檔
(介面實例集整頁正文有 9 個這樣的指令區塊,年度更新的速解有 6 個)。
改成「會改你的檔案」,圖例的課程卡數從 29 張改成 31 張。
②「備份與還原 SOP」那張卡寫「該備份的只有五個檔、合計 3.9 MB,不必複製整個遊戲」,
跟那一課自己的說法(五個檔只涵蓋一部分課程)、
也跟各課開頭那張「先完整備份整個遊戲資料夾」的卡片衝突。
改成先完整備份整個遊戲資料夾,五個檔只是精簡做法。 |
「只看不動」是專門給沒把握的新手的安全標記,它標錯的代價最大。
原本的檢查只比對課卡自己的說明跟徽章有沒有打架,沒有打開那一課去看指令。
現在多了一道:掛「只看不動」的課卡,連過去那一頁的指令裡只要出現 --apply 就亮紅燈。
② 是課卡把那一課的精簡做法寫成了唯一的做法。 |
| ⭐ 開張後檢驗(2026-09-23) | 在 Mac 上玩 MVP 2005、 2026 年的電腦怎麼跑得起 2005 年的遊戲、 首頁、課程地圖 | ① 裝 Wine 那一步原本寫「本站實測用的是這一種」,
指令是 ② 這一課寫「本站沒有看到畫面」,首頁與課程地圖寫 「本站第一次真的把遊戲在 Mac 上跑起來」。 實際上班主任自己的 Mac 有看到畫面、玩過; 沒看到畫面的是這一頁那一組沒有人看著螢幕的測試, 照這一頁新建的乾淨環境在有螢幕的 Mac 上會不會出畫面,還沒驗。改成分開講。 |
① 本站測試機是 2026-04-13、移除前三天裝好的,之後沒有人在乾淨的 Mac 上重跑過; 指令本身也少了第三方來源的前綴。 這一課 2026-08-29 上線時,這一行在新的 Mac 上就已經跑不動了。 ② 是把「一組測試」的結果寫成了「本站」的結論。 |
| ⭐ 開張後檢驗(2026-09-23) | 回報與下架、 法律頁第 10 節、關於、 課程地圖、 十四年後打開自己的模組資料夾, 以及 32 支腳本的檔頭 | 這些地方原本寫部落格留言區「不用開帳號」「不需要任何帳號」 「三條裡唯一不用註冊就能用的」「唯一的無門檻管道」。 2026-09-23 實測,留言表單只剩「Google 帳號」一個選項,班主任確認這是刻意的設定。 頁面改成照實寫要 Google 帳號、不用註冊 GitHub; 腳本的檔頭改成不寫門檻,只寫「各管道要不要帳號寫在那一頁」(指回報與下架那一頁)。 回報頁「為什麼有這一頁」那一段保留原文,後面加一句訂正。 | 同一件事寫在六十多個地方 (每支腳本的檔頭,加上各課附錄裡的同一行),留言設定一變,全部跟著錯。 留言區的匿名留言最後一則是 2026-08-11,那時還收得到;什麼時候改成只收 Google 帳號,本站沒有記錄。 負責比對兩頁下架管道的那道檢查,只比管道名稱與連結, 不比「要不要帳號」那一格,所以沒有亮燈。 |
| ⭐ 開張後檢驗(2026-09-23) | 本站怎麼量的的
mvp_fingerprint.py、
中文版配大球場就跳出的
mvp_wine_log.sh |
①〈本站怎麼量的〉寫「這份預設輸出可以直接貼出來,
不必自己塗掉帳號名稱」,但路徑給錯的時候, ② ③ 同一支找不到 Wine 時,叫你先去跑「啟動器.command」,但你手上沒有這個檔; 改成指向在 Mac 上玩 MVP 2005那一課。 |
① 遮蔽只做在「跑成功」那條路上,錯誤分支沒有測過 —— 而讀者最常把錯誤訊息整段貼出去問人的時候,正是路徑給錯的時候。 ② 規則寫成「遇到空白就停」,而拿來測的名字剛好都沒有空白。 ③ 訊息裡點名的,是一個站上從來沒有提供過的檔案。 |
| 開張後檢驗(2026-09-23) | 一次更新整個年度的速解 | 兩步。
① 第 3 步原本是 mvp_ratings.py --fit,接著 --write … ratings.csv --apply。
但 --fit 是唯讀的,只印出係數,不會產生 ratings.csv,
照抄下一行會印「找不到 ratings.csv」。改成跟
把真實成績換算成遊戲裡的能力值
那一課自己的速解一樣的 --convert stats.csv --out ratings.csv。
② 第 1 步「先確認備份在」原本只給檢查腳本一個參數,
那樣它檢查外部備份的那一段只會印「沒有給」,等於沒看任何備份。
改成先把整個遊戲資料夾複製一份,再把遊戲資料夾和複本一起交給它,
並註明它只看幾個核心檔(這一輪要動的大頭照、開機畫面、語音檔都不在它的清單裡)。 |
① 能力值那一課自己的速解一直是 --convert,這一頁抄錯了旗標。
② 是只確認了指令跑得起來,沒看它跑完到底檢查了什麼。 |
| 開張後檢驗(2026-09-23) | 把一位球員改成你想要的球員、 在 Mac 上玩 MVP 2005 | ① 速解說下載的壓縮檔「雙擊它就會自己解開」,這只在 Mac 成立;
Windows 雙擊壓縮檔只是打開來看,在裡面直接雙擊 .bat 會找不到 mvp_player.py。
改成 Windows 用右鍵解壓縮,並加一條出錯時的說明(右鍵選單的字樣本站還沒在 Windows 上實測)。
② Mac 擋住雙擊檔時,兩課教的第一招原本是「按右鍵 → 打開」,
Apple 從 macOS 15 起已經拿掉這條路,而本站量測用的正是 macOS 26。
改成先講「系統設定 → 隱私權與安全性 → 強制打開」,右鍵降成 macOS 14 以前的做法
(這兩招對 .command 的實際畫面本站還沒實測)。
③ 頁面寫「那兩個雙擊檔只確認 python 叫得起來」,並把 Windows 那支的提示引成中文。
實際上 Mac 那支只看 python3 這個名字在不在 ——
沒裝開發者工具的 Mac 也有這個名字,會走錯路 —— 而 Windows 那支印的是英文。
Mac 雙擊檔改成真的跑一次、要 3.7 以上才用;頁面分 Mac、Windows 兩段照實寫,
Windows 那一句改成照實引用英文原句。 |
① 走一遍新手流程時只模擬了 Mac。 ② 教的是舊版 macOS 的做法,沒有跟著 Apple 的改版更新。 ③ 是把雙擊檔想要做的事,寫成了它實際做的事。 |
| 開張後檢驗(2026-09-23) | 第 0 課 新手基本功、 七分鐘從電腦小白到可以修改模組 | ① 兩頁裝 Python 的步驟都寫,安裝畫面上那個加進 PATH 的勾選框
一定要打勾。python.org 最上面的大按鈕已經換成 Python install manager,
它沒有這個勾選框。兩頁改教 install manager,舊式安裝程式改成退路
(新的安裝方式本站還沒在 Windows 上實測,頁面上有標)。
② 第 0 課說 Windows 跳出 Microsoft Store 頁面「那是假的,關掉」。
那是 Windows 內建的轉接捷徑,不是 Python 本身;Store 上的 Python install manager 是官方版。
③ 第 0 課寫找不到命令提示字元時「改搜尋 cmd 或『終端機』(Win 11 換過名字)」——
命令提示字元沒有改名,Win 11 的終端機預設開的是 PowerShell。
④ 七分鐘電腦課第 3 步:Windows 要打 cd /d,
遊戲裝在別的磁碟機時才切得過去(本站還沒拿裝在 D 槽的遊戲實測)。
同一頁「只給 python3 的課」舉的例子是〈七分鐘調好你的執行檔〉,那一課後來已經兩種寫法都給,
換成〈2026 年的電腦怎麼跑得起 2005 年的遊戲〉。 |
① 是外面變了:Python 官方文件寫著,舊式的完整安裝程式從 3.14 起不再建議使用、 3.16 起不再提供,python.org 主推的換成了 install manager。 ②④ 對照 Python 與微軟的官方文件改正。 |
| 開張後檢驗(2026-09-23) | 名詞小教室的「記憶體池」、 中文版為什麼會跳出、 中文版配大球場就跳出、 執行檔上的六個旋鈕、 七分鐘調好你的執行檔、 首頁、課程地圖、 球場超過 10MB 就當機、 課表 | 記憶體池那件事,有三處說過頭。 ① 名詞「記憶體池」寫「改成 128 MB 就好了」,漏了前提: 照原版光碟安裝的那一份做不到。課表急救班第 1 堂與〈中文版配大球場就跳出〉的開頭也補上同一句。 ② 四頁寫的是「四種」記憶體池大小的實機測試, 實測表其實是 64 MB(兩次)、128、512 MB 三種大小、四次。 ③ 首頁、課程地圖與兩課共 6 處寫「跟球場大小沒有關係」,說得太滿 —— 同一頁就寫著池子被字型吃掉之後,塞不下一座大球場。 改成「不是『球場檔不能超過 10MB』那回事」。 〈球場超過 10MB 就當機〉的頁面說明(網址被分享、或被搜尋引擎拿來當摘要的那一段)原本寫它「發現真正的原因」, 其實那一課找到的是球場檔越改越大的原因,改寫成這樣,並寫明中文版跳出另有原因,是記憶體池。 | ② 是跑了四次,被寫成四種 —— 數量剛好對得上。 ① 和 ③ 都是把結論講得比證據乾淨: 球場大小不是無關,只是卡住的不是傳說裡那條 10MB 的線。 |
| 開張後檢驗(2026-09-23) | 把打擊視角調成你喜歡的角度、 BIGF 封裝格式、總設定檔 datafile、 字型檔 .ffn、備份與還原 SOP、 換球員大頭照 | 路徑寫法兩個方向各錯一次。
① Windows 的寫法給 Mac 用:--big data\datafile\datafile.big
在 Mac 的終端機裡,反斜線會被吃掉,變成 datadatafiledatafile.big,工具會說找不到。
前四頁改成 data/datafile/datafile.big(Windows 上的 Python 一樣能讀)。
備份課的還原表原本只說「Mac 上把 python 換成 python3」,補上路徑裡的 \ 也要全部換成 /。
② Mac 的寫法給 Windows 用:換大頭照那一課標著 Windows 的 6 行寫
~/Desktop/5826.png,命令提示字元不會展開 ~,
匯出會說資料夾不存在,匯入會丟出一大段英文錯誤。
改成 "%USERPROFILE%\Desktop\5826.png"(這一行的 Windows 寫法本站還沒實測)。 |
每一條指令都分成 Windows 與 Mac 兩種寫, 換掉的卻只有開頭的 python/python3,路徑的寫法沒有跟著換。 |
| 開張後檢驗(2026-09-23) | 全站 59 頁的先備份卡、 備份與還原 SOP、首頁、 第 0 課 | 先備份卡寫「紀錄」跟遊戲檔混在同一個資料夾裡,寫成一定如此。
遊戲裝在 Program Files 底下、又不是用系統管理員身分開的時候,
Windows 可能把存檔轉存到別的地方。
首頁、第 0 課與備份 SOP 的完整卡加上這個但書,備份 SOP 另外教你怎麼查;
其他 56 頁改成精簡卡,連到備份 SOP 的「整包複製」那一節。 |
微軟的說明文件寫著,這個機制預設是開著的, 而且只對 32 位元、沒有宣告要用哪一種權限執行的程式有效; 本站讀過 MVP 的執行檔,兩項都符合。 但本站還沒在 Windows 上實測它會不會真的被轉走,所以寫成「可能」,並教你自己看一眼。 |
| 開張後檢驗(2026-09-23) | 備份與還原 SOP | 頁面上有兩處叫你自己跑 selftest_backup_suffixes.py
確認備份副檔名現在有幾種。那是本站維護用的檢查,沒有跟著網站發布,讀者拿不到。
改成說明本站每次推上網之前會自己跑它,讀者不用跑。 |
寫的時候是站在維護者的位置寫的: 那支檔在本站自己的資料夾裡找得到,在讀者那一邊並不存在。 |
| 開張後檢驗(2026-09-23) | 換球員大頭照、 關掉跑壘者速度數值 | 換大頭照那一課原本寫:不是 Ctrl-C 而是出了別的錯(外接碟被拔掉、權限沒了),
也會先印「停下來了」、結束碼 2。
實際上資料夾寫不進去的時候(例如遊戲裝在 Program Files 底下),
它印的是一大段英文錯誤訊息、結束碼 1。
腳本改成動手之前先試寫一次,寫不進去就用中文說明、回 2;
頁面那一段照實際行為改寫,出錯處理表加一列。
關掉跑壘者速度那一支也加上同樣的試寫,以前遇到同樣的情況也是英文錯誤訊息。 |
那一句沒有對應的實測:拿一個寫不進去的資料夾跑一次,就看得出來不一樣。 這次本站在 Mac 上用唯讀資料夾模擬過兩支;Windows 上還沒實測。 |
| 開張後檢驗(2026-09-23) | 換球隊隊徽、 我想做什麼 | ① 換隊徽那一課說「隊名寫在名單裡,那是改名單那一課的事」,
但那一課改的名冊裡沒有隊名。改成隊名在 data\database\team.dat、
本站還沒有改隊名的課,並連到為什麼你加不了新球隊
(腳本裡的說明同步改)。〈我想做什麼〉的「做不到」表也補上「加一支新球隊」那一列。
②〈我想做什麼〉的重點整理寫「課程地圖照難度排,兩邊指向同一批課」,
實際這一頁只連了 30 課,課程地圖有 39 課。
改成「只挑最常被問到的」,並補上換隊徽、改主選單文字、改記分板顏色三列。 |
① 那一句把事情推給另一課,卻沒去看那一課改的檔裡有沒有隊名。 ② 兩頁本來就不是同一份清單,那一句把它們寫成了同一份。 |
| 開張後檢驗(2026-09-23) | 法律頁第 8 節 | 原本寫「『不散布改好的遊戲檔案』這條界線,本站三項承諾裡本來就有」。 但首頁的三個承諾是「不用會寫程式/一定先教你備份/卡住有地方問」,從來沒有散布那一條; 2026-08-25 寫下這句時的首頁也一樣。 改成「本頁第 1 節就寫著」(第 1 節原文是「修改後的遊戲檔案也不散布」)。 | 引用了一個不存在的出處,後來改寫這一段時又原樣留了下來。 |
| 開張後檢驗(2026-09-23) | 本站做不到的事 | 這一頁 2026-09-04 上線以來,都沒有收七分鐘系列 9 堂結尾各自那張
「⚠️ 這一課到哪裡為止」卡片,七分鐘那一區一直只列 1 頁;
而 2026-09-06 起,這一頁的開頭與頁面說明都寫著「清單不會漏收哪一頁」。
例如七分鐘學會置換遊戲開始畫面並匯入遊戲那張卡片的第一句
「開機大圖(splash)目前匯不回去。」,在總表裡查不到,總表也沒有連到那一堂。
現在這 9 堂各列一張連結卡,附一句固定的話請你點進去看,不抽卡片裡的句子
(所以那句話本身還是不在總表裡,但點得到那一堂);它們不算進「帶著明確的留白」的頁數。
七分鐘那一區現在是 10 頁。 |
產生這一頁的程式只抓各課重點整理裡「本站沒驗的」那一條, 而七分鐘系列不要求重點整理 —— 結構上就不可能被收進來,卻寫了「不會漏收」。 整張卡片不搬進來,是因為有的卡片寫的是安全保證或訂正經過,不是限制。 |
| 開張後檢驗(2026-09-23) | 關掉跑壘者速度數值 | 頁面前段說明原版只有 44 個版面檔的那張卡片寫: 介面座標圖與遊戲檔案地圖 「還沒補上這個註記」。其實那兩頁 2026-09-06 就補上了,這句話在開張時就已經不成立。 改成六頁都已寫明原版是 44 個;2026-09-05 那一次訂正的痕跡留著,這一次也加註在後面。 | 那兩頁是在 2026-09-06 那一批修正裡各自補上註記的, 這一頁講「還沒補」的那一句沒有跟著回頭改。 |
| 開張後檢驗(2026-09-23) | 把一套球衣裝進遊戲 | 速解第 5 步叫你看「複驗」那一行,說「它是倒數第二行」。
那只在一切順利時成立:需要還原時,腳本最後會印一整行 --restore 指令;
不必還原時只寫著「不必 --restore」。改成看最後幾行,分三種情況:
印出「完成。進遊戲看看那支球隊。」就是裝好了;
印出一整行結尾是 --restore 的指令,才照著還原;
只寫著「不必 --restore」的不要還原,把畫面回報就好。 |
「倒數第二行」是照成功那一次的畫面寫的 —— 照這個說法去找,在最需要看清楚的兩種情況下都會看錯行。 |
| 開張後檢驗(2026-09-23) | 全站的樣式;最明顯的是 中文版配大球場就跳出、 在 Mac 上玩 MVP 2005 | 三個地方的樣式,讓畫了重點的字看不見。 ① 淺色模式下,程式碼框裡的粗體字跟框的深色底幾乎同色(對比 1.05:1), 6 頁 13 處看起來是一塊空白 —— 例如〈中文版配大球場就跳出〉「答案先講」那一行的「64 MB」、 〈在 Mac 上玩〉層次圖裡的 Rosetta 2/Wine/WoW64。改成沿用框裡的淺色字。 ② 重點整理第一條(「一句話」那一條)的螢光筆,跟那一條的底色是同一個顏色, 27 頁 31 處畫了重點的字,看起來跟普通字一樣。改用半透明的螢光筆。 ③ 5 個句中連結被粗體染成內文色,看不出是連結 (例如首頁「先跑診斷判斷是哪一種當機」),改回連結色。 | 全站「粗體用內文色」那一條規則,蓋過了程式碼框與連結自己的顏色; 螢光筆則借用了那一條本來的底色。每一條規則單獨看都對,疊在一起才出事。 |
| 開張後檢驗(2026-09-23) | 全站指令區塊的「複製」按鈕 | ① 有 17 個指令區塊是「打到空格停住,再把檔案拖進來」的寫法 (指令最後留一個空格)。複製按鈕會把結尾的空格剝掉, 照著按複製、貼上、再拖曳,指令和路徑會黏在一起。現在保留那一個空格。 ② 複製之後的「記得換」提醒原本只認一種標記, 含佔位符的指令區塊大約只有二十分之一會提醒,另有 8 處沒有佔位符卻誤報; 改成直接從複製出去的文字裡找〔…〕、<…> 與「你的遊戲資料夾」。 | ① 按鈕把頭尾空白一律剝掉,而這 17 個指令正是靠結尾那個空格。 ② 提醒看的是頁面上的標記,不是你真正會貼出去的那一段文字。 |
| 🔴 開張當天(2026-09-11) | 中文版配大球場就跳出的
mvp_wine_log.sh |
這一課叫你跑 bash mvp_wine_log.sh --selftest,確認腳本自己的守門沒壞。
開張時放上線的那一版,在終端機語系設成中文(zh_TW.UTF-8)或英文 UTF-8 的 Mac 上,
跑到一半就停下來,印出一行含 unbound variable 的英文錯誤,沒有跑完;
執行檔檔名給成 . 或 .. 時也一樣,印不出原本該有的中文說明。
開張當天、公開後大約一小時,把 $n 這種寫法改成 ${n},重新發布。 |
本站跑測試的環境沒有設定語系,這種寫法在那裡剛好不會出事, 所以自我測試一路是綠的;而正常設定的電腦都有語系。 shell 的變數後面緊接中文全形字元時,有設語系的終端機會把那幾個字當成變數名的一部分。 現在有一道檢查專門抓這種寫法。 |
| ⭐ 開張前逐頁覆驗 | 怎麼看出哪些檔還沒被動過 | 一頁五件。 ① 「999 個檔、744 個出廠期、74.5%」是舊快照,
這台機器的 |
量過一次就寫死,資料夾卻一直在被動。 ①②⑤ 都是同一種病:沒寫「量的是哪一份、哪一天」。 ③ 是本站一再犯的全稱句,④ 是抄錯欄。 |
| ⭐ 開張前逐頁覆驗 | 王朝存檔 | 頁尾那句出處聲明是第二次出錯。 上一輪已經把「頁尾當時還寫著『差異分佈皆為量測 30 個存檔所得』」記進這張表, 但那句話當時沒有真的改掉,這次才動到頁尾。 同一頁另外四件:填充那張卡的三個數字(926,920 與 463,460 兩次)重跑不出來,
真值是 927,322 與 463,661 兩次,
而且兩份老闆模式存檔的填充長度本來就不一樣,不是一條固定的分界線;
二十段那張表的第 13 段不是「完全相同」,差 502 個位元組;
第一張表的欄名把「435 組兩兩比對」標成「聯集」,真正的 30 檔聯集是 26,123;
「名單與玩家檔案一處都沒有 |
把「這裡寫錯了」記進紀錄,不等於把它改掉。 這是本站第二次在同一句話上踩同一個坑 —— 訂正要附「怎麼驗」,下一個人跑一次就知道改了沒有。 |
| ⭐ 開張前逐頁覆驗 | 球場檔 | 四件已經發布過的事。
① 16 個光源設定檔共 381 種參數名、
16 個檔全部都有的是 357 種(原本寫 380/356,各少一種)。
② 頁上那段節錄是名稱表(編號+參數名),不是數值;
數值在同一個檔的第二筆記錄裡,用同一組編號對回來。
③ 0x8A500 是檔案裡的位置,不是項目內的位置。
④ lighting.csv 的日期改用世界標準時間 12 月 3 日,
跟本站另一頁同一套讀法對齊;距離 12 月 24 日是二十一天。 |
看到了不等於看懂了。 ②③ 都是把眼前那段東西的身分認錯, ④ 是同一個站對「檔案日期」用了兩套時區。 而 ① 那兩個數字,檔頭自己就寫著答案。 |
| ⭐ 開張前逐頁覆驗 | BIGF 封裝格式 | 五件。misc.big 檔頭那四個位元組當 big-endian 讀,
本站原本寫 2,114,978,816,重算是 2,114,125,824;
球場孤兒比例的中位數原本寫 39.96%,正確是 40.06%
(跟瘦身那一課對齊);
ingame.big 那 47 個項目沒標是哪一份,
補上「這是本站測試機那一份,剛安裝好的原版是 44 項」;
兩份 dodgnite.big 誰在服役講反了;
「295 個封裝檔裡 288 個 little-endian、7 個 big-endian」補上
2026-09-05 用同一套量法重跑的 384/374/10(結論沒變,變的是分母)。 |
換算、取中位數、母體、方向,四種錯法各中一個。 共同點是當初只寫了結果,沒寫是量哪一份、怎麼量 —— 所以資料夾一被動過,句子就從對的變成錯的,而沒有人會知道。 |
| ⭐ 開張前逐頁覆驗 | 文字表 .LOC | 兩件。一、原本寫名冊模組「沒動 IGENG.LOC」是錯的 ——
測試機那份跟剛安裝好的原版比有 203 條文字不同
(隊名與球場名一起更新過),模組漏掉的只有標題那一條。
二、重疊編號那張表原本只列測試機的 1,295/15,沒標是量哪一份;
剛安裝好的原版 1,310 個共用編號兩張表寫的字完全一樣、0 個不同,
那 15 個不一樣全是模組造成的。 |
只量一份就寫成通則,而那一份是被疊過的。 表格多加一欄「量的是哪一份」,這兩個錯當場就看得出來。 |
| ⭐ 開張前逐頁覆驗 | 大頭照 | 「原版整套安裝有 6,392 個帶那句話的圖檔」這個總數是對的,
錯的是它的分佈:本站原本寫多出來的 22 個是
「data\misc\textures\ 底下 23 個沒裝進封裝檔、自己就是圖檔的檔案」。
實際是 data\misc\textures\ 18 個、
data\igshapes\ 3 個,
再加上一個名字叫 .big、裡面其實是一張 SHPI 圖片的
data\frontend\feonlyln.big,合計 22 個。總數不變。 |
「22」跟「23 個全在同一個資料夾」是兩個宣稱,只驗了前面那個。 總數對得上的時候特別容易放過後半句 —— 而讀者照著去翻那個資料夾,只會數到 18 個。 |
| ⭐ 開張前逐頁覆驗 | 平安夜那天的建置 | 訂正了一次訂正。
本站原本在這一頁寫「894 / 890 / 893,有 4 個像素格式的例外、1 個內部標記的例外」,
還加了一句「本頁上線時寫『沒有一個例外』,那是錯的」。
這兩句都收回 —— 894 / 890 / 893 量的是本站測試機那份裝過模組的
models.big。剛安裝好的原版是 504 個球員臉皮、504 張同規格、零例外
(三份剛安裝好的原版都量過,結果一樣)。
那 4 個與 1 個「例外」反而才是 EA 出貨時用的規格,是後來被換掉的。 |
訂正也會踩同一個坑。 第一次錯在沒數過就寫全稱句,第二次錯在拿被疊過的那一份去推翻自己 —— 兩次的共同點都是沒有先問「我量的是哪一層」。 |
| ⭐ 班主任來正名:名冊以外的不是他做的 | 名冊以外,都是前輩做的(新)· 關於本站 · 首頁 · 十四年 | 站上寫了很久的一句話: 「toni 從 2008 年開始發布 MVP Baseball 2005 的台灣模組:球員名冊、球衣、球場、懶人包」。 球衣跟球場不是他做的。他本人來訂正: 「我必須正名,當年我做的都是台灣之光名冊, 因為絕大部分的球員名冊外的東西,都是前輩做的,我只是整合。」 訂正的依據是把他 2008 到 2023 年的部落格 全部 37 篇存檔原文抓下來逐篇讀。 最直接的證據是他自己的標題:七篇的標題就叫「好東西分享」, 每一篇都把作者名寫進標題。陰性對照更乾淨 —— 十五年、37 篇,全文找「我做」「自己做」「自製」,零命中。 新增一頁把十五位前輩與工具作者列出來,每一條附他當年的原話。 其中三個名字本站原本完全沒有提過: 大叔(製作與測試中文模組、中文版跑得動的球場)、 m9102335(王朝成長幅度修正檔)、 xRAP98x(2023 版模組 —— 本站測試機整台就建在上面)。 連帶推翻了另一頁的一個推論。 〈十四年後打開那個模組資料夾〉用「時間戳散在數週=自己做的工作日」 把 481 個 Photoshop 工作檔判成他的作品, 他說那是別人給的素材。 錯在那個指標在答案是「別人給的」時候也會亮 —— 素材不是一次收齊的,陸續收幾個月,時間一樣會散開。 諷刺的是那一頁自己就寫著「混用會把別人的工作寫成自己的」。 |
把「整合並發布」寫成「製作」。 那是二十年來社群裡最常見的一種失禮, 而他自己 2009 年轉載別人的檔時就已經在寫 「著作權為 m9102335 所擁有」 —— 這個站接手時反而做丟了。 |
| 稱呼統一成「班主任」 | 12 個檔共 30 處 | 站名是補習班,主事者叫班主任。 2026-08-30 已經改過一輪,但守門規則裡只寫了當時被指出的那一個舊稱呼, 另一個同義的說法整批漏掉,30 處全部倖存。 本站犯過同一種病:某一條守門規則只比對幾個英文詞, 而站上把同一件事寫成中文,於是那條規則整條看不見、一路綠燈。 |
守的是一個概念,列的卻只有剛好被指出的那一個說法。 規則已補齊,下餌驗過會紅。 順帶一提,本次寫這段說明時把那幾個詞逐字打進去,當場被守門攔下 —— 規則是活的。 |
| ⭐ 論證會反噬自己 | 介面座標圖 | 那一頁整頁的結論靠一句話撐著: 「相對解讀會讓一大半的元素跑到畫面外, 這在一款正式出貨的遊戲裡不可能發生」。 那句話會把自己也否掉 —— 照當時那張表,絕對解讀也只有 49.1% 的元素整框在畫面內(⚠️ 2026-08-29 再訂正:49.1% 本身算錯了,整欄左移一格,正確值是 96.4%,所以本站當初撤回的那個理由其實是對的)。 如果「跑到畫面外不可能發生」成立,絕對解讀一起陣亡。 換成一個看得見的元素當證據:
|
百分比論證有一個共同弱點:它同時適用於你想否定的那一方。 「一大半在畫面外很奇怪」——那 49.1% 也很奇怪。(⚠️ 後來查出來 49.1% 才是錯的那個數字。) 一個能直接觀察的單一反例,比四個百分比都硬。 |
| 🔴 首頁承諾三條有兩條做不到 | 首頁 · 全部教學 | 首頁的三個承諾裡,第二條寫「每篇教學動手前都先自動備份」、 第三條寫「每篇教學最後都附回報範本」。 實際上 15 課裡有 9 課沒有回報範本, 而首頁叫新手第一個點的暖身課根本沒有腳本、也沒有自動備份。 一個人第一次讀承諾、第一次點進去,就對不上。 這比任何一個技術錯誤都傷 —— 它讓讀者從第一分鐘就開始懷疑其他每一句話。 處理方式是兩邊都動: ① 補上 8 課的回報範本(改速度、換臉、當機診斷、備份、 看穿檔案、工具總覽、食譜、檢查原廠),每一份都照那一課實際會印出什麼設計欄位; ② 把承諾改成做得到的版本 —— 「凡是附腳本的教學…少數不用腳本的課,第一步會手把手帶你自己複製一份」、 「每篇動手的教學最後都附」。 剩下唯一沒有範本的球衣頁本來就標著「只看不動」。 (2026-09-06 補:「15 課裡有 9 課沒有」是當年只有 15 課時期的數字,
放到今天已經不是現況。今天重量:教學區 39 課、其中 20 課附回報範本;
章節裡有「👉 你要做的事」的動手教學 26 篇、其中 12 篇附。
量法寫在這裡,數字自己會變 ——
|
承諾寫得越漂亮,越要拿實際的頁面一頁一頁對過。 「每篇都…」這種全稱句寫在門面上特別危險: 它不會有人來糾正你,但每一個照著做卻對不上的人, 都會自己默默降低對整個站的信任。 |
| ⭐ 差點誤判原版不乾淨 | 怎麼看出哪些檔還沒被動過 | 本站在「剛安裝好、從未改動的原版」裡看到一個
看時間戳才發現:那是 EA 自己留下的。
它跟本尊 |
「有 .bak」不等於「被動過」。
判斷一個檔是不是原廠的,看副檔名不夠,要看時間戳。
這一條已經寫進那一課,因為讀者拿自己的遊戲對照時
一定會遇到同一個誤判。 |
| ⭐ 報告很漂亮,自己跑一次不成立 | 語音檔頭 | 本站跑了一輪內部覆驗。其中一份回報說語音檔頭
「多出來的部分」整段解開了,給了一條通用公式
( 本站照著跑:那條公式在 6,995 個檔裡只成立 56 個。 但它不是全錯 —— 指出的方向(第 4、第 5 個位元組)是對的,
它舉例的 |
「零例外」這種措辭本身要當紅燈。
它在對的時候是最強的證據,錯的時候是最強的誤導 ——
而讀的人分不出來,除非自己跑一次。 這一條跟同一輪本站自己犯的錯(把一個位移當成通則) 是同一種病:在一個樣本上成立就當成規律。 |
| 🔴 讀者第一步就會卡死 | 全部有下載按鈕的教學 | 站上五課寫「用上面的下載按鈕存檔,放到桌面」,
然後下一步就是 這是新手在第一步就出局的等級: 他還沒碰到任何遊戲檔案,就已經卡在一個站上沒提的地方。 已在每一個有下載按鈕的頁面補上「按了下載之後檔案跑到哪裡去了」, 分三小步(開檔案總管 → 點「下載」→ 拖到桌面), 並在出錯處理表補上對應那一列。 (2026-09-05 訂正:「每一個」這三個字現在不成立。
現場清點站上 29 個有下載按鈕的教學頁,其中 7 頁一樣叫讀者
「放到桌面」再 (2026-09-23 訂正:09-05 那次清點也不完整。
這次把站上所有附腳本下載連結的頁面逐頁清點(42 頁,含七分鐘系列與技術參考),
有 28 頁沒把「下載的檔在哪、命令視窗怎麼切過去」講完整:
22 頁完全沒講;4 頁叫你放到桌面,卻沒給切過去的指令
(換打擊姿勢與投球姿勢、
執行檔上的六個旋鈕、
換球員大頭照、
怎麼看出哪些檔還沒被動過);
2 頁有切過去的指令,卻沒講瀏覽器會先把檔放進「下載」
(七分鐘從電腦小白到可以修改模組、
本站怎麼量的)。
這一輪補了前兩類共 26 頁;另外還補了兩課要用別課下載的 (2026-09-24 訂正:上面最後兩句現在不成立了。
還叫讀者切到桌面的 15 頁 —— 12 課教學,加上〈中文版為什麼會跳出〉
〈七分鐘從電腦小白到可以修改模組〉〈本站怎麼量的〉—— 這一輪全部改成同一種做法:
在「下載」資料夾點網址列,打 |
「放到桌面」這四個字,寫的人以為是一個動作,讀的人以為已經發生了。 凡是牽涉到「檔案現在在哪裡」的步驟,都要把中間那一段寫出來 —— 作者最容易跳過的,正好是他每天做到變成反射的那一步。 |
| ⭐ 四個用途標籤寫錯 | 檔案地圖 · 語系檔 · 兩套球員編號 | 四句話寫錯,而且都在「速查」這種會被當事實引用的頁面:
① bp*.big 寫成「球員卡模式/收集卡模式的資源」——
實際是老闆模式的球場資源(bp = ballpark)。
光看檔名就該發現:bpattrac 遊樂設施、bpticket 門票、
bpvendor 小販、bppromos 促銷、bpupgrad 升級。
字串表 5600–5611 也是一整排球場設定(場地形狀、圍牆顏色、割草紋路、包廂)。
② coop*.big 寫成「雙人合作模式」——
實際是 Cooperstown 經典解鎖內容:
三個版面檔裡有叫 COOPERSTOWN 的元素,
而 EA 官方繁中版自己就翻成「鎖住的 Cooperstown 球場」。
③ coopunis.big 寫成「王朝模式的球衣」,同上。
④ 語系檔那頁寫「編號 704 那組是 EA 原版就不一樣的,跟模組無關」——
反了:原版兩個語系檔的第 704 條都是 Home Run Showdown,
Home Run Derby 出現 0 次;
差異是本站測試機那份被 2023 年名冊模組換掉造成的。 |
①②③ 是同一種錯:看到 coop 想到 co-op、
看到 bp 想不到 ballpark。
英文縮寫的第一直覺常常是錯的,而檔名清單本身就是最好的反證 ——
把同前綴的檔名全部列出來一起看,意思往往就浮出來了。④ 則是本站已經寫過的教訓漏改了一處: 「把這台機器上的現象寫成 EA 的做法」。 |
| 🔴 本輪最大的一個錯 | 代號對照 · 姿勢故事頁 | 本站發表過一張「打擊姿勢 66 個編號的名稱表」與一段結論: 「2,921 個打者裡只有 10 人用以自己命名的姿勢, 1,430 個投手裡 0 人」,還列了 「Clemens 用 Hoffman 的、Schilling 用 Nelson 的」當佐證。 整段是假的。 成因是把編號對到名字的方式猜錯了: 看到字串表有一段連號、都是球員的姓、數量也剛好, 就假設「第 N 號 = 第 10000+N 條字串」。 用錯的字典去查,每個人查出來的當然都不是自己。 正確做法是找錨點:挑「整份名冊只有一兩個人在用」的編號,
看那一兩個人是誰,再回字串表找同姓的名字 ——
這種對應成立就不可能是巧合。重做之後結果完全相反:
打擊 43 個專屬編號裡 39 個是本人在用,
投球 46 個裡 41 個。
Randy Johnson 用 兩份表已用錨點法重做(對不上的標「未知」,不硬填),
故事頁那一整段換成訂正,
「Bonds 是第 42 號」那句也一併撤掉 —— 第 42 號其實叫 |
本站順手把全站掃了一遍,確認這個錯沒有擴散。
站上一共有 12 處寫出「第 N 欄 = 某個欄位名」,
逐條拿原版與模組版兩種配置去對:12 條全部成立,一條都沒錯。
寫得最完整的是改跑壘速度那一課 ——
它直接寫「本站測試機是第 22 欄,剛安裝好的原版是第 23 欄,腳本會自己從表頭找」。
教學一直是對的,出錯的是本站在做分析時沒照自己的教學做。 至於為什麼會被騙:用最多人的那幾個編號是通用姿勢, 而通用姿勢也有名字。拿全體去算, 幾百個共用通用姿勢的人會把訊號稀釋成看起來像零。 算比例之前先問:分母裡混了什麼。 還有一層:那個錯的結論「連 Clemens 都不用自己的姿勢」 讀起來太漂亮了 —— 而那份漂亮正是它能一路寫進兩個頁面沒被攔下來的原因。 |
| ⭐ 只憑數量吻合就下結論 | 球員代號對照表 | 本站發表了一條推論:「 一小時後本站把介面版面檔全部掃一遍,找「誰在用那七個字串」:
它們是 同一次掃描順便解掉另一條未解: |
數量吻合不是證據,是巧合的溫床。 7 個值配 7 個名字看起來天衣無縫, 但真正該問的是「誰在使用這些字串」—— 而那個問題有辦法直接查:去版面檔裡搜那個編號。 |
| ⭐ 差點推翻自己(而站上是對的) | 球員資料檔全欄位 | 本站想把 2009 年那份更新紀錄的姿勢對照從 3 條擴大驗到 12 條,
結果七條打者的全部對不上 —— 名冊裡那個欄位整排都是 0。
一度以為站上已經發表的「羅國輝 21 = 21」是錯的。
追下去發現:不是站上錯,是本站這次讀錯了欄。 原版的 attrib.dat 第 29 欄是打擊姿勢,
但 2009 那份名冊的第 29 欄是揮棒型態 ——
兩邊都是 46 欄、欄位名完全一樣,
可是 skin_tone 從第 12 位搬到第 38 位,
中間全部往前移一格,46 欄裡有 27 欄對不上。
用各自的表頭重讀,站上那三條全部成立。
已把完整的 27 欄差異表補上站。 |
站上早就寫著「不要記欄號,欄號會因名冊而異」—— 而這次沒照做的是本站自己。 寫下來的紀律,要在自己趕時間的時候還記得用,那才叫紀律。 |
| ⭐ 差 1 | 暖身課 | 暖身課教你用 2 + 段數×63 + (段數−1) 算出檔案總行數,
然後跟記事本顯示的數字對一下。
本站拿第二台機器上的另一份檔案重驗,算式成立 ——
但記事本會顯示 322,算式算出來是 321。
原因是那個檔最後一行結尾也有換行,所以最底下多一個空行,
記事本把它算進去了。
照著做的人會看到差 1,然後以為自己數錯了。
已改成「記事本的數字減 1 才等於算式」,並把三個數字
(算式 321 / 記事本 322 / 有內容的行 315)並排列出來。 |
「兩個數字要一樣」這種成功標準,一定要在真的機器上對過一次。 而且要換一個樣本再對一次 —— 這個差 1 在本站原本那台機器上也存在,只是沒有人去按 Ctrl+End。 |
| ⭐ 關掉一條懸案 | 王建民用的是 Smoltz 的投球姿勢 | 那一頁原本有一條驗不成的:2009 年的更新紀錄寫「蔣智賢 — Piazza」, 但本站在名冊裡找不到 Piazza,只好寫成「對照組不在了」。 這次拿到剛安裝好的原版再查一次 —— Piazza 就在原廠名冊裡,打擊姿勢欄是 13, 跟蔣智賢那一列一模一樣。 四條全部成立,當年那份紀錄一條都沒寫錯。 (2026-09-06 補:後來把驗過的擴大到十條,一樣全部成立; 故事那一頁現在寫的是十條。) | 比對不到的時候,先問「我比對的是哪一層」。 模組是一層一層疊上去的,本站原本拿測試機上那份已經被換過的名冊去找, 當然找不到。 |
| ⭐ 照名字猜錯了 | 播報與音訊系統 | 音訊分區表裡有五格的證據欄寫著「命名佐證」——
意思是「本站沒打開看,是照資料夾名字推的」。這次全部打開了,
其中一格猜錯:
plyr_cht 本站原本寫「球員專屬應援的索引」,
實際內容是場上球員互相喊話 ——
17 個群組、623 個音檔,最大的兩群是
playpredict(197 個)跟 defalign(守備佈陣,177 個),
還有純粹當停頓用的 100ms.wav、500ms.wav。
cht 是 chatter 不是 chant。
另外四格猜對了,但現在都換成實際內容,證據欄從「命名佐證」升級成「實測」。 |
「照名字推」標得再誠實,也還是沒打開看。 而它猜錯的那一次,錯法是猜成一個很像的東西 —— 這種錯不會有人來糾正你,因為它讀起來很合理。 |
| ⭐ 寫好了卻沒上線 | 總設定檔 | 新的一頁寫完、連好、六道檢查全綠、上線前的死亡檢查表 15 項全過 —— 而它從來沒有進過真正要推出去的那包。 原因是發布流程用的是逐檔白名單,新頁沒加進去就不會被複製; 而站內連結檢查、數字稽核、上線前檢查全部只讀原始的 site/ 資料夾, 一路綠燈。 是打開瀏覽器點進去看到「找不到頁面」才發現的。 鏡像檢查原本只比「兩邊都有的檔內容一不一樣」, 現在補上「只有一邊有的檔」——兩個方向都測過: 少一頁抓得到、多一頁也抓得到。 | 所有檢查都讀同一份來源時,它們會一起漏掉同一件事。 至少要有一道檢查是從產出端看回去的。 而最便宜的那道,是自己打開瀏覽器點一次。 |
| ⭐ 手打的表格 | 應援曲 | 本站把「EA 幫哪些球員錄了專屬應援曲」做成表格時, 先是用手打的,然後寫了一段程式把網頁上的表格讀回來、 跟原始檔重新量一次比對。結果抓到漏了 6 個人 —— 第一次抽取群組名稱時的過濾條件寫錯, 把幾個群組誤判成音檔行給濾掉了。 現在整張表改由程式從原始檔直接產生, 並且加了一條驗算:這個索引檔的非空行數 必須等於「群組數 + 音檔數」(193 = 90 + 103)。 | 會手打的東西就會打錯。 而且錯的方式往往不是「打錯字」,是來源本身就少了。 照著發表前的表格反向對回原始檔,比多讀兩遍有用。 |
| ⭐ 對照組補齊 | 資料檔總覽 | 站上一直用「3,247 位球員」這個數字,
旁邊也一直老實標著「這是本站測試機的數字,你自己跑會不一樣」。
但只給但書、不給對照組,讀者還是不知道自己那份正不正常。
這次把剛安裝好的原版量出來了:
2,921 位球員、1,430 位投手、2,970 筆名單。
於是多了一個一秒就能做的檢查 ——
打開 attrib.dat 看它幾行,不是 2,921 就是被換過了。
順帶發現一件更好的事:19 個檔的欄位數在兩份之間一個都沒差,
只有跟球員有關的檔列數變了,球隊 126、球團 34、續約表 140 完全沒動。
這正好是站上那句「結構不會變、數字會變」的實證。 |
「這個數字可能不準」不如「準的那個是多少」。 但書保護的是寫的人,對照組才幫得到讀的人。 |
| 檢查器誤讀 | 數字稽核器 | 本站在 commit 訊息裡寫過「實測期望頁數真的會擋」。 那句話對,但不完整:那一欄守的是下限 —— 頁數掉下去才報紅燈,多出來不會。 先前把新數字的期望值隨手填小,檢查器照樣全綠, 看起來像「驗過了」。已把註解寫清楚,並把所有值調到實際頁數。 | 檢查器通過不等於它檢查了你以為的那件事。寫下它守什麼、不守什麼。 |
| ⭐ 沒查就寫「查不到」 | 播報與音訊系統 | 本站在關掉「名字帶 mini 可能跟小遊戲有關」那條推測時,
順手寫了一句「FMG(守備小遊戲)在文字檔裡找不到對應的選單句子」。
那句話當下還沒查。
真的去查之後,事實比原本寫的更有意思:
玩家看得到的第三個小遊戲是 Untimed Pitching(無時限投球),不是守備;
而守備小遊戲在程式內部有音量群組、有專屬攝影機,
卻沒有任何一句玩家看得到的文字,也沒有自己的音效庫。
已改寫成三項具體查證的結果,並把「是不是做到一半沒出」標成未解。 |
順手寫下的否定句最危險 —— 它不是結論,是「我沒想到要查」。 寫「找不到」之前,先把「我找過哪裡」列出來。 |
| ⭐ 授權合規 | 法律與版權說明 | 字型改成自己托管之後,站上寫「授權全文放在
assets/fonts/LICENSE.txt」,
但那個檔是中文摘要,不是全文。
SIL Open Font License 1.1 第 2 條寫得很明確:
每一份拷貝都要含著作權聲明與授權條款本身,附網址不算。
而且下載來的字型檔是精簡過的子集,名稱表裡放授權全文的那一格被拿掉了——
「授權寫在字型檔裡」在這種檔上不成立,
那份文字檔就是唯一一份授權紀錄。
已補上英文全文 OFL.txt。
補的時候發布把關擋下了這個新檔(副檔名不在白名單),
那是對的 —— 已把它明確加進白名單,而不是把把關放寬。 |
「我有寫出處」跟「我符合授權條件」是兩件事。 用別人的東西之前,把授權條款逐條讀完,不要只讀名字。 |
| ⭐ 這一頁自己 | 更新紀錄 | 下面那份「新頁上線的順序」,停在 48 頁,而站上已經 59 頁。 中間 11 頁全部有紀錄可查,只是沒人回頭補這份清單。 這種過期方式很安靜:鏈子斷在中間,可是每一句自己看起來都對, 要把「N 到 M 頁」整串接起來才看得出來。 已補齊到 59,並且加了一條檢查: 批次鏈必須首尾相連,而且最後一個數字要等於站上實際頁數。 斷鏈與少頁兩種壞法都反向測過,確認抓得到。 | 會過期的數字要交給程式守,不能靠記得。 判斷「這個數字會不會過期」的方法:問它是不是 「全部」減掉「已經列出來的」。是的話就一定會過期。 |
| ⭐ 全稱句 | 資料檔總覽 | 標題寫「20 個純文字檔」,可是剛安裝好的原版資料夾裡只有 19 個。
多出來那個是 attrib.dat.csv ——
一份 2017 年的舊匯出檔,遊戲不讀它,原版也沒有它,
是從測試機的資料夾一起數進去的。
讀者照著去數自己的資料夾會數到 19,
然後懷疑是不是自己少了檔。已訂正成 19,
那一列改成灰字並標明「不在原版安裝裡」。 |
「站上的數字」跟「讀者會數到的數字」要對得起來。 在自己的工作資料夾量出來的東西,發表前要換到乾淨的原版再量一次。 |
| ⭐ 不能跑的指令 | BIGF 封裝格式 | 新寫的一節附了一行
--list "data\initstaz.big",
照著打會失敗:--list 吃的是遊戲資料夾不是封裝檔路徑,
而且它只列版面檔 —— initstaz.big 一個版面檔都沒有,
工具會直接報錯退出。
追下去發現這不是文件寫錯而已,是工具真的缺一個模式:
圖片、模型、球場那些封裝檔,本站的工具根本列不出裡面有什麼。
補了 --entries,兩種情況都實跑過才寫回文件。 |
文件裡的每一行指令都要真的跑過。 跑不動的時候先問「是我寫錯,還是工具真的缺這個功能」。 |
| 隱私稽核 | 臉皮檔、EA 官方繁中版 | 用「想從這個站挖出個人資訊的人」的角度讀一遍,抓到兩處 遮蔽被自己的說明抵銷: ① 臉皮那頁遮掉了打包者的使用者名稱, 卻同時寫出了資料夾名稱與日期 —— 把名字遮掉、卻附上「去哪裡找」,等於沒遮。已移除辨識資訊, 並把重點改成「這件事會發生」而不是「那個人是誰」。 ② 繁中版那頁逐字引用班主任 2008 年的公開貼文並註明出處 —— 逐字引用會變成可被搜尋的字串。改成寫大意,不逐字、不附連結。 | 遮蔽的價值取決於「還剩多少線索」,不是取決於「遮了幾個字」。 |
| ⭐ 粉絲體驗 | 2009 年那兩份說明書 | 那張 53 列的表把球員名字全部遮成 ○○○, 整頁只給統計。粉絲那條線說「這是全站最可惜的一頁」。 查了一下:遮掉的都是大聯盟球員 —— 而站上其他頁早就寫了 Rod Carew、Lou Gehrig 這些名字。遮這裡不一致。 拆掉遮蔽,並把八條逐一拿剛安裝好的原版對照: 五條精確吻合(林彥峰 c183 = Roberto Hernandez、 林旺億 c214 = Aaron Sele、陳鴻文 c114 = Armando Benitez、 川上憲伸 c190 = Keith Foulke、相川亮二 c192 = Antonio Alfonseca)。 | 十七年前寫在說明檔裡的一句話,拿今天剛安裝好的遊戲一對,編號跟人名一個不差。 |
| ⭐ 新發現 | 2009 年那兩份說明書 | 八條裡有一條不吻合,而那條最好看。
說明檔寫「把 Steve Kline 的臉皮編號 c423 給予之」,
但原版裡 Steve Kline 從來沒有 c423(他用通用臉 901)——
c423 是 Lou Gehrig 的。
而那份 2009 名冊裡 c423 底下站著兩個人:Gehrig 與洪晨恩,共用同一張臉。
本站在臉皮那頁獨立量到過這件事 ——
14 個撞號裡有 12 個被處理掉,只有兩個沒處理,Gehrig 是其中一個。
寫的人記錯了對象,於是那一次撞號就沒有被處理。 |
文件說的、檔案裡的、以及玩家實際會看到的,是三件不同的事。 |
| ⭐ 隱私 | 全站 59 頁 + 法律頁 | 在此之前,本站當時 59 頁裡有 58 頁會向 Google 要字型
(唯一沒有的是 404.html)
—— 也就是每一個讀者的 IP 都會送到 Google,而站上一個字都沒提。
本站的讀者是「不會電腦的人」,那種事不該在他們不知道的情況下發生。
字型改成自己托管:九個拉丁字型檔(latin 子集,合計 191 KB)
放進 assets/fonts/。中文刻意不自己托管 ——
中文字型檔動輒好幾 MB,而蘋方(Mac)與微軟正黑體(Windows)是系統本來就有的。
現在全站自動外部請求 0 個。
新增法律頁第 8-1 節說明本站不放追蹤碼、不用 Cookie、沒有表單,
並老實寫出唯一無法控制的部分:站放在 GitHub Pages 上,
GitHub 會記錄並保存你的 IP。
(2026-09-05 補:那一節 2026-09-03 又多了一列 ——
本站確實有用 localStorage 記教學頁的步驟打勾,
只寫「Cookie 沒有」會讓人以為瀏覽器裡什麼都沒存。
兩者是兩種東西,但對讀者是同一件事。)
(2026-09-23 補:「九個、合計 191 KB」是當時的數字。
2026-09-06 起,IBM Plex Sans 三個內容完全相同的檔併成一個,開張時線上是七個檔;
2026-09-23 又拿掉一個沒有任何一頁用到的 Barlow Condensed 500,現在是六個檔、約 98 KB。
法律頁第 8-1 節寫的「九個拉丁字型檔(合計 191 KB)」到 2026-09-23 才跟著改。
同一節開頭原本寫本站「只有 HTML、CSS 與幾支給你下載回去自己跑的 Python 腳本」,
也改成列出只在你瀏覽器裡跑的 JavaScript、字型與圖片 —— 那一句從開張起就少列了這幾樣。) |
字型授權是 SIL OFL 1.1,明文允許自行托管。
(2026-09-05 訂正:這一格原本寫「授權全文附在
assets/fonts/LICENSE.txt」,那是錯的 ——
該檔是中文摘要與著作權人清單,英文全文是上面「⭐ 授權合規」那一列
才補上的 assets/fonts/OFL.txt。) |
| 檢查器 | 本站的檢查工具 | 兩道新的:① audit_launch 加「任何一頁都不可以有自動的外部請求」
(只擋 link/script/img 這類瀏覽器會自己去要的,
<a href> 是你點了才去,不算);
② 發布流程的 assets/ 白名單加上 woff2,
並加一條「字型檔不得超過 200 KB」防中文字型悄悄混進來。
加白名單而不是改黑名單:白名單漏列頂多少一個檔,黑名單漏列就是夾帶。 |
把字型放進去時,發布把關當場擋下來了 —— 它本來就該擋沒見過的檔型。那是它做對了,不是它壞了。 |
| ⭐ 本站自己造成的損害 | 7 篇教學 | 用新手的角度走一遍全站時抓到:7 篇教學的「你會看到」底下貼的不是畫面輸出,
而是整支 Python 原始碼(400 到 830 行)。
讀者照著打完指令、正要對照畫面時,看到的是一整支程式。
這是本站自己造成的:內嵌原始碼的同步腳本用
「找出頁面裡最大的 <pre> 然後覆蓋它」——
在有原始碼附錄的頁面上那是對的(附錄一定最大),
但在還沒有附錄的頁面上,最大的正是那段範例輸出。
從 git 歷史把七課的範例輸出一一還原(11/14/11/7/10/5/3 行),
並補上正式的原始碼附錄。 |
當時所有檢查都是綠的 —— 因為「內嵌原始碼跟下載的一致」正是它要的結果。 檢查器守住了它被交代的事,而那件事被交代錯了。 |
| 檢查器 | 本站的檢查工具 | 兩道新的:① 同步改用專屬腳本,只認
<details> 裡面那一塊,找不到就明說不亂猜;
② check_mirrors 加第 5 道:
教學正文(附錄以外)不可以有超過 40 行的 <pre>。
反向測過:把原始碼塞回正文 → 🔴 附錄外最大 449 行。 |
「一致」不等於「放對地方」。 |
| 法律與版權複查 | 法律頁、9 支腳本、授權檔 | 四條需要決定的全部落地:
① 舊部落格的連結留著,新增第 6-1 節說明
「本站不採集、不鏡像、不負責那邊的內容,連過去只是講來歷」。
② 拿掉美國 §1201(f)
—— 那是規避技術保護措施的例外,而本站第 3 節明寫不需要規避任何保護措施;
把一條規避例外列成依據,等於自認有東西要規避。
③ 9 支腳本改採 MIT(教學文字維持 CC BY),
而且每一支的檔案開頭都帶免責與非關聯聲明、檔尾附完整條款
—— 就算有人只拿走腳本、不帶走網站,那段聲明也會跟著走。
④ 新增第 3-1 節,把「站上四樣碰到光碟檢查邊」的東西
主動列出來並畫清界線。 |
③ 的理由值得記:CC BY 是給「作品」用的,它沒有免責與無擔保條款。(2026-09-06 訂正:這句不對——CC BY 4.0 第 5 條也有無擔保與責任限制。分開的理由改寫成「工具會改別人的檔案,用軟體授權比較清楚」,法律頁與 LICENSE 已同步改。) 而這些腳本會真的去改別人電腦裡的檔案。 |
| 檢查器 | 本站的檢查工具 | 加一道「</html> 之後不可以還有內容」。
當天實測:一段訂正說明因為插入點算錯被放到 </html> 之後,
瀏覽器多半還是會顯示它,但所有既有檢查都沒抓到。 |
結構檢查只看「標籤成不成對」,看不到「東西掉到文件外面」。 |
| ⭐ 粉絲體驗 | 2008 年那份名單裡的每一個人(新頁) | 用「2008 年玩過台灣模組的人」的角度走一遍全站,最刺眼的一條是:
整站找不到任何一個中職球隊名
(興農、La New、誠泰、米迪亞、中信、鯨、獅 全部 0 頁),
而站上到處是大聯盟球隊名。
翻出一份 2008-12-03 的名冊更新說明,裡面有一張
33 位旅美球員一人一行的表:臉皮編號、大頭照編號、
當時在哪一隊、那張臉是誰做的。抽九位驗,
編號十八年後全部還在(只有李振昌的大頭照 3497 兩份都找不到,標未解)。
同一批資料裡還有中職六隊的 .met,各 25 位球員。 |
一個台灣模組的教學站,零個中職球隊名 —— 那不是紅線問題,是沒人寫。 |
| 粉絲體驗 | 首頁 | 故事區的標題原本叫「不只是教學」,讀起來像附錄, 而且位置在整頁約 57% 處。改成「當年那些事」, 並加一句「如果你 2008 年玩過台灣模組,這一區是為你寫的」。 | 粉絲是靠導覽列第四個字才知道有東西可以看的。 |
| ⭐ 新手體驗 | 新手基本功(新增一節) | 全站沒有任何一頁教「怎麼找到你的遊戲資料夾」,
而那是每一課的第一個動作。實測全站「開啟檔案位置」「捷徑」0 命中,
暖身課的前置直接寫「你已經安裝好,而且找得到它的資料夾」——把最難的那一步假設掉了。
新增「操作零:找到你的遊戲資料夾」:三種找法(桌面捷徑右鍵、開始功能表、常見安裝路徑)、
怎麼確認找對了(同一層要同時有 mvp2005.exe 與 data)、
以及怎麼把路徑複製起來。順帶提醒這款遊戲不在 Steam/EA app 上。 |
假設掉的那一步,正是新手最常卡住的那一步。 |
| ⭐ 新手體驗 | 暖身課 | 首頁第一顆按鈕「我是新手,從暖身課開始」指向這一課,
而這一課的第一個動作是打開 controller.cfg ——
剛安裝好、還沒玩過的遊戲裡沒有這個檔
(拿三份剛安裝好的原版實測,三份都沒有)。
站上其實有寫,但埋在整頁最下面的出錯處理表裡 —— 新手會先撞牆才讀到。
把「你至少進過遊戲一次」移到「前置」的第二條。 |
資訊有寫不等於讀得到。位置本身就是內容的一部分。 |
| 檢查器 | 本站的檢查工具 | 「N 個基本操作」跟「還有 N 篇」一樣是會過期的數字,一起交給程式守:
必須等於 <h2>操作N 的實際個數,而且其他頁面引用時也不能寫成別的數字。
(寫規則時自己踩了貪婪比對的坑:
([\u4e00-\u9fff\d]+)個基本操作 會抓成「改遊戲之前先學會六」。
限縮成只認數字字、最多三個字才對。) |
今天第三次寫檢查規則、第三次規則自己先錯。 |
| 法律稽核 | 首頁、法律頁 | 首頁頁尾寫「本站僅為介紹與教學目的引用少量遊戲畫面」, 而法律頁第 5 節寫「本站不使用遊戲畫面截圖」——兩句直接打架。 查事實:全站只有 2 張圖(自繪的 favicon 與球衣對照圖),沒有任何遊戲畫面。 所以是首頁那句錯了,已改成跟法律頁一致。 | 兩句對立的話擺在不同頁,誰都沒發現 —— 直到有人用「想告這個站」的角度讀一遍。 |
| 法律稽核 | 法律頁 | 全站 58 頁 + 9 支腳本,「EULA」「使用者授權合約」「使用條款」出現 0 次。 一個教人改商業遊戲的站從頭到尾沒提過授權合約。 新增第 2-1 節:說明那是讀者與 EA 之間的約定、本站不是當事人也無法代為解釋、 著作權法的權利限制條款跟合約條款是兩件事、以及本站一貫立場 (改自己買的那一份、自己玩、不散布)。明寫本站作者不是律師。 | 不是加一句免責就好,是把「這件事本站不能回答」講清楚。 |
| 法律稽核 | 法律頁 | 下架管道原本只有一條 GitHub Issues:公開、需要帳號、沒有時限、 而且當時那個 repo 還不存在。改成三條,其中一條 不經過本站維護者也一樣有效(GitHub 自己的下架流程)。 並寫明承諾:先下架再討論、目標七日內回應、下架紀錄會寫進更新紀錄但不寫通知人是誰。 也誠實寫出已知限制:沒有公開的電子郵件管道,那是刻意的。 | 一條需要對方註冊帳號、公開發文才能用的管道,實務上等於半條。 |
| 法律稽核 | 全站 21 頁 | 58 頁裡有 21 頁沒有「與 Electronic Arts、中華職棒無任何官方關聯」, 而且缺的正好是 EA 內容最密集的速查頁。已全部補上, 並在 audit_launch 加一道:任何一頁少了這句就紅燈。 | 搜尋引擎會把任何一頁當入口,而多數人不會點到法律頁。 |
| ⭐ 未解 → 解開 | 大頭照 | 那 840 張通用大頭照的檔名是一張 15×7×1×8 的完整網格, 站上已經把三個軸對到「罐頭臉 15 種 × 髮色 × 鬍子 8 種」, 但髮色那一軸原本寫「對上宣告的 7 種,實際只用到 6 種」,掛了未解。 拿剛安裝好的原版一量:髮色 0 到 6 用滿 7 種。 會看到 6 種是因為量的是台灣名冊 —— 那份名冊剛好沒有人用第 7 種髮色。 三個軸現在全部精準對上。 | 又一個「用測試機量、以為是遊戲的性質」。這次的代價是一個掛了很久的未解。 |
| ⭐ 重要訂正 | 一個檔案裡的地層 | 那 92.6% 的孤兒資料有三種狀態,站上只講了兩種。逐檔量:
EA 出貨的檔碎片很小但不是零(models.big 4,005 bytes、
portrait.big 3,563、ingame.big 71);
被工具重新打包過的檔剛好 0(這台的 models.big 與 portrait.big);
被 append 模式改過的檔越積越多(這台的 ingame.big 92.6%)。
所以 92.6% 不是格式的性質,是「有人用 append 改過很多次」的痕跡。 |
連帶要換一條鐵律的理由 —— 見下一列。 |
| ⭐ 重要訂正 | 一個檔案裡的地層、BIGF 格式 | 「一律用 append 模式」的理由原本寫「不然 2.5 MB 會變成 198 KB」。
但這台的 models.big 早就被重新打包過了(碎片剛好 0),
而它好好的 —— 894 張臉皮全部讀得出來,遊戲也在跑。
所以正確的理由不是「重新打包一定會壞」,而是
「你不知道手上這一份被誰疊過什麼」:
重新打包會把「目錄沒指到、但可能還有人用」的東西一次丟掉,而你沒辦法事先知道有沒有。
append 的代價只是檔案變大,重新打包的代價是不可逆 —— 風險不對稱,所以選 append。 |
一條規則的理由錯了,規則本身還是對的 —— 但理由錯會讓人在該例外的時候不敢例外。 |
| ⭐ 新發現 | 臉皮檔 | 這台的 894 張臉皮,沒有任何一張跟原版逐位元組相同 (0 張存活)—— 499 張同名但內容被換掉、395 張是原版沒有的。 社群模組把臉皮整批換掉了,不是加上去而已。 | 又一個「只看數量看不到的事」。 |
| 新頁 | 十四年後打開自己的模組資料夾 | 檔案考古,不靠回憶。年份分佈(2006 年 4,392 個檔是高峰,第二名的三倍)、
最早的工作檔是 2004-01-15 的球衣底稿(遊戲 2005 年 2 月才出,
那是上一代帶過來的,而且先做貼圖、名冊是後來的事)、
81 個中文檔名的 .wav,其中 62 個只有一個字
(中文播報是一個字一個字錄再拼起來的)、
以及 2007 年那句「台灣之光取代釀酒人」拿 team.dat 驗到
artid 23 從 Milwaukee Brewers 變成 Taiwan Glory。
順帶解開 Standard/Plus:同一份 3,208 位球員的名冊,
標準版 436 人有專屬臉、plus 版 875 人,
逐人比對 435 位不同、其中 430 位是「通用臉 → 專屬臉」。
那正是 2008 年那份除錯清單裡「把臉皮編號改成 Standard 版」在動的東西。 |
「為什麼那樣就不會跳出」是當年那些人的解釋,本站沒辦法驗證,標未驗。 但至少現在知道那一步在動什麼了。 |
| ⭐ 新發現 | 語音檔頭 | 語音本體 .dat 的第 8–11 個位元組寫著「這個檔是哪一套工具做的」。
剛安裝好的原版全庫 4,580 個清一色 PT\0\0、零個 GSTR;
測試機裡跟原版逐位元組相同的 3,692 個也是零個 GSTR;
而後來加的 7,988 個裡有 5,778 個是 GSTR。
所以這是一條單向判定:看到 GSTR 一定不是 2005 原版留下來的,
但看到 PT\0\0 不代表是原廠的(後加的裡面也有 1,680 個)。 |
四個位元組就能判斷來歷 —— 這是站上第一條「打開檔案看一眼就知道」的判定。 |
| ⭐ 新發現 | 語音檔頭 | spch_pbp.txt:1.17 MB 的純文字對照表、31,902 行,
列的是原始錄音的檔名與位移(1000ms.wav 0、1100ms.wav 3840…)。
沒有縮排的是群組名,每個群組的位移從 0 重新起算。
這份表把 EA 當年錄音室裡的檔名留了下來 ——
1000ms.wav、800ms.wav 看得出是停頓長度。 |
沒有把它跟實際音訊對起來,也沒解讀群組命名規則,標未解。 |
| 研究打假 | 語音檔頭 | 這一頁的標題「16 個位元組」只對球員名那一庫成立。
五個語音檔頭庫的檔頭大小差很多:
spch_pa\pnamehdr.big 是 32(2,106 個全部一樣)、
spch_pbp\tnamehdr.big 是 72 ~ 148、九種。
但這一頁真正在講的那兩個欄位(編號在第 2–3、長度在第 8–9)
在五庫都一樣、6,995 次全部成立 —— 多出來的部分接在後面,本站沒有解讀。 |
發布隔天就抓到自己的標題比內容大。 |
| ⭐ 新發現 | 語音檔頭 | 整個遊戲最大的音訊檔 pbpdat.big(212,219,648 位元組,播報員的所有講評)
不是封裝檔 —— 開頭是 SCHl 不是 BIGF,
整個檔就是一長串音訊串流接在一起、沒有目錄。
它的索引是一個純文字檔:旁邊的 pbpdat.off,
2,056 行「起點,長度」,把所有長度加起來
剛好等於 212,219,648,一個位元組不多不少。
EA 在同一個遊戲裡用了兩套索引做法。 |
為什麼這個檔要特別處理,不知道,標未解。 |
| 研究打假 | 球場檔 | 「29 組日夜配對裡全部都相同的項目只有 8 項」——
剛安裝好的英文原版是 9 項,多的是 3dcrowd.ord(看台觀眾的幾何)。
而差別的來源只有一個位元組:
orionite.big 偏移 0x8A500,英文版 F6、
本站測試機 FE(第 3 個位元被設起來,位置對 32 取餘 0)——
那正是另一頁講的那 45 個損壞位元組之一。
英文原版的 3dcrowd.ord 白天版與夜間版逐位元組相同,算得進那份名單;
測試機那份被打到,就被踢出去了。於是本站量到 8,寫上了 8。 |
一個翻掉的位元改變了本站發布過的一個數字。 而且測試機的球場資料夾跟那份繁中備份逐位元組相同 —— 三份裡有兩份同源,那不算三個獨立證據。 |
| ⭐ 未解 → 解開一半 | EA 官方繁中版 | 今天上午那 45 個位元組的謎團,下午確定了是哪一側壞的。
那些位元組有幾個落在 models.big 的球衣貼圖裡。
把 u025k.fsh 在兩邊各解開一次:
英文版 28 張圖,格式代號全是正常的 0x6D/0x78;
本站那份繁中版備份解出 8 張 0x45
—— 那個代號在整個遊戲的任何地方都不存在,
而且其中一張的尺寸解出來是寬 0。
寬度 0 的圖不可能是誰刻意做的。加上第三份安裝 45 次全站英文版那邊,
結論是:那 45 個位元組是損壞,壞的是本站這份繁中版備份。 |
「是不是損壞」跟「是什麼機制」是兩個問題。前者答出來了,後者還沒 —— 什麼東西能系統性地在 32 位元組邊界上把同一個位元設起來,仍然不知道。 |
| 誠實但書 | 語音檔頭 | 既然那份繁中版備份有損壞,就得說清楚:受影響的 20 個檔裡包含
tnamedat.big(隊名語音)。這一頁的公式算的是檔案長度,
位元組損壞不會改變長度,所以那 124 筆不受影響、兩份也給出一樣的結果。
本站引用過的其他檔(.LOC、五個 hdr 封裝檔、
datafile 的光源檔、lighting.csv)逐一查過,全部乾淨。 |
對照組本身有問題的時候,要說出來,並且逐檔查過再說「不受影響」。 |
| 研究打假 | 臉皮檔 | 「編號從 c001 排到 c900,中間缺 6 個」是社群重新打包之後的樣子。
剛安裝好的原版是 504 張、c001–c606、中間缺 102 個。
模組把號碼填到 900、補掉了原版那 102 個空號的大部分,自己又缺了 6 個
—— 「缺號」這件事在兩份檔案裡是完全不同的兩回事。 |
又一個沒標範圍的數字。 |
| 研究打假 | 臉皮檔、大頭照 | playerattrib_photo「只有 0、1、2 三種值」也是這台的。
原版只有 1 與 2,沒有 0(1 有 1,301 人、2 有 1,620 人)。
而且它幾乎是「這位球員有沒有語音編號」的鏡像:
photo=2+audioid=0 有 1,620 人、
photo=1+audioid≠0 有 1,300 人,
2,921 位裡只有 1 個例外(Default Default,名冊第一列的空位)。
99.97%。 |
順手把一個「未確認用途」的欄位推進了一大步。 |
| 研究打假 | 檔案地圖、大頭照 | 站上到處講的「224 個封裝檔」,精確講是
data\ 底下副檔名叫 .big 的檔案數。
真正是 BIGF 封裝格式的只有 207 個 ——
另外 8 個開頭是 SCHl(音訊容器)、1 個是 SHPI(圖片)、
8 個沒有可辨識的開頭。已在檔案地圖那頁講清楚一次。 |
「封裝檔」跟「副檔名叫 .big 的檔」不是同一件事。 |
| ⭐ 未解 → 解開 | 球場檔 | 那張卡片原本寫「04day、07night 這些代號實際對應到什麼光源參數,
本站沒有找到定義它們的地方」,掛了「未解」。
找到了 —— 就在旁邊的資料夾。
lighting.csv 右欄那 16 種代號,每一種在 data\datafile\
裡都有一個同名的檔,16/16 全中。打開來是一長串具名的光源參數
(DugoutR_Light2_RGB、Bullpen_IR_Ground_Weight…),
16 個檔各 12 KB、共 381 種參數名,其中 357 種是 16 個檔全部都有的
—— 同一組欄位、不同的值。
(2026-09-06 訂正:這兩個數字原本寫 380/356,各少一種。
檔頭 0xaba1daef 後面那個數字自己就宣告 357/358/381,
逐檔取名稱表算聯集與交集也是 381/357。) |
找到它的方式值得記:EA 官方繁中版把 datafile.big 拆開出貨,
466 個散檔攤在資料夾裡,一眼就看到。英文版是打包的,要先解開才找得到。
同一份資料,換一個發行版就從「找不到」變成「一眼看到」。 |
| 研究打假 | 播報員為什麼不唸新球員的名字 | 原本寫「沒有語音的球員,EA 直接填 0」,讀起來像是「非 0 就有語音」。 反過來不成立:剛安裝好的原版那 1,300 個非零號碼裡, 118 個(9.1%)一個檔案都沒有,a/c/d 三件齊全的只有 998 個(76.8%)。 這是 EA 自己出貨的名冊就有的狀況。 | 「A 蘊含 B」寫完之後,順手檢查一下「非 A 蘊含非 B」有沒有跟著被讀進去。 |
| 研究打假 | 原版與這台的對照、播報員那頁 | 「多出來的 2,670 個號碼是後來被模組加進去的」——2,670 是淨值, 實際是加了 2,681、拿掉了 11。 換成用「檔案」當單位差更多:新增 7,988 個項目、 同名但內容被換掉 848 個、原封不動 3,692 個、刪掉 40 個。 模組不只是「加」,只看號碼總數會完全看不到這件事。 | 淨值把「同時發生的加與減」壓成一個數字。 |
| 自我訂正 | 王建民用的是 Smoltz 的投球姿勢 | 這一頁上線當天就被自己抓到一個錯:
「那份名冊有 47% 的名字是十六進位字串」是本站讀檔的程式寫錯造成的。
球員資料檔每一列開頭是「列的識別碼」,它沒有欄位編號而且開頭是數字;
本站的程式用「開頭數字 = 欄位編號」去掃,把 0f58f3c1b
讀成「第 0 欄 = f58f3c1b」—— 第 0 欄正好就是名字。
正確重量:真的是十六進位字串的只有 5 個(0.2%)。
那三條姿勢對照重驗過,全部成立(28、21、49 不受影響,因為識別碼只會撞到
「開頭數字剛好等於欄號」的格子)。
「蔣智賢 — Piazza」驗不成的原因也改了:Piazza 2007 年退休,不在 2009 名冊裡。 |
拿到一個很漂亮的數字時,先問「會不會是我量錯了」。 |
| 自我訂正 | 臉皮檔 | 撞號那張表也是同一個程式錯誤的產物。重驗後:14 個撞號裡 5 位改用通用臉、7 位不在 2009 名冊裡、2 位完全沒處理。 原本寫「Lou Gehrig、Rod Carew 整個從名冊移除」是錯的 —— 他們還在,而且還用著原本的編號, 也就是說裝了那個臉皮包之後這兩位名人堂球員會頂著別人的臉。 那反而是「用 EA 範圍內的編號要付什麼代價」最好的示範。 | 同一個 bug 汙染了兩頁。 |
| 研究打假 | 臉皮檔 | 原本寫「這台上那 890 張用的是 EA 沒有用過的格式與尺寸」,
下一句還加碼「只知道原版沒有這個格式」。兩句都是假的全稱句。
0x60 與 0x61 是 EA 自己大量在用的正規格式,只是沒用在臉皮上:
logos.big 有 920 張 0x61、bkgnds.big 有 105 張 0x60,
連「0x60 的 256×512」這個一模一樣的組合,球場檔 crosday.big 裡就有一張。 |
同一件事大頭照那頁寫對了 ——「EA 在這個倉庫裡沒有用過」。差別只在那個限定詞。 |
| 研究打假 | 臉皮檔等 3 頁 | 「七成七的球員共用那 15 張臉」只對本站測試機成立。 剛安裝好的原版是 84.1%(2,454/2,917),比這台還高 —— 模組加了臉之後比例反而降了。三頁一起補上標示。 | 又一次把這台機器的比例當成通則講。 |
| 研究打假 | 大頭照 | 「原版整套安裝的 6,370 個帶這句話的圖檔」少算了 22 個,實際是 6,392。
原因是當時的掃描只走封裝檔裡面,漏掉 data\misc\textures\ 底下
23 個沒有裝進封裝檔、自己就是圖檔的檔案。
結論不受影響(那些也全部是 metal),但「整套安裝」這四個字當時沒做到。 |
掃描器的覆蓋範圍跟宣稱的範圍不一樣,而宣稱寫得比較大。 |
| 吸收歷史資料 | EA 官方繁中版 | 挖到一份社群做的中文化模組,跟 EA 官方那份逐條比對同一個編號的翻譯:
比賽中那張表 97.2% 一模一樣、選單那張 99.0%。
社群不是從英文重新翻的,是把 EA 的官方中文搬進 ENG 槽位。
不一樣的 68 條才是他們自己動的手:13 條改年份,
其餘大多往「更像棒球」調 —— 補上「速球」(四縫線球 → 四縫線速球,
英文原文是 4-Seam Fastball)、把 EA 沒翻的 RHP 翻成「對右投」、
次打者改成「次棒」。還修了 EA 的一個錯字:
編號 6701 的 Rating,EA 寫「平等」,
而 EA 自己在其他 15 個地方都寫「評等」。 |
不是訂正,是補上「社群那一半」的故事。 |
| 吸收歷史資料 | 臉皮檔、換臉工具 | 新增一節「編號有三個區間,而且中間那個是雷區」。
EA 原版的專屬臉全部落在 c001–c606,c607–c900 是空號。
拿 2009 年那份模組的 26 張臉皮去對:26 個編號全部真的有人在用,
其中 15 個落在 EA 範圍內,14 個撞到 EA 已經指派過的球員;
另外 11 個落在空號區,一個都沒撞。
撞號是被處理過的 —— 現役球員改用通用臉(c192→c911、c114→c909、c190→c902),
退休傳奇直接從名冊移除。那是有人一個一個決定的。
(「退休傳奇直接從名冊移除」這句後來被本站自己推翻:
重驗後 Rod Carew 與 Lou Gehrig 都還在名冊上、還用著原本的編號 ——
見上面「自我訂正 · 臉皮檔」那一列。
原句留在這裡,因為這一頁記的就是寫錯過什麼。)
換臉工具同步加了撞號提醒:指定一個已經有人在用的專屬臉時會列出那些人。 |
站上原本只寫「901 以上是通用臉」,沒說 606 以下是 EA 的地盤。 |
| 吸收歷史資料 | 王建民用的是 Smoltz 的投球姿勢(新頁) | 2009 年那份台灣之光名冊的更新紀錄裡,社群逐人寫下「誰用誰的姿勢」,還附了理由
(「原本的 Schilling 比較偏高壓,Smoltz 比較接近小王的 3/4」)。
打開那份 pitcher.dat:王建民 28、Smoltz 28。
另外兩條也對上:羅國輝 21 = A-Rod 21、陳鏞基 49 = Helton 49。
順帶量到那份名冊有 47% 的名字是十六進位字串,不是人名。 |
不是訂正,是把教學裡那個「填一個整數」的動作接回它的來歷。 |
| 吸收歷史資料 | EA 官方繁中版 | 新增一節:繁中版沒有 anims.big,也沒有 datafile.big
—— 那兩包是拆開、解壓縮之後出貨的(730 + 466 個散檔,含中文的 0 個)。
全遊戲 .big 英文版 224 個、繁中版 222 個。
這對上了班主任 2008 年在 PTT 寫的一句「中文版的更新新球場就會必跳出」:
球場檔本身兩邊一樣(87 個裡 83 個逐位元組相同),
但社群模組安裝程式要改的那兩個封裝檔,在繁中版根本不存在。
本站沒有驗這是不是跳出的原因,只把兩件量到的事擺在一起。 |
一個 2008 年記下來、當年沒辦法解釋的現象。 |
| 吸收歷史資料 | EA 官方繁中版 | 原本只寫「兩邊各有自己獨有的檔」然後舉說明文件資料夾當例子, 讓人以為 913 個共同檔差不多就是全部。實際上英文版 1,191 個、繁中版 2,389 個, 獨有的分別是 278 與 1,476 個。 | 拿最小的差異當代表,把最大的那個蓋掉了。 |
| 吸收歷史資料 | 本站的隱私掃描器 | 拿一份真實的個資樣本當正向對照組去測,
抓到 76 個信箱、1 個手機、1 個 Windows 路徑,
卻完全沒抓到裡面的住址和本名。補上台灣地址與身分文件詞兩條規則。
另外記下一條放棄的規則:「護照式全名」在不分大小寫的掃描下
會把 http-equiv、sans-serif 全抓進來,同一份樣本噴 366 個誤判。 |
掃描器對著乾淨的站掃出 0,不代表它抓得到東西。要拿真的髒資料測。 |
| 吸收歷史資料 | 語音檔頭的 16 個位元組(新頁) | 2008 年遊戲基地精華區那篇〈語音檔製做法 新版〉的最後一步是 「用 WinHex 在第 2 欄填編號」,那是整篇最難照做也最沒解釋的一步。 把兩份原版全部 6,995 個檔頭拆開來數:編號在第 2–3 個位元組、 長度區塊數在第 8–9 個位元組(而且要減一),13,990 次比對零例外。 照原文字面做會把編號寫到左邊一格,而那一格是類別標記。 | 不是訂正,是把社群十八年前寫下的流程補上「為什麼」。 |
| 吸收歷史資料 | 語音資料夾裡的 23 個人 | 原本寫「語音庫涵蓋 4,343 個號碼,遠多於任何一份大聯盟名單」, 並用它去說明 EA 的收錄標準。4,343 是裝過模組的這台的數字, EA 原廠是 1,673 個。換掉數字之後結論也要換:本站更沒有立場 對 EA 的收錄標準下任何結論。 | 又一次拿這台機器的數字去推論 EA 的做法。 |
| 吸收歷史資料 | 速查總覽 | 語音那張卡片寫「語音庫有 4,343 個名字」,沒有標這是哪一份的值。 | 「本站已經在各頁把這台的值標出來」那句話,漏了這一處。 |
| 上線前複查 | EA 官方繁中版 | 同一輪裡自己訂正自己。上午剛寫「那 45 個位元組是兩份備份之一在某個環節掉了位元」, 下午多量兩件事就推翻了:45 個位置全部是 32 的倍數、 而且那些位元組的第 4 個位元兩份都是 1。隨機損壞不會這樣落點。 第三份安裝當公親,45 次全部站英文版那邊。已改成「不是損壞,是某種有結構的東西,但那是什麼不知道」。 | 把「想不到別的解釋」當成「找到解釋」。差別只在有沒有再多量一件事。 |
| 上線前複查 | EA 官方繁中版、文字表 | 原本寫「本站測試機的社群中文化模組只換了選單那張表、沒換比賽中那張」。 整句是錯的:測試機正在跑的兩張表一個中文字都沒有(含漢字的字串各 0 條)。 改掉選單那張的是 2023 年名冊模組;機器上另外留著一份中文化備份,那一份兩張表都換了 (IGENG 992 條、FEENG 4,914 條含漢字)。 | 把「這台機器上看到的現象」寫成「別人的做法」,而且拿它推出了一條教學結論。 |
| 上線前複查 | EA 官方繁中版 | 原本寫「913 個共同檔案裡只有 65 個不同,其餘 848 個位元組一模一樣」。 頁尾自己說方法是比檔案大小,而「位元組一模一樣」是更強的宣稱。逐位元組重量: 825 個相同、65 個大小不同、23 個大小相同但內容不同。 那 23 個裡有 20 個只差在「繁中版把某個位元組的第 3 個位元設成 1」,共 45 個位元組、方向零例外。 | 用比較弱的方法量,卻寫了比較強的結論。 |
| 上線前複查 | EA 官方繁中版 | 原本寫「整份繁中安裝 802 個檔」,跟同一頁的「913 個路徑相同的檔案」直接矛盾 —— 子集不可能比全集大。實測 2,389 個檔、2,386 個落在 2004-2005。 | 不用外部資料、光看同一頁就能發現的矛盾,而檢查器當時報不出來(見下一列)。 |
| 上線前複查 | 原版與這台的對照 | 原本寫「EA 的編號停在五千多,再往上都是後來加的」。
對臉皮根本不成立(原廠上限是 c606),而且會讓人反推「五千以下 = 原廠」。
實測反推大量失效:模組加的臉皮 26% 落在原廠編號範圍內、大頭照 40%、語音 37%。
改成「能證明不是原廠,證明不了是原廠」。 |
一條好記但會把人帶到相反結論的規律。 |
| 上線前複查 | 原版與這台的對照 | 原本寫「模組通常只會加不會減」,並拿臉皮少掉的 5 個當唯一案例。 同一台機器上大頭照少了 277 個原廠編號、語音少了 11 筆。 | 挑了三組裡最小的那一組講。 |
| 上線前複查 | 全欄位清單等 5 頁 | 速查頁還在把測試機的欄位編號當通則寫。實測 46 欄裡有 27 欄編號不同,
根源是原版把 skin_tone 排在第 12 欄、這台移到第 38,12 之後全部往前挪一格。
照「第 16 欄」去改剛安裝好的原版會改到 bodytype,而且不會有任何錯誤訊息。
全站改成認欄位名字。 |
腳本上一輪已經修好了,但速查頁沒跟著改。 |
| 上線前複查 | FEL 修改配方 | 原本有一組叫「把 EA 自己關掉的東西打開」。拿原版比 fes_ingameoverlay.fel:
原版 36 行裡開著 24 行,本站測試機 36 行全部關著。
打開它們不是解鎖 EA 藏的東西,是還原模組關掉的東西。 |
又一次把這台機器的狀態當成 EA 的決定。 |
| 上線前複查 | 關掉跑壘者速度 | 同一張卡片裡,第 62 行的訂正說「不能說那是原廠的決定」, 第 68 行卻留著「遊戲原廠就是用這個開關」。相隔六行,自己打自己。 | 訂正只改了被指出的那一句,沒看同一段還有沒有別的。 |
| 上線前複查 | 本站的檢查工具 | 跨頁數字一致性稽核那支結構上不可能報出矛盾: 28 條事實的比對式全部寫死數字字面值,配上「抓不到就跳過」, 合起來變成「數字打錯 → 抓不到 → 跳過 → 印綠燈」。 實測把某頁的 3,247 改成 3,427,它照樣報「分歧項目: 0」。 已改成記錄每條事實應該出現在幾頁,少一頁就紅燈。 | 檢查器報綠燈,也要先驗綠燈是真的。 |
| 上線前複查 | 兩支下載腳本 | 上一輪稽核自己加進去的兩個 bug:改賽程那支的「還原前先確認備份是賽程表」 查的是一個檔案裡根本不存在的字串,結果擋掉所有合法還原; 改打擊姿勢那支的「寫後複驗」拿改過的記憶體去比檔案,永遠算出 0, 於是每次成功修改都跳假警報,把人叫去把正確的修改還原掉。兩支都已修好並沙盒實測正反兩向。 | 加防護的時候沒有用真檔跑過一次。 |
| 第四批 | 檔案地圖 | 原本寫「cd\ 是選單音樂,佔音訊 99%,比賽中的播報、觀眾、應援加起來不到 1%」,
還附了一段記憶體的解釋。重量之後發現整個寫反了:
選單音樂 84.2 MB、語音與音效 644.8 MB,分別佔整個音訊資料夾的 11.4% 與 87.5%。
那段解釋沒有依據,一併移除。 |
佔比寫反,而且拿一個沒有量測撐著的機制去解釋它。 |
| 第四批 | FEL 版面語法 | 原本寫「VR 固定 78」「TS 是編譯時間」。
實際上 VR 有 78、71、69 三種值,表上改成列出這三個實測值;
TS 那 17 行內容一模一樣,不可能是時間戳,改標「未確認」。 |
這一頁是最早那批就寫好的,只看了一部分樣本就當成全部。 |
| 第十批 | BIGF 封裝格式 | 原本寫「殘骸區撈得出 156 種舊版畫面代號,而現行版本只有一個 HUDLEFT」。
實測是 134 種,而且每一種現行版本裡都還在,稱不上舊版;
現行的 fes_hudleft.fel 有 26 個 HUDLEFT。
(2026-09-06 補:「134 種」是那一次量的,重跑是 143 種 ——
143 種指的是讀得出整段文字的那 13 個區塊,156 是把整片沒被指向的位元組一起掃的口徑。
「每一種現行版本裡都還在」不變。) |
兩個數字都錯,而且第二個跟本站另一頁原本就寫對的數字打架。站內矛盾就是紅旗。 |
| 第十二批 | 三頁 + 一支腳本 | 同一個檔案大小(ingame.big,2,665,562 個位元組),
站上同時有 2.6 MB(十進位換算)與 2.5 MB(二進位換算)兩種寫法。
查站上最大的那個封裝檔 models.big(561,891,312 個位元組,站上寫 535.9 MB),
確認慣例是二進位,五處全部統一成 2.5 MB。
(2026-09-06 補:當時漏了社群工具那一頁的兩處
—— 正文與重點整理都還寫著 2.6 MB,已一併改齊。) |
兩種換算都「看起來對」,錯的是同一個站混用。 |
| 第十二批 | 找不到頁面 | 深色模式下的連結對比只有 2.90,低於無障礙標準要求的 4.5。調整樣式順序後是 8.06。 | 淺色的顏色規則寫在深色區塊後面,同權重下後者勝。 |
| 震撼版期間 | 故事索引 | 原本寫「2009 年做的球員臉皮至今仍在遊戲名單裡,一個都沒少」。 那是一句沒有數過的全稱句。去數才發現:實際有 26 個資料夾, 18 個還在名單上、8 個不在。 | 規劃時憑印象寫的數字,被直接抄進頁面文案。沒有連結的說明文字也是已發布內容。 |
| 上線前最後檢查之後 | 播報與音訊、 什麼改得動、 檔案地圖 | 三頁都寫「選單音樂檔案層級直接換,不必解析格式」。這句話拔掉了。
實測本站測試機那 9 個 .asf 開頭四碼全是 SCHl,
是 EA 自家容器不是微軟 ASF。這 9 個檔的日期是 2023 年,已經被模組換過,
所以 EA 原廠出貨時是不是也用 SCHl,本站無法確認。
而最內層的聲音編碼本站沒有解開,所以不寫這個教學。 |
一條沒有任何量測撐著的操作建議。照字面做等於在賭遊戲讀不讀得動。 |
| 過往研究吸收 | 兩套球員編號 | 原本寫「掃過 data\ 底下全部 295 個封裝檔」,實際是 224。 |
那 295 混進了測試機上的兩個備份資料夾。跨頁數字稽核報 13 項分歧, 查完只有這 1 項是站上真的錯,其餘 12 項是稽核器自己的問題,分四類:措辭變體、把兩個不同的量當成同一個、 比對樣式抓太寬,以及「N 個版面檔」這個常數本來就不只一個值。 |
| 過往研究吸收 | 球員代號對照表 | 原本寫「守備位置 8/10、慣用手 0/2 命中,證據不足,不可照登」。 重驗後是守位 10/10、慣用手 2/2 與 3/3,全部可以照登。 | 抽字串的程式把長度小於兩個字元的字串丟掉了,
P、C、L、R、S
在那個方法裡永遠不可能命中。 |
| 過往研究吸收 | 圖片的像素怎麼排 | 這頁上線時說本站工具裡有兩格「每像素幾個位元組」寫錯
(0x6D 4 改 2、0x7F 1 改 3)。
上線後複驗又抓到第三格:0x7D 3 改 4。 |
拿程式碼註解當證據。連「我抓到幾個錯」這件事本身,第一次也少算了一個。 |
| 過往研究吸收 | 兩套球員編號 | 原本以為「叫 cNNN.fsh 的就是臉皮」,並據此寫「臉皮只有 894 個,沒辦法增加」。
王朝球衣那個封裝檔也用同一套檔名,122 個,其中 c116 在臉皮檔裡根本不存在。
894 的範圍改寫成「已經裝進 models.big 的臉皮」,
「沒辦法增加」降級成「出貨時沒有任何 901 以上的臉皮檔」。 |
把「檔名唯一」當成不用檢驗的前提。另外,「沒有」跟「不能有」是兩件事,後者本站沒測過。 |
| 過往研究吸收 | 資料檔總覽 | 原本寫「org.dat 的編號對不到 team.dat,是另一套編號系統,本站沒有解出」。
它就是同一串識別碼的十進位寫法,124 個非零的值全部對得上。 |
「對不到」通常不是「是另一套系統」,是「還沒換算過」。 十六進位與十進位是最常見的那一種。 |
| 過往研究吸收 | 為什麼加不了新球隊 | 原本把「美術編號 1 到 126 對應隊徽 l000 到 l125」寫成事實,改標推測。 |
差 1 是實測沒錯,但「遊戲是照這一欄去拿隊徽」沒有驗過。 |
| 過往研究吸收 | 檔案地圖 | 那張 data\ 樹狀圖少列了三個資料夾:datafile\、easo\、
igshapes\。其中 easo\ 有 519 個檔。 |
easo\ 與 igshapes\ 底下一個封裝檔都沒有,
而那張表數的是「封裝檔」不是「檔案」:用某個條件產生的清單,
會把不符合那個條件的東西變成看不見。
datafile\ 不適用這個解釋,它有一個封裝檔,是單純漏抄。 |
| 過往研究吸收 | 播報員為什麼不唸新球員 | 什麼改得動原本把球員專屬語音列為未解,理由寫「語音索引的資料結構還沒逆向出來」。 對應那一層是解得開的,真正解不開的是聲音編碼本身。結論不變,理由改對。 | 把兩層混成一層,寫得比實際情況悲觀。 |
| 上線前審查 | 大頭照 portrait.big | 原本寫「本站沒有解出編號與球員的對應關係」。已經解開了,球員資料檔第 16 欄就是那個四位數編號。 真正卡住的是把新圖壓縮回去。舊說法保留在頁面上當紀錄。 | 別頁已經推翻,這頁的說法過期了。 |
| 上線前審查 | 七頁引用名冊數字的頁 | 補上「這些數字量自本站測試機,你的名單不一樣,數字就會不一樣;不會變的是結構」。 | 站上對字型、音訊、動畫都有這個揭露,唯獨名冊沒有。而名冊正是測試機上被改最多的檔。 |
| 上線前審查 | 首頁以外的四頁 | 同一課,首頁叫「第 2 課」,另外四頁叫「第 1 課」。「第 1 課」「第 2 課」這種排序序號從其他頁拿掉,只有首頁排序; 「第 0 課」是前置條件不是排序,保留。 | 跨頁硬寫序號。首頁改順序,其他頁不會跟著變。 |
| 上線前審查 | 平安夜那天的建置 | 原本寫「894 個球員臉皮全部使用同一個著色器,沒有一個例外」。 實測像素格式有 4 個例外、內部標記有 1 個例外,改成「幾乎完全同規格」並寫出例外數。 | 全稱句只要有一個例外就整句垮掉。而且那句話不在該頁頁尾保證的範圍內。 |
| 上線前審查 | 三支已出貨的腳本 | 萬用工具把封裝檔檔頭的大小寫成了相反的位元組順序;換姿勢腳本的還原會找錯檔案; 診斷腳本只認得四種備份副檔名裡的一種,另外三種當成沒有備份。三支都修掉並補上回歸測試。 | 前面每一輪審查都漏掉,因為審查的單位是「頁」不是「操作」。 而工具自己還印「複驗通過」:寫入端改壞的東西,要由讀取端以外的檢查抓。 |
| 上線前總稽核 | 播報員語音 | 整份名單的覆蓋率表五個數字全錯,最大的差了 2.5 倍, 而且結論剛好講反:原本寫「三樣都沒有 62.8%」,實際是 11.9%。 | 查表的時候沒有補零。倉庫裡的檔名一律補零到四位(0216.fsh),
名單裡的號碼不補零(216),所以 1000 以下的球員全部被判成「沒有」。
同一個坑本站在另一課解釋過,自己又踩了一次。 |
| 上線前總稽核 | 播報員語音 | 原本寫「沒有人錄過他的名字,無論你怎麼設定播報員都唸不出來」。 EA 沒錄是對的,「沒有人錄過」不成立 —— 2008 到 2009 年台灣的模組玩家自己做了 23 個人的語音。 | 把「我手上的資料裡沒有」寫成了「不存在」。 而反例就躺在同一台機器的遊戲資料夾旁邊。 |
| 上線前總稽核 | 王朝存檔 | 原本寫「後半 100 萬個位元組,三十個存檔一模一樣」。 實際只比對了一組;30 個檔的 435 組全比之後, 有 104 組在那個範圍仍有差異。 | 從一組樣本推出全稱句。更巧的是站上剛好挑到 435 組裡最不利的取樣 —— 那兩個檔正好同屬後來才發現的那個四檔小群。 頁尾當時還寫著「差異分佈皆為量測 30 個存檔所得」。 |
| 上線前總稽核 | 大頭照 | 原本寫「7,542 / 7,542,沒有一個例外」。實際是 7,539 / 7,542,
有三個檔把 metal 少打了兩個字母。 |
少掉的兩個字母後面補了一組換行符號,所以長度完全不變, 光靠檔案大小抓不出來。這也是為什麼第一次數的時候沒發現。 |
| 上線前總稽核 | BIGF 封裝格式 | 同一頁上下兩張表用了不同的母體:一張是 295 個封裝檔, 另一張把使用者自己的備份複本也算進去變成 590 個, 同一群檔案的數量從 7 變成 14。 | 兩張表隔不到一行,讀者一眼就看得到矛盾。 換母體的時候沒有把兩張表一起換。 |
| 上線前總稽核 | 球衣模組 | 頁上那張圖原本是整張球衣貼圖,1X 與 2X 並排。 稽核發現兩半都可以裁下來無損還原成原始檔案, 而同一頁自己寫著「不提供這些檔案的下載」。 | 本站宣告的事跟本站做的事不一致。改成只截胸前標誌那一小塊(各佔 6.2%), 教學效果反而更好。 |
| 上線前總稽核 | 介面座標圖 | 「位置落在畫面內:絕對 99.3% 對相對 41.4%」—— 那一對數字用五種合理的判定條件都重現不出來。 | 寫了百分比卻沒寫「落在畫面內」怎麼判定。改成列出四種判定各自的數字, 結論反而更強:不管怎麼定義,絕對解讀都是相對的兩倍以上。 同一組數字也寫死在讀者會下載的工具註解裡,一併改。 |
| 上線前總稽核 | FEL 版面語法 | 群組欄位對照表的「子元素數範圍」五列有三列錯,因為同一欄混了兩種算法 (直接子元素 vs 全部子孫)。 | 統一成「直接子元素」並把定義寫進表頭。全站其他表格本來就是這個慣例。 |
| 上線前總稽核 | FEL 版面語法 | GG 指令「名稱含 FLASH / BLINK 者 87/267」只算了 FLASH, 而括號舉的兩個例子都是 BLINK。實際是 150/267。 | 把兩個條件寫在一起,卻只跑了其中一個。 |
| 上線前總稽核 | FEL 版面語法 | 「頂層只會出現四種指令」漏了每個檔結尾的 END:,實測是五種。 |
又一句可證偽的全稱句,而反例就在同一頁上面那段程式碼範例裡。 |
| 上線前總稽核 | 球場檔 | 「四十座球場共用一組設定」量不出來。實測掛同一組光源的是 44 座, 組成是夜間版 38 + 巨蛋 4 + 兩座只有白天版卻掛夜間光源。改成三十八座。 | 取了一個沒有對應邊界的整數。改完順手把三個例外寫出來。 |
| 上線前總稽核 | 藏起來的網站 | 會跳訊息框的行數寫 73,實際 78;「被註解掉」寫 26,實際 31。 | 搜尋時只找 alert(,漏掉 5 行寫成 alert ((中間有空格)的。
那 5 行全部是被註解掉的,所以後面兩列不受影響。 |
| 上線前總稽核 | 文字表 .LOC | 「畫面上每一句話都在這兩個檔裡」是全稱句,被本站自己另一節的 「第三套文字表」推翻。四處都改成「遊戲本體介面的文字」。 | 反例寫在同一個站上,只是在另一頁。 |
| 上線前總稽核 | 檔案地圖 | 「+ 24 個純文字 .dat」兩個標籤都錯:24 是「非封裝檔」的數量,
.dat 只有 19 個,其中 18 個才是純文字。 |
拿一個數量去配一個沒對應的標籤。 |
| 上線前總稽核 | 播報員語音 | 三種後綴加起來是 12,525,頁上寫 12,528,差的 3 筆沒有交代
(兩個沒後綴的,加上一個 3632.wav)。 |
總數對,組成沒對。 |
| 原版對照 | 關掉跑壘者速度 | 招牌教學要改的 fes_ingameinfobar.fel
不在 EA 原版的 ingame.big 裡。
三份未改動的安裝都是 44 個項目、都沒有它;本站測試機是 47 個。 |
本站一直以為 47 個版面檔是遊戲原本就有的。腳本原本還叫使用者「確認有沒有選錯檔」—— 他選對了,是原版沒有。已改成先看項目數再給診斷。 |
| 原版對照 | 原版與這台機器差在哪 | 站上好幾個當成「EA 原廠」引用的數字,其實是模組堆上去的: 臉皮 504 對 894、大頭照 1,487 對 6,638、 語音號碼 1,673 對 4,343。 | 沒有對照組的時候,手上那一份就是全世界。 知道自己缺對照組,跟每次寫字都記得自己缺對照組,是兩件事。 新增一頁當唯一基準,並在九個引用到這些數字的頁面加了統一提示。 |
| 原版對照 | FEL 版面語法 | 「原廠檔案裡有兩個錯字」(SSH/TTX)不成立。
原版全遊戲 329 個版面檔,三字母指令一個都沒有。 |
對照組:同一支掃描在原版讀出 9,556 行 TX:,證明掃描有效。
那兩個錯字是這份檔案被改過的過程中產生的。 |
| 原版對照 | BIGF 封裝格式 | 四處被原版推翻:BIG4「罕見」其實是 0 個;
*hdr.big「不是封裝檔」其實 13 個裡有 5 個是;
「資料區預設 128 對齊」其實 207 個裡只有 8 個;
+0x0C「資料起始位置」其實是目錄區結束位置。 |
這一頁的數字本來就量得很仔細,錯的是把「這一份的觀察」寫成「格式的規則」。 |
| 原版對照 | QFS 壓縮 | 「schedule.big 9 個裡 6 個壓縮 3 個純文字」——
原版那 9 個全部都是壓縮的。 |
那 3 個純文字,正好是本站換賽程年份那一課會動到的檔 —— 是被本站自己的工具改寫成未壓縮的。 規則沒錯,錯在拿一個被改過的檔當例子。 |
| 原版對照 | EA 自己的繁體中文版 | 本站一直以為中文化是社群做的。2005 年 2 月,EA 自己出過官方繁中版。 | 913 個共同檔案只有 65 個不同;中文被放進日文的槽位;字型檔脹大八倍。
新增一頁記錄,並訂正 loc-strings 原本「中文化模組會換掉這兩個檔」的說法。 |
| 原版對照 | 修改球員跑壘速度 | 腳本在剛安裝好的原版名冊上會把速度值寫進跑壘欄,而且不報任何錯。 | 兩份名冊的表頭都是 46 個具名欄位(編號 0 到 45)、欄位名稱集合也相同,但排列順序不一樣; 每一格的前綴編號跟著換,所以「檢查前綴等於 22」那道防線在原版上照樣通過。 兩道檢查用了同一個前提,加第二道不會提高安全性。 改成執行時從表頭找欄位名。 |
| 原版對照 | 圖片的像素怎麼排 | 0x7B 原本標「兩個倉庫裡一張都沒有,無法實測」。
在原版裡找到了:52,747 筆影像記錄裡有 9 筆,每像素剛好 1.000 個位元組。 |
它不在大頭照或臉皮那兩個倉庫裡,所以之前才找不到。 「找不到」只代表在我找過的地方找不到。內部排法仍未解。 |
| 原版對照 | 大頭照 | 三個把 metal 拼成 mel 的檔,原本當成 EA 的錯字記錄。
那三個檔在原版裡根本不存在;原版 6,370 個帶那句話的圖檔全部是 metal。 |
對照組:同一套查法在原版查得到其他檔名,不是查法失靈。 |
| 原版對照 | 模型與臉皮 · 大頭照 | 「890 張是規格、4 張是例外」方向反了。
原版 504 張臉皮 100% 都是那個「例外」格式(0x78 128×256);
原版 1,487 張大頭照也 100% 是 0x7D 128×128,一張 0x61 都沒有。 |
本站把手上這份的多數派當成了「規格」。 多數不等於原廠。是誰換的、什麼時候換的,本站不知道,標未解。 |
| 原版對照 | 大頭照 | a2653.fsh 那個「同名重複、1 位元組」原本當成檔案被動過的痕跡,
其實是 EA 自己的封裝慣例:原版 224 個封裝檔裡有 17 個是同樣結構,
四個條件全中、零例外。 |
兩筆把資料區從頭尾夾起來。「絕不整包重新打包」那條鐵律仍然成立,但理由換了: 不是因為有可疑殘留,是因為你不知道自己會弄掉什麼。 |
| 原版對照 | 模型與臉皮 | 那份洩漏了 Windows 使用者名稱的 faces.txt
原版一個 .txt 都沒有。 |
證實本站原本的推測:那份清單是重打包時塞進來的,不是遊戲自帶。 |
| 原版對照 | 播報員語音 | 「audioid = 2 就是不唸、1,337 人共用」整段是名冊作者的做法。
原版 1,300 個非零 audioid 全部不重複、零共用,而且 1 與 2 一次都沒出現過。 |
EA 的設計是「要嘛 0,要嘛獨一無二」。 對讀者的實用結論沒變,但歸屬要講對。 |
| 原版對照 | 球員代號對照 | 「四個位置合計 908 人、左投 0 人、零例外」—— 原版是 785 人、左投 1 人。 | 這條反而讓論證更強:785 個裡 1 個例外是 0.13%,跟其他守位的 21%–29% 差兩個數量級。 剛好是零反而比較像人為整理過的名單。 |
| ⭐ 舊的沒清完 | 三頁(課程地圖、 速查總表、本頁) | 三處改寫時把舊文字的尾巴留在原地:課程地圖有五行舊描述漏在標籤外面、
速查總表有一句話印了兩次(一份半形逗號一份全形)、本頁有一個沒有開頭的
</strong>。 |
六道檢查器全綠,是我自己讀原始碼時看到的。
既有的成對檢查只驗 <div>、<table>、<p>,
沒有驗行內標籤。錨點檢查保證得了「改對地方」,保證不了「舊的清乾淨」 ——
後者只有標籤配對數得出來。現在 <span>、<strong>、
<li>、<ul>、<ol> 都納入檢查,
加進去當下就抓到另外兩處。 |
| 2026-09-04 | 約 20 支腳本與它們的課頁 fel-toolkit · team-logo · fix-chinese · new-face · run-in-2026 · make-voice · swap-face · menu-text · make-a-player 等 |
96 條「說明對不上程式碼」一次修完
(下面這一列是彙總不是逐條:96 條分散在 20 個檔、
合計 578 處文字改動,逐條列出來會讓這張表變成三倍長)。 兩個代表性的例子:換球隊隊徽那一課寫「原版 132/132、本站測試機 132/132, 零例外」,實際測試機是 126/132,六個例外是 l008 l012 l035
l056 l065 l104;
介面萬用工具寫守備攝影機的欄位名稱表在第 9,216 行,
那只對散裝的總設定檔成立,封裝版是第 8,516 行。 |
同一個根因:把一台機器、一種檔案版本的數字寫成通則。 這 96 條是 2026-08-30 替 29 支腳本補說明那一輪就被覆驗指出來的, 但說明先上站了、覆驗結果沒消化,順序是反的。 這一次全部重驗(96/96 仍成立)之後才修。 兩條代表性的訂正本站都自己重跑量過才寫。 |
一再重複的三種錯
上面這些條目裡,有三種錯是重複犯的。
一、「我找過了,沒有」,但工具本身是壞的
抽字串的程式丟掉單字母,所以報「找不到單字母」; 文字搜尋對二進位檔會靜默失效,所以報「全部 0 命中」; 用相鄰像素差當檢查器,遇到臉皮那種格式會選錯邊,誤讀的分數比正解還好看。
任何「我找過了,沒有」的宣稱,都要先證明「我找得到一個已知存在的東西」。 這條規矩是被同一類錯誤逼出來的。
二、清單會讓不符合條件的東西整個消失
數封裝檔的表格,把沒有封裝檔的資料夾整個吃掉,包括那個有 519 個檔的; 數字稽核器報 13 項分歧,其中 12 項出在稽核器自己(同一件事的措辭變體、 把兩個不同的量當成同一個、比對的樣式抓得太寬),差點把唯一那項真的錯埋掉。
表格上寫「N 個」的時候,要說清楚數的是什麼。 檢查器報一堆紅燈的時候,先驗檢查器。
三、把「還沒查」寫成「查不到」
「對不到 team.dat,是另一套系統」,其實只是還沒把十六進位換成十進位;
「語音索引沒逆向出來」,其實是把可解的那層跟不可解的那層混在一起講。
寫「未解」比寫錯安全,但寫成「未解」不等於就誠實了: 把沒查的事情寫成查不到的事情,一樣是錯的。
playerattrib_platediscipline 這種欄位 ——
不知道那是什麼的人,改了也不知道自己改了什麼。
76 條術語列成三欄對照,而且每一欄的證據強度不同、頁面上有標: 遊戲裡的英文(名冊欄位名 46 + 29 欄與 EA 自己的代號表,量出來的)、 EA 官方繁中(拿剛安裝好的英文版與官方繁中版兩份字串表, 同一個字串編號兩邊各讀一次配出來的,也是量出來的)、 台灣棒球圈的講法(慣用語不是量測,明講)。
⭐ 配對的過程抓到官方中文有十一個會誤導, 最要緊的是
Earned Run Average 譯成「得分率」——
它其實是防禦率,算的是自責分,而且數字越小越好。
其餘像 Range 譯「距離」(實為守備範圍)、
Movement 譯「動作」(實為球的尾勁)、
Bats 譯「打擊」(實為左打右打)——
照著官方中文理解會改錯欄位,所以單獨列一節。
名詞小教室同步加 18 個棒球詞(34 → 52), 挑的是讀者在正文裡可能卡住的那些;全壘打、安打這種每個球迷都懂的不標, 標了只是雜訊。導覽列加第 10 項,375px 實測整頁不橫向捲。第 112 頁。
二、新頁上線的順序
這一節原本逐批記著每一頁是什麼時候、用什麼方式做出來的 —— 哪一批做了什麼、內部覆驗抓到什麼、哪些是後來決定改掉的。 2026-08-30 把它整段移到線下了。
為什麼移走
那一節記的是怎麼做出來的,不是做出來的東西對不對。 前者是工作紀錄,對讀者沒有用;後者才是上面「一、訂正」那一整節, 那個留著 —— 本站寫錯過什麼、怎麼發現的、怎麼改的, 是你判斷要不要相信這個站的依據。
被移走的是內部覆驗的規模與流程用語。 它們不影響任何一課的正確性,也不影響上面每一條訂正的可查證性 —— 每一條訂正都寫著「量到什麼」,你可以自己重跑。
還沒關掉的
站上有一批小標籤寫著「未解」「推測」「未確認」「未驗」這類字樣。現在有幾個,看 本站做不到的事的「📊 現在的數字」—— 那裡的數字是程式數出來的,每次發布前都會重新數一次核對,這一頁不再手寫一份。 那個數字只數標籤,內文裡同樣意思的句子沒有算進去; 而且它是照字樣挑的,不是照意思挑的: 標籤上的字含有「未解」「未驗」「推測」「未確認」「推論」「半解」「待驗」「待補」「不明」「沒驗」其中一個才算。 (2026-09-23 訂正:這一段原本手寫著 180、245、65 三個數字,是照另一套字樣數的, 而且 2026-09-06 之後就沒人再同步,重數已經對不上,所以拿掉,改成指向會自己重數的那一頁。)
它們不是待辦事項,是邊界:標著「推測」的地方,代表本站看得出那樣寫很合理, 但沒有量到足以寫成定論的證據。
這些標記會隨著新的量測結果減少,也可能因為重驗而增加。
上面那張表裡就有四條是把原本的肯定句往回收的:TS 改標未確認、
美術編號改標推測、「臉皮沒辦法增加」改成「出貨時沒有 901 以上的檔」、
「沒有一個例外」改成「幾乎完全同規格」。方向跟直覺相反。