MSX2 版ドラゴンクエストII スムーズスクロール パッチ
====================================================
MSX2 版ドラゴンクエストII の ROM イメージに当てると、フィールドや町を
1 ドットずつ滑らかにスクロールするようになるパッチです。あわせて、
歩き出しの反応、NPC の多い町での処理の重さ、V9968 への対応などを改善します。
ゲームの ROM イメージは含まれていません。各自で用意してください。
非公式のパッチです。使用は自己責任でお願いします。
■ 使い方
python dq2patch.py 元のROM [-o 出力] [--r800] [--names 王子,王女] [--debugpw ファイル]
例: python dq2patch.py DQ2.rom
→ 同じフォルダに DQ2_smooth.rom (512KB) ができる
- Python 3.8 以上が必要です (標準ライブラリだけで動きます)
- 元の ROM は MSX2 版 (256KB) です。知られている 3 種類の吸い出しの
どれでも使えます (当てる前に、最後の修正版と同じ中身にそろえます)
- できる ROM は 512KB の ASCII8 メガ ROM です。エミュレータでは ROM の
種類に ASCII8 を指定してください。実機では、512KB の ASCII8 に対応した
フラッシュカートリッジなどが必要です
オプション
--r800 turbo R では、最初の一歩から R800 で動く版にします
・turbo R: 起動時に「1」を押していれば Z80 のまま
(押していなければ、起動した時点で高速モードのランプが点きます)
・turbo R 以外: 起動時に「2」を押していれば、最初の一歩から
Panasonic FS-A1WX / FS-A1WSX / FS-A1FX の高速モードにします
・キーを押さなければ、turbo R 以外では通常版と同じ動きです
--names 仲間 2 人の名前を固定します (かな 4 文字まで。濁点・半濁点も
1 文字。例: --names アーサー,ナナ)
--debugpw デバッグ起動用の復活の呪文を入れます (下の「デバッグ起動」)
■ 主な変更点
スクロール
- V9958 (MSX2+、turbo R) では、フィールド・町・城の中を 1 フレームに
1 ドットずつ滑らかにスクロールします。1 歩 16 フレームで、歩き続けると
途切れずに進みます (元の MSX2 版は 8 ドットずつ切り替わり、1 歩 25〜28
フレーム)
- NPC は背景と一緒に 1 ドットずつスクロールします
(NPC 自身の歩きは、元のゲームと同じ半マス単位です)
- 1 ラインに 5 人以上並んだときは、表示する人を毎フレーム入れ替えて
点滅で見せます (V9958 は 1 ラインに 8 枚までしかスプライトを出せないため)
速さと操作の反応
- 6502 の命令をまねる補助ルーチンの呼び出し (約 3,100 か所) を、同じ働きの
Z80 命令に直接置き換え、NPC の移動処理も Z80 で書き直しました。
人の多い町でも、一歩ごとに引っかかることがほとんどなくなります
- 方向キーを短く押しても一歩進みます
- 止まっている状態から歩き出すまでの待ちを短くしました
(平均 13 フレーム → 7 フレーム)
- 窓の表示・消去を速くしました
メッセージの速さ
- ゲーム中いつでも F1 / F2 / F3 で、戦闘のメッセージの速さを
おそい / ふつう / はやい に切り替えられます
VDP の自動判定
- 起動時に VDP を調べて、使い分けます。ROM は 1 本で全部に対応します
・V9938 (MSX2): 元のゲームと同じ動き (スクロールは元のまま)
・V9958 (MSX2+ / turbo R): 滑らかなスクロール
・V9968 カートリッジ (I/O 88h): V9968 に表示します。1 ラインに 16 枚まで
スプライトを出せるので、1 ラインに 8 人まで点滅せずに出せます。本体の画面には案内
(メッセージの速さの選択中の位置つき) を出します
・V9968 内蔵の機種: 本体の VDP として使います
・MSX1 で V9968 カートリッジがない場合は、必要な機器の案内を出して止まります
そのほか
- タイトル画面の盾の上に出ることがあったごみを消しました
(V9968 で見えていました)
- 効果音を鳴らし始めるときの処理の誤りを直しました
(最後の修正版の吸い出しと同じ直し)
■ デバッグ起動
--debugpw でファイルを指定すると、タイトル画面で F1 を押しながら 1〜4 の
数字キーを押したとき、その番号の復活の呪文を自動で入力して再開します。
タイトル画面とは、ドラゴンクエストII のロゴと、START・CONTINUE などの
選択肢が表示されている画面のことです。
ファイルは UTF-8 のテキストで、呪文は 4 つまで、各 52 文字までです。
1 つの呪文を何行かに分けて書けます。空行か、コメント (# から行末まで)
だけの行で次の呪文に移ります。空白は無視します。
例 (よく知られた呪文):
# 1
ゆうて いみや おうきむ
こうほ りいゆ うじとり
やまあ きらぺ ぺぺぺぺ
ぺぺぺ ぺぺぺ ぺぺぺぺ
ぺぺぺ ぺぺぺ ぺぺぺぺ ぺぺ
呪文を指定しなければ、デバッグ起動は何もしません。
ゲームを進めて呪文を集めるほかに、好きな状態 (レベル・持ち物・
いる場所など) の復活の呪文を作ってくれるサイトもあるので、
それを利用してみるのもよいと思います。
■ 動作確認
- エミュレータ openMSX: Panasonic FS-A1ST (turbo R)、FS-A1WX、
C-BIOS MSX2 / MSX2+ / MSX1 + V9968 拡張
- 実機: Panasonic FS-A1ST (turbo R) の Z80 / R800、
V9968 カートリッジ (I/O 88h)、Panasonic MSX2+ の高速モード (3 倍速改造機)