
Windows 11 點樣暗中幫舊遊戲續命:拆解相容性資料庫同 shim
由辨認程式到攔截 API,睇清 Windows 背後點樣執手尾
「秘密資料庫」其實唔算秘密
XDA 將佢叫做 secret database,講法幾吸引,不過多少有啲誇張。Windows 呢套 Application Compatibility Database 有公開技術文件,Microsoft 仲提供 Compatibility Administrator 畀人查閱同建立自訂修正。佢一直收埋喺系統背後工作,普通玩家甚少會掂到,所以感覺神秘;本質上,佢係 Windows 長年維持舊程式相容性嘅基建,舊遊戲只係其中一批較多人留意嘅受惠軟件。
資料庫記住嘅係「邊個要用邊種補丁」
系統資料庫採用 .sdb 索引二進位格式。Microsoft 文件顯示,Windows 可以按 exe 嘅檔名、大小、checksum、版本、日期,甚至同一資料夾有冇其他指定檔案去配對程式。命中記錄之後,條目會指向相容模式、個別 compatibility fix,或者 AppHelp 提示。即係話,佢唔係收藏完整舊遊戲,更唔會預先改寫遊戲檔案;佢記低嘅主要係辨認條件同應該套用嘅處理方法。
Shim 點樣呃過廿年前嘅程式
真正郁手嗰部分叫 Appfix,常見做法就係 shim。Windows 會喺程式呼叫指定 API 時插入 hook,先交畀一小段相容邏輯處理,再視乎情況呼叫原本系統功能。官方列出嘅修正包括回報舊版 Windows 版本號、改變可用磁碟空間數字、redirect Registry 或檔案操作,同調整舊程式要求嘅權限。遊戲眼中收到熟悉嘅答案,Windows 本身仍然照行新架構,亦唔使開一部完整嘅 Windows XP 虛擬機。
玩家可以睇,但唔係用記事本打開
C:\Windows\AppPatch 下面可以見到 sysmain.sdb,但佢係二進位資料庫,直接打開冇乜意思。想睇清楚內容,可以由 Microsoft 下載 Windows ADK,安裝 Application Compatibility Tools,再用 Compatibility Administrator 瀏覽 System Database,搜尋遊戲或 exe 同查看相關 fix。32-bit 同 64-bit 程式要配合相應版本嘅工具;至於 Registry 入面 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers,見到嘅主要係明確套喺本機程式上嘅相容設定,唔等同整個系統資料庫。
對舊遊戲疑難排解有咩用
最實際嘅價值係幫手縮窄問題範圍。遊戲開唔到時,可以先打開 exe 嘅檔案內容,睇吓 Compatibility 分頁,再查系統資料庫有冇對應條目、Windows 預期會套用咩 fix。如果現成修正已經命中,亂加另一層相容模式可能只會令情況複雜;完全搵唔到條目,就要再查舊 DirectX 元件、copy protection、第三方 patch、顯示卡 driver 或遊戲本身檔案。Compatibility Administrator 亦做到自訂 .sdb,再用 Sdbinst.exe 註冊,不過錯配 shim 可以令程式行為變得更怪,普通玩家冇必要一開始就行到呢步。
一個資料庫救唔晒 Windows 遊戲史
XDA 原文話得有啲盡,舊遊戲今日仲行到,功勞亦唔可以全數記喺 sysmain.sdb。Windows 本身嘅 Win32 相容性、遊戲更新、社群 patch、runtime、driver 同硬件行為都有影響;資料庫只會處理 Microsoft 已知、能夠可靠辨認,同適合用 shim 修補嘅問題。Microsoft 官方文件用嘅講法都係修正「部分」跨版本相容問題。所以下次老遊戲一撳就開,可以當呢套機制幫過手;一撳就死,就由資料庫條目開始查,唔好假設轉做 Windows XP 模式一定搞得掂。
參考來源
- XDA Developers — Windows has a secret database that makes your old games "just work," and it's sitting on your PC right now — original report
- Application Compatibility Database — Microsoft 官方解釋 .sdb 格式、程式配對屬性、AppHelp、Appfix 同 shim 運作方式。
- Download and install the Windows ADK — Microsoft 官方下載及工具資料,確認 Windows ADK 包括 Compatibility Administrator。
- Installing and Uninstalling Custom Compatibility Databases — Microsoft 官方交代系統及自訂資料庫位置、更新方式、Registry 關係同安裝流程。
- Compatibility Fixes for Windows — Microsoft 官方 compatibility fix 清單,用嚟核實版本回報、檔案、Registry、權限同其他 shim 例子。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







