きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

Windows 10でWizardry Collectionをやってみる:(5) BCFをフリーの互換DOSで動かしてみる

前回の続きです。 とりあえずWizardry Collectionに同梱されている1~7までをWindows 10で動作させることは成功しました。 しかしBCFとCDSについては2021年の現在において、著作権的にクリアな状態でDOSの起動ディスクを準備するのはそれなりのハードルになる場合が多いと思います。 そこでこれを回避するための二つのアプローチを考えてみました。

  • フリーの互換FreeDOS(98)を使ってエミュレータで実行
  • DOSBOX+Xを使って実行

結論からいうと、BCFについては双方のアプローチで成功しました(そしてCDSについてはいまだ成功せず)。

まずはFreeDOS(98)+Anex86で動かしてみた手順のメモです。

FreeDOS(98)+Anex86でWizardry CollectionのBCFを動かす

FreeDOSはOSSのDOS互換OSで、もともとはPC/AT用ですが有志の方の手によりPC-98で動くFreeDOS(98)が公開されています。

f:id:kiyokura:20210910072634p:plain

今回はこれを使ってAnex86を起動しBCFを実行する方法を試みました。

ただしAnex86はWizardry Collectionに同梱のものではなく、別途入手したv2.78を使いました*1

やること

やることはざっくり以下です:

  • PC-9801用のFreeDOSで起動するFDイメージを入手
  • 98用のHDDイメージを作成し必要ファイル一式をコピー
    • Wiz Collection同梱のBCF_CDS.hdiはAT用イメージのため98用のDOSで起動した場合は読み書きできないので、98用のHDDイメージにファイル一式を用意する必要がある
  • autoexec.batとfdconfig.sys(FreeDOS版のconfig.sys)の書き換え
  • Anex86にマウントして実行

必要なもの

必要なものは以下です:

手順

1.FreeDOS(98)の起動ディスクの準備
  • ダウンロードしたFreeDOS(98)の起動FDイメージ fd98_2hd.imgをわかりやすい名前(例:fd98_boot_bcf.img)でコピーしておく
2.HDDイメージの準備
  • 空のHDDイメージを作成
    • Anex86を起動し、新規にHDDイメージを作成します
      • HDD1の[New]ボタンから作成
      • 名前はわかりやすく BCF_CDS_98.hdi にしました
      • サイズはとりあえず既定の40MBで作りました(多分10MBでも問題ないはず)
      • f:id:kiyokura:20210910004646p:plain
  • HDDのフォーマット
    • Anex86をFreeDOS(98)で起動し空のHDDをフォーマットします
      • ディスクをマウントする際、形式をすべての形式にして.img形式のファイルが選択できるようにしてやる必要があります
    • FreeDOSにはBTNPART.EXEというにはHDDフォーマット用のユーティリティーが含まれているのでそれを使います
    • f:id:kiyokura:20210910005005p:plain
3.BCFとCDSのファイルを転送
  • DiskExplorerを使って、 Wiz CollectioのHDDイメージ(BCF_CDS.hdi)内の BANE ディレクトリと CDS16 ディレクトリを丸っと BCF_CDS_98.hdi に転送する
    • BCF_CDS.hdiはAT形式なので詳細設定を開いてATモード読み込む必要があります
    • BCFだけ動かす場合でもCDS16ディレクトリ配下に必要なファイルがあるのでそちらも必要になります(実際はマウスドライバだけでいいと思いますが)
  • f:id:kiyokura:20210910005155p:plain
4.FDイメージ内のファイルの書き換え
  • autoexec.batfdconfig.sys(FreeDOS用でのconfig.sys)に、Wizardy CollectionのBCF用のそれぞれのファイルの必要個所を転記して整えます(例は後述)
  • ファイルが整ったら起動イメージ(fd98_boot_bcf.img)をDiskExplorerで開いてコピーします
autoexec.batの例
@ECHO OFF
set TZ=JST-9
c:
cd bane
playbane
fdconfig.sysの例
DOS=High,UMB
FILES=20
LASTDRIVE=Z
BUFFERS=6
DEVICE=FDXMS286.SYS
device=C:\BANE\kjp.bin
device=C:\cds16\vmouse.sys
device=C:\BANE\muse2.drv -d450 -k0
5.ディスクイメージをセットして起動
  • Anex86でFDD1に作成したブートイメージ(fd98_boot_bcf.img)、HDD1にBCF_CDS_98.hdiをセットして起動
  • あっさり起動しました
    • f:id:kiyokura:20210910005706p:plain
    • f:id:kiyokura:20210910005722p:plain

まとめ

  • FreeDOS(98)の起動FDイメージ+最終バージョンのAnex86 (v2.78) 用いてWizardry Collection版のBCFを起動させプレイすることができた
  • この手法を用いることでPC/AT版のDOS起動ディスクを所持または作成する手段を持たない人でもWizardry Collection版のBCFを実行できる
  • FreeDOSのHDDイメージから起動して実行することも可能だと思うが、雑に試したところBCFが起動できなかった
    • fdconfig.sysやautoexec.batは合わせたつもりだが…
    • 気が向いたらもうちょっと試してみるかもしれない

*1:同梱の1_5用のものでは起動はしたけど音が出なかった。6_7用のものはPC/AT互換機として動くにFreeDOS(98)では起動しない

Windows 10でWizardry Collectionをやってみる:(4) 7: Crusaders of the Dark Savantを動かす

前回からの続きで、次はWizardry Collectionのうち7: Crusaders of the Dark Savant(以下CDS)の動作確認を行います。 基本的にはBCFでの手順と同じですがCDSはバイナリ書き換えも不要であり、この環境で動かすにあたっては割と素直です。

 

手順例

事前に準備するものは前回と同じなのでそちらを参照のこと。

 

1. DOS起動ディスクイメージをCDS起動専用にコピーする

あらかじめ用意しておいた起動ディスクイメージを適当な名前でコピーします。 任意のファイル名で問題ありませんが、CDS専用にするので CDS_BOOT.fdi 等わかりやすい名前がいいと思います。

 

2.config.sysとautoexec.batをFDイメージにコピー

前項でコピーした起動ディスク(CDS_BOOT.fdi)をDiskExplorerで開き、インストールパスのForCDSまたはForCDS_Meにあるconfig.sysautoexec.batをコピーします。 Windows Me以降(XP~8.1も含む)の場合はForCDS_Meで、Windows 98 SE以前の場合はForCDSをコピーしてください。

f:id:kiyokura:20210907064912p:plain

 

3.エミュレータの起動とディスクイメージのセット

6_7用のAnex86を起動し、FDD1に作成したブートディスク、HDD1にBCF/DCS用のhdiファイルを設定します。

f:id:kiyokura:20210906000141p:plain

f:id:kiyokura:20210907065008p:plain

 

4.マウス設定の変更

Anex86の設定で、マウスの設定を変更しておきます。こうしておかないと、ウィンドウモードで起動した場合にエミュレータ上でのマウスが実カーソルとずれます。 f:id:kiyokura:20210906000541p:plain

※あとで気が付きましたが、ALT+Backspaceで後から切り替えもできますので必須ではなかったりします

 

5.実行

設定が完了したら[Start]でエミュレータを起動。問題なくCDSが起動しました。

f:id:kiyokura:20210907065025p:plain f:id:kiyokura:20210907065043p:plain f:id:kiyokura:20210907065108p:plain

9801版は256色のDOS/V版や9821版と異なり16色なので気持ちさみしい感はありますが、ゲームをプレイしてるとあんまり気にならなくなる気はします。

 

まとめ

今回のまとめ

  • Wizardry Collection 版BCFとCDSの起動にはPC/AT版DOS起動ディスクのイメージが必要
  • Anex86のマウス設定はいじっておくほうが良い
  • Windows 10 64ビット版でWizardry Collection 版CDSは起動・プレイ可能だった

次にやる予定

  • PC/ATのDOS起動ディスクが入手できない状態でBCFの実行を試みる

Windows 10でWizardry Collectionをやってみる:(3) 6: Bane of the Cosmic Forgeを動かす

前回からの続きで、次はWizardry Collectionのうち、6: Bane of the Cosmic Forge(以下BCF)と7: Crusaders of the Dark Savant(以下CDS)が動作するか試してみようと思います。 まずはBCFから。

TL;DR

ちょっと長くなるので要点をまとめておきます。

  • Wizardry CollectionのBCFとCDSをプレイするには何らかの形でPC/AT用のDOS起動ディスクが必要
  • さらにBCFは現代の一般的なCPUでそのままでは動かないのでパッチを充てる必要がある*1
  • 上記を満たせばWindows 10でプレイ可能

 

Wizardry Collection のBCFとCDSの実行にはPC/AT版のDOS起動ディスクが必要

Wizardry Collection のBCFとCDSの実行には、パッケージに同梱されてないものとして 『PC/AT版のDOS起動ディスク』を別途準備する必要があります。

初めて見たとき、DOSの起動ディスクが必要なのは理解できるものの、98用のアプリを実行するのにPC/AT版のものが必要っていうのはなんでや?という点が腑に落ちませんでした。が、冷静に考えると以下であると想像できます:

  • 9801版のBCFとCDSの実行に別途MS-DOSが必要
  • MS-DOSはマイクロソフトの著作物なのでパッケージに同梱して配布できない
  • 2001年当時、すでにPC/AT互換機のWindowsが一般的でありPC-98版のMS-DOS起動ディスクをユーザーに要求するのは非現実的
  • 逆に当時のPC/AT互換機はFDDを備えているのが一般的でありDOS起動ディスクをユーザーが準備するのは容易

そのためWizardry Collectionでは、BCFおよびCDS用にPC/ATのDOS起動ディスクで起動した後PC9801用のソフト実行できるようにカスタマイズしたAnex86をパッケージングしたのでしょう。

 

2021年現在、如何にしてDOS起動ディスクを準備するか

この方式は当時の状況としては十分理にかなった方式だったと思いますが、さすがに20年たった2021年ではなかなかに厳しいです。 現在ではFDDがついているマシンはほぼ存在しないですし、あってもWindows 10 ではDOS起動ディスクを作成する機能が削除されています。また3.5インチ2HDディスクもすでに販売されていません。

私は幸い、昔作成しておいたWindows 98 SEの起動ディスクがあったり稼働できるWindows XPマシンが手元にあり新規に作成できたりしたので問題になりませんでしたが、そうでない場合はちょっとしたハードルになりそうです。

とはいえ全く無理筋というわけではないとは思っていて、例えばWindows 7や8.1のメディアとライセンスを持っているのであればVirtual BOX等を利用して仮想FDDイメージとしで作成できそう*2ですし、オークション等を利用すれば古いこれらのインストールメディアを合法的に比較的安価に入手はできるように思います。

(余談ですが、フリーの代替DOSのFreeDOSを軽く試してみたのですが今のところうまくいっていません)

以下は、手元のWindows XP機で作成した実FDを用いた例になります。 また今回は実FDからイメージを作成するにあたってUSB接続のFDD*3を利用しました。

 

手順例

具体的な手順を紹介します。起動イメージ作成のところは少しマニュアルと手順を変えてあります*4

またあとで詳しく記述しますが、BCFについては実は現代の一般的なPCではマニュアルの通りの手順では起動しません。それを回避するためにひと手間必要になります。

 

0.BCF・CDS共通で用意するもの

BCFとCDSで別々の起動ディスクを用いますが基本的にやることは同じです。共通でまず必要なのは以下です。

  • PC/AT用DOS起動ディスクのイメージファイル(前述のとおり)

実FDで起動ディスクを準備した場合は、マニュアル通りにAnex86を操作して実FDからイメージファイルを作成してください。 今回私はWindows XPで作成した起動ディスクをイメージ化して利用しました。

また今回紹介する手順で実行する場合、

が必要になります。

 

1. DOS起動ディスクイメージをBCF起動専用にコピーする

あらかじめ用意しておいた起動ディスクイメージを適当な名前でコピーします。 BCFとCDSで中身が別物になるので、わかりやすい名前にしておくとよいと思います(例:BCF_BOOT.fdi)

 

2.config.sysとautoexec.batをFDイメージにコピー

前項でコピーした起動ディスク(BCF_BOOT.fdi)をDiskExplorerで開き、インストールパスのForBCFまたはForBCF_Meにあるconfig.sysautoexec.batをコピーします。 f:id:kiyokura:20210907064719p:plain

ForBCFまたはForBCF_Meのどちらを使うかはイメージを作成した元のOSによって決まります。Windows Me以降(XP~8.1も含む)の場合はForBCF_Meで、Windows 98 SE以前の場合はForBCFを使います*5

 

3.実行バイナリの書き換え

実は9801版BCFはMMX命令を持つCPUでは動作しないという既知の不具合があるためそのままでは起動しません。エミュレータの設定変更でも回避は可能ですが実行ファイルのバイナリの一部を書き換えるのほうがのちのち楽*6なのでやってしまいます。 何らかのパッチツールなど利用してもいいのですが、ほんの1バイト書き換えるだけなので今回は直接バイナリエディタでやってしまいました。 ※対象ファイルまたはBCF/CDSインストール済みHDDイメージ(BCF_CDS.hdiはバックアップを取っておくのをお勧めします)

 

3-1.対象ファイルの抜き出し

DiskExplorerでインストールパスにある、BCF/CDSインストール済みHDDイメージ BCF_CDS.hdiを開きます。 ただし、このファイルは98用ではなくPC/AT用のイメージとなっているためDiskExplorerで開く際には[詳細]からフォーマットに[AT形式]を選択してから領域を選択する必要があります。 f:id:kiyokura:20210906001221p:plain

f:id:kiyokura:20210905234457p:plain

書き換えの対象となるBCFの実行ファイルはBANE\WROOT.EXEです。 f:id:kiyokura:20210905234743p:plain

バイナリエディタで書き換えるためにこのWROOT.EXEを一旦ホスト側にコピーしておきます。

 

3-2.バイナリの書き換え

書き換え対象のアドレスは 001F37h で、値は BB0ABB84 に書き換えます。 (画像はBzバイナリエディタ) f:id:kiyokura:20210905235130p:plain

書き換え個所の参考:http://miyako.asablo.jp/blog/cat/pc98/

 

3-3.対象ファイルの書き戻し

書き換えたWROOT.EXEをBCF_CDS.hdiに書き戻して、この工程は終了です

 

4.エミュレータの起動とディスクイメージのセット

6_7用のAnex86を起動し、FDD1に作成したブートディスク、HDD1にBCF/DCS用のhdiファイルを設定します。

f:id:kiyokura:20210906000141p:plain

f:id:kiyokura:20210906001513p:plain

 

5.マウス設定の変更

Anex86の設定で、マウスの設定を変更しておきます。こうしておかないと、ウィンドウモードで起動した場合にエミュレータ上でのマウスが実カーソルとずれます。 f:id:kiyokura:20210906000541p:plain

 

6.実行

設定が完了したら[Start]でエミュレータを起動すると……無事、BCFが起動しました! f:id:kiyokura:20210906000818p:plain

音もちゃんと鳴りますし、いい感じです。

 

まとめ

今回のまとめ

  • Wizardry Collection 版BCFとCDSの起動にはPC/AT版DOS起動ディスクのイメージが必要
  • BCFを実行するためにバイナリにパッチの適用を行った
  • Windows 10 64ビット版でWizardry Collection 版BCFは起動・プレイ可能だった

次にやる予定

  • CDSを動作させてみる

*1:厳密にはAnex86の設定を変更することでも動くがあと腐れないので書き換えを選択

*2:試してないのですが理屈的にはどうにでもなりそうには思います

*3:今回の使用法であれば3モードである必要はなく一般的な2モードで十分です

*4:現在では実FDDを使って何かしたら操作するよりも、一旦作成したイメージをこねくり回すほうが楽だからという理由です

*5:ちなみにMe用と95~98 SEまで用のconfig.sysとautoexec.batの違いはhimem.sysとそれを使った設定の有無です。Me以降(XPや7も含む)で作成したDOS起動ディスクにもhimem.sysが含まれていないので場合分けしているようです

*6:個人の感想です

Windows 10でWizardry Collectionをやってみる:(2) シナリオ#1~#5を動かしてみる

前回はWizardry CollectionをWindows 10にインストールしてみました。 今回は実際に動くか試してみます。まずはシナリオ#1 ~ #5からやってみました。

概要

PC-9801版シナリオ#1~#5はMS-DOS等のOSが別途不要でFDから直接起動するタイプのアプリケーションです。 またこれらは製品のディスク(マスターディスク)でブートした後、「デュプリケートディスク」を作成してそちらを使って実際にゲームを行う形をとります。ゲームの進行状況をセーブするのもデュプリケートディスクです。

Wizardry Collectionでは#1~#5それぞれのマスターディスクとあらかじめ作成されたデュプリケートディスクのFDイメージが収録されています。これらを同梱のPC-9801エミュレータAnex86を使って実行する形をとります。

Anex86自体もう10年くらい更新がないうえにWizardry Collectionに同梱されているのは2001年とさらに古いバージョンではありますが、とりあえず一度は動作確認が取れている(はず)状態なのでまずはこれで実行してみます。

シナリオ#1を実行してみる

一旦はマニュアル通りにシナリオ#1を起動してみます

  1. インストールで作成されたショートカット Scenario#1~#5 を実行、 もしくはインストール先にある 1_5\anex86.exe を直接起動*1
  2. FDD1に Wizardry1.FDI をセットし[スタート]で仮想マシンを起動
  3. 画面のメッセージに従い、FDD1のイメージを Wizardry1_dup.FDI に交換

f:id:kiyokura:20210904000719p:plain f:id:kiyokura:20210904000818p:plain f:id:kiyokura:20210903232941p:plain f:id:kiyokura:20210903233015p:plain f:id:kiyokura:20210903233649p:plain

あっさり実行できました。 元が軽くシンプルなゲームなのでこのバージョンのエミュレータでも特に問題や不便は感じませんでした。

シナリオ#2~#5を実行

同様にシナリオ#2~#5を実行してみましたが、特に問題なく起動し実行できているようです。 f:id:kiyokura:20210903235924p:plain f:id:kiyokura:20210903235959p:plain f:id:kiyokura:20210904000028p:plain f:id:kiyokura:20210904000052p:plain

別のエミュレータで動かしてみる

同梱のAnex86で動作自体にはまったく問題は感じられませんしたが、もうちょっと便利機能……例えばステートセーブとロードの機能なんかがあるとべりかもしれません*2

ということで、ステートセーブ&ロード機能もあるエミュレータ、T-98 NEXTで動作するか試してみました。 使用したのは以下のサイトからダウンロードできる T98NEXT20100525版 です。 http://akiyuki.boy.jp/t98next/

結論から言うと、サクッと動きました。 Anex用のFDイメージもそのまま利用でき、特に悩むところなどもなしでした。 f:id:kiyokura:20210903235130p:plain

マスターで起動してからデュプリケートディスクに入れ替えるのも少し面倒くさくはあるので、そういう意味でもこの手の機能があるエミュレータで実行するほうが楽でいいように思いました。

まとめ

今回のまとめ

  • Wizardry Collectionの#1~#5は、Windows 10 64bit版(21H1)上で付属のAnex86を用いてマニュアル通りの手順で素直に動作した
  • Wizardry CollectionでインストールされるFDイメージ WizardryX.fdi を使って別のエミュレータ『T-98 NEXT』でもプレイすることができた
    • ステートセーブ&ロード機能など考えると新しめの多機能エミュレータのほうが便利

20年前の製品、それもパッケージにNT非対応と明示してある32bit Windows9x系向けのプログラムですが、特に悩んだりすることもなく素直に動作してくれました。Windowsの互換性ってすごい。

次の予定

  • 6および7をマニュアル通りに実行してみる

*1:直接起動する場合 6_7\anex86.exe のほうを起動しないように注意

*2:Wizはリアルタイムセーブされるゲームですが、実際に実機でやる場合はFDに書き込む動作が遅くラグがあるので『やってもうた!』と思った瞬間にディスクを抜けばやばい状態でセーブされるのを防ぐことができましたが、エミュレータだとそうは言効かなかったり等々のシチュエーションが考えられる

Windows 10でWizardry Collectionをやってみる:(1) インストール編

物置を物色していたらWizardry Collectionが出てきたので、Windows 10にインストールして遊んでみたくなりました。

Wizardry Collection とは

Wizardry Collection は2001年に発売されたゲームソフトで、PC-9801版のWizardry #1 ~ #5および 6~7をWindows用の98エミュレータとともにバンドルしたパッケージです。 f:id:kiyokura:20210902224643p:plain

動作プラットホームはWindows 95/98/Me。パッケージにはNT系OS*1は動作保証なしと書かれています。

久しぶりにパッケージを開けてみたところ中身はそろっているようで以下のものが入っていました:

  • インストール用CD-ROM
  • マニュアル冊子
  • 呪文表(#1 ~ #5)
  • CDSのマップ(=マニュアルプロテクトキー)& BCFのマニュアルプロテクトキー+呪文表

このパッケージの開発元はLocusなのですが、ここはもともと出版社だけあってか同梱冊子類もけっこう気合が入ってるんですよね。読み物としても面白かったりします。

このパッケージに収録されている6(BCF)と7(CDS)はUWA版やSteam版のようにマニュアルプロテクトが解除されいないため、プロテクトキー表は必須になります*2

 

インストールしてみる

パッケージを発掘したものの、20年前のWindows 9x用のソフトが現代のWindows 10(それも64bit版)で果たして動作するのか、そもそも正常ににインストールができるのか未知数です。やってみないと何とも言えないところですが、Windowsの互換性は頭おかしい(誉め言葉)レベルだし、万が一バンドルされてるエミュレータが動かなくても別のエミュレータにイメージ載せ変えることができれば動作させる余地があるはず……という希望を胸に試してみました。

今回試した環境は、Windows 10 64bit版(21H1)です。

インストーラの実行

CD-ROM内のWizardry Collection.exeを実行するとインストーラーのウィザードが普通に起動しました。そしてあっさりインストールは成功。

基本的には特にオプションは規定値のままで進めましたが、インストール先だけ変更しました。既定のままだと書き換えが必要なファイルもProgram Files配下においてしまうため、なんとなくめんどくさいためです*3f:id:kiyokura:20210902233441p:plain

インストール先の確認

インストール先のフォルダを見てみると、おおむね以下が入っていました。

  • 9801エミュレータ(anex86)
  • シナリオ1~5のFDイメージ
  • 6~7のHDDイメージ

細かいところはまた後程見ていこうと思います。

その他余談

  • インストールされるのはエミュレーター(anex86)とイメージファイルなので、実行にレジストリやパス設定は無関係
    • なのでフォルダ事どこかにコピーしてもそのまま動く(別フォルダにxcopy後にアンインストールしても問題なし)
  • そもそもインストーラー経由でインストールする必要すらない
    • インストーラーの実行ファイルはLHAの自己解凍Wizardry Collection.exe
    • 何らかのアーカイバソフトを使って直接ファイルを抽出可能
    • むしろこちらのほうがレジストリ等々を汚す必要がなくていいかもしれない
    • f:id:kiyokura:20210902235305p:plain

まとめ

今回のまとめ

  • 2001年発売のWizardry CollectionはWindows 10 64bit版(21H1)に素直にインストーラー経由でインストールが完了した
  • インストールされるのは以下の模様
    • PC-98エミュレータのAnex86本体(1~5用のものと6~7用のものの計2種類*4
    • シナリオ#1~#5のそれぞれのマスタディスクとデュプリケートディスクのFDイメージファイル(fdi形式)
    • 6~7のインストールされたHDDイメージ(hdi形式)
    • 6~7を起動するためのautoexec.batとconfig.sys
  • インストーラーを実行せずとも Wizardry Collection.exe からLHA自己解凍形式対応のアーカイバソフト(explzh等)を用いて必要なファイルを抽出するもとも可能

次の予定

  • まずはシナリオ#1 ~ #5がプレイできるか試す

*1:2001年当時だとWindows NT 4.0やWindows 2000を指していると思われる

*2:2021年現在、紛失してしまったりや中古でインストール媒体のみ入手したりした場合でも、例えばSteam版を買うとPDFの形で合法的に入手することはできます

*3:64bit版Windowsに明らかに32bitのアプリをインストールするのに、規定値が「Program Files(86)」ではなく「Program Files」になっているあたりにもそこはかとなく何かを感じとった模様

*4:2種類のanex86がインストールされる件の詳細は、6~7を実行してみる際にでも詳しく触れようと思います