忍者ブログ
TAS以外のことも書いていきたい。
Posted by - 2025.04.05,Sat
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Posted by ISMin(いずみん) - 2011.04.21,Thu
再始動してませんでした。

去年の11月頃にMr.さんが発見した片面壁蹴りの最適化についてメモしておきます。
方法は以下のとおりです。
①左キーを押しながら壁蹴り(右方向に壁がある場合、以下同様)。ここで壁蹴り直後のx速度が-2になるように調整する。
②左キーを押し続け、x速度が-23になったときに左キーを1Fだけ離す。
③再度左キーを押し、x速度が-26になったときに左キーを1Fだけ離す。
④その後右キーを入れ続けると壁に引っかかる。高さは②~④の間で調整。

細かい操作が面倒な人は、Snes9xのインプットマクロ機能を用いて次のマクロを実行しておくと楽です。
最初の<BYの時に壁蹴りを行うようにします。
マクロ: [(<BY)]15(BY)[(<BY)]2Y[(>BY)]24(>Y)

また、入力キーと速度、座標の関係は以下の表のようになります。
ただし、x座標は壁蹴りを行う壁にぶつかったとき(壁に引っかからずに)の座標を0としています。

フレーム 入力キー x速度 x座標
1 <BY -2 -0.125
2 <BY -3 -0.3125
3 <BY -5 -0.625
4 <BY -6 -1
5 <BY -8 -1.5
6 <BY -9 -2.0625
7 <BY -11 -2.75
8 <BY -12 -3.5
9 <BY -14 -4.375
10 <BY -15 -5.3125
11 <BY -17 -6.375
12 <BY -18 -7.5
13 <BY -20 -8.75
14 <BY -21 -10.0625
15 <BY -23 -11.5
16 BY -23 -12.9375
17 <BY -24 -14.4375
18 <BY -26 -16.0625
19 Y -26 -17.6875
20 >BY -21 -19
21 >BY -16 -20
22 >BY -11 -20.6875
23 >BY -6 -21.0625
24 >BY -1 -21.125
25 >BY 4 -20.875
26 >BY 6 -20.5
27 >BY 7 -20.0625
28 >BY 9 -19.5
29 >BY 10 -18.875
30 >BY 12 -18.125
31 >BY 13 -17.3125
32 >BY 15 -16.375
33 >BY 16 -15.375
34 >BY 18 -14.25
35 >BY 19 -13.0625
36 >BY 21 -11.75
37 >BY 22 -10.375
38 >BY 24 -8.875
39 >BY 25 -7.3125
40 >BY 27 -5.625
41 >BY 28 -3.875
42 >BY 30 -2
43 >BY 31 -0.0625
44 >Y 33 2


PR
Posted by ISMin(いずみん) - 2010.10.31,Sun
 まあこっちには書いてないんですが。
http://ism.harisen.jp/smw/spddate.html

記述ミスや抜けなどがありましたらご指摘いただけると助かります。
よく考えたらマントのy速度について書いてないや

Posted by ISMin(いずみん) - 2010.10.20,Wed
TASvideosのフォーラムで話題になっていたテクニック。
さっぱりわからなかったからこの記事を見て誰か解析してくれないかな、なんて思って作成。
説明中◯番のスプライト、ID◯番などの表現が出てきますがこれはこのLuaスプリクトを使うことで表示させることができます。

(追記)誰か解析~なんて書いてたらMr.さん、33953YoShIさんが本当に解析してくれました。感謝!
というわけで全体的に書き直しました。
(追記2)少し書き足し。TASLaboも参照してください。
(追記3)解析が進んで、この記事も情報が古くなっています。俺自身あまり追えていないのでどこかに詳細がまとめられることを期待。


1.無をほおばる方法
方法1.まずブロック増殖やアイテム2個出し等を利用してヨッシーを2匹以上出します。
次にみえてる方のヨッシーにアイテムをほおばらせ、穴に落とします。
すると新たに実体化したヨッシーが無をほおばっています。

方法2.ヨッシーとほおばるアイテムとパワーアップorダメージの手段(ストックが最適)を用意します。
ヨッシーに乗って、パワーアップor被ダメをする瞬間に舌を出します。
パワーアップor被ダメ中に口を閉じたまま舌を出し、アイテムをほおばったら成功。
ほおばる前のアイテムの代わりに無をほおばっている状態になっています。
また、無に変化したスプライトは消滅フラグが立たないのかずっとステージ上に残り続けます。

ちなみに、成功すると口を閉じたまま舌を出したあとに、なぜか勝手に再度舌を出します。
再度舌を出したときにも敵を食べることができますが、このとき頬張れるスプライトを食べてしまうと、無は消滅してしまい、頬張ったスプライトだけが残ります。
mutohaittai1.png










2.引き起こされるバグ
このまま無をほおばり続けていれば何も起きないが、無を吐き出すことで
①アドレス0x7E15D3がヨッシーのy座標の上位バイトで上書きされる
②アドレス0x7E15DFがヨッシーのx座標の上位バイトで上書きされる
③アドレス0x7E167Bがヨッシーの向きで上書きされる
④乗ると回転するリフトで吐くと意図しないプログラムが実行される。
⑤アドレス0x7E1725が0で上書きされる
⑥その他
という現象が起きます。

①について、アドレス0x7E15D3は3番のスプライトの頬張りフラグであり、
ここに1以上の値が入ると一部のスプライトとの接触判定がなくなります。

②について、アドレス0x7E15DFは3番のスプライトのブロックすり抜けフラグであり、
ここに1以上の値が入るとブロックとの接触判定がなくなります。

③について、アドレス0x7E167Bは1番のスプライトのパラメータの一部で無を吐くことで、
・マリオが触れたときの効果がアドレス(0x7E1656+スプライトID)の通りになる(キノコ、リフト等に触れるとダメージ)
・ヨッシーが食べてもパワーアップしない
・判定を毎フレーム取得(?)
・持ち物を蹴ると甲羅のように滑っていく、触れるとダメージ
・気絶中甲羅に変わる(?)(持ち物のグラフィックが一部おかしくなる、スイッチを踏んでもなくならない)
・画面外に出ると消える
・スターの無敵、ファイア、マントアタック、ブロック突き上げがすり抜けない(倒せるかどうかは別)。また、触れるとヨッシーが逃げる
・右向きに無を吐くと、スターの無敵で倒したときにグラフィックや接触判定等が変化する。左向きに吐くと変化しない
という変化をします。

④についてはどのプログラムが実行されるかはヨッシーのID、ヨッシーx座標の下位バイト、ヨッシーの向きに依存するようです。
大抵の場合は①~③の変化しか起きないか吐いた瞬間にフリーズしてしまいますが、それ以外にマリオのパワーアップ状態が変わる現象が確認されています。
もしかしたらこれ以外にもフリーズせず、かつ有効なプログラムが実行されるパターンがあるかもしれません。

⑤について、アドレス0x7E1725は7番の拡張スプライト(ブルの野球ボールやポンキーの花粉など)のx座標の下位バイトです。
拡張スプライトのIDは上のLuaスクリプトでは見れませんが、そこまで使えるわけでもないので無視します。

⑥について影響がほとんどないようなものは省略しています。


3.応用テクニック
(1)①、②、③の効果を単純に利用
①では敵に触れてもヨッシーが逃げないようにする、敵を誘導するときに甲羅で倒されたり他の敵にあたって反転することを防ぐ、
②では甲羅や鍵を手元に引き寄せる、壁の向こう側の敵を甲羅で倒す、
③ではPスイッチの無限使用、Pスイッチや鍵を甲羅のように蹴って運ぶ、邪魔なリフトをファイアで倒す。
といった利用方法が考えられます。

(2)ヨッシー床抜け、ジャンプ台床抜け
②の効果をヨッシーに適用すると、ヨッシーから降りた瞬間にヨッシーが壁を抜けるようになります。
これを利用して、ヨッシーが床を少し抜けたときに乗り込むことで床抜けができます。
ジャンプ台でも同様にして床抜け出来ます。

(3)マリオのパワーアップ状態変化
④のマリオのパワーアップ状態の変化は、ヨッシーのIDが4番かつ(ヨッシーのx座標+ヨッシーの向き補正)を256で割った余りが214になる時に無を吐くことで起こります。
ヨッシーの向き補正はヨッシーが右向きなら+16、左向きなら-16です。
条件を満たしたときにはアドレス0x7E0019の値が+1されます。
つまり、チビの時はスーパー、スーパーの時はマント、マントの時はファイアになるというわけです。

そしてファイアの時に④のパワーアップ状態の変化を使うと赤く染まったマリオ(パワーアップ状態4、以下赤マリオ)に変身します。
mutohaittai2.png








赤マリオは基本的にはスーパーマリオと同じ動作をしますが、パワーアップアイテムを取ったときの挙動がおかしくなっています。
具体的にはキノコを取るとファイア、フラワーを取るとファイア、羽を取るとマント、スターを取るとマントになり、1UPキノコを取るとフリーズします。
また、甲羅やスイッチを持ってゴールすると持ち物がスターに変化します。
赤マリオの時にパワーアップ状態を変化させるとさらに違った挙動をするマリオに変身させることができます。
パワーアップ状態によって、パワーアップアイテムを取ったときの挙動、パワーアップしたときにストックに入るアイテム、アイテムをもってゴールしたときに出現するアイテムがそれぞれ変化します。
詳細は現在調査中です。

(4)スター錬金術
赤マリオなどでアイテムを持ってゴールしてスターを出現させるとアドレス0x7E13CBの値がスター1つにつき1増加します。
この値はマップ移動(城の前やボス撃破後のデモ画面も含む)をする度に2倍されていき、
値が128以上になると次のマップ開始時にスターの無敵状態になります。
ボス撃破後のデモ画面で無敵になると、効果が切れたあとにボス戦のBGMが鳴り始めます。
どうやら開発中に削除された没仕様のようです。

Posted by ISMin(いずみん) - 2010.05.05,Wed
お風呂の中でx速度とジャンプ力の関係についての記事を書こうと思ってたらすでに動画が上がってたので紹介
【TAP】スーパーマリオワールド(SMW) ダッシュブロックで遊んでみた


速く走れば走るほどジャンプ力が上がる、通常ジャンプよりスピンジャンプの方がジャンプ力が低い、といったことはマリオワールドをやりこんでる人ならほとんど知ってると思いますが、これらの現象はジャンプの初速が変わっているために起こります。

x方向速さとジャンプの初速の関係は次の表のようになっています。
x方向速さ 通常ジャンプ スピンジャンプ 最大高さ(ピクセル) 備考
0~7 -77 -71 64.1875 負の値は上方向の移動を示している。
8~15 -79 -73 67.5  
16~23 -82 -75 72.625  
24~31 -84 -77 76.125  
32~39 -87 -79 81.5625  
40~47 -89 -82 85.3125  
48~55 -92 -84 91.0625 高さ6マスのブロックをぎりぎり超えられる
(5ピクセル位ならブロックが押し上げてくれる)
56~63 -94 -87 95  
64~71 3 2 0 下方向の移動、つまりジャンプ不能
72~79 3 4 0 ただしAB交互連打で慣性移動はできる
80~87 3 2 0  
88~95 3 4 0  
96~103 3 2 0  
104~111 3 4 0  
112~119 -125 1 166.6875 ジャンプ台ジャンプと同じくらい飛びます
120~127 -61 3 40.6875  
128 67 2 0 速さ128は左方向に移動してる時しかでない

加速度、最高速度はABを押してないときはそれぞれ+6、70
押しているときはそれぞれ+3、67 となっています。
これはジャンプの仕方によらず常に一定です。


また、他のジャンプ方法のジャンプ力は次の表のようになっています。
これらはx方向の速度などは関係なく、常に一定の値となります。
ジャンプ方法 ジャンプ初速 最大高さ(ピクセル)
敵ふみ反動 -48 25.5
敵ふみ反動(AB押しっぱ) -88 83.4375
敵ふみ反動(スピンジャンプ) -8 0.9375
ブロック破壊反動 -42 19.6875
ブロック破壊反動(AB押しっぱ) -45 22.5
ヨッシージャンプ(地上) -64 44.6875
ヨッシージャンプ(空中) -96 99
音符ブロック -96 99
ジャンプ台 -80 69.1875
ジャンプ台(AB押しっぱ) -128 174.6875
設置型ジャンプ台(根元) -76 62.5625
設置型ジャンプ台(2番目) -32 11.6875
設置型ジャンプ台(2番目、AB押しっぱ) -88 83.4375
設置型ジャンプ台(3番目) -56 34.4375
設置型ジャンプ台(3番目、AB押しっぱ) -104 115.9375
設置型ジャンプ台(4番目以降) -72 56.25
設置型ジャンプ台(4番目以降、AB押しっぱ) -120 153.75
ジュゲム雲 -64 44.6875
つた/ロープ/金網 -80 69.1875
水から出るとき -83 74.375



Posted by ISMin(いずみん) - 2010.04.16,Fri
マリオが乗っていない時のヨッシーは一定の周期で跳ねているように見えますが、
実際にはサブピクセルの関係から、1ピクセル高い位置まで飛ぶことがあります。
このときにはマリオの座標を上手く調整すれば、1マス高い位置でヨッシーに乗ることができます。

高さ1マスの段差がある時に、ヨッシーを下段の角に置き、ヨッシーが地面から4ピクセル上にいるときに、マリオが上段の地面から1ピクセル上を下降しているようにすれば、ヨッシーに乗ると同時に角を抜けることができます。

参考動画(you tube) ←余計な部分が多いですが。

この技は普通の角抜けと違ってx速度に依存せずに角抜けできる、天井が低くても角抜けできるという特徴があります。しかし、条件がなかなか厳しいため使いどころはあまり無さそうです。

もちろん上手く地形ができていれば角以外の床も抜けることができます。
また、成功は確認していませんが、ヨッシーを逃がしたり、空中でヨッシーから降りたりすることで、ヨッシーが単独で動けるようにして、角にきたときに上手く乗り込めば、1マスの段差以外でもできるかもしれません。ykado1.png
ykado2.png









(追記) ヨッシーを逃がしてタイミングよく乗り込むことで角抜けする方法は成功を確認できました。
意外と簡単にできるのでもしかしたら使えるポイントがあるかもしれません。


カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
最新コメント
[02/15 NONAME]
[05/01 NONAME]
[11/03 Mr.]
[02/28 IT志望者]
[02/28 NONAME]
プロフィール
HN:
ISMin(いずみん)
性別:
男性
自己紹介:
別名ISMさん。なぜHPのタイトルといっしょになったのだろうか。荒島博久さんは旅に出ました。
ブログ内検索
最新トラックバック
Template by mavericyard*
Powered by "Samurai Factory"
忍者ブログ [PR]