記事にならない小ネタ集 その2

・フェイからのご褒美

第1~24問目を解くと竹林の村の、第25~41問目を解くと9~14Fの、第42~50問目を解くと地下水脈の村の店で売られる可能性のある道具が貰えるようです。
何だか中途半端な感じがするので、何度か確認をしてしまいました。

・レベル変化時のHPの変化量

0以上2以下の乱数を2回発生させてその和をとり、それに2を加えた分だけ変化します。
従って、HPの変化量がnとなる確率をP(n)とすると、P(2)=7396/65536,P(3)=14620/65536,P(4)=21845/65536,P(5)=14450/65536,P(6)=7225/65536です(概ね1/9,2/9,3/9,2/9,1/9です)。

・浮島、暗い柱部屋

浮島はマス毎に1/2の確率で道具が出現します。道具が出現する場合、それがギタンになる確率は1/2です。
暗い柱部屋は柱毎に、何もない、モンスター、道具、ンドゥバがそれぞれ1/4ずつの確率で出現します。こちらは道具が出現する場合、それがギタンになる確率は落ちている場合と同じで1/4でした。
[PR]
# by oyasen | 2010-04-11 14:08 | 改造・解析

リクエスト

以前にリクエストがあったものを調べてみました。

・「どれを」と聞かれる道具

03F17D~03F1F2で設定します。03F19Dでサブルーチンに飛び、$01に道具の種類を入れます。
壺だと03F1ABで背中、魔物、やりすごし、トドかどうか、壺以外だと03F1BFで識別、壺増大、吸い出しかどうかを見ています。

・投げた道具の貫通

0246C5で$05に遠投かどうかを入れて、その直後に033382にジャンプします。
0333C8~0333D0が遠投、銀の矢のチェックです。この時点で遠投かどうかは$07+"S"、道具の種類は$05+"S"に入っています。

道具の設定方法が分かるくらいなら、これだけ言えば十分でしょう。頑張って下さい。
[PR]
# by oyasen | 2010-03-28 15:09 | 改造・解析

記事にならない小ネタ集

1つだけでは記事にならないようなことを3連発です。

・武器を投げた時のダメージ

直接攻撃の場合、(攻撃力)=($00+8)*(素手の攻撃力)/16に$00=(剣の強さ)+(ちから)を入れて求めますが、武器を投げた時の場合は単に$00=(剣の強さ)として攻撃力を求めるようです。
それから非常に細かいことですが、この式は厳密には、(攻撃力)=(素手の攻撃力)+($00-8)*(素手の攻撃力)/16で、/16の四捨五入は絶対値を四捨五入しなければなりません。厳密に計算しないと$00が8未満の時に攻撃力が実際の値より1大きくなってしまうことがあります。

・シャッフルダンジョンのパターン数

1~7Fはそれぞれ10通り、15,16,26Fはそれぞれ5通りでした。多いような少ないような。
杉並の旧街道、山間渓流、天馬峠、瀑布湿原はそれぞれ2フロアありますが、どちらにも出現するパターンというのはなくて、フロア毎にそれぞれ10または5パターンずつあります。まあ同じ形状のフロアが連続で出るのも困りますが。

・会心の重複

まずミノタウロスの斧での判定を行い、次に会心の腕輪での判定を行います。ミノタウロスの斧で会心の一撃と判定されると会心の腕輪の判定は飛ばされます。
よって、両方装備した状態で会心の一撃が出る確率は、1-(1-1/4)*(1-1/2)=5/8でした。実はひねりなしに計算すれば良かったということですね。間違っても1/4+1/2=3/4ではありません。
[PR]
# by oyasen | 2010-03-14 15:23 | 改造・解析

アイテムエラー

デバッグモード限定で、以下の状態で次のフロアに進もうとすると、「アイテムエラー」と表示されて操作を受け付けなくなってしまいます。

1.同じ道具番号の道具が複数存在している
2.割り当てがあるにも関わらず、その道具がフロアに存在していない(落ちていない、シレンもモンスターも持っていない)道具番号が存在する
3.割り当てのない道具番号の道具を持っている

通常時は、1.は放置し、2.は割り当てを消去し、3.は雑草を割り当てるようです。
「0本の矢:」が雑草に変わったというバグがありましたが、「0本の矢:」はコードFF(割り当てなし)のバグアイテムなので、3.が適用されたものと思われます。

リセットすると腹が減って倒れたことになってしまい、改造する上では全くメリットがないのですが、普通はあり得ない状態になっていないかチェックする機能ということです。まだまだ秘密が多いデバッグモードでした。
[PR]
# by oyasen | 2010-03-07 12:17 | 改造・解析

永久倍速のやり方

とうとうSFC版風来のシレン最大の謎を解明する時が来てしまいました。
永久倍速は確実に起こす方法はないとかセーブデータが欲しいとか言った直後に判明したというのも困ったものですが。
やり方から言うと、「キャラ番号00のガイコツまどうに杖を振られて倍速効果が出るとそのまま永久倍速になる」です。

このバグの原因を解説します。
$7E8780はシレンの速度(01 通常,02 倍速)を示し、$7E8708は通常は00で、シレンが倍速のときその残りターンを示します。
$7E8708は00以外だとターン毎に値が1減少し、01から00になった時にシレンの速度を通常に戻します。しかし、シレンが倍速で$7E8708が00だと倍速はいつまで経っても解除されることがありません。この状態が永久倍速です。
そして、ガイコツまどうの倍速効果ですが、これは引数$01を$7E8708に入れるようになっています。しかし、このルーチンの前になければならない筈の、$01に残りターン数を設定する処理が忘れられています。
それでは$01には何が入っているのかというと、杖を振ったガイコツまどうのキャラ番号が以前の処理で入っています。つまり、倍速の残りターンは、杖を振ったガイコツまどうのキャラ番号になってしまいます。
従って、キャラ番号00のガイコツまどうに杖を振られて倍速効果が出ると、残りターンが00の倍速、すなわち永久倍速の完成ということになります。

キャラ番号は、シレンが常に13で、モンスターは12から前に割り当てられていくので、キャラ番号00はモンスターの数を限界まで増やさないと割り当てられません。だから、いざ検証しようと思って通常のフロアで敵にガイコツまどうの肉を投げ付けても永久倍速は起こりません。
それに対して、モンスターハウスならキャラ番号00のガイコツまどうに杖を振られるということは十分起こり得ます。発見報告は複数あるが、それを検証しようとしても誰も発見できない、ということにも納得です。
キャラ番号はメモリを調べなければ、先に行動するモンスター程大きいということくらいしか分かりません。トドを分裂させて最後に分裂したトドにガイコツまどうの肉を投げ付け、杖を振ってもらうのが最も簡単な方法でしょう。

ということで、モンスターハウスや罠が関係していると言われていましたが、きっとそれらは私が言うようにモンスターハウスで杖を振られて永久倍速になり、その後モンスターハウスにある罠を踏んでそれが原因だと勘違いしたのでしょう。
このバグ技を意図的に使って、風来のシレンランキング等にエントリーしたりしないで下さい。
[PR]
# by oyasen | 2010-03-04 20:21 | 改造・解析