Rooster Adventureの概要とざっくり手法
動画を見てなんとなく理解したばかりなので、誤りがあるかもしれませんが、なんとなく助けになればと投稿してみます。たくさんありました。
GI○○ZINE的な動画の内容をそのままコピーする記事でゴミです。
※この技を理解するにはメモリの値を知っておく必要があります。
動画と合わせてみるほうが理解しやすいです。単体だとチョットムズカシイ
簡単に概要
闇の力がBGB上のメモリD240に01BCが入っている発生する。それを起こさないために、D240,D340,DF40に01BCを入れることで闇の力をスキップする。
*1
闇の力のイベント発生するもののメモリ値が、D240,D340,...,DF40のいずれかに格納される。 発生させないためにはD240~DF40までをroosterとアイテム・敵以外のオブジェクト(後述)で埋める。バグ技でroosterをメモリに保存するのと、アイテムを使用してオブジェクトを埋め、必要なものが全て埋められた状態で闇の力が発生するマップに入る。 そうするとイベントが発生せず、エッセンスを収集するのが不要になるため大幅短縮になる。
導入
メモリの見方
ツール自体はエミュレータにあるRAM watchを利用する。
D000はリンクのアドレスでこれを0にするとリンクが消える。01だとリンクが登場するような仕組み。
オブジェクト1つは64バイト。 D240~D270までが1つのオブジェクトの領域となる。 次はD280~D2B0までとなるがそこには敵のオブジェクトが格納される。 D240が01だとroosterが表示され、それが0だとオブジェクトは表示されない。*2
格納されているもの
Dx00~Dx40:アイテム
Dx40~Dx70 その他
Dx80~DxB0:敵
DxC0~DxF0:矢だのブーメランだの利用したアイテムの領域となる
誤りを含むが、簡潔にするため、Dx40(xは2~Fまでの16進数での未知数)はアイテム・敵以外のオブジェクトとして話をすすめる。
デモンストレーション
1.ピューの実を使用する
2.ピューの実で飛ぶタイミングでスタート。(セレクトでもスタートセレクトでも構わない)先行入力でグローブを使い、roosterを掴む
3.D240が01(roosterが表示されていたのが)、01から03となる
4.roosterが画面上に保存される
5.その状態で右のroosterを見ると、2匹目がD340に01として存在するようになる(オブジェクトが次の値に格納される)
バグ
バグの発生は飛ぶ直前にグローブを掴むことで発生している
階段右画面の崖のあるところに roosterがいる場合は、初回成功時にD240に03,D340に01が表示され、
階段のある画面だと、D240,D340それぞれ0が代入されている。ピューのみで飛んだタイミングにグローブでroosterを掴んだことで、D240には03(空)とD340には01(本体)となり、roosterの値がおかしくなっている。*3
値を格納する
敵とアイテム以外のオブジェクトとさきほど言ったものを利用する。以下に挙げるのは動画で使用されているもの。
- ブーメラン
壁に当たった時のオブジェクトがD240、D250、D260に値がそれぞれ81(82),14,01と入る。Dx40のみ重要。 その状態で右画面に映ると、roosterのオブジェクトがD240からD340に移動する。そしてグローブで掴むと、03がD340に入り、D440に01が入る。 ブーメラン自体は別のメモリに。
- スコップ
画面に穴が空いたときの土(飛んでいるもの)によってD240,D250,D260にそれぞれ81,14,0Bと値が格納される
- 左上の冬
D240,D260にそれぞれ81,7F
- 散った花びら
剣とか爆弾を使うと出る。余裕があるのでバッファはあまり必要ない。
爆弾爆発も該当するかもしれないがそこまで追っていない
11:06 技紹介
位置調整が重要
階段後スタートを押す、冬が表示されている間に、 ブーメランがA,シャベルがB
シャベルの後グローブを使用することで、モーションキャンセル Bで画面を閉じて、A押しっぱで下に歩く。
掘ったタイミングとブーメランのあたったタイミングを合わせる。D240,D340,D440,D540に81が入っている状態 その状態でスクロールするとD640が01となり、そこにroosterが入る。 ピューの実、グローブを使用するとD640に03が入る。それは画面左でもその状態になり、この値は消えない。 ルピーが掘ったときに出たとかは関係ない。
- 2回目
ブーメランが壁にあたったオブジェクト、シャベル2回で、D540に01が入りroosterが入る。そこでピューの実、ブーメランで、D540に03を与える。 先程のと比べると冬がなくなった分、メモリの値が小さい領域にオブジェクトが格納される。
以下想像に任せて省略
流れ
- 最初のマップ
D340~D640を03で埋める その後通常のroosterがD240に01で登場するのでそれを掴んでマップ移動
- 次のマップ
クマは先程の状態から継続していると、0A40に格納される。クマ自体は特殊なオブジェクトとして存在する。(アイテム・敵以外)
初回:
3つ花を爆弾で破壊したオブジェクト、ブーメランの壁にあたったオブジェクト、掘るで移動するとDE40にroosterが入る。
同様に掘る数を減らすなど画面内オブジェクトの数を減らしていき、D740まで格納する。
D940まで入れたらクマがDF40に格納される。同じ箇所にroosterを発生しすぎるとソフトロック?(内容ちゃんと聞いていない)*4その後に成功してクマに話しかけるとソフトロックする。
12匹のroosterが存在するとクマが消える。その状態で聖域からonox castleへ
移動
穴を越えるジャンプどちらもはpixel perfectなので難しい。鉄球兵士はノックバックがあるので避けたい。
最終地点
不足の3つオブジェクトを生成してイベントを発生させないようにする。ブーメラン、掘る×2、これを失敗すると最初からやり直し。
羽を用いてy座標を固定するのが流行り?
最後の安全策
最後に2つ目のマップにおいて、DF40にroosterを格納する方法を説明している。それで最後のオブジェクトが2つで良さそう。(安定方法)たぶんこれがしばづけさん曰くの最後2つオブジェクトの話になるかと。見たらわかるが見ないという。*5
方法: DF40にRoosterを格納する。普通に掴んで飛ぶ。戻っている最中にroosterを掴んでピューの実スタート、グローブで掴むとDF40に03が格納される。その後もう一度やるとDE40が01だったのが、03と別の値が格納されるというようなもの。
未検証事項
- 最初の場所だけでrooster増やしてはいけないのか
おそらく、DE40まで入らないという理由で想像できるが。(そのマップではオブジェクトの数が不足)。しかし、連続でやっていけば順番に埋まるのでは?(やったらわかることなので回答不要)
- D240になぜ最初から入れてはいけないのか
最初から入れたらいいのではと思ってしまった。
- オブジェクトの数だけなので、あんまりこれ!という方法ではなく好みが強そう
たぶんメモリの値見ながら練習しとけば、やりやすいものが探せるはず。
一生やらないので、検証することもなさそうですが、興味があればやってみます。
謝辞
珍しいことに反応があった。sasasaさんやしばづけさんのツイートから考えがまとまったり、誤りが発覚した。簡単にですが感謝を申し上げます。