アセンブリ関数

Last-modified: 2023-04-11 (火) 05:23:25

アセンブリ関数のメモ

目次

FR

0x6f4:VBLANKセット

引数
r0VBLANK割り込み発生時に割り込ませるプログラムのアドレス

呼び出すプログラムは65280cycle以内で処理できるものにすることを推奨
cycle数とステップ数は同一ではない

0x700:HBLANKセット

引数
r0HBLANK割り込み発生時に割り込ませるプログラムのアドレス

呼び出すプログラムは272cycle以内で処理できるものにすることを推奨
cycle数とステップ数は同一ではない

0xa38:I/Oレジスタセット

引数
r00x04000000からの相対アドレス
r1セットする値

0xac4:I/Oレジスタから取得

引数
r00x04000000からの相対アドレス
返り値
r0I/Oレジスタに格納されている値

0x1658:BGのマップ,キャラ,優先度,サイズ等の設定(0x19bcで反映)

引数
r0不明(0x0)
r1BGのマップ,キャラ,優先度,サイズ等の設定アドレス(BG数×4バイト)
r2BG数

0x19bc:0x1658の設定を反映?

引数
r0BG番号

0x20bc:仮想BGをBGに反映

引数
r0BG番号

0x2b9c:malloc(確保したメモリの0クリア)

引数
r0確保するサイズ
返り値
r0確保したメモリの先頭アドレス

0x2bb0:malloc

引数
r0確保するサイズ
返り値
r0確保したメモリの先頭アドレス

0x2bc4:free

引数
r0解放するメモリの先頭アドレス

0x3f6c:オブジェクトを仮想BGに反映

引数
r0BGオブジェクト番号

0x3eec:オブジェクトをタイルデータに反映(※要検証)

引数
r0BGオブジェクト番号
r1不明

0x4184:BGオブジェクトに未圧縮画像表示

引数
r0BGオブジェクト番号
r1未圧縮画像アドレス
r2X座標
r3Y座標

0x43d0:BGオブジェクトに圧縮画像表示

引数
r0BGオブジェクト番号
r1圧縮画像アドレス
r2画像のデータサイズ, 0x00を指定すると圧縮データとして処理する
r3相対タイルID

0x4428:BGオブジェクトの画像領域を指定色で塗りつぶす

引数
r0BGオブジェクト番号
r1指定色(例0x9b→パレットの0xb色目と0x9色目の縞模様)

0x6b08:OAM生成

引数
r0OAMの設定リスト
r1X座標
r2Y座標
r3

0x6d68:OAM生成と同時にcallback呼び出し

引数
r0OAMの設定リスト
r1X座標
r2Y座標
r3

0x6dfc:OAM削除

引数
r0OAMデータへのポインタ

0x7380:OAM削除と紐付けられたタイルやパレットの開放

引数
r0OAMデータへのポインタ

0x8564:OAMパレットタグからパレットIDの取得

引数
r0パレットタグ
返り値
r0パレットID(Sprite)

0x859c:OAMパレットIDからタグの取得

引数
r0パレットID(Sprite)
返り値
r0パレットタグ

0x89f4:数値を文字列に変換

引数
r0文字列データ書き込み先
r1変換する値
r20x00=左寄せ,0x01=右寄せ,0x02=表示されない桁を0で埋める
r3桁数
返り値
r0書き込みを終了したアドレス

0x3d230:ポケモンデータ生成

引数
r0手持ちポケモンデータ
r1ポケモンコード
r2レベル
r3個体値指定 0x20指定でランダム
sp #0x000x1指定でPIDをsp #0x04から取得
sp #0x04PID
sp #0x080x1指定でTIDをsp #0x0Cから取得,0x2指定で色違いブロック処理
sp #0x0CTID

0x3db54:チェックサム生成

引数
r0手持ちポケモンデータ
返り値
r0チェックサム

0x3dbe8:ポケモンのステータス再計算

引数
r0手持ちポケモンデータ

0x3ee8c:手持ちポケモンの性別取得

引数
r0手持ちポケモンデータ
返り値
r0性別(0x00=♂,0xfe=♀,0xff=不明)

0x3eef8:性格値から性別取得

引数
r0ポケモンコード
r1性格値
返り値
r0性別(0x00=♂,0xfe=♀,0xff=不明)

0x3f354:手持ちポケモンの情報取得

引数
r0手持ちポケモンデータ
r1情報の種類
返り値
r0種類に対応した情報

Index

0x00 - PID
0x01 - TID
0x02 - NN
0x03 - 国籍
0x04 - ダメタマゴフラグ
0x05 - ポケモン存在チェック
0x06 - タマゴ存在チェック
0x07 - TN
0x08 - マーキング
0x09 - チェックサム
0x0A - Filler
0x0B - ポケモンID
0x0C - 持ち物
0x0D - 技1
0x0E - 技2
0x0F - 技3
0x10 - 技4
0x11 - PP 1
0x12 - PP 2
0x13 - PP 3
0x14 - PP 4
0x15 - PP増強
0x16 - かっこよさ
0x17 - うつくしさ
0x18 - かわいさ
0x19 - 経験値
0x1A - HP努力値
0x1B - こうげき努力値
0x1C - ぼうぎょ努力値
0x1D - すばやさ努力値
0x1E - とくこう努力値
0x1F - とくぼう努力値
0x20 - 懐き度
0x21 - かしこさ
0x22 - ポケルス情報
0x23 - 捕まえた場所
0x24 - 捕まえたレベル
0x25 - 捕まえたROM情報
0x26 - ボール
0x27 - HP個体値
0x28 - こうげき個体値
0x29 - ぼうぎょ個体値
0x2A - すばやさ個体値
0x2B - とくこう個体値
0x2C - とくぼう個体値
0x2D - タマゴフラグ
0x2E - 特性フラグ
0x2F - たくましさ
0x30 - 毛艶
0x31 - トレーナーの性別
0x32 - クールリボン
0x33 - ビューティリボン
0x34 - キュートリボン
0x35 - ジーニアスリボン
0x36 - パワフルリボン
0x37 - 状態異常フラグ
0x38 - レベル
0x39 - 現在HP
0x3A - 合計HP
0x3B - こうげき
0x3C - ぼうぎょ
0x3D - すばやさ
0x3E - とくこう
0x3F - とくぼう
0x40 - メールID
0x41 - ポケモンID?タマゴの場合0x19Cが返る
0x42 - IVs
0x43 - チャンピオンリボン
0x44 - ウイニングリボン
0x45 - ビクトリーリボン
0x46 - プロマイドリボン
0x47 - がんばリボン
0x48 - Special0 Ribbon
0x49 - Special1 Ribbon
0x4a - Special2 Ribbon
0x4b - Special3 Ribbon
0x4c - Special4 Ribbon
0x4d - Special5 Ribbon
0x4e - Special6 Ribbon
0x4f - Unknown Ribbons
0x50 - ミュウ/デオキシス用イベントフラグ
0x51 - ??? <requires an addition parameter on r2>
0x52 - Ribbon Sum
0x53 - Ribbons
0x54 - Attack
0x55 - Defense
0x56 - Speed
0x57 - Sp. Attack
0x58 - Sp. Defense

0x3fa70:手持ちポケモンの情報セット

引数
r0手持ちポケモンデータ
r1情報の種類
r2セットする情報を格納したアドレス

0x40330:手持ちポケモンの数取得

返り値
r0手持ちポケモンの数

0x40374:相手ポケモンの数取得

返り値
r0手持ちポケモンの数

0x40470:手持ちポケモンの特性取得

引数
r0手持ちポケモンデータ
返り値
r0特性ID

0x406c4:種族名展開

引数
r0展開先アドレス
r1ポケモンコード

0x4070c:最大PP取得

引数
r0技ID
r1PP増強パラメータ
r2技の番号(0~3)
返り値
r0最大PP

0x4258c:手持ちポケモンの性格取得

引数
r0手持ちポケモンデータ
返り値
r0性格

0x42988:全国図鑑No取得

引数
r0ポケモンコード
返り値
r0全国図鑑No

ポケモンコードに0x0000が指定された場合は0x0000を返す

0x43920:PP回復処理

引数
r0手持ちポケモンデータ

0x4448c:乱数生成

返り値
r0生成した乱数

0x54784:隠し変数の値取得

引数
r0隠し変数ID

0x547c0:隠し変数に値を反映

引数
r0隠し変数ID
r1反映したい値

0x68234:主人公以外のOWをロック

引数
r0

0x6831c:全OWのロック解除

引数
r0

0x693a4:イベントスクリプト呼び出し

引数
r0イベントスクリプトのポインタ

0x6dc48:フラグのアドレス取得

引数
r0フラグID
返り値
r0フラグIDに該当するアドレス

0x6de74:フラグオン

引数
r0フラグID
返り値
r0

0x6dec4:フラグの値取得

引数
r0フラグID
返り値
r0フラグIDの値

0x6fb4c:BGパレット変更(ポケモン画像の形式)

引数
r0パレットアドレス
r1変更パレット始点
r2変更量(色数×2)

0x6fb90:BGパレット変更

引数
r0パレットアドレス
r1変更箇所始点
r2変更量(色数×2)

0x6fd2c:フェードイン/アウト

引数
r0変化するパレット範囲(0xffffffffでBGとOAMのパレット全て)
r1変化時間(0x0)
r2始点の暗さ(0x0通常~0x10黒)
r3終点の暗さ(0x0通常~0x10黒)
sp, #0x0画面にかかる色

0x71404:BGM停止後ファンファーレ

引数
r0ミュージックコード

0x715e0:鳴き声を鳴らす

引数
r0ポケモンコード
r1定位(0x0)
r2音量(0x7d)
r3不明(0xa)

0x71a70:効果音を鳴らす

引数
r0ミュージックコード

0x71c18:BGM音量変更

引数
r0ボリューム(0x00~0x100?)

0x71c40:変更した音量を戻す

0x76b54:コールバック関数を全てクリア

0x76bb4:コールバック関数のセット

引数
r0コールバック関数のアドレス
返り値
r0コールバック関数ID

0x76ca0:コールバック関数のクリア

引数
r0コールバック関数ID

0x76d10:セットされたコールバック関数の実行

0x9a330:アイテムの所持効果IDの取得

引数
r0アイテムコード

0x9a354:アイテムの効果値の取得

引数
r0アイテムコード

0x997a8:アイテムの個数取得

引数
r0アイテムコード
返り値
r0アイテムの個数

0x99a8c:アイテム追加

指定したアイテムをバッグに追加する

引数
r0アイテムコード
r1個数
返り値
r0追加に成功した場合は0x01,失敗した場合0x00

0x99be0:アイテム削除

指定したアイテムをバッグから削除する

引数
r0アイテムコード
r1個数
返り値
r0削除に成功した場合は0x01,失敗した場合0x00

0x9a2c4:アイテムテーブルの頭出し

引数
r0アイテムコード
返り値
r0リストの先頭アドレス

0x9a3e8:ポケットIDの抜き出し

引数
r0アイテムコード
返り値
r0ポケットID

0xa2164:サファリゾーンにいるか判定

返り値
r0いる場合は0x1、いない場合は0x0

0xc0e20:指定マップのフライトポジションが解禁されているか判定する

引数
r0バンクID
r1マップID
返り値
r00:false 1:true

0xc5fdc:マップ名を取得しメモリアドレスに書き込む

引数
r0文字列データ書き込み先
r1マップ名ID(02036d44の中身を入れて使用する)

0xf79c4:BG画像をタイルに反映

引数
r0BG番号
r1画像アドレス
r2画像のデータサイズ, 0x00を指定すると圧縮データとして処理する
r3変更タイル始点
sp, #0x0不明(0x0)

0x10586c:遭遇フラグ・捕獲フラグのチェック・セット

引数
r0ポケモンコード
r10x0:遭遇フラグ読み込み, 0x1:捕獲フラグ読み込み, 0x2:遭遇フラグ書き込み, 0x3:捕獲フラグ書き込み
r20x0以外の値の場合、ポケモンコードから図鑑Noを算出後r0に代入
返り値
r0r1が0x0か0x1のどちらかで、r2が0x0の場合にフラグ読み込み後の結果が代入される(TRUE:0x1, FALSE:0x0)

0x1088b8:バッグUI呼び出し

引数
r0バッグの動作指定
0x00 メニュー用
0x01 ポケモン選択画面用
0x02 ショップ用
0x03 主人公PC用
0x04 マサキPCの道具整理用
0x05 戦闘用
0x06 ポケモンの捕まえ方教えるときのやつ
r1最初に開かれるページID, 0x03を指定した場合以前閉じたときのページIDに

0x12ed24:BGオブジェクトにテキスト表示&タイル反映

引数
r0BGオブジェクト番号
r1フォント
r2X座標
r3Y座標
sp, #0x0文字色指定アドレス
sp, #0x4不明(0x0)
sp, #0x8テキストアドレス

0x12edac:BGオブジェクトにテキスト表示

引数
r0BGオブジェクト番号
r1フォント
r2X座標
r3Y座標
sp, #0x0不明(0x0)
sp, #0x4不明(0x0)
sp, #0x8文字色指定アドレス
sp, #0xC不明(0xFFFFFFFE)
sp, #0x10テキストアドレス

複数のテキストを同時に描画させたい場合に使用する
描画させたいテキストが単一の場合は0x12ed24を使用

0x13420C:矢印の描画

引数
r0座標,矢印の向き等の設定リスト
r1ページ数を格納したメモリアドレス
返り値
r0矢印の挙動を制御しているCallBackID

設定リストの構造(0x10byte)
[1][2][3][4][5][6][ 7 ][ 8 ][ 9 ][ 10 ][11][12]
1:矢印1の向き(1byte)
2:矢印1のX座標(1byte)
3:矢印1のY座標(1byte)
4:矢印2の向き(1byte)
5:矢印2のX座標(1byte)
6:矢印2のY座標(1byte)
7:矢印1が消えるページ番号(2byte)
8:矢印2が消えるページ番号(2byte)
9:矢印の画像に紐付けるタグ
10:矢印のパレットに紐付けるタグ
11:10で0xFFFFが指定された場合に参照するパレット
12:不明(0x00)

0x13441C:矢印の削除

引数
r0矢印の挙動を制御しているCallBackID

0x1c7f38:除算

引数
r0分子
r1分母
返り値
r0
r1余り

EM

0x295e78:除法

引数
r0分子
r1分母
返り値
r0商(小数点以下切り捨て)