トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

関数

Last-modified: 2016-08-30 (火) 14:56:17 (268d)

FE改造で使えそうな関数があったら追記してください。

0x080B9DEC 売り値を求める関数

引数

引数 r0 に、個数 << 8 + アイテムID、として渡す。
例:レイピア60個 0x3c09 3c=60 09=レイピアのアイテムID

戻り値

売値が r0 で返ってくる。

sample

mov r0,0x09 ;レイピア
mov r1,0x3c ;60個
lsl r1,#0x8 ;個数 << 8 + アイテムID
add r0,r1   ;

ldr		r1,=$080B9DEC
mov		lr, r1
@dcw	$F800

;r0に売値が返ってくる.

0x0800d340 イベント命令を動作させる関数

引数

引数 r0 に、呼び出したいイベント命令のポインタを設定する。
引数 r1 に、謎の引数を設定する1-3まであるらしい。とりあえず1推奨。

注意: ポインタは mov ではなく、ldr でセットしないと値が消えて null になるよ。

戻り値

不明

sample

;093AA9B0 においてあるイベントを呼び出す場合
ldr r0, =$093AA9B0	;呼びだしたいイベント命令
mov r1,#0x1			;とりあえず1
ldr		r2,=$0800d340	;イベント呼び出し
mov		lr, r2
@dcw	$F800

注意点

この命令を呼ぶと、イベントキューみたいなものに情報が詰まれ、
メニュー等を閉じた時にイベントが発動するらしい?
この命令を連続して呼ぶと、呼んだ数だけイベントが動作する。
戦闘準備などのwindowsでいうモーダルダイアログのようなものを実行している間はイベントが発動しない。(閉じれば発動する)

0x080860A8 フラグを立てる関数

引数

引数 r0 に、立てたいフラグを番号を書く。

戻り値

不明

sample

;フラグ1番を立てる場合
mov r0,#0x1   ; 立てたいフラグ番号
ldr	r1, =$080860A8
mov	r14, r1
@dcw	$F800

0x080860D0 フラグ状態確認関数

引数

引数 r0 にチェックしたいフラグIDを入れる

戻り値

r0=0 フラグがオフの状態
r0=1 フラグがオンの状態

sample

;フラグ1番の状態を確認する場合
mov	r0,#0x1   ; チェックしたいフラグ番号
ldr	r1, =$080860D0
mov	r14, r1
@dcw	$F800

0x0800D548 文字列番号の会話を表示する関数

引数

引数 r0 に、文字列番号を入れる

戻り値

不明

sample

;オニールの死亡台詞 8D7 を出す
mov     r0,#0x8D7 ;多分これでいい。ダメならldrで。
ldr	r1, =$0800D548
mov	r14, r1
@dcw	$F800

注意

この関数はくせがあるらしく、あとの処理でwaitがかからないと、@0003が複数あるとおかしくなることがある?

0x080d4ef4 効果音を鳴らす関数

引数

引数 r0 に、文字列番号を入れる

戻り値

不明

sample

;効果音 0x6a番を鳴らす
mov r0,#0x6a
ldr r2,=$080d4ef4	;効果音を鳴らす
mov lr, r2
@dcw	$F800

ただし、この関数は、必ず効果音を鳴らしてしまうので、設定の是非を確認する必要がある。

ldr r0,=$0202bcec ;設定で効果音がONかどうか
add r0,#0x41
ldrb r0,[r0]
lsl r0,r0,#0x1e
cmp r0,#0x0
beq sound_skip

mov r0,#0x6a
ldr r2,=$080d4ef4	;効果音を鳴らす
mov lr, r2
@dcw	$F800

sound_skip

0x0802cb70 経験値+10する関数

引数

引数 r0 に、経験値をあげたいキャラクタへのポインタが入る(多分)

戻り値

不明

sample

ldr	r0, [経験値をあげたいキャラクタへのポインタ]
ldr	r2, =$0802cb70 ;;+10 経験値取得関数へ
mov	r14, r2
@dcw	$F800

注意

もし、任意の経験値をあげたい場合は、怪盗パッチのasmの kaihou_ex.asm を参考にしてください。

0x08034520 マップ番号から、マップ設定のポインタを返す関数

引数

引数 r0 に、マップIDを入れる

戻り値

r0に、マップ設定のポインタが返ってくる

sample

mov	r0, #0x01 #1章のマップ設定が見たい
ldr	r2, =$08034520 ;;
mov	r14, r2
@dcw	$F800
;;r0 にマップ設定のポインタが返ってくる

080a8d94 クリアターンを書き込む関数

引数

引数 r0 に、202bcecを入れる(固定?)

戻り値

なし

sample

;引数 r0
ldr		r0,=$202bcec
;ターン数書込関数呼び出し
ldr		r1,=$080a8d94
mov		lr, r1
@dcw	$F800

0203ECF0- からの領域に、クリアターンを書き込みます。 これを使ったあとは、 #0x03フラグを降ろさないと、2度書きすることがあるので注意