[戻る]

このページの内容はメディアを問わず転載OKです。

Ultima Quick Hack

ここは「何か変だ」とか「ちょっと気にいらない」ところを自分でなんとかしちゃおうってコーナーです。

必要なもの ・・・ バイナリエディタ
  1. PC版
    Ultima Collection(英語版)等に収録されているバージョンに対応しています。
    1. 失われたダンジョンを取り戻せ (Ultima II)
    2. 見知らぬ星で途方に暮れない為に (Ultima II)
    3. 懐古趣味? (Ultima IV)
  2. Apple][版
    発行/ローカス、発売/主婦の友社の「The Genesis of Ultima」に付属のApple][版のディスクイメージに対応しています。
    1. エイリアンに負けない為に (Ultima I) (情報提供:Lute Patious Dragonさん)
    2. カーソルキーで移動しよう (Ultima I , II) (情報提供:pelpelさん)
    3. 見知らぬ星で途方に暮れない為に (Ultima II)
    4. STRENGTHだけ強化できない (Ultima II) (情報提供:レトロゲーム@2ch掲示板 Ultimaスレ)
    5. レンジャーの亡霊? (Ultima III)
    6. Ztatsコマンドを快適に (Ultima III) (情報提供:pelpelさん)
    7. 初期状態のディスクを作ろう (Ultima III)
    8. ダンジョンマップの修復 (Ultima III)
    9. 水浸しのダンジョン (Ultima IV) (情報提供:pelpelさん, Daiさん)
    10. ダンジョンマップの修復 (Ultima IV)
    11. Ultima IVが起動できない (Ultima IV)
    12. 海の様子が何か変だ (Ultima IV) (情報提供:pelpelさん)
  3. PC-8801版
    個人的に作成したD88形式のディスクイメージでのみ動作確認しています。
    1. 女性が男性になってしまう (Ultima II)
    2. new 2112 A.D.から9,000,000 B.C.へのタイムドアが存在しない (Ultima II)
    3. new でたらめなタワーマップの修復 (Ultima II)
    4. 背景・キャラクタを変更してみる (Ultima IV)
    5. NPCキャラのDEXとINTが入れ替わっている (Ultima IV) (情報提供:レトロゲーム@2ch掲示板 Ultimaスレ)
    6. プレイヤー名をカタカナにする & NPCキャラのDEXとINTを入れ替える(その2) (Ultima IV) (情報提供:レトロゲーム@2ch掲示板 Ultimaスレ)
    7. ダンジョンマップの修復 (Ultima IV)
  4. PC-9801版
    ウルティマコレクション日本版(ウルティマコンプリート版含む)のディスクイメージに対応しています。
    1. 失われたダンジョンを取り戻せ (Ultima II)
    2. 冥王星の本当の姿[不完全版] (Ultima II)
    3. ダンジョンマップの修復 (Ultima III)
    4. 緯度と経度が逆になってる (Ultima IV)
    5. NPCキャラのDEXとINTが入れ替わっている (Ultima IV) (情報提供:レトロゲーム@2ch掲示板 Ultimaスレ)
    6. プレイヤー名をカタカナにする & NPCキャラのDEXとINTを入れ替える(その2) (Ultima IV) (情報提供:レトロゲーム@2ch掲示板 Ultimaスレ)
    7. ダンジョンマップの修復 (Ultima IV)
    8. 背景・キャラクタを変更してみる (Ultima IV, V)
    9. ゴースから力の言葉を聞き出す (Ultima V)
  5. X68000版
    個人的に作成したXDF形式のディスクイメージでのみ動作確認しています。
    1. 背景・キャラクタを変更してみる (Ultima IV, V)
    2. XM6でUltima IVがセーブできない (Ultima IV)
    3. セーブディスクのディスクイメージを作成する (Ultima IV)
    4. NPCキャラのDEXとINTが入れ替わっている (Ultima IV) (情報提供:レトロゲーム@2ch掲示板 Ultimaスレ)
    5. プレイヤー名をカタカナにする & NPCキャラのDEXとINTを入れ替える(その2) (Ultima IV) (情報提供:レトロゲーム@2ch掲示板 Ultimaスレ)
    6. ダンジョンマップの修復 (Ultima IV)
    7. 会話の不具合を修正する (Ultima V)

1. PC版

1.1. 失われたダンジョンを取り戻せ (Ultima II)

PC版のUltima IIでは何故かパンゲアにあったダンジョンがなくなっています。
ダンジョンが1つくらいなくなってもゲームには何の支障もないんですが、
ちょっと損した気分になるので修復しちゃいましょう。
  1. ファイルMAPX15が壊れているので直します。
    MAPX25MAPX15に上書きコピーします。
    地球にあるダンジョンは全て同じマップだったのです!!
  2. ファイルMAPX10をバイナリエディタで修正します。
    修正場所(バイト位置)修正内容
    21F(h)08(h)→24(h)
完成。

パンゲア
探索することはまず無いんだけど、やっぱりここにはダンジョンがないとね。(^_^)
[TOP]

1.2. 見知らぬ星で途方に暮れない為に (Ultima II)

プルート(冥王星)のダンジョンの最下層にはどこへ続いているか不明なはしごがあります。
うっかり降りてしまうと戻れなくなってしまいます。
魔法が使えればひょっとすると助かるかもしれないですが確かめる前に修正しちゃいましょう。
  1. ファイルMAPX85をバイナリエディタで修正します。
    修正場所(バイト位置)修正内容
    E11(h)10(h)→20(h)
    E77(h)20(h)→10(h)
    F11(h)20(h)→10(h)
完成。
[TOP]

1.3. 懐古趣味? (Ultima IV)

PC版のUltima IVは何か違うと思いませんか?
ちょっと古くさいけどApple][版みたいなほうが好みなんて方用のパターンファイルです。
  1. まずu4shapes.zip (5,536バイト)をダウンロードしてください。
    MD5 (u4shapes.zip) = 22d1c296105e32d732fd01ded97cb311
    SHA256 (u4shapes.zip) = a0921d9e6331c2d38e88b551df223f98e73c92a8ba031a8ad44cb94607868392
  2. 解凍するとSHAPES.EGAというファイルができるのでこれをUltima IVをインストールした ディレクトリに上書きコピーします。
完成。

Apple][風なUltima IV
こっちのほうが個人的には落着くなぁ。
けどタイトルだけは元のままです。
Ultima IV用のLZWエンコードツールを使ってSHAPES.EGAからSHAPES.EGZを作成して上書きコピーすればタイトル画面も変更できます。
[TOP]

2. Apple][版

発行/ローカス、発売/主婦の友社の「The Genesis of Ultima」に付属のApple][版のディスクイメージに対応しています。

2.1. エイリアンに負けない為に (Ultima I)

宇宙空間での戦闘でエイリアンが倒せなくなっています。
なんでもApple][のCPUの仕様変更による影響と言われているそうです。
このままではクリアできないのでいつもの調子で修正です。
情報提供:Lute Patious Dragonさん
  1. ファイルu1Master.dskをバイナリエディタで修正します。
    修正場所(バイト位置)修正内容
    14924(h)B1(h)→00(h)
    14AD5(h)47(h)→46(h)
    14AD7(h)B0(h)→45(h)
    14AD8(h)08(h)→43(h)
完成。

無敵のエイリアン
ビーム砲の整備不良?
これでは勝ち目がありません。
[TOP]

2.2. カーソルキーで移動しよう (Ultima I , II)

Ultima I,IIをカーソルキーで上下移動できるように改造しちゃいましょう。
情報提供:pelpelさん
  1. まずu12chgkey.zip (2,240バイト)をダウンロードしてください。
    MD5 (u12chgkey.zip) = 5e787d2c91ab45355886286a63918e00
    SHA256 (u12chgkey.zip) = 6d496a7823c97a32d448d1ffa580a4e6eaa59e5e88b40f9cc1288ee272fdf245
  2. 解凍するとU1CHGKEY.COMU2CHGKEY.COMというファイルができます。
    これをそれぞれUltima I,IIのディスクイメージのあるディレクトリへコピーします。
  3. U1CHGKEY.COMを実行するとu1Mater.dsku1player.dskが修正されます。
  4. U2CHGKEY.COMを実行するとu2Prog.dskが修正されます。
  5. u1player.dskにすでにキャラクタデータがある場合はパッチが当たらないとおもいます。
    そのときはu1player.dskをバイナリエディタで修正します。
    修正場所(バイト位置)修正内容
    13947(h)34(h)→33(h)
    13948(h)31(h)→39(h)
    1396D(h)37(h)→33(h)
    1396E(h)35(h)→38(h)
    13BF2(h)34(h)→33(h)
    13BF3(h)31(h)→39(h)
    13BF9(h)37(h)→33(h)
    13BFA(h)35(h)→38(h)
完成。

U1CHGKEY.COMおよびU2CHGKEY.COMは WSP version 1.50 により生成されました。
エイリアンに負けない為に」のパッチも一緒になっています。
Ultima Iの宇宙戦闘のキーは変更されていません。(;_;)

2015-05-23 追加
U1CHGKEY.COMおよびU2CHGKEY.COMが実行できない場合はこちらを使用してみてください。
同じ修正を行うu1chgkey.exeu2chgkey.exeが入っています。
修正したファイルは元のファイル名の拡張子の前に.NEWを追加した名前になります。
[TOP]

2.3. 見知らぬ星で途方に暮れない為に (Ultima II)

プルート(冥王星)のダンジョンの最下層にはどこへ続いているか不明なはしごがあります。
うっかり降りてしまうと戻れなくなってしまいます。
魔法が使えればひょっとすると助かるかもしれないですが確かめる前に修正しちゃいましょう。
  1. ファイルU2Galaxy.dskをバイナリエディタで修正します。
    修正場所(バイト位置)修正内容
    C315(h)10(h)→20(h)
    C37B(h)20(h)→10(h)
    C215(h)20(h)→10(h)
完成。

TO LEVEL 10? ここはどこ?
なんか変な場所に来ちゃったぞ?
あちこち探索してると更に深いレベルへの梯子が・・・
[TOP]

2.4. STRENGTHだけ強化できない (Ultima II)

Ultima IIはある場所である事をすればステータス値アップできますがApple][版ではSTRENGTHはキャラクタ作成時のまま上昇しません。
FIGHTERでSTRENGTHを高めに作成したキャラならなんとかなりそうですが、STRENGTHが低いままでは防具の使用に制限を受け先々非常に困ったことになります。
なので修正しておきましょう。
情報提供:レトロゲーム@2ch掲示板 Ultimaスレ
  1. ファイルu2Prog.dskをバイナリエディタで修正します。
    修正場所(バイト位置)修正内容
    6F4F(h)15(h)→14(h)
    6F5A(h)15(h)→14(h)
完成。

かなりガッカリなステータス
いつまでたってもSTRENGTH-20
POWER ARMOURは持ってるだけで装備できません(;_;)
[TOP]

2.5. レンジャーの亡霊? (Ultima III)

このディスクイメージはデータが一部壊れているようです。
森で戦闘になったときに現れる半分だけのレンジャーと溶岩のパターン中の緑がうっとうしいから修復しちゃいます。
1999-04-27 追加
セリフの間違い(GREY在住のウィザードさん)も発見されたので一緒に修復です。
1999-11-05 追加
さらに予言者さんもセリフを間違えていたのでこれも修復します。
1999-11-07 追加
FAWNのマップも一部データがおかしくなっていたので修正します。
  1. ファイルU3master.dskをバイナリエディタで修正します。
    • 溶岩パターンの修正
      修正場所(バイト位置)修正内容
      62C3(h)0A(h)→8A(h)
  2. ファイルU3player.dskをバイナリエディタで修正します。
    • 預言者のセリフ修正
      修正場所(バイト位置)修正内容
       881(h)E7(h)→E5(h)
       980(h)FF(h)→F6(h)
    • 半分だけレンジャーの修正
      修正場所(バイト位置)修正内容
      2B4D(h)FF(h)→02(h)
    • FAWNマップの修正
      修正場所(バイト位置)修正内容
      B2E5(h)11(h)→00(h)
      B3D5(h)28(h)→08(h)
    • GREYのウィザードのセリフ修正
      修正場所(バイト位置)修正内容
      E58A(h)FF(h)→C3(h)
完成。

オークの皆さんと戦闘中
はじっこで慎ましく半分になってるレンジャーさん。
すごくうっとうしいです(;_;)
[TOP]

2.6. Ztatsコマンドを快適に (Ultima III)

Ultima IIIでZtatsコマンドのスクロールをENTERからスペースキーに変更します。
これで不用意に移動することがなくなり操作性もアップです。
情報提供:pelpelさん
  1. ファイルu3master.dskをバイナリエディタで修正します。
    修正場所(バイト位置)修正内容
    363C(h)8D(h)→A0(h)
完成。
[TOP]

2.7. 初期状態のディスクを作ろう (Ultima III)

Ultima IIIのプレイヤーディスクに最初からモンスターがいるのは誰かの遊んだ続きを借りてるみたいで嫌じゃないですか?
そんな訳でまっさらな初期状態に戻してしまいましょう。
  1. まずu3player.zip (1,330バイト)をダウンロードしてください。
    MD5 (u3player.zip) = 787ec014cd8ade55f0e4eacf716d53e1
    SHA256 (u3player.zip) = 3b6a72794315d9b91a6be4a06bba237ab6c36713271f32f3dafc8486cfd222da
  2. 解凍するとU3PLAYER.COMというファイルができます。
    これをUltima IIIのディスクイメージのあるディレクトリへコピーします。
  3. U3PLAYER.COMを実行するとu3player.dskが修正されます。
完成。

U3PLAYER.COMは WSP version 1.50 により生成されました。
u3player.dskは未使用のものでないとパッチが当たりません。
レンジャーの亡霊?」のパッチ(u3player.dskの分だけ)も一緒になっています。

2015-05-23 追加
U3PLAYER.COMが実行できない場合はこちらを使用してみてください。
同じ修正を行うu3player.exeが入っています。
修正したファイルは元のファイル名の拡張子の前に.NEWを追加した名前になります。
[TOP]

2.8. ダンジョンマップの修復 (Ultima III)

Apple][版のダンジョンマップは一部矛盾した構造になっています。
PC(英語)版では修正されているようなので、それに合せて修正してしまいます。

2012-09-15 追記
モッキンボード対応版はPC(英語)版と同じマップになっていました。

ファイルU3player.dskをバイナリエディタで書き換えます。
  1. Dungeon of Snake - レベル2 - 下り梯子の修正
    修正場所(バイト位置)修正内容
    7B55(h)00(h)→20(h)
    7BD5(h)2D(h)→00(h)
  2. Dungeon of Snake - レベル4 - フロア中央の下り梯子を宝箱の小部屋に修正
    修正場所(バイト位置)修正内容
    7D87(h)A0(h)→80(h)
    7D88(h)20(h)→40(h)
    7D89(h)A0(h)→80(h)
    7D98(h)A0(h)→80(h)
  3. 次は、Dungeon of Fire レベル6 壁と一方通行の上り梯子の修正
    修正場所(バイト位置)修正内容
    9105(h)90(h)→80(h)
    9109(h)90(h)→80(h)
    9126(h)10(h)→00(h)
    912A(h)10(h)→00(h)
    9186(h)90(h)→80(h)
    9189(h)10(h)→00(h)
    91A8(h)90(h)→80(h)
    91BC(h)90(h)→80(h)
完成。

綻びだらけ
Dungeon of Fireのレベル6。 このフロアはあちこち壊れてます。

ここから先はオマケです。
Apple][版とPC(英語)版には他にもマップの違いがあるのですが、それも同じにしてしまいます。
比べてみると移植の際に調整したように見えます。
量も多いので気が向いた方だけどうぞ。

修正するのは同じU3player.dskです。
  1. Perinian Depths - レベル4 - トラップや宝箱のない箇所を作成
    修正場所(バイト位置)修正内容
    7416(h)04(h)→00(h)
    7417(h)04(h)→00(h)
    7419(h)06(h)→00(h)
    741A(h)06(h)→00(h)
    7427(h)04(h)→00(h)
    7429(h)06(h)→00(h)
    7461(h)04(h)→00(h)
    7471(h)04(h)→00(h)
    7472(h)04(h)→00(h)
    747E(h)06(h)→00(h)
    747F(h)06(h)→00(h)
    7491(h)03(h)→00(h)
    7492(h)03(h)→00(h)
    749E(h)40(h)→00(h)
    749F(h)40(h)→00(h)
    74A1(h)03(h)→00(h)
    74AF(h)40(h)→00(h)
    74E7(h)03(h)→00(h)
    74E9(h)40(h)→00(h)
    74F6(h)03(h)→00(h)
    74F7(h)03(h)→00(h)
    74F9(h)40(h)→00(h)
    74FA(h)40(h)→00(h)
  2. Dungeon of Fire - レベル8 - 北西の王のマークの部屋を宝箱とトラップに変更
    修正場所(バイト位置)修正内容
    9311(h)00(h)→06(h)
    9312(h)00(h)→40(h)
    9313(h)00(h)→06(h)
    9321(h)00(h)→40(h)
    9322(h)05(h)→04(h)
    9323(h)00(h)→40(h)
    9325(h)08(h)→00(h)
    9331(h)00(h)→06(h)
    9332(h)00(h)→40(h)
    9333(h)00(h)→06(h)
  3. Dungeon of Fire - レベル8 - 東北の部屋の梯子の横にトラップを追加
    修正場所(バイト位置)修正内容
    934E(h)00(h)→04(h)
  4. Dungeon of Fire - レベル8 - 西側中段の部屋に宝箱を追加
    修正場所(バイト位置)修正内容
    9353(h)00(h)→40(h)
    9362(h)00(h)→40(h)
    9364(h)00(h)→40(h)
    9373(h)00(h)→40(h)
  5. Dungeon of Fire - レベル8 - 通路にトラップと宝箱を設置
    修正場所(バイト位置)修正内容
    9376(h)00(h)→06(h)
    9377(h)00(h)→06(h)
    9387(h)00(h)→40(h)
完成。
違いは自分で確かめてみてください。
[TOP]

2.9. 水浸しのダンジョン (Ultima IV)

このディスクイメージはデータが一部壊れているようです。
Deceit, Despise, Destardの全ての部屋とCovetousの部屋が一つ壊れているので早速修正しましょう。
情報提供:pelpelさん
2000-02-20 追加
クリア直前の質問で何も問題を出されていないのに答えを要求されるのでこれも一緒に修復してしまいましょう。
情報提供:Daiさん
  1. まずu4dunfix.zip (6,423バイト)をダウンロードしてください。
    MD5 (u4dunfix.zip) = 78bac4d70aac7d411f3a9886eb3d78f5
    SHA256 (u4dunfix.zip) = 70cd58b8b08eb8be897116261aaaacc024cf17bfe62a485fb92ea5011bacf987
  2. 解凍するとU4DUNFIX.COMというファイルができます。
    これをu4underworld.dskのあるディレクトリへコピーします。
  3. U4DUNFIX.COMを実行するとu4underworld.dskが修正されます。
完成。

U4DUNFIX.COMは WSP version 1.50 により生成されました。
u4underworld.dskの短いファイル名がU4UNDE~1.DSK以外だと修正されません。

2015-05-23 追加
U4DUNFIX.COMが実行できない場合はこちらを使用してみてください。
同じ修正を行うu4dunfix.exeが入っています。
修正したファイルは元のファイル名の拡張子の前に.NEWを追加した名前になります。
[TOP]

2.10. ダンジョンマップの修復 (Ultima IV)

Apple][版のダンジョンマップには一部梯子の掛け違いがあります。
PC(英語)版では修正されているので、それに合せて修正してみます。

ファイルu4underworld.dskをバイナリエディタで書き換えます。
  1. Wrong - レベル4 - 上り梯子の位置変更
    修正場所(バイト位置)修正内容
    120E3(h)10(h)→40(h)
    120EB(h)40(h)→10(h)
  2. Covetous - レベル7 - 上り梯子の追加
    修正場所(バイト位置)修正内容
    13B9F(h)00(h)→10(h)
完成。

先に「水浸しのダンジョン」の修正を行ってください。

Wrongレベル4修正前
Wrongレベル4、宝箱のある南北にループする場所。
修正前はこのように梯子を下りた場所ではなく、一歩北に上り梯子があります。
[TOP]

2.11. Ultima IVが起動できない (Ultima IV)

「The Genesis of Ultima」に付属のApple][版のディスクイメージがAppleWinで起動できないときの対処法です。
  1. バイナリエディタを使用するなどしてU4boot.dsk, u4britania.dsk23000(h)バイト以降を削除します。
    ファイルサイズが140KB(143360バイト)になっていればOKです。
完成。
[TOP]

2.12. 海の様子が何か変だ (Ultima IV)

このディスクイメージもデータが一部壊れているようです。
実害はないですが見つけたからには修正です。
情報提供:pelpelさん
  1. ファイルu4britania.dskをバイナリエディタで修正します。
    修正場所(バイト位置)修正内容
    66DB(h)02(h)→01(h)
    66DC(h)00(h)→01(h)
完成。

問題の海域
Britainのムーンゲートの東側の橋を渡ってすぐの地点。
なんかあちこちデータが壊れてますね。(;_;)
[TOP]

3. PC-8801版

D88形式のディスクイメージ用です。個人的に作成したものでのみ動作確認しています。

3.1. 女性が男性になってしまう (Ultima II)

スタークラフト版PC-8801mkIISR専用ウルティマ2のキャラクタ作成で女性を選択すると、 ステータス補正値は正しく女性用の値が反映されるのですが性別だけは男性に変化してしまいます。
この不具合を修正します。

性別を選択する処理は以下のようになっていました。
(左側の16進数は実行時のアドレス)
	5034	CD 1C 40	CALL	401CH
	5037	3A 1A 40	LD	A,(401AH)
	503A	CB AF		RES	5,A		英字小文字→大文字変換
	503C	0E 00		LD	C,00H		Cレジスタ=00H(男性)
	503E	FE 4D		CP	4DH		'M'
	5040	28 08		JR	Z,504AH		入力が'M'なら男性用処理へジャンプ
	5042	0E 01		LD	C,01H		Cレジスタ=01H(女性)
	5044	FE 46		CP	46H		'F'
	5046	28 21		JR	Z,5069H		入力が'F'なら女性用処理へジャンプ
	5048	18 EA		JR	5034H

	; 男性						Cレジスタは00Hになっている
	504A	21 5D 50	LD	HL,505DH
	504D	CD C5 40	CALL	40C5H		'ダ゛ンセイ'表示
	5050	21 0B 00	LD	HL,000BH
	5053	7E		LD	A,(HL)
	5054	C6 05		ADD	A,05H		強さ+5
	5056	77		LD	(HL),A
	5057	79		LD	A,C		←Cレジスタは上書きされ00Hになっている
	5058	32 05 00	LD	(0005H),A	←常に男性をセット
	505B	18 1D		JR	507AH

	505D	05 C0 DE DD BE B2	05H,'ダ゛ンセイ'
	5063	05 BC DE AE BE B2	05H,'シ゛ョセイ'

	; 女性						Cレジスタは01Hになっている
	5069	21 63 50	LD	HL,5063H
	506C	CD C5 40	CALL	40C5H		'シ゛ョセイ'表示
	506F	21 0F 00	LD	HL,000FH
	5072	7E		LD	A,(HL)
	5073	C6 0A		ADD	A,0AH		魅力+10
	5075	77		LD	(HL),A
	5076	79		LD	A,C		←Cレジスタは上書きされ00Hになっている
	5077	32 05 00	LD	(0005H),A	←常に男性をセット
	507A	CD 22 52	CALL	5222H
	507D	3E 0E		LD	A,0EH
504DH506CHで呼んでいる文字列表示処理は以下のようになっています
	40C5	7E		LD	A,(HL)		←Aレジスタに文字数をセット
	40C6	23		INC	HL
	40C7	01 1D C0	LD	BC,C01DH
	40CA	ED 43 42 C0	LD	(C042H),BC
	40CE	4F		LD	C,A		←Cレジスタに文字数をセット
	40CF	7E		LD	A,(HL)
	40D0	32 24 C0	LD	(C024H),A
	40D3	FE 12		CP	12H
	40D5	CA F4 40	JP	Z,40F4H		性別表示では条件が一致しないのでジャンプしない
	40D8	E5		PUSH	HL
	40D9	CD 25 C0	CALL	C025H		1文字表示(だと思う……処理を追いきれませんでした)
	40DC	E1		POP	HL
	40DD	23		INC	HL
	40DE	0D		DEC	C		←Cレジスタの値を減算
	40DF	C2 CF 40	JP	NZ,40CFH	←0になるまでループ
	40E2	2B		DEC	HL
	40E3	7E		LD	A,(HL)
	40E4	B7		OR	A
	40E5	C0		RET	NZ
	40E6	3E 0D		LD	A,0DH
	40E8	32 24 C0	LD	(C024H),A
	40EB	3E 0A		LD	A,0AH
	40ED	32 24 C0	LD	(C024H),A
	40F0	CD 25 C0	CALL	C025H
	40F3	C9		RET
Cレジスタに格納された性別の選択値を保存する前に呼び出している表示処理によりCレジスタの値が常に00Hに変更されてしまうことが不具合の原因でした。
という事で、性別の値を保存してから文字列表示するように5057H〜505AH504AH〜5056Hの前へ、5076H〜5079H5069H〜5075Hの前へ移動してしまえば解決しそうです。

この処理はプログラムディスクのトラック64, セクタ1に格納されているので、ここを書き換える修正プログラムを用意しました。
  1. u2pc88female_20190825.7z (21,788バイト)をダウンロードしてください。
    MD5 (u2pc88female_20190825.7z) = df6f07db0963796eae9ec9628c60325b
    SHA256 (u2pc88female_20190825.7z) = ebbdcf642687b78b3afc63ca5e519de153a21ce61e11b846e994b8b3d7b148ab
  2. 解凍するとu2pc88female.exeというファイルができます。
    これをプログラムディスクのあるディレクトリへコピーします。
  3. コマンドプロンプトで「u2pc88female プログラムディスクのファイル名」を実行すると元のファイル名の拡張子の前に.NEWを追加したファイルが作成されます。
    今後はこのファイルを使ってゲームをします。

作成済みのキャラクタの性別を変更したい場合は
  1. u2pc88female_20190825.7zを解凍すると出来るu2pc88changesex.exeをプレイヤーディスクのあるディレクトリへコピーします。
  2. コマンドプロンプトで「u2pc88changesex プレイヤーディスクのファイル名」を実行すると元のファイル名の拡張子の前に.NEWを追加したファイルが作成され、 キャラクタが男性の場合は女性に、女性の場合は男性になります。

このプログラムはスタークラフト版PC-8801mkIISR専用ウルティマ2用です。
SR専用でないPC-8801シリーズ用にも同じ不具合があるのかどうか、あった場合は同じ修正方法が使用できるのかは不明です。

動作確認はWindows 7 Home Premium SP1(64ビット)で行いました。

キャラクタの性別が女性になっている
キャラクタ名の下に「シ゛ョセイ」と表示されるようになりました。
[TOP]

3.2. 2112 A.D.から9,000,000 B.C.へのタイムドアが存在しない (Ultima II)

スタークラフト版Ultima IIはApple][版とはマップデータに細々とした違いがありますがその1つにタイムドアが1つ無くなっているというものがあります。
タイムドアは時代毎に24バイトのデータで以下の内容になっています。

時代 X座標 Y座標 移動先
時代
移動先
データオフセット
移動先
X座標
移動先
Y座標
デンセツ ノ ジダイ 1D 37 01 00 22 08
1F 37 02 12 30 18
21 37 03 06 21 17
23 37 04 00 08 0B
9,000,000 B.C. 22 08 00 00 1D 37
2F 1C 02 12 30 18
14 25 04 00 08 0B
24 38 03 06 21 17
1423 B.C. 10 10 00 00 1D 37
13 34 04 00 08 0B
2A 18 03 06 21 17
30 18 01 06 2F 1C
1990 A.D. 1C 0C 01 06 2F 1C
21 17 02 0C 2A 18
14 34 04 00 08 0B
38 34 00 00 1D 37
2112 A.D. 08 0B 03 0C 14 34
12 17 00 00 1D 37
34 18 02 0C 2A 18
FF FF FF FF FF FF

2112 A.D.にはFFで埋められている部分があり、そこに対応するタイムドアが無くなっています。
Ultima IIを移植した頃のスタークラフトはすべて目視で移植作業を行っていたそうなので、そこにタイムドアがあることを見落してしまったのかもしれません。
このFFとなっている部分を本来あるべきデータ32 22 01 06 2F 1Cに変更すれば無くなっていた9,000,000 B.C.行きのタイムドアが現われるようになります。

修正対象のデータはマスタープレイヤーディスクまたはプレイヤーディスクのトラック65, セクタ2に格納されているので、 ここを書き換える修正プログラムを用意しました。
ゲームを途中まで進めた状態でも修正可能なハズです。
  1. u2pc88timedoor_20231007.7z (32,902バイト)をダウンロードしてください。
    MD5 (u2pc88timedoor_20231007.7z) = 95eeb0f233f4627ca88140f071c83f32
    SHA256 (u2pc88timedoor_20231007.7z) = 500cff044e78d76985ae8de8876d2ca992121024d255ee90bf8a7ddd56a7e876
  2. 解凍するとu2pc88timedoor.exeというファイルができます。
    これをマスタープレイヤーディスクまたはプレイヤーディスクのあるディレクトリへコピーします。
  3. コマンドプロンプトで「u2pc88timedoor プレイヤーディスクのファイル名」を実行すると元のファイル名の拡張子の前に.NEWを追加したファイルが作成されます。
    今後はこのファイルを使ってゲームをします。

このプログラムはスタークラフト版PC-8801mkIISR専用ウルティマ2用です。
SR専用でないPC-8801シリーズ用でもマップデータは同じだと思うので、同じ不具合があるならこの修正プログラムを利用できるかもしれません。

動作確認はWindows 10 Home 22H2 (64ビット)で行いました。

無くなっていたタイムドアが出現
2112 A.D.の無くなっていたタイムドアが現われるようになりました。
[TOP]

3.3. でたらめなタワーマップの修復 (Ultima II)

スタークラフト版Ultima IIのタワーはレベル03までは正常(データは少し怪しい)なのですが、 レベル04以降はマップが回転していたり位置がずれていたりと、作りかけのデータをそのまま製品にしてしまったかのような悲惨な状態になっています。
梯子を降りたら移動できずリセットするしかなくなる場所まであります。

そんなマップデータをApple][版を参考に修正します。
ダンジョンマップもそうなのですがドアの位置等に多少の違いはありますがそういった箇所はスタークラフト版の特徴ということでなるべくそのままにしておきます。

修正対象のデータはマスタープレイヤーディスクまたはプレイヤーディスクのトラック74に格納されているので、 ここを書き換える修正プログラムを用意しました。
ゲームを途中まで進めた状態でも修正可能なハズです。
  1. u2pc88fixtower_20231007.7z (34,459バイト)をダウンロードしてください。
    MD5 (u2pc88fixtower_20231007.7z) = dd4a358a7076db6d49a719fb99ff2280
    SHA256 (u2pc88fixtower_20231007.7z) = 4357ef9ec94365cf35c12bea6f487cbcc58ff5e41cffab517f3d22b1b1999379
  2. 解凍するとu2pc88fixtower.exeというファイルができます。
    これをマスタープレイヤーディスクまたはプレイヤーディスクのあるディレクトリへコピーします。
  3. コマンドプロンプトで「u2pc88fixtower プレイヤーディスクのファイル名」を実行すると元のファイル名の拡張子の前に.NEWを追加したファイルが作成されます。
    今後はこのファイルを使ってゲームをします。

このプログラムはスタークラフト版PC-8801mkIISR専用ウルティマ2用です。
SR専用でないPC-8801シリーズ用でもマップデータは同じだと思うので、同じ不具合があるならこの修正プログラムを利用できるかもしれません。

動作確認はWindows 10 Home 22H2 (64ビット)で行いました。

通れない通路
何もないのにデータ異常で通れなくなっている通路。
[TOP]

3.4. 背景・キャラクタを変更してみる (Ultima IV)

背景・キャラクタ画像を変更するツール(コマンドプロンプト用)のPC-8801版ディスクイメージ用です。
BMP形式の画像ファイルからデータを読み込んでディスクイメージ内のデータを変更します。
使い方はzipファイル内の*.TXTを読んでください。
2012-09-19 zipファイル差し替え
サンプルデータを入れ忘れていました
動作確認はWindows XP Home Edition SP3(32ビット)で行いました。

Apple][風なPC-8801版U4
またApple][風にしてみました。発売当時はこんなのが欲しかったからキーレスポンスの悪さもあってかなりガッカリでした。
[TOP]

3.5. NPCキャラのDEXとINTが入れ替わっている (Ultima IV)

ポニカ版Ultima IVのNPCキャラはApple][版やPC(英語)版のDEXとINTが入れ替わった状態となっているのでこれを元に戻します。
Initiate Newgameで新しく始めた場合にだけ変更が反映されます。
セーブ途中のデータを変更するときはこちらを使用してください。
情報提供:レトロゲーム@2ch掲示板 Ultimaスレ

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu4npcdexint.zip (39,064バイト)をダウンロードしてください。(zipファイルはPC-9801版用X68000版用と共通です)
    MD5 (u4npcdexint.zip) = 6e027c0e512fac58b9ab5129d882d9fd
    SHA256 (u4npcdexint.zip) = 7fc4055591e0a46214c6f569e08486fdc2fa6b67de9b7635e3883dd63cada660
  2. 解凍するといくつかファイルができます。
    その中のu4pc88npcdexint.exeをニューワールドディスクのあるディレクトリへコピーします。
  3. コマンドプロンプトで「u4pc88npcdexint ニューワールドディスクのファイル名」を実行すると元のファイル名の拡張子の前に.NEWを追加したファイルが作成されます。
    今後はこのファイルを使ってゲームをします。
完成。

動作確認はWindows XP Home Edition SP3(32ビット)で行いました。

マリア ステータス表示
マリアのステータス。DEXは減りましたがINTが増えてMPが40に。より魔法使いらしくなりました。
[TOP]

3.6. プレイヤー名をカタカナにする & NPCキャラのDEXとINTを入れ替える(その2) (Ultima IV)

ゲーム中の他のキャラクタ名はカタカナなのにプレイヤー名だけひらがなでちょっと違和感や疎外感を感じたりしないでしょうか?
そんな時の為にプレイヤー名をカタカナ変換できるようにしてみました。

セーブ途中のデータのNPCキャラのDEXとINTの入れ替えもできるようにしました。
Initiate Newgameで新しく始める場合はこちらを使用してください。
情報提供:レトロゲーム@2ch掲示板 Ultimaスレ

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu4chgsave.zip (44,657バイト)をダウンロードしてください。(zipファイルはPC-9801版用X68000版用と共通です)
    MD5 (u4chgsave.zip) = e652dbf99a69b24308c7bf96589d7515
    SHA256 (u4chgsave.zip) = 030b679aa7be8e2cf03ebd5596f9eb89ac79e50ee356aea43b831ab9ebfafd9f
  2. 解凍するといくつかファイルができます。
    その中のu4pc88chgsave.exeをキャラクターディスクのあるディレクトリへコピーします。
  3. カタカナ変換するときはコマンドプロンプトで「u4pc88chgsave -k キャラクターディスクのファイル名」を実行すると元のファイル名の拡張子の前に.NEWを追加したファイルが作成されます。
    NPCキャラのDEXとINTを入れ替えるときは「u4pc88chgsave -n キャラクターディスクのファイル名
    両方行うときは「u4pc88chgsave -k -n キャラクターディスクのファイル名」としてください。
    今後はこのファイルを使ってゲームをします。
    ひらがなカタカナ混在もできます。詳しくはzipファイル内の*.txtをみてください。
完成。

動作確認はWindows XP Home Edition SP3(32ビット)で行いました。

ひらがなカタカナ混在のキャラクタ名
ひらがなカタカナ混在にしてみました。
[TOP]

3.7. ダンジョンマップの修復 (Ultima IV)

ポニカ版Ultima IVのダンジョンマップには一部梯子の掛け違いがあります。
PC(英語)版では修正されているので、それに合せて修正してみます。

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu4fixdunmap.zip (55,874バイト)をダウンロードしてください。(zipファイルはPC-9801版用X68000版用と共通です)
    MD5 (u4fixdunmap.zip) = 5bfce372416e4116d207009f355ddc8c
    SHA256 (u4fixdunmap.zip) = 58e0589732eec187e90e9ef114bd78eb7c9e77d65276b05d552a44dfea29ac73
  2. 解凍するといくつかファイルができます。
    その中のu4pc88fixdunmap.exeをアンダーワールドディスクのあるディレクトリへコピーします。
  3. コマンドプロンプトで「u4pc88fixdunmap アンダーワールドディスクのファイル名」を実行します。
    するとマップ修正したディスクイメージが元のファイル名の拡張子の前に.NEWを追加した名前で作成されます。
    今後はこのファイルを使ってゲームをします。
    詳しくはzipファイル内の*.txtをみてください。
完成。

動作確認はWindows 7 Home Premium SP1(64ビット)で行いました。

Wrongレベル4修正後
Wrongレベル4、宝箱のある南北にループする場所。
修正後はレベル3から下りたその場所に上り梯子があります。
[TOP]

4. PC-9801版

ウルティマコレクション日本版(ウルティマコンプリート版含む)のディスクイメージに対応しています。

4.1. 失われたダンジョンを取り戻せ (Ultima II)

PC-9801版でもパンゲアのダンジョンがなくなっています。
ダンジョンのデータは残っているので入口を作るだけでお手軽に修正できます。
  1. ファイルU2_Ultima.fdiをバイナリエディタで修正します。
    修正場所(バイト位置)修正内容
    D8E1F(h)02(h)→0B(h)
完成。

パンゲア
復活したダンジョン。だけどやっぱり探索することは無いですよね?
[TOP]

4.2. 冥王星の本当の姿[不完全版] (Ultima II)

PC-9801版の冥王星マップは大幅に改変されていて、村も消失しています。
これを元に戻すのですが、残念ながらキャラクタ作成毎に修正が必要な不完全な方法でしか直せませんでした。
少しややこしいですが、それでも本当の姿を見てみたいという方は試してみてください。
  1. まずu2pc98pluto.zip (24,177バイト)をダウンロードしてください。
    MD5 (u2pc98pluto.zip) = c25516173baffafc77e8453ba6501c63
    SHA256 (u2pc98pluto.zip) = 34e0e6dea62061c039b4cb222e638def867b2c04c8a3d8fde6a8b763ba615e12
  2. 解凍するといくつかファイルができます。
    その中のu2pc98pluto.exeu2pc98pluto_save.exeu2pc98pluto.mapU2_Ultima.fdiU2_Save.fdiのあるディレクトリへコピーします。
  3. u2pc98pluto.exeを実行すると修正されたU2_Ultima.NEW.fdiができます。
  4. 次にセーブデータの修正をするのですが、キャラクタ毎にセーブデータを上書きするという方法で修正します。
    キャラクタを作成する前には修正できません。
    キャラクタを作成し直したときは毎回セーブデータの修正が必要になります。

    コマンドプロンプトで「u2pc98pluto_save -番号」を実行するとU2_Save.NEW.fdiができます。
    番号には変更するキャラクタの番号(1〜4)を指定します。1番目のデータの場合は「u2pc98pluto_save -1」です。
    セーブディスクのファイル名を変更している場合は「u2pc98pluto_save -番号 ファイル名」としてください。
  5. 作成されたU2_Ultima.NEW.fdiU2_Save.NEW.fdiを使用してゲームを起動します。
セーブデータを上書きするので冥王星に一度でも行ったことのあるデータを修正すると何か不具合が発生する可能性があります。
特に冥王星上にキャラクタがいる状態では、最悪の場合シャトルが無くなって地球に戻れなくなります。

本来なら惑星マップは訪れる度に初期状態にもどるのですが、PC-9801版は惑星上でもセーブできる副作用なのか初期状態には戻りません。
それが問題になる事があるかもしれません。

動作確認はWindows XP Home Edition SP3(32ビット)で行いました。

tommersville周辺
消えていた村もデータは残っているのでマップを直せば入ることができます。
[TOP]

4.3. ダンジョンマップの修復 (Ultima III)

PC-9801版はApple][版の壊れたデータをそのまま移植したようです。
(ひょっとしてポニカ版は全て同じ?)
PC(英語)版と同じになるように矛盾した部分を修正してしまいます。

ファイルU3_Scenario.fdiをバイナリエディタで書き換えます。
  1. 蛇のダンジョン - レベル2 - 下り梯子の修正
    修正場所(バイト位置)修正内容
    99155(h)00(h)→0E(h)
    991D5(h)0E(h)→00(h)
  2. 蛇のダンジョン - レベル4 - フロア中央の下り梯子を宝箱の小部屋に修正
    修正場所(バイト位置)修正内容
    99387(h)03(h)→02(h)
    99388(h)0E(h)→04(h)
    99389(h)03(h)→02(h)
    99398(h)03(h)→02(h)
  3. 炎のダンジョン - レベル6 - 壁と一方通行の上り梯子の修正
    修正場所(バイト位置)修正内容
    9A105(h)0C(h)→02(h)
    9A109(h)0C(h)→02(h)
    9A126(h)0F(h)→00(h)
    9A12A(h)0F(h)→00(h)
    9A186(h)0C(h)→02(h)
    9A189(h)0F(h)→00(h)
    9A1A8(h)0C(h)→02(h)
    9A1BC(h)0C(h)→02(h)
完成。

修正すると整然とした感じに
炎のダンジョンのレベル6。 修正すると整然とした感じになります。

Apple][版同様ここからはオマケです。
PC版と同じになるように残りの相違点を修正してしまいます。

ファイルU3_Scenario.fdiの以下の場所もバイナリエディタで書き換えます。
  1. ペリニアン・デプス - レベル4 - トラップや宝箱のない箇所を作成
    修正場所(バイト位置)修正内容
    99716(h)07(h)→00(h)
    99717(h)07(h)→00(h)
    99719(h)06(h)→00(h)
    9971A(h)06(h)→00(h)
    99727(h)07(h)→00(h)
    99729(h)06(h)→00(h)
    99761(h)07(h)→00(h)
    99771(h)07(h)→00(h)
    99772(h)07(h)→00(h)
    9977E(h)06(h)→00(h)
    9977F(h)06(h)→00(h)
    99791(h)05(h)→00(h)
    99792(h)05(h)→00(h)
    9979E(h)04(h)→00(h)
    9979F(h)04(h)→00(h)
    997A1(h)05(h)→00(h)
    997AF(h)04(h)→00(h)
    997E7(h)05(h)→00(h)
    997E9(h)04(h)→00(h)
    997F6(h)05(h)→00(h)
    997F7(h)05(h)→00(h)
    997F9(h)04(h)→00(h)
    997FA(h)04(h)→00(h)
  2. 炎のダンジョン - レベル8 - 北西の王の印の部屋を宝箱とトラップに変更
    修正場所(バイト位置)修正内容
    9A311(h)00(h)→06(h)
    9A312(h)00(h)→04(h)
    9A313(h)00(h)→06(h)
    9A321(h)00(h)→04(h)
    9A322(h)12(h)→07(h)
    9A323(h)00(h)→04(h)
    9A331(h)00(h)→06(h)
    9A332(h)00(h)→04(h)
    9A333(h)00(h)→06(h)
  3. 炎のダンジョン - レベル8 - 東北の部屋の梯子の横にトラップを追加
    修正場所(バイト位置)修正内容
    9A34E(h)00(h)→07(h)
  4. 炎のダンジョン - レベル8 - 西側中段の部屋に宝箱を追加
    修正場所(バイト位置)修正内容
    9A353(h)00(h)→04(h)
    9A362(h)00(h)→04(h)
    9A364(h)00(h)→04(h)
    9A373(h)00(h)→04(h)
  5. 炎のダンジョン - レベル8 - 通路にトラップと宝箱を設置
    修正場所(バイト位置)修正内容
    9A376(h)00(h)→06(h)
    9A377(h)00(h)→06(h)
    9A387(h)00(h)→04(h)
完成。
[TOP]

4.4. 緯度と経度が逆になってる (Ultima IV)

PC-9801版ではLocate positionで表示される緯度と経度が逆になっています。
表示される座標値の順番は他機種版と同じなので単純に「緯度」と「経度」の文字だけ間違えてしまったようです。
今さらって感じもしますが修正してしまいましょう。
2012-11-03 追加
ギルドで魔法の鍵を買うときの個数表示違いの修正を追加
  1. ファイルU4_Britania.fdiの以下の場所をバイナリエディタで書き換えます。
    修正場所(バイト位置)修正内容
    44221(h)8C(h)→88(h)
    44222(h)6F(h)→DC(h)
    4422A(h)88(h)→8C(h)
    4422B(h)DC(h)→6F(h)
  2. 魔法の鍵を買うときの個数表示を「五つで60gp」から「6つで60gp」に修正します。
    修正場所(バイト位置)修正内容
    157A5(h)8C(h)→82(h)
    157A6(h)DC(h)→55(h)
完成。

緯度と経度の表示
緯度は南北、経度は東西ですが普段あまり使わない言葉なので直してあっても間違えそうです。
[TOP]

4.5. NPCキャラのDEXとINTが入れ替わっている (Ultima IV)

ポニカ版Ultima IVのNPCキャラはApple][版やPC(英語)版のDEXとINTが入れ替わった状態となっているのでこれを元に戻します。
Initiate Newgameで新しく始めた場合にだけ変更が反映されます。
セーブ途中のデータを変更するときはこちらを使用してください。
情報提供:レトロゲーム@2ch掲示板 Ultimaスレ

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu4npcdexint.zip (39,064バイト)をダウンロードしてください。(zipファイルはPC-8801版用X68000版用と共通です)
    MD5 (u4npcdexint.zip) = 6e027c0e512fac58b9ab5129d882d9fd
    SHA256 (u4npcdexint.zip) = 7fc4055591e0a46214c6f569e08486fdc2fa6b67de9b7635e3883dd63cada660
  2. 解凍するといくつかファイルができます。
    その中のu4pc98npcdexint.exeをウルティマディスクのあるディレクトリへコピーします。
  3. u4pc98npcdexint.exeを実行すると修正されたU4_Ultima.NEW.fdiができます。
    今後はこのファイルを使ってゲームをします。
    ウルティマディスクのファイル名を変更している場合はコマンドプロンプトで「u4pc98npcdexint ファイル名」を実行してください。
完成。

動作確認はWindows XP Home Edition SP3(32ビット)で行いました。

イオロ ステータス表示
吟遊詩人イオロのステータス。少し手先が器用になった印象。若干MPが減少しています。
[TOP]

4.6. プレイヤー名をカタカナにする & NPCキャラのDEXとINTを入れ替える(その2) (Ultima IV)

ゲーム中の他のキャラクタ名はカタカナなのにプレイヤー名だけひらがなでちょっと違和感や疎外感を感じたりしないでしょうか?
そんな時の為にプレイヤー名をカタカナ変換できるようにしてみました。

セーブ途中のデータのNPCキャラのDEXとINTの入れ替えもできるようにしました。
Initiate Newgameで新しく始める場合はこちらを使用してください。
情報提供:レトロゲーム@2ch掲示板 Ultimaスレ

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu4chgsave.zip (44,657バイト)をダウンロードしてください。(zipファイルはPC-8801版用X68000版用と共通です)
    MD5 (u4chgsave.zip) = e652dbf99a69b24308c7bf96589d7515
    SHA256 (u4chgsave.zip) = 030b679aa7be8e2cf03ebd5596f9eb89ac79e50ee356aea43b831ab9ebfafd9f
  2. 解凍するといくつかファイルができます。
    その中のu4pc98chgsave.exeをキャラクターディスクのあるディレクトリへコピーします。
  3. カタカナ変換するときはコマンドプロンプトで「u4pc98chgsave -k」を実行するとU4_Character.NEW.fdiが作成されます。
    キャラクターディスクのファイル名を変更しているときは「u4pc98chgsave -k ファイル名」としてください。
    NPCキャラのDEXとINTを入れ替えるときは「u4pc98chgsave -n ファイル名
    両方行うときは「u4pc98chgsave -k -n ファイル名」としてください。
    今後はこのファイルを使ってゲームをします。
    ひらがなカタカナ混在もできます。詳しくはzipファイル内の*.txtをみてください。
完成。

プレイヤー名を変更しているとUltima VまたはVIへのデータ引き継ぎ時に問題が発生するかもしれません。
問題が発生した時はひらがなに戻してください。

動作確認はWindows XP Home Edition SP3(32ビット)で行いました。

ひらがなカタカナ混在のキャラクタ名
ひらがなカタカナ混在にしてみました。
[TOP]

4.7. ダンジョンマップの修復 (Ultima IV)

ポニカ版Ultima IVのダンジョンマップには一部梯子の掛け違いがあります。
PC(英語)版では修正されているので、それに合せて修正してみます。

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu4fixdunmap.zip (55,874バイト)をダウンロードしてください。(zipファイルはPC-8801版用X68000版用と共通です)
    MD5 (u4fixdunmap.zip) = 5bfce372416e4116d207009f355ddc8c
    SHA256 (u4fixdunmap.zip) = 58e0589732eec187e90e9ef114bd78eb7c9e77d65276b05d552a44dfea29ac73
  2. 解凍するといくつかファイルができます。
    その中のu4pc98fixdunmap.exeをブリタニアディスクのあるディレクトリへコピーします。
  3. u4pc98fixdunmap.exeを実行すると修正されたU4_Britania.NEW.fdiができます。
    今後はこのファイルを使ってゲームをします。
    ブリタニアディスクのファイル名を変更している場合はコマンドプロンプトで「u4pc98fixdunmap ブリタニアディスクのファイル名」を実行してください。
    修正したディスクイメージが元のファイル名の拡張子の前に.NEWを追加した名前で作成されます。
    詳しくはzipファイル内の*.txtをみてください。
完成。

動作確認はWindows 7 Home Premium SP1(64ビット)で行いました。

Covetousレベル7修正後
Covetousレベル7、Peerでマップを表示。
部屋が3つ連続する場所の北側に上り梯子を追加しました。
[TOP]

4.8. 背景・キャラクタを変更してみる (Ultima IV, V)

背景・キャラクタ画像を変更するツール(コマンドコンソール用)です。
BMP形式の画像ファイルからデータを読み込んでディスクイメージ内のデータを変更します。
使用できる色数は8色のままです。色数を増やしたり、別の色を使うことは出来ません。
使い方はzipファイル内の*.TXTを読んでください。

PC-9801版用とX68000版用の変更ツールその他が一緒になっています(zipファイルはX68000版用と共通です)。
動作確認はWindows XP Home Edition SP3(32ビット)で行いました。

Apple][風なPC-9801版U5
Apple][っぽく変更したPC-9801版U5。デジタル8色しか使えないので今一つな感じ。オレンジ色が使えればなぁ…
[TOP]

4.9. ゴースから力の言葉を聞き出す (Ultima V)

ゴースから力の言葉を聞き出せないで困っていた人も多かったと思います。
PC-9801版Ultima Vの会話には以下の不具合があるのでこれらを修正します。
2010-12-29 zipファイル差し替え
u5pc98tlk.exe カルマ値による分岐の表示を修正
2012-09-24 zipファイル差し替え
エリスタリアとの会話の修正を追加
2021-05-29 7zファイル差し替え
サー・サイモンとフロードとの会話の修正を追加

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu5tlk_20210529.7z (54,418バイト)をダウンロードしてください。(7zファイルはX68000版用と共通です)
    MD5 (u5tlk_20210529.7z) = f5e06a99e62a8400a8b92daa2f9137f9
    SHA256 (u5tlk_20210529.7z) = 4f833063a5b668ec471fae02d0b0a1abdd5a16ecca81236661c6c21c1fa49110
  2. 解凍するといくつかファイルができます。
    その中のu5pc98modtlk.exeをブリタニアディスクU5_Britania.fdiのあるディレクトリへコピーします。
  3. u5pc98modtlk.exeを実行すると修正されたU5_Britania.NEW.fdiができます。
    今後はこのファイルを使ってゲームをします。
    ブリタニアディスクのファイル名を変更している場合はコマンドプロンプトで「u5pc98modtlk ファイル名」を実行してください。
2010-12-28版で修正済のファイルをさらに修正する場合はu5pc98modtlk.exeの代りにu5pc98modtlk2.exe
2012-09-24版で修正済のファイルをさらに修正する場合はu5pc98modtlk.exeの代りにu5pc98modtlk3.exeを使用してください。

完成。

修正後の会話データはエリスタリア、サー・サイモン、フロードの修正以外はX68000版と同じ内容になるようにしています。
このX68000版は当時ポニカにU4からキャラクター転送できない不具合の修正で交換してもらったものですが、その時に会話データも一緒に修正されたのか、元から修正済だったのかは不明です。

ゲームを途中まで進めた状態でも修正可能なハズです。
7zファイルに含まれるu5pc98tlk.exeで会話内容を確認できます。

2021-05-25 補足
ゴースから力の言葉を聞き出すためのキーワードが「ことばちからの」だというのは誤情報です。
修正前と後どちらにも「ことばちからの」というキーワードは設定されていません。
修正後に力の言葉を聞き出すキーワードは会話の中に出てきます。

動作確認はWindows 10 Home(64ビット)で行いました。

ジェローム在住のゴースさん
やっと力の言葉を話してくれるようになりました。(一応ネタバレなので隠してます)
ポニカ版はわずかに難易度を下げて移植してるようなので、その過程で間違えて不具合になったのかもしれません。
[TOP]

5. X68000版

XDF形式のディスクイメージ用です。個人的に作成したものでのみ動作確認しています。

5.1. 背景・キャラクタを変更してみる (Ultima IV, V)

背景・キャラクタ画像を変更するツール(コマンドコンソール用)のX68000版ディスクイメージ用です。
BMP形式の画像ファイルからデータを読み込んでディスクイメージ内のデータを変更します。
使用できる色数は8色のままです。色数を増やしたり、別の色を使うことは出来ません。
使い方はzipファイル内の*.TXTを読んでください。

PC-9801版用とX68000版用の変更ツールその他が一緒になっています(zipファイルはPC-9801版用と共通です)。
動作確認はWindows XP Home Edition SP3(32ビット)で行いました。

Apple][風なX68000版U4
Apple][風に変更したX68000版U4。色が全然違うのでかなり物足りないです。
少し難易度が高く、また副作用もありますが、グラフィックパレットの初期化処理を変更すればよりApple][っぽくなります。
U5はグラフィックパレットではなくテキストパレットです。
[TOP]

5.2. XM6でUltima IVがセーブできない (Ultima IV)

XM6は非常に完成度の高いエミュレータなのですがUltima IVではセーブできないという現象が発生します。
これはとても残念かつ致命的なので何とかしてみます。
XM6 version 2.05、2.06、TypeG(2011-06-16)で個人的に作成したディスクイメージを使用してセーブできない現象を確認しています。
TypeG(2012-07-15)ではセーブできました。

Ultima IVのセーブ処理は毎回フォーマットしてデータを書き込むという手順になっています。
XM6で実行するとこのフォーマット処理が失敗してディスクイメージがアンフォーマット状態の何もないものになってしまいデータ書き込みに失敗します。
問題点は
  1. フォーマットに使用するパラメータが不足している。
    26セクタ分のパラメータが必要なのに16セクタ分しかないので残りは別の用途で使用しているメモリを読んでしまい不正パラメータと判定されてしまう。
  2. 不正パラメータを検出した後、フォーマット済みのセクタも含めてアンフォーマット状態に戻してしまう。
    実機ではフォーマット済みのセクタはそのまま残りデータ書き込み出来る。
の2つです。
1.はUltima IV側の処理、2.はXM6側の処理になります。
このどちらかを何とかすればデータ書き込みできるようになります。

(その1) XM6 version 2.05を改造する

XM6 version 2.05のソースコードを持っていてビルド環境を構築できる人向けです。

フォーマット時のパラメータチェック処理で不正と判定された後のトラッククリア処理を呼び出さないように変更します。
fdi.cppのFDITrackD68::WriteID()の中、6008行目のClrSector()を#if 0#endifで囲んで無効化します。
	6004:	// 順にセクタを作成
	6005:	for (i=0; i<sc; i++) {
	6006:		// レングス>=7はアンフォーマット
	6007:		if (buf[i * 4 + 3] >= 0x07) {
		#if 0
	6008:			ClrSector();		←ここを実行しないようにする
		#endif
	6009:			return FDD_NOERROR;
	6010:		}
ソースを変更したらリビルドしてXM6.exeを作成します。
副作用があるかもしれないので改造したXM6はUltima IV以外では使用しない方が無難です。

(その2) Ultima IVのプログラムを改造する

ウルティマディスク内の通常では表示できない名前のプログラム??.xを改造します。(??は0x7Fと0xA0)
プログラム中にIOCS __B_FORMATしている部分があるのでここを書き換えてフォーマット処理を実行しないようにしてしまいます。
	move.l	($0018,a6),d3				;$262e,$0018
	move.b	d3,d2					;$1403
	move.l	($001c,a6),d3				;$262e,$001c
	IOCS	__B_FORMAT				;$704d,$4e4f
	movem.l	(sp)+,d3				;$4cdf,$0008
	unlk	a6					;$4e5e
	rts						;$4e75
dis.xで逆アセンブルした結果の抜粋です。オフセットを表示していないのでこれだけでは何処だか判らないですがこのようになっています。
右側のセミコロン(;)に続くのがマシン語の16進数表記です。
IOCS __B_FORMATはマクロを使用した表記で以下の命令2つと同じです。 逆アセンブラによってはこんなふうに出力されるかもしれません。
	moveq.l	#$4d,d0					;$704d
	trap	#15					;$4e4f
この部分を以下の命令に置き換えます。
	moveq.l	#$00,d0					;$7000
	nop						;$4e71
IOCS __B_FORMATの前後の命令も含めてバイナリ検索すれば変更する場所はすぐ特定できるハズです。
26 2E 00 18 14 03 26 2E 00 1C 70 4D 4E 4F 4C DF 00 08 4E 5E 4E 75で検索します。
場所が特定できたら70 4D 4E 4Fの箇所を70 00 4E 71に書き換えます。

フォーマット処理を動作させなくしたのでセーブ用ディスクイメージは256バイト×26セクタでフォーマトしたものを用意しておく必要があります。
これはXM6メニューバーのツール→フロッピーディスクイメージの作成でOS-9/68000フォーマットを指定すれば作成できます。
D68(D88)形式で作成します。
[TOP]

5.3. セーブディスクのディスクイメージを作成する (Ultima IV)

Ultima IVのセーブディスクは256バイト×26セクタフォーマットなのですが、セクタ17以降のどこか途中からフォーマットされていない変な状態になっています。
なので一般的なツールでは上手くディスクイメージに変換できないかもしれません。
そのような場合に使用するX68000用のプログラムです。
このプログラムはX68000に転送して使用します。
ドライブ0にUltima IVのセーブディスクを挿入してからmkd88u4save.xを実行するとu4save.d88という14,832バイトのD88形式ディスクイメージが作成されます。
セーブデータのあるトラックだけなのでファイルサイズはとても小さいです。
[TOP]

5.4. NPCキャラのDEXとINTが入れ替わっている (Ultima IV)

ポニカ版Ultima IVのNPCキャラはApple][版やPC(英語)版のDEXとINTが入れ替わった状態となっているのでこれを元に戻します。
Initiate Newgameで新しく始めた場合にだけ変更が反映されます。
セーブ途中のデータを変更するときはこちらを使用してください。
情報提供:レトロゲーム@2ch掲示板 Ultimaスレ

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu4npcdexint.zip (39,064バイト)をダウンロードしてください。(zipファイルはPC-8801版用PC-9801版用と共通です)
    MD5 (u4npcdexint.zip) = 6e027c0e512fac58b9ab5129d882d9fd
    SHA256 (u4npcdexint.zip) = 7fc4055591e0a46214c6f569e08486fdc2fa6b67de9b7635e3883dd63cada660
  2. 解凍するといくつかファイルができます。
    その中のu4x68knpcdexint.exeをウルティマディスクのあるディレクトリへコピーします。
  3. コマンドプロンプトで「u4x68knpcdexint ウルティマディスクのファイル名」を実行すると元のファイル名の拡張子の前に.NEWを追加したファイルが作成されます。
    今後はこのファイルを使ってゲームをします。
完成。

動作確認はWindows XP Home Edition SP3(32ビット)で行いました。

ジョフリー ステータス表示
戦士ジョフリーのステータス。DEXが増えて攻撃と防御が少し良くなったかもしれません。
[TOP]

5.5. プレイヤー名をカタカナにする & NPCキャラのDEXとINTを入れ替える(その2) (Ultima IV)

ゲーム中の他のキャラクタ名はカタカナなのにプレイヤー名だけひらがなでちょっと違和感や疎外感を感じたりしないでしょうか?
そんな時の為にプレイヤー名をカタカナ変換できるようにしてみました。

セーブ途中のデータのNPCキャラのDEXとINTの入れ替えもできるようにしました。
Initiate Newgameで新しく始める場合はこちらを使用してください。
情報提供:レトロゲーム@2ch掲示板 Ultimaスレ

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu4chgsave.zip (44,657バイト)をダウンロードしてください。(zipファイルはPC-8801版用PC-9801版用と共通です)
    MD5 (u4chgsave.zip) = e652dbf99a69b24308c7bf96589d7515
    SHA256 (u4chgsave.zip) = 030b679aa7be8e2cf03ebd5596f9eb89ac79e50ee356aea43b831ab9ebfafd9f
  2. 解凍するといくつかファイルができます。
    その中のu4x68kchgsave.exeをキャラクターディスクのあるディレクトリへコピーします。
  3. カタカナ変換するときはコマンドプロンプトで「u4x68kchgsave -k キャラクターディスクのファイル名」を実行すると元のファイル名の拡張子の前に.NEWを追加したファイルが作成されます。
    NPCキャラのDEXとINTを入れ替えるときは「u4x68kchgsave -n キャラクターディスクのファイル名
    両方行うときは「u4x68kchgsave -k -n キャラクターディスクのファイル名」としてください。
    今後はこのファイルを使ってゲームをします。
    ひらがなカタカナ混在もできます。詳しくはzipファイル内の*.txtをみてください。
完成。

プレイヤー名を変更しているとUltima VまたはVIへのデータ引き継ぎ時に問題が発生するかもしれません。
問題が発生した時はひらがなに戻してください。

動作確認はWindows XP Home Edition SP3(32ビット)で行いました。

ひらがなカタカナ混在のキャラクタ名
ひらがなカタカナ混在にしてみました。
[TOP]

5.6. ダンジョンマップの修復 (Ultima IV)

ポニカ版Ultima IVのダンジョンマップには一部梯子の掛け違いがあります。
PC(英語)版では修正されているので、それに合せて修正してみます。

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu4fixdunmap.zip (55,874バイト)をダウンロードしてください。(zipファイルはPC-8801版用PC-9801版用と共通です)
    MD5 (u4fixdunmap.zip) = 5bfce372416e4116d207009f355ddc8c
    SHA256 (u4fixdunmap.zip) = 58e0589732eec187e90e9ef114bd78eb7c9e77d65276b05d552a44dfea29ac73
  2. 解凍するといくつかファイルができます。
    その中のu4x68kfixdunmap.exeをブリタニアディスクのあるディレクトリへコピーします。
  3. コマンドプロンプトで「u4x68kfixdunmap ブリタニアディスクのファイル名」を実行します。
    するとマップ修正したディスクイメージが元のファイル名の拡張子の前に.NEWを追加した名前で作成されます。
    今後はこのファイルを使ってゲームをします。
    詳しくはzipファイル内の*.txtをみてください。
完成。

動作確認はWindows 7 Home Premium SP1(64ビット)で行いました。
[TOP]

5.7. 会話の不具合を修正する (Ultima V)

以下の会話不具合を修正します。
2021-05-29 7zファイル差し替え
サー・サイモンとフロードとの会話の修正を追加

修正プログラムを用意しました。これを使ってディスクイメージファイルを修正します。
  1. まずu5tlk_20210529.7z (54,418バイト)をダウンロードしてください。(7zファイルはPC-9801版用と共通です)
    MD5 (u5tlk_20210529.7z) = f5e06a99e62a8400a8b92daa2f9137f9
    SHA256 (u5tlk_20210529.7z) = 4f833063a5b668ec471fae02d0b0a1abdd5a16ecca81236661c6c21c1fa49110
  2. 解凍するといくつかファイルができます。
    その中のu5x68kmodtlk2.exeをブリタニアディスクのあるディレクトリへコピーします。
  3. コマンドプロンプトで「u5x68kmodtlk2 ブリタニアディスクのファイル名」を実行すると元のファイル名の拡張子の前に.NEWを追加したファイルが作成されます。
    今後はこのファイルを使ってゲームをします。
2012-09-24版で修正済のファイルをさらに修正する場合はu5x68kmodtlk2.exeの代りにu5x68kmodtlk3.exeを使用してください。

完成。

ゲームを途中まで進めた状態でも修正可能なハズです。
7zファイルに含まれるu5x68ktlk.exeで会話内容を確認できます。

動作確認はWindows 10 Home(64ビット)で行いました。
7zファイルにはPC-9801版と同じ修正を行うu5x68kmodtlk.exeも入っていますが、これで修正できるバージョンがあるかどうかは知りません。

エリスタリアとの会話
正しく答えたのに…
アレを貰うだけなら修正しなくても問題無いですが、続けて会話するとこんな目に会うこともありました。
[TOP]
[戻る]