グラフィックスサンプルデモ

場所

$TwlSDK/build/demos/gx/UnitTours

またグラフィックサンプルデモはすべて、$TwlSDK/build/demos/gx/UnitTours/DEMOLib 以下の DEMO.h および libDEMO.a を共通して利用しています。

コンパイル方法

$TwlSDK/build/demos/gx/UnitTours ディレクトリに移り、

% make

と入力します。コンパイルが始まり、実行ファイルである .srl ファイルやバイナリ情報を記述した .nef または .tef ファイルが、

$TwlSDK/build/demos/gx/UnitTours/(サンプル名)/bin/(プラットフォーム)/(ターゲット)/

の下に生成されます。例えば、

$TwlSDK/build/demos/gx/UnitTours/2D_Oam_1/bin/ARM9-TS/Release/main.srl

2D_Oam_1 デモの実行ファイルとなります。

実行方法

NITRO ROM の場合

Ensata エミュレータを用いる場合

IS-NITRO-DEBUGGER を用いる場合

IS-TWL-DEBUGGER を用いる場合

TWL/NITRO HYBRID ROM の場合

IS-NITRO-DEBUGGER を用いる場合

IS-TWL-DEBUGGER を用いる場合

TWL LIMITED ROM の場合

IS-TWL-DEBUGGER を用いる場合

説明

BGのサンプル

デモ名 ディレクトリ 動作
2D_CharBg_1 demos テキストモードでBGを表示します。
2D_CharBg_2 demos アフィンモードでBGを表示します。キー操作で画面を回転させることができます。
2D_CharBg_3 demos アフィンモードでBGを表示します。キー操作で画面を拡大縮小させることができます。
2D_CharBg_4 demos BGにオフセットを設定します。キー操作で画面をスクロールさせることができます。
2D_CharBg_5 demos BGの各キャラクタをフリップさせます。キー操作で画面の各キャラクタをフリップさせることができます。
2D_CharBg_6 demos BGにモザイクをかけます。キー操作でモザイクのサイズを変更することができます。
2D_CharBg_7 demos 2つのBGをαブレンディングします。キー操作でブレンド係数の調整をすることができます。
2D_CharBg_8 demos 2つのウィンドウを表示します。キー操作でウィンドウの位置とサイズを変更することができます。
2D_CharBg_9 demos BGの輝度を設定します。キー操作で輝度の変更ができます。
2D_CharBg_256_16 demos アフィン拡張BGで256色×16パレットを使用して画面を表示します。
2D_CharBg_256BMP demos アフィン拡張256色ビットマップBGを使用して画面を表示します。
2D_CharBg_Direct demos アフィン拡張BGでダイレクトカラービットマップBGを使用して画面を表示します。
2D_BmpBg_Vram demos VRAM表示モードを用いて画面を表示します。
2D_BmpBg_MainRam demos メインメモリ表示モードを用いて画面を表示します。
2D_CharBg_BankEx demos GX_SetBankForBGEx() でBG-VRAMを直接指定して画面を表示します。

OBJのサンプル

デモ名 ディレクトリ 動作
2D_Oam_1 demos OBJを表示します。
2D_Oam_2 demos OBJをアフィンモードで回転させます。キー操作でOBJを回転させることができます。
2D_Oam_3 demos OBJをアフィン倍角モードで拡大縮小します。キー操作でOBJを拡大縮小させることができます。
2D_Oam_4 demos OBJをフリップさせます。キー操作でOBJをフリップさせることができます。
2D_Oam_5 demos OBJにモザイクをかけます。キー操作でモザイクのサイズを変更することができます。
2D_Oam_256_16 demos 256色×16拡張パレットOBJを表示します。
2D_Oam_Direct demos 2次元マッピングのビットマップOBJを表示します。
2D_Oam_Bmp1D demos 1次元マッピングのビットマップOBJを表示します。
2D_Oam_Char1D demos 1次元マッピングのキャラクタOBJを表示します。
2D_Oam_Translucent demos 半透明OBJを表示します。キー操作で半透明OBJのブレンディング係数を変更することができます。
2D_Oam_OBJWindow demos 背景のBGを円形のOBJウィンドウを通して表示します。キー操作によってOBJウィンドウを移動することができます。

3Dのサンプル

デモ名 ディレクトリ 動作
3D_Pol_OneTri demos 画面に三角形を1つ表示します。
3D_Pol_Simple demos ライトや頂点カラー無しに回転する立方体を表示します。
3D_Pol_Simple2 demos 立方体を表示しますが、G3_VtxXY(), G3_VtxXZ(), G3_VtxYZ() を使用します。
3D_Pol_Simple3 demos 立方体を表示しますが、G3_Vtx10() を使用します。
3D_Pol_Color demos 立方体を、G3_Color() で頂点カラーを設定して表示します。
3D_Pol_Light demos 立方体を、G3_Normal() で法線ベクトルを設定して表示します。
3D_Pol_LightColor demos G3_Color()G3_Normal() の順序の違いによる表示の違いを示します。
3D_Pol_Tex4_Plett demos 立方体に4色パレットテクスチャをはって表示します。
3D_Pol_Tex16_Plett demos 立方体に16色パレットテクスチャをはって表示します。
3D_Pol_Tex256_Plett demos 立方体に256色パレットテクスチャをはって表示します。
3D_Pol_Tex32768 demos 立方体にダイレクトテクスチャをはって表示します。
3D_Pol_Tex4x4 demos 立方体に4x4texel圧縮テクスチャをはって表示します。
3D_Pol_Tex_Alpha demos 立方体に半透明テクスチャをはって表示します。
3D_Pol_Tex_Decal demos 立方体にテクスチャをデカルモードではって表示します。
3D_Pol_Toon demos トゥーンシェーディングを使用して椅子を表示します。
3D_Pol_High_Light demos ハイライトシェーディングを使用して椅子を表示します。
3D_Pol_TexSRT demos G3_TexImageParam() でTexCoordソースを指定して、テクスチャの回転拡大縮小と平行移動を行います。
3D_Pol_Env_Mapping demos G3_TexImageParam() でNormalソースを指定して、環境マップの表示を行います。
3D_Pol_Vertex_Source demos G3_TexImageParam() でVertexソースを指定して、投影マッピングの表示を行います。
3D_Pol_Translucent demos 半透明ポリゴンを表示します。
3D_Pol_Transparent demos 透明(ワイヤーフレーム表示)ポリゴンを表示します。
3D_Shininess demos 鏡面反射輝度テーブルを設定し、鏡面反射輝度の変換を行います。
3D_Fog demos フォグがかかった空間を立方体が移動します。
3D_Edge_Marking demos 3つの立方体にそれぞれ違う色のエッジマーキングを施して表示します。
3D_Alpha_Test demos αテストを行います。立方体を2つ描画していますが、表示されるのは1つだけです。
3D_Command_Pack demos あらかじめ用意されたコマンドリスト(ディスプレイリスト)をDMA転送し、モデルを表示します。
3D_Pol_MakeDL demos コマンドリスト(ディスプレイリスト)をプログラム内で動的に生成し、モデルを表示します。
3D_Pol_Split demos Hブランク中に出力ディスプレイを切り替えることで両方のスクリーンに3Dオブジェクトを表示します。
3D_PolAttr_1Dot demos G3_PolygonAttr() でMISC_DISP_1DOTを指定して1ドットポリゴンの表示抑制を行います。キー操作によって1ドットポリゴンの表示・非表示を切り替えます。
3D_PolAttr_DpthTest demos G3_PolygonAttr() でMISC_DEPTHTEST_DECALを指定して、デカルポリゴンとしての表示を行ないます。キー操作によって効果のON/OFFを切り替えます。
3D_PolAttr_DpthUpdate demos G3_PolygonAttr() でMISC_XLU_DEPTH_UPDATEを指定して、半透明ポリゴン描画時のデプスバッファの更新行います。キー操作によって効果のON/OFFを切り替えます。
3D_PolAttr_FARClip demos G3_PolygonAttr() のFAR面交差ポリゴンのクリッピングを行います。キー操作によってFAR面の移動及びクリッピング効果のON/OFFを切り替えを行います。
3D_Shadow_Pol demos シャドウポリゴンを使用して影を表示します。
3D_BoxTest demos ボックステストを行います。回転移動する球体が立方体の面に接触しているかどうかの判定結果によって通常描画とワイヤーフレーム描画を切り替えます。
AntiAlias demos ポリゴンのアンチエイリアスをおこないます。
FlipRepeat demos テクスチャのフリップ、リピート設定を行ない表示します。キー操作によって設定を切り替えます。
ClearColor demos クリアカラーを設定して、カラーバッファの初期値を設定します。
ClearImage demos クリアイメージを使用してクリアカラーバッファの初期値に画像を設定して表示します。
ClearDepthOnly demos クリアカラーイメージスロットにVRAMを設定せずに、クリアデプスイメージのみ単体で使用します。この時クリアカラーはすべて0で初期化されます。
CurrentMtx demos カレントクリップ行列を取得しデバッグ出力に表示します。
PosVecTest demos カレントクリップ座標行列によって変換した位置座標と、カレント方向ベクトル行列によって変換したベクトルを取得してデバッグ出力に表示します。
LinesOver demos ラインズオーバーの発生を検出してデバッグ出力に表示します。
RamOverFlow demos ポリゴンリストRAM, 頂点リストRAMのオーバーフローを検出してデバッグ出力に表示します。
ViewPort demos ビューポートを設定して表示します。キー操作によってビューポートのサイズと位置を移動することができます。

画面効果を使用するサンプル

デモ名 ディレクトリ 動作
MasterBright demos 輝度アップ/ダウンの特殊効果を使用して画面を表示します。キー操作によって画面輝度を変更することができまます。
Capture demos 画面のキャプチャー機能を使用してモーションブラー効果を表示します。
Window demos Hブランク割り込み処理を使用してウィンドウを変形表示します。
Window_HDMA demos Hブランク自動起動DMAを使用してウィンドウを変形表示します。

サブグラフィックスエンジンとBottom LCDを使用するサンプル

デモ名 ディレクトリ 動作
Sub_CharBg_1 demos 2D_CharBg_1と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_CharBg_2 demos 2D_CharBg_2と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_CharBg_3 demos 2D_CharBg_3と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_CharBg_4 demos 2D_CharBg_4と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_CharBg_5 demos 2D_CharBg_5と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_CharBg_6 demos 2D_CharBg_6と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_CharBg_7 demos 2D_CharBg_7と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_CharBg_8 demos 2D_CharBg_8と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_CharBg_9 demos 2D_CharBg_9と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_Oam_1 demos 2D_Oam_1と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_Oam_2 demos 2D_Oam_2と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_Oam_3 demos 2D_Oam_3と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_Oam_4 demos 2D_Oam_4と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_Oam_5 demos 2D_Oam_5と同様の操作をサブグラフィックスエンジンに対して行い、Bottom LCDに表示します。
Sub_Double3D demos キャプチャを用いることにより上下のLCDに3D面表示を擬似的に行います。

動作

3D_Pol_Transparent は ensata では正常動作しません。

参照

グラフィックス関数一覧

履歴

2008/07/11 TWLに対応した記述に変更
2007/02/23 VCount デモの削除
2006/02/27 2D_CharBg_256BMPの解説が誤っていたのを修正。
2005/07/22 サンプルデモ名の誤りを修正。
2005/05/10 2D_CharBg_BankEx サンプルデモの説明を追加。
2005/03/02 記述内容を現在のサポート環境の状況に合うよう修正
2004/08/17 IS-NITRO-EMULATORについての表記を統一
2004/07/10 .bin から .srl へ変更。
2004/02/20 サブグラフィックスエンジンとBottom LCD使用サンプルを追加。
2004/01/09 初版