DOSBOXを高解像度V-TEXTにする方法

 非常にマニアックな記事といえばその通り。

 DOSエミュレーターの中でDOSBOXは既設のディレクトリーをマウントできるなど、扱いやすい特徴があるものの、こいつを日本語環境にして、つまりDOS/V化して使うとなると、

  • DBCSベクター周りの実装に誤りがある
  • 日本語キーボード(106とか)に対応していない

という点で困ることになる(DOSBOXの開発部隊はゲームに関係しないところはとことんやらない主義)。まあ、日本だとNEC PC-9800シリーズと互換機が絶対的多数で、少数FMR/FM-TOWNSがあった程度で、IBM系の資産がある人はPS/55やJ-3100を使っていたとか、HP-95/100/200LX、InterTop、DOSモバを使っていた層が大部分であるのだけど。

 まず、DBCSベクターについては、DR DOS以外の互換DOS(例えばPTS-DOS)で共通する問題で、こいつはDISPV (Lepton氏、http://www.hmsoft.co.jp/lepton/software/dosv/dispv.htm)に付属するvesapat.exeを/jpオプション付きで起動することで回避できる。

 次に、日本語キーボードについては、Windows版ではパッチが当たったものがあるものの、*BSD/Linuxだと諦めて英語キーボードにするというのが現実的な解である。

単純にDOS/V

 話が逸れた。単純にDOSBOXをDOS/V化するだけであれば、フォントドライバーとディスプレイドライバー、言語切り替えソフトを用意してやれば良い。これらソフトウェアを挙げると、

が一般的なところであろう。フォントドライバーとしてはFONTX2 (Lepton氏、http://www.hmsoft.co.jp/lepton/software/dosv/fontx.htm)が一般的であるものの、autoexecで起動できる点から代わりとして軟式で公開されているFONTNX (https://www.nanshiki.co.jp/software/index.html?etcdos)を使用した。また、DISPVの代わりのディスプレイドライバーとしてはDspVV (Torry氏、https://www.vector.co.jp/soft/dos/hardware/se012544.html)がある。DISPVはグラフィックモードへ対応していないため、グラフィックモードを使用する場合はDspVV/DspSSを使うことになる。

 なお、通常のDOSを日本語化するのであれば、http://izumilib.web.fc2.com/drdos/docs/drinst.htmlを参照するとよい。

フォント入手先

 なお、この他にフォントが必要である。最低限必要なのは

  • ANK 8x16 dot
  • ANK 8x19 dot
  • 日本語16x16 dot

の3種類である。新たにX11用のbdfフォントを変換してもよいものの、入手元を下記する。(出水は自作、東雲などのX11用は以前変換したもの)

izumilib.web.fc2.com izumilib.web.fc2.com izumilib.web.fc2.com izumilib.web.fc2.com

また、平木敬太郎氏のサイトでもFONTX2形式のフォントを公開している。

hp.vector.co.jp

設定

 これらのフォントファイルを適当なディレクトリー(ここではc:\font)に置いた後、fontn.iniを作成する。下記は出水ゴシック16ドット(JIS2004版、izmg1604.fnt)とANKフォントを使用した例である。

[CODE]
[FONT] ; Install font file.
UNVHN16X.FNT
UNVHN19X.FNT
izmg1604.fx2

ここまで準備できれば、

C:\> c:\path\vesapat.exe /jp
C:\> c:\path\fontnx.exe /p=c:\font\
C:\> c:\path\dispva.exe /hs=on /fc=0
C:\> c:\path\chej vt // jpでもよい

とすることでVGA画面で日本語が表示できるようになる。必要に応じこの辺の内容をdosbox-0.74.confの[autoexec]の中に入れてやれば、起動時に自動的に日本語環境にすることができる。

高解像度V-TEXT化

 ここまでが前フリである(長かった……)。

 実はDOSBOXはディスプレイアダプターを変えられるようになっており、標準ではsvga_s3である。DISPVやDspSSのようなSVGA用のディスプレイドライバーで800x600 pxで使用する分にはこの設定のままでよいものの、DOSBOXで使用できるディスプレイアダプターに適合するディスプレイドライバーがあればSVGA以上の解像度を扱うことができる。

 S3に関してはLepton氏のDISPS3が存在するものの、確認したところうまく行かなかった。市販ソフトのDOS/Vスーパードライバーズ/DOS/Vスーパードライバーズ32の中にもS3用ドライバーがあるものの、所有していないので確認できていない。

 その他のディスプレイアダプターとしては、hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbeがあり、この中でSVGA以上の解像度を提供するのはsvga_s3, svga_et3000, svga_et4000, svga_paradiseである。この中でフリーなディスプレイドライバーが存在するのはS3を除くとsvga_et4000である。

 ET4000にはChaN氏(http://elm-chan.org/)の作成したドライバーがあり、下記で入手できる。

www.vector.co.jp

こいつをディスプレイドライバー(DspVVの方がよい)の後にTSRとして起動してやることで大画面環境を得ることができる。