HYPERSPACE UNIVERSE NEWS

Linux、Ubuntu、ネタ、SF、海外のニュース、その他諸々を扱うBLOG

dosemuもオススメ

2010-05-21 15:08:47 | PC リナックス
DOSBoxはロングファイルネームには非対応らしく、最近のファイルはコンパイルが通らなかった。
(設定ファイルの設定により対応できるのかは、不明。)

DJGPPのgxx(C++コンパイラ)で、コンパイルしようとしたら色々と問題が出た。
libstdcxxがリンク出来ない。
LIBSTD~2などと変名されているので-lSTD~2とオプション指定すればOKだが、DOSBox上だとキーボードから~が入力出来ない…。

いや、そもそもの原因は、ファイル名の問題。
純粋な8.3ファイル名形式のファイル名に、書き直す必要がある。
8.3ファイル名形式以外のファイル名を扱う全てで…。

面倒なので、違う問題解決方を探る事にした。
別のDOSエミュレーターdosemuを発見。


dosemuの特徴。
速い。
設定ファイルで、詳細の設定が可能。若干難しい。/etc/dosemu/dosemu.conf
ロングファイルネームも扱える。

DOSBoxの特徴。
多くの画面モードに対応している。
設定ファイルでの設定方法が分かりやすい。$HOME/.dosbox/dosbox-0.73.conf
8.3ファイル名形式を厳守。

これで、都合に合わせ使い分けられる。(今後DOSを使うかどうかは別として…。)
dosemuのグラフィックモードは、8ビット256色パレットモードと32ビットカラーモード対応。
DOSBoxはdosemuよりも多くに対応していて、16ビットや24ビットカラーモードにも対応している。

2~3日の間、DOSBoxを必死になって使っていた自分にとってみれば、dosemuは驚くほど速い。
(DOSBoxはほぼデフォルトで使っている。速度も古いPCのエミュレート状態だったのだろうか?。設定により変えられるのかは不明。)
【追記】DOSBoxのコンフィグファイル中のcycles=maxで処理速度が最大になる。デフォルトはcycles=autoだった。

Allegroのコンパイル時間、DOSBoxだと約半日、dosemuでは約2~3分でコンパイルが終了する。

メモ。
DJGPPのコンパイラは、go32-v2という32ビットDOSエクステンダを使って32ビットで動いている。
go32-v2はコンパイラに同梱されているが、go32-v2が必要とするcsdpmi*bは同梱されていない。

csdpmi*b.zipは、以下にあった。
http://www.delorie.com/pub/djgpp/current/v2misc/
csdpmi7b.zip が現在の最新。
(DJGPPのサイト。初めは気が付かなくて探し回った。)


dosemuでAllegroをコンパイルする時に、
out of memory allocating 65536 bytes after a total of ....
という、メモリー不足のエラーが出た。

以下のサイトを参考にして解決。
http://tinkering-is-fun.blogspot.com/


dosemuのDOS環境下の設定のconfig.sysを($HOME/.dosemu/drive_c/config.sys)
files=40
fcbs=40,0
shell=c:\dos\command.com c:\dos /e:2048 /p
[訂正、追記:2013-04-14] shellhigh=z:\command.com /e:2048 /p
とし、
dosemu自体の設定の/etc/dosemu/dosemu.confで、
$_dpmi = (0x10000)
とした。

収穫。
Allegroというマルチプラットフォーム2Dゲームライブラリがすごい。
DOS環境下でもLinux(X Window System)環境下でも、同じソースで同じ結果が得られる。

最新の画像もっと見る