Darkside(リンクエラー修正しました)

2016年11月4日(金) 22:15

メモリーサーチ

 バリエーション豊富なブレーキングパターン同士の優劣を比較するには、S-JET
の残存フレーム数が重要になる。残り持続時間が正確に判明していなければ、計算できない。
 これまでは残存フレーム数を計算に入れなくても済むように配慮していたが、いよいよ逃げられなくなった。

 持続時間は255フレームだと判明しているので、S-JET 噴射を開始したフレーム数からカウントすれば良い。しかし、1つを除きスクリプトでは噴射開始フレーム数が分からない。噴射開始フレーム数を初期値として与える方式は、却下である。周回ごとに人間がムービーを確認せねばならないスクリプトは、著しく使い勝手が悪い。それは先日思い知って、タブーにした話だ。

 プログラミングの常識で考えると、S-JET 噴射と同時にメモリーに 255 を書き込む。そして、フレームが進むごとにデクリメントし、0 になったら噴射終了という処理を行う。
 場合によってはカウントアップということもあるが、いずれにしろ1フレーム進めば1減るか1増えるかのいずれかである可能性が高い。

 メモリーサーチを使うのが久しぶりなので操作を誤って解なしとなり焦ったが、さすがに素直なメモリー変化だけあって発見できた。任天堂のプログラマーは、変態処理に走らずオーソドックスな作り方をしていたようだ。
 スクリプトから利用する場合に正確を期すため、終了時のメモリー変化を確認。残り S-JET が1になったら、続くフレームアドバンスではもう S-JET の効果は現れない。
 残り S-JET の値よりも1少ないフレーム数だけ S-JET 効果が持続するものとして、走行距離の計算を行えばOKだ。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4