最新の10件
ページ | 日付 |
---|---|
en:guid:febuildergba:work_support | 2023/06/08 20:25 |
guide:febuildergba:作品支援 | 2023/06/08 20:24 |
最新の10件
ページ | 日付 |
---|---|
en:guid:febuildergba:work_support | 2023/06/08 20:25 |
guide:febuildergba:作品支援 | 2023/06/08 20:24 |
ステータス画面で、一部のキャラは身長が低くなってしまうので、身長の底上げ処理がされています。
身長の底上げ処理をしているのは、0x8005b28関数です。
この関数に、r0 で 顔IDが入り、身長を伸ばすならば return 1、身長を伸ばさないならば return 0 を返します。
0x8005b28関数は、switch文などがあり、大変読みづらいのです。
身長を伸ばすキャラを個別にIF文などで書き直したほうが早いでしょう。
@thumb @org $08005b28 push {lr} cmp r0,#0x21 ;ユアン 顔ID beq nobasu cmp r0,#0x26 ;ミルラ 顔ID beq nobasu ... mov r0, #0 ; 背を伸ばさない b end nobasu mov r0, #1 ; 背を伸ばす end pop {r1} bx r1 ;;コードが 005ba4 を超えたらだめ。
身長が低いキャラがものすごくたくさんいれば別ですが、10人ぐらい底上げしたとしても、関数終端の0x08005ba4 を超えないです。
switch文があるために、無駄なジャンプテーブルとかが作られているので、容量はたくさんあります。