ホーム > その他, セレクトバグ > 「ポケモンを呼ぶ笛」でイーブイを出してみたかった

「ポケモンを呼ぶ笛」でイーブイを出してみたかった

ので検証してみた。
やり方は雫月さんのとこを見てください。
画像付きで詳しい説明があります。

まずは原理から。とはいえ完全には把握できていないので推測もかなり。
例によって文字列系バッファオーバーフローです。内部的にやってることは完全にミュウを釣るバグと同じ。

1.名前のむちゃくちゃ長いアイテムを使う
2.使おうとした時に(?)名前のデータがどこかにコピーされる
3.勢い余って「メニューを開いた時に後から戻すために保持しておいた本来のマップデータ」までコピーし始める(?)
→0xCE59(画面の特定マスにおけるチップ情報)の内容が0xD036(ここに書くと該当番号の戦闘がはじまる)にコピーされる
4. うまいこと0x50で終端していれば止まり、メニューを閉じると戦闘が始まるが、終端していないとそのまま壊し続けて死ぬ
(セーフのチップと呼ばれている物が0x50に該当するもの。「木の左下」など。)

が、0xCE5A以降に0x50があっても死ぬ場合があります。何かしらの条件でjmp先が変わり、未定義のオペコードに行ってしまう模様。(フリーズするパターン)
0x50のチップが0xCE5Aよりも前にある場合も当然失敗します。(何も起こらないパターン)

さて、肝心のチップデータを覗いてみた結果、
0x00-0x5Fまではだいたい普通のマップチップなのですが、
0x60-0x7Fまでは ABCDEFGHIVSLM:いう「」『』 などと文字が並んでいる。
さて、気になるイーブイの番号は?
→0x66
理論上可能、現実的には不可能といったところか。

・名前の長いアイテムを使ってフリーズせず
・66 50の順にマップチップが並んでいる
条件を満たすバグマップに入ることができれば可能かもしれませんが。
道具の31番目で座標をいじくって飛ばせばあるいは。

・・・うん、普通にイーブイの化石作るわ。

広告
カテゴリー:その他, セレクトバグ
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。