ガイド
shadPS4 のファームウェアモジュール(sys_modules)とは?LLE・HLE、ゲーム形式、アップデート・DLC の置き場所
ポイント
- shadPS4 の sys_modules フォルダーに入れるのは PS4 システムの個別モジュール(libSceNgs2.sprx や libSceFont.sprx などの .sprx ファイル)で、ファームウェア全体ではありません。README には対応モジュールが34個載っています。
- HLE はエミュがシステムライブラリを自前で再実装する方式、LLE は PS4 本来のモジュールをそのまま読み込む方式です。shadPS4 はほとんどを HLE で動かし、sys_modules にあるモジュールだけ LLE に切り替えます。
- v0.8.0(2025年4月)以降の shadPS4 は PKG をインストールできず、展開済みのゲームフォルダーだけを読みます。フォルダーには eboot.bin と sce_sys/param.sfo が必要です。
- アップデートはゲームフォルダーの隣に「フォルダー名-UPDATE」か「-patch」として置き、DLC は user/addcont の下にゲームと同じ名前のサブフォルダーで置きます。
- PS5 エミュは方式がそれぞれ違い、KytyPS5 は外部のシステムモジュールを「不要で、対応予定もない」としています。
目次
shadPS4 が言う「ファームウェアモジュール」とは、sys_modules フォルダーに入れる PS4 システムの個別モジュールファイル(.sprx)のことで、libSceNgs2.sprx(音声)や libSceFont.sprx(フォント)などがあります。PS4 のファームウェア全体ではありません。 shadPS4 はシステム機能のほとんどを自前で再実装(HLE)していて、sys_modules にあるモジュールは直接読み込んで(LLE)、再実装がまだ不十分な部分を補います。ゲーム本体は eboot.bin と sce_sys/param.sfo が入った展開済みのフォルダーで、v0.8.0 以降は 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 のゲームは描画、音声、コントローラー、動画のデコード、文字の描画などで、システムのライブラリを絶えず呼び出します。エミュはそのライブラリもゲームに「提供」しなければなりません。方法は2つあり、shadPS4 の公式 wiki は次のように定義しています。
| HLE(ハイレベルエミュレーション) | LLE(ローレベルエミュレーション) | |
|---|---|---|
| 定義 | 元のモジュールをエミュ側で再実装して提供 | 本体のファームウェアファイルを直接使う |
| 長所 | 本体のファイルが不要。一般に速く、PC 向けに最適化できる | 実機と同じ動作。誰も再実装していない機能も動く |
| 短所 | 未実装の関数はエラーになるか飛ばされる | モジュールファイルが必要。この方式で読めるのは一部のモジュールだけ |
shadPS4 は HLE が基本です。カーネル(libkernel)、GPU ドライバー(GnmDriver)、映像出力(VideoOut)、コントローラー(Pad)など約80のシステムライブラリはエミュの開発チームが書いています。HLE がまだ不完全な一部のライブラリ(主に音声デコード、動画再生、フォント、JSON・XML の解析など)については、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、効果音や BGM は Ngs2 と Audiodec 系、文字表示は Font・FreeType 系です。そのため、モジュールが足りないときの症状も、音が出ない、ムービーが真っ黒、文字が表示されない、といった形で出やすくなります。
PS4 のファームウェア全体が要らない理由
PS4 のシステムアップデートは PS4UPDAT.PUP という1つのファイルで、OS 全体が入っています。shadPS4 は「ほとんどを再実装し、足りない部分を個別モジュールで補う」方式なので、システム全体は読み込まず、使うのは上の数十個のモジュールとフォントだけです。
逆の方式をとる PS4 エミュもあります。Obliteration は本物の PS4 システムソフトを動かすことを目指していて、Emulation General Wiki はそのため PS4 のファームウェアファイルが必要だと説明しています。ただし2026-11-01 時点では、まだどのゲームも動きません。
ゲームの形式:PKG・展開済みフォルダー・eboot.bin
| 名前 | 中身 | shadPS4 で使える? |
|---|---|---|
| PKG | PS4 のインストールパッケージ形式。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桁です。たとえば『Bloodborne』の欧州版 Game of the Year Edition は CUSA03173 です。PS4 では接頭辞で地域を区別しないため、同じゲームでも地域ごとに別の番号があります。本体内蔵のシステムアプリは NPXS で始まります。shadPS4 のゲームフォルダーはふつうこの番号で名前をつけ、アップデートフォルダー、シェーダーキャッシュ、タイトル別のモジュールフォルダーもこの番号で対応づけます。
アップデートと DLC の置き場所
アップデートはゲームフォルダーと同じ階層に、「ゲームフォルダー名」+ -UPDATE(-patch も可)という名前で置きます。shadPS4 は起動時に本体の上に重ねて読み込むので、ファイルを統合する必要はありません。
games/
├── CUSA00900/ ← ゲーム本体(eboot.bin、sce_sys/…)
├── CUSA00900-UPDATE/ ← アップデート
└── CUSA00900-mods/ ← 任意:Mod 用
同じルールで Mod 用の -mods フォルダーにも対応していて、アップデートを一時的に無視する設定もあります。動作報告にはテストしたゲームのバージョン(『Bloodborne』の 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月の DSOGaming の記事によると、SharpEmu は当時すでに実際のゲームの eboot.bin を読み込み、システムモジュール(PRX と sys_module)の読み込みにも対応していました。現状は PS5 エミュの現状 を見てください。
関連ガイド
- 導入と初期設定:shadPS4 の Windows での導入方法
- PC のスペックは足りる?:PS4 エミュの必要スペック
- どのエミュを使う?:PS4 エミュ おすすめ
- PS4 がこの方式でエミュできる理由:PS4 はエミュできて PS5 が難しい理由
- 法律面:PS エミュは違法?
よくある質問
shadPS4 の sys_modules とは何ですか?
shadPS4 のユーザーフォルダー内にあるフォルダー(user/sys_modules)で、PS4 システムの個別モジュール(.sprx)を入れる場所です。音声担当の libSceNgs2.sprx やフォント担当の libSceFont.sprx などがあり、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 を並べると、shadPS4 が自動で重ねて読み込みます。DLC は追加コンテンツ用フォルダー(初期設定は user/addcont)の中に、ゲームと同じ名前のサブフォルダーで置きます。場所はランチャーの設定で変更できます。