◆◇ふたごじまのぢらい・滅◇◆



「ふたごじま」の「ぢらい」の検証の、2ページ目にさらに情報を頂いたので そのまんま掲載させてもらってしまいます。「ふたごじま」の「ぢらい」の謎の一片が、明かされようとしている…のか?!

赤緑の右の「ぢらい」を踏むと処理落ちモード、その状態で左の「ぢらい」を踏めば画面バグバグモードに突入。 青の右の「ぢらい」を踏むとフリーズ、左の「ぢらい」を踏めばポケモンの鳴き声連続再生モードに突入。

「ふたごじま」は謎に満ちすぎです。さて、頂いた情報を掲載させてもらいます。



昔から気になっていて、多少レベルが上がったので真面目に追いかけてみようとしたのですが、 ちょっと根が深すぎて わたしの てには おえない!って感じだったので後の研究者が現れたときのために日記を残します。

・右側のイベントを触ると D2D7 が 01 → 03 に変わっています。このフラグは「文字列描画を遅らせる」フラグのようです。 処理が重くなったように感じるのはすべての文字列描画が遅れるから。

- 左側のイベントを触ると D2D7 の状態により挙動が変わります。 D2D7 が 03 のとき、動画のようなマップ崩壊現象が起きます。D2D7 が 01 のとき、私の環境では直ちにリセットされました。 不可解なのが、リセット処理に入るときに ret で入っています。

本来あり得ないフローでコードが実行されて、call した以上に ret しすぎて、 スタックの状態次第で不正な処理に戻ってるのではないかとじもとではうたがわれています。




情報どうもありがとうございます!

なんかとってもむつかしい単語が書かれていて自分のレベルでは分からなかったりもしますが、 とにかくアドレスを教えてくださったのでちょっとそこに注目して見てみました。 当然、情報提供者様は検証済みのことだと思いますが一応やってみたのでご紹介です。

「文字列描画を遅らせる」フラグであるD2D7は、普段我々が冒険をしている間は常に「01」であり、 メッセージを表示させるときにチラッと「03」になり、また「01」に戻る、という挙動を繰り返していました。

連続でメッセージを表示させるときも、03と01を往復しておりメッセージ送りをするときは01になっている、 ぐらいの切り替わり具合です。「せってい」で「はなしの はやさ」を「おそい」にしていると常に03になる というわけではなく、どの速さにしていようと常に01が入っている場所のようです。

「おそい」にしているとメッセージ表示時に03になっている時間が長くなり、メッセージスピードも遅くなる。 「ふつう」にしていても「はやい」にしていてもメッセージ表示時には03になっているが、 その切り替わりは一瞬ですぐに01になっている。

そしてそこの数値は00になっていようがFFが入っていようが、 「せってい」を開くと必ず01になりました。だから処理落ちモードになっているときに「せってい」を開けば 元に戻ったのでしょう。

…だが、メッセージを表示しているときは01⇒03⇒01という動きを見せるD2D7さんなのに、 「ぢらい」による処理落ちモード時は看板を読んだりポケモンバトルをしたりして メッセージを普通に表示しても03のまま変わらなくなってしまいます。

レポートを書くとD2D7の数値もセーブされてしまうため、レポート⇒リセットのコンボでも処理落ちは直りません。 そのため、ロード画面の「せっていを かえる」やフィールド画面での「せってい」を開くこと以外で 「ぢらい」による処理落ちモードの解除ができないのでしょう。(「さいしょから はじめる」でも解除は一応可能)

さらに、D2D7が03の状態でレポート⇒リセットをして「つづきから はじめる」を 選ばずにタイトル画面に戻ろうとするとフリーズすることが分かりました。

文字描画スピードダウンのせいでタイトル画面の描画がめっちゃ遅れているのかと思い 猛烈に待ってみましたが、一向にタイトル画面は現れずゲームは無音のままフリーズでした。 ゲームボーイの電源を一度切るしかありません。

あと殿堂入りをしてみたけどそれでもマサラタウンに戻ると03のまま。 殿堂入りおめでとう!のシーンでは00になり、オーキド博士の図鑑評価のときにだけレアな「02」の数値になりました。 ただし「オーキドのパソコン」から図鑑評価をしてもらうときは通常のメッセージ送り扱いのようでD2D7に変化はナシ。

さて赤緑の左の「ぢらい」は右の「ぢらい」による処理落ちモード中でなければ 速攻フリーズしてしまいますが、その際にも一瞬メッセージボックスが表示され、D2D7には03が入っていました。

通常操作ではありえないけど「00」が入っているときに調べると「02」になりました。 (つまり01⇒03になり、00⇒02になっているので2プラスされている)

で、D2D7は通常01、右の「ぢらい」を調べて03になる以外はありえないんだけどこの左の「ぢらい」の本来の挙動を 知るための手がかりになるかもしれない、と思って04以降の数値を入れた状態でひたすら左の「ぢらい」を調べてみました。

するとまあ、当然ながらフリーズのオンパレードなんだけれども、まあまあ観賞用バグとして 面白いことは起こったのでざざっと紹介。

パターン1 … いきなりフリーズ
ソフトリセットも効かないほどの激しいフリーズを起こす。5分の1ぐらいの確率(というか数値)で起こる気がする。

パターン2 … しばらくしてフリーズ1
メッセージボックスやフィールドに1文字や2文字の「ね」などがポツっと表示された後、 メッセージ送りはできず、メッセージウィンドウは閉じられず、1歩も動けず、BGMはそのままで実質フリーズ状態となる。

パターン3 … つうしんたいきちゅう!
背景が真っ白になり、突然「通信待機中!」と出てそのまま動けなくなるのみ。 BGMは消えずに流れ続け、リセットしてもフアイルのデータは無事です。

主人公の姿はそのままのことが多いですが、たまにぐちゃっとしたグラフィックになることもありました。

パターン4 … 主人公文字化現象
ウィンドウが出た後、主人公が4文字のカタカナになって勝手に歩いているかのように切り替わり、 しばらく勝手にその場で歩いているような動きをした後に普通に動けるようになる。ただし主人公の歩くモーションは おかしいままで2コマ目がぐちゃっとする。マップ切り替えをするとフリーズ。

パターン5 … ポケモンが飛び出してくる
ウィンドウが開くだけかと思いきや、1歩動こうとした瞬間に野生のポケモンが出現する、というパターン。 おかしなポケモンが出てくるわけではなく、「ふたごじま」に出現するポケモンとの通常エンカウントです。 (ただし、けつばんモードのようにこちらのグラフィックが崩れ、相手のポケモンが左右反転することはありました)

パターン6 … 謎の選択肢が出現
背景に突然ボックスの中身が表示されるというパターン。下を押せば項目をスクロールさせることができることもありました。 メッセージ送りをしたらウィンドウが閉じ、普通に動けるようになることも。

ボックスの中身はボックス1が表示されましたが、一番上だけでなく中間から表示されていることもありました。

パターン7 … バグマップに切り替わる
右の「ぢらい」を踏んだ後のバグ表示には及ばないが、本当に周囲がバグって壁は壁となり脱出不可能となるパターン。 「あなをほる」で脱出は可能です。

パターン8 … しばらくしてフリーズΩ
ポツポツと文字が表示された後、マップがバグっていき、音もおかしくなり、ぐちゃっとなったかと思うと まだポツポツとマップチップごとにじわじわと変化があり、大分経過してからついにフリーズ。結構怖い。

昔、1番道路でバグらせて遊んでいるときにマップがじわじわと切り替わって電源を入れ直したら データが消えてた、ということがありましたがちょっとあのじわじわ加減に似ていたような気もします。

この様子は録画してみました。(ただし最初に遭遇したときはもっともっとフリーズまでに長かったし 勝手にソフトリセットがかかってタイトルに戻されました。同じ現象が起きないかリテイクを繰り返し、 まあまあ似たような現象が撮影できたのであった)


D2D7の数値の違いだけで、ここまで色んなフリーズの仕方をするとは…ホントに、この「ぢらい」は何を起こしているというんだ…!? そこの数値以外は全部同じはず…なんだが、時間経過でフレーム単位で変わっている数値はあるので、 そこが関係はしていそうです。(同じ数値でも違う現象が起きることもあったため)

ただし、この数値は安全とか、ただ文字送りが遅くなるだけ、という03と同じ効果の数値もありました。 さらに、右の「ぢらい」を踏むことによって03になるけど、画面全体がザザッとバグるあの現象は 一応00〜FFまで調べたけど03のときにしか起こりませんでした。これは右の「ぢらい」と連動しているせいなのか、偶然なのか…。

◆次の日の追記◆
なんと、れんださんからさらに詳しく説明を頂きましたので分かる方のために!そのまま掲載させてもらってしまいます。

どうやらこれは「メッセージ表示プログラムに全く関係ないデータを食わせてしまった」ことによるもののようです。

文字列表示プログラムは (緑初期だと) 00:05F1 あたりに中心部があるのですが、単に文字を与えるだけではだめで、「ここから後ろの文字は 50 までそのまま表示」とか 「このうしろのアドレスを表示しろ」とか「アイテムゲットした音をならせ」とか「ここから後ろをプログラムとしてそのまま実行」みたいな命令が一緒についています。 看板をみたりすると、HLレジスタに命令付きメッセージデータのアドレスを入れて文字列表示君を呼び出します。

このナニカは調べると看板と同じく call 05F1 しますが、謎アドレス(左は077D 右は0411)を渡していました。 こうなると文字列表示君はなにやっていいのかわからなくなるので適当な仕事をし始めて、 画面の枠を超えて文字を書いてみたり、図鑑評価の曲を流してみたり、ついにはセーブデータに手をだしたり、ということが起きるみたいです。

なんで D2D7 によってその結果が変わるのかはいまいちわかりませんが・・・

つまりはもともと看板か何かを置いていたがやめた。そのとき文字列データは消したけどオブジェクトを消し忘れてたので 文字列表示君が消したはずの文字列を求めて暴走した、という感じです。一歩間違えればサファリの椅子達もこうなってたかもしれませんね。


さらにもうお一人、転寝みるくさんからもこのような情報を頂きました。

速度に影響する領域は2進数でいうとこの0000 00XY のXY2桁分しかないらしく X=0はいつも通り、X=1で強さを見るときに文字送りが発生する仕組みみたい。 Y=0だとむしろいつもより文字送りが早くなり、Y=1がいつもの速度ということに。(研究不足なだけかも)

…と、のことです。お二人とも情報ありがとうございます。みんな、分かったか!?分かったか!それはよかった!! ということは右の「ぢらい」でD2D7が03になり、左の「ぢらい」を踏むとフリーズせず景色がバグるというのは別に 左右が連動していたわけではないということなのか…!?

そして、確かに左右の「ぢらい」の位置は「オツキミやま」の看板のように「最初に目に付く看板」が置かれそうな位置に思えます。 しかしセキチクシティの隠しメッセージのようにメッセージが表示されるわけではなくめっちゃバグバグするということは、 撤去されたのは色んな仕様が変更される前の、初期も初期の頃だったということなんだろうか…。

「ふたごじま」の「ぢらい」…それは誰かが看板を撤去した跡に残された禁断のゾーン。 そこに何が書かれていたのか、知る者はいないのである………。怖っ…。

2020年7月18日


◆目次に戻る◆






inserted by FC2 system