;======================================================================= ; IrisDefineArm.s ; IRIS 標準定数(ARMASM用) ; ; Copyright (C) 2002-2004 NINTENDO Co.,Ltd. ;======================================================================= IF :DEF: _IRIS_DEFINE_H ELSE _IRIS_DEFINE_H * 1 INCLUDE IrisTargetArm.s ;----------------------------------------------------------------------- ; 各固定小数点位置 ;----------------------------------------------------------------------- G_SFT * 12 ; ジオメトリエンジン(変更不可) GS_SFT * 6 ; VertexShort用( 〃 ) ; V_SFT、SIN_SFT、ACOS_SFT は 12〜14 の範囲で変更可能 ;(但し、SIN_SFT >= V_SFT) V_SFT * 12 ; 標準ベクトル等の変数 M_SFT * V_SFT ; 行列 N_SFT * 9 ; 法線ベクトル (変更不可) L_SFT * 9 ; ライトベクトル( 〃 ) T_SFT * 4 ; テクスチャ座標(変更不可) TEXMTX_SFT * (T_SFT + M_SFT) ; テクスチャ行列 SIN_SFT * 12 ; Sinテーブル(V_SFT 以上に設定) ACOS_SFT * 15 ; ArcCosテーブル VG_SFT_DF * (V_SFT - G_SFT) ; ベクトル小数点位置 − ジオメトリエンジン小数点位置 MG_SFT_DF * (M_SFT - G_SFT) ; 行列小数点位置 − ジオメトリエンジン小数点位置 GN_SFT_DF * (G_SFT - N_SFT) ; ジオメトリエンジン小数点位置 − 法線ベクトル小数点位置 GL_SFT_DF * (G_SFT - L_SFT) ; ジオメトリエンジン小数点位置 − ライトベクトル小数点位置 SIN_SFT_CT * (SIN_SFT_MAX - SIN_SFT) ; Sinテーブル小数点位置補正 ACOS_SFT_CT * (ACOS_SFT_MAX - ACOS_SFT); ArcCosテーブル小数点位置補正 V_SFT_MAX * 14 ; V_SFT 最大値(変更不可) V_SFT_MIN * 12 ; 最小値( 〃 ) SIN_SFT_MAX * 14 ; SIN_SFT 最大値(変更不可) SIN_SFT_MIN * 12 ; 最小値( 〃 ) ACOS_SFT_MAX * 15 ; ACOS_SFT 最大値( 〃 ) ACOS_SFT_MIN * 12 ; 最小値( 〃 ) ; 整数 1 G_ONE * (1 :SHL: G_SFT) GS_ONE * (1 :SHL: GS_SFT) V_ONE * (1 :SHL: V_SFT) M_ONE * (1 :SHL: M_SFT) N_ONE * (1 :SHL: N_SFT) L_ONE * (1 :SHL: L_SFT) SIN_ONE * (1 :SHL: SIN_SFT) ACOS_ONE * (1 :SHL: ACOS_SFT) T_ONE * (1 :SHL: T_SFT) TEXMTX_ONE * (1 :SHL: TEXMTX_SFT) ; 最大小数 G_DECI_MAX * (G_ONE - 1) GS_DECI_MAX * (GS_ONE - 1) V_DECI_MAX * (V_ONE - 1) M_DECI_MAX * (M_ONE - 1) N_DECI_MAX * (N_ONE - 1) L_DECI_MAX * (L_ONE - 1) SIN_DECI_MAX * (SIN_ONE - 1) ACOS_DECI_MAX * (ACOS_ONE - 1) T_DECI_MAX * (T_ONE - 1) TEXMTX_DECI_MAX * (TEXMTX_ONE - 1) ;----------------------------------------------------------------------- ; 定数 ;----------------------------------------------------------------------- SYSTEM_CLOCK * 33513982 ; システムクロック MAINP * 0 ; メインプロセッサ SUBP * 1 ; サブプロセッサ ON * 1 OFF * 0 ENABLE * 1 DISABLE * 0 TRUE * 1 FALSE * 0 LCD_WIDTH * 256 ; 画面幅 LCD_HEIGHT * 192 ; 画面高さ POLYGON_ID_MAX * 63 ; ポリゴンID最大値 ;----------------------------------------------------------------------- ; カラーデータ ;----------------------------------------------------------------------- RED5_MASK * 0x001f ; 赤 GREEN5_MASK * 0x03e0 ; 緑 BLUE5_MASK * 0x7c00 ; 青 ALPHA1_MASK * 0x8000 ; 不透明度 ALPHA5_MASK * 0x001f0000 RED5_SHIFT * 0 GREEN5_SHIFT * 5 BLUE5_SHIFT * 10 ALPHA1_SHIFT * 15 ALPHA5_SHIFT * 16 RED8_MASK * 0x000000ff ; 赤 GREEN8_MASK * 0x0000ff00 ; 緑 BLUE8_MASK * 0x00ff0000 ; 青 ALPHA8_MASK * 0xff000000 ; 不透明度 RED8_SHIFT * 0 GREEN8_SHIFT * 8 BLUE8_SHIFT * 16 ALPHA8_SHIFT * 24 ;----------------------------------------------------------------------- ; 座標 ;----------------------------------------------------------------------- X16_MASK * 0x0000ffff ; X成分 Y16_MASK * 0xffff0000 ; Y成分 Z16_MASK * 0x0000ffff ; Z成分 X16_SHIFT * 0 Y16_SHIFT * 16 Z16_SHIFT * 0 X10_MASK * 0x000003ff ; X成分 Y10_MASK * 0x000ffc00 ; Y成分 Z10_MASK * 0x3ff00000 ; Z成分 X10_SHIFT * 0 Y10_SHIFT * 10 Z10_SHIFT * 20 ;----------------------------------------------------------------------- ; テクスチャ座標 ;----------------------------------------------------------------------- TEX_S_MASK * 0x0000ffff ; S成分 TEX_T_MASK * 0xffff0000 ; T成分 TEX_S_SHIFT * 0 TEX_T_SHIFT * 16 ;----------------------------------------------------------------------- ; アフィン変換 ;----------------------------------------------------------------------- AFFINE_REG_SHIFT * 8 ;----------------------------------------------------------------------- ; BGスクリーンデータ ;----------------------------------------------------------------------- BG_SC_CHAR_NO_MASK * 0x03ff ; キャラクタNo BG_SC_FLIP_MASK * 0x0c00 ; フリップ BG_SC_PLTT_MASK * 0xf000 ; カラーパレットNo BG_SC_CHAR_NO_SHIFT * 0 BG_SC_FLIP_SHIFT * 10 BG_SC_PLTT_SHIFT * 12 BG_SC_H_FLIP * 0x0400 ; Hフリップ BG_SC_V_FLIP * 0x0800 ; Vフリップ ;----------------------------------------------------------------------- ; OAMデータ ;----------------------------------------------------------------------- OAM_V_POS_MASK * 0x000000ff ; OBJ Y座標 OAM_H_POS_MASK * 0x01ff0000 ; OBJ X座標 OAM_SHAPE_MASK * 0x0000c000 ; OBJ形状 OAM_SIZE_MASK * 0xc0000000 ; OBJサイズ OAM_OBJ_MODE_MASK * 0x00000c00 ; OBJモード OAM_AFFINE_MODE_MASK * 0x00000300 ; アフィンモード OAM_AFFINE_NO_MASK * 0x3e000000 ; アフィン パラメータNo OAM_FLIP_MASK * 0x30000000 ; フリップ OAM_CHAR_NO_MASK * 0x000003ff ; キャラクタNo OAM_PRIORITY_MASK * 0x00000c00 ; BG相対優先順位 OAM_PLTT_MASK * 0x0000f000 ; カラーパレットNo OAM_ALPHA_MASK * 0x0000f000 ; OBJアルファ値 OAM_AFFINE_PARAM_MASK * 0xffff0000 ; アフィン パラメータ OAM_V_POS_SHIFT * 0 OAM_H_POS_SHIFT * 16 OAM_SHAPE_SHIFT * 14 OAM_SIZE_SHIFT * 30 OAM_AFFINE_MODE_SHIFT * 8 OAM_OBJ_MODE_SHIFT * 10 OAM_AFFINE_NO_SHIFT * 25 OAM_FLIP_SHIFT * 28 OAM_CHAR_NO_SHIFT * 0 OAM_PRIORITY_SHIFT * 10 OAM_PLTT_SHIFT * 12 OAM_ALPHA_SHIFT * 12 OAM_AFFINE_PARAM_SHIFT * 16 OAM_OBJ_ON * 0x00000000 ; OBJ ON OAM_OBJ_OFF * 0x00000200 ; OBJ OFF OAM_OBJ_NORMAL * 0x00000000 ; OBJノーマルモード OAM_OBJ_BLEND * 0x00000400 ; OBJ半透明モード OAM_OBJ_WINDOW * 0x00000800 ; OBJウインドウモード OAM_OBJ_BMP * 0x00000c00 ; OBJビットマップモード OAM_AFFINE_NONE * 0x00000000 ; アフィン無効モード OAM_AFFINE_NORMAL * 0x00000100 ; アフィンノーマルモード OAM_AFFINE_TWICE * 0x00000300 ; アフィン2倍角モード OAM_AFFINE_ERASE * 0x00000200 ; アフィン非表示モード OAM_MOS_ON * 0x00001000 ; モザイク ON OAM_MOS_OFF * 0x00000000 ; モザイク OFF OAM_COLOR_16 * 0x00000000 ; 16 選択 OAM_COLOR_256 * 0x00002000 ; 256色 選択 OAM_H_FLIP * 0x10000000 ; Hフリップ OAM_V_FLIP * 0x20000000 ; Vフリップ OAM_SQUARE * 0x00000000 ; 正方形OBJ OAM_H_RECTANGLE * 0x00004000 ; 横長方形OBJ OAM_V_RECTANGLE * 0x00008000 ; 縦長方形OBJ OAM_SIZE_NO_0 * 0x00000000 ; OBJ サイズNo 0 OAM_SIZE_NO_1 * 0x40000000 ; OBJ サイズNo 1 OAM_SIZE_NO_2 * 0x80000000 ; OBJ サイズNo 2 OAM_SIZE_NO_3 * 0xc0000000 ; OBJ サイズNo 3 OAM_SIZE_8x8 * 0x00000000 ; OBJ 8x 8ドット OAM_SIZE_16x16 * 0x40000000 ; OBJ 16x16ドット OAM_SIZE_32x32 * 0x80000000 ; OBJ 32x32ドット OAM_SIZE_64x64 * 0xc0000000 ; OBJ 64x64ドット OAM_SIZE_16x8 * 0x00004000 ; OBJ 16x 8ドット OAM_SIZE_32x8 * 0x40004000 ; OBJ 32x 8ドット OAM_SIZE_32x16 * 0x80004000 ; OBJ 32x16ドット OAM_SIZE_64x32 * 0xc0004000 ; OBJ 64x32ドット OAM_SIZE_8x16 * 0x00008000 ; OBJ 8x16ドット OAM_SIZE_8x32 * 0x40008000 ; OBJ 8x32ドット OAM_SIZE_16x32 * 0x80008000 ; OBJ 16x32ドット OAM_SIZE_32x64 * 0xc0008000 ; OBJ 32x64ドット ; 構造体メンバ用定数 ST_OAM_OBJ_NORMAL * 0 ; OBJノーマルモード ST_OAM_OBJ_BLEND * 1 ; OBJ半透明モード ST_OAM_OBJ_WINDOW * 2 ; OBJウインドウモード ST_OAM_AFFINE_NONE * 0 ; アフィン無効モード ST_OAM_AFFINE_NORMAL * 1 ; アフィンノーマルモード ST_OAM_AFFINE_TWICE * 3 ; アフィン2倍角モード ST_OAM_AFFINE_ERASE * 2 ; アフィン非表示モード ST_OAM_COLOR_16 * 0 ; 16 選択 ST_OAM_COLOR_256 * 1 ; 256色 選択 ST_OAM_SQUARE * 0 ; 正方形OBJ ST_OAM_H_RECTANGLE * 1 ; 横長方形OBJ ST_OAM_V_RECTANGLE * 2 ; 縦長方形OBJ ;*********************************************************************** ; IRISレジスタ・コントロールビット ;*********************************************************************** ;----------------------------------------------------------------------- ; プログラムステータスレジスタ ;----------------------------------------------------------------------- PSR_CPU_MODE_MASK * 0x1f ; CPUモード PSR_USER_MODE * 0x10 ; ユーザ PSR_FIQ_MODE * 0x11 ; FIQ PSR_IRQ_MODE * 0x12 ; IRQ PSR_SVC_MODE * 0x13 ; スーパバイザ PSR_ABORT_MODE * 0x17 ; アボート(プリフェッチ/データ) PSR_UNDEF_MODE * 0x1b ; 未定義命令 PSR_SYS_MODE * 0x1f ; システム PSR_THUMB_STATE * 0x20 ; THUMBステート PSR_FIQ_DISABLE * 0x40 ; FIQ不許可 PSR_IRQ_DISABLE * 0x80 ; IRQ不許可 PSR_IRQ_FIQ_DISABLE * 0xc0 ; IRQ&FIQ不許可 PSR_Q_FLAG * 0x08000000 ; スティッキーオーバーフロー PSR_V_FLAG * 0x10000000 ; オーバーフロー PSR_C_FLAG * 0x20000000 ; キャリー/ボロー/拡張 PSR_Z_FLAG * 0x40000000 ; ゼロ PSR_N_FLAG * 0x80000000 ; 負/未満 ; 構造体メンバ用定数 ST_PSR_USER_MODE * 0x10 ; ユーザ ST_PSR_FIQ_MODE * 0x11 ; FIQ ST_PSR_IRQ_MODE * 0x12 ; IRQ ST_PSR_SVC_MODE * 0x13 ; スーパバイザ ST_PSR_ABORT_MODE * 0x17 ; アボート(プリフェッチ/データ) ST_PSR_UNDEF_MODE * 0x1b ; 未定義命令 ST_PSR_SYS_MODE * 0x1f ; システム ;----------------------------------------------------------------------- ; システムコントロールコプロセッサ ;----------------------------------------------------------------------- ; レジスタ1(マスタコントロール) C1_SB1_BITSET * 0x00000078 ; レジスタ1用1固定ビット列 C1_ITCM_LOAD_MODE * 0x00080000 ; 命令TCM ロードモード C1_DTCM_LOAD_MODE * 0x00020000 ; データTCM ロードモード C1_ITCM_ENABLE * 0x00040000 ; 命令TCM イネーブル C1_DTCM_ENABLE * 0x00010000 ; データTCM イネーブル C1_LD_INTERWORK_DISABLE * 0x00008000 ; ロード命令によるインターワーキング ディセーブル C1_CACHE_ROUND_ROBIN * 0x00004000 ; キャッシュ置換アルゴリズム ラウンドロビン(最悪時のヒット率が安定) C1_CACHE_PSEUDO_RANDOM * 0x00000000 ; 擬似ランダム C1_EXCEPT_VEC_UPPER * 0x00002000 ; 例外ベクタ 上位アドレス(こちらに設定して下さい) C1_EXCEPT_VEC_LOWER * 0x00000000 ; 下位アドレス C1_ICACHE_ENABLE * 0x00001000 ; 命令キャッシュ イネーブル C1_DCACHE_ENABLE * 0x00000004 ; データキャッシュ イネーブル C1_LITTLE_ENDIAN * 0x00000000 ; リトルエンディアン C1_BIG_ENDIAN * 0x00000080 ; ビッグエンディアン C1_PROTECT_UNIT_ENABLE * 0x00000001 ; プロテクションユニット イネーブル ; レジスタ2(プロテクションリージョン・キャッシュ設定) C2_PR0_SFT * 0 ; プロテクションリージョン0 C2_PR1_SFT * 1 ; 1 C2_PR2_SFT * 2 ; 2 C2_PR3_SFT * 3 ; 3 C2_PR4_SFT * 4 ; 4 C2_PR5_SFT * 5 ; 5 C2_PR6_SFT * 6 ; 6 C2_PR7_SFT * 7 ; 7 ; レジスタ3(プロテクションリージョン・ライトバッファ設定) C3_PR0_SFT * 0 ; プロテクションリージョン0 C3_PR1_SFT * 1 ; 1 C3_PR2_SFT * 2 ; 2 C3_PR3_SFT * 3 ; 3 C3_PR4_SFT * 4 ; 4 C3_PR5_SFT * 5 ; 5 C3_PR6_SFT * 6 ; 6 C3_PR7_SFT * 7 ; 7 ; レジスタ5(プロテクションリージョン・アクセス許可) C5_PERMIT_MASK * 0xf ; プロテクションリージョン アクセス許可マスク C5_PERMIT_NA * 0 ; アクセス不許可 C5_PERMIT_RW * 1 ; リードライト許可 C5_PERMIT_RO * 5 ; リードオンリー許可 C5_PR0_SFT * 0 ; プロテクションリージョン0 C5_PR1_SFT * 4 ; 1 C5_PR2_SFT * 8 ; 2 C5_PR3_SFT * 12 ; 3 C5_PR4_SFT * 16 ; 4 C5_PR5_SFT * 20 ; 5 C5_PR6_SFT * 24 ; 6 C5_PR7_SFT * 28 ; 7 ; レジスタ6(プロテクションリージョン・ベースアドレス/サイズ) C6_PR_SIZE_MASK * 0x0000003e ; プロテクションリージョン サイズ C6_PR_BASE_MASK * 0xfffff000 ; ベースアドレス C6_PR_SIZE_SHIFT * 1 C6_PR_BASE_SHIFT * 12 C6_PR_ENABLE * 1 ; プロテクションリージョン イネーブル C6_PR_DISABLE * 0 ; ディセーブル C6_PR_4KB * 0x16 ; リージョンサイズ 4KByte C6_PR_8KB * 0x18 ; 8KByte C6_PR_16KB * 0x1a ; 16KByte C6_PR_32KB * 0x1c ; 32KByte C6_PR_64KB * 0x1e ; 64KByte C6_PR_128KB * 0x20 ; 128KByte C6_PR_256KB * 0x22 ; 256KByte C6_PR_512KB * 0x24 ; 512KByte C6_PR_1MB * 0x26 ; 1MByte C6_PR_2MB * 0x28 ; 2MByte C6_PR_4MB * 0x2a ; 4MByte C6_PR_8MB * 0x2c ; 8MByte C6_PR_16MB * 0x2e ; 16MByte C6_PR_32MB * 0x30 ; 32MByte C6_PR_64MB * 0x32 ; 64MByte C6_PR_128MB * 0x34 ; 128MByte C6_PR_256MB * 0x36 ; 256MByte C6_PR_512MB * 0x38 ; 512MByte C6_PR_1GB * 0x3a ; 1GByte C6_PR_2GB * 0x3c ; 2GByte C6_PR_4GB * 0x3e ; 4GByte ; レジスタ7.13(命令キャッシュ・プリフェッチ) C7_ICACHE_PREFCHP_MASK * 0xffffffe0 ; 命令キャッシュ プリフェッチアドレス ; レジスタ7.10、7.14(キャッシュインデックス操作) C7_ICACHE_INDEX_MASK * 0x00000fe0 ; 命令キャッシュ インデックス C7_DCACHE_INDEX_MASK * 0x000003e0 ; データキャッシュ インデックス C7_CACHE_SET_NO_MASK * 0xc0000000 ; キャッシュ セグメント C7_CACHE_INDEX_SHIFT * 5 C7_CACHE_SET_NO_SHIFT * 30 ; レジスタ9.0(キャッシュロックダウン) C9_LOCKDOWN_SET_NO_MASK * 0x00000003 ; キャッシュロックダウン セグメント C9_LOCKDOWN_SET_NO_SHIFT * 0 C9_LOCKDOWN_LOAD_MODE * 0x80000000 ; キャッシュロックダウン ロードモード ; レジスタ9.1(TCMベースアドレス/サイズ) C9_TCMR_SIZE_MASK * 0x0000003e ; TCMリージョン サイズ C9_TCMR_BASE_MASK * 0xfffff000 ; ベースアドレス C9_TCMR_SIZE_SHIFT * 1 C9_TCMR_BASE_SHIFT * 12 C9_TCMR_4KB * 0x06 ; リージョンサイズ 4KByte C9_TCMR_8KB * 0x08 ; 8KByte C9_TCMR_16KB * 0x0a ; 16KByte C9_TCMR_32KB * 0x0c ; 32KByte C9_TCMR_64KB * 0x0e ; 64KByte C9_TCMR_128KB * 0x10 ; 128KByte C9_TCMR_256KB * 0x12 ; 256KByte C9_TCMR_512KB * 0x14 ; 512KByte C9_TCMR_1MB * 0x16 ; 1MByte C9_TCMR_2MB * 0x18 ; 2MByte C9_TCMR_4MB * 0x1a ; 4MByte C9_TCMR_8MB * 0x1c ; 8MByte C9_TCMR_16MB * 0x1e ; 16MByte C9_TCMR_32MB * 0x20 ; 32MByte C9_TCMR_64MB * 0x22 ; 64MByte C9_TCMR_128MB * 0x24 ; 128MByte C9_TCMR_256MB * 0x26 ; 256MByte C9_TCMR_512MB * 0x28 ; 512MByte C9_TCMR_1GB * 0x2a ; 1GByte C9_TCMR_2GB * 0x2c ; 2GByte C9_TCMR_4GB * 0x2e ; 4GByte ;----------------------------------------------------------------------- ; 割り込み要求/許可フラグ ;----------------------------------------------------------------------- V_BLANK_INTR_FLAG * 0x00000001 ; Vブランク割り込み H_BLANK_INTR_FLAG * 0x00000002 ; Hブランク割り込み V_COUNT_INTR_FLAG * 0x00000004 ; Vカウンタ一致割り込み TIMER0_INTR_FLAG * 0x00000008 ; タイマー0割り込み TIMER1_INTR_FLAG * 0x00000010 ; タイマー1割り込み TIMER2_INTR_FLAG * 0x00000020 ; タイマー2割り込み TIMER3_INTR_FLAG * 0x00000040 ; タイマー3割り込み SIO_INTR_FLAG * 0x00000080 ; シリアル通信割り込み DMA0_INTR_FLAG * 0x00000100 ; DMA0割り込み DMA1_INTR_FLAG * 0x00000200 ; DMA1割り込み DMA2_INTR_FLAG * 0x00000400 ; DMA2割り込み DMA3_INTR_FLAG * 0x00000800 ; DMA3割り込み KEY_INTR_FLAG * 0x00001000 ; キー割り込み CARTRIDGE_INTR_FLAG * 0x00002000 ; カートリッジ割り込み SUBP_INTR_FLAG * 0x00010000 ; サブプロセッサ割り込み SPFIFO_SEND_INTR_FLAG * 0x00020000 ; サブプロセッサ間送信FIFOエンプティ割り込み SPFIFO_RECV_INTR_FLAG * 0x00040000 ; サブプロセッサ間受信FIFOノットエンプティ割り込み CARD_DATA_INTR_FLAG * 0x00080000 ; カードデータ転送終了割り込み CARD_IREQ_INTR_FLAG * 0x00100000 ; カードIREQ割り込み GXFIFO_INTR_FLAG * 0x00200000 ; ジオメトリコマンドFIFO割り込み ;----------------------------------------------------------------------- ; サブプロセッサ インタフェース ;----------------------------------------------------------------------- SUBP_RECV_STATUS_MASK * 0x000f ; 受信ステータス SUBP_SEND_STATUS_MASK * 0x0f00 ; 送信ステータス SUBP_RECV_STATUS_SHIFT * 0 SUBP_SEND_STATUS_SHIFT * 8 SUBP_SEND_IF * 0x2000 ; 割り込み要求送信 SUBP_RECV_IF_ENABLE * 0x4000 ; 割り込み要求受信 許可 SUBP_ENABLE * 0x8000 ; サブプロセッサ イネーブル(削除予定) ;----------------------------------------------------------------------- ; サブプロセッサ通信FIFO コントロール ;----------------------------------------------------------------------- SPFIFO_SEND_EMPTY * 0x0001 ; 送信FIFO エンプティ SPFIFO_SEND_FULL * 0x0002 ; フル SPFIFO_SEND_IF_ENABLE * 0x0004 ; 割り込み要求 許可 SPFIFO_SEND_CLEAR * 0x0008 ; クリア SPFIFO_RECV_EMPTY * 0x0100 ; 受信FIFO エンプティ SPFIFO_RECV_FULL * 0x0200 ; フル SPFIFO_RECV_IF_ENABLE * 0x0400 ; 割り込み要求 許可 SPFIFO_ENABLE * 0x8000 ; FIFOイネーブル ;----------------------------------------------------------------------- ; パワーコントロール ;----------------------------------------------------------------------- POW_LCDC_ON * 0x0001 ; LCDコントローラ ON IF :DEF: IRIS_TS POW_2D_ON * 0x0202 ; 2DエンジンAB ON POW_2D_A_ON * 0x0002 ; 2DエンジンA ON POW_2D_B_ON * 0x0200 ; 2DエンジンB ON POW_EXCHANGE_LCD * 0x8000 ; 表示液晶の交換 ELSE POW_2D_ON * 0x0002 ; 2Dエンジン ON ENDIF POW_RENDER_ON * 0x0004 ; レンダリングエンジン ON POW_GEOMETRY_ON * 0x0008 ; ジオメトリエンジン ON POW_ALL_ON * 0x000f ; 全部 ON ;----------------------------------------------------------------------- ; 除算 ;----------------------------------------------------------------------- DIV_MODE_MASK * 0x0003 ; 除算モード DIV_MODE_SHIFT * 0 DIV_32_32BIT_MODE * 0x0000 ; 32bit/32bit モード DIV_64_32BIT_MODE * 0x0001 ; 64bit/32bit モード DIV_64_64BIT_MODE * 0x0002 ; 64bit/64bit モード DIV_ERROR * 0x4000 ; 0割りエラー DIV_BUSY * 0x8000 ; ビジー ;----------------------------------------------------------------------- ; 平方根 ;----------------------------------------------------------------------- SQRT_32BIT_MODE * 0x0000 ; 32bit モード SQRT_64BIT_MODE * 0x0001 ; 64bit モード SQRT_BUSY * 0x8000 ; ビジー ;----------------------------------------------------------------------- ; VRAM&内部ワークRAM コントロール ;----------------------------------------------------------------------- VRAM_MODE_MASK * 0x07 ; VRAMモード VRAM_OFFSET_MASK * 0x18 ; オフセット VRAM_MODE_SHIFT * 0 VRAM_OFFSET_SHIFT * 3 VRAM_LCDC_MODE * 0x00 ; LCDC モード VRAM_BG_MODE * 0x01 ; BG モード VRAM_OBJ_MODE * 0x02 ; OBJ モード(A,B,E〜Gのみ可) VRAM_SUBP_MODE * 0x02 ; サブプロセッサ モード(C,Dのみ可) VRAM_TEX_MODE * 0x03 ; テクスチャ モード(A〜Dのみ可) VRAM_TEXPLTT_MODE * 0x03 ; テクスチャパレット モード(E〜Gのみ可) VRAM_BGPLTT_MODE * 0x04 ; BGパレット モード(E〜Gのみ可) VRAM_OBJPLTT_MODE * 0x05 ; OBJパレット モード(F,Gのみ可) VRAM_TEX_SLOT_0 * 0x00 ; テクスチャ スロット0 VRAM_TEX_SLOT_1 * 0x08 ; 1 VRAM_TEX_SLOT_2 * 0x10 ; 2 VRAM_TEX_SLOT_3 * 0x18 ; 3 VRAM_TEXPLTT_SLOT_0_3 * 0x00 ; テクスチャパレット スロット0−3 VRAM_TEXPLTT_SLOT_0 * 0x00 ; 0 VRAM_TEXPLTT_SLOT_1 * 0x08 ; 1 VRAM_TEXPLTT_SLOT_4 * 0x10 ; 4 VRAM_TEXPLTT_SLOT_5 * 0x18 ; 5 VRAM_BGPLTT_SLOT_0_3 * 0x00 ; BGパレット スロット0−3 VRAM_BGPLTT_SLOT_0_1 * 0x00 ; 0−1 VRAM_BGPLTT_SLOT_2_3 * 0x08 ; 2−3 VRAM_DISABLE * 0x00 ; VRAMディセーブル VRAM_ENABLE * 0x80 ; イネーブル WRAM_MAINP_ALL * 0x00 ; 共有内部ワークRAMブロック0・1 → メインプロセッサ WRAM_MAINP_B1_SUBP_B0 * 0x01 ; ブロック1 → メインプロセッサ ; ブロック0 → サブプロセッサ WRAM_MAINP_B0_SUBP_B1 * 0x02 ; ブロック0 → メインプロセッサ ; ブロック1 → サブプロセッサ WRAM_SUBP_ALL * 0x03 ; ブロック0・1 → サブプロセッサ VRAM_A_CNT_SHIFT * 0 ; VRAM A コントロール VRAM_B_CNT_SHIFT * 8 ; B VRAM_C_CNT_SHIFT * 16 ; C VRAM_D_CNT_SHIFT * 24 ; D VRAM_E_CNT_SHIFT * 0 ; E VRAM_F_CNT_SHIFT * 8 ; F VRAM_G_CNT_SHIFT * 16 ; G VRAM_H_CNT_SHIFT * 0 ; H VRAM_I_CNT_SHIFT * 8 ; I WRAM_CNT_SHIFT * 24 ; 内部ワークRAM VRAM_AB_CNT_SHIFT * 0 ; VRAM AB VRAM_CD_CNT_SHIFT * 16 ; CD VRAM_EF_CNT_SHIFT * 0 ; EF VRAM_G_W_CNT_SHIFT * 16 ; G + 内部ワークRAM VRAM_HI_CNT_SHIFT * 0 ; HI ; 構造体メンバ用定数 ST_VRAM_LCDC_MODE * 0 ; LCDC モード ST_VRAM_BG_MODE * 1 ; BG モード ST_VRAM_OBJ_MODE * 2 ; OBJ モード(A,B,E〜Gのみ可) ST_VRAM_SUBP_MODE * 2 ; サブプロセッサ モード(C,Dのみ可) ST_VRAM_TEX_MODE * 3 ; テクスチャ モード(A〜Dのみ可) ST_VRAM_TEXPLTT_MODE * 3 ; テクスチャパレット モード(E〜Gのみ可) ST_VRAM_BGPLTT_MODE * 4 ; BGパレット モード(E〜Gのみ可) ST_VRAM_OBJPLTT_MODE * 5 ; OBJパレット モード(F,Gのみ可) ST_VRAM_TEX_SLOT_0 * 0 ; テクスチャ スロット0 ST_VRAM_TEX_SLOT_1 * 1 ; 1 ST_VRAM_TEX_SLOT_2 * 2 ; 2 ST_VRAM_TEX_SLOT_3 * 3 ; 3 ST_VRAM_TEXPLTT_SLOT_0_3 * 0 ; テクスチャパレット スロット0−3 ST_VRAM_TEXPLTT_SLOT_0 * 0 ; 0 ST_VRAM_TEXPLTT_SLOT_1 * 1 ; 1 ST_VRAM_TEXPLTT_SLOT_4 * 2 ; 4 ST_VRAM_TEXPLTT_SLOT_5 * 3 ; 5 ST_VRAM_BGPLTT_SLOT_0_3 * 0 ; BGパレット スロット0−3 ST_VRAM_BGPLTT_SLOT_0_1 * 0 ; 0−1 ST_VRAM_BGPLTT_SLOT_2_3 * 1 ; 2−3 ST_WRAM_MAINP_ALL * 0 ; 共有内部ワークRAMブロック0・1 → メインプロセッサ ST_WRAM_MAINP_B1_SUBP_B0 * 1 ; ブロック1 → メインプロセッサ ; ブロック0 → サブプロセッサ ST_WRAM_MAINP_B0_SUBP_B1 * 2 ; ブロック0 → メインプロセッサ ; ブロック1 → サブプロセッサ ST_WRAM_SUBP_ALL * 3 ; ブロック0・1 → サブプロセッサ ;----------------------------------------------------------------------- ; 表示コントロール ;----------------------------------------------------------------------- DISP_BG_MODE_MASK * 0x00000007 ; BGモード DISP_ON_MASK * 0x00001f00 ; OBJ・BG ON DISP_WIN_MASK * 0x00006000 ; ウインドウ ON DISP_OBJ_BMP_MAP_MASK * 0x00000060 ; OBJビットマップデータ マッピングタイプ DISP_MODE_MASK * 0x00030000 ; 表示モード DISP_VRAM_MASK * 0x000c0000 ; 表示VRAM選択 DISP_OBJ_VRAM_SIZE_MASK * 0x00700000 ; OBJ用VRAMサイズ DISP_BGCHBASE_OFS_MASK * 0x07000000 ; BGキャラクタデータベースアドレス・オフセット DISP_BGSCBASE_OFS_MASK * 0x38000000 ; BGスクリーンデータベースアドレス・オフセット DISP_BG_MODE_SHIFT * 0 DISP_ON_SHIFT * 8 DISP_WIN_SHIFT * 13 DISP_MODE_SHIFT * 16 DISP_OBJ_BMP_MAP_SHIFT * 5 DISP_VRAM_SHIFT * 18 DISP_OBJ_VRAM_SIZE_SHIFT * 20 DISP_BGCHBASE_OFS_SHIFT * 24 DISP_BGSCBASE_OFS_SHIFT * 27 DISP_BG_MODE_0 * 0x00000000 ; BGモード0(ノーマルx4) DISP_BG_MODE_N4 * 0x00000000 DISP_BG_MODE_1 * 0x00000001 ; BGモード1(ノーマルx3、アフィンx1) DISP_BG_MODE_N3A1 * 0x00000001 DISP_BG_MODE_2 * 0x00000002 ; BGモード2(ノーマルx2、アフィンx2) DISP_BG_MODE_N2A2 * 0x00000002 DISP_BG_MODE_3 * 0x00000003 ; BGモード3(ノーマルx3、アフィン拡張x1) DISP_BG_MODE_N3E1 * 0x00000003 DISP_BG_MODE_4 * 0x00000004 ; BGモード4(ノーマルx2、アフィンx1、アフィン拡張x1) DISP_BG_MODE_N2A1E1 * 0x00000004 DISP_BG_MODE_5 * 0x00000005 ; BGモード5(ノーマルx2、アフィン拡張x2) DISP_BG_MODE_N2E2 * 0x00000005 DISP_BG_MODE_6 * 0x00000006 ; BGモード6(3D固定x1、大画面ビットマップx1) DISP_BG_MODE_3D1W1 * 0x00000006 DISP_BG0_3D_ON * 0x00000008 ; BG0へ3Dを表示 DISP_OBJ_CHAR_2D_MAP * 0x00000000 ; OBJキャラクタデータ 2Dマッピング DISP_OBJ_CHAR_1D_MAP * 0x00000010 ; OBJキャラクタデータ 1Dマッピング DISP_OBJ_BMP_H128_MAP * 0x00000000 ; OBJビットマップデータ 横128ドット2Dマッピング DISP_OBJ_BMP_H256_MAP * 0x00000020 ; OBJビットマップデータ 横256ドット2Dマッピング DISP_OBJ_BMP_1D_MAP * 0x00000040 ; OBJビットマップデータ 1Dマッピング DISP_OBJ_BMP_VRAM_128KB * 0x00000000 ; OBJビットマップデータVRAM128KByte DISP_OBJ_BMP_VRAM_256KB * 0x00400000 ; 256KByte DISP_OBJ_HOFF * 0x00800000 ; Hブランク中OBJ処理 OFF DISP_LCDC_OFF * 0x00000080 ; LCDC OFF DISP_BG0_ON * 0x00000100 ; BG0 ON DISP_BG1_ON * 0x00000200 ; BG1 ON DISP_BG2_ON * 0x00000400 ; BG2 ON DISP_BG3_ON * 0x00000800 ; BG3 ON DISP_BG_ALL_ON * 0x00000f00 ; BG全部 ON DISP_OBJ_ON * 0x00001000 ; OBJ ON DISP_OBJ_BG_ALL_ON * 0x00001f00 ; OBJ・BG全部 ON DISP_WIN0_ON * 0x00002000 ; ウインドウ0 ON DISP_WIN1_ON * 0x00004000 ; ウインドウ1 ON DISP_WIN01_ON * 0x00006000 ; ウインドウ0・1 ON DISP_OBJWIN_ON * 0x00008000 ; OBJウインドウ ON DISP_WIN_ALL_ON * 0x0000e000 ; ウインドウ全部 ON DISP_ALL_ON * 0x00007f00 ; 全部 ON DISP_OFF_MODE * 0x00000000 ; 表示OFF DISP_GFX_MODE * 0x00010000 ; グラフィックス表示モード DISP_VRAM_MODE * 0x00020000 ; VRAM表示モード DISP_MMEM_MODE * 0x00030000 ; メインメモリ表示モード DISP_VRAM_A * 0x00000000 ; VRAM−A表示 DISP_VRAM_B * 0x00040000 ; VRAM−B表示 DISP_VRAM_C * 0x00080000 ; VRAM−C表示 DISP_VRAM_D * 0x000c0000 ; VRAM−D表示 DISP_OBJ_CHAR_VRAM_32KB * 0x00000000 ; OBJ用VRAM32KByte DISP_OBJ_CHAR_VRAM_64KB * 0x00100000 ; 64KByte DISP_OBJ_CHAR_VRAM_128KB * 0x00200000 ; 128KByte DISP_OBJ_CHAR_VRAM_256KB * 0x00300000 ; 256KByte DISP_BGPLTT_EX * 0x40000000 ; BGパレット拡張 DISP_OBJPLTT_EX * 0x80000000 ; OBJパレット拡張 ; 構造体メンバ用定数 ST_DISP_OBJ_CHAR_2D_MAP * 0 ; OBJキャラクタデータ 2Dマッピング ST_DISP_OBJ_CHAR_1D_MAP * 1 ; OBJキャラクタデータ 1Dマッピング ST_DISP_OBJ_BMP_H128_MAP * 0 ; OBJビットマップデータ 横128ドット2Dマッピング ST_DISP_OBJ_BMP_H256_MAP * 1 ; OBJビットマップデータ 横256ドット2Dマッピング ST_DISP_OBJ_BMP_1D_MAP * 2 ; OBJビットマップデータ 1Dマッピング ST_DISP_OFF_MODE * 0 ; 表示OFF ST_DISP_GFX_MODE * 1 ; グラフィックス表示モード ST_DISP_VRAM_MODE * 2 ; VRAM表示モード ST_DISP_MMEM_MODE * 3 ; メインメモリ表示モード ST_DISP_VRAM_A * 0 ; VRAM−A表示 ST_DISP_VRAM_B * 1 ; VRAM−B表示 ST_DISP_VRAM_C * 2 ; VRAM−C表示 ST_DISP_VRAM_D * 3 ; VRAM−D表示 ;----------------------------------------------------------------------- ; 表示ステータス ;----------------------------------------------------------------------- DPSTAT_V_SET_LO_MASK * 0xff00 ; Vカウンタ比較値設定 DPSTAT_V_SET_D8 * 0x0080 ; Vカウンタ比較値設定8ビット目 DPSTAT_V_SET_LO_SHIFT * 8 DPSTAT_V_BLANK * 0x0001 ; Vブランク期間中 DPSTAT_H_BLANK * 0x0002 ; Hブランク期間中 DPSTAT_V_COUNT * 0x0004 ; Vカウンタ一致中 DPSTAT_V_BLANK_IF_ENABLE * 0x0008 ; Vブランク割り込み要求 許可 DPSTAT_H_BLANK_IF_ENABLE * 0x0010 ; Hブランク割り込み要求 許可 DPSTAT_V_COUNT_IF_ENABLE * 0x0020 ; Vカウンタ一致割り込み要求 許可 ;----------------------------------------------------------------------- ; 3D表示コントロール ;----------------------------------------------------------------------- DISP3D_FOG_INDEX_MASK * 0x00000f00 ; フォグ インデックス範囲 DISP3D_FOG_INDEX_SHIFT * 8 DISP3D_TEX_MASTER_ON * 0x00000001 ; テクスチャマスタ ON DISP3D_SHADING_EX * 0x00000002 ; 拡張シェーディングモード設定 DISP3D_TOON_MODE * 0x00000000 ; トゥーンシェーディングモード DISP3D_HIGHLIGHT_MODE * 0x00000002 ; ハイライトシェーディングモード DISP3D_ALPHA_TEST_ON * 0x00000004 ; アルファテスト ON DISP3D_ALPHA_BLEND_ON * 0x00000008 ; アルファブレンド ON DISP3D_ANTI_ALIASING_ON * 0x00000010 ; アンチエリアシング ON DISP3D_EDGE_MARKING_ON * 0x00000020 ; エッジマーキング ON DISP3D_FOG_MODE * 0x00000040 ; フォグモード DISP3D_RGBA_FOG_MODE * 0x00000000 ; RGBAフォグモード DISP3D_ALPHA_FOG_MODE * 0x00000040 ; αフォグモード DISP3D_FOG_MASTER_ON * 0x00000080 ; フォグマスタ ON DISP3D_CLEAR_IMAGE_ON * 0x00004000 ; クリアイメージ ON DISP3D_RENDER_OVER * 0x00001000 ; レンダリング オーバーフロー DISP3D_GEOMETRY_OVER * 0x00002000 ; ジオメトリ オーバーフロー ; 構造体メンバ用定数 ST_DISP3D_TOON_MODE * 0 ; トゥーンシェーディングモード ST_DISP3D_HIGHLIGHT_MODE * 1 ; ハイライトシェーディングモード ST_DISP3D_RGBA_FOG_MODE * 0 ; RGBAフォグモード ST_DISP3D_ALPHA_FOG_MODE * 1 ; αフォグモード ;----------------------------------------------------------------------- ; 表示キャプチャ ;----------------------------------------------------------------------- DPCAP_GFX_WEIGHT_MASK * 0x0000001f ; グラフィックス側のブレンド係数 DPCAP_RAM_WEIGHT_MASK * 0x00001f00 ; RAM側のブレンド係数 DPCAP_DEST_OFFSET_MASK * 0x000c0000 ; 書き込みVRAMアドレス・オフセット DPCAP_SIZE_MASK * 0x00300000 ; キャプチャサイズ DPCAP_SRC_OFFSET_MASK * 0x0c000000 ; 読み込みVRAMアドレス・オフセット DPCAP_BLEND_MODE_MASK * 0x60000000 ; ブレンドモード DPCAP_GFX_WEIGHT_SHIFT * 0 DPCAP_RAM_WEIGHT_SHIFT * 8 DPCAP_DEST_OFFSET_SHIFT * 18 DPCAP_SIZE_SHIFT * 20 DPCAP_SRC_OFFSET_SHIFT * 26 DPCAP_BLEND_MODE_SHIFT * 29 DPCAP_DEST_VRAM_MASK * 0x00030000 ; キャプチャデータ書き込みVRAM選択 DPCAP_DEST_VRAM_SHIFT * 16 DPCAP_DEST_VRAM_A * 0x00000000 ; VRAM−A書き込み DPCAP_DEST_VRAM_B * 0x00010000 ; VRAM−B書き込み DPCAP_DEST_VRAM_C * 0x00020000 ; VRAM−C書き込み DPCAP_DEST_VRAM_D * 0x00030000 ; VRAM−D書き込み DPCAP_SIZE_128x128 * 0x00000000 ; 128x128ドット DPCAP_SIZE_256x64 * 0x00100000 ; 256x 64ドット DPCAP_SIZE_256x128 * 0x00200000 ; 256x128ドット DPCAP_SIZE_256x192 * 0x00300000 ; 256x256ドット DPCAP_GFXSRC_FULL * 0x00000000 ; 2D&3Dグラフィックス読み込み DPCAP_GFXSRC_3D * 0x01000000 ; 3Dグラフィックスのみ読み込み DPCAP_RAMSRC_VRAM * 0x00000000 ; VRAM読み込み DPCAP_RAMSRC_MMEM * 0x02000000 ; メインメモリ読み込み DPCAP_BLEND_GFX * 0x00000000 ; グラフィックス側のみキャプチャ DPCAP_BLEND_RAM * 0x20000000 ; RAM側のみキャプチャ DPCAP_BLEND_GFX_RAM * 0x40000000 ; グラフィックス側とRAM側をブレンディングしてキャプチャ DPCAP_ENABLE * 0x80000000 ; 表示キャプチャ イネーブル ;----------------------------------------------------------------------- ; マスター輝度 コントロール ;----------------------------------------------------------------------- MSBRT_VALUE_MASK * 0x001f ; 輝度係数 MSBRT_MODE_MASK * 0xc000 ; 輝度モード MSBRT_VALUE_SHIFT * 0 MSBRT_MODE_SHIFT * 14 MSBRT_NORMAL_MODE * 0x0000 ; ノーマルモード MSBRT_UP_MODE * 0x4000 ; 輝度UPモード MSBRT_DOWN_MODE * 0x8000 ; 輝度DOWNモード ;----------------------------------------------------------------------- ; ブレンド コントロール ;----------------------------------------------------------------------- BLD_PIXEL_MASK * 0x003f ; ピクセル選択 BLD_1ST_PIXEL_MASK * 0x003f ; 1stピクセル選択 BLD_MODE_MASK * 0x00c0 ; ブレンドモード BLD_2ND_PIXEL_MASK * 0x3f00 ; 2ndピクセル選択 BLD_1ST_PIXEL_SHIFT * 0 BLD_MODE_SHIFT * 6 BLD_2ND_PIXEL_SHIFT * 8 BLD_BG0 * 0x0001 ; BG0 ピクセル選択 BLD_BG1 * 0x0002 ; BG1 ピクセル選択 BLD_BG2 * 0x0004 ; BG2 ピクセル選択 BLD_BG3 * 0x0008 ; BG3 ピクセル選択 BLD_OBJ * 0x0010 ; OBJ ピクセル選択 BLD_BD * 0x0020 ; 背景色 ピクセル選択 BLD_ALL * 0x003f ; ピクセル全選択 BLD_BG0_1ST * 0x0001 ; BG0 1stピクセル選択 BLD_BG1_1ST * 0x0002 ; BG1 1stピクセル選択 BLD_BG2_1ST * 0x0004 ; BG2 1stピクセル選択 BLD_BG3_1ST * 0x0008 ; BG3 1stピクセル選択 BLD_OBJ_1ST * 0x0010 ; OBJ 1stピクセル選択 BLD_BD_1ST * 0x0020 ; 背景色 1stピクセル選択 BLD_1ST_ALL * 0x003f ; 1stピクセル全選択 BLD_NORMAL_MODE * 0x0000 ; ノーマルモード BLD_A_BLEND_MODE * 0x0040 ; 半透明モード BLD_UP_MODE * 0x0080 ; 輝度UPモード BLD_DOWN_MODE * 0x00c0 ; 輝度DOWNモード BLD_BG0_2ND * 0x0100 ; BG0 2ndピクセル選択 BLD_BG1_2ND * 0x0200 ; BG1 2ndピクセル選択 BLD_BG2_2ND * 0x0400 ; BG2 2ndピクセル選択 BLD_BG3_2ND * 0x0800 ; BG3 2ndピクセル選択 BLD_OBJ_2ND * 0x1000 ; OBJ 2ndピクセル選択 BLD_BD_2ND * 0x2000 ; 背景色 2ndピクセル選択 BLD_2ND_ALL * 0x3f00 ; 2ndピクセル全選択 BLD_A_MASK * 0x001f ; ブレンド係数 A BLD_B_MASK * 0x1f00 ; ブレンド係数 B BLD_Y_MASK * 0x001f ; ブレンド係数 Y BLD_A_SHIFT * 16 BLD_B_SHIFT * 24 BLD_Y_SHIFT * 0 ; 構造体メンバ用定数 ST_BLD_NORMAL_MODE * 0 ; ノーマルモード ST_BLD_A_BLEND_MODE * 1 ; 半透明モード ST_BLD_UP_MODE * 2 ; 輝度UPモード ST_BLD_DOWN_MODE * 3 ; 輝度DOWNモード ;----------------------------------------------------------------------- ; ウインドウ コントロール ;----------------------------------------------------------------------- WIN_END_POS_MASK * 0x00ff ; ウインドウ終了点 WIN_START_POS_MASK * 0xff00 ; ウインドウ開始点 WIN_END_POS_SHIFT * 0 WIN_START_POS_SHIFT * 8 WIN_BG0_ON * 0x0001 ; BG0 ON WIN_BG1_ON * 0x0002 ; BG1 ON WIN_BG2_ON * 0x0004 ; BG2 ON WIN_BG3_ON * 0x0008 ; BG3 ON WIN_OBJ_ON * 0x0010 ; OBJ ON WIN_BLEND_ON * 0x0020 ; ブレンド ON WIN_ALL_ON * 0x003f ; 全部 ON ;----------------------------------------------------------------------- ; モザイク コントロール ;----------------------------------------------------------------------- MOS_H_SIZE_MASK * 0x000f ; モザイク高さ MOS_V_SIZE_MASK * 0x00f0 ; モザイク幅 MOS_BG_H_SIZE_MASK * 0x000f ; BGモザイク高さ MOS_BG_V_SIZE_MASK * 0x00f0 ; BGモザイク幅 MOS_OBJ_H_SIZE_MASK * 0x000f ; OBJモザイク高さ MOS_OBJ_V_SIZE_MASK * 0x00f0 ; OBJモザイク幅 MOS_H_SIZE_SHIFT * 0 MOS_V_SIZE_SHIFT * 4 MOS_BG_H_SIZE_SHIFT * 0 MOS_BG_V_SIZE_SHIFT * 4 MOS_OBJ_H_SIZE_SHIFT * 8 MOS_OBJ_V_SIZE_SHIFT * 12 ;----------------------------------------------------------------------- ; BGコントロール ;----------------------------------------------------------------------- BG_PRIORITY_MASK * 0x0003 ; BG間優先順位 BG_CHAR_BASE_MASK * 0x003c ; キャラクタ ベースアドレス BG_SCREEN_BASE_MASK * 0x1f00 ; スクリーン ベースアドレス BG_SCREEN_SIZE_MASK * 0xc000 ; スクリーンサイズ(256/512) BG_PRIORITY_SHIFT * 0 BG_CHAR_BASE_SHIFT * 2 BG_SCREEN_BASE_SHIFT * 8 BG_SCREEN_SIZE_SHIFT * 14 BG_PRIORITY_0 * 0x0000 ; BG第0優先 BG_PRIORITY_1 * 0x0001 ; BG第1優先 BG_PRIORITY_2 * 0x0002 ; BG第2優先 BG_PRIORITY_3 * 0x0003 ; BG第3優先 BG_MOS_ON * 0x0040 ; モザイク ON BG_MOS_OFF * 0x0000 ; モザイク OFF BG_COLOR_16 * 0x0000 ; 16色 選択 BG_COLOR_256 * 0x0080 ; 256色 選択 BG_CHAR_16 * 0x0000 ; 16色キャラクタBG BG_CHAR_256 * 0x0080 ; 256色キャラクタBG BGE_CHAR_256x16 * 0x0000 ; 256色x16パレットキャラクタBG BGE_BMP_256 * 0x0080 ; 256色ビットマップBG BGE_BMP_DIRECT * 0x0084 ; ダイレクトカラービットマップBG BG_LOOP_ON * 0x2000 ; ループ ON BG_LOOP_OFF * 0x0000 ; ループ OFF BG_EXPLTT_SLOT_0 * 0x0000 ; 拡張パレットスロット0へ割り当て BG_EXPLTT_SLOT_1 * 0x0000 ; スロット1 BG_EXPLTT_SLOT_2 * 0x2000 ; スロット2 BG_EXPLTT_SLOT_3 * 0x2000 ; スロット3 BG_SCREEN_SIZE_0 * 0x0000 ; スクリーンサイズ(256x256) BG_SCREEN_SIZE_1 * 0x4000 ; スクリーンサイズ(512x256) BG_SCREEN_SIZE_2 * 0x8000 ; スクリーンサイズ(256x512) BG_SCREEN_SIZE_3 * 0xc000 ; スクリーンサイズ(512x512) ; 構造体メンバ用定数 ST_BG_COLOR_16 * 0 ; 16色 選択 ST_BG_COLOR_256 * 1 ; 256色 選択 ;----------------------------------------------------------------------- ; ビューポート ;----------------------------------------------------------------------- VIEWPORT_START_X_MASK * 0x000000ff ; スタート X座標 VIEWPORT_START_Y_MASK * 0x0000ff00 ; Y座標 VIEWPORT_END_X_MASK * 0x00ff0000 ; エンド X座標 VIEWPORT_END_Y_MASK * 0xff000000 ; Y座標 VIEWPORT_START_X_SHIFT * 0 VIEWPORT_START_Y_SHIFT * 8 VIEWPORT_END_X_SHIFT * 16 VIEWPORT_END_Y_SHIFT * 24 ;----------------------------------------------------------------------- ; ラインバッファ クリア ;----------------------------------------------------------------------- CLR_ID_MASK * 0x3f000000 ; ID CLR_ID_SHIFT * 24 CLR_FOG_ON * 0x00008000 ; フォグフラグ ON CLR_FOG_OFF * 0x00000000 ; フォグフラグ OFF ;----------------------------------------------------------------------- ; ジオメトリコマンド ;----------------------------------------------------------------------- GXOP_NOP * 0x00 ; NOP GXOP_MTX_MODE * 0x10 ; 行列モード GXOP_MTX_PUSH * 0x11 ; 行列プッシュ GXOP_MTX_POP * 0x12 ; 行列ポップ GXOP_MTX_STORE * 0x13 ; 行列ストア GXOP_MTX_RESTORE * 0x14 ; 行列リストア GXOP_MTX_IDENTITY * 0x15 ; 単位行列 初期化 GXOP_MTX_LOAD_4x4 * 0x16 ; 行列ロード(4x4) GXOP_MTX_LOAD_4x3 * 0x17 ; (4x3) GXOP_MTX_MULT_4x4 * 0x18 ; 行列乗算 (4x4) GXOP_MTX_MULT_4x3 * 0x19 ; (4x3) GXOP_MTX_MULT_3x3 * 0x1a ; (3x3) GXOP_MTX_SCALE * 0x1b ; スケール行列乗算(1x3) GXOP_MTX_TRANS * 0x1c ; 移動行列乗算(1x3) GXOP_POLYGON_ATTR * 0x29 ; ポリゴン属性 GXOP_COLOR * 0x20 ; 頂点カラー GXOP_NORMAL * 0x21 ; 頂点法線 GXOP_TEXCOORD * 0x22 ; 頂点テクスチャ座標 GXOP_VTX_16 * 0x23 ; 頂点16bit座標 GXOP_VTX_10 * 0x24 ; 頂点10bit座標 GXOP_VTX_XY * 0x25 ; 頂点16bitXY座標 GXOP_VTX_XZ * 0x26 ; 頂点16bitXZ座標 GXOP_VTX_YZ * 0x27 ; 頂点16bitYZ座標 GXOP_VTX_DIFF * 0x28 ; 頂点16bit座標差分値 GXOP_TEX_PARAM * 0x2a ; テクスチャパラメータ GXOP_TEXIMAGE_PARAM * 0x2a GXOP_TEXPLTT_BASE * 0x2b GXOP_BOX_TEST * 0x70 ; ボックステスト GXOP_POS_TEST * 0x71 ; 位置テスト GXOP_VEC_TEST * 0x72 ; ベクトルテスト GXOP_MATERIAL_COLOR_0 * 0x30 ; マテリアルカラー GXOP_MATERIAL_COLOR_1 * 0x31 GXOP_DIF_AMB * 0x30 ; 拡散光 & 環境光成分 GXOP_SPE_EMI * 0x31 ; 反射光 & 放射光成分 GXOP_LIGHT_VECTOR * 0x32 ; ライトベクトル GXOP_LIGHT_COLOR * 0x33 ; ライトカラー GXOP_SHININESS * 0x34 ; 鏡面反射輝度 GXOP_BEGIN * 0x40 ; ジオメトリ スタート GXOP_END * 0x41 ; ジオメトリ エンド GXOP_SWAP_BUFFERS * 0x50 ; レンダリングエンジン参照データ群のスワップ GXOP_VIEWPORT * 0x60 ; ビューポート ;----------------------------------------------------------------------- ; ジオメトリコマンド パラメータ数 ;----------------------------------------------------------------------- GXOP_NPARAMS_MAX * 32 ; 最大数 GXOP_NOP_NPARAMS * 0 ; NOP GXOP_MTX_MODE_NPARAMS * 1 ; 行列モード GXOP_MTX_PUSH_NPARAMS * 0 ; 行列プッシュ GXOP_MTX_POP_NPARAMS * 1 ; 行列ポップ GXOP_MTX_STORE_NPARAMS * 1 ; 行列ストア GXOP_MTX_RESTORE_NPARAMS * 1 ; 行列リストア GXOP_MTX_IDENTITY_NPARAMS * 0 ; 単位行列 初期化 GXOP_MTX_LOAD_4x4_NPARAMS * 16 ; 行列ロード(4x4) GXOP_MTX_LOAD_4x3_NPARAMS * 12 ; (4x3) GXOP_MTX_MULT_4x4_NPARAMS * 16 ; 行列乗算 (4x4) GXOP_MTX_MULT_4x3_NPARAMS * 12 ; (4x3) GXOP_MTX_MULT_3x3_NPARAMS * 9 ; (3x3) GXOP_MTX_SCALE_NPARAMS * 3 ; スケール行列乗算(1x3) GXOP_MTX_TRANS_NPARAMS * 3 ; 移動行列乗算(1x3) GXOP_POLYGON_ATTR_NPARAMS * 1 ; ポリゴン属性 GXOP_COLOR_NPARAMS * 1 ; 頂点カラー GXOP_NORMAL_NPARAMS * 1 ; 頂点法線 GXOP_TEXCOORD_NPARAMS * 1 ; 頂点テクスチャ座標 GXOP_VTX_16_NPARAMS * 2 ; 頂点16bit座標 GXOP_VTX_10_NPARAMS * 1 ; 頂点10bit座標 GXOP_VTX_XY_NPARAMS * 1 ; 頂点16bitXY座標 GXOP_VTX_XZ_NPARAMS * 1 ; 頂点16bitXZ座標 GXOP_VTX_YZ_NPARAMS * 1 ; 頂点16bitYZ座標 GXOP_VTX_DIFF_NPARAMS * 1 ; 頂点16bit座標差分値 GXOP_TEX_PARAM_NPARAMS * 1 ; テクスチャパラメータ GXOP_TEXIMAGE_PARAM_NPARAMS * 1 GXOP_TEXPLTT_BASE_NPARAMS * 1 GXOP_BOX_TEST_NPARAMS * 3 ; ボックステスト GXOP_POS_TEST_NPARAMS * 2 ; 位置テスト GXOP_VEC_TEST_NPARAMS * 1 ; ベクトルテスト GXOP_MATERIAL_COLOR_0_NPARAMS * 1 ; マテリアルカラー GXOP_MATERIAL_COLOR_1_NPARAMS * 1 GXOP_DIF_AMB_NPARAMS * 1 ; 拡散光 & 環境光成分 GXOP_SPE_EMI_NPARAMS * 1 ; 反射光 & 放射光成分 GXOP_LIGHT_VECTOR_NPARAMS * 1 ; ライトベクトル GXOP_LIGHT_COLOR_NPARAMS * 1 ; ライトカラー GXOP_SHININESS_NPARAMS * 32 ; 鏡面反射輝度 GXOP_BEGIN_NPARAMS * 1 ; ジオメトリ スタート GXOP_END_NPARAMS * 0 ; ジオメトリ エンド GXOP_SWAP_BUFFERS_NPARAMS * 1 ; レンダリングエンジン参照データ群のスワップ GXOP_VIEWPORT_NPARAMS * 1 ; ビューポート ;----------------------------------------------------------------------- ; ジオメトリステータス コントロール ;----------------------------------------------------------------------- GXSTAT_POSVEC_STACK_MASK * 0x00001f00 ; 位置&ベクトルマトリックス スタックレベル GXSTAT_FIFO_COUNT_MASK * 0x00ff0000 ; コマンドFIFO 残量 GXSTAT_FIFO_INTR_MASK * 0xc0000000 ; 割り込みタイプ GXSTAT_POSVEC_STACK_SHIFT * 8 GXSTAT_FIFO_COUNT_SHIFT * 16 GXSTAT_FIFO_INTR_SHIFT * 30 GXSTAT_TEST_BUSY * 0x00000001 ; BOX/頂点/ベクタテスト ビジー GXSTAT_BOX_IN_VIEW * 0x00000002 ; BOXの一部が視体積内 GXSTAT_PROJ_STACK_LEVEL * 0x00002000 ; プロジェクションマトリックス スタックレベル GXSTAT_MTX_STACK_BUSY * 0x00004000 ; マトリックススタック ビジー GXSTAT_MTX_STACK_ERROR * 0x00008000 ; マトリックススタック エラー GXSTAT_GEOMETRY_BUSY * 0x08000000 ; ジオメトリエンジン ビジー GXSTAT_FIFO_FULL * 0x01000000 ; コマンドFIFO フル GXSTAT_FIFO_UNDER_HALF * 0x02000000 ; ハーフ以下 GXSTAT_FIFO_EMPTY * 0x04000000 ; エンプティ GXSTAT_FIFO_FULL_INTR * 0x00000000 ; フルで割り込み GXSTAT_FIFO_HALF_INTR * 0x40000000 ; ハーフ以下で割り込み GXSTAT_FIFO_EMPTY_INTR * 0x80000000 ; エンプティで割り込み ;----------------------------------------------------------------------- ; ジオメトリRAMスワップ コントロール ;----------------------------------------------------------------------- SWPBF_XLU_AUTO_YSORT * 0x00000000 ; 半透明ポリゴン オートYソート SWPBF_XLU_MANUAL_SORT * 0x00000001 ; マニュアルソート SWPBF_Z_BUFFERING * 0x00000000 ; Zバッファリング SWPBF_W_BUFFERING * 0x00000002 ; Wバッファリング ;----------------------------------------------------------------------- ; 行列モード コントロール ;----------------------------------------------------------------------- MTX_MODE_MASK * 0x00000003 ; 行列モード MTX_MODE_SHIFT * 0 MTX_PROJECTION_MODE * 0x00000000 ; プロジェクション行列 MTX_POSITION_MODE * 0x00000001 ; 位置座標行列 MTX_POSITION_VECTOR_MODE * 0x00000002 ; 位置座標&方向ベクトル行列 同時設定 MTX_TEXTURE_MODE * 0x00000003 ; テクスチャ行列 ; 構造体メンバ用定数 ST_MTX_PROJECTION_MODE * 0 ; プロジェクション行列 ST_MTX_POSITION_MODE * 1 ; 位置座標行列 ST_MTX_POSITION_VECTOR_MODE * 2 ; 位置座標&方向ベクトル行列 同時設定 ST_MTX_TEXTURE_MODE * 3 ; テクスチャ行列 ;----------------------------------------------------------------------- ; ライト ;----------------------------------------------------------------------- LIGHT_ID_MASK * 0xc0000000 ; ID LIGHT_ID_SHIFT * 30 ;----------------------------------------------------------------------- ; マテリアルカラー ;----------------------------------------------------------------------- DIFFUSE_SET_COLOR_OFF * 0x0000 ; ディフューズカラーの頂点カラーへのセット OFF DIFFUSE_SET_COLOR_ON * 0x8000 ; ON DIFFUSE_SET_COLOR_SHIFT * 15 SHININESS_TABLE_OFF * 0x0000 ; 鏡面反射輝度テーブル OFF SHININESS_TABLE_ON * 0x8000 ; ON SHININESS_TABLE_SHIFT * 15 ;----------------------------------------------------------------------- ; ポリゴン属性 ;----------------------------------------------------------------------- POLYATTR_LIGHT_ON_MASK * 0x0000000f ; ライトON POLYATTR_RD_MODE_MASK * 0x00000030 ; レンダリングモード POLYATTR_ALPHA_MASK * 0x001f0000 ; α値 POLYATTR_ID_MASK * 0x3f000000 ; ID POLYATTR_LIGHT_ON_SHIFT * 0 POLYATTR_RD_MODE_SHIFT * 4 POLYATTR_ALPHA_SHIFT * 16 POLYATTR_ID_SHIFT * 24 POLYATTR_LIGHT0_ON * 0x00000001 ; ライト0 ON POLYATTR_LIGHT1_ON * 0x00000002 ; ライト1 ON POLYATTR_LIGHT2_ON * 0x00000004 ; ライト2 ON POLYATTR_LIGHT3_ON * 0x00000008 ; ライト3 ON POLYATTR_LIGHT_ALL_ON * 0x0000000f ; 全ライト ON POLYATTR_MODULATE * 0x00000000 ; モジュレーションモード POLYATTR_DECAL * 0x00000010 ; デカールモード POLYATTR_TOON * 0x00000020 ; トゥーン/ハイライトシェーディングモード POLYATTR_HIGHLIGHT * 0x00000020 POLYATTR_SHADOW * 0x00000030 ; シャドウポリゴンモード POLYATTR_BACK_OFF * 0x00000000 ; 裏面 OFF POLYATTR_BACK_ON * 0x00000040 ; ON POLYATTR_FRONT_OFF * 0x00000000 ; 表面 OFF POLYATTR_FRONT_ON * 0x00000080 ; ON POLYATTR_XLU_DEPTH_OFF * 0x00000000 ; 半透明ポリゴンのデプスバッファ更新 OFF POLYATTR_XLU_DEPTH_ON * 0x00000800 ; ON POLYATTR_FAR_REJECT * 0x00000000 ; FARリジェクト POLYATTR_FAR_CLIPPING * 0x00001000 ; FARクリッピング POLYATTR_DISP_1DOT * 0x00002000 ; 1ドット時表示 POLYATTR_DEPTH_LESS * 0x00000000 ; デプスバッファ値より小さい時描画 POLYATTR_DEPTH_EQUAL * 0x00004000 ; デプスバッファ値と等しい時描画 POLYATTR_FOG_OFF * 0x00000000 ; フォグ OFF POLYATTR_FOG_ON * 0x00008000 ; ON ; 構造体メンバ用定数 ST_POLYATTR_MODULATE * 0 ; モジュレーションモード ST_POLYATTR_DECAL * 1 ; デカールモード ST_POLYATTR_TOON * 2 ; トゥーン/ハイライトモード ST_POLYATTR_HIGHLIGHT * 2 ST_POLYATTR_SHADOW * 3 ; シャドウポリゴンモード ST_POLYATTR_DEPTH_LESS * 0 ; デプスバッファ値より小さい時描画 ST_POLYATTR_DEPTH_EQUAL * 1 ; デプスバッファ値と等しい時描画 ;----------------------------------------------------------------------- ; BEGIN コントロール ;----------------------------------------------------------------------- BEGIN_PRIM_TYPE_MASK * 0x00000003 ; プリミティブタイプ BEGIN_PRIM_TYPE_SHIFT * 0 BEGIN_TRIANGLES * 0x00000000 ; 三角形ポリゴン BEGIN_QUADS * 0x00000001 ; 四角形ポリゴン BEGIN_TRIANGLE_STRIP * 0x00000002 ; 連結三角形ポリゴン BEGIN_QUAD_STRIP * 0x00000003 ; 連結四角形ポリゴン ; 構造体メンバ用定数 ST_BEGIN_TRIANGLES * 0 ; 三角形ポリゴン ST_BEGIN_QUADS * 1 ; 四角形ポリゴン ST_BEGIN_TRIANGLE_STRIP * 2 ; 連結三角形ポリゴン ST_BEGIN_QUAD_STRIP * 3 ; 連結四角形ポリゴン ;----------------------------------------------------------------------- ; テクスチャ パラメータ ;----------------------------------------------------------------------- TEX_IMAGE_BASE_MASK * 0x0000ffff ; イメージベースアドレス TEX_S_SIZE_MASK * 0x00700000 ; Sサイズ TEX_T_SIZE_MASK * 0x03800000 ; Tサイズ TEX_FORMAT_MASK * 0x1c000000 ; フォーマット TEX_GEN_MODE_MASK * 0xc0000000 ; テクスチャ座標変換モード TEX_ADDR_SHIFT * 0 TEX_S_SIZE_SHIFT * 20 TEX_T_SIZE_SHIFT * 23 TEX_FORMAT_SHIFT * 26 TEX_GEN_MODE_SHIFT * 30 TEX_IMAGE_BASE_SHIFT * 3 TEX_ST_REPEAT_ON * 0x00030000 ; STリピート ON TEX_ST_REPEAT_OFF * 0x00000000 ; OFF TEX_S_REPEAT_ON * 0x00010000 ; Sリピート ON TEX_S_REPEAT_OFF * 0x00000000 ; OFF TEX_T_REPEAT_ON * 0x00020000 ; Tリピート ON TEX_T_REPEAT_OFF * 0x00000000 ; OFF TEX_ST_FLIP_ON * 0x000c0000 ; STフリップ ON TEX_ST_FLIP_OFF * 0x00000000 ; OFF TEX_S_FLIP_ON * 0x00040000 ; Sフリップ ON TEX_S_FLIP_OFF * 0x00000000 ; OFF TEX_T_FLIP_ON * 0x00080000 ; Tフリップ ON TEX_T_FLIP_OFF * 0x00000000 ; OFF TEX_S_SIZE_8 * 0x00000000 ; Sサイズ 8テクセル TEX_S_SIZE_16 * 0x00100000 ; 16テクセル TEX_S_SIZE_32 * 0x00200000 ; 32テクセル TEX_S_SIZE_64 * 0x00300000 ; 64テクセル TEX_S_SIZE_128 * 0x00400000 ; 128テクセル TEX_S_SIZE_256 * 0x00500000 ; 256テクセル TEX_S_SIZE_512 * 0x00600000 ; 512テクセル TEX_S_SIZE_1024 * 0x00700000 ; 1024テクセル TEX_T_SIZE_8 * 0x00000000 ; Tサイズ 8テクセル TEX_T_SIZE_16 * 0x00800000 ; 16テクセル TEX_T_SIZE_32 * 0x01000000 ; 32テクセル TEX_T_SIZE_64 * 0x01800000 ; 64テクセル TEX_T_SIZE_128 * 0x02000000 ; 128テクセル TEX_T_SIZE_256 * 0x02800000 ; 256テクセル TEX_T_SIZE_512 * 0x03000000 ; 512テクセル TEX_T_SIZE_1024 * 0x03800000 ; 1024テクセル TEX_FORMAT_NONE * 0x00000000 ; テクスチャ無し TEX_FORMAT_4PLTT * 0x08000000 ; 4色パレットテクスチャ TEX_FORMAT_16PLTT * 0x0c000000 ; 16色パレットテクスチャ TEX_FORMAT_256PLTT * 0x10000000 ; 256色パレットテクスチャ TEX_FORMAT_4x4COMP * 0x14000000 ; 4x4圧縮テクスチャ IF :DEF: IRIS_TS TEX_FORMAT_ALPHA3 * 0x04000000 ; 3bitαテクスチャ ENDIF TEX_FORMAT_ALPHA5 * 0x18000000 ; 5bitαテクスチャ TEX_FORMAT_DIRECT * 0x1c000000 ; カラーダイレクトテクスチャ TEX_PLTT0_OFF * 0x20000000 ; カラーパレット0 OFF TEX_PLTT0_ON * 0x00000000 ; ON TEX_PLTT0_XLU * 0x20000000 ; 透明(α=0) TEX_GEN_DIRECT * 0x00000000 ; 座標変換無し TEX_GENSRC_TEXCOORD * 0x40000000 ; 座標変換ソース TexCoord TEX_GENSRC_NORMAL * 0x80000000 ; Normal TEX_GENSRC_VERTEX * 0xc0000000 ; Vertex ; 構造体メンバ用定数 ST_TEX_SIZE_8 * 0 ; テクスチャサイズ 8テクセル ST_TEX_SIZE_16 * 1 ; 16テクセル ST_TEX_SIZE_32 * 2 ; 32テクセル ST_TEX_SIZE_64 * 3 ; 64テクセル ST_TEX_SIZE_128 * 4 ; 128テクセル ST_TEX_SIZE_256 * 5 ; 256テクセル ST_TEX_SIZE_512 * 6 ; 512テクセル ST_TEX_SIZE_1024 * 7 ; 1024テクセル ST_TEX_FORMAT_NONE * 0 ; テクスチャ無し ST_TEX_FORMAT_4PLTT * 2 ; 4色パレットテクスチャ ST_TEX_FORMAT_16PLTT * 3 ; 16色パレットテクスチャ ST_TEX_FORMAT_256PLTT * 4 ; 256色パレットテクスチャ ST_TEX_FORMAT_4x4COMP * 5 ; 4x4圧縮テクスチャ IF :DEF: IRIS_TS ST_TEX_FORMAT_ALPHA3 * 1 ; 3bitαテクスチャ ENDIF ST_TEX_FORMAT_ALPHA5 * 6 ; 5bitαテクスチャ ST_TEX_FORMAT_DIRECT * 7 ; カラーダイレクトテクスチャ ST_TEX_GEN_DIRECT * 0 ; 座標変換無し ST_TEX_GENSRC_TEXCOORD * 1 ; 座標変換ソース TexCoord ST_TEX_GENSRC_NORMAL * 2 ; Normal ST_TEX_GENSRC_VERTEX * 3 ; Vertex ;----------------------------------------------------------------------- ; テクスチャパレットベース ;----------------------------------------------------------------------- TEX_PLTT_BASE_MASK * 0x00001fff ; パレットベースアドレス TEXPLT_BASE_MASK * TEX_PLTT_BASE_MASK TEXPLT_FORMAT_NONE * 0 ; テクスチャパレット無し TEXPLT_FORMAT_4PLTT * 2 ; 4色パレットテクスチャ TEXPLT_FORMAT_16PLTT * 3 ; 16色パレットテクスチャ TEXPLT_FORMAT_256PLTT * 4 ; 256色パレットテクスチャ TEXPLT_FORMAT_4x4COMP * 5 ; 4x4圧縮テクスチャ IF :DEF: IRIS_TS TEXPLT_FORMAT_ALPHA3 * 1 ; 3bitαテクスチャ ENDIF TEXPLT_FORMAT_ALPHA5 * 6 ; 5bitαテクスチャ TEXPLT_FORMAT_NONE_SHIFT * 0 TEXPLT_FORMAT_4PLTT_SHIFT * 3 TEXPLT_FORMAT_16PLTT_SHIFT * 4 TEXPLT_FORMAT_256PLTT_SHIFT * 4 TEXPLT_FORMAT_4x4COMP_SHIFT * 4 IF :DEF: IRIS_TS TEXPLT_FORMAT_ALPHA3_SHIFT * 4 ENDIF TEXPLT_FORMAT_ALPHA5_SHIFT * 4 ;----------------------------------------------------------------------- ; 圧縮テクスチャ パレットインデックス ;----------------------------------------------------------------------- TEX4X4_PLTT_INDEX_MASK * 0x00003fff ; パレットインデックス TEX4X4_PLTT_INDEX_SHIFT * 0 TEX4X4_DIRECT_PLTT * 0x00000000 ; 4パレット TEX4X4_LINER_PLTT * 0x00008000 ; 2パレット→4補間パレット TEX4X4_INDEX_3 * 0x00000000 ; 3インデックス+ TEX4X4_INDEX_4 * 0x00004000 ; 4インデックス ;----------------------------------------------------------------------- ; DMAコントロール ;----------------------------------------------------------------------- DMA_ENABLE * 0x80000000 ; DMA許可 DMA_IF_ENABLE * 0x40000000 ; 割り込み要求 許可 DMA_TIMMING_MASK * 0x38000000 ; 開始タイミング DMA_COUNT_MASK * 0x001fffff ; 転送数 DMA_TIMMING_SHIFT * 27 DMA_COUNT_SHIFT * 0 DMA_TIMMING_IMM * 0x00000000 ; 直ちに起動 DMA_TIMMING_V_BLANK * 0x08000000 ; Vブランク起動 DMA_TIMMING_H_BLANK * 0x10000000 ; Hブランク起動 DMA_TIMMING_DISP * 0x18000000 ; 表示同期 DMA_TIMMING_DISP_MMEM * 0x20000000 ; メインメモリ表示 DMA_TIMMING_CARD * 0x28000000 ; カード DMA_TIMMING_CARTRIDGE * 0x30000000 ; カートリッジ DMA_TIMMING_GXFIFO * 0x38000000 ; ジオメトリFIFO DMA_16BIT_BUS * 0x00000000 ; バスサイズ16Bit選択 DMA_32BIT_BUS * 0x04000000 ; バスサイズ32Bit選択 DMA_CONTINUOUS_ON * 0x02000000 ; コンティニュアスモード ON DMA_SRC_INC * 0x00000000 ; 転送元 インクリメント 選択 DMA_SRC_DEC * 0x00800000 ; 転送元 デクリメント 選択 DMA_SRC_FIX * 0x01000000 ; 転送元 固定 選択 DMA_DEST_INC * 0x00000000 ; 転送先 インクリメント 選択 DMA_DEST_DEC * 0x00200000 ; 転送先 デクリメント 選択 DMA_DEST_FIX * 0x00400000 ; 転送先 固定 選択 DMA_DEST_RELOAD * 0x00600000 ; 転送先 インクリメント/リロード 選択 ; 構造体メンバ用定数 ST_DMA_TIMMING_IMM * 0 ; 直ちに起動 ST_DMA_TIMMING_V_BLANK * 1 ; Vブランク起動 ST_DMA_TIMMING_H_BLANK * 2 ; Hブランク起動 ST_DMA_TIMMING_DISP * 3 ; 表示起動 ST_DMA_TIMMING_DISP_MMEM * 4 ; メインメモリ表示 ST_DMA_TIMMING_CARD * 5 ; カード ST_DMA_TIMMING_CARTRIDGE * 6 ; カートリッジ ST_DMA_TIMMING_GXFIFO * 7 ; ジオメトリFIFO ST_DMA_16BIT_BUS * 0 ; バスサイズ16Bit選択 ST_DMA_32BIT_BUS * 1 ; バスサイズ32Bit選択 ST_DMA_INC * 0 ; アドレス・インクリメント 選択 ST_DMA_DEC * 1 ; アドレス・デクリメント 選択 ST_DMA_FIX * 2 ; アドレス固定 選択 ST_DMA_RELOAD * 3 ; アドレス・インクリメント/リロード 選択 ;----------------------------------------------------------------------- ; タイマー コントロール ;----------------------------------------------------------------------- TMR_PRESCALER_MASK * 0x00030000 ; プリスケーラ クロック TMR_PRESCALER_SHIFT * 16 TMR_PRESCALER_1CK * 0x00000000 ; プリスケーラ 1分周 TMR_PRESCALER_64CK * 0x00010000 ; 64分周 TMR_PRESCALER_256CK * 0x00020000 ; 256分周 TMR_PRESCALER_1024CK * 0x00030000 ; 1024分周 TMR_CONNECT * 0x00040000 ; 下位タイマー接続 TMR_IF_ENABLE * 0x00400000 ; 割り込み要求 許可 TMR_ENABLE * 0x00800000 ; タイマー起動 ; 構造体メンバ用定数 ST_TMR_PRESCALER_1CK * 0 ; プリスケーラ 1分周 ST_TMR_PRESCALER_64CK * 1 ; 64分周 ST_TMR_PRESCALER_256CK * 2 ; 256分周 ST_TMR_PRESCALER_1024CK * 3 ; 1024分周 ;----------------------------------------------------------------------- ; キー ;----------------------------------------------------------------------- BUTTON_MASK * 0x030f ; ボタン PLUS_KEY_MASK * 0x00f0 ; 十字キー ALL_KEY_MASK * 0x03ff ; 全てのキー A_BUTTON * 0x0001 ; Aボタン B_BUTTON * 0x0002 ; Bボタン SELECT_BUTTON * 0x0004 ; セレクトボタン START_BUTTON * 0x0008 ; スタートボタン R_KEY * 0x0010 ; 右ボタン L_KEY * 0x0020 ; 左ボタン U_KEY * 0x0040 ; 上ボタン D_KEY * 0x0080 ; 下ボタン R_BUTTON * 0x0100 ; Rボタン L_BUTTON * 0x0200 ; Lボタン KEY_IF_ENABLE * 0x4000 ; 割り込み要求 許可 KEY_OR_INTR * 0x0000 ; 通常キー割り込み KEY_AND_INTR * 0x8000 ; ANDキー割り込み ; 構造体メンバ用定数 ST_KEY_OR_INTR * 0 ; 通常キー割り込み ST_KEY_AND_INTR * 1 ; ANDキー割り込み ;----------------------------------------------------------------------- ; 外部メモリ コントロール ;----------------------------------------------------------------------- CTRDG_DT8_10CYC * 0x0000 ; カートリッジ 8bitデータバス 10サイクル CTRDG_DT8_8CYC * 0x0001 ; 8サイクル CTRDG_DT8_6CYC * 0x0002 ; 6サイクル CTRDG_DT8_18CYC * 0x0003 ; 18サイクル CTRDG_AD16_1ST_10CYC * 0x0000 ; カートリッジ AD16バス 1st 10サイクル CTRDG_AD16_1ST_8CYC * 0x0004 ; 8サイクル CTRDG_AD16_1ST_6CYC * 0x0008 ; 6サイクル CTRDG_AD16_1ST_18CYC * 0x000c ; 18サイクル CTRDG_AD16_2ND_6CYC * 0x0000 ; 2nd 6サイクル CTRDG_AD16_2ND_4CYC * 0x0010 ; 4サイクル CTRDG_PHI_OUT_NONE * 0x0000 ; φ端子出力クロック Lo固定 CTRDG_PHI_OUT_4MCK * 0x0020 ; 4MHz CTRDG_PHI_OUT_8MCK * 0x0040 ; 8MHz CTRDG_PHI_OUT_16MCK * 0x0060 ; 16MHz CTRDG_ACCESS * 0x0080 ; カートリッジアクセス権選択 CTRDG_ACCESS_MAINP * 0x0000 ; メインプロセッサ CTRDG_ACCESS_SUBP * 0x0080 ; サブプロセッサ CARD_ACCESS * 0x0800 ; カードアクセス権選択 CARD_ACCESS_MAINP * 0x0000 ; メインプロセッサ CARD_ACCESS_SUBP * 0x0800 ; サブプロセッサ MMEM_CE2_OUT * 0x2000 ; CE2信号出力 MMEM_INTF * 0x4000 ; メインメモリインタフェース(TEGでは常にセットして同期モードにする) MMEM_INTF_ASYNC * 0x0000 ; 非同期モード MMEM_INTF_SYNC * 0x4000 ; 同期モード MMEM_PRIORITY * 0x8000 ; メインメモリ優先権選択 MMEM_PRIORITY_MAINP * 0x0000 ; メインプロセッサ MMEM_PRIORITY_SUBP * 0x8000 ; サブプロセッサ ; 構造体メンバ用定数 ST_CTRDG_DT8_10CYC * 0 ; カートリッジ 8bitデータバス 10サイクル ST_CTRDG_DT8_8CYC * 1 ; 8サイクル ST_CTRDG_DT8_6CYC * 2 ; 6サイクル ST_CTRDG_DT8_18CYC * 3 ; 18サイクル ST_CTRDG_AD16_1ST_10CYC * 0 ; カートリッジ AD16バス 1st 10サイクル ST_CTRDG_AD16_1ST_8CYC * 1 ; 8サイクル ST_CTRDG_AD16_1ST_6CYC * 2 ; 6サイクル ST_CTRDG_AD16_1ST_18CYC * 3 ; 18サイクル ST_CTRDG_AD16_2ND_6CYC * 0 ; 2nd 6サイクル ST_CTRDG_AD16_2ND_4CYC * 1 ; 4サイクル ST_CTRDG_PHI_OUT_NONE * 0 ; φ端子出力クロック Lo固定 ST_CTRDG_PHI_OUT_4MCK * 1 ; 4MHz ST_CTRDG_PHI_OUT_8MCK * 2 ; 8MHz ST_CTRDG_PHI_OUT_16MCK * 3 ; 16MHz ENDIF ; _IRIS_DEFINE_H END