Wizardry Bane of the Cosmic Forge2017年09月09日 23:46

次いでBane of the Cosmic Forge
PC-98版にはMMXペンティアムで起動しないというバグがある(0で除算しましたというエラー)。
PC-9801版+エミュレーター(Anex86)という構成のWizardryCollectionもインストールするPCの構成によっては同様のエラーが発生して起動しないという現象が起きる。
Corei7のマシンで現象を確認したので、ホストになるWindows機のCPUが早すぎるとダメなんだろうか?

回避方法は2つ
1・Annex86の設定でTimingタブのTimerとVsyncにチェックを入れる(値はデフォルトの1.000のまま)
2・WROOT.EXEの001F37h:BB0A→BB84

2の方法でexeにパッチ当てたらMMX搭載のPC-9821でもBCFが起動できるかな?
MMXの9821持ってないから試せない。

ちなみにWizardryCollectionには2種類のAnex86が入っている。
Wizardry1~5用の普通のPC98互換機エミュレーター
BCF、CDS用のAT互換機用のDOSで起動可能なよう改造されたPC98互換機エミュレーター

どちらもPC98版のWizardryを動かしているんだけれど、Wizardry1~5は起動にMS-DOSを必要としないのに対し、BCF、CDSはMS-DOSが必須となる。
しかし、WizardryCollection発売当時すでにPC-98版のMS-DOSを保持している人はごく少数だったはずだし、WizardryCollectionにMS-DOSを同梱するのもライセンス的に問題が出る。
(価格が1万くらい高くなる?)

そこで、AT互換機のDOSで起動できるようにエミュレーターを改造したと思われる。
エミュレーターを実行するのはWindows機で、起動用FDD作成すればDOS入りシステムディスクは作れる。そのディスクを起動ディスクとして使えばライセンス問題をクリアできるということなのだろう。
pc86x.sysとpc86x.comがモード切替用プログラムみたい。

15年前ならともかく、今頃こんなこと書いても誰の役にも立たない気がするけどメモということで。

MSX版Wizrdry1、2をTurboRで高速起動2017年08月27日 22:35

こちらも古い話を覚書。

MSX版のWizardry1及び2をTurboRで高速起動する方法。

1・MSX-DOS2でフォーマットしたディスクを用意する。
2・1のディスクをデュプリケイトディスクにする。
3・2のデュプリケイトディスクにシステムディスクの全ファイルとMSX-DOS2.SYS、COMMAND2.COMをコピーする。
4・作成したデュプリケイトディスクから起動する。

3はもとからTurbor対応なので関係なし。



モニタ表示遅延測定支援プログラム2017年06月28日 22:55

なんか、仰々しいタイトルになった…

1chipMSXのLEDを利用してモニタ表示遅延を測定してみようという意図のプログラム。
モニタに表示した値を1chipMSXのLEDを利用して2進数表示します。
モニタ側に遅延が発生していると、モニタに表示した値とLEDが示す値に差ができるはず。

1chipMSXのLED部分を拡張したpof及びpldファイルと、画面とLEDに値を出力するMSX-DOS用のプログラム、実機用に画面とプリンタポートに値を出力するプログラムのセットです。

ダウンロードはこちら

SCART-HDMI変換アダプタ ― その42017年06月25日 23:53

にがさんに頂いたヒントを元にSCART-HDMI変換アダプタの画像遅延を調査するプログラムを組んでみた。
方法はMSXのタイマ割り込みを利用し、画面に数字を表示するのと同時に8セグメントのLEDを光らせて、その差異を確認しようというもの。
元々のにがさんのアイディアではプリンタポートを利用すればとの事なのだが、プリンタポート用のコネクタがないので信号線の引き出しが面倒。
と、考えてみればLED光ればいいなら1ChipMSX使えばいいんじゃないかと思い立ち、FPGAのカスタマイズとMSX-DOS用の簡単なカウントプログラムを作成してみる。

まず、FPGAをいじってIOポート0を拡張。IOポート0への書き込んだ値に応じて本体LEDが光るようにする。
MSX-DOS用のカウントプログラムは取り敢えずFC9EHのカウンタの値をそのまま利用して、画面に10進数で表示するのと同時にIOポート0に書き込んでみた。

で、本体LEDとモニタ画面を同時に撮影し、差異を確認。
遅延があるならモニタ側の数値が小さく表示されるはず。

※赤LED側が下位ビット
画像遅延検証 lcd-8000v
lcd-8000v(1chipMSXの出力は31KHz)
画面の値は232、LEDは11101001で233。


画像遅延検証 ノーマルモード
Panasonic TH49-DX600のノーマルモード(1chipMSXの出力は15KHz)
画面の値は18、LEDは00011111で31。


画像遅延検証 ゲームモード
Panasonic TH49-DX600のゲームモード(1chipMSXの出力は15KHz)
画面の値は159、LEDは10100111で167。

差異をまとめると

LCD-8000V       1
TH49-DX600のノーマルモード 13
TH49-DX600のゲームモード   8

タイマは1/60secなのでそれぞれ*1/60して

LCD-8000V       0.0166…
TH49-DX600のノーマルモード 0.2166…
TH49-DX600のゲームモード   0.1333…

音声側の確認結果と大体一致してる?

実機でのテストは「さろんdeねくすたぁ~」を利用すればICソケットとLED、後は抵抗あればテストできそう。
 →マニュアル読んだらSPIだといろいろ面倒そうだ。
  普通にスロットから信号線出せばいいだけか。以前購入したスロットの外出し基盤の出番だな。


※やってみて思ったけどし、写真の写りがよくない。
※LEDの残光で値の読み取りがかなり困難。デジカメの設定でどうにかなるのかな?

SCART-HDMI変換アダプタ ― その32017年06月18日 21:49

簡単に遅延を測定してみた。
画像で確認するのは大変そうなので、変換アダプターのイヤホンジャックとテレビのイヤホンジャックから出る音声での確認。
モノラルx2をステレオに変換するコネクタを利用してWindows機で録音の後、SoundEngine Freeにて左右のチャンネルの差異を確認。
今回はMSX(A1-ST)の起動音でテストした。

SCART-HDMI音声遅延(ノーマル)
テレビの画像モードがノーマルの場合、約0.2秒遅延

SCART-HDMI音声遅延(ゲーム)
テレビの画像モードがゲームの場合、約0.15秒遅延

音声のみの比較なので、あまり正確ではないだろうけど、予想通り結構な遅延が発生している模様。
アクションゲームやシューティングやるのは結構大変かも。

スーパーマリオは結構死にまくる…

6/24 キャプチャ画像追加