東方紅魔郷 ~ the Embodiment of Scarlet Devil を PS3 (CFW) で動かすための移植プロジェクト。
GensokyoClub/th06 の portable ブランチ (デコンパイル 97.65%) をベースに、PS3 固有のグラフィックス・オーディオ・入力・ファイルシステム層を実装している。
このリポジトリに原作のデータは一切含まれていません。ゲームを動かすには正規品の紅魔郷 CD が必要です。
- PlayStation 3 本体 (CFW / HEN)
- 東方紅魔郷 ~ the Embodiment of Scarlet Devil. 正規 CD
- Releases から
th06_eosd_for_ps3_cd.gnpdrm.pkgをダウンロード - PKG を PS3 にコピーしてインストール (USB または FTP)
- 東方紅魔郷の正規 CD を PS3 の BD ドライブに挿入
- XMB からゲームを起動すると、初回のみ CD からゲームデータ (6 DAT + 17 BGM WAV) を HDD に取り込む
- プレイ中は CD を入れたままにすること。CD を抜くとゲームが一時停止し、再挿入して認証が通ると再開する
Warning
終了後は必ず PS3 本体をシャットダウンしてください。 本作のプレイ終了後、RSX (GPU) の状態に影響が残ることが確認されています。終了後にそのまま別のアプリやゲームを起動すると正常に動作しない場合があります。別のアプリやゲームを起動する場合は、必ず一度 PS3 本体の電源を切ってから起動してください。
- PSL1GHT toolchain (
/usr/local/ps3dev) - ps3 portlibs: libpng, libjpeg, zlib, freetype
# ビルド
make
# CD認証付きPKG生成 (推奨: 初回起動時にCDからデータを取り込む)
make pkgcd| ターゲット | 説明 |
|---|---|
make pkg |
エンジンのみの最小 PKG。ゲームデータは別途 USRDIR に配置が必要 |
make pkgcd |
CD 認証付き PKG。初回起動時に /dev_bdvd の正規 CD から DAT/WAV を自動取り込み |
make pkgpatch |
pkgcd の軽量アップデート用。ゲームデータ・セーブには触れずバイナリのみ更新 |
| 変数 | デフォルト | 説明 |
|---|---|---|
TH06_RSX |
1 | RSX (GPU) バックエンド有効化 |
TH06_RSX_FORCE |
0 | RSX バックエンドを強制使用 |
TH06_CD_AUTH |
0 | CD 物理認証を有効化 |
TH06_DIAG |
0 | 診断ログ出力 |
TH06_EYE |
0 | リモート画面転送 (開発用) |
src/ GensokyoClub/th06 portable エンジン (最小パッチ、PATCHES.md に全記録)
ps3/ PS3 移植層
RsxGfx.cpp RSX ハードウェアレンダラ (GfxInterface 実装)
video.cpp RSX フリップチェーン・XMB ハンドリング
audio_out.cpp cellAudio 出力 (44.1kHz→48kHz リサンプル)
pad.cpp ioPad → SDL キーボード入力注入
cdauth.cpp CD 物理認証 + ランタイムイジェクト検出
overlay.cpp ヘルプ / Special Thanks 表示
savedata.cpp PS3 SaveData ブリッジ
self_update.cpp OTA アップデート受信
eye.cpp リモートデバッグ (breadcrumb / 画面転送)
sweep.cpp スプライト掃引テストハーネス
shaders/ RSX フラグメント/バーテックスシェーダ (Cg)
shim/ SDL2 API シム (PSL1GHT 上で th06 エンジンを動かすための薄い互換層)
img_decode.cpp libpng/libjpeg による IMG_Load_RW 実装
assets/
soundfont/ TimGM6mb.sf2 (GPL-2, MIDI 再生用)
icon/ XMB アイコン
エンジン (src/) への改変は最小限に留めており、全件 PATCHES.md に記録しています。主な変更:
ZunEndian.hpp: C++17 互換の constexpr 初期化FileSystem.cpp: PSL1GHT 向け<filesystem>ガード + PS3 ベースディレクトリ解決GameWindow.cpp: GL バックエンド除外、RSX バックエンド登録ReplayData.hpp: 全構造体の BE (ビッグエンディアン) 対応main.cpp: PS3 ブートシーケンス + XMB / CD ランタイム統合
CREDITS.md を参照。
GPLv3 — 上流 GensokyoClub/th06 に準拠。
同梱の TimGM6mb.sf2 サウンドフォントは GPL-2 でライセンスされています (assets/soundfont/GPL-2.txt)。