更新紀錄

這個站寫錯過什麼

這個站的規矩是:數字要量過才寫,沒量到的就標出來。實際做下來,猜的地方還是有, 而且不只被自己抓到過一次:有的是數字算錯,有的是把推測寫成了結論, 其中一次是整段結論寫反。這頁把散在各頁的訂正與改動集中起來,共 142 條, 一條一條列出原本寫什麼、後來改成什麼、為什麼會錯

為什麼要有這一頁

訂正如果只留在原頁上,讀者得一頁一頁翻才看得到。集中列出來是為了讓一件事變得可以查證: 這個站寫錯的地方會留著改動紀錄,不會悄悄換掉。

本頁只收已經上線、後來被推翻、改寫或補救的內容。 上線前就修掉的不算,那不叫訂正,那叫還沒寫完。 (例如球員代號那頁的「兩位二刀流」,是那一頁第一次上線時就已經修好的,所以不在下表裡。)

一、訂正

下表 142 條,每一條都對應站上一次實際的改動,按上線批次排。 (這個數字是數表格列數數出來的,不是手寫的。2026-09-04 核實時發現原本三處都寫著 132,而表上已經有 134 列;加了 09-04 那一列之後,三處統一成量到的 135。2026-09-06 這一輪補了 7 列,三處再同步成 142。) 其中五頁在內文裡直接留著訂正段落(開頭寫著「本站改過這一段」或「本頁上線時寫」), 可以在該頁看到原文;其餘幾條的原文隨著頁面改版拿掉了,只留在版本紀錄裡。

批次哪一頁改了什麼為什麼會錯
⭐ 開張前逐頁覆驗 怎麼看出哪些檔還沒被動過

一頁五件。

「999 個檔、744 個出廠期、74.5%」是舊快照, 這台機器的 data\ 底下今天是 1,090 個檔、774 個(71.0%); 球場資料夾原本寫 100%,現在遊戲正在讀的那個只剩 34% (原廠球場備份那份仍是 88/88 全中)。 兩份 dodgnite.big 誰在服役寫反了 —— 遊戲現在讀的是 2013 那份。 「整份安裝沒有任何一個檔比出貨日更晚」是沒有數過的全稱句TP03Patcher.dll 是 2003 年、比出貨還早, filelist.txt 是 2015 年、晚了十年。 igcrsr.fsh 尾段不是補零,長度差是 928 對 848(不是 944 對 864)。 中文整合包那 65 個同名而大小不同的檔, 大多是 EA 官方繁中版本身就有的差異,不是整合包作者動的 —— 拿它跟官方繁中版比,2,389 個同名檔沒有一個大小不同。

量過一次就寫死,資料夾卻一直在被動。 ①②⑤ 都是同一種病:沒寫「量的是哪一份、哪一天」。 ③ 是本站一再犯的全稱句,④ 是抄錯欄。
⭐ 開張前逐頁覆驗 王朝存檔

頁尾那句出處聲明是第二次出錯。 上一輪已經把「頁尾當時還寫著『差異分佈皆為量測 30 個存檔所得』」記進這張表, 但那句話當時沒有真的改掉,這次才動到頁尾。

同一頁另外四件:填充那張卡的三個數字(926,920 與 463,460 兩次)重跑不出來, 真值是 927,322463,661 兩次, 而且兩份老闆模式存檔的填充長度本來就不一樣,不是一條固定的分界線; 二十段那張表的第 13 段不是「完全相同」,差 502 個位元組; 第一張表的欄名把「435 組兩兩比對」標成「聯集」,真正的 30 檔聯集是 26,123; 「名單與玩家檔案一處都沒有 55 BB」不成立 —— 名單 603–606 處、玩家檔案 123 處,只是最長 8 與 12 個位元組, 所以拿它量尾段長度仍然可信。另外 30 個存檔裡有 2 個內部寫的名字跟磁碟上的檔名不同。

把「這裡寫錯了」記進紀錄,不等於把它改掉。 這是本站第二次在同一句話上踩同一個坑 —— 訂正要附「怎麼驗」,下一個人跑一次就知道改了沒有。
⭐ 開張前逐頁覆驗 球場檔 四件已經發布過的事。 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%,所以本站當初撤回的那個理由其實是對的)。 如果「跑到畫面外不可能發生」成立,絕對解讀一起陣亡。

換成一個看得見的元素當證據: TX:RATING(跑壘者速度)是本站招牌那一課要關掉的東西, 整整一課存在的理由就是它看得見。 在 fes_ingameendofgamemenu.fel 裡逐層累加是 (1657, 1484),而畫面是 640×480 —— 螢幕的兩倍半以外。絕對解讀是 (572, 398),在右下角。 (2026-09-06 補:這一行的數值取自剛安裝好的 EA 原版; 這台機器上那一份被模組改過,同一行的 Y 是 409、逐層累加是 (1657, 1495), 一樣在畫面外,結論不變。) 一個看得見的元素不可能座標在畫面外。 結論沒變,變的是撐住它的理由。

百分比論證有一個共同弱點:它同時適用於你想否定的那一方。 「一大半在畫面外很奇怪」——那 49.1% 也很奇怪。(⚠️ 後來查出來 49.1% 才是錯的那個數字。) 一個能直接觀察的單一反例,比四個百分比都硬。
🔴 首頁承諾三條有兩條做不到首頁 · 全部教學

首頁的三個承諾裡,第二條寫「每篇教學動手前都先自動備份」、 第三條寫「每篇教學最後都附回報範本」。 實際上 15 課裡有 9 課沒有回報範本, 而首頁叫新手第一個點的暖身課根本沒有腳本、也沒有自動備份。

一個人第一次讀承諾、第一次點進去,就對不上。 這比任何一個技術錯誤都傷 —— 它讓讀者從第一分鐘就開始懷疑其他每一句話。

處理方式是兩邊都動 補上 8 課的回報範本(改速度、換臉、當機診斷、備份、 看穿檔案、工具總覽、食譜、檢查原廠),每一份都照那一課實際會印出什麼設計欄位; 把承諾改成做得到的版本 —— 「凡是附腳本的教學…少數不用腳本的課,第一步會手把手帶你自己複製一份」、 「每篇動手的教學最後都附」。 剩下唯一沒有範本的球衣頁本來就標著「只看不動」。

(2026-09-06 補:「15 課裡有 9 課沒有」是當年只有 15 課時期的數字, 放到今天已經不是現況。今天重量:教學區 39 課、其中 20 課附回報範本; 章節裡有「👉 你要做的事」的動手教學 26 篇、其中 12 篇附。 量法寫在這裡,數字自己會變 —— find site/tutorials -name index.html 扣掉目錄頁那一個, 再用 grep -l 回報範本 交叉數。)

承諾寫得越漂亮,越要拿實際的頁面一頁一頁對過。 「每篇都…」這種全稱句寫在門面上特別危險: 它不會有人來糾正你,但每一個照著做卻對不上的人, 都會自己默默降低對整個站的信任。
⭐ 差點誤判原版不乾淨 怎麼看出哪些檔還沒被動過

本站在「剛安裝好、從未改動的原版」裡看到一個 igcrsr.fsh.bak,第一反應是「那這份不乾淨, 前面所有拿它當基準的數字都要重驗」。

看時間戳才發現:那是 EA 自己留下的。 它跟本尊 igcrsr.fsh 的時間戳一模一樣 —— 2004 年 12 月 4 日晚上 8 點 01 分 20 秒, 而整份安裝沒有任何一個檔比出貨日更晚。 兩份都是合法圖片、同一張 512×256、同一個格式代號, 但 428 個位元組不一樣: 是同一張游標圖的兩個版本,開發時的備份跟著母片壓進零售版了。

「有 .bak」不等於「被動過」。 判斷一個檔是不是原廠的,看副檔名不夠,要看時間戳。 這一條已經寫進那一課,因為讀者拿自己的遊戲對照時 一定會遇到同一個誤判
⭐ 報告很漂亮,自己跑一次不成立 語音檔頭

本站跑了一輪內部覆驗。其中一份回報說語音檔頭 「多出來的部分」整段解開了,給了一條通用公式 (長度 = 12 + (2 + 位元組4) × 位元組5), 並宣稱「13,990 / 13,990 零例外」。

本站照著跑:那條公式在 6,995 個檔裡只成立 56 個。

但它不是全錯 —— 指出的方向(第 4、第 5 個位元組)是對的, 它舉例的 tnamehdr 那條「4 × 段數 + 20」完全正確。 錯的是把一個庫成立的規律寫成五個庫的通則。 本站自己重量之後,把那條未解收窄成 「兩個庫算得出來(124/124、91/91 零例外)、三個庫還沒解」, 並在頁面上寫出這整段經過。

「零例外」這種措辭本身要當紅燈。 它在對的時候是最強的證據,錯的時候是最強的誤導 —— 而讀的人分不出來,除非自己跑一次。
這一條跟同一輪本站自己犯的錯(把一個位移當成通則) 是同一種病在一個樣本上成立就當成規律。
🔴 讀者第一步就會卡死全部有下載按鈕的教學

站上五課寫「用上面的下載按鈕存檔,放到桌面」, 然後下一步就是 cd %USERPROFILE%\Desktop 加執行。 但瀏覽器多半不會問你要存哪裡 —— 它直接放進「下載」資料夾。照著做的人會看到 can't open file, 而那五課的「出錯處理」一條都沒有涵蓋這個情況

這是新手在第一步就出局的等級: 他還沒碰到任何遊戲檔案,就已經卡在一個站上沒提的地方。 已在每一個有下載按鈕的頁面補上「按了下載之後檔案跑到哪裡去了」, 分三小步(開檔案總管 → 點「下載」→ 拖到桌面), 並在出錯處理表補上對應那一列。

(2026-09-05 訂正:「每一個」這三個字現在不成立。 現場清點站上 29 個有下載按鈕的教學頁,其中 7 頁一樣叫讀者 「放到桌面」再 cd %USERPROFILE%\Desktop,卻沒有這一段說明: 遊戲當掉了怎麼辦執行檔上的六個旋鈕改記分板的顏色把官方中文版的中文搬進英文版改主選單的文字關掉開場動畫換球隊隊徽。 它們都是這條訂正之後才上線的新頁 —— 補說明沒有跟著長, 正好又是這一列自己講的那種安靜過期。)

「放到桌面」這四個字,寫的人以為是一個動作,讀的人以為已經發生了。 凡是牽涉到「檔案現在在哪裡」的步驟,都要把中間那一段寫出來 —— 作者最容易跳過的,正好是他每天做到變成反射的那一步。
⭐ 四個用途標籤寫錯 檔案地圖 · 語系檔 · 兩套球員編號 四句話寫錯,而且都在「速查」這種會被當事實引用的頁面: bp*.big 寫成「球員卡模式/收集卡模式的資源」—— 實際是老闆模式的球場資源bp = ballpark)。 光看檔名就該發現:bpattrac 遊樂設施、bpticket 門票、 bpvendor 小販、bppromos 促銷、bpupgrad 升級。 字串表 5600–5611 也是一整排球場設定(場地形狀、圍牆顏色、割草紋路、包廂)。 coop*.big 寫成「雙人合作模式」—— 實際是 Cooperstown 經典解鎖內容: 三個版面檔裡有叫 COOPERSTOWN 的元素, 而 EA 官方繁中版自己就翻成「鎖住的 Cooperstown 球場」。 coopunis.big 寫成「王朝模式的球衣」,同上。 語系檔那頁寫「編號 704 那組是 EA 原版就不一樣的,跟模組無關」—— 反了:原版兩個語系檔的第 704 條都是 Home Run ShowdownHome 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 用 R. Johnson、Mussina 用 Mussina、 Nolan Ryan 用 N. Ryan

兩份表已用錨點法重做(對不上的標「未知」,不硬填), 故事頁那一整段換成訂正, 「Bonds 是第 42 號」那句也一併撤掉 —— 第 42 號其實叫 Burnitz, 而 Bonds 是第幾號本站查不出來, 因為那個名字對應的球員不在名單裡,沒有人可以當錨點。

本站順手把全站掃了一遍,確認這個錯沒有擴散。 站上一共有 12 處寫出「第 N 欄 = 某個欄位名」, 逐條拿原版與模組版兩種配置去對:12 條全部成立,一條都沒錯。 寫得最完整的是改跑壘速度那一課 —— 它直接寫「本站測試機是第 22 欄,剛安裝好的原版是第 23 欄,腳本會自己從表頭找」。 教學一直是對的,出錯的是本站在做分析時沒照自己的教學做。

至於為什麼會被騙:用最多人的那幾個編號是通用姿勢, 而通用姿勢也有名字。拿全體去算, 幾百個共用通用姿勢的人會把訊號稀釋成看起來像零。 算比例之前先問:分母裡混了什麼。
還有一層:那個錯的結論「連 Clemens 都不用自己的姿勢」 讀起來太漂亮了 —— 而那份漂亮正是它能一路寫進兩個頁面沒被攔下來的原因。
⭐ 只憑數量吻合就下結論 球員代號對照表

本站發表了一條推論:「swingtype 有 7 個值, 字串 14900–14906 剛好是 7 個揮棒形狀的名字,所以那就是它的名稱表。」 當時已經標了「推論」,也把不支持的證據寫出來 —— 但那條推論還是錯的。

一小時後本站把介面版面檔全部掃一遍,找「誰在用那七個字串」: 它們是 fes_createaplayer.felTL:BATSTANCETL打擊姿勢選單)的選項,跟揮棒型態無關。 而且那個畫面有 85 個下拉選單,裡面根本沒有揮棒型態。 已把那七個值標回未解。

同一次掃描順便解掉另一條未解:Style 1Style 24 是同一個畫面投球姿勢選單的選項 —— 這也解釋了 2009 年那份台灣名冊為什麼會寫「倪福德 — Style9」。

數量吻合不是證據,是巧合的溫床。 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.wav500ms.wavcht 是 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)—— c423Lou 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 沒有」會讓人以為瀏覽器裡什麼都沒存。 兩者是兩種東西,但對讀者是同一件事。) 字型授權是 SIL OFL 1.1,明文允許自行托管。 (2026-09-05 訂正:這一格原本寫「授權全文附在 assets/fonts/LICENSE.txt」,那是錯的 —— 該檔是中文摘要與著作權人清單,英文全文是上面「⭐ 授權合規」那一列 才補上的 assets/fonts/OFL.txt。)
檢查器本站的檢查工具 兩道新的: audit_launch 加「任何一頁都不可以有自動的外部請求」 (只擋 linkscriptimg 這類瀏覽器會自己去要的, <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.exedata)、 以及怎麼把路徑複製起來。順帶提醒這款遊戲不在 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.bigportrait.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 23Milwaukee 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 01100ms.wav 3840…)。 沒有縮排的是群組名,每個群組的位移從 0 重新起算。 這份表把 EA 當年錄音室裡的檔名留了下來 —— 1000ms.wav800ms.wav 看得出是停頓長度。 沒有把它跟實際音訊對起來,也沒解讀群組命名規則,標未解。
研究打假語音檔頭 這一頁的標題「16 個位元組」只對球員名那一庫成立。 五個語音檔頭庫的檔頭大小差很多: spch_pa\pnamehdr.big32(2,106 個全部一樣)、 spch_pbp\tnamehdr.big72 ~ 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 張圖,格式代號全是正常的 0x6D0x78本站那份繁中版備份解出 8 張 0x45 —— 那個代號在整個遊戲的任何地方都不存在, 而且其中一張的尺寸解出來是寬 0。 寬度 0 的圖不可能是誰刻意做的。加上第三份安裝 45 次全站英文版那邊, 結論是:那 45 個位元組是損壞,壞的是本站這份繁中版備份 「是不是損壞」跟「是什麼機制」是兩個問題。前者答出來了,後者還沒 —— 什麼東西能系統性地在 32 位元組邊界上把同一個位元設起來,仍然不知道。
誠實但書語音檔頭 既然那份繁中版備份有損壞,就得說清楚:受影響的 20 個檔裡包含 tnamedat.big(隊名語音)。這一頁的公式算的是檔案長度, 位元組損壞不會改變長度,所以那 124 筆不受影響、兩份也給出一樣的結果。 本站引用過的其他檔(.LOC、五個 hdr 封裝檔、 datafile 的光源檔、lighting.csv)逐一查過,全部乾淨 對照組本身有問題的時候,要說出來,並且逐檔查過再說「不受影響」。
研究打假臉皮檔 「編號從 c001 排到 c900,中間缺 6 個」是社群重新打包之後的樣子。 剛安裝好的原版是 504 張、c001c606、中間缺 102 個。 模組把號碼填到 900、補掉了原版那 102 個空號的大部分,自己又缺了 6 個 —— 「缺號」這件事在兩份檔案裡是完全不同的兩回事。 又一個沒標範圍的數字。
研究打假臉皮檔大頭照 playerattrib_photo「只有 0、1、2 三種值」也是這台的。 原版只有 1 與 2,沒有 0(1 有 1,301 人、2 有 1,620 人)。 而且它幾乎是「這位球員有沒有語音編號」的鏡像: photo=2audioid=0 有 1,620 人、 photo=1audioid≠0 有 1,300 人, 2,921 位裡只有 1 個例外Default Default,名冊第一列的空位)。 99.97%。 順手把一個「未確認用途」的欄位推進了一大步。
研究打假檔案地圖大頭照 站上到處講的「224 個封裝檔」,精確講是 data\ 底下副檔名叫 .big 的檔案數真正是 BIGF 封裝格式的只有 207 個 —— 另外 8 個開頭是 SCHl(音訊容器)、1 個是 SHPI(圖片)、 8 個沒有可辨識的開頭。已在檔案地圖那頁講清楚一次。 「封裝檔」跟「副檔名叫 .big 的檔」不是同一件事。
⭐ 未解 → 解開球場檔 那張卡片原本寫「04day07night 這些代號實際對應到什麼光源參數, 本站沒有找到定義它們的地方」,掛了「未解」。 找到了 —— 就在旁邊的資料夾。 lighting.csv 右欄那 16 種代號,每一種在 data\datafile\ 裡都有一個同名的檔,16/16 全中。打開來是一長串具名的光源參數 (DugoutR_Light2_RGBBullpen_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 沒有用過的格式與尺寸」, 下一句還加碼「只知道原版沒有這個格式」。兩句都是假的全稱句。 0x600x61 是 EA 自己大量在用的正規格式,只是沒用在臉皮上: logos.big 有 920 張 0x61bkgnds.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–c606c607–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-equivsans-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,全部可以照登。 抽字串的程式把長度小於兩個字元的字串丟掉了, PCLRS 在那個方法裡永遠不可能命中
過往研究吸收圖片的像素怎麼排 這頁上線時說本站工具裡有兩格「每像素幾個位元組」寫錯 (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 對應隊徽 l000l125」寫成事實,改標推測。 差 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 版面語法 原廠檔案裡有兩個錯字」(SSHTTX)不成立。 原版全遊戲 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 把它整段移到線下了。

為什麼移走

那一節記的是怎麼做出來的,不是做出來的東西對不對。 前者是工作紀錄,對讀者沒有用;後者才是上面「一、訂正」那一整節, 那個留著 —— 本站寫錯過什麼、怎麼發現的、怎麼改的, 是你判斷要不要相信這個站的依據。

被移走的是內部覆驗的規模與流程用語。 它們不影響任何一課的正確性,也不影響上面每一條訂正的可查證性 —— 每一條訂正都寫著「量到什麼」,你可以自己重跑。

想知道某一頁什麼時候上線的,看 教學總覽課表的排序。

還沒關掉的

站上目前有 180 個小標籤寫著「未解」「推測」「未確認」「未驗」「未驗證」 「未實機驗證」「仍未解」這七種字樣。這個數字只數標籤, 內文裡同樣意思的句子沒有算進去。 (同一種樣式的標籤全站共 245 個。另外 65 個是字樣不在那七種之內的同款標籤, 裡面有「推論」「半解」這類程度標記,也有「看名字推測」「不可照登」這種 同樣是誠實邊界、只是沒用上面七種字樣的。這是照字樣切的,不是照意思切的。)

它們不是待辦事項,是邊界:標著「推測」的地方,代表本站看得出那樣寫很合理, 但沒有量到足以寫成定論的證據。

這些標記會隨著新的量測結果減少,也可能因為重驗而增加。 上面那張表裡就有四條是把原本的肯定句往回收的:TS 改標未確認、 美術編號改標推測、「臉皮沒辦法增加」改成「出貨時沒有 901 以上的檔」、 「沒有一個例外」改成「幾乎完全同規格」。方向跟直覺相反。

接下來