Wizardry Crusaders of the Dark Savant2017年08月27日 22:05

CDS 9801版
ちょっと古い話だけど(いつもの事)忘れないように覚書。

PC-9801版のWizardry Crusaders of the Dark SavantはPentium機では起動しないというバグがある。
PC-9821版はこのバグが改善されているので、PentiumなPC-98(9821しかないはずだけど)ではPC-9821版を入手しないとゲームができない。

このバグの話、巷ではDOS/V版にあったバグがPC-9801版にも引き継がれていてPC-9821版で改善されたということになっているけど、厳密には間違い。
DOS/V版のPentiumで起動できないバグはPC-9801版ではしっかり修正されている。
では、なぜPC-9801番でもPentiumでゲームが起動しないかというと、これが9801版に特有の構成が原因だったりする。
DOS/V版、PC-9801版、PC-9821版3つのメインプログラム(DS.EXE)を比べると、PC-9801版のみプログラムが暗号化されている。
この暗号化はプログラムの実行時の最初にメモリ上で自己書き換えにより復号化される。
何故こんな事をしているのかと言えば、(想像だけど)コピー対策以外考えられない。
Crusaders of the Dark Savantはマニュアルプロテクト(ゲーム起動時にパスワードを入力するタイプ)の為、プログラムを少し書き換えてパスワード入力部分をスキップさせてしまえばプロテクトが簡単に無効になる。
※実際、Ultimate Wizardry Archivesに収録されている版はその手法でパッチ済みであり、パスワード入力しなくてもゲームが遊べるようになっている。
その書き換え場所を特定できなくするためにPC-9801版はプログラムを暗号化している(のであろう)。

で、Pentium機ではこの復号化に失敗する。

ゲーム発売当時、アスキーに申し出ればパッチを入手できたというのだけれど、このパッチは復号化したDS.EXEそのものではないかと想像している(今となっては手に入れる手段がないので確認できないけど)

ちなみに、PC-9801版のCrusaders of the Dark Savantが実行できる環境で、ゲーム起動→メモリ上でDS.EXEが復号化された時点でメモリダンプ→有効なヘッダ512バイトを付与するとPentium機でも実行可能なDS.EXEを生成することは可能。(先頭の画像は9801版をPentium133MHzの9821na13で起動したところ)

ただし、ヘッダの値はPC-9821版のDS.EXEを参考にしないと多分生成できないので、どのみちPentiumなPC-98でCrusaders of the Dark Savantをプレイするには9821版のCrusaders of the Dark Savantが必要という話。

そういえば、セーブデータのフォーマットははDOS/V版、PC-9801版、PC-9821版全て同じみたい。
データエディタであるCosmic Forge* Editorで普通に書き換え可能。
少なくとも、9801版のセーブを9821版で読み込んで続きをプレイなんてのは普通にできる。

この点、前作のBane of the Cosmic ForgeではDOS/V版、PC-9801版でセーブデータの互換性がなかった。(PC-9801版はCosmic Forge* Editorで書き換えできない

CDS 9821版
こっちは9821版。
写真だと判りにくいけど、256色だから絵がきれい。(右下コインの部分なんかが9801版(16色)と比べると違いが判る)

コメント

_ (未記入) ― 2023年06月27日 17:44

よろしければ、具体的に作り方を教えてください。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
答えは「MSX」です。

コメント:

トラックバック

このエントリのトラックバックURL: http://miyako.asablo.jp/blog/2017/08/27/8660163/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。