きよくらの備忘録

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

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:個人の感想です