Repository navigation
v0.1.23 からの変更。VM メニューでディスクを入れ替えたことがゲームに伝わるようにし、ホットキーの修飾キーを選べるようにし、ホストの CPU の世代に合わせて V30 の命令の扱いを変えました。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。実機では未確認です。
変わったこと
- VM メニューでディスクを入れ替えたとき、ゲストのディスク BIOS のワークエリアに、媒体が替わったことを示す値を書くようにしました。 3 枚組の市販ゲームで、求められたディスクに入れ替えても、ゲームがそのディスクを入れるよう言い続ける件への直しです(#3)。エミュレータでは、入れ替えたあと先へ進むことを確かめました
-hotkey shiftを付けると、ホットキーが SHIFT + GRPH の組み合わせになるようにしました(6 つ全部が SHIFT + GRPH + キーになります)。CTRL + GRPH + HELP を本体が先に受け取ってしまう機種(PC-486NAS)のための設定です。起動時に、いまの組み合わせをVBM98: hotkeys:の行で表示します- ホストの CPU の世代を見て、V30 の命令の扱いを変えるようにしました。 起動時に、世代を
VBM98: CPU:の行で表示します- Pentium 以降: V30 の INS 命令のうちレジスタどうしの形を代行するようにしました。これまでは CPU が別の命令(RDTSC)として実行していました。そのために、ゲストの実行中だけ CPU の設定(CR4 の TSD)を変えます。うまく動かなくなったときは、
-v30 offを付けるとこの設定に触りません(V30 の命令の代行も止まります) - Pentium Pro 以降: V30 のビット操作命令の一部を代行できないことを、起動時に警告します
- 386・486: ビット番号を CL レジスタで指定する形の TEST1 と CLR1 を代行できないことを、説明書の動作環境に書きました。CPU が別の命令として実行してしまうためです。実機(PC-9801RA2、PC-9801BX)での報告によります
- Pentium 以降: V30 の INS 命令のうちレジスタどうしの形を代行するようにしました。これまでは CPU が別の命令(RDTSC)として実行していました。そのために、ゲストの実行中だけ CPU の設定(CR4 の TSD)を変えます。うまく動かなくなったときは、
- NP21/W の上で動かすときは、
-v30 offが要るようになりました。 付けないと、NP21/W がメッセージを出して止まります - zip に、開発状況の
STATUS.DOCと変更履歴のCHANGES.DOCを入れました
実機の結果(報告)
- v0.1.23 で直した、GDC クロックが 2.5MHz の設定のホストで終了後に表示が崩れる件は、実機(PC-486NAS、PC-9801BX、PC-9801RA2)で直りました
- PC-9821Xe10 で、SMITSCSI を接続した構成でも動きます
- PC-486NAS で、CTRL + GRPH + HELP を本体の BIOS が先に受け取り、VM メニューを開けない件。今回
-hotkey shiftを入れましたが、実機では未確認です(スクリーンショットの CTRL + GRPH + COPY は使えます) - PC-9821Ap で、3 枚組の市販ゲームが求めるディスクに入れ替えても先へ進まない件(#3)。今回直しを入れましたが、実機では未確認です
- PC-9821Cr13 と PC-9821Xe10 で、VM メニューか終了の確認を開いて戻ったあと、ゲームがキーを受け付けなくなる件(#2。v0.1.14 から)。未解決で、今回は手を入れていません
試していただける方へ
- PC-9821Ap の件: 求められたディスクに VM メニューで入れ替えたあと、先へ進むかを教えてください
- PC-486NAS の件:
-hotkey shiftを付けて起動し、SHIFT + GRPH + HELP で VM メニューが開いてディスクを交換できるかを教えてください - Pentium 以降の機種で、これまで動いていたものが動かなくなったら教えてください
動作環境
- 80386 以上の PC-98x1(ノーマルモード)、MS-DOS(リアルモードか、VCPI のある EMM の下)、XMS ドライバ。空きコンベンショナルメモリ 256KB 以上、拡張メモリ 700KB 以上。イメージをメモリに読み込むには、さらに 1 枚あたりイメージの大きさぶん
- MS-DOS 6.2 の EMM386.EXE は、
/DPMIを付けないと VBM98 が使う機能(VCPI)を提供しません。MS-DOS 5.0A の EMM386.EXE は/DPMIを付けても提供しないので、EMM386.EXE を外して起動してください - CPU が 386・486 の機種と、Pentium Pro 以降の機種では、V30 エミュレーションの一部が働きません(README の動作環境)
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、EPSON 機で NEC の MS-DOS や N88-BASIC(86) の機種チェックを通すこと、サウンド BIOS の INT D2h の登録
- DMA の転送(対応予定)
- Windows 98 の DOS に 30 行 BIOS を常駐させたホストでは、元の BIOS の入口が見つからず、ゲストでキーが連打された状態になります(未解決。30 行 BIOS を外して起動してください)
- 上の #2 の件(未解決)
zip には、PC-98 で読める説明書 VBM98.DOC、開発状況 STATUS.DOC、変更履歴 CHANGES.DOC(どれも Shift-JIS)が入っています。詳細は README(PC-98 では VBM98.DOC)を参照。