メガデモ [ MEGADEMO ] ダウンロード
メガデモ普及委員会

< Top Page >
<This site is Japanese. An English translation TOP PAGE is here.>

特別企画
リアルDOSデモが見てえんだよ!コノヤロー(笑)
-古典DOSのデモの起動方法-

2003/09/07作成
2004/12/15更新
[Part 1] これは何のページなんだ?
これは、Crest demoscene page(デモシーン関連のニュース、リポートなどを提供しているページ)の「how to run classic dos demos」ページを翻訳(異訳!)したものです。いまどきDOSデモが見たい人もあまり多くないと思いますが、昔のDOS/Vで遊んだゲームなどもこの方法で起動できるようになる可能性がありますので、参考にしてみてください。
私の英語力は中学1年生よりも劣ると思われるので(笑)、いくらか省略したりしているので、疑わしいところは元ページで確認してください。(明らかに翻訳がまちがっていたら指摘してくれるとウレピー(<古っ!)です。)
Crest demoscene page
how to run classic dos demosのページ
※翻訳にあたり翻訳元サイトのCrest demoscene pageの許可を得た上で掲載しています。Thanks Crest!
[Part 2] ピ〜ッ!翻訳開始!

how to run classic dos demos
古典DOSデモを動かすにはPCの環境をととのえる必要があります。(ここでいう古典デモとは90年代半ばのデモをさします)
まずPCのハードウエアですが、ISAスロットにサウンドカードgravis ultrasound (gus)とsb16が刺さっていることが理想です。(DOS上でPCIスロットのサウンドカードでは、混乱をまねきます)GUSには1MBのRAMが乗っている必要があります。GUS、SB16は当時のイントロで音を出すための標準的な環境です。
また、グラフィックカードはnvidiaのものが必要です。(voodooグラフィックカードはいくつかのビデオモードを支援しないのであまり使われません。)
上記以外に、et6000やs3 trio64グラフィックカードでもunivbe aka scitechディスプレイドクターを使用して見ることが出来ます。(scitechディスプレードクターはグラフィックカード上でサポートしていないビデオモードをソフトウエアでサポートします。)

DOSのバージョンは6.2xか7.1を使用します。(このDOSバージョンはFAT32フォーマットをサポートします)
参考までに私のconfig.sysとautoexec.bat(msdos 7.1)を掲示します。

config.sys:
SHELL=C:\NDOS.COM @C:\DOS\NORTON\NDOS.INI /P
COUNTRY=049,,C:\DOS\COUNTRY.SYS
FILES=70
BUFFERS=20
FCBS=1,0
STACKS=0,0
[Menu]
menuitem=Himem+UMBPCI, Himem/UMBPCI mit CD & Maus (628K)
menuitem=LessMemory, Himem ohne ANSI/Maus (609K)
menuitem=EMM386+CDROM, Himem/EMM386 mit CD & Maus (623K)
[Himem+UMBPCI]
DEVICE=C:\DOS\HIMEM.SYS /NUMHANDLES=66 /TESTMEM:OFF
DEVICE=C:\DOS\UMBPCI.SYS /I=E000-EFFF
DEVICEHIGH=C:\DOS\CDROM.SYS /D:MSCD000
DEVICEHIGH=C:\DOS\ANSI.SYS
LASTDRIVE=G
DOS=HIGH,UMB
[LessMemory]
DEVICE=C:\DOS\HIMEM.SYS /NUMHANDLES=66 /TESTMEM:OFF
LASTDRIVE=G
DOS=HIGH
[EMM386+CDROM]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\DOS\EMM386.EXE RAM MIN=32768 X=B000-B7FF D=64
DEVICEHIGH=C:\DOS\CDROM.SYS /D:MSCD000
DEVICEHIGH=C:\DOS\ANSI.SYS
LASTDRIVE=G
DOS=HIGH,UMB



ANSIドライバーを利用すると2k以上のメモリを、universal atapiのCD-ROMドライバーを利用すると5k未満のメモリを消費します。command.comの替わりにndos.comを使用しています。4dosはdosと同じコマンドフォーマットを提供します。(編集注:4dosとはndos.comと同意と考えてよい)
通常は[himem+umbpci]または[emm386+cdrom]の設定で使用しています。UMBPCI(homepage)は586以上のマシンでemm386を使用せず、アッパーメモリブロックを確保できます。しかしそれはチップセットに依存するので、ドキュメントをよく読んでください。
`LessMemory`コンフィグレーションは一部のデモでコンベンションメモリーの大きさにより起動できない場合に利用します。


autoexec.bat:
SET INTERWAVE=C:\ULTRASND\IW.INI
SET IWDIR=C:\ULTRASND
SET ULTRASND=240,5,7,11,11
C:\ULTRASND\IWINIT.EXE
SET ULTRADIR=C:\ULTRASND
SET BLASTER=A220 I7 D1 H5 P330 T6
SET SOUND=C:\SB16
SET MIDI=SYNTH:1 MAP:E
C:\SB16\SBMIXER -d -g30 -c20 -b10 -q
SET PATH=C:\;C:\DOS;C:\ULTRASND;C:\DOS\NORTON;E:\FILES\PCPACK
SET NU=C:\DOS\NORTON
SET DIRCMD=/P
SET TEMP=E:\
goto %config%
:Himem+UMBPCI
LH MSCDEX /D:MSCD000 /L:H /M:4
LH CTMOUSE
LH KEYBOARD
goto ende
:LessMemory
KEYBOARD
goto ende
:EMM386+CDROM
LH MSCDEX /D:MSCD000 /L:H /M:4
LH CTMOUSE
KEYBOARD
goto ende
:ende
SET CONFIG=
ALIAS /R ALIASES
PROMPT=(%%@dosmem[K]K) $p$g

'CTMOUSE'のマウスドライバー(シリアルマウスを使用)は3k以上メモリを、'KEYBOARD'のキーボードドライバー(ドイツ製キーボード!)は1k未満のメモリを消費します。
'SBMIXER'はawe64までのsoundblasterを検知しsb16の初期設定とmixerをセットアップします。sb16のポート220h、irqは7、hdmaは1です。私のsb16は安価なクローンなのでリアルhigh dmaをサポートしていません。
ultrasound cardはgus pnp(interwave)です。(もしgusのサウンドボードのみの場合は、sbのエミュレーションのためportアドレスを220hにする必要がある)いくつかのデモでirqが7以上で問題が出る場合はirqを5にしてみる。
最後の2行はndos用の設定なので、command.comまたは4dosを使用している場合は削除してよい。紹介したドライバ類(ansi, cdrom, mouse, UMBPCI v3.62)と、sbmixerは私のdos toolboxに入っています!

windowsでdosデモを起動する
windows環境ではdosデモをみることは難しい。ここではいくつかの方法を紹介する。リアルモードを要求されないいくつかのDOSデモを見ることは可能である。DOSデモを起動した時に'runtime error 200'が出るならば、CPUを減速するツール'turbo'(download)することで起動できることがある。(これについての詳細はさらに下を見てください)
もし、あなたのPCが高速であれば、dosエミュレータであるdosbox(linux他多くのプラットフォームに移植されている)を利用することもできる。dosboxは規則的にバージョンアップしており、すでに多くのdosデモ作品が起動する(gusサウンドにも対応している)。

Win9x:
--------
msdos.sysを以下のようにする:

;圧縮されたHDはいくらかのスペースを取ります
DblSpace=0
DrvSpace=0

;high memoryにcommand.comをロードします(必要であればdrvspace.binも)
LoadTop=1

;DOS7でリアルモードを必要とするDOSデモを起動するならばこの設定が必要です。
;windowsを起動すると、コマンドプロンプトになります。
BootGUI=0

config.sysに以下の2行を追加します。(私の例の場合):

;自動ロードを無効にすることにより、メモリ消費を減らします。
dos=NoAuto

;win9xであればifship.sysはupper memoryに配置します。これはdos 7では必要ない
devicehigh=c:\windows\ifshlp.sys

notes:win98ではemsメモリーをemm386のnoemsパラメータを付けることにより無効にします。そして上の例のように'auto ram'を使用します。ドイツ製のwin95osr2(aka win95b)のhimem.sysはパッチをあてないと40kbのメモリーを消費します。パッチはネットから簡単にみつかるでしょう。

Win2000/XP:
----------------
することはあまりありません。win2k上ではDOSのエミュレーションなので、soundcardなどのドライバーを使用することが出来ません。しかし、VDMSoundGUSemu32を利用することで、sb16とgravis ultrasoundが利用できます。
メモリの設定は(emm,dpmiなど)_default.pifファイルで変更することができます。

config.ntは以下の行があること:
rem 可能であればhighメモリにdosをロードします
dos=high, umb
devicehigh=%SystemRoot%\system32\himem.sys

rem EMMに'loadhigh'、'devicehigh'コマンドのときupper memoryに格納するように設定します。

EMM = RAM
files=20

「ランタイムエラー 200」
pentium200より速いマシンでデモを起動すると'runtime error 200'となることがあります。これらのデモはほとんどturboまたはborland pascal 7で作られています。理由はコンパイラーのバグです。その問題を解決するにはいくつかの方法があります。ひとつはBIOS設定でCPUのL1,L2のキャッシュを無効にすることでいくつかのデモは動くでしょう。他の方法は、PC減速ユーティリティのmo'sloなどを利用してデモを起動する方法があります。現在のPCでtritonの'crystal dream 2'を起動するには上記バグを修正するのが唯一の起動方法です。バグを修正するには'tppatch'という小さなプログラムを使用します。(tppatch)(編集注:tppatchとは200エラーとなるpascal 7で作成されたexeファイルのパッチプログラム 使用方法はtppatch [プログラム.exe])これは、実行ファイルが圧縮されていない場合に限ります。圧縮されている場合は、cyberwareのunpacker(cup)を使用して.cup拡張子に解凍することができるので拡張子を変更してパッチをあてます。その後'unlite'というプログラムで再度圧縮exeファイルに戻します。実行ファイルが1つではない場合があります。(例:proximaのデモ'static hype'は1つのexeファイルだが.dtaという実行ファイル含まれている)その場合デモを実行する前にすべてのファイルにパッチを当てます。(編集注:この辺の翻訳は適当ですのであしからず・・・)

msdos 6.2xならば'RdosUMB'をよく利用します。これを使用することによりemm386をupper memoryブロックに配置できます。多くのメモリーを消費するデモでこの設定が必要となります。私がmsdos6.2からmsdos7.1に切り替える前まで、RdosUMBを利用したhimem設定でcdromや他のドライバーをロードした場合でも618kの空メモリーを確保できました。
記事中で紹介したツール類は(moslo,tppatch,cup,unlite,RdosUMB...)はここからダウンロードできます。
[Part 3] 翻訳後のぼやき
いやー疲れた。英語は相変わらず嫌いだな!まあそれは置いといて、やっぱりDOSデモはGUSサウンドカードと、nvidiaのグラフィックボード、あとはいかにメインメモリーを確保するかに尽きる!どうにかXP上でDOSデモが動かないかと、翻訳でもあるようにVDMsoundやgusemuなんかでチャレンジしたこともあった。(一部のDOSデモはこれで動くぞ!)やはり、DOSデモを見たいなら当時のマシンを構築するのが一番だと思いました。
おわり
2004/12/15 元ページ更新にあわせ更新

< Top Page >

苦情・感想随時受付
supli@mail.goo.ne.jp