Seaside Laboratory

Post

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

思いきって ZERO2 のように画面中央にネームプレートを寄せてみた。しかし、中央には勝敗マークがあるので、これも移動しなければ表示がかぶってしまう。同じ要領でコードの検索した結果、発見されたのは以下の行。

004091f0 6a1c               push    +1c

これは勝敗マークの Y 座標を push しているコード。

004091f0 6a1c               push    +00

今度は ZERO3 のように上へ移動。画面上の 16 ドットのゾーンはキャンセルやリバーサル表示に使われているが、勝敗マークの位置には表示されないので問題は無さそう。ちなみに、勝敗マークが 2 つあるのに対して、変更箇所が 1 つで済んだのは2 個所とも同じ Y 座標を参照しているのが要因だと思われる。