2014年11月2日日曜日

本当にあった任天堂スマッシュブラザース3DSの怖い話。136年ネット対戦禁止。←ん?それって?

http://blog.esuteru.com/archives/7913493.html
原因はなんとなく一目で判ったのだが。相変わらず盛り上がってるな八間

このうちお一人のデータで検証してみましょうか

https://twitter.com/yamamorikonnbu/status/528359952503431168

  • 例えば 71582279分43秒。そもそもペナルティ系時間にこれほどの桁数は必要ない
  • 秒に直すと 4294936760 おや32ビットに行っちゃってます
  • 16進数に変換すると ffff88b8 ふむ。上位が綺麗にffffだからこれが余計だな
  • 88b8 だけを10進に変換すると 35000 
  • これが秒だとすると 9時間。大分現実的な時間が出てきた
  • そもそもペナルティは10分とからしい。まさか時と分を取り違えてるのか?
オイオイ随分と初歩的なバグだな。

  • 32ビットデータの上下を取り違えて取得してるようにも見える。
  • unsigned short と short を取り違えて符号拡張しちゃった挙句 long で格納しちゃってるようにも見える
セーブデータに上記の32ビット秒数が入っちゃってるらしいので、それを外部から加工すればデータとしては修復可能には見えるけど。

バグとしては正直かなりお粗末な部類でしょう。

総論として、駄目だなー任天堂。