アセンブリ関数のメモ
目次
- FR
- 0x6f4:VBLANKセット
- 0x700:HBLANKセット
- 0xa38:I/Oレジスタセット
- 0xac4:I/Oレジスタから取得
- 0x1658:BGのマップ,キャラ,優先度,サイズ等の設定(0x19bcで反映)
- 0x19bc:0x1658の設定を反映?
- 0x20bc:仮想BGをBGに反映
- 0x2b9c:malloc(確保したメモリの0クリア)
- 0x2bb0:malloc
- 0x2bc4:free
- 0x3f6c:オブジェクトを仮想BGに反映
- 0x3eec:オブジェクトをタイルデータに反映(※要検証)
- 0x4184:BGオブジェクトに未圧縮画像表示
- 0x43d0:BGオブジェクトに圧縮画像表示
- 0x4428:BGオブジェクトの画像領域を指定色で塗りつぶす
- 0x6b08:OAM生成
- 0x6d68:OAM生成と同時にcallback呼び出し
- 0x6dfc:OAM削除
- 0x7380:OAM削除と紐付けられたタイルやパレットの開放
- 0x8564:OAMパレットタグからパレットIDの取得
- 0x859c:OAMパレットIDからタグの取得
- 0x89f4:数値を文字列に変換
- 0x3d230:ポケモンデータ生成
- 0x3db54:チェックサム生成
- 0x3dbe8:ポケモンのステータス再計算
- 0x3ee8c:手持ちポケモンの性別取得
- 0x3eef8:性格値から性別取得
- 0x3f354:手持ちポケモンの情報取得
- 0x3fa70:手持ちポケモンの情報セット
- 0x40330:手持ちポケモンの数取得
- 0x40374:相手ポケモンの数取得
- 0x40470:手持ちポケモンの特性取得
- 0x406c4:種族名展開
- 0x4070c:最大PP取得
- 0x4258c:手持ちポケモンの性格取得
- 0x42988:全国図鑑No取得
- 0x43920:PP回復処理
- 0x4448c:乱数生成
- 0x54784:隠し変数の値取得
- 0x547c0:隠し変数に値を反映
- 0x68234:主人公以外のOWをロック
- 0x6831c:全OWのロック解除
- 0x693a4:イベントスクリプト呼び出し
- 0x6dc48:フラグのアドレス取得
- 0x6de74:フラグオン
- 0x6dec4:フラグの値取得
- 0x6fb4c:BGパレット変更(ポケモン画像の形式)
- 0x6fb90:BGパレット変更
- 0x6fd2c:フェードイン/アウト
- 0x71404:BGM停止後ファンファーレ
- 0x715e0:鳴き声を鳴らす
- 0x71a70:効果音を鳴らす
- 0x71c18:BGM音量変更
- 0x71c40:変更した音量を戻す
- 0x76b54:コールバック関数を全てクリア
- 0x76bb4:コールバック関数のセット
- 0x76ca0:コールバック関数のクリア
- 0x76d10:セットされたコールバック関数の実行
- 0x9a330:アイテムの所持効果IDの取得
- 0x9a354:アイテムの効果値の取得
- 0x997a8:アイテムの個数取得
- 0x99a8c:アイテム追加
- 0x99be0:アイテム削除
- 0x9a2c4:アイテムテーブルの頭出し
- 0x9a3e8:ポケットIDの抜き出し
- 0xa2164:サファリゾーンにいるか判定
- 0xc0e20:指定マップのフライトポジションが解禁されているか判定する
- 0xc5fdc:マップ名を取得しメモリアドレスに書き込む
- 0xf79c4:BG画像をタイルに反映
- 0x10586c:遭遇フラグ・捕獲フラグのチェック・セット
- 0x1088b8:バッグUI呼び出し
- 0x12ed24:BGオブジェクトにテキスト表示&タイル反映
- 0x12edac:BGオブジェクトにテキスト表示
- 0x13420C:矢印の描画
- 0x13441C:矢印の削除
- 0x1c7f38:除算
- EM
FR
0x6f4:VBLANKセット
引数 | |
r0 | VBLANK割り込み発生時に割り込ませるプログラムのアドレス |
呼び出すプログラムは65280cycle以内で処理できるものにすることを推奨
cycle数とステップ数は同一ではない
0x700:HBLANKセット
引数 | |
r0 | HBLANK割り込み発生時に割り込ませるプログラムのアドレス |
呼び出すプログラムは272cycle以内で処理できるものにすることを推奨
cycle数とステップ数は同一ではない
0xa38:I/Oレジスタセット
引数 | |
r0 | 0x04000000からの相対アドレス |
r1 | セットする値 |
0xac4:I/Oレジスタから取得
引数 | |
r0 | 0x04000000からの相対アドレス |
返り値 | |
r0 | I/Oレジスタに格納されている値 |
0x1658:BGのマップ,キャラ,優先度,サイズ等の設定(0x19bcで反映)
引数 | |
r0 | 不明(0x0) |
r1 | BGのマップ,キャラ,優先度,サイズ等の設定アドレス(BG数×4バイト) |
r2 | BG数 |
0x19bc:0x1658の設定を反映?
引数 | |
r0 | BG番号 |
0x20bc:仮想BGをBGに反映
引数 | |
r0 | BG番号 |
0x2b9c:malloc(確保したメモリの0クリア)
引数 | |
r0 | 確保するサイズ |
返り値 | |
r0 | 確保したメモリの先頭アドレス |
0x2bb0:malloc
引数 | |
r0 | 確保するサイズ |
返り値 | |
r0 | 確保したメモリの先頭アドレス |
0x2bc4:free
引数 | |
r0 | 解放するメモリの先頭アドレス |
0x3f6c:オブジェクトを仮想BGに反映
引数 | |
r0 | BGオブジェクト番号 |
0x3eec:オブジェクトをタイルデータに反映(※要検証)
引数 | |
r0 | BGオブジェクト番号 |
r1 | 不明 |
0x4184:BGオブジェクトに未圧縮画像表示
引数 | |
r0 | BGオブジェクト番号 |
r1 | 未圧縮画像アドレス |
r2 | X座標 |
r3 | Y座標 |
0x43d0:BGオブジェクトに圧縮画像表示
引数 | |
r0 | BGオブジェクト番号 |
r1 | 圧縮画像アドレス |
r2 | 画像のデータサイズ, 0x00を指定すると圧縮データとして処理する |
r3 | 相対タイルID |
0x4428:BGオブジェクトの画像領域を指定色で塗りつぶす
引数 | |
r0 | BGオブジェクト番号 |
r1 | 指定色(例0x9b→パレットの0xb色目と0x9色目の縞模様) |
0x6b08:OAM生成
引数 | |
r0 | OAMの設定リスト |
r1 | X座標 |
r2 | Y座標 |
r3 |
0x6d68:OAM生成と同時にcallback呼び出し
引数 | |
r0 | OAMの設定リスト |
r1 | X座標 |
r2 | Y座標 |
r3 |
0x6dfc:OAM削除
引数 | |
r0 | OAMデータへのポインタ |
0x7380:OAM削除と紐付けられたタイルやパレットの開放
引数 | |
r0 | OAMデータへのポインタ |
0x8564:OAMパレットタグからパレットIDの取得
引数 | |
r0 | パレットタグ |
返り値 | |
r0 | パレットID(Sprite) |
0x859c:OAMパレットIDからタグの取得
引数 | |
r0 | パレットID(Sprite) |
返り値 | |
r0 | パレットタグ |
0x89f4:数値を文字列に変換
引数 | |
r0 | 文字列データ書き込み先 |
r1 | 変換する値 |
r2 | 0x00=左寄せ,0x01=右寄せ,0x02=表示されない桁を0で埋める |
r3 | 桁数 |
返り値 | |
r0 | 書き込みを終了したアドレス |
0x3d230:ポケモンデータ生成
引数 | |
r0 | 手持ちポケモンデータ |
r1 | ポケモンコード |
r2 | レベル |
r3 | 個体値指定 0x20指定でランダム |
sp #0x00 | 0x1指定でPIDをsp #0x04から取得 |
sp #0x04 | PID |
sp #0x08 | 0x1指定でTIDをsp #0x0Cから取得,0x2指定で色違いブロック処理 |
sp #0x0C | TID |
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 |
r1 | PP増強パラメータ |
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 |
返り値 | |
r0 | 0:false 1:true |
0xc5fdc:マップ名を取得しメモリアドレスに書き込む
引数 | |
r0 | 文字列データ書き込み先 |
r1 | マップ名ID(02036d44の中身を入れて使用する) |
0xf79c4:BG画像をタイルに反映
引数 | |
r0 | BG番号 |
r1 | 画像アドレス |
r2 | 画像のデータサイズ, 0x00を指定すると圧縮データとして処理する |
r3 | 変更タイル始点 |
sp, #0x0 | 不明(0x0) |
0x10586c:遭遇フラグ・捕獲フラグのチェック・セット
引数 | |
r0 | ポケモンコード |
r1 | 0x0:遭遇フラグ読み込み, 0x1:捕獲フラグ読み込み, 0x2:遭遇フラグ書き込み, 0x3:捕獲フラグ書き込み |
r2 | 0x0以外の値の場合、ポケモンコードから図鑑Noを算出後r0に代入 |
返り値 | |
r0 | r1が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オブジェクトにテキスト表示&タイル反映
引数 | |
r0 | BGオブジェクト番号 |
r1 | フォント |
r2 | X座標 |
r3 | Y座標 |
sp, #0x0 | 文字色指定アドレス |
sp, #0x4 | 不明(0x0) |
sp, #0x8 | テキストアドレス |
0x12edac:BGオブジェクトにテキスト表示
引数 | |
r0 | BGオブジェクト番号 |
r1 | フォント |
r2 | X座標 |
r3 | Y座標 |
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 | 商(小数点以下切り捨て) |