LoveGame愛遊戲
繁體中文

技術參考

shadPS4 的韌體模組(sys_modules)是什麼?LLE 和 HLE、遊戲格式、更新補丁和 DLC 放哪

發布 更新 資訊核對到 2026-11-019 分鐘讀完

要點

  • shadPS4 的 sys_modules 資料夾放的是 PS4 系統裡的個別模組(.sprx 檔案,比如 libSceNgs2.sprx、libSceFont.sprx),不是整個韌體;README 列了 34 個支援的模組。
  • HLE 是模擬器自己重寫系統庫,LLE 是直接載入 PS4 原本的模組。shadPS4 大部分系統庫用 HLE,放進 sys_modules 的模組會改走 LLE。
  • v0.8.0(2025-04)起 shadPS4 不再安裝 PKG,只讀解包後的遊戲資料夾,資料夾裡必須有 eboot.bin 和 sce_sys/param.sfo。
  • 更新補丁放在遊戲資料夾旁邊,命名為「遊戲資料夾名-UPDATE」或「-patch」;DLC 放在 user/addcont 下和遊戲同名的子資料夾裡。
  • PS5 模擬器各有做法:KytyPS5 寫明不需要、也不打算支援外部系統模組。
目錄
  1. shadPS4 用到的幾樣東西
  2. HLE 和 LLE:模擬器怎麼處理 PS4 的系統庫
  3. sys_modules 支援哪些模組
  4. 為什麼不需要整個 PS4 韌體
  5. 遊戲格式:PKG、解包後的資料夾、eboot.bin
  6. 更新補丁和 DLC 放哪
  7. 獎盃
  8. PS5 模擬器需要這些嗎
  9. 相關教學

shadPS4 說的「韌體模組」,是放在 sys_modules 資料夾裡的 PS4 系統模組檔案(.sprx),比如 libSceNgs2.sprx(音訊)、libSceFont.sprx(字型),不是整個 PS4 韌體。 shadPS4 大部分系統功能是自己重寫的(HLE),放進 sys_modules 的模組會被直接載入(LLE),用來補上重寫得還不完整的部分。遊戲本身則是一個解包後的資料夾,裡面有 eboot.bin 和 sce_sys/param.sfo;從 v0.8.0 起 shadPS4 不再安裝 PKG。更新補丁、DLC 各有固定的放法,下面逐一說明。

以下按 shadPS4 v0.21.0(2026-10-30)核對。

shadPS4 用到的幾樣東西

東西是什麼放在哪(預設)必需嗎
遊戲資料夾解包後的 PS4 遊戲,含 eboot.bin、sce_sys/param.sfo任意位置,在啟動器裡新增為遊戲資料夾必需
系統模組(.sprx)PS4 系統裡的個別庫檔案user/sys_modules/README 說遊戲正常執行需要;缺了部分遊戲會出問題
字型PS4 系統字型user/fonts/ 下的 font、font2部分遊戲需要
更新補丁遊戲的版本更新遊戲資料夾旁邊的 <資料夾名>-UPDATE看遊戲
DLC追加內容user/addcont/<遊戲編號>/看遊戲
著色器快取模擬器自己生成user/cache/<遊戲編號>自動生成

使用者目錄(user)在哪:如果 shadPS4 程式旁邊有 user 資料夾就用它(便攜模式);否則 Windows 是 %APPDATA%\shadPS4,macOS 是 ~/Library/Application Support/shadPS4,Linux 是 ~/.local/share/shadPS4。配置檔案從 v0.16.0 起是 config.json(以前叫 config.toml,舊配置啟動時會提示遷移)。

HLE 和 LLE:模擬器怎麼處理 PS4 的系統庫

PS4 遊戲執行時會不停呼叫系統提供的庫:畫圖、放音訊、讀手把、解碼影片、渲染字型……模擬器必須把這些庫也「提供」給遊戲。辦法有兩種,shadPS4 官方 wiki 是這麼定義的:

HLE(高層模擬)LLE(低層模擬)
定義模擬器提供對原模組的重新實現直接使用主機的韌體檔案
好處不需要主機檔案;通常更快;可以針對電腦最佳化行為和原機一致,沒寫完的功能也能用
壞處沒實現完的函式會出錯或被跳過需要對應的模組檔案;只有部分模組能這樣載入

shadPS4 的做法是以 HLE 為主:核心(libkernel)、顯示卡驅動(GnmDriver)、畫面輸出(VideoOut)、手把(Pad)等約 80 個系統庫都是模擬器自己寫的。對一部分 HLE 還不完整的庫(主要是音訊解碼、影片播放、字型、JSON / XML 解析這類),shadPS4 允許用 LLE 載入真實模組。

載入邏輯很簡單:sys_modules 裡有這個模組,就載入它;沒有的話,有 HLE 版本就退回 HLE(日誌裡會寫「switching to HLE」),連 HLE 都沒有就空跑(日誌寫「No HLE available」),這時遊戲可能缺聲音、缺字幕、閃退或卡在某個畫面。

另外,放進 sys_modules/<遊戲編號>/ 子資料夾的模組只給那一款遊戲用,可以針對個別遊戲單獨處理。sys_modules 的位置也能在設定裡改。

sys_modules 支援哪些模組

shadPS4 README(2026-11-01)列出的 34 個模組,按名字大致歸類:

類別模組
音訊libSceAt9Enc、libSceAudiodec、libSceAudiodecCpu、libSceAudiodecCpuDdp、libSceAudiodecCpuDtsHdLbr、libSceAudiodecCpuHevag、libSceAudiodecCpuM4aac、libSceNgs2
影片播放libSceAvPlayer、libSceAvPlayerStreaming、libSceBeisobmf、libSceBemp2sys
字型libSceFont、libSceFontFt、libSceFreeTypeOl、libSceFreeTypeOptOl、libSceFreeTypeOt、libSceWkFontConfig
圖片libSceJpegDec、libSceJpegEnc、libScePngEnc
數據格式libSceJson、libSceJson2、libSceXml、libSceCesCs(字元編碼)
系統與其他libSceLibcInternal、libSceUlt、libSceRtc、libSceRudp、libScePsmKitSystem、libSceSystemGesture、libSceDepth、libScePadTracker、libSceMoveTracker

檔名字尾都是 .sprx。從名字就能看出各自管什麼:開場影片歸 AvPlayer,音效和音樂歸 Ngs2 和 Audiodec 系列,文字顯示歸 Font、FreeType 系列。所以缺模組時的症狀也多半落在這些地方:沒聲音、影片黑屏、文字顯示不出來。

為什麼不需要整個 PS4 韌體

PS4 的系統更新包是一個叫 PS4UPDAT.PUP 的檔案,裡面是整個作業系統。shadPS4 走的是「重寫為主、個別模組補位」的路線,不載入完整的系統,所以只用得到上面那幾十個模組和字型。

另有一類 PS4 模擬器走相反的路:Obliteration 打算直接執行真正的 PS4 系統軟體,Emulation General Wiki 指出它因此需要 PS4 的韌體檔案——但截至 2026-11-01 它還跑不了任何遊戲。

遊戲格式:PKG、解包後的資料夾、eboot.bin

名稱是什麼shadPS4 能用嗎
PKGPS4 的安裝包格式,PS Store 下載的遊戲、更新、DLC 都是這種格式,內容是加密的v0.8.0(2025-04-23)起不能,官方移除了 PKG 支援
解包後的遊戲資料夾安裝後的遊戲檔案,未加密能,這是現在唯一的格式
eboot.bin遊戲的主程式(執行檔),在遊戲資料夾根目錄必須有
sce_sys/param.sfo遊戲的後設資料:標題、編號(Title ID)、版本號必須有,shadPS4 靠它識別遊戲
.sprx / .prx動態庫。遊戲自己帶的放在遊戲資料夾裡,系統的放在 sys_modules遊戲自帶的自動載入

shadPS4 早期能裝一部分 PKG,原始碼裡帶著處理這類包的程式碼;2025 年 3 月的一次提交把這部分整體刪除,v0.8.0 的更新說明寫的是「Removed fpkg support」。所以現在的 shadPS4 不再處理加密的安裝包,它讀的就是一個普通資料夾。

CUSA 編號:PS4 遊戲的 Title ID,格式是 4 個字母加 5 位數字,例如《血源》歐版年度版是 CUSA03173。PS4 不按字首區分地區,同一款遊戲不同地區的版本各有一個編號;系統自帶的程式用 NPXS 開頭。shadPS4 的遊戲資料夾通常就用這個編號命名,更新資料夾、著色器快取、單個遊戲的模組資料夾也都靠它對應。

更新補丁和 DLC 放哪

更新補丁:放在遊戲資料夾同一層,資料夾名是「遊戲資料夾名」加 -UPDATE(也認 -patch)。shadPS4 啟動遊戲時會把它當作覆蓋層疊在本體上,不用合併檔案:

games/
├── CUSA00900/           ← 遊戲本體(eboot.bin、sce_sys/…)
├── CUSA00900-UPDATE/    ← 更新補丁
└── CUSA00900-mods/      ← 可選:mod 檔案

同樣的規則還支援一個 -mods 資料夾放 mod。設定裡也有選項可以暫時忽略更新補丁。很多遊戲的相容報告會註明測試時的遊戲版本(比如《血源》1.09),版本不同表現可能不同。

DLC:放在「額外內容目錄」下,和遊戲同名的子資料夾裡。預設是 user/addcont/<遊戲編號>/,在啟動器(QtLauncher)的設定裡可以改位置。v0.21.0 的更新說明裡專門改進了 DLC(addcont)的載入。只有授權、沒有實際檔案的 DLC(比如某些解鎖類 DLC)放在 user/licenses。

多個遊戲資料夾:啟動器設定的「Paths」頁可以新增多個遊戲目錄,sys_modules、字型、DLC 的目錄也在這裡單獨設定。

獎盃

shadPS4 支援 PS4 的獎盃系統,顯示獎盃需要在 user/keys.json 裡填寫獎盃用的金鑰。沒有它不影響遊戲本身執行。

PS5 模擬器需要這些嗎

  • KytyPS5 的 README 寫明:外部的低層模擬模組「既不需要,也不打算支援」。
  • SharpEmu 的 README 寫明專案不包含任何韌體、遊戲數據或 PlayStation 的專有資源。
  • PS5 遊戲的主程式同樣叫 eboot.bin。據遊民星空 2026 年 7 月轉述 SharpEmu 當時的專案說明,它已經能載入真實遊戲的 eboot.bin,並支援載入系統模組(PRX 和 sys_module)。PS5 模擬器現狀見 PS5 模擬器出來了嗎。

相關教學

常見問題

shadPS4 的 sys_modules 是什麼?

是 shadPS4 使用者目錄裡的一個資料夾(user/sys_modules),用來放 PS4 系統裡的個別模組檔案(.sprx),比如負責音訊的 libSceNgs2.sprx、負責字型的 libSceFont.sprx。shadPS4 README 列了 34 個支援的模組。放進去的模組會被直接載入(LLE),沒放的就用模擬器自己重寫的版本(HLE)。

shadPS4 需要 PS4 韌體嗎?

不需要整個韌體(系統更新包)。shadPS4 只會載入 sys_modules 裡的個別模組和 user/fonts 裡的字型。README 說這些模組是讓遊戲正常執行所需要的;沒放時,有 HLE 替代的會自動改用 HLE,沒有替代的功能就會缺失,部分遊戲因此出問題。

LLE 和 HLE 有什麼區別?

shadPS4 wiki 的說法:LLE(低層模擬)是直接使用主機的韌體檔案;HLE(高層模擬)是模擬器提供對原模組的重新實現。HLE 不依賴主機檔案、通常更快,但沒寫完的功能會出錯;LLE 更接近原機,但需要對應的模組檔案。

shadPS4 能裝 PKG 嗎?

現在不能。shadPS4 早期版本能安裝一部分 PKG,v0.8.0(2025-04-23)起移除了 PKG 支援。現在它只讀取解包後的遊戲資料夾,資料夾裡要有 eboot.bin 和 sce_sys/param.sfo。

CUSA 是什麼?

CUSA 開頭的編號是 PS4 遊戲的 Title ID,格式是 4 個字母加 5 位數字,比如 CUSA00900。同一款遊戲不同地區的版本各有一個編號;PS4 的系統程式用 NPXS 開頭。shadPS4 的遊戲資料夾、更新資料夾、著色器快取都用這個編號來對應。

shadPS4 的遊戲更新和 DLC 放在哪?

更新補丁放在遊戲資料夾的同一層,資料夾名是遊戲資料夾名加 -UPDATE(或 -patch),比如 CUSA00900 和 CUSA00900-UPDATE 並排,模擬器會自動疊加。DLC 放在額外內容目錄(預設 user/addcont)下面和遊戲同名的子資料夾裡,路徑可以在啟動器的設定裡改。

資料來源

  1. shadPS4 官網
  2. shadPS4 官網部落格:v0.21.0 發布(DLC 載入)
  3. PS4 Developer Wiki:PKG files
  4. PS4 Developer Wiki:Title ID
  5. Wikipedia:ShadPS4
  6. KytyPS5 官網
  7. SharpEmu 官網
  8. 遊民星空:全新 PS5 模擬器 SharpEmu 能啟動《惡魔靈魂:重製版》(2026-07-13)
  9. Emulation General Wiki:PlayStation 4 emulators(Obliteration 需要 PS4 韌體)

相關