PSやろーぜ'99[第3回]
■ 目覚めよCD-ROM !!
せっかく実行の基本部分が出来ているのだから、ゲームを起動してみたいと考える
のが普通でしょう。現状では、ゲームなんて動かすのはほとんど不可能なのでSCE
ロゴの次に、CDを検知したあとに出てくるPSロゴが表示できるまでがんばってみる
ことにします。
初期バージョンではCD-ROMのリードコマンドさえも実行されないうちに止まってし
まって、CD-ROMのチェックさえもされない状況でしたが、苦労の結果、なんとかリ
ードコマンドが発行されるまでエミュレーションを続行できるようになりました。
CDアクセスのログを見てみると、起動時のCD−ROMドライブのチェックかなんかの
あとにDMAを使って1トラック分データを読み込んでいます。
さあ、ここでどうやってCD-ROMのアクセスするかという問題になるわけですが、い
い解決法が身近にありました。PS-EmuのプラグインにASPIドライバがあったのに注
目し、ASPI関連の書籍をあさることにしました。手元に一番いい参考書
(InsideWindowsのASPI特集)があったことに気づいてそれを使うことにしました。
なんと言っても、ATAPIのCD-ROMがASPIで使えるというのは驚きでした。
簡単なASPIプラグインを作ってエミュレーションをしたところ、CD-ROMをリードし
て次の処理に進行することに成功することができました。いやあ、苦労しました。
ログをみてみたりデバッグ画面を見てみると、確かにCD-ROMからSCEの著作権表示
のテキストを読み込んでいるようです。おそらく、CDチェックの部分かと思われま
す。まず、1トラック分を読み込んで、次に数トラック分を読み込むさまを示すロ
グが確認できました。
これで、CDからゲームが出来るぞっと思っていたらいきなり一般保護違反がでてき
てしまいました、しかもGPUプラグインの所で。ログを見てみると、やっとGTEの使
用が確認できました。どうやら、GTEの実装をしていないので未処理の怪しいデー
タをそのままGPUに送ってしまっているようです。こっこれは、もしやPSロゴまで
辿り着けたのでは、と思った瞬間でした。まだ、画面を見れない(落ちるから)ので
確信は持てないのですが、GTEを実装しなければならないのは確かなようです。
- 2000年1月12日 -