おすすめTASとか

スーパーマリオブラザーズ3のTASについて簡単に解説

2014/04/25 19:41 投稿

コメント:9

  • タグ:
  • TAS
  • スーパーマリオブラザーズ3
  • マリオ
  • スーパーマリオ
  • 任意コード実行
  • ACE
  • 簡単(理解出来るとは言ってない)


更新点

1-1ではキノコを取る時、亀の直前で小ジャンプをして減速をしていたものを、大ジャンプからの亀踏みに変更したことで若干のフレームを更新したそうです。
それと、ゴールパネルのフラワーを回避する必要が無くなった点も更新されています。
砦でクッキー回避するところで若干更新してるかもしれない。

土管バグ

土管の右側に壁キックの要領で引っかかる瞬間に下を押していると、ズレた状態で土管に入ることが出来ます。
これがスクロール土管の場合は、土管の出口に触るまで潜り続けるといった挙動になります。
この時、本来はいけない空間に突入した時のブロックの配置が日本語版と英語版とで異なるので、このTASのようなクリア方法は英語版でしか出来ないそうです。

エンディング呼び出しコード

ピーチのいる部屋まで飛ぶために、"6502"というファミコンのCPUに「JSR:$8FE1」という命令を実行させる必要があります。
JSRはサブルーチンを呼び出すコードで、値は0x20です。
TASでは地下のバグったブロックに触った時にRAMアドレスの$0081から命令が実行されるので、その近辺の $0090(マリオのX座標)と$0091-95(敵のX座標)を利用してコードを実行しています。
1匹目の敵のX座標は$0095が使われるので、最初の亀を画面内に保持し続けます。
上に登るとパックンが3匹いますが、そのうち左のパックンのX座標が0x20になるタイミングを有するので、画面外に消して再度読み込まれた時に3匹目の敵として認識されるように高い位置のパックンを殺してます。
2番目に画面に現れる亀は5匹目の敵として扱われ、3番目に現れる亀が2匹目の敵として認識されるので下へ持っていきます。
最終的に、「$0093:0x20, $0094:0xE1, $0095:0x8F」という状態になる瞬間に土管バグで潜って画面から敵が消え、コードが完成します。
最後にしゃがみながらジャンプすることでバグったブロックを叩き、コードが実行されます。

多分こんな感じだと思います。


コメント

いいな
No.7 (2014/05/17 18:06)
これは比較的わかりやすい解説だな、X軸の値が配列になっているのがいけないなぁw
竜騎士ガルザーク
No.8 (2014/05/24 21:32)
TASっていつの間にかアセンブリをやらないといけなくなっていたんだな。
いおりん/蒼い月/Arcadia
No.9 (2014/06/12 18:45)
もう彼のことは許してあげてくださいwwwwww
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事