以前メールをお送りしたのですが、フリーのメールアドレスから送ったので届いてないかも???
ということで、そこに書いたことも書いてないことも一緒に、便乗してこの場で報告します。

1.tms9918a.cppですが、6ドット幅の文字が横に40個並ぶモード(MSXで言うところのSCREEN0:WIDTH40)では、40文字x6ドットの範囲外は黒ではなく、背景色で塗りつぶされるのが正解だと思います。

2.Windowsの文字の大きさの設定を、標準の96dpiではなく120dpiにしてからtk80bs.exeを起動します。疑似ROM群は無くても良いです。
そして、メニューのScreenからWindow x1を選びます。すると、
Use Direct3D9にチェックを入れない場合:描画内容の下のほうが欠けます。
Use Direct3D9にチェックを入れる場合:描画内容が縦方向に少し圧縮されてドットがにじみます。
メニューが2行になる状態、であれば他の設定やEXEファイルでも同じ現象になるかもしれません。

3.fmgen部分の潜在不具合?(2014-01-08のソースで確認。)
再現手順と発生現象:
pc98do.exeとpc8001mk2sr.exeとpc8801ma.exeをDebugビルドで作成します。設定ファイル(*.ini)や正規のBIOSファイルはとりあえず消しておきます。
そして、06 00 21 34 12 AF F3 04 78 D3 44 ED 6A 8D 6F D3 45 18 F4 の19バイトのファイルを2つ作成します。ファイル名はPC88.ROMとN80_2.ROMにして、上記のexeファイルと同じフォルダに置きます。
その状態でpc8001mk2sr.exeとpc8801ma.exeを実行すると、すぐにassertで落ちます。
pc98do.exeもPC-88系のモードに切り替えると、すぐにassertで落ちるようです。
落ちる場所は、fmgen.cppの411行目です。
(Releaseビルドで、不適切なアドレスにアクセスして落ちるなどの現象は今のところ発生していません。)
対策:
http://www.purose.net/befis/download/kmp/
のm_s98.kpiやm_gym.kpiのソースに含まれる、fmgenのfmgeninl.hに施された修正を反映させると、上記のassertは発生しなくなります。
しかし、この方法で全然発生しなくなるか、適切な修正かどうかは私は理解していません。
(余談:私の持っていない機種ばかりで互換BIOSは存在してもテストプログラムが開発できないので、強引ですが偽BIOSでレジスタ書き込みを繰り返す手法にしました。本来はユーザープログラムで実行する内容ですので、BIOSで実施するべき初期処理などあるかもしれませんが全然考慮していません。)

4.pc8001mk2sr.exeの設定ファイルがpc8801mk2sr.iniになっているのは細かすぎる不具合ですか?

5.英語版Wikipediaなどによれば、入出力ポートを2つ持つのがAY-3-8910で、1つしか使えないのがAY-3-8912だそうですが、#defineの名前がHAS_AY_3_8912になっていることに何か意味はあるのでしょうか?

6.Use Direct3D9にチェックを入れている状態でWindowsキー+Lを押したり、Ctrl+Alt+Delを押したりしてから元のデスクトップ画面に戻ると、エミュレータの描画領域が真っ黒です。(私の実行環境は、Windows7 SP1 64bit)
Use Direct3D9のチェック状態を切り替えれば再び普通に描画されるようになるので、大した問題ではありませんが。

7.ePX-7のMSX1部分に関しては色々とあるのですが、また後日。yaMSX1を少しいじっている途中だったので、調整した後、ソースも添えて。

以上です。


アクセス解析 SEO/SEO対策