◆ピカチュウがついてこなくなる現象の真実◆

◆目次に戻る◆


元はゲームの小ネタ・小話の1ページの話題でした。 「ピカ版のピカチュウを金銀に送り「でんきだま」を預かってからピカ版に戻すと ピカチュウが後ろからついてこなくなり、鳴き声も他のピカチュウと同じ電子音になる」ということが 「Pixiv百科辞典」に書かれていることを教えてもらい、 その現象を再現すべくピカチュウから「でんきだま」を預かってみた…が、 別にピカチュウは普通についてくるし、検証に使った金とピカ版のデータが消えたので それ以上の検証ができなくなってしまったのであった。

虚空に消えたピカ版と金のデータではあったが、その犠牲を通して貴重なことを知ることができた。

それは「ポケモン金銀」の中で「タイムカプセル」が使えるようになっているというフラグが立っていなくても、 「ポケモンスタジアム金銀」の「けんきゅうじょ」では過去作との通信が行える」というものであり、 つまりはまあ話題がブレブレの酷いモノでした。そのページのタイトルも 「ピカ版のピカチュウが云々」とは全く関係なく、 「ポケモンスタジアム金銀のタイムカプセル」 になっちゃってます。ピカチュウのピの字もない。

…だが、そのページの最後でこんなことを言っていました。

いつかそのような現象が起こる原因が解明される日が来るのかもしれない …と。 ピカ版のピカチュウを金銀に送り、「でんきだま」を預かってからピカ版に戻したら ピカチュウが後ろからついてこなくなってしまった、そのような事象が確認されているのもまた事実。 力及ばず、自分には検証はできないが…いつか、いつの日か、それを解き明かしてくれる勇者が現れることを 我々は信じるのじゃ……。

と、信じていたら解き明かしてくれた勇者が現れました。 バグ解き明かしのクリスタルを集め、伝説のバイナリソードを抜いた勇者が魔王デンキダーマを倒しただと!?


というわけでそちらの、うるしね。さんのページを読ませていただいたところ…なるほどなるほどなるる…。 皆さんもそちらのページを読みましょう。そちらを読みさえすればこのページをこれ以上スクロールする必要はないです。

…が、そうだな、消えた金とピカ版のデータの供養として、ここでも説明をさせてもらおう。 前のページ(「ポケスタ金銀のタイムカプセル」のページ)からこのページへ続くことを 記述しておき、この現象の真実にみんなが辿りつけるようにしておかなければいけない。

うるしね。さんが説明しておられることをもう一度言うだけなんだけど、 一応自分でもあれこれ試してみてそういうことか、と分かったので最初から説明させてもらいます。

まず、ゲームを開始するとき(セーブデータがあるならロードする前も)、 主人公の名前のデータの場所にはデフォルトの名前が勝手に入ります。 緑だとそのデフォルト名は「やまぐち」文字コードにすると「D4 CF 28 C1 50」となり、 「やまぐち+終端を表す50」の5文字で「やまぐち」を表します。 デフォルト名はソフトのバージョン(色)によって違いますが、今回は緑の「やまぐち」で説明。

そしてオーキド博士に名前を教えてくれと言われて決定した瞬間に、 「やまぐち50」が「プレイヤーが入れた名前(最大5文字)+終端を表す50」に書き換わります。 例えば「アアアアア」なんて名前にしたら「ア」は「80」なので「80 80 80 80 80 50」というデータが入ります。 つまり名前に付けられる文字数は5文字だけど、名前の領域は最後にくっつく「50」も含むので6文字が確保されています。

…しかしなんかここも微妙におかしくて、ゲーム開始時にさっき言った「やまぐち」が入る時、 実は「D4 CF 28 C1 50」の後になぜか「B2」が入っています。これはプログラム的に必要なものなのかなあ…ぼくわっかない。 「B2」は文字だと「い」だが…。

なので、主人公の名前を「アアアアア」にした場合、「D4 CF 28 C1 50 B2」(や ま ぐ ち 50 い)の6文字が 「80 80 80 80 80 50」に書き換わっています。ゲームを始めたばかりの時は その「やまぐち」付近には何のデータも入っておらずつるんつるんです。だからこそB2がとても異色な感じ。

まあそれは明らかなる脱線なので気にせず後日別ページで話すとして、 ◆次の日の追記⇒なんと次の日に検証して即行でページを書きました。早っ。 「主人公のデフォルト名・承」のページはこちらでどうぞ。 -追記部分終了。 大事なのは「名前データは6文字」ということ。例えば「ケミカ」ならば 「88 9E 85 50」というデータが名前を決める際に入り、 余った2文字分は「00」になります。

つまりは「88 9E 85 50 00 00」というのが主人公を「ケミカ」という名前にした場合に 名前の領域に入る6文字ということで、ここはゲーム開始したらよっぽどのことがない限り変わることはありません。 そんな方法はないはずです。ないはずです。

ポケモンの名前も同様。ニックネームを決めるか尋ねられて名前を付けたら同じように最大5文字+50の6文字が入ります。 「ア」という1文字の名前のポケモンは「80 50 00 00 00 00」というデータになってます。 そして「50」が入った瞬間にそのデータはそれでおしまい、という意味になるので 「50」より後の文字は表示されません。

例えば「80 80 50 80 80 80」だったら 「アア50アアア」ですが、その名前を画面に表示させる際には「50」が来るまでのデータが入るので 「アア」の2文字だけになり、50の後は無視されます。

逆に50が入っていないとそれはそれでエラいことになり、 50が来るまでのデータを文字として表示してしまいます。 この画像は「ケ ミ カ 50 00 00」の後半3文字を「ア」にしてみたもの。 「ケミカアアア」の後が50じゃないので文字がズンドコ続いてしまっています。

50以外にも文字の表示を止めてくれる文字はいくつかあり、例えばFFでも止まります。 (上の画像だと「9」を表示しているのは「FF」のせいであり、そこで文字の表示が終わっているのは「FF」のおかげ)

他にも「00」でも止まってくれるので、「ケミカ 50 00 00」でなく「ケミカ 00 00 00」でも同じ名前が表示されます。

さて、ピカ版のピカチュウは特別な存在であり、生きていれば連れ歩くことができます。 別のソフトからピカチュウを連れてきても後ろからついてくることはありません。 それは「主人公のピカチュウをゲームが判断しているから」です。

その判断に「でんきだま」の有無が関係しているのか、というのが事の発端です。 結論を言うと「でんきだま」の有無は無関係です。そこの数値は判断に含まれていません。 金銀で「でんきだま」を預かっても、別の道具を持たせてピカ版に送り返しても、 ピカチュウが後ろからついてくるかの条件には関係ありません。

となると、あとは「おや」の名前とID。

早速IDを文明の利器で変えてみると、 ピカチュウが忽然と姿を消しました。当たり前だけど、 数字が1違うだけで消えました。つまりIDは大事。

次に「おや」の名前と主人公の名前の一致。 主人公の名前を「ケ ミ カ 50 00 00」から「ケ ミ 50 00 00」にしてみると、 やはりピカチュウは一瞬で消滅。それもそりゃそうだ当たり前田のコラッタです。

では、表示は変わらないけど「ケ ミ カ 50 50 00」にしてみたら?

消★滅。名前表示の見た目は変わらなくても、 終端の50以降の部分もちゃんとピカチュウの「おや」の名前と 主人公の名前が一致しているかをチェックしているようです。

では、これまた表示は変わらないけど、「ケ ミ カ 50 00 50」にしてみたら?

復★活。さっきと50の位置が5文字目か6文字目かというだけの違いですが、 ピカチュウの「おや」の名前が「ケ ミ カ 50 00 00」で、 主人公の名前が「ケ ミ カ 50 00 50」の時はピカチュウはついてくる。 主人公のピカチュウだという判定になります。

ピカチュウが後ろからついてくる条件は「IDと、名前の5文字目までが一致している」ことであり、6文字目は無関係。 名前データの6文字目は、名前が1文字〜4文字ならば「00」が入り、5文字なら「50」が入ります。

…んで、何が困るかというと、どういうわけか金銀にポケモンを送ると 名前の「00」の部分が「50」に書き変えられてしまうという事実があるから。 まさか、金銀(+クリスタル)でそんなことが行われていたとは…!!

金銀では名前データの法則が変更されたらしく、名前データ6文字に「00」が存在しないようになっていて 「50」の後も全部「50」が入っています。

この画像は暇人が奇声を発しているのではなく、 金銀で主人公に「アアアアア」とつけている場面。 この場合、主人公の名前データには「80 80 80 80 80 50」の6文字が入ります。

また暇人が叫んでいるように見えますが、 今度は「アア」と名付けたところ。名前データは赤緑青では 「80 80 50 00 00 00」となりましたが、金銀では「80 80 50 50 50 50」という6文字になり、 空白部分は50でぎっしりになります。

この50ぎっしり現象は主人公の名前を決定、 ポケモンの名前を決定の時以外にも「タイムカプセル」で赤緑青からポケモンが送られてきたときにも なぜか当てはまってしまうようで、例えば「ア」という名前のポケモンを送ってきたら 元は「80 50 00 00 00 00」という名前だったのに金銀に送られると 「80 50 50 50 50 50」という名前に見た目は変わらないけど中身的に変わっています。

そしてまた赤緑青に送り返そうとも連なった50が変換され直して「80 50 00 00 00 00」に戻るという処理はなく、 「80 50 50 50 50 50」という名前のポケモンが赤緑青に戻ってきます。 つまり見えない部分で名前が変更されてしまっているということになります。

このせいで、ピカチュウがついてくるかの条件の「名前の5文字目までが一致」という条件を満たせなくなるパターンが生まれます。 ピカチュウの「おや」の名前が元は「ケ ミ カ 50 00 00」だったのが「ケ ミ カ 50 50 50」となり、 主人公の名前データは「ケ ミ カ 50 00 00」なのに5文字目が「00」と「50」で一致しなくなり、 ピカチュウは後ろからついてきてくれなくなる…というのが、 タイムカプセルによるピカチュウ一般ポケモン化現象の真相だったようです。

つまり「おや」の名前が4文字だったら金銀に送った場合に6文字目に50が入ることになるけど ピカチュウがついてくるかの条件は5文字目までの一致なので6文字目が書き変えられようと問題なし。 5文字だったらそもそも何も変わらないので、これまた問題なし。

金銀にピカチュウを送り、戻してきたときにピカチュウが一般ポケモンと化するのは 「おや」の名前が3文字以下の時、ということです。

…そう、つまり、初めてこの現象を検証した際に、GBパックの接触不良のせいで ピカ版と金のデータが消えなければ、ちゃんと検証ができていれば、 主人公の名前は「ケミカ」という3文字なのだからピカチュウがついてこなくなる現象が再現できていたはずなのである… な、なんとも惜しかった…!さらに送り返して、「でんきだま」の有無もしっかりと検証ができただろうに…!! 中古屋さんで買ったボロボロのGBパックは、すでに限界を迎えていたのだった…。

思えば2Pさんからこんな情報を2017年に頂いていたんだった。

「第一世代の50hの後ろの文字の話ですが, おや名に関しては完全一致しないと姓名判断師で再命名できず, ピカ版のピカチュウも他人の個体扱いになります. しかし、50hまでの部分が一致していれば経験値ボーナスは入らず, バッジ不所持でも言うことを聞いてくれます.」

これは確か、かつてニックネームの50の後の00が別の文字だったら云々、という検証をした時に 頂いた情報です。2Pさんどうもありがとうございました。

姓名判断師はちゃんと6文字目まで一致しているか確認して 6文字目までのどれかが違ったら「他人のポケモン」と判断してニックネームを 褒めちぎり、ニックネームの変更をさせてくれない。

だがピカチュウの連れ歩きは5文字目まで一致していればOK。 さらに、「おおめに経験値をもらった!」と出る「人からもらったポケモン」かどうかと 「言うことをきくか」の判断は50より前の文字が一致していればいい。

…うん。まあ、うん。そうか。そうなってるんだな。ちょっ、整理しよう。

バトル中の「他人のポケモンか」の判定は、50以降は見ない。

ピカチュウがついてくるかの判定は、5文字目以降は見ない。

姓名判断の「他人のポケモンか」の判定は、6文字全てを見る。

これって、いうなれば「全部同じシチュエーション」だよな。 プレイヤーがこのポケモンの「おや」かを判断している、という点では全部同じ状況だよな。

なのに判定方法が全部違うという謎。なぜ統一されていない。 プログラムした人が違うのか…?

金銀で名前の50以降の00が50で埋められるのならば、 ピカチュウがついてくるかの判断はバトル中の他人のポケモンかの判定と同じだったなら 金銀に送ってピカ版に戻したらピカチュウが一般ポケモン化することはなかった。

そもそも、姓名判断師が6文字全部見ているならば金銀で00を50で埋める処理ってのは やらない方がよかった…?でも必要だからそういう変更をしたんだろう…。 つまり主人公の名前が4文字以下だったら、金銀に送って赤緑に戻したら ピカチュウに限らずそのポケモンは他人名義になってニックネームの変更ができなくなるってことだよな…?

これって、多くの人が起こった現象なんじゃないか?何ら問題の無いプレイ方法でも起こる現象じゃないか? 自分も普通にプレイしていた頃、起こっていたかもしれないのか…!?

何にしても、うるしね。さんと2Pさんの素晴らしき検証結果と情報がなければ ピカチュウの一般ポケモン化現象は自分に解き明かすことは絶対にできませんでした。 バトル中の「他人のポケモンか」の判断はまた違う処理だなんて、絶対に気付かない…!!

謎が見事に解けた…これで思わぬピカチュウ一般ポケモン化現象に見舞われることもなくなりました。 情報どうもありがとうございました!!

これをpixiv百科事典に書くとしたら…とりあえず「でんきだま」はそもそも関係ないから、 「でんきだま」の項目に書くことじゃないな…。

「初代から金銀にポケモンを送る際、 「おや」の名前の文字数によっては空白部分が終端を表す文字に全て書き変えられてしまうため、 一度金銀に送ったピカチュウをピカチュウバージョンに戻すと最初にもらったピカチュウかどうかを調べる処理で「おやの名前が違う」と判断され、 ピカチュウがついてこなくなってしまう。ただし、処理が違うため「人からもらったポケモン」という 扱いにはならない(経験値を多めにもらったりはしない)。この現象は、プレイヤーの名前を 4字以上にすると回避できる。」かなり簡潔にまとめても マニアックすぎる。なんで回避できるのか説明するともっとマニアックだし、 4字以上ならピカチュウ関連はいいけどニックネームの変更はできなくなるし…やーこしい話やで工藤!!



…さて、ここからは完全なる蛇足です。DASOKUです。さらに見る価値ナシ。

赤緑では名前を付ける際に、名前+50+余った空間に00を入れる、ということになっていました。 金銀では名前+50+余った空間全部50で埋める、ということになっていました。

じゃあ、その二つの中間の時代はどうだったんだろう?と、思ってしまいました。 そして…見にいってしまいました。そう、97年ベータ版ポケモン金銀では どうなっているのか?ということです。禁断の扉を開いてみました。

勝手に主人公には「サトシ」という名前が付きます。 これは「8A 93 9B」となりますが、主人公の名前のデータ部分を見てみたら、 「8A 93 9B 50 00 00」という6文字になっていました。

つまり、初代と同じく50の後を00で埋めるタイプ。97年ベータ版の頃の金銀の 名前データは初代と同じ形式だった…!これが製品版の金銀になるに当たり、 00じゃなくて50で埋めた方がいい、ということになったのでしょう。

と、思ったら。

ポケモンの名前、「ホノオグマ」は「9C 98 84 07 9D 50」の6文字なので 00も50もそれ以上入る余地がありませんが、名前が3文字である「ハネコ」は 「99 97 89 50 50 50」というように、 00ではなく50で埋める金銀タイプになっていました。

主人公の名前は初代タイプ、ポケモンの名前は金銀タイプ…まさに中間、という感じ。 97年ベータ版金銀には姓名判断はないので主人公の名前と「おや」の名前が 6文字全部一緒か、を調べる場面がないから問題ないのか…。



というわけで、赤緑と金銀の名前の付け方の違いと タイムカプセル利用時に起こる困ったことのあらまし+αでした。

通信交換や通信対戦系の検証はなかなか難しい…!今や通信ケーブルがなんかちょっと柔らかくなってきているので 物理的にも検証ができなくなっていっています。GBパックも死にかけているとあらばポケモンスタジアムでの 交換もできない(どころかデータが消える)わけで…。

できればポケモンスタジアム金銀のタイムカプセルでも名前の00が50に書き変えられてしまう現象が起こるのか 検証したかったものですが、それが分かったところで特に得られるものはないので今回はこの辺で終了です。

タイムカプセルを使ってポケモンを金銀に送り、赤緑に戻す予定のある人は主人公の名前を 5文字にしておけばとりあえず不具合は起こらないはず。ど〜しても4文字以下にしたい場合は… 「ケミカ  」とかにすれば万事解決。…か?

2022年05月06日


◆目次に戻る◆







inserted by FC2 system