フォロー

ヨッシー、大砲は(>= 120)だけど、ペンギンは(== 120)という処理をしているのか。こういうのって一般に(==)とかにはしないと思うんだけど、以外だな

youtube.com/watch?si=6fTN47Bl5

確か俺が知っている話では、マリオの座標はfloat32であるのに対し、マップの座標はuint16であるから、オーバーフローして並行宇宙に行くことができるという話は聞いたことがあるのだが、もしその比較対象の型が異なっていた場合、120枚以上取っているのにヨッシーがいないみたいな結果にもなりそうだよな

何言ってるかわからねーと思うが、スターの枚数がuint16で管理されていたとして、その比較対象がuint8だとしたら、256枚目なのにヨッシーがいないみたいな結果になることもありえるんじゃないかってことだよ。
まぁ、さすがに、そんな無駄なメモリの使い方をしないと思うので、どっちもuint8で管理されていると考えるのが普通だが

だって、あれで8MBらしいからな。相当メモリを節約しないと、あそこまでならないはずだ

いや、でも、コインの枚数も255枚が最大で良いのに(振動パック版だと)999枚が最大だから、スターの枚数もuint16で管理されていて、999枚が最大かもしれない。1000枚取ると、コインと同様に、別のカウンタがバグるという感じかもな

uint16と書いたが、おそらく厳密には、数ビットが別の値として管理されていると思われるので(確か時オカとかも同じ管理方法だったはず)、ほぼほぼそういう管理方法になっているだろうな

(なお、これらは、全部自分のゲームのやり込み時に得た情報で、この元動画のようにチートで得た情報ではありません。別にこういう検証が悪だと言いたいわけでもないが、ご了承をば)

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。