MiSTer FPGA向けのPlayStationコアで、CD-ROMまわりを中心とした興味深い改善が進められています。
●MiSTer-devel公式 PlayStationコア GitHub
https://github.com/MiSTer-devel/PSX_MiSTer
今回の変更では、PlayStation実機から測定された「SPT(Sectors Per Track)」のデータを利用して、CD-ROM上におけるデータの物理的な位置をより正確に再現する仕組みが導入されています。
これまで使用されていた固定32セクターのモデルから、実際のPlayStationで測定されたトラックごとのセクター数を使用する方式へ変更。これにより、「physicalLBA」やCD-ROMコマンド「GetLocP」に関連する処理の精度が向上しています。
なぜCD-ROMの「物理位置」を再現する必要があるのか?
ゲーム機をエミュレーションするとき、CD-ROMから目的のデータを読み込めさえすれば問題ないようにも思えます。
しかし実際のPlayStationでは、CDドライブのピックアップが現在の場所から目的の場所へ移動するまでに時間が掛かるほか、CD-ROMコントローラーから返される情報やコマンドのタイミングなどもゲーム側から利用されています。
そのため、単純にディスクイメージからデータを高速に返してしまうだけでは、実機とは異なる挙動になってしまう場合があります。
MiSTerのPlayStationコア公式GitHubでも、CD部分について「正確なCDアクセスモデルによる正しいシーク時間」の実装などが課題として記載されています。つまり、PlayStationをより正確に再現していくうえで、CD-ROMドライブの挙動はかなり難しい部分のひとつというわけです。
『メタルギアソリッド』や『ダライアス外伝』などにも改善
今回紹介されている変更では、SPTテーブルの導入だけではなく、CD-ROMコマンドやタイミングまわりにも複数の修正が加えられています。影響を受けるタイトルとして挙げられているのは以下のような作品です。
- 『Max Power Racing』:音楽再生
- 『メタルギアソリッド』:コーデック音声
- 『パラッパラッパー』日本版:イントロ
- 『Virtual Pool 3』:サウンド
- 『Disruptor』米国/日本版:FMVロゴの音声
- 『Driver 2』:大幅なフレームレート低下
- 『ダライアス外伝』:イントロでのフリーズ
- 『DemoDemo PlayStation 創刊号 Vol.1』:アトラクトモードでのランダムなフリーズ
ほかにも、シーク中のPAUSEコマンド処理や、大きく離れた位置へ移動するときのシーク時間、セクターバッファの読み込みタイミングなどが見直されています。
『Vigilante 8: 2nd Offense』のように、これまで回避策が必要だったタイトルについても、CD-ROMコマンドをより正確に再現する方向で修正されています。
音源やSNACまわりも改善
変更はCD-ROMだけではありません。SPU(サウンド処理)にはリバーブ入力向けの軽量FIRフィルターが追加されています。
またSNAC関連では、メモリーカード転送処理に関する修正も行われており、一部環境で発生していた画面の乱れなどの改善につながっています。
「ゲームを動かす」から「実機の挙動を再現する」方向へ
MiSTer FPGAのPlayStationコアは、すでにCUE+BINやCHD、複数ディスクの自動交換、DualShockやGunCon、ネジコン、SNACなど幅広い機能に対応しています。
一方で公式GitHubのステータスを見ると、CPUやGPUだけではなくCD-ROM部分についてもまだ完全ではなく、現在も精度向上が続けられています。
今回の改善で面白いのは、特定のゲームだけを動かすための個別対応ではなく、PlayStation実機のCD-ROMドライブがどのように動いているのかをより正確に再現することで、その結果として複数のゲームの不具合がまとめて改善されているところです。
FPGAによる再現というとCPUやGPUに目が行きがちですが、CD-ROMドライブの物理的な動きやコマンドのタイミングまで実機へ近付けていくというのは、なかなかマニアックで興味深いアップデートではないでしょうか。








コア-1-485x328.jpg)






ダンジョンズ&ドラゴンズ ビジュアル大全 半世紀を超えるその歴史とアート









ゲームコンソール2.0