ラベル WIZARDRY の投稿を表示しています。 すべての投稿を表示
ラベル WIZARDRY の投稿を表示しています。 すべての投稿を表示

2026-02-26

NFD形式ファイルをFDI形式に変換するスクリプトを作成

Windows11上のT98-NEXTでWizardryをプレイするとNFD形式でフロッピーディスクイメージが作られます。これをNetBSD/i386上のxnp2で利用するにはFDI形式に変換しなくてはなりません。NFD形式とFDI形式の構造について調べたので、NFD→FDIの変換をおこなうスクリプトを作りました。この目的はWizardryでプレイしたファイルを変換したいだけなので、大雑把な作りになっています。 

以前なら、GoogleなどでWebを検索して、参考となるサイトを探していました。今でも同様なのですが、最近はGeminiと対話しながら、作成するようになりました。世間一般では、生成されたスクリプトを何も考えずに使うだけなのか、それとも生成されたものを参考にしながら自前で作るのか、どうしているのかはわかりません。私の場合には、Geminiが生成したスクリプトを参考にして、自分で作り上げるようにしています。

その結果、以下のようなスクリプトが出来上がりました。これを使用して、T98-NEXTが出力したNFD形式ファイルを変換してみました。それをxnp2で読み込んでみましたが、問題ないようです。これでT98-NEXT(NFD)→xnp2(FDI)ができるようになったので、途中まで冒険した続きができます。xnp2が出力するファイルはFDI形式になりますが、T98-NEXTはFDI形式も読めるので、FDI→NFD変換スクリプトは作らなくても良いでしょう。

#!/usr/bin/python3
import os
import pathlib
import sys
import ctypes

# 基本的な型のエイリアス
BYTE  = ctypes.c_uint8
WORD  = ctypes.c_uint16
DWORD = ctypes.c_uint32

# セクタ情報
class NFD_SECT_ID(ctypes.Structure):
    _pack_ = 1
    _fields_ = [
        ("C",        BYTE),
        ("H",        BYTE),
        ("R",        BYTE),
        ("N",        BYTE),
        ("flMFM",    BYTE),
        ("flDDAM",   BYTE),
        ("byStatus", BYTE),
        ("byST0",    BYTE),
        ("byST1",    BYTE),
        ("byST2",    BYTE),
        ("byPDA",    BYTE),
        ("Reserve1", ctypes.c_char * 5),
    ]

# NFDヘッダ
class NFD_FILE_HEAD(ctypes.Structure):
    _pack_ = 1
    _fields_ = [
        ("szFileID",    ctypes.c_char * 15),
        ("Reserve1",    ctypes.c_char * 1),
        ("szComment",   ctypes.c_char * 0x100),
        ("dwHeadSize",  DWORD),
        ("flProtect",   BYTE),
        ("byHead",      BYTE),
        ("Reserve2",    ctypes.c_char * 10),
        ("si",          NFD_SECT_ID * (163 * 26)),
        ("Reserve3",    ctypes.c_char * 0x10),
    ]

# FDIヘッダ
class FDI_FILE_HEAD(ctypes.Structure):
    _pack_ = 1
    _fields_ = [
        ("Reserve1",   DWORD),
        ("dwMedia",    DWORD),
        ("dwHeadSize", DWORD),
        ("dwDataSize", DWORD),
        ("dwSectSize", DWORD),
        ("dwSecter",   DWORD),
        ("dwHead",     DWORD),
        ("dwCylinder", DWORD),
        ("Reserve2",   ctypes.c_char * (4096 - 4 * 8)),
    ]

if __name__ == "__main__":
    try:
        nfd = open(sys.argv[1], "br")
    except:
        print("usage: NFD2FDI <filename>")
        exit(1)

    try:
        nfdpath = pathlib.Path(sys.argv[1])
        fdi = open(nfdpath.with_suffix(".FDI"), "wb")
    except:
        print("cannot open FDI file")
        exit(1)

    NFDheader = NFD_FILE_HEAD()
    nfd.readinto(NFDheader)

    FDIheader = FDI_FILE_HEAD()
    FDIheader.dwMedia = 0x90
    FDIheader.dwHeadSize = 4096
    FDIheader.dwSectSize = 256
    FDIheader.dwSecter = 26
    FDIheader.dwHead = 2
    FDIheader.dwCylinder = 77
    FDIheader.dwDataSize = (FDIheader.dwSectSize
                            * FDIheader.dwSecter
                            * FDIheader.dwHead
                            * FDIheader.dwCylinder)


    try:
        nfd.seek(NFDheader.dwHeadSize)
        rawdata = nfd.read(FDIheader.dwDataSize)
        fdi.write(FDIheader)
        fdi.write(rawdata)
    except:
        print("read/write error")
        exit(1)

    exit(0)
#[EOF]

FDI形式ファイルの構造を出力するスクリプトを作成

Windows11上のT98-NEXTでWizardryをプレイするとNFD形式でフロッピーディスクイメージが作られます。これをNetBSD/i386上のxnp2で利用するにはFDI形式に変換しなくてはなりません。変換スクリプトを作成する前に、FDI形式について学ぶため、ファイル内の構造を出力するスクリプトを作ってみました。
 
以前なら、GoogleなどでWebを検索して、参考となるサイトを探していました。今でも同様なのですが、最近はGeminiと対話しながら、作成するようになりました。世間一般では、生成されたスクリプトを何も考えずに使うだけなのか、それとも生成されたものを参考にしながら自前で作るのか、どうしているのかはわかりません。私の場合には、Geminiが生成したスクリプトを参考にして、自分で作り上げるようにしています。 

その結果、以下のようなスクリプトが出来上がりました。これを使ってWizardryで使用しているファイルを参照してみると、いろいろと勉強になります。 

 #!/usr/bin/python3
import sys
import ctypes

# 基本的な型のエイリアス
DWORD = ctypes.c_uint32

# ヘッダ
class FDI_FILE_HEAD(ctypes.Structure):
    _pack_ = 1
    _fields_ = [
        ("Reserve1",   DWORD),
        ("dwMedia",    DWORD),
        ("dwHeadSize", DWORD),
        ("dwDataSize", DWORD),
        ("dwSectSize", DWORD),
        ("dwSecter",   DWORD),
        ("dwHead",     DWORD),
        ("dwCylinder", DWORD),
        ("Reserve2",   ctypes.c_char * (4096 - 4 * 8)),
    ]

if __name__ == "__main__":
    try:
        f = open(sys.argv[1], "br")
    except:
        print("usage: FDIdump <filename>")
        exit(1)

    header = FDI_FILE_HEAD()
    f.readinto(header)

    print(f"dwMedia:0x{header.dwMedia:08x} ({header.dwMedia})")
    print(f"dwHeadSize:0x{header.dwHeadSize:08x} ({header.dwHeadSize})")
    print(f"dwDataSize:0x{header.dwDataSize:08x} ({header.dwDataSize})")
    print(f"dwSectSize:0x{header.dwSectSize:08x} ({header.dwDataSize})")
    print(f"dwSecter:0x{header.dwSecter:08x} ({header.dwSecter})")
    print(f"dwHead:0x{header.dwHead:08x} ({header.dwHead})")
    print(f"dwCylinder:0x{header.dwCylinder:08x} ({header.dwCylinder})")

    print("header size:", ctypes.sizeof(FDI_FILE_HEAD))

#[EOF]

NFD形式ファイルの構造を出力するスクリプトを作成

Windows11上のT98-NEXTでWizardryをプレイするとNFD形式でフロッピーディスクイメージが作られます。これをNetBSD/i386上のxnp2で利用するにはFDI形式に変換しなくてはなりません。変換スクリプトを作成する前に、NFD形式について学ぶため、ファイル内の構造を出力するスクリプトを作ってみました。

 

以前なら、GoogleなどでWebを検索して、参考となるサイトを探していました。今でも同様なのですが、最近はGeminiと対話しながら、作成するようになりました。世間一般では、生成されたスクリプトを何も考えずに使うだけなのか、それとも生成されたものを参考にしながら自前で作るのか、どうしているのかはわかりません。私の場合には、Geminiが生成したスクリプトを参考にして、自分で作り上げるようにしています。

 

その結果、以下のようなスクリプトが出来上がりました。これを使ってWizardryで使用しているファイルを参照してみると、いろいろと勉強になります。 

 

#!/usr/bin/python3
import sys
import ctypes

# 基本的な型のエイリアス
BYTE  = ctypes.c_uint8
WORD  = ctypes.c_uint16
DWORD = ctypes.c_uint32

# セクタ情報
class NFD_SECT_ID(ctypes.Structure):
    _pack_ = 1
    _fields_ = [
        ("C",        BYTE),
        ("H",        BYTE),
        ("R",        BYTE),
        ("N",        BYTE),
        ("flMFM",    BYTE),
        ("flDDAM",   BYTE),
        ("byStatus", BYTE),
        ("byST0",    BYTE),
        ("byST1",    BYTE),
        ("byST2",    BYTE),
        ("byPDA",    BYTE),
        ("Reserve1", ctypes.c_char * 5),
    ]

# ヘッダ
class NFD_FILE_HEAD(ctypes.Structure):
    _pack_ = 1
    _fields_ = [
        ("szFileID",    ctypes.c_char * 15),
        ("Reserve1",    ctypes.c_char * 1),
        ("szComment",   ctypes.c_char * 0x100),
        ("dwHeadSize",  DWORD),
        ("flProtect",   BYTE),
        ("byHead",      BYTE),
        ("Reserve2",    ctypes.c_char * 10),
        ("si",          NFD_SECT_ID * (163 * 26)),
        ("Reserve3",    ctypes.c_char * 0x10),
    ]

if __name__ == "__main__":
    try:
        f = open(sys.argv[1], "br")
    except:
        print("usage: NFDdump <filename>")
        exit(1)

    header = NFD_FILE_HEAD()
    f.readinto(header)

    print(f"szFileID:{header.szFileID}")
    print(f"szComment:{header.szComment}")
    print(f"dwHeadSize:{header.dwHeadSize} (0x{header.dwHeadSize:X})")
    print(f"flProtect:{header.flProtect}")
    print(f"byHead:{header.byHead}")

    for i in range(len(header.si)):
        print(f"{i:4}:  ", end="")
        print(f"C:{header.si[i].C:02x} ", end="")
        print(f"H:{header.si[i].H:02x} ", end="")
        print(f"R:{header.si[i].R:02x} ", end="")
        print(f"N:{header.si[i].N:02x} ", end="")
        print(f"MFM:{header.si[i].flMFM} ", end="")
        print(f"DDAM:{header.si[i].flDDAM} ", end="")
        print(f"Status:{header.si[i].byStatus:02x} ", end="")
        print(f"ST0:{header.si[i].byST0:02x} ", end="")
        print(f"ST1:{header.si[i].byST1:02x} ", end="")
        print(f"ST2:{header.si[i].byST2:02x} ", end="")
        print(f"PDA:{header.si[i].byPDA:02x} ", end="")
        print(f"addr:{(header.dwHeadSize + i * 256):08x}")
#[EOF]
 

2026-02-25

T98-NEXTのNFD形式はxnp2では扱えなかった

NetBSD/i386でxnp2が動くようになり、PC-9801用Wizardryが動作したので、Windows 11上のT98-NEXTで保存したファイルを使おうとしたら、認識されませんでした。T98-NEXTではNFD形式ですが、xnp2はFDI形式を期待しているようです。FDイメージファイルの形式は、なんでも良いかと思っていましたが、そうでもないようです。

 

ネットを検索すると、FDイメージファイルの形式を変換するプログラムが見つかりました。NFD形式からFDI形式に変換できましたが、xnp2では認識されません。

 

変換されたフィルを確認すると、認識されるFDI形式とはファイルサイズが違うようです。強引ですが、バイナリエディタを使い、余分なところを切り詰めてみました。そうしたら、xnp2でも認識されるようになりました。

 

これで、Windows11上のT98-NEXTで途中までプレイした結果ファイル(NFD形式)を、FDI形式に変換し、末尾を切り落として、NetBSD/i386にコピーすれば、xnp2で続きをプレイできます。途中の手順がやや面倒ですが、機械的に処理する方法を探ってみようと思います。

2026-02-24

NetBSD/i386 9.4上のxnp2 0.86でPC-9801用Wizardryが動いた

NetBSD/i386 9.4にxnp2 0.86をインストールできたので、PC-9801用のWizardryを動かしてみました。何のトラブルに見舞われることもなく、あっさりと動作しました。

 

Windows11上でT98-NEXTを使っている場合には、FDイメージのファイルには拡張子「.NFD」がつくのですが、xnp2は「.FDI」か「.D88」を期待するようです。しかしこれは拡張子のネーミングの問題に過ぎないと思うので、FDイメージの構造が異なるわけではないでしょうから、おそらく問題にはならないと思います。

 

 xnp2は、FDイメージファイルをアクセスする際に、FDドライブのシーク音を出します。これはT98-NEXTには無かった機能です。物理的なFDドライブが存在するわけではないので、気分の問題ですが、シーク音を耳にすると懐かしさを覚えます。またリセット直後には、おなじみの「ピポッ」という音がなります。これはT98-NEXTもそうでした。これが聞こえるとPC-9801の思い出が蘇ります。

 

これで、Windows11上のT98-NEXTと、NetBSD/i386上のxnp2で、Wizardryが遊べるようになりました。両方の環境を使って遊ぶには、途中経過を記録したFDイメージの取り扱いが問題になってくるでしょう。何か良い方法を考えようと思います。 

NetBSD/i386 9.4でxnp2 0.86が動作した

NetBSD/i386 9.4環境で、パッケージからnxp2をインストールしようとしました。そうしたら共有ライブラリの不整合が発生し、pkgin full-upgradeを実行しました。するとエラーが出て、Geminiに相談しながら調査したら、パッケージ管理ディレクトリが/var/db/pkgと/usr/pkg/pkgdbの2箇所に見つかり、これが原因で深刻な不整合が起きていることが発覚しました。Geminiのアドバイスを受けながら、インストール済みの全パッケージを削除し、入れ直しました。しかし欠けているパッケージがあるので、確認しながら、追加インストールして、ようやくMATEデスクトップ環境が復活しました。

 

あらためて、本来の目的だったxnp2をインストールしました。何も問題がなくインストールできました。

 

動かしてみたのですが、PC-9801の起動時画面が出るはずですが、文字がかすれて読めません。フォントを別途入手する必要があるようです。Neko Project 21/Wのサイトから「font.bmp」を入手して「~/.np2/font.bmp」に置きました。これで起動時画面の文字が読めるようになり、一歩前進です。

 

次は、Wizardryが動くか確認しようと思います。 

2026-02-21

NetBSDでPC98エミュレータ

Windows 10を使っていたころに、T98-NEXTというPC98エミュレータを使ってWizardryを遊んでいました。「PC-9800シリーズエミュレータの現況」という記事によると、PC98エミュレータは他にもあるようです。しかしMicrosoft Windowsなら選択肢は多いかもしれませんが、非Windowsでは選択肢が限られると思います。

 

ちょっと検索したら、次のような記事が見つかりました。これらの記事では、NP2kai(Neko Project II 0.86 kai)を使って、ソースからビルドしているようです。OSにはUbuntuを使っているようなのですが、私はNetBSD/i386を使いたいのです。

 

上述した記事を参考にすれば、NetBSD/i386環境であっても、ソースからビルドできるのではないかと思います。ビルド環境を整えたり、ビルドしてみてエラーが出るかもしれませんし、何かと手間がかかるだろうとは思います。もしかしたら何の苦労もなくビルドできてしまう可能性もありますが、そう簡単ではないだろうと予想しています。

 

自前でビルドする前に、ちょっとパッケージを確認したら、なんと「emulators/xnp2」がありました。これは「Xnp2 is a port for UNIX with X11 of "Neko Project II" PC-9801 emulator.」だそうです。自前でビルドしなくても、既にパッケージが用意されていました。

 

このパッケージをインストールしてみようと思います。このPC98エミュレータでWizardryを動かしてみようと考えていますが、問題なく無事に動いてくれるか心配です。もしトラブルようであれば、デバッグすることになるかもしれませんので、自前でビルドできる環境を整えておく必要が出てくるかもしれません。 

2025-09-22

そろそろ「The Knight of Diamonds」を始めたい

一年前には、Windows10上で動作するPC98エミュレータでWizardry#1で遊びました。レベルも十分にあげたパーティーが出来上がったので、次はWizardry#2である「The Knight of Diamonds」をやろうと思っていましたが、もう一年が過ぎてしまいました。別に急ぐ必要もないのですが、そろそろ再開しようかと思います。

 

 前回は地下迷宮のマップをTW5を使って記録していました。今回も同様にやっていこうと思います。とりあえず地下1階のマップをTW5で準備しておきました。

 

Wizardry#2では、キャラクタをWizardry#1から移すことになっています。ひとまず移動は済ませましたが、アイテムが無くなってしまいましたし、ゴールドも減ってしまっています。このままでは地下迷宮に行けないので、まずはアイテムを買い揃えておかなければならないでしょう。

 

この調子で、少しずつ楽しんでいこうと考えています。しかしゲームの展開に慣れてきて、調子が出てくると、のめり込んでしまいそうになるくらい面白いゲームですので、ほどほどにしておくように、よくよく注意していきたいと思います。 

2024-08-16

BISHOPの全ての呪文レベルが9にたどりついた

今年2月頃から、PC98エミュレータを利用してWizardry #1を楽しんできました。6月末頃にはワードナを倒したので、Wizardry #1のミッションは済ませています。途中でPRIESTをBISHOPにクラス変更しました。BISHOPは、魔術師と僧侶の呪文を覚えられるのは良いのですが、レベルが上がるのも遅いので、全ての呪文レベルが9になるのは、かなり時間がかかりました。このレベルに達するまで、何度もB10Fを探検し、何度もワードナを倒しました。パーティを構成するメンバのレベルは50近くになり、H.P.も400くらいになりました。ここまで成長すると、「ほぼ」無敵です。B10Fでワードナの部屋に押し入ったとしても、全く怖くありません。一撃でワードナを倒せてしまいます。

 

しばらくWizardry #1を探検してきましたが、このあたりで一区切りをつけようと思います。ちょっとお休みをして、次はWizardry #2に進もうと思います。

2024-06-30

グレーターデーモンの「養殖」はできるけど・・・

ワードナを倒し、ひとまずミッションは達成しましたが、BISHOPをレベルアップするため、もう少しB10Fを冒険しようと思います。BISHOPの成長は遅いので、できれば経験値が多い魔物と闘いたいところです。このような目的にピッタリなのが、俗に言う「グレーターデーモン養殖」です。

 

グレーターデーモンは強敵だし、仲間を呼び出すので、迂闊に戦うと全滅してしまいます。ところが、MONTINOで呪文を封じておくと、呼ばれた仲間も呪文が封じられた状態になってしまうようなのです。呪文が封じられたグレーターデーモンは、それほど強くありません。たまに毒をくらったり、麻痺したりしますが、その程度です。こちらも攻撃の手を緩めて闘えば、トータルでは大きな経験値を稼げます。

 

ただし、グレーターデーモンに対してMONTINOを唱えても、呪文を拒否されてしまう可能性が高いことです。複数のグレーターデーモンがいたとして、MONTINOで呪文を封じられたのが1体だけだったとします。ここで仲間が呼ばれた場合、呪文が封じられた状態なのか、呪文が使える状態なのか、見分けられないと思います。

 

MONTINOを拒否したグレーターデーモンが呼んだ仲間が来てしまったとしたら、経験値稼ぎをするどころか、かえって全滅の危機に瀕してしまいます。このような危険性がないわけではありませんが、グレーターデーモンを養殖するという技は、うまくいけば、経験値を稼ぐ方法として優れていると思います。

2024-06-28

ワードナを倒した

今年2月頃からWizardry #1の冒険をすすめていましたが、ついにワードナを倒しました。まだパーティのレベルに不安が残っていたので(特にBISHOP) 、もうすこしB10Fでレベルを上げてから、万全を期してワードナと対戦しようかと思っていました。しかし、まずは練習がてらにと思い、ワードナの部屋に入ったところ、あっけなく勝負がつき、アミュレットをもって地上に戻ることになりました。

これで一段落したわけですが、ワードナとは何度でも闘えるので、B10Fをウロウロしてレベルを上げるとか、パーティの校正メンバをクラス変更してみるか、それともWizardry #2を始めるか、考えているところです。


ワードナとの闘いに勝利したパーティは、こんな感じです。BISHOPは、結局MAGEもPRIESTも呪文を最後まで覚えませんでした。こういうことになるから「BISHOP不要論」が出るのかもしれませんが、僕としては、宝箱から出てきたアイテムを鑑定するのに役立ったので、BISHOPがいて良かったとは思います。

 

  1. N-FIG DWARF LEV:25、H.P.:212、A.C.:-8
    1. HELM+1
    2. PLATE MAIL+2
    3. GLOVES of SILVER
    4. BLADE CUSINART'
    5. SHIELD+3
  2. N-FIG DWARF LEV:26、H.P.:226、A.C.:-4
    1. HELM+1
    2. SHELD+1
    3. GLOVES of COPPER
    4. PLATE MAIL+2
    5. BLADE of CUSINART'
  3. N-FIG HUMAN LEV::24、H.P.:212、A.C.:-6
    1. GLOVES of COPPER
    2. PLATE MAIL+2
    3. HELM+1
    4. SHIELD+3
    5. BLADE CUSINART'
  4. E-BIS GNOME LEV:20、H.P.:79、A.C.:4
    1. SMALL SHIELD
    2. MACE+2
    3. LEATHER+2
    4. MAGE:9/9/9/8/4/0/0
    5. PRST:9/9/9/5/5/0/0
  5. G-MAG ELF LEV:24、H.P.:137、A.C.:9
    1. ROBES
    2. KEY of BRONZE
    3. KEY of SILVER
    4. KEY of GOLD
    5. STATUE of BEAR
    6. STATUE of FROG
    7. DAGGER+2
    8. BLUE RIBBON
  6. N-THI HOBBIT LEV:27、H.P.:169、A.C.:1
    1. LEATHER+1
    2. SHIELD+1
    3. SHORT SWORD+2
    4. RING of MALOR
    5. STAFF of MONTINO


パーティは、中立+善で組んだのですが、B9FやB10Fを探検中、弱いわりに経験値が多い魔物に遭遇した際に強制的に戦闘に持ち込んでいたら、「悪」に変わってしまいました。職業によって、悪であったり善であることが条件となっていますが、どちらでも構わない場合に善悪どちらで構成すれば良いのか、よくわかりません。

2024-06-26

Will o'Lisp

C言語を学び始めた頃、当時アスキー出版が出していた『Cプログラムブック』を読んで勉強していました。とくにその第3巻は「Will o'Lisp」というLISP言語をC言語を使って実装してみるという内容で、とてもおもしろかったのを覚えています。しかもソースプログラムも掲載されていましたから、それを打ち込んで、実際に動かして見ることで、C言語そのものもLISP言語も勉強になりました。


今となっては書籍を手放してしまいましたが、また読んでみたいと常々思っていました。つい最近になって国会図書館のデジタルコレクションを検索してみると「Cプログラムブック3(Lisp処理系の作成)」として閲覧できる事がわかりました。

 

この処理系の名前もそうですし、バージョン名がMADIとかCALFOのようになっているのを見ても、Wizardryを意識しているのはあきらかです。

 

それはともかく、この書籍が出版された当時は、MS-DOSの時代でしたし、Microsoft CとかLattice Cなどが使われていた時代でした。今はFreeBSDやUbuntuなど、当時から見たら夢のような環境が一般化していますので、これらの上で動作させてみるのも面白い気がします。


2024-06-21

Wizardry #1のB10Fは手強い

Wizardry #1のB10Fを探検しています。ワードナの部屋の直前までは辿りつきましたが、まだ対戦する自信がありません。B10Fでレベルアップに励んでいます。パーティは、最低限のレベルはクリアしているのですが、これでも運が良ければワードナに勝てるかもしれませんが、まだ不安です。

  1. N-FIG(L14,HP139,AC-6) GLOVES of SILVER,BLADE CUSINART'
  2. N-FIG(L18,HP148,AC-4)
  3. N-FIG(L15,HP134,AC-6) SHIELD+3
  4. G-BIS(L15,HP74,AC4) MAGE:9/9/7/3/0/0/0,PRST:9/8/4/4/0/0/0
  5. G-MAG(L17,HP92,AC9) MAGE:9/9/9/9/7/5
  6. N-THI(L18,HP83,AC1) 

 

楽々と勝てる魔物もいますが、強敵を相手にすると、あっという間に死んでしまったり、逃げ遅れるとパーティが全滅してしまったりします。これではワードナに立ち向かうのは、まだ早いと感じます。


冒険の途中で、PRIESTをBISHOPにクラス変更したので、未だに全レベルの呪文を覚えていません。BISHOPはそういうものだということは知っていたうえでクラス変更しているのですが、それでも早く全レベルの呪文を覚えて欲しいと思っています。このような事になりがちなので、Web上にある記事を読むと「BISHOP不要論」が見つかります。それも尤もですが、僕としては宝箱を開けて見つかったアイテムを鑑定できるのは、とても良かったと思います。

 

Windows10上のPC98エミュレータを使っているため、デュプリケートディスクを複数残しておけます。そうすれば、仮にパーティが全滅したり、誰かがレベルをっ下げられてしまっても、以前のデュプリケートディスクを使ってゲームを再開することができるのは、助かっています。

 

ともかくパーティ全員がレベル20を超えるくらいまではB10Fをウロウロして、それからワードナとの闘いに挑もうかと考えています。

2024-06-17

盗賊を忍者にクラス変更した方がよいのだろうか

Wizardry #1は、満を持してB10Fの探検を始めました。手ごわい相手もいますが、少しずつ前進しています。戦いを終えて宝箱から「DAGGER of THIEVES」を見つけました。さらに別の戦いの後には「SHURIKENS」も手に入れました。


パーティーには「HOBBIT」でレベル16の「N-THI」がいます。後列にいるので、先頭には参加していません。もし忍者にクラス変更したら、前列で戦闘に参加させた方が良いのでしょうか。でも、パーティーには戦士が3人いるので別に困っていないし、もし盗賊から忍者にクラス変更したらレベルを上げるのに時間がかかってしまうんじゃないかという懸念もあります。また属性が「N」なので、このままで「SHURIKENS」を利用できるんだろうかという不安もあります。


Webの記事を読んでいると忍者は垂涎の的らしいのです。しかしもっと早い段階で忍者に変わっていたならともかく、B10Fの探検を始めてしまっているので、いまさらという気がしてなりません。

2024-06-14

G-BISからE-BISへ

Wizardry#1は、B9Fまでの探検を終えて、いつでもB10Fに下りられるところまできています。しかし魔物と戦っている最中にレベルを下げられてしまったので、しばらくはB9Fをウロウロして、全員がレベル13以上になるか、BISHOPが全レベルの呪文を覚えるまでは、B10Fに行くのを待とうと思っています。

 

善と中立でパーティを組んでいるためなのか、「友好的な」魔物と遭遇することがあります。しかしEarth Giantに遭遇したら、あまり強くない割には多くの経験値を貰えるので、闘いたいところです。そうして闘い続けていたら、善のBISHOPが悪のBISHOPに変化してしまいました。そういうことはあるようです。 


パーティは善と中立で組んでいたので、城でパーティを組もうとしても、善悪が混じる構成には出来なくなりました。仕方ないので、悪のBISHOPだけは独りで迷宮に入り、一旦ゲームを中断して城に戻り、善と中立のメンバで組んだパーティが迷宮に入ったところで、合流することになりました。

2024-06-08

NIGHTSTALKERにレベルを下げられた

Wizardry #1でB9Fの探検を済ませ、B10Fに落ちる場所も判っていますが、まだ経験値が足りないし、呪文も覚えきっていません。しばらくB9Fをウロウロして、レベルを上げようと思っています。

 

と、思っていたところが、NIGHTSTALKERに遭遇し、レベルを下げられてしまいました・・・ 

やられた!と思いましたが、さらに別の場所で再び遭遇し、さらにレベルが下がりました。

冒険を重ねてきて、ようやくレベル13まで来たのに・・・

 

Webを探すと「ある意味、死ぬよりもいやなこと」のような悲しい報告が見つかります。

2024-06-07

Wizardry #1 でB9Fまで探検終了

今年初めから、Windows10上のPC98エミュレータを使用してWizardry #1の冒険を続けてきました。各階のマップを作りながら地下に下りてきましたが、ようやくB9Fまで探検を終了しました。B10Fに落ちる場所も判明したので、いよいよ最終局面に向かうことはできるのですが、まだ冒険者たちの準備が整っていない気がします。


冒険中にPRIESTをBISHOPにクラス変更したためかもしれませんが、呪文の覚えが悪く、高いレベルの呪文を覚えきれていません。またパーティ内の冒険者はレベル13に達しようとしており、B10Fに下りるための最低限のレベルではありますが、もう少しレベルを上げておいた方が良さそうな気がしています。

 

レベル13ともなると、次のレベルに上がるための経験値も大きいし、大きな経験値が得られる魔物がなかなか出てきてくれません。そうは言っても、B9Fで時間をかけて、レベルを上げ、満を持してB10Fに下りようと思います。

2024-04-28

Wizardry #1でB5Fの探検を完了

Windows10上でPC98エミュレータを使って、Wizardry #1の冒険を愉しんでいます。B4FでBLUE RIBBONを手に入れ、B5Fの冒険をしていました。Wizardry #1では、B5F~B8Fを探検して時間を費やす必要はないという意見もあるようです。エレベータを使ってB9Fに下り、そこで冒険した方が、経験値を得られるし、効率が良いということです。それはそのとおりなのでしょうが、急いで地下深く下りてミッションをクリアしなければならない理由はない(誰かに早くしろと脅されている訳ではない)ので、のんびりと地下に下りていこうと思います。

 

B5Fがクリアできたので、次はB6Fです。

2024-04-17

Wizardry #1でBLUE RIBBONを入手した

昔懐かしいPC98版Wizardryを、Windows10上のエミュレータを使ってプレイしています。ようやく地下4階に到達し、ついにBLUE RIBBONを入手しました。冒険を始めるときに、地下迷宮のどこかにあるらしいコントロールセンターを探すようにと言われていたので、中間目標を達成したことになります。

 

最終目標は地下10階ですから、まだまだ冒険の道のりは長いですが、のんびりプレイしていこうと思います。

2024-03-30

Wizardry#1でPRIESTからBISHOPにクラス変更

PC98エミュレータでWizardry#1の冒険を始めており、B2Fまで冒険を終えました。パーティーは全員レベル8になっています。ふとクラス変更できるか調べてみたら、PRIESTからBISHOPに変更できる状態になっていました。


クラス変更できるとしても、実際に変更するかどうかは別の話です。考えなければならないのは、一般論としてクラス変更することによるデメリットです。レベルや経験値が初期状態に戻ってしまいますし、年齢も上がります。もうひとつ考えておく必要があるのは、BISHOPが必要か否かです。Webを見る限りでは、BISHOPは不要と考える人がいるようです。一方でBISHOPが必要と思っている人もいるのですが、どちらが多数なのかは不明です。もっとも多数意見に左右される訳ではないので、僕自身がどうすべきなのかは、自分で答えを出さなければなりません。

 

で、PRIESTからBISHOPにクラス変更してみました。その結果、レベル1になってしまいましたし、経験値は0に戻りました。また年齢も5歳ほど上がってしまいました。その一方で、PRIESTとして覚えた呪文レベルは残っていましたので、当初は何も呪文を唱えられませんでしたが、ちょっと冒険してレベルが上がったら、すぐに以前のPRIESTと同等の呪文を唱えられるようになってくれました。またMAGEの呪文も覚え始めています。

 

BISHOPは冒険中に見つけたアイテムを識別する能力を有しているので、パーティーに居ると助かることは間違いありません。クラス変更によりBISHOPだけクラスが低いので、他と同じレベルにまで揃えようとは思いませんが、もう少しB1FやB2Fで経験を積んだら、いよいよB3Fに下りていこうと思います。