Skip to content

v0.1.20

Choose a tag to compare

@madscient madscient released this 14 Oct 08:12
· 30 commits to master since this release

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)を参照。