Fireworks Demo for PS2 Linux Ver1.00
SUMMARY
このプログラムは以下を実現して、PS2 Linuxでちょっとしたデモンストレーション
(花火もどきのパーティクルデモ)を行います。
(A fireworks demonstation program for PS2 Linux)
HOW TO USE
Fireworks Demoの操作方法は次のようになります。
Fireworks Demoの実行には、コンパイル作業が必要です。
cd fireworks
make depend
make
make run
コンパイル時に以下のオプションを選択できます。
(selectable option list)
1. GDEFINES in MCONFIG
画面モードはcubedemoの起動オプションで自由に設定できます。 本オプションを指定してコンパイルした時のみ有効で、 NTSC 640x448, 640x224, PAL 640x512, 640x256, VGA 640x480から選択できます。
画面モードはNTSC 640x448固定です (cubedemoの起動オプションは無視されます)
画面モードはPAL 640x512固定です (cubedemoの起動オプションは無視されます)
画面モードはVGA 640x480固定です (cubedemoの起動オプションは無視されます)
2. config.h
#defineにすると、sinf(),cosf()のかわりにテーブルを使用します。 精度は落ちますが、高速です。
#undefにするとPATH3の描画コードがなくなります。
ポリゴンクリップを行う位置を設定します。View planeの中心から端 まで距離の倍率となっていますので、1.0fで丁度そのままスクリーン のサイズとなります。
3. config_ps2linux.h
この二つはまとめて定義する必要があります。 DMAパッチ専用モードでioctl()によってDMAのchain modeをハードウエアが解釈します。 USE_PHSYADR_DMAか定義されている時は同時に時間測定もI/Oポートを直接制御したものとなります。 (測定結果に結果に影響はありません)
上記のの二つを指定した時に有効です。 #defineを定義すると、DMAをioctl()ではなく直接I/Oポートをキックして起動します。
USE_PHSYADR_DMA等を定義しない時に使用可能です。 DMAのタグをまとめて、数を少なくします。
4. config_fire.h
VPU1を使用してジオメトリ演算を行います。
rand()関数をglibcのものから自前の簡単なものに変更します。
#undef USE_VPU1の時のみに効果があります。
スプライトではなく、ポイント表示を行います。
パーティクルのスプライトサイズを指定します。
VPU1へ一度に送る頂点数を設定します。
VPU1プログラムを選択します。
1 ... 最適化なし版 (no optimize)
2 ... 最適化なし版 (nopでハザード部を置き換えたもの) (no optimize, hazard nop)
3 ... 最適化版 (optimize version, default)
PROGRAM DOWNLOAD
上記のプログラムは、著作権を放棄しています。
GPLと記述したままかもしれませんが、ご自由にご使用ください。
本アーカイブに含まれるテクスチャの権利は、それぞれに従ってください。
フォントはX11のフォントから適当なものを持ってきてBMP化したものです。
X11に従ってください。
その他は私が作成したものですので、プログラムと同じ扱いになります。