Repository navigation
Releases: madscient/VirtualBareMetal98
Release list
v0.1.23
v0.1.22 からの変更。VBM98 を終了するときのグラフィック表示の戻し方を直しました。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。実機では未確認です。
変わったこと
- VBM98 を終了するとき、グラフィック GDC のクロックと表示の設定を、起動したときのホストの状態に戻すようにしました。 GDC クロックが 2.5MHz の設定のホストで、ゲストとして DPS を起動して終了したあとに別のソフト(98スタジアム)を起動すると、5MHz のときのような表示になる件への直しです。エミュレータでは、同じ手順で正しく表示されることを確かめました
- 試験に 4 項目
実機の結果(報告)
- DPS のテキストのスクリーンショットの崩れは、v0.1.22 で実機(PC-9821Cr13)でも直りました。半角カナも撮れるようになりました
- PC-486NAS で DPS の音が出ない件は、確かめ直したところ鳴ったとのことで、取り下げになりました
- GDC クロックが 2.5MHz の設定のホストで、DPS のあとに 98スタジアムの表示が崩れる件(PC-486NAS。エミュレータの NP21/W でも起きる)。今回直しを入れましたが、実機では未確認です
- PC-486NAS で、CTRL + GRPH + HELP を本体の BIOS が先に受け取り、VM メニューを開けない件。未解決で、今回は手を入れていません
試していただける方へ
- 同じ手順(2.5MHz の設定で起動し、DPS を起動して終了したあとに 98スタジアムを起動)で、表示が崩れなくなったかを教えてください
動作環境
- 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 を外して起動してください
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)
- Windows 98 の DOS に 30 行 BIOS を常駐させたホストでは、元の BIOS の入口が見つからず、ゲストでキーが連打された状態になります(未解決。30 行 BIOS を外して起動してください)
- 上の PC-486NAS のホットキーの件(未解決)
zip に入っている VBM98.DOC は、PC-98 で読める説明書(Shift-JIS)です。詳細は README(PC-98 では VBM98.DOC)を参照。
v0.1.22
v0.1.21 からの変更。テキストのスクリーンショットの 2 バイト文字の描き方を直しました。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。実機では未確認です。
変わったこと
- テキストのスクリーンショットで、2 バイト文字の右半分を、テキスト VRAM の右側の桁の書き方によらず描くようにしました。 DPS のテキストのスクリーンショットで、文字が同じ文字を横に 2 回並べたような形に崩れる件への直しです
- テキストのスクリーンショットに、半角カナなどの 80h 以上の 1 バイト文字が写るようにしました。 これまでは写っていませんでした
- 試験に 2 項目
実機の結果(報告)
- PC-9801RA2 で、テキストのスクリーンショットの 1 バイト文字が、下半分まで正しく撮れるようになりました(v0.1.21)
- PC-9801RA2 の 640×200 の 15kHz の画面で、テキストのスクリーンショットが正しく撮れるようになりました(v0.1.21)
- DPS(アリスフリー宣言で配布されているもの)の起動直後の画面で、テキストのスクリーンショットの文字が崩れる件(PC-9821Cr13 と PC-9801RA2。エミュレータの NP21/W の上でも同じ)。今回直しを入れました。エミュレータでは、同じ場面が正しく撮れることを確かめました。実機では未確認です
- PC-486NAS で、CTRL + GRPH + HELP を本体の BIOS が先に受け取り、VM メニューを開けない件。DPS で音が出ない件。GDC クロックが 2.5MHz の設定のホストで 5MHz のときのような表示になるソフトがある件。いずれも未解決で、今回は手を入れていません
試していただける方へ
- DPS の同じ場面で、テキストのスクリーンショット(CTRL + GRPH + COPY の
...T.PNG)の文字が崩れずに撮れるかを教えてください
動作環境
- 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 を外して起動してください
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)
- Windows 98 の DOS に 30 行 BIOS を常駐させたホストでは、元の BIOS の入口が見つからず、ゲストでキーが連打された状態になります(未解決。30 行 BIOS を外して起動してください)
- 上の PC-486NAS の件(未解決)
zip に入っている VBM98.DOC は、PC-98 で読める説明書(Shift-JIS)です。詳細は README(PC-98 では VBM98.DOC)を参照。
v0.1.21
v0.1.20 からの変更。テキストのスクリーンショットの 1 バイト文字の読み方を作り直しました。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。実機では未確認です。
変わったこと
- 1 バイト文字(ANK)のフォントを、起動時に読んでおくようにしました。 スクリーンショットのときは、読んでおいたものから描きます。PC-9801BX と RA2 で、テキストのスクリーンショットの 1 バイト文字が崩れる件(v0.1.20 で RA2 は上半分だけ撮れるようになった件)への直しです。起動時に、画面が一瞬消えます。
- 起動時は、画面の表示を止めて読みます。表示を止めて読んだものが、時間をかけて確実に読んだものと一致するかを、数文字で確かめてから使います
- 一致しない機械では、起動時には読みません。スクリーンショットのときに、必要な文字だけを時間をかけて読みます(最初の 1 枚は少し時間がかかります。2 枚目からは読んだものを使い回します)
- 640×200(15kHz)の画面のテキストのスクリーンショットを、画面と同じ見え方で描くようにしました。 200 ラインの画面で使う小さいフォント(6×8 ドット)も起動時に読んでおき、ソフトがそのフォントを選んでいれば、それで縦 2 倍に描きます(2 バイト文字は、画面と同じく上半分を描きます)
-logを付けると、どちらの読み方になったかが記録されます。起動時にANK fonts:の行、撮影のたびにscreenshot: text: ANK patterns:の行が残ります- XMS で確保する拡張メモリが 8KB 増えました(動作環境の 700KB 以上は変わりません)
- 開発用:
-ankslow(起動時に読まない経路を試す)。試験に 5 項目
実機の結果(報告)
- BKDSK で作った HDB(N88-BASIC の 2HD)と、アリスフリー宣言で配布されている D88 が、実機で起動したとのご報告をいただきました(v0.1.20)
- PC-9801RA2 で、テキストのスクリーンショットの 1 バイト文字が、上半分だけ正しく撮れるようになりました(v0.1.20)。下半分の崩れへの直しを今回入れましたが、実機では未確認です
- PC-9801RA2 の 640×200 の 15kHz の画面で、テキストのスクリーンショットに画面に出ていないラインが挟まる件(v0.1.20)。直しを入れましたが、実機では未確認です
- DPS(アリスフリー宣言の D88)の起動直後の画面のテキストのスクリーンショットで、文字が同じ文字を横に 2 回並べた形に崩れる件(PC-9821Cr13 と PC-9801RA2。画面の表示は正常)。未解決で、今回は手を入れていません
試していただける方へ
- PC-9801BX か RA2 で、テキストのスクリーンショット(CTRL + GRPH + COPY の
...T.PNG)の 1 バイト文字が、下半分まで読めるようになったかを教えてください。崩れたままなら、-logのファイルのANK fonts:とANK patterns:の行を貼っていただければ、次の手が決まります - 15kHz の画面をお使いなら、同じくテキストのスクリーンショットがどう撮れたかを教えてください
VBM98 -fdd0 GAME.HDM -log VBM98.LOG
動作環境
- 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 を外して起動してください
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)
- Windows 98 の DOS に 30 行 BIOS を常駐させたホストでは、元の BIOS の入口が見つからず、ゲストでキーが連打された状態になります(未解決。30 行 BIOS を外して起動してください)
- 上の DPS のテキストのスクリーンショットの崩れ(未解決)
zip に入っている VBM98.DOC は、PC-98 で読める説明書(Shift-JIS)です。詳細は README(PC-98 では VBM98.DOC)を参照。
v0.1.20
v0.1.19 からの変更。ディスクイメージの対応形式を 2 つ増やし、いただいたご要望(ブランクディスク、オプションのプロファイル)を入れ、テキストのスクリーンショットの読み方を変えました。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。実機では未確認です。
変わったこと
- D88 形式と、BKDSK の HDB 形式(ヘッダなし、N88-BASIC の 2HD)に対応しました。 形式は中身で判定します。複数ディスク入りの D88 は、
-fdd0 GAME.D88,2のように番号で、またはメニューのファイル選択でファイルのあとに出るディスクの一覧から、1 枚を選びます(番号を省くと 1 枚目)。D88 は実物(MS-DOS 3.3C のディスク 3 本)で全セクタを照合しましたが、HDB は実物では未確認です(構造は資料から。仕様書 docs/disk-image-formats.md) - メニューのファイル選択で N を押すと、ブランクディスク(ユーザーディスク用の空のイメージ)を作ってそのドライブに入れます(ご要望)。大きさを 2HD 1.25MB / 2DD 640KB / 1.44MB から選び、ファイル名を入れます(拡張子を省くと .HDM)。中身は全セクタを E5h で埋めただけで、論理フォーマットはしていません(ゲームが自分で初期化する前提)。同じ名前のファイルがあるときは作りません
- オプションの組み合わせをファイルに書いておけるようにしました(
VBM98 @GAME.TXTのように、@に続けてファイル名)。中身はコマンド行と同じ書き方で、空白・タブ・改行で区切ります。#から行末まではコメント。コマンド行の中で@を書いた位置に展開するので、同じオプションは後に書いたものが有効です - テキストのスクリーンショットで、1 バイト文字(ANK)のフォントを、垂直同期の期間の中で読むようにしました。 PC-9801BX と RA2 で、テキストのスクリーンショットの 1 バイト文字が文字の形にならない件(2 バイト文字は撮れる)への直しです。いただいた画像を黒い背景に重ねて見ると、正しく読めた文字が 2〜4 文字の連なりでだけ現れていて、フォントの読み出しがある時間の窓の中でだけ通っている形でした。資料(undocumented_mem の io_disp.txt)の記述と合わせて、垂直同期の期間と見ています。あわせて、いただいたパッチ(文字ごとにドットアクセスのモードを書く)もそのまま入れています。エミュレータでは差が出ないので、直ったかどうかは実機でしか分かりません。
-logを付けると、撮影のたびにscreenshot: text: ANK patterns: N codes, M read in a vsync window, K retriedの行が残ります(N と M が同じなら、全部を期間の中で読めています) - 試験の実行部: 実行環境の実行ファイルが無いときは、理由を表示して止まるようにしました(開発用)
実機の結果(報告)
- 80 桁 × 20 行のテキストモードでメニューと画面の文字が崩れる件は、v0.1.14 で直っていたとのご報告をいただきました(EPSON PC-586MV)
- ディスクを読む間に FM 音源の音が途切れる件は、v0.1.19 で、OPNA の曲を鳴らすゲームの体験版がひっかかることなく再生されたとのご報告をいただきました(PC-9801RA2)。イメージを起動時にメモリへ読み込むようにした分(v0.1.14)、起動とディスク交換のときに 1 枚ぶんの読み込みの時間がかかります
- PC-9801BX と RA2 のテキストのスクリーンショットは、上の「変わったこと」のとおりです。直しを入れましたが、実機では未確認です
試していただける方へ
- PC-9801BX か RA2 で、テキストのスクリーンショット(CTRL + GRPH + COPY の
...T.PNG)の 1 バイト文字が読めるようになったかを教えてください。崩れたままなら、-logのファイルのANK patterns:の行を貼っていただければ、次の手が決まります - BKDSK で作った HDB のディスクが起動するかを教えてください
VBM98 -fdd0 GAME.HDM -log VBM98.LOG
動作環境
- 80386 以上の PC-98x1(ノーマルモード)、MS-DOS(リアルモードか、VCPI のある EMM の下)、XMS ドライバ。空きコンベンショナルメモリ 256KB 以上、拡張メモリ 700KB 以上。イメージをメモリに読み込むには、さらに 1 枚あたりイメージの大きさぶん
- MS-DOS 6.2 の EMM386.EXE は、
/DPMIを付けないと VBM98 が使う機能(VCPI)を提供しません
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)
- Windows 98 の DOS に 30 行 BIOS を常駐させたホストでは、元の BIOS の入口が見つからず、ゲストでキーが連打された状態になります(未解決。30 行 BIOS を外して起動してください)
zip に入っている VBM98.DOC は、PC-98 で読める説明書(Shift-JIS)です。詳細は README(PC-98 では VBM98.DOC)を参照。
v0.1.19
v0.1.18 からの変更。いただいたご要望を 1 つ入れました。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。実機では未確認です。
変わったこと
-
起動するときとリセットするときに、グラフィック画面(VRAM)を消すようにしました(ご要望: 続けて別のソフトを起動すると、前のソフトの画面が、新しいソフトが描き直すまで残る)
これまでは、テキスト画面だけを消していました。この版から、VBM98 を起動したときと、リセットしたとき(アプリ自身のリセット、CTRL + GRPH + DEL、VM メニューのリセット)に、グラフィック画面も消します。実機でリセットボタンを押したあとと同じ状態に合わせたものです。
- 消すのは、表示ページ 0 と 1 の両方です。16 色用のプレーンは、本体に 16 色用の VRAM があるときだけ消します
- VBM98 を終了して DOS に戻ったあと、グラフィック画面は消えたままになります(テキスト画面は元に戻ります)
v0.1.18 の実機の結果(報告)
- メニューが表示されたまま固まる件は、v0.1.18 で直りました(PC-9821Ap2、MS-DOS 6.2、EMM386.EXE の下)。オプションなしで、ゲーム 2 本で合わせて 12 回メニューを開いて、12 回ともキーが効いたとのご報告とログをいただきました。v0.1.17 までは、オプションなしで試していただいた 7 回とも固まっていました
- v0.1.18 では、直しを 2 つ同時に入れています(ホットキーを離したときの符号を、割り込みで受け取ってから少し間を置いて読む。メニューを開くときに、キーボードへの「待て」の合図を出し直す)。どちらが効いたのかは分かっていません。キーボードが止まる仕組みについての見立て(受信の直後に読むと「待て」が短すぎる)も、確かめられてはいません
- AMARANTH の店頭デモが、実機でも正常に表示されるとのご報告をいただきました(v0.1.13 で入れた修正の確認)。このデモは、本体の CPU の速度の設定を High にすると途中で止まることがありますが、VBM98 を通さずに直接起動しても同じように止まるとのことです
試していただける方へ
- 続けて別のソフトを起動したとき、前のソフトの画面が残らなくなったかを教えてください
- 画面を消すようにしたことで、これまで表示されていたものが出なくなった、というソフトがあればお知らせください
- これまで問題なく動いていた機種で、v0.1.18 以降、ホットキーが効かない・ホットキーのあとキー入力がおかしい、ということがあればお知らせください(ホットキーの受け取り方を v0.1.18 で変えています)
VBM98 -fdd0 GAME.HDM -log VBM98.LOG
動作環境
- 80386 以上の PC-98x1(ノーマルモード)、MS-DOS(リアルモードか、VCPI のある EMM の下)、XMS ドライバ。空きコンベンショナルメモリ 256KB 以上、拡張メモリ 700KB 以上。イメージをメモリに読み込むには、さらに 1 枚あたりイメージの大きさぶん
- MS-DOS 6.2 の EMM386.EXE は、
/DPMIを付けないと VBM98 が使う機能(VCPI)を提供しません
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)、D88 形式(対応予定)、BKDSK の HDB 形式(対応予定)
- メニューからブランクディスクを作る機能(ご要望をいただいています。検討中)
zip に入っている VBM98.DOC は、PC-98 で読める説明書(Shift-JIS)です。詳細は README(PC-98 では VBM98.DOC)を参照。
v0.1.18
v0.1.17 からの変更。実機で報告された「メニューが表示されたまま固まる」件の、2 つめの修正です。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。エミュレータではこの現象そのものが起きないので、直ったかどうかは実機では未確認です。
v0.1.17 について(訂正)
v0.1.17 の修正は効いていませんでした(PC-9821Ap2 での報告とログ)。リリースノートに書いた原因の説明(BIOS がキーを受けるたびに行っている応答をしていなかった)も、誤りでした。いただいた 1 回ぶんのログから原因を決めてしまったためです。その応答を足しても、キーボードは止まったままでした。
直したこと
-
CTRL + GRPH + HELP のメニューや、CTRL + GRPH + STOP の終了の確認が、表示されたままキーを受け付けずに固まる件(PC-9821Ap2、MS-DOS 6.2、EMM386.EXE の下。v0.1.14 から v0.1.17)
これまでのログを全部並べ直すと、次のことが分かりました。
- VBM98 は、ホットキーのキーそのものは「キーボードからの割り込み」で受け取り、キーを離したときの符号は「キーボードの受信を見張って、届いた直後に読む」やり方で受け取っていました
- 割り込みで受け取った符号のあとは、次の符号が毎回届いています。キーボードが止まるのは、見張って読んだ符号のあとでした(毎回ではありません)
PC-98 のキーボードは、本体が受信したデータを読むまでのあいだ「待て」の合図を受け取り、読まれると次を送ります。届いた直後に読むと、この「待て」が極端に短くなります。キーボードがそれを見落として、次を送る合図を待ったまま止まる、と見ています(資料と観測からの見立てで、確かめられてはいません)。
そこで、離したときの符号も、割り込みで受け取ってから少し間を置いて読むようにしました。メニューを開くときには、「待て」の合図をはっきり 1 回出し直します。
試していただける方へ
メニューや終了の確認が固まっていた環境で、オプションを付けずに(-log だけは付けていただけると助かります)、同じ操作を何回か繰り返してみてください。これまでも毎回固まるわけではなかったので、1 回通っただけでは直ったと言えません。5 回ほど続けて通れば、直ったと見てよさそうです。
VBM98 -fdd0 GAME.HDM -log VBM98.LOG
- 固まらなくなっていれば、何回試して何回通ったかをお知らせください
- まだ固まる場合は、
-logと-kbdprobeを付けて同じ操作をし、固まった直後から、ESC か数字のキーを 1 秒おきくらいに押し続けてください(今回は待たずに押してください)。20 秒ほどのあいだに、VBM98 がキーボードの立て直しを 3 段階で試します。どの段階のあとでキーが効いたかがログに残ります。そのログを送ってください
これまで問題なく動いていた機種でも、ホットキーの受け取り方が変わっています。ホットキーが効かない、ホットキーのあとキー入力がおかしい、という場合もお知らせください。
動作環境
- 80386 以上の PC-98x1(ノーマルモード)、MS-DOS(リアルモードか、VCPI のある EMM の下)、XMS ドライバ。空きコンベンショナルメモリ 256KB 以上、拡張メモリ 700KB 以上。イメージをメモリに読み込むには、さらに 1 枚あたりイメージの大きさぶん
- MS-DOS 6.2 の EMM386.EXE は、
/DPMIを付けないと VBM98 が使う機能(VCPI)を提供しません
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)、D88 形式(対応予定)、BKDSK の HDB 形式(対応予定)
- メニューからブランクディスクを作る機能(ご要望をいただいています。検討中)
zip に入っている VBM98.DOC は、PC-98 で読める説明書(Shift-JIS)です。詳細は README(PC-98 では VBM98.DOC)を参照。
v0.1.17
v0.1.16 からの変更。実機で報告された「メニューが表示されたまま固まる」件の修正です。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。エミュレータではこの現象そのものが起きないので、直ったかどうかは実機では未確認です。
直したこと
-
CTRL + GRPH + HELP のメニューや、CTRL + GRPH + STOP の終了の確認が、表示されたままキーを受け付けずに固まる件(PC-9821Ap2、MS-DOS 6.2、EMM386.EXE の下。v0.1.14 から v0.1.16)
v0.1.16 でいただいたログから、次のことが分かりました。
- 実機の BIOS は、キーボードからキーを 1 つ受け取るたびに、キーボードの入出力の LSI に決まった値を書いています(キーボードへの応答にあたります)
- VBM98 は、ホットキーのキー(と、離したときの符号)を自分で受け取って捨てていますが、この応答をしていませんでした。そのあと、キーボードがデータを送らなくなっていました(CAPS キーを押しても LED が変わらなかったのも、キーボードが止まっていたためと見ています)
-kbdprobeの 1 段め(同じ値を書き直す)だけで、キーボードが動き出していました
そこで、VBM98 がキーを自分で受け取ったときには、BIOS と同じ応答をするようにしました。メニューや確認の行を出すときにも、念のため同じ書き込みをします。メニューを開かないホットキー(リセット、スクリーンショット)のあとにも効きます。
何バイトめで止まるのか、時間で止まるのか、という細かい仕組みは分かっていません。
試していただける方へ
メニューや終了の確認が固まっていた環境で、オプションを付けずに(-log だけは付けていただけると助かります)同じ操作をして、固まらなくなったかどうかを教えてください。
VBM98 -fdd0 GAME.HDM -log VBM98.LOG
- 固まらなくなっていれば、それだけお知らせいただければ十分です
- まだ固まる場合は、
-logと-kbdprobeを付けて同じ操作をし、固まったら 1 分半ほど待ってからキーを押して、ログを送ってください(前回のログから、2 段めの立て直しまでに 1 分ほどかかると見ています)
これまで問題なく動いていた機種でも、ホットキーとメニューの動きに関わる変更です。ホットキーのあとキー入力がおかしくなった、という場合もお知らせください。
動作環境
- 80386 以上の PC-98x1(ノーマルモード)、MS-DOS(リアルモードか、VCPI のある EMM の下)、XMS ドライバ。空きコンベンショナルメモリ 256KB 以上、拡張メモリ 700KB 以上。イメージをメモリに読み込むには、さらに 1 枚あたりイメージの大きさぶん
- MS-DOS 6.2 の EMM386.EXE は、
/DPMIを付けないと VBM98 が使う機能(VCPI)を提供しません
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)、D88 形式(対応予定)、BKDSK の HDB 形式(対応予定)
- メニューからブランクディスクを作る機能(ご要望をいただいています。検討中)
zip に入っている VBM98.DOC は、PC-98 で読める説明書(Shift-JIS)です。詳細は README(PC-98 では VBM98.DOC)を参照。
v0.1.16
v0.1.15 からの変更。実機で報告された「メニューが表示されたまま固まる」件を調べるための版の 2 つめです。この版でも、その件は直っていません。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。実機では未確認です。
v0.1.15 の実機の結果(報告)
PC-9821Ap2(MS-DOS 6.2、EMM386.EXE の下)で、CTRL + GRPH + HELP のメニューと CTRL + GRPH + STOP の終了の確認が、v0.1.15 でも表示されたまま固まりました。いただいたログから、次のことが分かりました。
- 本体は止まっていません。キーが来るのを待ち続けています
- 割り込みの受け口は正常です(キーボードの割り込みは開いていて、行き先も BIOS のまま)
- 固まっている間、キーを押しても、キーボードからのデータが本体に 1 度も届いていません
キーボードからの受信が止まっている、という所までは決まりました。何が止めたのかは、まだ分かっていません。
変わったこと
- ログに、キーボードまわりの記録を足しました(
-logを付けたときだけ): ゲームがキーボードの入出力ポートに書いた値、キーボードから最後に届いたデータ、ホットキーを離すのを待つ処理がどう終わったか。受信が止まったのが、ホットキーを押した直後なのか、メニューを出す処理の間なのかを見分けるためです - 調査用のオプション
-kbdprobeを足しました: これを付けると、メニューでキーが来ないまま待ちが続いたときに、キーボードの受信を 2 段階で立て直してみます(1 段めは受信の設定を書き直す、2 段めは BIOS にキーボードの初期化をさせる)。どちらのあとでキーが届くようになったかをログに書きます。付けなければ、何もしません
試していただける方へ
メニューや終了の確認が固まった環境で、次のように試していただけると助かります。
VBM98 -fdd0 GAME.HDM -log VBM98.LOG -kbdprobe
-logと-kbdprobeを付けて起動し、同じ操作(CTRL + GRPH + HELP か CTRL + GRPH + STOP)をする- 固まったら、キーに触らずに 30 秒ほど待つ(その間に
-kbdprobeが 2 段階の立て直しを試します。かかる時間は機種で変わります) - そのあと、ESC か数字のキーを何度か押してみる。メニューが反応したら、そのまま操作して終了する。反応しなければリセットする
- どちらの場合も、ログのファイルを送ってください
余裕があれば、-log も -kbdprobe も付けずに起動して同じ操作をしたとき、固まるかどうかも教えてください(前回お願いした点です)。
ご要望について
「メニューから名前を付けてブランクディスクを作りたい」というご要望をいただきました。検討します。この版には入っていません。
動作環境
- 80386 以上の PC-98x1(ノーマルモード)、MS-DOS(リアルモードか、VCPI のある EMM の下)、XMS ドライバ。空きコンベンショナルメモリ 256KB 以上、拡張メモリ 700KB 以上。イメージをメモリに読み込むには、さらに 1 枚あたりイメージの大きさぶん
- MS-DOS 6.2 の EMM386.EXE は、
/DPMIを付けないと VBM98 が使う機能(VCPI)を提供しません
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)、D88 形式(対応予定)、BKDSK の HDB 形式(対応予定)
zip に入っている VBM98.DOC は、PC-98 で読める説明書(Shift-JIS)です。詳細は README(PC-98 では VBM98.DOC)を参照。
v0.1.15
v0.1.14 からの変更。実機で報告された「メニューが表示されたまま固まる」件を調べるための版です。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。実機では未確認です。
変わったこと
- メニューや確認の行でキーを待っている間の、キーボードまわりの状態をログに書くようにしました:
-logを付けて起動したときだけ、ログのファイルにkey waitで始まる行が入ります(割り込みコントローラの状態、キーボードの受信の状態、キーボード割り込みの行き先、BIOS のキーバッファまわり)。待ち始めたときと、状態が変わったとき、待ちが長く続いたときに書きます - キーの待ち方を変えました: BIOS の「キーが来るまで待つ」機能に任せず、「キーが来ているか」を繰り返し聞く形にしました。待っている間の状態を書き残すためです。操作は変わりません
v0.1.14 の実機の結果(報告)
- PC-9821Ap2(MS-DOS 6.2、EMM386.EXE の下)で、市販ゲーム 2 本が動き、ゲームがディスクを読む間のホストのディスクアクセスがほぼ無くなりました(イメージをメモリに読み込む仕組みが実機で働きました)
- 同じ機種で、CTRL + GRPH + STOP の終了の確認の行が読めるようになりました(v0.1.11 の修正)
- 同じ機種で、CTRL + GRPH + HELP で開くメニューと、CTRL + GRPH + STOP の終了の確認が、表示されたままキーを受け付けずに固まります。未解決です。エミュレータでは、同じ書き方の EMM386.EXE の構成でも再現せず、原因は分かっていません。この版で直っているかどうかも分かりません
試していただける方へ
メニューや終了の確認が固まった環境で、次の 2 つを試していただけると助かります。
- いつもどおり
-logを付けて起動し、同じ操作(CTRL + GRPH + HELP か CTRL + GRPH + STOP)をする。固まったら、10 秒ほど待ってから何かキーを 2、3 回押し、そのあとリセットして、ログのファイルを送ってください。固まらなくなっていた場合も、そのログが手がかりになります -logを付けずに起動して同じ操作をし、固まるかどうか
VBM98 -fdd0 GAME.NFD -log VBM98.LOG
前の版でお願いした 2 点(音が途切れていたソフトで途切れが消えたか、20 行のテキスト画面でメニューを開いて閉じたときに文字が崩れなくなったか)も、分かれば教えてください。
zip に入っている VBM98.DOC は、PC-98 で読める説明書(Shift-JIS)です。
動作環境
- 80386 以上の PC-98x1(ノーマルモード)、MS-DOS(リアルモードか、VCPI のある EMM の下)、XMS ドライバ。空きコンベンショナルメモリ 256KB 以上、拡張メモリ 700KB 以上。イメージをメモリに読み込むには、さらに 1 枚あたりイメージの大きさぶん
- MS-DOS 6.2 の EMM386.EXE は、
/DPMIを付けないと VBM98 が使う機能(VCPI)を提供しません
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)、D88 形式(対応予定)、BKDSK の HDB 形式(対応予定)
詳細は README(PC-98 では VBM98.DOC)を参照。
v0.1.14
v0.1.13 からの変更。ディスクを読む間の音の途切れへの対策と、実機の報告を受けた修正です。動作確認は PC-98 エミュレータ(NP21/W と DOSBox-X)の上で行っています。実機では未確認です。
変わったこと
- ディスクイメージをメモリに読み込むようにしました(ディスクを読む間に FM 音源の音が途切れる件。PC-9801RA2 からの報告): ドライブに入れたイメージを丸ごと拡張メモリ(XMS)に読み込み、ゲストがディスクを読むときにホストのディスクにアクセスしません。イメージを RAM ディスクに置くと途切れなかった、という報告を受けたものです
- 要る拡張メモリは、1 枚につきイメージファイルの大きさぶん(2HD で 1.2MB から 1.4MB)。空きが足りないドライブは、これまでどおりファイルから必要なセクタだけを読みます。切り替えは自動で、オプションはありません
- 起動時に、ドライブごとに
reading the image into memory(メモリに読み込む)かread from the file as needed(ファイルから読む)を表示します - 起動とディスク交換のときに、イメージ 1 枚ぶんの読み込み時間だけ待ちます
- ゲストの書き込みは、これまでどおり、その場でイメージファイルに入ります(セーブなど書き込みの間は、これまでと同じです)
- 80 桁 × 20 行のテキスト画面のときに、ホットキーで開くメニューの文字と、閉じたあとの画面の文字が崩れる件(EPSON PC-586MV の N88-BASIC(86) 3.0 からの報告。MS-DOS なら CTRL + f・6 で同じ状態): メニューとファイル選択を 25 行・80 桁で出し、閉じるときにゲストの行数・桁数へ戻すようにしました。テキストのスクリーンショットも、画面と同じ 20 行(1 行 20 ライン)で撮ります。NP21/W で再現し、開く前と閉じたあとの画面が同じになることを確認しています
- ディスクを読んでいる間に押したキー・離したキーが落ちる件: ディスクの処理の間に来たキーを控えておき、ゲストへ戻るときに順に渡すようにしました。ディスクを読みながらキーを待つソフトで、キーが押されたままに見えることがありました
- BIOS のワークエリアの置き方を変えました: ゲストの割り込みベクタと BIOS ワークエリア(メモリの先頭 4KB)を、ゲストが動いている間は実メモリの同じ場所に置きます。BIOS がワークエリアを物理番地で読み書きしても、ゲストのものが使われます。NP21/W の内蔵 BIOS で、キーの状態を直接読むソフト(イース1 など)にキーが効かなかったのが直りました。実機でも動きが変わる変更です(ディスクを読むたびに 4KB の入れ替えが入ります)
- エミュレータ(NP21/W)で、メニューやファイル選択を閉じたあとも絵が残る件を直しました
v0.1.13 の実機の結果(報告)
- PC-9821Cr13 で、AutoMATE を常駐させたホスト(FreeDOS(98)、MS-DOS 6.2、Windows 98 の DOS)のどれでも、ゲストでキーが効くようになりました
- 30 行 BIOS は、MS-DOS 6.2 がホストのときは効くようになりました。Windows 98 の DOS がホストのときは、INT 18h の入口が見つからず(起動時に
INT 18h is hookedの警告が出ます)、ゲストでキーが連打された状態になります。この版でも未解決です
試していただける方へ
- 音が途切れていたソフトで、この版で途切れが消えたかどうかを教えてください。起動時の表示が
no room in extended memoryのときは、拡張メモリの空きが足りず、これまでと同じ動きになっています - 20 行のテキスト画面でメニューを開いて閉じたとき、文字が崩れなくなったかを教えてください
- zip に入っている
VBM98.DOCは、PC-98 で読める説明書(Shift-JIS)です
VBM98 -fdd0 GAME.NFD -log VBM98.LOG
動作環境
- 80386 以上の PC-98x1(ノーマルモード)、MS-DOS(リアルモードか、VCPI のある EMM の下)、XMS ドライバ。空きコンベンショナルメモリ 256KB 以上、拡張メモリ 700KB 以上。イメージをメモリに読み込むには、さらに 1 枚あたりイメージの大きさぶん
- MS-DOS 6.2 の EMM386.EXE は、
/DPMIを付けないと VBM98 が使う機能(VCPI)を提供しません
まだ動かないもの
- 機種判別フラグの PC-9801VM 化、サウンド BIOS の INT D2h の登録、ホストの CPU が例外にせずに実行してしまう V30 の並び(Pentium 以降の RDTSC など)
- DMA の転送(対応予定)、D88 形式(対応予定)、BKDSK の HDB 形式(対応予定)
詳細は README(PC-98 では VBM98.DOC)を参照。