2026-08-29 · 卡了二十年的問題
中文版為什麼會跳出,
以及你能做到哪一步。
很多人是退而求其次玩英文版的。不是不想看中文, 是中文版一裝上比較大的球場,就會在讀取條跑完的那一瞬間跳回桌面, 沒有任何錯誤訊息。這件事卡了二十年,社群的結論是「球場檔不要超過 10MB」。 那個結論是錯的,真正的原因跟球場大小沒有關係。
一句話的答案
遊戲開機時跟系統要一整塊 64 MB 的記憶體,然後自己切給球場、字型、所有資料用。 中文字型的字圖集是 Direct3D 8 吃不下的 4 位元格式, 每一張都得在執行時整張展開 —— 光字型就吃掉 13.5 MB, 英文只要 0.37 MB。那顆池子先被吃掉五分之一,再也塞不下一座大球場。
把那塊記憶體改成 128 MB 就好了。 —— 道理是這樣,但這一步在照原版光碟安裝的遊戲上做不到: 那塊記憶體的位置藏在防拷保護的加密區裡,工具搆不到。 為什麼、以及你還能做什麼,寫在下面「為什麼調記憶體池在你的遊戲上做不到」那一節 (跟操作步驟一樣,勾完下面那三項才看得到)。
⚠️ 先講清楚三件事
一、本站不提供遊戲本體。 你必須自己擁有一份合法的 MVP Baseball 2005。本站沒有、也不會提供遊戲。
二、本站不教任何規避防盜拷的做法。 這是法律與版權說明第 3 節的紅線。 這一頁做的是「把你自己那份程式改成配合你自己的機器」, 跟光碟檢查、授權驗證完全是兩件事。
三、動任何檔案之前先備份。本頁每一步都會告訴你備份什麼。
你有權這樣做嗎:台灣、美國、日本怎麼寫的
「買了遊戲,可以自己改它嗎?」這個問題三個法域都有明文,方向一樣(合法持有的人可以為了在自己的機器上使用而動它), 但條件各不相同,下面逐條列原文:
| 法域 | 條文 | 內容 |
|---|---|---|
| 🇹🇼 台灣 | 著作權法 §59 | 「合法電腦程式著作重製物之所有人得因配合其所使用機器之需要,修改其程式, 或因備用存檔之需要重製其程式。但限於該所有人自行使用。」 |
| 🇺🇸 美國 | 17 U.S.C. §117(a) | the owner of a copy of a computer program may make an adaptation created as an essential step in the utilization of the program in conjunction with a machine, and that it is used in no other manner. |
| 🇯🇵 日本 | 著作権法 §47条の3
翻案:§47条の6 第1項第6号 |
プログラムの著作物の複製物の所有者が、自ら当該著作物を
電子計算機において実行するために必要と認められる限度において、
複製することができる。
(2026-09-05 訂正:本站原本引成「複製又は翻案」, 現行條文只寫「複製」。翻案的依據是 §47条の6 第1項第6号 —— 它把 §47条の3 第1項對應到翻案,實質效果一樣,但不在 §47条の3 本身。) ⚠️ 日本這一條救不了另一件事。 §47条の3 是「著作権の制限」那一批規定,而日本著作権法 §50 明文說這一批 不得解釋為影響著作者人格権,所以它涵蓋不到 §20 的同一性保持権。 日本讀者請先看法律頁的給日本讀者的說明。 |
三條放在一起看:方向一樣,條件不一樣
合法持有正版的人,可以為了在自己的機器上使用而修改程式。 「把 2005 年寫死的 64 MB 記憶體池,改成 2026 年的機器該有的 128 MB」 ——本站認為這落在台灣 §59 講的「配合其所使用機器之需要」與美國 §117(a) 的 essential step 範圍內; 這是本站的解讀,不是法院說的,也不是三個法域共同認證的。
三條都限制用途,但寫法不同。 台灣寫「但限於該所有人自行使用」;美國寫「used in no other manner」,而且 §117(b) 對複本與改作的移轉另有限制; 日本 §47条の3 寫的是「自ら…実行するために必要と認められる限度」內的複製,翻案要再經 §47条の6 對應,另外還有 §20 那一層(見下)。
美國 §117(b) 講得更細:依本條做出來的複本, 只能連同整個程式的全部權利一起轉讓時才可以移轉。
⚠️ 日本要另外看。 日本那一條之外還有 §20 的同一性保持権, 而 §47条の3 這類權利限制規定救不了它 —— 所以上面那句「可以為了配合自己的機器修改程式」, 在日本不能照著讀。細節與那件判決寫在 給日本讀者的說明。
⚠️ 這件事有兩種做法,法律上不一樣 —— 本頁只教其中一種
| 做法 | 三個法域怎麼看 | |
|---|---|---|
| 路線 A | 用腳本改你自己那顆執行檔 | ✅ 本站認為落在 §59 / §117(a) 的範圍內(本站解讀,不是法院結論)
🇯🇵 日本另有同一性保持権的問題, §47条の3 這類權利限制規定救不了,見給日本讀者的說明 |
| 路線 B 本頁沒有 |
下載別人改好的現成包
本站 2026-08-30 拿掉了,理由寫在下面(勾完下面那三項才看得到); 你在別處還是會看到這種包 |
⚠️ 上面那三條不涵蓋「拿別人改好的複本」。 那是另一個問題,由你自己判斷 |
本頁只有 A。改的是你自己的檔,出事隨時可以還原。 B 那一欄留在表裡,是因為你在別的地方還是會遇到現成包, 而那時候適用的法條跟這裡不一樣 —— 這張表要講的就是那個差別。
往下之前,請確認
📋 勾完這三項,下面才會出現「⚡ 只想趕快做完?照這五步」
跟完整的操作步驟。現在看不到步驟不是頁面壞了。
只想知道為什麼會跳出、原理是什麼的話,不用勾 ——
上面那張綠色的「一句話的答案」不設條件,隨時看得到。
頁尾的📌 重點整理跟操作步驟一樣在勾完之後才出現。
三項都勾選才能繼續
📐 這一頁的排版跟站上其他課不一樣,說明一下: 本站的慣例是「⚡ 速解」放在最上面,給不想讀完的人先看。 這一頁刻意沒有那樣做 —— 速解裡是可執行的指令, 而上面那三個框是法律同意,指令放在同意之後才對。 反過來說,📌 重點整理是觀念不是指令,本來不必設條件, 但它跟操作步驟放在同一塊,所以一樣要勾完才出現。 (這條例外 2026-09-03 定案,並且寫進了上線前的檢查器: 帶同意閘的頁,速解必須在閘之後, 下一個加同意閘的頁會被自動守著,不必靠人記得這一頁是特例。)
🛟 動手之前:先完整備份整個遊戲資料夾
把整個遊戲資料夾複製一份到別的地方, 包括裡面存放紀錄的資料夾。不要挑檔案,整包複製最省事也最保險。
「紀錄」是指這些(它們跟遊戲檔混在同一個資料夾裡):
Support\MVP Baseball 2005\—— 遊戲自己建的, 裡面是設定(MVPOptions_Options.sav)與手把設定 (controller.cfg)。剛安裝好時沒有這個資料夾,玩過才出現。- 王朝、老闆模式、名單與玩家檔案的存檔(
*_Franchise.sav、*_Owner Mode.sav、*_Rosters.sav、*_Profile.sav)—— 沒有固定的資料夾名,你或你裝的模組包叫它什麼它就叫什麼。找不到就用這一行找:
dir /s /b "〔你的遊戲資料夾〕\*.sav"
find "〔你的遊戲資料夾〕" -name "*.sav"
上面第一行 Windows、第二行 Mac。 本站每一支工具都會自己備份它要動的那一個檔, 但那只保得住那一個檔 —— 整包備份保的是「你玩到現在的一切」。 完整做法看備份與還原 SOP。
⚡ 只想趕快做完?照這五步(路線 A)
- 用檔案總管(Mac 用 Finder)把你的
mvp2005.exe複製一份放旁邊, 改名成mvp2005.exe.我的備份。這一步不能跳。 - 下載 mvp_modernize.py,
從「下載」資料夾拖到桌面,再切到桌面。
cd %USERPROFILE%\Desktopcd ~/Desktop - 先唯讀看一眼:下面這行最後空一格就停住,把遊戲的
mvp2005.exe拖進視窗,再按 Enter。 看到「記憶體池 64 MB」就代表可以改;看到「找不到」 代表你手上是光碟原版的執行檔,這一項做不到(為什麼)。python mvp_modernize.pypython3 mvp_modernize.py - 預覽,這一行還是不會動到檔案(會列出 6 個位元組)。
python mvp_modernize.py "<剛才那個路徑>" --pool 128python3 mvp_modernize.py "<剛才那個路徑>" --pool 128 - 確定了才真的改:同一行最後加上
--apply。出事就改跑--restore。python mvp_modernize.py "<路徑>" --pool 128 --applypython3 mvp_modernize.py "<路徑>" --pool 128 --apply
改完一定要用完整的中文語系加上你最大的那座球場,打一場完整的比賽 —— 本站驗得到「檔案是對的」,驗不到「遊戲讀得動」。 想懂為什麼會跳出,往下讀;只想複習,跳到📌 重點整理。
路線 A:改你自己那顆(本站建議)
指令都給兩行:上面 Windows、下面 Mac。只跑你自己那一行。 不會開終端機的話,先看新手基本功的「操作一:打開命令提示字元」。
用檔案總管(Mac 用 Finder)把你的 mvp2005.exe 複製一份,
改名成 mvp2005.exe.我的備份 放在旁邊。
腳本自己也會備份,但你自己那一份是最後一道保險。
mvp_modernize.py(零相依,不用安裝任何東西)
cd %USERPROFILE%\Desktop
cd ~/Desktop
瀏覽器多半直接放進「下載」資料夾。打開檔案總管(Finder)左邊點「下載」,
把那個 .py 拖到桌面。
沒做這步後面會出現 can't open file。
python mvp_modernize.py
python3 mvp_modernize.py
a上面那行最後空一格就停住。
b把遊戲的 mvp2005.exe 檔案本身拖進終端機視窗。
c按 Enter。
看到「記憶體池 64 MB」就代表可以改。
看到「找不到」代表你手上是光碟原版的執行檔,程式碼是加密的,這一項做不到。
python mvp_modernize.py "<剛才那個路徑>" --pool 128
python3 mvp_modernize.py "<剛才那個路徑>" --pool 128
它會先講總共會改幾個位元組,再把位置列出來(畫面上最多列前 16 個,總數以前面那一句為準)。本站在測試機那顆 5,443,584 位元組的 mvp2005.exe 上實測是 6 個位元組,6 個位置全部列得出來。
跟「改的是一個位元組」這個說法不衝突。
記憶體池是兩處,每一處雖然佔四個位元組,
但 64 MB(0x04000000)跟 128 MB(0x08000000)
只差最高位那一個 —— 兩處各差 1 個,加上跟著重算的檔頭校驗值 4 個,合起來就是 6。
「一個位元組」講的是那一處的差別,這裡列的是整個檔案被動到的總數。
會先備份,寫完再讀回來確認「改動的位元組剛好是預期那幾個,其他一個都沒動」。
python mvp_modernize.py "<路徑>" --pool 128 --apply
python3 mvp_modernize.py "<路徑>" --pool 128 --apply
這一步不能跳。本站驗得到「檔案是對的」,驗不到「遊戲讀得動」。
✅ 成功了會看到
- 再跑一次第 3 步,「記憶體池」顯示 128 MB
- 中文語系 + 大球場進得去比賽,而且中文一個字都沒少(完全沒動字型)
❌ 出錯了怎麼辦
| 看到什麼 | 怎麼做 |
|---|---|
| 「找不到記憶體池的樣態」 | 你這顆是光碟原版,程式碼加密,做不到 |
python 不是內部或外部命令 | Windows 改打 py -3 mvp_modernize.py … |
can't open file | 腳本還在「下載」資料夾,沒拖到桌面 |
| 改完遊戲開不起來 | 立刻 --restore,或把第 1 步的備份複製回去 |
| 128 MB 還是會當 | 試 --pool 256。還是當就回報 —— 那代表不只這一個原因 |
還原
python mvp_modernize.py "<路徑>" --restore
python3 mvp_modernize.py "<路徑>" --restore
為什麼「路線 B:現成包」被拿掉了
這一頁以前有第二條路:下載一個現成的包,解壓縮覆蓋上去就好。 那個包2026-08-30 起拿掉了,而拿掉的過程本身值得寫下來, 因為它是本站「核實 > 推理」踩過最深的一次。
⚠️ 那顆現成的 mvp2005.exe 不是「改了 83 個位元組」
包裡的說明寫著那顆執行檔「總共改了 83 個位元組,遊戲內容一個位元組都沒改」。 2026-08-29 拿這台機器上的原版逐一比對之後發現:那個「83」是相對於 一顆讀者手上沒有的中間產物量的。相對於你自己安裝的那一顆, 它還少了一整層防拷保護。
| 檔案大小 | 程式進入點 | 防拷保護區段 | |
|---|---|---|---|
| 原版 英文版 | 6,972,001 | stxt371 | ✅ 還在 |
| 原版 官方中文版 | 7,525,175 | stxt371 | ✅ 還在 |
| 官方中文版+三更新 | 7,533,368 | stxt371 | ✅ 還在 |
| 那顆現成包的 exe | 5,443,584 | .text | ❌ 已移除 |
比英文版原版小 1.5 MB、比官方中文版小 2.1 MB,程式進入點從保護層(stxt371)
搬到真正的程式碼(.text)。
本站的自我約束是「不散布遊戲本體」 ——
一顆拿掉保護層的執行檔不在那條線的裡面,所以連同整個下載區一起拿掉了。
中文化改成教你用你自己那份官方中文版自己做。
為什麼「調記憶體池」在你的遊戲上做不到
這是本頁最需要先講清楚的一件事,因為它會影響上面路線 A 你做得到哪一步。
調記憶體池那一步,在照原版光碟安裝的遊戲上做不到 ——
本站實測四份安裝(英文版、官方中文版、官方中文版+三更新,還有一份社群 PK 版),
這四份的 mvp2005.exe 都是仍帶著保護層的原版,
四份全部印「記憶體池:找不到」。
(這跟上一節那顆已經沒有保護層的 5,443,584 位元組執行檔
不是同一個東西 —— 那一顆找得到記憶體池。)
機制:保護層是怎麼擋住工具的
一顆帶防拷保護的執行檔,結構是這樣的:程式一開機不是先跑遊戲,
是先跑保護層(進入點落在 stxt371)。保護層做完光碟檢查,
把真正的遊戲碼(.text)在記憶體裡解開,再跳進去。
關鍵在:.text 在磁碟上是密文。
那塊 64 MB 記憶體池的常數就藏在 .text 裡 ——
工具去掃磁碟上的位元組,掃到的是加密後的亂數,所以印「找不到」。
這不是工具壞了,是它本來就穿不透加密區。
📎 這層保護叫什麼?版本有分歧,本站兩個都不寫死
這層保護是 Macrovision SafeDisc,但確切版本本站不下定論, 因為兩邊證據方向相反、都不是官方:
- 光碟保存專案 Redump 把這片光碟記成 SafeDisc 4.00.003(v4)。
- 但逆向分析普遍把
stxt371/stxt774/.data1這幾個區段名當成 SafeDisc 2.x 的代表特徵,而 4.x 通常不再用這組固定名稱。 本站手上四份安裝的 exe 全部帶著這三個區段(量得到,自己驗)。
光碟壓製的版本(Redump 量的)跟執行檔加殼的版本可能不是同一個, 而本站沒讀到那份逆向分析的原文,兩邊都是間接證據。所以本站只說 「一層 SafeDisc 保護」,版本號留白 —— 這一格沒有 A 級官方來源(EA 與 Macrovision 依商業慣例不公布個別遊戲的子版本號), 有 A 級來源之前不寫死。
🔬 那這東西在研究上是怎麼被看懂的?
保存與資安圈對這類保護層有一套研究上的通稱,叫 unwrap(脫殼)。 本站不描述它是怎麼做的。
本站不援引任何「還原工程」例外。台灣著作權法 §80-2 第 3 項第 8 款確實列了「為進行還原工程者」, 但那是一條有前提的例外(主管機關訂有《著作權法第八十條之二第三項各款內容認定要點》,第十二點寫的是:經合法授權使用之人、為了讓另行創作的程式跟其他程式相容、限必要範圍且不侵害著作權), 本站沒有做那件事,也不替讀者判斷它成不成立——法律頁第 4 節 2026-09-05 已經把它從依據裡拿掉,這一頁跟著拿掉。
所以本站到此為止,不提供任何「怎麼拆」的步驟。 理由是同一條線:規避防盜拷措施本身、以及把規避的方法或成品提供給大家,都是 §80-2 管的事(罰則見 §96-1); 那也是本站在法律說明第 3 節自己畫的紅線。本站教的一直是「改你自己那一份」,不是「拆掉誰的鎖」。
那路線 A 到底還能做什麼?
保護層擋住的只有「藏在加密區裡」的那些。加密區外面的東西照樣改得動:
- 大位址旗標(4GB)—— PE 檔頭裡,在加密區外面,改得到。
本站手上那份社群
MVP_PK的大位址就是這樣被打開的。 - 解析度表 —— 用內容找到位置(不是寫死),也在加密區外面,改得到。
- 不改 exe 也能過日子:知道哪些球場在 64 MB 裡塞得下、 怎麼把大球場的貼圖瘦身,就能避開跳出。這條路一顆位元組都不用碰執行檔。
⚠️ 也就是說:路線 A 的 --resolution 與大位址你做得到,
--pool 在有保護層的安裝上做不到 —— 上面路線 A 的第 3 步就是在分辨這件事,
那一步印「找不到」的話,就是這一節講的情況。
我們走錯的路
這一節是本頁最有用的部分。每一條錯路當時都很合理, 而好幾條是被本站自己的舊紀錄或本站自己寫的檢查工具帶偏的。
| 我們以為 | 實際 |
|---|---|
| 球場檔太大(社群傳了二十年) | 把球場清乾淨降到 8.51 MB 還是當;同一顆檔跑英文版完全正常。 同一個檔案一邊當一邊不當,問題就不在那個檔案裡 |
| 是語系檔壞了 | 測「英文字型 + 中文語系檔」→ 可以玩。語系檔清白 |
| 那就把字型砍小 | 方向「有效」但那是繞路,而且砍字型正是缺字的唯一來源。 轉折點是一句提問:「為什麼一定要瘦身字型,而不能擴充該擴充的設定?」 |
| 中文字型先天只有 1,529 字,一定缺字 | 錯。語系檔用到 1,536 個字元,字型提供 1,529 個,
缺的 8 個是 © ® ™、不斷行空白,
加上四個只出現一兩次的壞字。中文字型本來是完整的 |
| 六個中文字型檔完全一樣 | 錯。只有三個一樣。看到「大小都是 287,072」就下結論, 那正是本站自己列為紅燈的「數量剛好對得上」 |
| 執行檔被加密,反組譯這條路是死的 | 那對光碟原版成立,對社群那顆不成立(熵 6.575,沒有保護區段)。 一句沒標明適用範圍的舊紀錄,差點讓整條路被放棄 |
| 找到了!「球場記憶體配額」 | 反組譯出來它只是把「超出多少 K」印成一句話畫到畫面上, 而且整支函式被開發旗標擋著。字串長得像凶手,拆開來是記事本 |
| 本站的診斷腳本說「不是記憶體」 | 那是腳本自己錯了。297 行 log 全是模擬層的雜訊, 遊戲的訊息一行都沒收到。判斷只看「行數 > 5」, 把「什麼都沒抓到」判成了「抓到了但沒問題」 |
| 當機位址就是鐵證 | 那支填值常式有 59 個呼叫點,證明不了是哪一條路 |
| 把三個區段改回唯讀是安全的 | Wine 過了,真的 Windows 連開都開不起來。
而且我們推錯了兩次原因,第三次才對 ——
對的那次不是想出來的,是做了四個只差一個位元組的檔案,讓檔案自己回答。
真因是那顆執行檔的 IAT 資料目錄是空的(RVA=0 size=0):
載入器靠這張表才知道要先把哪幾頁改成可寫來填匯入位址。
把那張表算回去(RVA=0x473000 size=1264)之後,
三個區段的「可寫」就都拿得掉了 |
如果這一節只能留一句
Wine 過不代表 Windows 過。 模擬層對記憶體保護的執行沒有真 Windows 嚴格,它會放行 Windows 會擋下來的東西。 只在模擬層上測,等於沒測。
已知的缺陷與邊界
- 15 個函式的本體在社群那顆執行檔裡就已經是空的(只剩 9 個位元組的開場白)。 這不是本站造成的,也補不回來 —— 被清掉的內容不存在於任何地方
- 幾塊 C++ 例外處理表的指標被清零,同上
- 本站量不到執行時的記憶體用量。 「128 MB 夠不夠」是實測出來的,不是算出來的。真正的門檻在 64 與 128 之間某處
- 13.5 MB 是算的不是量的:它等於中文那些 4 位元字圖集的總像素 × 4 位元組。 本站從字型檔量、另一條線從程式碼推,兩邊在小數點後兩位對上,但都不是執行期的實測
- 光碟原版的程式碼段是加密的,無法與社群那顆逐位元組比對。 所以「社群那顆的程式碼有沒有被動過手腳」這一格,本站是靠間接證據,不是量到的
完整的研究過程
這一頁是結論。想看怎麼一步一步查到的,在 中文版配大球場就跳出那一課, 以及本站怎麼量的。
📌 重點整理
- 一句話 中文版一裝上大球場就跳出的原因找到了,跟球場大小沒有關係:遊戲開機時跟系統要一整塊 64 MB 的記憶體池自己切給所有資料用,而中文字型是 Direct3D 8 吃不下的 4 位元格式、每張都得在執行時整張展開,光字型就吃掉 13.5 MB(英文只要 0.37 MB),池子先被吃掉五分之一就再也塞不下一座大球場。把那塊記憶體改成 128 MB 就好了 —— 但這一步在照原版光碟安裝的遊戲上做不到(那塊記憶體的位置藏在防拷保護的加密區裡),見「為什麼調記憶體池在你的遊戲上做不到」。
- 那個傳了二十年的結論是錯的 社群說「球場檔不要超過 10MB」。實際是把球場清乾淨降到 8.51 MB 還是當,而且同一顆檔跑英文版完全正常。同一個檔案一邊當一邊不當,問題就不在那個檔案裡。另一條被推翻的是「中文字型先天缺字」:語系檔用到 1,536 個字元、字型提供 1,529 個,缺的 8 個是
©®™、不斷行空白加四個只出現一兩次的壞字,中文字型本來就是完整的,而砍字型正是缺字的唯一來源。 - 4GB Patch 為什麼救不了這個 大位址旗標放大的是「程式最多能用到多少位址空間」,記憶體池是「遊戲實際跟系統要了多大一塊」。塞不下是因為櫃子小,不是房間小。兩件事都要做,但互不取代,這也是為什麼幾乎每個人都套過 4GB Patch 卻還是照當。
- 你可主張有權這樣做,但兩條路法律上不一樣 台灣著作權法 §59、美國 17 U.S.C. §117(a)、日本著作権法 §47条の3(翻案的依據是 §47条の6 第1項第6号)三個法域都有明文,方向一樣、條件各不相同:合法持有正版的人可以為了在自己的機器上使用而修改程式,但用途受限(台灣限自行使用;美國限 essential step 且 §117(b) 限制移轉;日本寫的是複製、翻案要另看 §47条の6)。所以路線 A(用腳本改你自己那顆執行檔)本站認為落在台美這兩條的範圍內(本站解讀,不是法院結論);路線 B(下載別人改好的現成包)那三條不涵蓋。日本要另外看:§47条の3 是權利限制規定,救不了 §20 的同一性保持権,日本讀者請先看給日本讀者的說明。本站建議走 A,結果完全一樣,而且出事隨時可以還原。前提是:本站不提供遊戲本體、不教任何規避防盜拷的做法、動任何檔案之前先備份。
- 實際改了什麼(2026-08-30 訂正) 本站原本照著那個包的說明寫「83 個位元組,遊戲內容一個位元組都沒改」。那個 83 是相對於一顆讀者手上沒有的中間產物量的 —— 相對於你自己安裝的那一顆,它還少了一整層防拷保護。上面「為什麼路線 B 被拿掉」那一節有逐一比對的四份數字。這一條留著,是因為它正是本頁「我們走錯的路」要講的:把一個相對於錯的基準量出來的數字,當成事實寫了上去。
- 順手修好一個二十年沒人補的缺陷 社群那顆執行檔的 IAT 資料目錄是空的,Windows 載入器靠這張表知道要先把哪幾頁改成可寫才能填匯入位址,表是空的就等於只要
.rdata是唯讀就直接開不起來。二十年來每個工具都只能把它留成可寫來繞過,本站把那張表算出來補回去,三個區段的「可寫」就都拿得掉了(.text變成讀+執行,.rdata與.rsrc變成唯讀)。上面「我們走錯的路」那一節有這件事是怎麼查出來的。 - 走錯的路才是最有用的一節 好幾條是被本站自己的舊紀錄或自己寫的檢查工具帶偏的。本站的診斷腳本說「不是記憶體」,那是腳本自己錯了:297 行 log 全是模擬層的雜訊、遊戲的訊息一行都沒收到,而判斷只看「行數大於 5」,把「什麼都沒抓到」判成了「抓到了但沒問題」。看到「六個中文字型檔大小都是 287,072」就結論它們完全一樣,實際只有三個一樣,那正是本站自己列為紅燈的「數量剛好對得上」。如果這一節只能留一句:Wine 過不代表 Windows 過,三個區段改唯讀在 Wine 上過了、真的 Windows 連開都開不起來,而且原因推錯兩次,第三次對的那次不是想出來的,是做了四個只差一個位元組的檔案,讓檔案自己回答。
- 本站沒驗的 本站量不到執行時的記憶體用量,「128 MB 夠不夠」是實測出來的不是算出來的,真正的門檻在 64 與 128 之間某處。13.5 MB 是算的不是量的:它等於中文那些 4 位元字圖集的總像素乘上 4 位元組,本站從字型檔量、另一條線從程式碼推,兩邊在小數點後兩位對上,但都不是執行期的實測。光碟原版的程式碼段是加密的,無法與社群那顆逐位元組比對,所以「社群那顆的程式碼有沒有被動過手腳」本站是靠間接證據。另外有 15 個函式的本體在社群那顆執行檔裡就已經是空的,幾塊 C++ 例外處理表的指標被清零,這些不是本站造成的,也補不回來。最後一步只有你能做:用完整的中文語系加上你最大的那座球場打一場完整的比賽,本站驗得到「檔案是對的」,驗不到「遊戲讀得動」。