FC2ブログ

(にやーり)

なんか駄文を色々と。 まれに隙間情報を狙い撃ちする素振り(風味)のメモや、コントも。

PC-88SR版 XANADU のキャラクタ・アイテムのデータ解析

 
 ……もしかしてマイキャラのパラメータ改造とか言うべき?

 ユーザ・ディスクをエミュレータ用の “d88” にして、まぁ適当に Windows 上からバイナリエディタで覗いて書き換える形。
 つーか、エミュ上で Disk.C を作るのがセオリー、かも知れず。
  あと必要なのは 10←→16 の計算ソフトくらい?

 まぁ覗いていれば&ゲーム上での元の数値を把握してれば粗方は判る(だろう)けどね。
 でも折角だから、結果を出しといてみようかな、と。


 たぶんだけど……PC-8801mkII SR版だけでなく、他機種版にも流用できると思う。どうせアドレスが違う程度だろうし。
 でも、こんな22年も前のゲームの改造なんて、誰が興味を抱くか知らないけどさ。

 因みに。Revival XANADU(PC-9801VM21以降かな?) にはキャラクタ・エディタが既に存在するので安心。
  作れるものならデータエディタを作りたいけれど、今時のプログラム作成能力は(少なくとも現状では)無いから。
  そういえば確か 88 の当時、なんか同人ソフトのようなキャラクタ・エディタを持っていたような……。
  まさか、あれって……使わせてくれた友人か、あるいはその知り合いとかが独自に作成したものってことは無いよねぇ?


 そんで、PC-98版の Revival XANADU も似たような感じっぽい。しかもダミー臭いのが無いだけ楽かも。
 とりあえず装備データは(Revival-Easy 版では) Disk.B にあった。


 しかし懐かしいね、ザナドゥも。
 累計出荷数が40万本を優に超える、PCゲームの金字塔。
 かくいう私とて、そのうちの何本かは貢献してるし。

 でも、個人的には XANADU と Wizardry だと、憶えきっていて面倒さが少ないって面を含めずとも Wizardry に軍配が上がるんだよね。
 何よりキャラクタを育てる面白みは Wizardry の方が上だろうと思うし。
 さすがに XANADU はキャラクタの背景とかを 妄想 想像しにくいっぽいし。
 あとゲームそのものとしてはともかく、あの(特に)タワー内のマップが面倒ってのも。外は何とかなるけど。
 もちろん XANADU には XANADU の、ある種のパズルのような面を含めた、色んな魅力や楽しさが多々あるけどね。


 なお。
 この記事は(当然!) XANADU をプレイしたことがあって、かつシステムやデータ類に関してガイドブック程度の知識を持ち合わせて(≒暗記して)いる人が対象です。
 また当然、バイナリエディタを問題なく扱える程度の知識も必要。

 それと。
 こうして公開しているわけなので、そりゃ参考にしたって全く構いませんが。
 個人的なもの(私的な利用範囲)を除き、参考にしたもの・内容・部分を、自分のコンテンツに組み込むなどして公開するのなら、当然のルール&マナーとして、その出所くらいは明示しましょう。
 それができない(したくない)なら――明言するまでも無い常識なんですが――利用を禁止します。

 念のため。

 
 

 さて。まずは名前をサーチするとこから始めましょう。

 で、名前は最大13文字・13バイト分だったっけ? 多分 00014C60 から。
 まぁ “@Yoshio.Kiya@” とか “DS ][-MASTER ” また “Tomoo.Yamane” なんかを使ってキャラ・メイクをして、後から好きな名前に変える――ってのが常套的な利用法かな?
 いや、アイテム数も変えられるから “DS ][-MASTER ” は意味無いか。
 てゆーか何でも好きに変えられるんだし、どれも意味無いかも。
 でも、何か大きめの制約を自分なりに決めてないと、チートプレイは、ただツマラナイモノに成り果てるけど。

 そこから少し行って、00014C7D から属性値・能力値が始まります。
 STR:INT:WIS:DEX:AGL:CHR:KRM:MGR と1バイトずつ並んでます。
 表示値=パラメータなので判りやすいですにゃ。
  多重化とかされてなくて助かったよ。
 なおCHRは100、アイテム使った状態で200が通常の上限。またMGRは100で最大の効果を発揮します。
  ここを弄れば、普通はありえない5刻み以外の能力値にもできちゃうぞ!

 また 00014C91 = KEY : 00014C92 = ELX だね。それぞれ1バイト。
  Elixir を山ほど持たせて死にまくろう!(ん?)


 で、それの少し前の辺りに Exp. / H.P. / Gold / Food があるんだけど……。

 まず 00014C70-72 が経験値。
 もし仮に、そこに 09 11 10 と並んでいたら。
 まずは上位2バイトを並び替え(?)て100倍にして、下位1バイトを合算すると表示値だね。
 この 09 11 10 の場合は 436,116 Exp. になる。
 下位1バイトは、99=63 までしか使われない。
  Let's 経験詐称!

 そんで、00014C85-87 までが Food だね。法則は Exp. と同じ。
  食べ放題!

 そんで 00014C88-8A が Gold 値。
  アメリカン・ドリーム! オイルダラー! 子供銀行券!

 そんで Max.HP と Now.HP は…… 00014C77-79 までが HP の現在値で、(同) 7A-7C が最大値。
 これも同じで、1500 なら 0F 00 00 になってる。
  それいけドーピング!

 因みに、いずれも上限値は 6,553,599 ね。
 でも3バイト=24ビットをフルに使えば 16,777,216 まで表現できるのに、なんで……あぁ8bitプロセッサの制約かな。


 そんで 00014C95 から、武器・魔法・鎧・盾・アイテムの所持数。
 それぞれ1バイトずつ、これも暗号化みたいなのは無し。00014CEE まで。
 続いて 00014CEF からは同じく各種物品類の経験値だね。
  武器と魔法は255だけど、通常、防具類の経験値は 200 まで、アイテムは 100 までしか上がらないぞ!

 なんかゲーム上は存在しない(?)――“R” まであるような気がするんだけど……うん、そうみたいだね。パラメータとしては “A~R” が用意されてるっぽい。
 だけど “R” は(たぶん)未使用になってる。
 因みに “DS ][-MASTER ” の時には自動的に “R” 部分も埋められちゃうっぽい。


 ここまで解れば、もう通常(?)は必要な範囲を網羅してるから終了。
 ランプ・カウントなんて弄っても仕方ないし。
 Disk.C 側はね!


――続いて Disk.A だ。おー。

 データ量の帳尻あわせは必要だけど、装備・アイテム名の変更は楽勝。
 “OD FF” が区切りで、最大で13バイトまでかな?
 ……って、全く楽勝じゃない!

 どうやら各アイテムごとに「これの表示には、このアドレス以降にある(何らかの)ポインタから次のポインタまでを採用する」みたいな感じで決め打ちしてるっぽい!
  たぶん、そのポインタは、記号と英大文字っぽい?

 だから、その参照アドレスを指示するプログラム/データごと書き換えない限りは、名前を変更しようと思ったら各アイテム単位で全く同じ文字数に合わせないと表示されなかったり、中途半端にしか表示されないことになる。
 ずらしちゃうと……合計での帳尻を合わせても、まるっきり空白とか “-Sword” だけとかって表示になりかねないね。
 うーん……Lance を変更したかったのにな。
 あんなもんを歩兵(?)が扱うはず無いんだから。


 そのパラメータ(能力数値)部分……らしき箇所は見つかったけど、ちょっとややっこしい。
 8813 でサーチして、その少し前に B8 0B が、少し後ろに 64 00 があれば、それは Vorpal Weapon のパラメータなんだけど……どっちの 8813 が値段だろ……?
 あ、二つあるうちの前方が定価で後方が攻撃力だね。
 武器は、攻撃力値=定価だから判断が付かなかったけど、他の装備群は違うからね。

 あと、武器形状は攻撃力の後の1バイトみたい。00→長剣、01→槍、02→斧、04→短剣……03は何だろう?
 無論、鎧も盾も、また魔法も、ここで形状・外観が決定されてる。
 だけど、その更に後方2バイト分は何を指してるんだろ?
 何となく2バイトめは装備のレベル(使用時の難易度や詠唱時間)っぽいけど……1バイトめはナニ?
 対 King Dragon 時のパラメータ/フラグではなさげ。不明

 だけど。
 8813881300 でサーチすると2箇所の該当が出てきちゃうけど……どっち?
 直前の前方に30万が二つ並びで存在して、後方に100万と1万が存在する、二つ並びの50万って言うと Vorpal Weapon しか該当は無いはずなんだけど……。
 試しに、それぞれ Dagger の形状と数値を違う値に書き換えてみる。
 あ。武器形状に03を指定するとエラーが出るね。表示すべきデータが(Disk.C に)用意されて無いからってことみたい。
 ただ形状が反映されてエラー吐いたのは二つめだから、こっちが基本データっぽいけど……うーん。
 やっぱり二つめの方が買い取り価格にも反映されるね。だとすると一つめは何だろ……?

 そんなデータベース機能みたいなのは無いし、拾い物を別データで扱うはずも無いし……確信は無いけれど、もしかするとモンスター用の内部装備データかな? それともダミー?
  どうも情報が見当たらないけど、確か、モンスターも装備が決められてて装備してるはず。
 そんで 4B か 4C が区切り?
  市販品と非売品(?)の違いが 4B / 4C かと思ったけど違うね。

 アイテムデータまとめ
 武器パラメータは 00053F69 から始まって――2バイト=値段、2バイト=攻撃力、1バイト=形状、1バイト=不明、1バイト=難易度――7バイト+区切りの1バイト=合計8バイトで構成されてるっぽいね。
 魔法・鎧・盾・アイテムが並んで続いて、構成は同じっぽい。
 もう面倒だから形状とかは自分で調べて。
 そんで魔法は、たぶん形状データか難易度(?)を元に属性・種類を判定してるんだと思う。

 同じっぽいデータが二組あるけど、名前もパラメータも書き換えるのは後方のもの。これでちゃんとゲームに反映される。
  もしかすると1セットしかデータが見当たらない Revival-XANADU でパラメータを書き換えちゃうと、同時にモンスター側も連動しちゃうかも。


 因みに、武器の基本攻撃力を FFFF にすると――STRが100なら、装備しただけで 1,966,050 と、最大状態の Vorpal Weapon の更に約1.5倍の攻撃力を発揮する、どんな敵でもイチコロな武器に。
 だけど。
 そこまで上げると最大攻撃力が用意されてる範囲を超えちゃうから、やらない方が絶対に得策。
 たぶん何かバグるはず
 武器・魔法なら 2.55 を掛けても 6,553,599 に収まる 2,570,000 = 6464 以下に。
 防具は鎧と盾を合わせて 2.00 を掛けても 6,553,599 に収まるよう。均等割なら 3,276,700 = 7FFF 以下に。
――しとくのが安全。


 でもまぁアイテム系は、名前や綴りを変えて遊ぶくらいがいいと思うけどね。
 “MuramasaBlade!” を再現できないのが残念――“BladeCusinart'” も完全再現は無理だね。記号を省けば何とかなるけど、それじゃムラマサはともかく “BladeCusinart'” は違っちゃうし。

 ……防具は少し能力値を上げてもいいかも。
 防具は鍛えるのも大変だし、そもそも標準だと達成しうる防御力が低めだし。
 Lv.9/10 の敵、特に Lv.10 なんて敵の攻撃力が高すぎて、最大状態の Battle-Suits & +7LargeShield を装備していても、無敵化アイテムを使ってないとスナック感覚で瞬殺されるからねぇ。

 要するに、Lv.9 の一部と、Lv.10 のモンスターが――回避策は一応あるものの――強力すぎるってだけの話だけどさ。


 あと。モンスターの方も、ざっと見てみたけど……。
 固定 Gold / Food のヤツの数値(変更)は割と簡単だったけど、それ以外は複雑すぎるので省略。
 持ち物のパターンは、何となくは判ったけどね――上位1バイトが種類、下位1バイトは Gold / Food の場合の値――それ以上は、とにかく面倒すぎ。
 もう固有パラメータまでは、やってらんない。

 結局は、既知のパラメータに合致する部分を見つけて、その構成を体系的に捉えるって作業の繰り返しだけだけど、未知の部分も割とあるし。
 基本的にモンスター側も、割とマイキャラに準ずる能力値を持ってるしね。


 あと、Boalisk の Food を試しに(全て10→100/200/300/400)書き換えてみたら……。
 なんだかタワー内で、本来4グループめの Boalisk がいて Small-Shield が落ちているはずの部屋で、何故だか +4 Large-Shield を拾っちゃったよ?
 なんだ、これ?
 もしこれがミスで無く副作用であるなら――タワー内に落ちてる装備類って、その部屋のモンスターのパラメータに(一部)依存してるってこと?

――そんで、改めて別の Disk.C を作り、同様の書き換えを行なってみたら。
 今度は Short-Sword が Broad-Sword に化けたよ?

 どうやら副作用らしいのは判ったので改めて確認。
 今度は FF に書き換えてみたら……変わったけど、Glove に。何故?
 次に 22 に書き換えても、やっぱり Glove が。
――ま・まぁ「変わってしまうっぽい」ってことを結論にして、深くは追求しないでおこう。うん。


 あー。
 それにしても Wizardry 解析の時の経験が役に立ったねぇ。
 特に、機種は違えど解析結果を載せてくれていた、Oh! FM-7 の Laver さんには大感謝
  あの時は、自力では基本的な一部分しか判らなくて、残る大半をそれに頼ったの。

 因みに。
 割と XANADU ってチェックが厳しいから、これが原因でツマっても責任は負いませんので悪しからず。
  大丈夫だとは思うけどね……かつてデータエディタで書き換えたキャラでクリアした記憶もあるから。

 

テーマ:ゲーム - ジャンル:コンピュータ

  1. 2007/11/25(日) 17:01:36|
  2. 昔のPC・ソフト/エミュレータ
  3. | トラックバック:0
  4. | コメント:1
<<・・・・何故いる? | ホーム | そんでもってDALK?>>

 ? ? ? ? ?

 コメント?

2007/11/25(日) 20:10:47 に 165.135.244.43.ap.cyberbb.ne.jp ( mailto:188ottototottohuyudaze@docomo.ne.jp ) より投稿されたコメントを削除しました。
  1. 2007/11/25(日) 23:14:19 |
  2. URL |
  3. Alvz.0x(管理人) #-
  4. [ 編集 ]

コメントの投稿 (NGワードにご注意あれ)


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://fuff.blog106.fc2.com/tb.php/159-4ed555c6
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Alvz.0x

Author:Alvz.0x
 時に、口調や文体が微妙に適当だったりする場合がありますが、仕様ですね。保証期間も切れてますし、どうにもなりませぬ。諦めてください。
 悪意の伺えるものや宣伝、またそれらに準ずるコメント等は割と情け容赦無く削除しますので文句は言わないようにね?
 あと一部記事の基本コンセプトは「不遜」なので念のため。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する