●概要
”PowerStation”は幅広いユーザーをターゲットとした、
実用性、高速性、操作性に優れたプレステエミュレータを目指しています。
最終的には開発環境にも利用できるように仕上げて行きたいと考えています。
●特徴
<WindowsPCの機能を活かしたロジック>
プレステの仕様をありのまま模擬するのではなく、
元来PCが持つ機能をハイパフォーマンスで、且つ、無理なく
プレステの機能に匹敵させるように心がけて開発しています。
そのため、音の聞こえ方やCGが実機と異なる事があります。
特にハード面のエミュレーションでは低級言語である
アセンブリ言語を使用し、高速化を実現しています。
<MMX命令を使用>
MMX命令で実現可能な場所はできるだけ使用し、
3D演算やサウンド再生を高速化しています。
オプションでPentiumIIIやPentium4ユーザーのために、
SSE1、SSE2命令にも対応するつもりです。
<機械語変換(リコンパイル)機構>
プレステのCPU命令をPentium系CPU命令に直接変換する機構です。
これにより、CPUの最大限の性能を引き出しています。
<オーバーレイサーフェイス採用>
プレステ実機の出力先はTVです。
「PC上でのTV」とも言えるオーバーレイを採用する事で、TVの様な
グラフィックの質感と、描画を高速化しています。
<簡単な操作性>
まだ外部(ユーザーインターフェイス)は作っていないので予定ですが、
複雑な設定の必要のない3D表示のインターフェイスに仕上げようと思っています。
エミュレータに詳しい方やそうでない方でも使えるように、
必要と思われる環境設定等は付加します。
「ダブルクリックすればすぐに使える」が目標です。
●開発環境
VisualC++.NET 2003 + MS−MASM Ver 6.15.8803 + DirectX9.0b
SDK
●現状での必須動作環境(開発中なので変更する事があります)
PC | IBM PC/AT互換機、 NEC PC−9821互換機 |
OS | Windows95、98、98SE、ME、2000、XP、2000 Server、2003 Server |
CPU | MMX-Pentium互換CPU 166MHz以上 |
HD | 2MB以上の空き容量 |
メモリ | 64MB以上(10MB以上の空き) |
入力装置 | キーボード、マウス 又は DirectX対応コントローラー |
グラフィックボード | 解像度640*480で16、24、32ビット色いずれかの表示ができ、 DirectDrawのオフスクリーンによるオーバーレイ (RGB24、RGB32、YUY2、UYVY互換フォーマット)に対応した物。 |
サウンドボード | 22Khz16Bit以上再生可能な物。 |
その他 | DirectX7以上、ASPI32レイヤー |
●開発状況
<リリース用コンパイル版>
動作テスト ”doomed/padua氏 VBlank.exe”
<MDEC、CD−ROM、GPU(2Dのみ)モジュールテストプログラム>
(オーバーレイを専用ツールでキャプチャ、Window枠と合成したスナップです。
実際にこの様に表示されています。)
<GTEモジュールテストプログラム>
エミュレータの現在の完成度は以下の通りです。
「ハードウェアエミュレーション部」
CPU(命令数) | 100% |
COP0(システム制御) | エミュレーションの必要無し? |
COP1(浮動少数演算) | 20% |
COP2(幾何学演算) | 100% |
GPU(グラフィック処理) | 40% |
SPU(サウンド処理) | 90% |
MDEC(圧縮画像伸張処理) | 98% |
ルートカウンタ(時間制御) | 100% |
CD−ROM | 95% |
DMA | 70% |
論理メモリアドレスバス制御 | 95% |
「ソフトウェアエミュレーション部」
メインカーネル(ブート処理、OS等) | 80% |
割り込みイベントハンドラ | 40% |
機械語変換機構 | 100% |
システムコール | 40% |
※パーセンテージはエミュレータとして動作するまでの完成度の目安です。
※まだ市販ソフトが正常に動く段階ではありません。
プレステの仕様解析度は以下の通りです。
CPU命令 | 100% |
COP0 | 85% |
COP1(FPU) | 100% |
COP2(GTE) | 100% |
GPU | 90% |
SPU | 98% |
MDEC | 98% |
ルートカウンタ | 100% |
CD−ROM | 95% |
DMA | 80% |
BIOS−5500 | 35% |
シリアル通信端子 | 5% |
パラレル通信端子 | 0% |
※パーセンテージは解析しただいたいの目安です。
0%は「全く理解していない」や「ソフトで全く使用されていないため、解析しようがない」等、
100%はプレステとして「このような解析結果しかあり得ない」、
「解析結果は完璧」等を意味しています。
※公開されている資料を参考にはしていますが、エミュレーション精度を上げるために
信頼性がない場合は納得できるまで自分で解析するようにしています。