カービィボウル 資料集

Last-modified: 2012-02-07 (火) 12:39:13

カービィボウルの情報を集めたページです。何がどこで役に立つかわかりませんので、誰でも知っている事柄から、知っても仕方がないことまで幅広い情報を集めます。

どのように攻略するかという考え方よりも、内部の挙動に関する情報が中心です。攻略方法などの考え方を養いたいのであれば、まずKirby's Dream Course TAS動画?をご覧になることをおすすめします。

目次 - Kirby's Dream Course Tricks

メモリアドレス(Memory Addresses)

変数や関数のアドレスです。改造コード一覧とも言えます。USA版を基準にしていますので、日本語版であれば、アドレスに2を加算してください。

AddressTypeMeaning
7E007E1sScreen Fade Level
7E00801sScreen Fade Speed
7E00672x1P Controller
7E006B2x1P Controller (trigger)
7E00862sCamera X Position (actually wrong, useful though)
7E00882sCamera Y Position (actually wrong, useful though)
AddressTypeMeaning
7E6ADE2uL/R Holding Count
7E6B502uShot L/R Spin
7E6B522uShot U/D Spin
7E6B3A2uShot Meter
7ED7F02sTomatoes
7ED7F42sKirby Left
AddressTypeMeaning
7ED9B4 (7ED82E)2uShot Horizonal Direction
7ED9B6 (7ED832)2uShot Vertical Direction
7ED9C4 (7ED852)2uAbility Type
7ED9C6 (7ED856)2uAbility Effect #1
7ED9C8 (7ED85A)2uAbility Effect #2
7ED9CA (7ED85E)2sAbility Used
7ED9CC (7ED866)2sL/R Spin
7ED9CE (7ED86A)2sU/D Spin
7ED9D0 (7ED86E)2sAll Spin
7ED9D4 (7ED87A)2sX Speed
7ED9D6 (7ED87E)2sY Speed
7ED9D8 (7ED882)2sZ Speed
7ED9DA (7ED886)2uDirection
7ED9EC (7ED8A6)2uFly Mode
7ED9F0 (7ED8AA)4xX Position
7ED9F4 (7ED8B2)4xY Position
7ED9F8 (7ED8BA)4xZ Position
7EDA04 (7ED8D2)2uFloor Type
7EDA06 (7ED8D6)4xFloor Z Position
7EDA0A (7ED8DE)2uObject Type
7EDA38 (7ED932)2sGravity
7EDA3A (7ED936)2sFriction
7EDA48 (7ED952)2uFlying Time
7EDA76 (7ED9A6)2sGo for It Enable
7EDA78 (7ED9AA)2uGo for It Timer (Disable)
7EDA7A (7ED9AE)2uGo for It Timer (Effect)
7E6B7E (7ED84E)2xPower from Edge of Cup
AddressTypeMeaning
7ED7622uAbility Counter 1
7ED7722sAbility X Speed
7ED7742sAbility Y Speed
7ED7762uAbility Counter 2
7E69CE4xWater Z Position
7E69DC2sWater Jump
AddressTypeMeaning
7E69C42uDedede's Level
7EED2D2uDedede's Health
7EED2E4xDedede's X Position
7EED334xDedede's Y Position
7EED374xDedede's Z Position
7EED3B2sDedede's X Speed
7EED3D2sDedede's Y Speed
7EED3F2sDedede's Z Speed
7EED472uDedede's Hurting
7EED492sDedede's Damage
AddressMeaning
80A4B3sint16 cos(A = deg)
80A4BAsint16 sin(A = deg)
80A4C1uint16 atan(A = x, X = y)

Snes9x Memory Watcher Definitions

[Kirby's Dream Course]
7E007E,1s,Fade Level
7E0080,1s,Fade Speed
7E0067,2x,Input
7E006B,2x,Input (trigger)
7E0086,2s,Camera X
7E0088,2s,Camera Y
----
7E6ADE,1u,LR Press
7ED9B6,2b,Fly Shot
7ED9B4,2s,Shot Dir
7E6B50,1u,Shot L/R
7E6B52,1u,Shot U/D
7E6B3A,1u,Shot Meter
----
7ED9D4,2s,X Speed
7ED9D6,2s,Y Speed
7ED9D8,2s,Z Speed
7ED9DA,2s,Direction
7ED9EC,2b,Fly Mode
7EDA48,2b,Flying
7EDA76,2b,GFI Enable
7EDA78,1u,GFI Timer
7EDA7A,1u,GFI Effect
7ED9C4,1u,Ability Type
7ED9C6,1u,Ability Eff1
7ED9C8,1u,Ability Eff2
7ED9CA,2b,Ability Used
7EDA04,1u,Floor Type
7EDA0A,1u,Object Type
7E6B7E,2x,Cup Power
----
7ED762,1u,Ability Count 1
7ED772,1u,Ability X Speed
7ED774,1u,Ability Y Speed
7ED776,1u,Ability Count 2
7E69DC,2s,Water Jump
7EED2D,1u,Dedede Health
7E69C4,1u,Dedede Level

基本的な定義

  • 特に断らない限り、数値表記は10進数である。16進数である場合には0xをつけて記す。
  • ホール名を記す際は、特に断らない限りノーマルコースを意味している。
  • がんばれボタン(の使用)は、単にがんばれと記す。
  • x速度とy速度を合成した速度を水平速度と定義する。
  • 水平速度はx速度+y速度で算出し、三平方の定理などは用いない。
  • $7ED9ECが0の時をゴロ状態、0以外の時をフライ状態と定義する。
  • 床からの高さは、z位置-床z位置($7ED9F8-$7EDA06)と定義する。
  • 進行方向($7ED9DA)は、x速度とy速度を内蔵のアークタンジェントを使って算出される。
  • 速度処理はサイン・コサインに進行方向を与え、それに定数を乗じて行っている場面が多い。
  • 内部演算にはいくらかの誤差がある(sin/cosテーブルの2の補数分の誤差、atan演算の誤差など)。
  • 速度に誤差が生じることで、進行方向にも誤差が生じる。進行方向に誤差が生じることで、速度にもさらなる誤差が生じる。
  • 総じて、誤差は速度低下時に起こりやすく、誤差の持続時間が長いほどに顕著になっていく(がんばれである程度防ぐことが可能)。
  • 軌道の誤差は6-1で簡単に観測できる(バンパー衝突以降ずれが広がっていく)。速度低下誤差の濫用はトゲなどと組み合わせると有効である。
  • 多くの値はホールクリア時にリセットされずに残る。ソフトリセットもほぼ同様である。

座標系の定義

  • 座標系は画面右下方向をx正方向、右上方向をy正方向と定義する。z軸は上方向を正とする。
  • 角度は一周を360度、値の範囲を0?359度と定義する。
  • 角度は画面右下の方向を基準(0度)とし、反時計回りに増加する。
  • 座標は32ビット、速度(距離/フレーム)は16ビットで表現する。
  • 長さの単位は、1つのタイルの長さが0x10000(床の模様1マスの長さが0x8000)と定義する。

角度と威力の決定

  • メーターは32段階に見えるが、内部的には0?63の64段階をとっている。
  • メーターが大きいほどショットの威力は強まる。ただし、ゴロのパワー0だけは例外である。
  • L/Rボタンを押すと、360度を45度分割した基本8方向へ正/負方向に移動する。
  • 左/右ボタンを短く押すと正/負方向に1度、長く押し続けると3度移動する(関連: $7E6ADE)。
  • キー入力の処理は、右またはR、左またはL、上、下の順である。このことは同時押しする場合に重要である。
  • 左右移動の際、$7E6ADEの値が0なら1度移動、15以上なら3度移動、それ以外なら移動なし($7E6ADEに1を加算)。
  • 上を押した際、$7E6ADEの値が0か30以上ならトップスピンに変更、それ以外なら$7E6ADEに1を加算。
  • L/Rを押した際、$7E6ADEの値は0になる。つまり、45度移動の直後に3度移動が行える可能性はない。
  • 角度変更間の待ち時間は、軌道シミュレートの時間やカメラワークにも依存する。
  • フライショットの角度は60度である。ちなみに、45度にするとなかなか鋭い飛び方をする。

物理法則

  • ゴロ状態で平面上を転がるとき、摩擦力($7EDA3A、ノーマルで平面上にいる時の値は0x0C00)が定量的にかかる
  • フライ状態のとき、z速度には重力($7EDA38、ノーマルの時の値は-64)が加算される。
  • フライ状態のとき、x/yそれぞれの速度から空気抵抗分を減算する。空気抵抗の値は(速度+128)/256で計算される。
  • がんばれはゴロ状態では3フレーム間、フライ状態では15フレーム間、その効果を発揮する($7EDA7A)。
  • フライ状態がゴロ状態に変化する直前にがんばれを使うことで、ゴロ状態での効果を最大15フレーム間持続させられる。
  • フライ状態でのがんばれは、バウンド時に加速を行う効果を持つ。空中を漂っている間は特に効果を発揮しない。
  • ゴロ状態でのがんばれは、現在の速度を保つ効果を持つ。そのため、下り坂で使用すると加速が抑制される。
  • 坂と平面の境界付近でバウンドすると、必ずゴロ状態に変化する。この現象をがんばれと組み合わせることで、加速効果が得られる。
  • スピン時は、水面を跳ねなければいけない回数が決められている。
  • スピン最大であれば2回、最大より1?2弱いスピンであれば1回、水面で跳ねなければいけない。
  • スピン回数はスピン状態で水の上を通ったとき、$7E69DCにセットされる。
  • スピンで跳ねなければいけない回数を消費せずに進んだ場合、次に(ゴロで)入水した際にその効果が表れる(関連: gocha?氏TAS:7-3)。
  • スピンによって水面を跳ねる場合、その速度は定量的である。バックスピンの方が威力が強いのは、スピンの効果を打ち消して前に進むよう定義されているからである。

やくもの

  • 回転床の作用方向は床中心からの方向に、力の大きさは床中心からの距離に依存する。
  • 通風孔による上昇の途中に坂などを使ってゴロ状態に遷移した場合、次のフライ状態の時に効果の続きが表れる(関連: gocha?氏TAS:3-2)。
  • トゲに乗ると、カービィは進行方向に対して一定の速度で跳ねる。これを軌道の誤差と組み合わせることで、攻略に役立つことがある(関連: gocha?氏TAS:6-3)。
  • 加速パネルは速度を768ずつ加算する。速度が8192以上になると8192を代入するようになっているため、8192以上の速度でパネルに乗ると減速する。ただし、0度方向だけは8192の代入を行わない(おそらく分岐ミス)。
  • ゴルドー衝突後の3軸のそれぞれ速度は、3軸の速度の合計に、衝突位置を元にした係数をかけて算出される。冗長なz速度を水平速度に変換して加速が行える(関連: gocha?氏TAS:8-3)。

能力

  • ストーンを使うと水平速度は0、z速度は-2048になる。重力($7EDA38)は-128になる。
  • パラソルをフライ状態で使うと落下傘になり、ゴロ状態で使うとそのまま滑る。
  • パラソルで滑りながら落下した場合、床からの高さが23170以上であれば、落下傘を開始する。
  • パラソルで落下傘を開始する時、水平速度は131/256倍される。また、z速度は-448になる。
  • バーニングの初速度は8000である。バーニングで上り坂にさしかかると大きく減速する。
  • バーニングでバンパーなどにぶつかると、その効果を止めることができる。
  • ニードルを使うと速度は0になり、重力は-96になる(ニードルを使うタイミングで着地点が異なるのはこのためである)。
  • トルネードを使うと、フライ状態でない場合はz速度が640になる。水平速度は3000になる。
  • トルネードを使うと、重力は-32になる。フライ直後に使って高く飛べるのはこのためであり、その後の速度が遅いのは空気抵抗のためである。
  • トルネード使用時はバウンドをしない。言い換えると、バウンド処理の際にz速度は0にされる。そのため、垂直に跳ね上がるようなバウンドは、著しく速度を低下させる。
  • トルネードでバンパーなどに衝突すると、8フレーム(約133ms)の間、速度が4倍になる。他の能力の使用やゴルドーへの衝突でこの速度を保つことができる(関連: gocha?氏TAS:6-5)。
  • ホイールを使うと、水平速度が6000または5000になる。ホイールは一定の速度で進むと思われがちだが、実際は減速している場面もある(調査不足につき曖昧な記述しかできない)。
  • スパークには特に物理法則的な変化はないと思われる。がんばれが使えなくなることに注意。
  • ハイジャンプを使うと、速度4521で65度のジャンプをする。フライの60度よりも若干「ハイジャンプ」である。
  • フリーズを使うと、摩擦力が通常以下(定数ではなく動的な値)になり、長く遠くへ滑るようになる。
  • フリーズ使用時はバウンドをしない。言い換えると、バウンド処理の際にz速度は0にされる。そのため、垂直に跳ね上がるようなバウンドは、著しく速度を低下させる。
  • UFO使用の効果は見た目の通りである。誤差によって方向転換時に速度が1ずつ減ってしまうが、非常に小さい値なのでまず問題にならない。

メカデデデ攻略

メカデデデに与えられるダメージは、カービィの床からの高さに依存する。また、エキストラコースプレイ時($7EEABが0以外)であるとき、メカデデデに与えられるダメージは半分になる。高さとダメージを関係づけるルックアップテーブルを以下に示す。

DPHeight
0#$00000000-#$00003FFF
2#$00004000-#$0000FFFF
4#$00010000-#$00015FFF
6#$00016000-#$0001CFFF
-#$0001D000-#$FFFFFFFF

初期の体力は24であるから、ノーマルコースであれば最小4回の攻撃で倒せることがわかる。

デデデは4段階のレベル($7E69C4:0?3)を持っていて、その変化は(おそらく)経過時間による。レベルの変化によって、ミニデデデの動きやデデデの動き方に多少の変化が生じる。判明している違いを以下に示す。

LevelWalkRunRetreat0Retreat2Retreat4Retreat6
016 steps (-4096)10 steps (-4096)#$0800#$0900#$0A00#$0B00
112 steps (-4224)12 steps (-4352)#$0900#$0A00#$0B00#$0C00
26 steps (-4224)16 steps (-4864)#$0A00#$0B80#$0D00#$0E80
38 steps (-4352)14 steps (-4096)#$0B00#$0C80#$0E00#$0F80

表の通り、メカデデデの急発進はランダムではなく、レベルごとに歩きと走りの歩数が決められている。また、ダメージを受けて後退する量もレベルごとに異なる。

ミニデデデの発生タイミングやメカデデデの急発進タイミングは難しいので、解析を保留とする。ミニデデデの詳細は現在のところまったくもって不明である。

最適化の心がけ

  • ある場面で高速であることが全体的に高速であるとは限らないため、全体を見渡して正しく最適化しなければならない(例: カメラの移動を待つ、ショットの威力を弱めて強さの決定を早める)。
  • 能力やオブジェクトが使えるか、使えないか、別の手段が使えるか、常に幅広い可能性を考え、模索することが大切である。
  • 能力の選択は後々のホールにも関わることがあるので、慎重に選択する(例: 1-8はジャンプがあった方が高速だが、1-6はパラソルを取る方が高速)。
  • 結局のところ、あらゆる可能性を考え、とにかく試す以外に道はない

裏技・バグ

裏技と表記していますが、必ずしもあまり知られていない事柄である必要はありません。

  • メンバー登録の際に、CLRボタンの上でBボタンを押すと、名前の白黒が反転される。
  • メンバー登録の際に、Xボタンを押しながら方向キーを押すと、名前がシフトされる。
  • メンバー登録の際に、OKボタンの上でBボタンを押すと、メンバー登録をキャンセルできる。
  • メンバー選択の際に、L/Rボタンを押しながらAボタンを押すと、名前を変更できる。
  • L+R+Start+Select同時押しでソフトリセットが行える(最終ホールクリア後の待ち時間をキャンセルするのに有効)

物理法則周辺のバグ(もしくは仕様)は別の項に記されています。

改造情報

改造やハックはこのページで扱う範囲から少し外れますが、いくつかの情報をまとめておきます。

任意のホールを遊ぶ

ホール開始時、$7EABB2にはホールの番号、$7EABB4にはその2倍、$7EABB6には3倍の値が格納されます(このアドレスはUSA版のものです。日本語版のアドレスは+2すればOKです)。これ(特に3倍値)を調整することで、好きなホールをピンポイントで遊ぶことができます。この改造はただのコースセレクトにとどまることなく、2P対戦用のホールを一人で攻略するという遊び方もできるほか、日本語版であれば、いくつかの未使用ホールで遊ぶこともできます。

具体的な値を例示します。0?127は1P用のコースです。128、136、144、152それぞれから8ホールは2P対戦のノーマルコースです。続いて160からの20ホールがDEMOコース。192、200、208、216それぞれから8ホールは2P対戦のエキストラコースです。お楽しみの未使用ホールは180?183、185?189にあります。他のホールはかなりバグっているか、重複していると思います。

日本語版の文字コード

「_」と書いてあるのは空白表示なのですが、通常の空白は0x1Fだと思われるので区別して書きました。あと、0x40は本当は白塗りの右向き三角です。

000102030405060708090A0B0C0D0E0F
00#%()*/:.!<=>?[]
100123456789_±+- 
20@ABCDEFGHIJKLMNO
30PQRSTUVWXYZ
40
50
60
70
80
90_
A0
B0

$83:BBECに妙なメッセージが。

ただいま かいそうちゅうで
えいぎょういたして おりません。
またの おこしを こころから
おまちもうし上げております。

おすすめ攻略ガイド

サイトの性質上、一般のプレイよりもスーパープレイよりなページが多くなる傾向にあります。ご容赦ください。

関連ページ(Related Resources)

コメント (Comments / Discussions)

Tag: SNES 星のカービィ ゲーム資料