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