﻿(UTF-8 Japanese Text)
------------------------------------------------------------------------------
        ドラゴンスレイヤー英雄伝説II 拡張セットアップメニュー

        for PC-8801SR/VA/PC-98DO Series
        Copyright (C) 2022 ＰＩ．

        Ver.2022.02.23
------------------------------------------------------------------------------
□概要

    このプログラムは、日本ファルコム(株)より1992年3月にPC-8801シリーズ向け
    最終作品として発売された「ドラゴンスレイヤー英雄伝説II」の起動処理に対し
    独自のメニューを付加し、以下の機能を実現するものです。


    ・サウンドボードII(PC-8801-23)対応機能

    ・サウンドボードIIのON/OFF選択機能

    ・拡張RAMのON/OFF選択機能

    ・CD-DAのON/OFF選択機能

    ・直接エンディング起動のON/OFF選択機能


□インストール

    同梱のED2ExtSetupMenu.exeを使用します。
    これはWindows 7 SP1以降(.NET Framework 4.6.1が動作する環境)で動作します。

    ED2ExtSetupMenu.exeを起動し、画面の指示に従って拡張子.d88形式のディスク
    イメージファイルをドラッグ＆ドロップしてください。自動的にディスクを判別
    し、必要なパッチ当てを行います。

    d88ファイルはシングルイメージ、マルチイメージ(複数の2Dディスクを一つの
    d88ファイルにまとめたもの)、どちらを用いても構いません。

    以下のディスクに対応します。

    ・起動ディスク(※)
    ・プログラムディスク
    ・イベントディスク1
    ・イベントディスク2
    ・シナリオディスク1(※)
    ・シナリオディスク2(※)
    ・シナリオディスク3(※)
    ・シナリオディスク4(※)

    (※)主にパッチ当てを行うディスク(これ以外のディスクに対しては、基本的に
        パッチ当てを行いません)


□起動

    パッチ当て後の「起動ディスク」をドライブ1にセットして、PC-8801SR/VAを
    リセットしてください。

    V2モード専用です。PC-8801FH以降の機種は、クロック8MHzにしてください。


□操作

    起動するとシステム環境をチェックし、拡張セットアップメニュー画面を表示し
    ます。

    拡張セットアップメニュー画面は以下のキーで操作します。

    [8]/[2]          ... カーソルを上下に移動
    [4]/[6]          ... カーソルを左右に移動
    [SPACE]/[RETURN] ... 現在の設定でゲームを起動

    キーボードの代わりにジョイスティックを使用して操作することもできます。
    ジョイスティックのいずれかのボタンを押すと、ゲームを起動します。


□サウンドボードII

    オリジナル製品版は以下のサウンドボードIIに対応しています。

    ・PC-8801FA/MAを含む標準搭載機(PC-8801MA2/MC/PC-88VA2/VA3/PC-98DO+)
    ・PC-8801FH/MH  + PC-8801-24オプションボード
    ・PC-8801FE/FE2 + PC-8801-25オプションボード

    拡張セットアップメニューにより、上記に加え、以下の環境にも対応します。

    ・PC-8801mkIISR/TR/FR/MR + PC-8801-23オプションボード

    また上記に加え、サウンドボードIIの有効化・無効化をメニューから視覚的に
    選択できます。


□拡張RAM

    オリジナル製品版はPC-8801mkIIMR以降の2HDドライブ搭載機に標準装備される
    拡張RAM128KBに対応しています。(最大256KBまで対応)

    拡張RAMが装備されている場合、戦闘シーンでディスクキャッシュ機能が働き
    「過去に戦闘したことのあるモンスター」であればディスクアクセスが省略さ
    れます。これにより、快適性が大幅に向上します。

    この拡張RAM使用機能は、オリジナル製品版で起動時に[ESC]を押すことにより
    無効化できます(マニュアル掲載なし)

    拡張セットアップメニューでは、この有効化・無効化をメニューから視覚的に
    選択できます。


□CD-DA

    オリジナル製品版はPC-8801MC model2または同等の拡張を行った環境で、BGMを
    FM音源に代わりCD-DAから演奏させることができます。

    このCD-DA使用機能は、オリジナル製品版で起動時に[SHIFT]を押すことにより
    無効化できます(マニュアル掲載あり)

    拡張セットアップメニューでは、この有効化・無効化をメニューから視覚的に
    選択できます。

    【注意】

    作者はCD-DA環境を保有していないため、正常に動作しないケースが出てくる
    可能性があります。その場合はご一報いただければ、内容によっては対処しま
    す。

    特に最終ボスを倒してからエンディングに移行するときに、CD-DA無効にして
    いるにもかかわらずCD-DAから演奏される可能性があります。その場合は次項の
    いきなりエンディング機能で回避してください。


□いきなりエンディング

    名前の通り、拡張セットアップメニューからエンディングプログラムを起動し
    ます。

    拡張セットアップメニューの各種設定が引き継がれます。


□実機エミュレータ・フロッピーディスクエミュレータでの動作

    2022年現在、5.25インチ2D/2DDフロッピーディスクメディアの入手は非常に難し
    くなっています。特に未使用未開封のものはプレミアがつき、相場感としては
    1000円/枚(10枚入りパッケージで1万円)という高値になっています。

    このような状態ではユーザーディスクのために2Dディスクを用意することも容易
    ではありません。同時に、将来にわたって稼働可能なPC-88の個数そのものが減少
    していくことも避けられません。特にPC-88VA系は様々な理由で経年劣化が激し
    く、2022年現在も稼働可能な実機は製造数に比べて極めて僅かになっています。

    このため必然的にWindows上などで動作する実機エミュレータや、仮に実機環境
    であってもFDX68/HxCなどのフロッピーディスクエミュレータの比率が高くなり
    ます。作者もPC-8801MAを稼働可能状態で維持していますが、実機使用のうち90%
    以上はFDX68を用い、フロッピーディスクレスで運用している状態です。

    こういった状況を踏まえ、拡張セットアップメニューもエミュレータで運用する
    ことを十分に考慮しています。具体的には以下の環境でオープニング～エンディ
    ングまでの通しプレイ、クリア確認を行いました。また、そのために必要となる
    パッチ当ても、ED2ExtSetupMenu.exeで併せて行うようにしています。

    (既に他のパッチが当たっているd88イメージに対しても、可能な限りオリジナル
    データへの復元と再パッチを行うよう配慮しています)

    [環境1]
    M88x5 (原作者cisc氏&改良者レッドナウ氏、d88イメージファイルで運用)

    [環境2]
    PC-8801MA + FDX68(Ver.1.2A、上記M88x5で使用したd88をfdxに変換して運用)


□動作の仕組み

    オリジナル製品版を起動すると、C000h～C0FFhにIPLが読み込まれます。この
    IPLによって、更に4000h～4BFFhにファースト・ローダーが読み込まれます。

    ファースト・ローダーはサウンドドライバを組み込み、最初のタイトルロゴを
    表示すると共に起動曲を演奏します。起動曲の演奏が終了するとセットアップ
    メニュープログラムに制御を移します。

    拡張セットアップメニューはIPLと、ファースト・ローダの冒頭部分を完全に
    置き換えます。具体的には起動ディスクのうち78トラック(これは未使用と
    思われ、すべてFFが入っています)を拡張セットアップメニューに割り当て、
    IPLは拡張セットアップメニューをロードする動作に変更しています。

    拡張セットアップメニューはA000h～ABFFhに配置され、上記の動作を行います。
    また、必要に応じてサウンドドライバや、サブCPU側6E00h以降に配置される
    独自コマンドハンドラルーチンに対して動的にパッチを当てます。

    パッチおよび、ワークエリアの「拡張RAMサイズ」「SHIFTキー押下フラグ」を
    セットした後、ファースト・ローダの途中に制御を戻すことで、目的とする動
    作を実現しています。


□エンディングについて

    起動ディスクは上記「動作の仕組み」で記述した内容に加え、エンディングを
    簡単に起動できるようになっています。以下、オリジナル製品版IPL冒頭のコード
    です。

    ; IPLはC000hに読み込まれる
    ORG  0C000h

    ; IPL先頭のコード
    LD   A,00h
    CP   01h
    DI
    LD   SP,9000h
    PUSH AF
    JR   Z,0C022h

    Z80アセンブラを理解できる方であれば「?」となる処理です。LD A,00hでA=00hと
    した後にA=01hかどうかを比較し、それにより条件分岐しているのです。このよう
    な条件分岐処理はこの後のファースト・ローダーでも随所に見られます。

    上記コードでA=01hのとき、エンディングを起動するようになっています。言い換
    えればLD A,00hをLD A,01hに変更すると、「いきなりエンディング」になります。

    実際の最終ボスクリア→エンディング移行では、次のような流れになっています。

    1)「ドライブ1に起動ディスクをセットしてRETURNを押してください」表示
    2)サブCPUの独自コマンドハンドラへコマンド00h(RESETコマンド)を送信
    3)C000hにドライブ1のIPLセクタを読み込む
    4)C000h=IPL先頭がLD A,00hかチェック(違っていればDISK ERROR)
    5)C000h=IPL先頭のコードをLD A,01hに書き換える
    6)C000hへジャンプ

    サブCPU側はファースト・ローダーの途中から、6E00hにコマンドハンドラが常駐
    する独自コマンド体系になっています。ここでコマンド00hのジャンプ先が0000h
    になっているため、このコマンドを送信するとサブCPUをソフトウェアリセットし
    ます。

    なぜこのコマンドが必要かというと、普通に起動ディスクで起動したときはサブ
    CPU側はサブシステムROMのコードで動いているため、上記1)と3)ではメインCPU
    から送信するコマンド体系が異なるためです。つまり上記2)がポイントで、これ
    によってメインCPU側・サブCPU側とも「ソフトウェアリセットっぽい」動作を実
    現しています。最初にこの仕組みに気づいたときは「なるほど！」と膝を打ちま
    した。

    このような作りとした理由としては、エンディングは後続プログラムがなく、
    ある意味独立したプログラムであるため、単体動作するよう作成した方が、何かと
    デバッグがやりやすいためだと思われます。

    他のソフトウェアでも同様のことが言え、例えば「Ys2」ではプログラムディスク
    の最初の方に存在するファイル名"TTLPRG"を"ENDPRG"に書き換えると、いきなり
    エンディングが起動します。(これはPC-8801mkIISR版だけでなく、同時期に移植
    された他の機種版でも同様のようです)


□Special Thanks

    上記[環境1][環境2]で記載した通り、合計2回のテストプレイを行いましたが、
    その際に以下の攻略サイトを参考にさせていただきました。この場を借りて感謝
    申し上げます。

    ファーゲスタ研究所
    http://flora.main.jp/

    TSAPPS開発室の息抜きゲ―ム部屋 - PC-98版英雄伝説2攻略
    https://www.tsapps.net/category/games/pc-game/legend-of-heroes2/

    また、UME-3より試作版プログラムについてレスポンス、アドバイスを頂いた他、
    極めて希少な拡張ボードである、PC-8801-31(CD-ROMインタフェースボード)を装着
    した場合の動作についてレポートを頂きました。ありがとうございます。

------------------------------------------------------------------------------

        End of File

------------------------------------------------------------------------------
