Posts
KFX 逆汗道中記 (2)
逆アセ解析のついでに前からやりたかったネームプレート関連の変更をやってみた。
スーパーコンボゲージ数とネームプレートの表示が 8 ドット重なっているので、キャラの名前が長かったり、視認性が低いフォントデザインだとかなり見づらくなる。これを解消すべく 1P のネームプレート表示位置の X と Y 座標が代入されているコードを探す。色々調べた結果、以下の怪しい 2 行を発見。
// 番地、マシン語リスト、アセンブラリストの順 00411052 6a1d push +1d 00411054 6a00 push +00
スプライトを描画するにはライブラリや自作の関数の引数に表示座標を渡す必要がある。その引数を関数に渡す方法は、スタックに値を push するのが一般的なので、表示位置をずらすには push する値を変更してやればいいということになる。
00411052 6a20 push +20 00411054 6a50 push +50
思いきってストリートファイター ZERO 2 のように画面中央にネームプレートを寄せてみた。しかし、中央には勝敗マークがあるので、これも移動しなければ表示がかぶってしまう。同じ要領でコードの検索した結果、発見されたのは以下の行。
004091f0 6a1c push +1c
これは勝敗マークの Y 座標を push しているコード。
004091f0 6a1c push +00
今度はストリートファイター ZERO 3 のように上へ移動。画面上の 16 ドットのゾーンはキャンセルやリバーサル表示に使われているが、勝敗マークの位置には表示されないので問題は無さそう。勝利マークが 2 つあるのに変更箇所が 1 つで済んだのは同じ Y 座標を参照しているのが要因だと思われる。