見出し画像

ファミコン版ドラクエ3のぱふぱふバグについてまとめてみた

きっかけは自分もよく見ているYouTubeチャンネル「4ST」さんの動画。

ドラクエ3の伝統でもある「ぱふぱふ」だが、ファミコン版のドラクエ3において、具体的には以下の事象が発生することが報告されている。

・パーティ内に「しに」がいる状態、かつ、大量のGを持った状態で「ぱふぱふ」に行くと、大量のGが引かれる
・条件を満たさない場合は、引かれる金額はマチマチで、逆に全く引かれない場合もある
・リアルタイム世代の一般認識は「無料」

この動画に対して、ファミコン版ドラクエ3でメインプログラマーだった内藤寛氏が、自身のYouTubeチャンネル「内藤かんチャン」で検証動画を公開。

詳しい話は動画をぜひ見てほしいが、若干専門的な話も絡んでくるので、ざっくり簡単に(それでもめちゃくちゃ長いが)発生条件や原因についてまとめてみた。

【FC版ドラクエ3ぱふぱふ料金バグまとめ】

〈発生条件と発生内容〉

・パーティ内に「しに」がいる状態で「ぱふぱふ」に行くと、ぱふぱふ後の会話内容がチグハグになる
・かつ、65535+α以上の大量のGを持った状態だと、さらに65535+αのGが引かれる
・条件を満たさない場合、引かれる金額はマチマチで逆に全く引かれない場合もある

〈解析の結果判明したこと〉

・設計上の仕様は1ぱふ=100G
・「しに」の数に応じて「ぱふぱふ」対象メンバーに割り振られる数字が「0→1→2→3」になる
・参照先を間違えて、対象に割り振られる数字を含むアドレスを参照してしまう処理になっていたため「しに」1人に対して65535Gが料金に加算
・+α分も100G格納先ではなく一時作業スペースが参照されているため、状況によって中身が変わる

〈原因〉

・1ぱふ=100Gの設計仕様がテストチームに伝わっておらずテストが行われなかった
・「ぱふぱふ」を「しに」がいる状態や65535G+αの所持金を持った状態で利用する想定がなかった
・通常は4Gや70G等の現実的な料金(+α分)、所持金が足りない場合は全く引かれないため、表面化しなかった

……書いてるうちにガチの障害報告を書いてるような気分になってきたのでこのへんで(あと、再発防止策まで書けばそれなりに形にはなってると思う)。

感想、お待ちしています。 もっと私のコンテンツを見たいと思った方、 何らかの形で支援していただけると嬉しいです。 ■久住みずくがほしいものリスト https://www.amazon.jp/hz/wishlist/ls/2RRVHQQBDLB41?ref_=wl_share