「ハック&解析研」の編集履歴(バックアップ)一覧はこちら

ハック&解析研」(2008/03/12 (水) 18:31:52) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

* メモリを覗いてゲーム内タイムをチェックする Terimakasih氏のメッセージを転載 ---- 別スレッドお借りしますね。 [必要なもの] PCとSnesエミュレータ リアルタイムメモリエディタ(DBxSTANDとか) 関数電卓(16進数を10進へ変えられれば何でも良いです) 暇人レベルの時間 [前提] 大切なのは「再生時間」ではなく「ゲーム内の計測時間」とします。 エンディングで出るクリアタイム優先ってことです。 部屋の移動中はゲーム内タイムは計測されないことを利用する。 [やり方] コードサーチしてメトロイド内のゲーム時間を記録しているアドレスを見つけます。下記の通り。 7E09E0 - Hours 7E09DE - Minutes 7E09DC - Seconds 7E09DA - Frame Count です。まぁ、秒とフレームがメインになります。 メトロイドの場合、前提の通り部屋移動中は時間が停止します。 最初に部屋へ入る時の部屋切替時間中に現在のゲームタイムを書きとめます。 次に、別の部屋への部屋切替中にタイムを控えます。 後は、この差を出せば、それがその部屋で掛かった時間です。 1フレームの誤差も無く計測出来ます。 部屋の任意の場所では駄目です。フレームなんて人間が認知出来る時間の単位じゃないですから、かなりの確率で誤差が出ます。 必ず時間の計測が止まっている状態で差を出すのがポイントです~。 リアルタイムメモリエディタが必要なのは、例えばSnes9xのチート機能だけですと、値を見るのが凄く大変だからです。 DBxSTAND等ですと、一度設定してしまえば楽に値を見られます。 [注意点] 大きく2点あります。 まず、何がタイムにどれだけ影響しているかは解明されていません。 その時の敵の数、弾の数、サムスの状態、アイテムの数etc 例えば最終ボスが良い例です。 体感的にはマーダービーム使用は早く感じるかもしれないですが、 実際には別の方法が7秒も早いコトは計測から明らかになったと思います。(ご存知ないかも?(汗)) 「見た目」や「体感」は一番当てになりません。 尚、Snes9xで表示しているフレームカウント数(画像に映っている数字)も信用出来ません。 これは再生時間であり、ゲームクリアタイムとは全くの別物だからです。 もう一つ、直接の注意とは違いますが。。 この方法は、正確には部屋を出る時のサムスの状態が全く同じでなければ意味がないです。 歩いて部屋を出た時と、加速して出た時では、次の部屋で大きな差が出てしまいます。 つまり、「何が最も最速か」を誰かに納得させるならば、 『ドアからドアまでの間で計測し、かつ同じ状態でドアへ入っていること』という状態で計測した結果が必要です。 計算は面倒になりますが、他人のsmvと自分のsmvにて、比較することも可能です。 私がフレーム単位で「MFさんの方が1秒と24フレ早い」と言ったりしているのは、こうやって計測したものです。 間違いがあるとすれば、私の計算ミスってコトです。 「1F」とかは良いですが、「24」とかはつい10進数への変換を忘れて差を計算してしまったりしますから。。 リアルタイムメモリエディタの使用方法は省略しましたが、以上です。 特に(Emuでは)メトロイドはフレーム単位での正確な計測は必須スキルです。 LRダッシュが無かった頃、Jecyさんと私を比較して見ましたが、彼は私より正確で速かったです。 LRダッシュ抜きで彼のセレス脱出タイムを抜ける人は居ない気がします。 ---- * チート関連 特殊な条件で実験をしたい場合はチートを使った方が便利なので、少しずつチートに関する情報を集めたいと思います。 いろいろ使えそうなアドレス、snes9xのチート→チートサーチ(アクティブ)→マークするでウィンドウ上に表示できます 敵数関係 7E0E50 撃破数をカウント 7E0E4E 部屋内の敵の総数と特殊ブロック? 7E0E52 部屋内の敵の総数、特殊な部屋(セーブ、マップ部屋)だと前の部屋のままになる ボム関係 7E0C86 ボム爆破までのカウントダウン 7E0CD2 ボムの個数、値を0にするとボムが何個でも置けるようになるが、当たり判定が無い時がある ドア関連 7EDF52 赤ドアの打ち込み回数のカウント NESVideosにあったアドレス Address Parameters Meaning 7E0AF6 2 bytes, unsigned Horizontal position 7E0AF8 2 bytes, unsigned Horizontal sub-pixel position[1] 7E0AFA 2 bytes, unsigned Vertical position 7E0AFC 2 bytes, unsigned Vertical sub-pixel position 7E0B00 1 byte, unsigned Vertical hitbox radius 7E0B42 1 byte, unsigned Horizontal speed[2], pixels 7E0B44 2 bytes, unsigned Horizontal speed, fraction of a pixel 7E0B46 1 byte, unsigned Horizontal momentum[3], pixels 7E0B48 2 bytes, unsigned Horizontal momentum, fraction of a pixel 7E0B2E 1 byte, unsigned Vertical speed, pixels 7E0B2C 2 bytes, unsigned Vertical speed, fraction of a pixel 7E0B3F 1 byte, unsigned Speed boost level 7E0A68 1 byte, unsigned Shinespark charge timer 7E0DC2 1 byte, unsigned Beam charge counter 7E0CCC 1 byte, unsigned Weapon cooldown timer ビームやミサイルの連射間隔のカウント 7E0BDC 2 bytes, signed Projectile 1 X speed, 1/256th pixels[5] 7E0BF0 2 bytes, signed Projectile 1 Y speed, 1/256th pixels 7E0B64 2 bytes, unsigned Projectile 1 X position, pixels 7E0B8C 2 bytes, unsigned Projectile 1 X position, fraction of a pixel 7E0B78 2 bytes, unsigned Projectile 1 Y position, pixels 7E0BA0 2 bytes, unsigned Projectile 1 Y position, fraction of a pixel 7E0BDC 2 bytes, unsigned Projectile 1 X speed, 1/256th pixels 7E0BB4 2 bytes, unsigned Projectile 1 X hitbox radius, pixels 7E0BC8 2 bytes, unsigned Projectile 1 Y hitbox radius, pixels 7E0C86 1 byte, unsigned 1st bomb timer 7E0C88 1 byte, unsigned 2nd bomb timer 7E0C8A 1 byte, unsigned 3rd bomb timer 7E0F8C 2 bytes, unsigned First Enemy's (Most Bosses) energy 7E0FCC 2 bytes, unsigned Second Enemy's (Mother Brain) energy 7E0F9C 1 byte, unsigned First Enemy's (Most Bosses) invincibility timer 7E1842 2 bytes, unsigned In-Game frame counter[4] 7E09DE 1 byte, unsigned In-Game Minutes 7E09DC 1 byte, unsigned In-Game Seconds 7E09DA 1 byte, unsigned In-Game Frames [1]: Samus's position and speeds are tracked down to 1/65536th of a pixel, although the effective values are all multiples of 256, ±1. [2]: Speeds and momentums are unsigned. Regardless of which direction Samus is moving, these are always positive. [3]: Momentum and speed together determine how far Samus moves per frame. Momentum often must reach 0 before Samus can stop or turn around. [4]: This value increments by 1 for each frame that counts toward the in-game timer, and wraps at 65536. Useful as a frame-counter when measuring by in-game time rather than absolute time. [5]: Add 2 to the address to get the next projectile's data. Bombs count as projectiles 6-10. Super missiles use up two projectile slots, but the second projectile used can be ignored. 改造の館 http://homepage3.nifty.com/game-sfccode/index.html CODE Breaker http://www.kit.hi-ho.ne.jp/fkmgm/ Terima-Kasih http://terimaland.com/ 海外のサイト http://www.thegshi.org/?s=v2&sys=6&gid=30&checkall=yeah http://snes.cheats.de/cheat_ausgabe.php?id=227270 http://www.jeuxvideo.com/btajv99/etajvhtm/00402574.htm http://www.spieletipps.de/print/cp_4482_0/ http://members.fortunecity.com/blockyer/metriod.htm
* メモリを覗いてゲーム内タイムをチェックする Terimakasih氏のメッセージを転載 ---- 別スレッドお借りしますね。 [必要なもの] PCとSnesエミュレータ リアルタイムメモリエディタ(DBxSTANDとか) 関数電卓(16進数を10進へ変えられれば何でも良いです) 暇人レベルの時間 [前提] 大切なのは「再生時間」ではなく「ゲーム内の計測時間」とします。 エンディングで出るクリアタイム優先ってことです。 部屋の移動中はゲーム内タイムは計測されないことを利用する。 [やり方] コードサーチしてメトロイド内のゲーム時間を記録しているアドレスを見つけます。下記の通り。 7E09E0 - Hours 7E09DE - Minutes 7E09DC - Seconds 7E09DA - Frame Count です。まぁ、秒とフレームがメインになります。 メトロイドの場合、前提の通り部屋移動中は時間が停止します。 最初に部屋へ入る時の部屋切替時間中に現在のゲームタイムを書きとめます。 次に、別の部屋への部屋切替中にタイムを控えます。 後は、この差を出せば、それがその部屋で掛かった時間です。 1フレームの誤差も無く計測出来ます。 部屋の任意の場所では駄目です。フレームなんて人間が認知出来る時間の単位じゃないですから、かなりの確率で誤差が出ます。 必ず時間の計測が止まっている状態で差を出すのがポイントです~。 リアルタイムメモリエディタが必要なのは、例えばSnes9xのチート機能だけですと、値を見るのが凄く大変だからです。 DBxSTAND等ですと、一度設定してしまえば楽に値を見られます。 [注意点] 大きく2点あります。 まず、何がタイムにどれだけ影響しているかは解明されていません。 その時の敵の数、弾の数、サムスの状態、アイテムの数etc 例えば最終ボスが良い例です。 体感的にはマーダービーム使用は早く感じるかもしれないですが、 実際には別の方法が7秒も早いコトは計測から明らかになったと思います。(ご存知ないかも?(汗)) 「見た目」や「体感」は一番当てになりません。 尚、Snes9xで表示しているフレームカウント数(画像に映っている数字)も信用出来ません。 これは再生時間であり、ゲームクリアタイムとは全くの別物だからです。 もう一つ、直接の注意とは違いますが。。 この方法は、正確には部屋を出る時のサムスの状態が全く同じでなければ意味がないです。 歩いて部屋を出た時と、加速して出た時では、次の部屋で大きな差が出てしまいます。 つまり、「何が最も最速か」を誰かに納得させるならば、 『ドアからドアまでの間で計測し、かつ同じ状態でドアへ入っていること』という状態で計測した結果が必要です。 計算は面倒になりますが、他人のsmvと自分のsmvにて、比較することも可能です。 私がフレーム単位で「MFさんの方が1秒と24フレ早い」と言ったりしているのは、こうやって計測したものです。 間違いがあるとすれば、私の計算ミスってコトです。 「1F」とかは良いですが、「24」とかはつい10進数への変換を忘れて差を計算してしまったりしますから。。 リアルタイムメモリエディタの使用方法は省略しましたが、以上です。 特に(Emuでは)メトロイドはフレーム単位での正確な計測は必須スキルです。 LRダッシュが無かった頃、Jecyさんと私を比較して見ましたが、彼は私より正確で速かったです。 LRダッシュ抜きで彼のセレス脱出タイムを抜ける人は居ない気がします。 ---- * チート関連 特殊な条件で実験をしたい場合はチートを使った方が便利なので、少しずつチートに関する情報を集めたいと思います。 いろいろ使えそうなアドレス、snes9xのチート→チートサーチ(アクティブ)→マークするでウィンドウ上に表示できます 敵数関係 7E0E50 撃破数をカウント 7E0E4E 部屋内の敵の総数と特殊ブロック? 7E0E52 部屋内の敵の総数、特殊な部屋(セーブ、マップ部屋)だと前の部屋のままになる ボム関係 7E0C86 ボム爆破までのカウントダウン 7E0CD2 ボムの個数、値を0にするとボムが何個でも置けるようになるが、当たり判定が無い時がある ドア関連 7EDF52 赤ドアの打ち込み回数のカウント NESVideosにあったアドレス Address Parameters Meaning 7E0AF6 2 bytes, unsigned Horizontal position サムスの水平座標 もう一つ区間のアドレスもある模様 7E0AF8 2 bytes, unsigned Horizontal sub-pixel position[1] 7E0AFA 2 bytes, unsigned Vertical position サムスの垂直座標 もう一つ区間のアドレスもある模様 7E0AFC 2 bytes, unsigned Vertical sub-pixel position 7E0B00 1 byte, unsigned Vertical hitbox radius 7E0B42 1 byte, unsigned Horizontal speed[2], pixels 7E0B44 2 bytes, unsigned Horizontal speed, fraction of a pixel 7E0B46 1 byte, unsigned Horizontal momentum[3], pixels 7E0B48 2 bytes, unsigned Horizontal momentum, fraction of a pixel 7E0B2E 1 byte, unsigned Vertical speed, pixels サムスの垂直移動(ジャンプ・落下等)の速度 7E0B2C 2 bytes, unsigned Vertical speed, fraction of a pixel 7E0B3F 1 byte, unsigned Speed boost level 7E0A68 1 byte, unsigned Shinespark charge timer 7E0DC2 1 byte, unsigned Beam charge counter ビームのチャージカウントです 7E0CCC 1 byte, unsigned Weapon cooldown timer ビームやミサイルの連射間隔のカウント 7E0BDC 2 bytes, signed Projectile 1 X speed, 1/256th pixels[5] 7E0BF0 2 bytes, signed Projectile 1 Y speed, 1/256th pixels 7E0B64 2 bytes, unsigned Projectile 1 X position, pixels 7E0B8C 2 bytes, unsigned Projectile 1 X position, fraction of a pixel 7E0B78 2 bytes, unsigned Projectile 1 Y position, pixels 7E0BA0 2 bytes, unsigned Projectile 1 Y position, fraction of a pixel 7E0BDC 2 bytes, unsigned Projectile 1 X speed, 1/256th pixels 7E0BB4 2 bytes, unsigned Projectile 1 X hitbox radius, pixels 7E0BC8 2 bytes, unsigned Projectile 1 Y hitbox radius, pixels 7E0C86 1 byte, unsigned 1st bomb timer 7E0C88 1 byte, unsigned 2nd bomb timer 7E0C8A 1 byte, unsigned 3rd bomb timer 7E0F8C 2 bytes, unsigned First Enemy's (Most Bosses) energy 7E0FCC 2 bytes, unsigned Second Enemy's (Mother Brain) energy 7E0F9C 1 byte, unsigned First Enemy's (Most Bosses) invincibility timer 7E1842 2 bytes, unsigned In-Game frame counter[4] 7E09DE 1 byte, unsigned In-Game Minutes 7E09DC 1 byte, unsigned In-Game Seconds 7E09DA 1 byte, unsigned In-Game Frames [1]: Samus's position and speeds are tracked down to 1/65536th of a pixel, although the effective values are all multiples of 256, ±1. [2]: Speeds and momentums are unsigned. Regardless of which direction Samus is moving, these are always positive. [3]: Momentum and speed together determine how far Samus moves per frame. Momentum often must reach 0 before Samus can stop or turn around. [4]: This value increments by 1 for each frame that counts toward the in-game timer, and wraps at 65536. Useful as a frame-counter when measuring by in-game time rather than absolute time. [5]: Add 2 to the address to get the next projectile's data. Bombs count as projectiles 6-10. Super missiles use up two projectile slots, but the second projectile used can be ignored. 改造の館 http://homepage3.nifty.com/game-sfccode/index.html CODE Breaker http://www.kit.hi-ho.ne.jp/fkmgm/ Terima-Kasih http://terimaland.com/ 海外のサイト http://www.thegshi.org/?s=v2&sys=6&gid=30&checkall=yeah http://snes.cheats.de/cheat_ausgabe.php?id=227270 http://www.jeuxvideo.com/btajv99/etajvhtm/00402574.htm http://www.spieletipps.de/print/cp_4482_0/ http://members.fortunecity.com/blockyer/metriod.htm

表示オプション

横に並べて表示:
変化行の前後のみ表示: