『ポケモン』ダイパリメイクにて“電卓がおかしい”とのユーザー報告が出現。本当におかしいのか

『ポケットモンスター ブリリアントダイヤモンド・シャイニングパール』にて、「電卓」の奇妙な挙動が話題となっている。編集部にて、実際に『ポケモンBDSP』にて各言語設定での挙動を調査した。

ポケットモンスター ブリリアントダイヤモンド・シャイニングパール(以下、ポケモンBDSP)』にて、「電卓」の奇妙な挙動が話題となっている。ユーザーたちが、電卓が電卓として機能していないと報告しているのだ。この報告は真実なのだろうか。


『ポケモンBDSP』は、2006年にニンテンドーDS向けに発売されたRPG『ポケットモンスター ダイヤモンド・パール』のリメイク作だ。本作は原作の再現性が評価される一方で、不具合も多数報告されている。ゲーム進行の支障となるバグも報告されているものの、単に奇妙であったり“裏技”的に利用できるバグも多数見つかっている(関連記事)。そして今回、コミュニティにて注目を集めているのが、ゲーム内にある電卓のおかしな挙動だ。

本作には、「ポケッチ」と呼ばれるゲーム内端末がある。ポケッチは多彩な機能をもっており、時計や万歩計のほかゲームプレイに役立つ機能も兼ね備えている。そうした機能のうちのひとつが電卓だ。ポケッチの電卓は、最大10桁まで表示でき四則演算が可能。入力キーにはピリオド(.)もあり、小数点以下の計算への対応を示している。簡単な計算をしたい時には実用性を発揮するオマケ機能だ。しかし、海外掲示板Redditに投稿されたのは、明らかに間違った答えを返す電卓の姿だった。

RedditユーザーK0nr4d氏によって投稿された動画では、まず割り算を試している。「10 ÷ 5」を入力したところ、答えは「2」だった。次に「10 ÷ 4」を試すとなぜか「002」との結果が表示された。正解は「2.5」となるはずであり、雲行きが怪しくなってきた。そして同氏が割り切れない「7 ÷ 3」を入力すると、電卓は突如として「??????????」と大混乱を示し、職務を放棄してしまった。続いては、小数点以下を含む計算を試みる。「2.3654」と入力したはずが、しかし表示されたのは「4.3654」。とりあえず2で掛けてみると、答えは「47308」となった。つまり、表示とは無関係に「23654」が2倍になったのだ。


この挙動は、電卓としておかしい。突然計算を放棄するポケッチの挙動もさることながら、小数点が無視されてしまう点も変だ。とはいえ、小数点の実装が上手く行かなかった際に、入力が通常の整数として扱われてしまうのは、ある意味で理にかなっている。電卓プログラム実装においては、小数点以下の計算も内部的には整数として扱う場合がある。つまり、上述の「47308」との答えは単に小数点の表示が抜けているだけとも考えられるのだ。電卓の小数点にまつわる処理は実装が少々ややこしく、オマケ機能ということもあり不具合が見落とされてしまったのかもしれない。

一方で、同スレッドでは「本体の言語設定によっては正常に動作する」との報告も見られる。編集部にて、実際に『ポケモンBDSP』にて各言語設定での挙動を調査した。まず、日本語・英語設定では小数点以下の絡む計算や、前述の割り切れない割り算などで正常な結果が出た。しかし、ドイツ語・フランス語の本体設定では、K0nr4d氏の投稿のような異常が見られた。具体的には、「??????????」と計算を放棄する現象や、小数点を無視して整数として計算されてしまう挙動だ。また、興味深い点として、フランス語版はやや挙動に差異が見られた。ほかの言語では「3.14 + 3.14」などの計算は単純に「314 + 314」と解釈されるのに対し、フランス語版では「3.」と入力した時点で電卓が入力を拒否。いくら計算しようとしてもクリアするまで「3」を表示しっぱなしになってしまうのだ。


本体の言語設定によって電卓の挙動が変わる点は興味深い。考えられる理由としてはふたつある。ひとつは、ソフトが利用しているNintendo Switchのなんらかの機能が予想外の挙動をもたらしている可能性。そしてもうひとつは、『ポケモンBDSP』内部で本体の言語設定を認識して変化する部分があり不具合に繋がっている可能性だ。本作はゲーム開始時に表示言語を選ぶシステムとなっている。また、本体言語設定を変更しても、ゲームの表示言語が変わることはない。つまり、ユーザーから見えない部分で何らかの仕組みが動作していることになる。具体的に何が起きてこうなったかは分析が難しく、ゲーム内部のアルゴリズムが気になるところ。

検証結果をまとめると、日本語および英語では小数点を含めた四則計算は機能するものの、フランス語やドイツ語においては小数点が絡むとやや計算がおかしくなるようだ。上述のスレッドでは、ヨーロッパ圏では小数点表記に「ピリオド(.)」ではなく「カンマ(,)」を用いるのが原因ではないか、と考察するユーザーもいる。ユーザーたちはおかしな挙動の原因について興味津々のようである。


なお、ポケッチの電卓については「9 + 10」の答えが「21」になるとのTwitter投稿が話題となっていた。こちらも不具合かと目されたものの、単なるジョークの可能性が高い。というのも、英語圏には「9 + 10 = 21」なるミームが存在するのだ。少年が「9 + 10は?」と聞かれて「21」と答えてしまうこのミームは、様々なかたちに波及した。そのため、上述のツイートは不具合報告ではなく「9 + 10 = 21は正しい」とするジョークと考えられるのだ。編集部でも全言語で同様の計算をおこなったが、答えはきちんと「19」と返ってきた。ポケッチ電卓は整数の計算については安心して利用できそうだ。

『ポケットモンスター ブリリアントダイヤモンド・シャイニングパール』は、Nintendo Switch向けに発売中。




※ The English version of this article is available here

Sayoko Narita
Sayoko Narita

貪欲な雑食ゲーマーです。物語性の強いゲームを与えると喜びますが、シューターとハクスラも反復横とびしています。

Articles: 1847