◆わざ「めざめるパワー」について◆


「めざめるパワー」。

個体値によって技のタイプや威力が決定する、どのポケモンでもどのタイプの技にもなりうる、そして高威力の技を覚えられる可能性のある、 まさに秘められた力を目覚めさせる技です。初出は金銀ですが、金銀’97の時点での「めざめるパワー」はちょっと違ったらしい・・・?

まずは、レイさんからの情報。

手持ちポケモンに目覚めるパワーを覚えさせた上で、個体値をオール0に変えたら相手に与えるダメージが0になりました… 当時のめざパは完成版金銀のものとちょっと違ったようです。(もしかしたらバグかも)

自分は金銀の「めざめるパワー」の威力やタイプ決定の事をよく知らなかったんだが、2Pさんがしっかり検証してくださったんだ・・・。



めざめるパワー気になったので調べました。定数項が無くて、製品版よりも個体値の差が大きく反映されます。能力低すぎて全くパワー目覚めないって何か哀しい

== 結論から言うと ==
「2で割って31足す」処理が無いのが製品版との違いです.

定数項がないので"すべての個体値が8未満" 且つ "特殊の個体値が4または0" の場合, 威力ゼロとなります.最大威力は78です: (8 + 8/2 + 8/4 + 8/8)*5+3

== 逆アセンブル ==
金デバッグ版に準拠. わざの処理追うときはD:409A通過時のHLレジスタ見張ってると楽です めざパの処理はD:7D21から

LD    A,($CA3A)
AND   A
RET   NZ
PUSH   BC
LD    HL,#$CA08
LD    BC,#$C9F2
LDH   A,($FFF2)
AND   A
JR    Z,$7D38
LD    HL,#$CDDF
LD    BC,#$C9EB
PUSH   BC       ; 以下威力計算: 個体値最上位ビットを使用
LD    A,(HL)	    ; 威力 = (こうげき&8)
SWAP   A
AND   #$08
LD    B,A
LDI   A,(HL+)    ; 威力 |= (ぼうぎょ&8)>>1
AND   #$08
SRL   A
OR    B
LD    B,A
LD    A,(HL)
SWAP   A
AND   #$08      ; 威力 |= (すばやさ&8)>>2
SRL   A
SRL   A
OR    B
LD    B,A
LD    A,(HL)	    ; 威力 |= (とくしゅ&8)>>3
AND   #$08
SRL   A
SRL   A
SRL   A
OR    B
LD    B,A      ; 威力 *= 5
ADD   A
ADD   A
ADD   B
LD    B,A
LDI   A,(HL-)    ; 威力 += とくしゅ&3
AND   #$03
ADD   B       ; 以上, 威力計算終了.
LD    D,A      ; 威力をレジスタDに退避
LD    A,(HL)	    ; 以下タイプ判定は製品版と同処理
AND   #$03
LD    B,A
LD    A,(HL)
AND   #$30
SWAP   A
SLA   A
SLA   A
OR    B
INC   A       ; ノーマルタイプ回避
CP    #$06      ; とりタイプ回避
JR    C,$7D7F
INC   A
CP    #$0A      ; 未使用タイプ回避
JR    C,$7D7F
ADD   #$0A
POP   BC
LD    (BC),A
POP   BC
RET



みんな、分かるか?ぼくはわからぬ。分からぬが、こういうことになっているそうだ!!とにかく本当の知識がある人はすごい!!

処理をそのまま掲載させてもらったけど、うん、なんか、学校で似たようなのを習ったから見たことがあるようなそうじゃないような・・・。 とにかく、バッチリ理解できる人たちはそれを見て理解してくれ!

ポケモンwiki様の「めざめるパワーの計算法」のページによると 「めざめるパワー」の威力を決める計算は、

個体値が8以上か否かによって変わる数値があり、それぞれのステータスに応じた数値の和(A)を求める。さらにとくしゅの個体値を4で割った余り(B)を求め、 {(A×5+B)÷2}+31 (小数部分切り捨て) がめざめるパワーの威力となる。 ・・・と、いうことらしい。

自分は英語ばかりでなく算数もサッパリなんだが、この最後の「÷2+31」がない、というのが金銀’97の計算方法ということなのでしょう。

これによってどれぐらいの違いが生じるのかすらも全く分からないので(←バカ)、試しに計算をしてみることにしました。

攻撃、防御、素早さ、特殊の個体値が全部1のポケモンがいたとします。計算式に当てはめると、 能力が8未満なのでAの値は0+0+0+0=0です。Bの値は、特殊÷4はつまり1÷4=0あまり1なので1です。

(0×5+1)÷2+31=1÷2+31=31.5 だが、小数点以下切捨てなので31。 金銀における個体値が全部1のポケモンの「めざめるパワー」の威力は31となりました。

・・・だが、金銀’97では「2で割って31足す」処理が無いということなので・・・。

能力が8未満なのでAの値は0です。Bの値は、特殊÷4はつまり1÷4=0あまり1なので1です。

0×5+1で計算式は終了。つまり、威力はたったの1ということに・・・!?

じゃあ、全部の個体値が最大値である15だった場合は?

頭イイ人ならこんなのやんなくてもわかると思うんですが、ぼくはわからんのだ・・・!一つずつ、試しにやってみないとまったくわからんのだ・・・。 (ない知恵絞って必死に計算した日のページを見るとどんだけアホかわかりやすい!)

能力が全部8以上なので、Aの値は1+2+4+8=15です。Bの値は、特殊÷4、つまり15÷4=3あまり3なので3です。

(15×5+3)÷2+31=70 おお、金銀の最大威力の70になったぞ。へえ〜・・・。

そして、金銀’97の計算方法で行くと?

15×5+3で計算式は終了なので、75+3=78 おおお、すごい!2Pさんによる、最大威力は78というのに本当になったぞ!!

すんませんアホで・・・。このページ、ただ自分がアホだということが明らかになってっているだけのような気がする・・・。 しかし、これでようやく「めざめるパワー」の計算方法を理解しました。これにより、個体値が0だったときの計算ができる!

個体値が全部0というポケモンの場合、Aの値は能力が8未満なので0となります。Bの値も、0÷4=0あまり0なので0です。 金銀の計算の場合、0÷2+31という、31が足されるという救済措置のおかげで威力は31になる。だが、金銀’97の場合はそれがない・・・ということは。

0×0+0=0 という悲しき計算結果が出ました。

う、うわああああ、本当に威力が0になってしまった!

これにより、個体値が全部0のポケモンの「めざめるパワー」は、目覚めないしパワーも無いということが確定しました。

他にも、AもBも0になるような個体値のポケモンは威力は0になってしまいます。例えば、攻撃、防御、素早さは7で特殊が0のポケモンとか・・・。

・・・あ、理解したうえで2Pさんの説明を改めて読むとすごく意味が分かる。31が定数項ってことか! あ、ちゃんと最大になるときの計算式も書いてくれてる!特殊は0以外にも、8未満であまりが0になればいいから、4でもいいんだ!把握した!!

あれっ、みんなの蔑むような視線を感じる!!いや、マジで算数ができない人間はこの程度なんだって・・・!!



このままでは明らかに目覚めなかったので、金銀’97の時点の計算方法は完成していなかったのでしょう。 金銀で、+31という救済措置が施されてよかったよかった・・・!!

2Pさん、詳しい検証結果を下さって本当にありがとうございました!!

2018年6月16日


◆目次に戻る◆






inserted by FC2 system