Eternal SPU Plugin (for PlayStation emulator)
PSEmuProプラグインに対応したPlayStationエミュレーター等で利用可能なソフトウェアです。
長期にわたり公開場所を失っていましたが、記録として掲載しておきます。
- Eternal SPU Plugin 1.50 beta 2 (2005/08/21) for Win32
- Eternal SPU Plugin 1.41 (2003/05/31) for Win32
- Eternal SPU Plugin 1.41 (2003/05/31) for Linux32
Notice
プロプライエタリの隆盛とOSSの台頭(2026/3/14 記)
2000年前後、フリーソフトウェアの世界には、現在とは少し異なる文化が確かに存在していた。ソフトウェアは無償で配布されるが、ソースコードは公開されない。いわば「プロプライエタリなフリーソフト」がごく自然に受け入れられていた時代である。アルゴリズムや内部実装はブラックボックスとして保たれ、作者の設計思想や最適化の工夫は、実行バイナリの挙動の中にのみ現れる。ユーザーや開発者は、その振る舞いを観察し、時には逆アセンブルやトレースによって内部構造を推測する。そこには、公開リポジトリを前提とした現代のOSSとは異なる、ある種の職人的な技術文化が存在していた。
しかし2000年以降ほどなくして、GPLをはじめとするOSSライセンスと分散開発モデルが急速に普及し始め、ソフトウェア開発の前提そのものが変化していく。ソースコードは公開され、バージョン管理システムの上で共同開発が行われ、実装の知見はコミュニティ全体に共有される。これによりアルゴリズムの再利用性や品質保証は大きく向上し、ソフトウェアは個人の作品から集合知によるインフラへと変貌していった。だが同時に、作者の頭の中にだけ存在する実装や最適化が静かに消えていったのも事実である。ブラックボックスの中に秘められた技巧という文化は、OSSの透明性と引き換えに、次第に姿を見せなくなった。
こうした変化は、ゲームエミュレータの世界においても顕著であった。かつてエミュレータ開発は、ハードウェアリバースエンジニアリングの典型的な実験場であり、技術的にも文化的にも半ばアンダーグラウンドな領域に位置していた。公式ドキュメントはほとんど存在せず、CPU命令の副作用、GPUコマンドパイプライン、DMA転送のタイミング、割り込み制御といった要素を、実機観測とログ解析によって推定していくしかない。PlayStationであれば、MIPS R3000A互換CPUの命令挙動、DMAチャネルのハンドシェイク、GPUコマンドFIFOの処理順序、さらにはSPUのADPCMデコードやリバーブバッファの挙動まで、すべてが試行錯誤の対象だった。
そのような環境の中で、エミュレータは主に個人によって開発され、しばしばプロプライエタリなフリーソフトとして公開された。バイナリのみが配布され、内部実装は作者の頭の中にのみ存在する。ユーザーはそれを実行し、時に逆解析しながら、その実装の巧妙さに驚嘆する。
OSS文化の広がりとともに、エミュレータ開発は大きく変化する。CPUコアの実装、GPUのラスタライズ処理、タイミングモデル、メモリマップの再現などがソースレベルで公開され、知見はコミュニティの共有資産となった。結果としてエミュレーション精度は飛躍的に向上し、かつては再現困難だったゲームの挙動も、サイクル精度やタイミング依存まで含めて再現されるようになっていった。
そして現在では、かつて地下文化の象徴だったエミュレータ技術が、ゲーム保存や互換性研究の重要な基盤として扱われている。さらに興味深いことに、ゲーム機メーカー自身がOSSエミュレータの技術を参照したり、実際にコードを取り込んだりする例さえ現れている。かつて非公式のリバースエンジニアリングとして始まった技術が、長い年月を経て公式の技術資産へと転化したのである。
そんなことを考えながら、いま、約二十年ものあいだ開発が止まっていた私家版のPlayStationエミュレータを書き直している。
古いソースコードを読み返すと、そこには当時の試行錯誤がそのまま残っている。GPUの描画コマンドの解釈、DMAチェーンの処理順序、VRAM転送の座標進行、SPUレジスタの更新タイミング。どれも完全な仕様書など存在せず、非公式のドキュメントサイトの資料やログをもとに、実機との挙動を比較しながら少しずつ再現を試みていた記録である。
二十年の時を経て、画面上にSONYのBIOSロゴが表示された。
GPUのDisplayStartレジスタとDisplayRangeの設定が正しく解釈され、VRAM上のテクスチャが期待通りのタイミングでフレームバッファに転送された──ただそれだけのこと。

同時に思い出したのは、SPUプラグインの開発に携わっていたIori氏、Yano氏、軍神氏らのことだった。もちろん直接会ったことはない。それでも、彼らの残したプラグインや技術的議論、実装の断片を通して、確かに同じ時代を過ごした者として自身の存在を感じていた。SPUのADPCMストリーム処理、リバーブ計算、レジスタ更新のタイミング。改修を重ねる度に再現性は向上した。
当時、世界のどこかで同じようにCPUトレースを取り、DMAログを眺め、GPUSTATのビット変化を追いながらコードを書いていた人たちの姿はもうない。
エミュレータという技術は、一人の天才が作ったものではない。
名も知らない開発者たちが、CPU命令一つ、レジスタ一つを理解するために費やした無数の日々。その積み重ねが、今日のエミュレーション技術を支えている。
画面に浮かぶBIOSロゴを見つめながら、あの時代に同じようにコードを書いていた誰かの存在を、静かに思い出している。
PlayStation エミュレータの開発(2026/3/25 更新)
開発記録を記します。
- 未稿
Output
Info
- Microsoft Windows 11 および Ubuntu24/25 での動作を前提としたアプリケーションです。
- 現時点ではエミュレータプログラムの実行ファイル(バイナリ)は未公開です。
