PC-8801MAエミュレータをリリースしました。
PC-98DOのPC-88側を単体バイナリとして独立させたものです。
結構再現性が向上してきましたし、そろそろいいかなという事で。
それに伴い、PC-98DOで本来サポートされていない機能要素を廃止しています。
OPNA音源、ジョイスティック、辞書ROMとかです。
それらが必要な場合は、PC-8801MAのバイナリをお使いください。

スタートレーダーが途中で止まってしまう問題が解決しました。
メッセージデータ中の、文字色変更などの制御コードを誤認識して、
メッセージにごみが表示されたりしていましたので、
CPUとかメモリ周りとか、そっちを色々疑って調査していたのですが。
実際にはVRAMのアクセス制御レジスタの問題でした。
拡張アクセスモードに入ったら、独立アクセスモードで使っている、
VRAMプレーンの選択レジスタをクリアする必要があったようでして。
#そんなん分かるかいな(苦笑)
CPUの問題の切り分けのため、Z80コアを最新のMAMEベースで再実装しています。
何か他の機種で影響が出てましたらご報告いただけますと幸い。
あと必要な機能としては、主にデータレコーダのサポートですかね。
ビデオアートボードとかは需要ありますでしょうか。
と言っても、仕様も判らないし、ボードを使うソフトも当てがないんですが。
(2012/2/17 2:45追記)

PC-8801FAのデモが途中で止まるようになっていたのを修正しました。
サイトの方も更新しましたので、そちらのバイナリをお使いください。
単にメモリウェイトを有効にするか無効にするかの差なんですが、
微妙なタイミング依存で問題が発生していたようです。
(2012/2/18 0:45追記)
Direct3D9のテストバイナリです。
Windows Vista/7などGDIが遅い環境で、従来のバイナリと比較して
パフォーマンスが改善しているか、テストにご協力ください。
Linuxなどの環境でWineで動作するかも確認していただけると幸いです。
http://homepage3.nifty.com/takeda-toshiya/00tmp/pc8801ma.zip ついでにフルスクリーンで画面引き伸ばし時の画質を改善してみました。
Screen - Stretch Screenをチェックすると、アスペクト比を保って
画面全体に表示するようになっていますが、このときディスプレイの解像度が
仮想マシンの整数倍になっていないと、ドットの大きさにムラがありました。
これを、一旦ディスプレイより一回り大きく拡大して、それを縮小することで、
比較的綺麗にスケーリングするようになっています。
従来のGDIオンリーだと、重くて実用的な処理じゃなかったんですが…
(2012/2/18 1:15追記)
某所で要望がありましたので、サウンド合成の周波数の選択肢のうち、
48000Hzを55467Hzに変更してみました。
OPNA/OPNに与えるクロックは7987248Hz/3993624Hzにしてあります。
仮バイナリのURLは上と同じです。
#仮想マシン側で何か修正点がありましたらご指摘頂けますと幸いです。
#パッチ送って頂けたら益々幸いです(を
(2012/2/19 2:55追記)

400ライン時、テキストアトリビュートから色を取得するように修正しました。
ご指摘多謝です。
上のURLの仮バイナリを更新していますので、お試しください。
FRの歯の鍵盤は、やっぱりメモリウェイト関係なんでしょうか。
具体的に、4/8MHz時に、RAM/高速RAM/VRAM/VRAM拡張/ROMのそれぞれで、
どれくらいウェイトが掛かるものか、何か情報ありましたら教えてください。
ついでに、画面のスケーリング周りにおいて、memcpyをループに置き換えることで、
私の環境だと10%ほど処理が軽くなりました。
計測した限りだと、memset>ループ>memcpyといった感じです、意外だなあ。
あと、全画面のスケーリングを伴わない場合に、メニューから画面キャプチャをしても
正しく画面が保存されない問題を修正しました。
仮想マシンが、可能な限りDirect3D9のバッファに直接描画するようにした関係で、
従来のDIBSectionなバッファが更新されていないことを忘れてました(苦笑)
(2012/2/20 5:00追記)
D88のマルチボリュームに対応しました。
まだ実験的な実装なので、念のためディスクイメージのバックアップをしてから
お試しください。
拡張子がD88かD77だと、無条件でD88フォーマットだと信じて末端まで読み込みます。
末端にゴミが付いているなどの場合は多分おかしな動作になりますのでご注意ください。
ディスク交換時に暫くディスクが抜けている状態をつくる処理はまだ未実装です。
(2012/2/20 23:55追記)
Direct3D9やD88マルチボリューム対応を含む形で、正式リリースしました。
ディスク交換時に、0.5秒間ディスクが抜かれた状態を維持するようになっていますので、
新九玉伝についても、普通にディスク交換できるようになっています。
メモリウェイトは、仮にm88と同じ程度のウェイトを掛けるようにしました。
ここから、FRのデモにあわせて微調整していく予定です。
マウスの件も、標準バスマウスを今後おいおいサポートしていくつもりです。
他の独自形式は…えーと、どうしよう(苦笑)
ボリューム調整については、今後の課題ということにさせてください。
1機種だけ考えるのであれば、ダイアログを作るのも簡単なことなんですが、
色々な機種で共用することを考えると、どう実装したものか悩ましいです。
(2012/2/21 2:05追記)

さっき更新したばっかりなんですが(苦笑)
PC-8801mkII FRのデモにあわせてメモリウェイトを微調整しました。
4MHzモードで大体合ってるような、そうでもないような感じです。
頭とお尻のタイミングは大体合ってるけど、途中はちょっと外れたりします。
(2012/2/28 0:15追記)


先日報告した通り、RST MUSIC DISK vol.12の画面化けを解決しました。
αの件と同様に、アトリビュートを例外処理で展開するようにしています。
また、KOB-SOFTのソフトが多分ブートするようになっているかと思います。
RTCの読み込みで詰まってたのですが、PC-8801MAも98DOと同様に、
uPD4990Aが使われているようです。
Windows7環境で画面とび音とびが発生する件は、一応対策をしてみました。
現象が再現しないのでこちらでは確認できていませんが、テストお願いいたします。
例によって仮バイナリを以下にアップしてあります。
http://homepage3.nifty.com/takeda-toshiya/00tmp/pc8801ma.zip