CubeDemo for PS2 Linux Ver1.01

SUMMARY

このプログラムは以下を実現して、PS2 Linuxで、ちょっとしたデモンストレーション (デフォルト480個の立方体が画面の中で飛び跳ねる)を行います。

cubedemo1.jpg cubedemo2.jpg

cubedemo3.jpg cubedemo4.jpg

実行画面

HOW TO USE

Cube Demoの操作方法は次のようになります。

Cube Demoの実行には、コンパイル作業が必要です。

cd cubedemo
make depend
make
make run

コンパイル時に以下のオプションを選択できます。

1. MCONFIGのGDEFINES

-DSCREEN_RES_FREE
画面モードはcubedemoの起動オプションで自由に設定できます。 本オプションを指定してコンパイルした時のみ有効で、 NTSC 640x448, 640x224, PAL 640x512, 640x256, VGA 640x480から選択できます。
-DSCREEN_RES_NTSC
画面モードはNTSC 640x448固定です (cubedemoの起動オプションは無視されます)
-DSCREEN_RES_PAL
画面モードはPAL 640x512固定です (cubedemoの起動オプションは無視されます)
-DSCREEN_RES_VGA
画面モードはVGA 640x480固定です (cubedemoの起動オプションは無視されます)

2. config.h

#define USE_TABLE_COSSIN
#defineにすると、sinf(),cosf()のかわりにテーブルを使用します。 精度は落ちますが、高速です。
#define USE_DRAWPATH_3
#undefにするとPATH3の描画コードがなくなります。
#define GRG_CLIPAREA 1.5f
ポリゴンクリップを行う位置を設定します。View planeの中心から端 まで距離の倍率となっていますので、1.0fで丁度そのままスクリーン のサイズとなります。

3. config_ps2linux.h

#define USE_PHSYADR_DMA
#define USE_VIF1DMA_TTE1
この二つはまとめて定義する必要があります。 DMAパッチ専用モードでioctl()によってDMAのchain modeをハードウエアが解釈します。 USE_PHSYADR_DMAか定義されている時は同時に時間測定もI/Oポートを直接制御したものとなります。 (測定結果に結果に影響はありません)
#define USE_DIRECT_DMA_CONTROL
上記のの二つを指定した時に有効です。 #defineを定義すると、DMAをioctl()ではなく直接I/Oポートをキックして起動します。
#define REDUCE_DMATAG
USE_PHSYADR_DMA等を定義しない時に使用可能です。 DMAのタグをまとめて、数を少なくします。

PROGRAM DOWNLOAD


上記のプログラムは、著作権を放棄しています。 GPLと記述したままかもしれませんが、ご自由にご使用ください。
本アーカイブに含まれるテクスチャの権利は、それぞれに従ってください。 フォントはX11のフォントから適当なものを、 その他はRedHat 7.2J (FTP版)の/usr/share/nautilusの下にあるものから適当に持って来て、 サイズやヒストグラムを修正し、BMP形式で保存したものです。