README_DEMOS.jp 19.4 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433

このドキュメントにはサンプルプログラムについての説明が記述されています。

サンプルプログラムの make 時には以下の点に注意してください

 ○各サンプルプログラムでは、引数なしで make を実行するとデバッグ情報を含
 んだロムイメージファイルが作成されます。このロムイメージファイルはデバッ
 ガ上でのみ動作し 実機の Nintendo64 上では動作しません。 

   「make FINAL=YES」のように、引数に FINAL=YES をつけて make を実行する
 と、実機の Nintendo64 で動作する形式のロムイメージファイルが作成されま
 す。このロムイメージファイルはデバッグ情報を含まないため、PARTNER-N64 
 等の一部のデバッガでは正常に動作しません。
   なお、hostio 等のデバッガ上での動作を前提としているサンプルプログラム
 では、この引数は無効です。

 ○以下の各サンプルプログラムは、Texture/ ディレクトリ下のファイルに依存
 しています。サンプルプログラムを移動する場合には注意してください。

        blockmonkey
        ddspgame
        ground
        lights
        mipmap
        spgame
        texlight
	threadmonkey

以下に各サンプルプログラムの機能・特色を説明します。

autofill:
          画面を塗りつぶすパフォーマンスを測定する簡単なサンプルプログラ
        ムです。サイズとアスペクト比の異なるポリゴンで画面を塗りつぶし、
        その速度を自動的に測定しています。gnuplot を使用してその計測デー
        タを見ることができます。詳しくは、autofill サンプルプログラムの
        README を参照してください。

blockmonkey:
          簡単なパフォーマンスを測定するアプリケーションです。ユーザーが
        ディスプレイリストのサイズやパラメータを変更できて、レンダリング
        時に効果を確認できます。コントローラの操作方法は、アプリケーショ
        ンを実行するとホストの画面に表示されます。

          画面下のパフォーマンス計測グラフは、ポリゴンを描画するのに必要
        な時間を表しています。ディスプレイリストを生成するために必要な
        CPU の処理時間は計算していません。たとえ次のフレームタイムが追い
        付かないとしても、アニメーションがスローダウンしてしまわないよう
        にするためです。

bumpmap:
          バンプマッピングのサンプルプログラムです。詳しくは、bumpmap サ
        ンプルプログラムの README を参照してください。

chrome:
          リフレクション(反射)マッピング機能のサンプルプログラムです。

ci8fb:
          autofill に似たサンプルプログラムです。8bit カラーインデックス
        を使用してレンダリングしています。詳しくは、ci8fb サンプルプログ
        ラムの README を参照してください。

          このサンプルプログラムは、画面に表示される複数の三角形に対して、
        時間とともに、三角形の数と大きさを変化させていきます。
         make に引数をつけずにコンパイルした場合は、
        ・表示される三角形の面積
        ・三角形の、 y方向の大きさに対する x軸方向の大きさの比率
        ・1フレームに描かれる三角形の数
        ・1つの三角形の描画時間(usec)
        ・1秒間に描画できるピクセル数
        の5つの値が osSyncPrintf() で表示されます。

          fill.c で「#define PERFORM_CHECK」を定義すると、三角形の大きさ
        と個数を変化させないで描画が行われます。
          make に引数をつけずにコンパイルした場合は、
        ・10個の三角形を描画するのにかかる時間
        ・背景を描画するのにかかる時間
        ・上記2つの合計時間
        の3つの値が osSyncPrintf() で表示されます。なお、この場合は大量
        の文字列が表示されますので、PARTNER-N64 がハングアップしてしまう
        可能性があります。

ddspgame:
          64DD のサンプルプログラムです。画面表示を行いながら、ディスク
        関数の呼び出しを行い、そのエラー結果と、対応したエラーメッセージ
        を、64DD 内蔵 ROM フォントを用いて表示するというものです。
          コンパイル後、PARTNER-N64 のコマンドウィンドウで "l (デバッグ
        情報ファイル名)" を実行することで、動作させることができます。
          デフォルトではディスク起動のプログラムとなっています。カセット
        起動にするには、"make START_FROM_CASSETTE=YES" と make をしてく
        ださい。
          64DD プログラミングマニュアル第10章に記載のエラー処理シーケ
        ンスにのっとって作成されています。シーケンス中の「異常終了」が発
        生した場合は、以降の処理を行わないようになっています。
          コマンド実行時や実行後に画面の下部に表示される数字は、発生した
        エラー番号をあらわしています。これはゲームプログラムでは表示して
        はいけないことですが、サンプルプログラムということで、現在どんな
        エラーが発生しているかをモニターするために表示しています。
          ddspgame/README.jp にも説明がありますので、参照してください。

detail:
          マルチタイルテクスチャの使用方法を説明するサンプルプログラムで
        す。ディテールテクスチャとミップマップテクスチャを含めてデモを行っ
        ています。

eeptest:
          EEPROM (4k もしくは 16k) のテストを行う簡単なプログラムです。
        make 時に DEBUG_EEPROM=YES と指定すると、4k の EEPROM でも、16k 
        のエリアのリード・ライトを行ないます。

fault:
          OS_EVENT_FAULT イベントを利用して、アプリケーションプログラム
        で CPU の例外を処理するサンプルプログラムです。
          PARTNER-N64 でデバッグ情報ファイル fault.out を読み込んだ場合、 
        PARTNER-N64 によって例外がトラップされて、そこで中断してしまいま
        す。そのため、正常に動作させるには、ROM イメージファイル 
        fault.n64 のみを読み込むようにしてください。ROM イメージファイル
        のみを読み込んで実行するには、以下のように PARTNER-N64 の rd コ
        マンドを使用してください。

                >rd fault.n64,0xb0000000
                >reset
                >g

          なお、上記の実行前にデバッグ情報ファイルを読み込んでいた場合
        には、デバッグ情報が有効となってしまうため、正常に動作しません。
        このような場合、INIT コマンドを実行してもうまくいかないため、
        いったん PARTNER-N64 を終了、再起動してから、ROM イメージファ
        イルの読み込みを行ってください。

flash:
          1Mフラッシュロムのテストを行うプログラムです。基本操作は以
        下の通りです。
            十字キー上下    :  コマンドの選択
            Aボタン        :  コマンドの実行
            Cボタンユニット:  各パラメータの変更

          以下は各コマンドの意味です
            FLASH CHANGE    :   使用するフラッシュの切り替えです。0から3
                                まで指定可能です。
            READ ID         :   フラッシュのIDのリードです。
            READ STATUS     :   フラッシュのステータスのリードです。
            CLEAR STATUS    :   フラッシュのステータスのクリアです。
            ALL ERASE       :   フラッシュの全データを消去します。
	    SECTOR ERASE    :   フラッシュの特定の1セクタを消去します。
                                消去するセクタは PAGE NUMBER で指定した
                                ページを含む1セクタです。
            READ ARRAY(DMA) :   フラッシュの特定のページをDMAでリードし
                                ます。
                                リードするページはPAGE NUMBERで指定した
                                ページからPAGE LENGTH分です。
            WRITE BUFFER    :   フラッシュのバッファへのライトです。
            WRITE ARRAY     :   フラッシュのバッファからフラッシュ各ペー
                                ジへのライトです。
                                リードするページは PAGE NUMBER で指定し
                                たページです。
            FILL WRITE DATA :   乱数によりPAGE NUMBER で指定したページの
            (1 PAGE)            ための1ページ分の書き込みデータパターン
                                を作成します。データの最後の4バイトには
                                ページ番号が入ります。
            CLEAR ALL       :   テストプログラムが持っている読み込みバッ
             READ DATA          ファ内のデータを消去します。
            CLEAR ALL       :   テストプログラムが持っている書き込みバッ
             WRITE DATA         ファ内のデータを消去します。
            ALL ERASE &     :   フラッシュの全領域に対して消去・書き込み
             FILL & WRITE       データ作成・書き込みを行います。
            ALL READ        :   フラッシュの全領域からデータを読み込みま
                                す。データの読み込みは1ページリードで行
                                われます。
            ALL COMPARE     :   テストプログラムが持っている読み込みバッ
                                ファと書き込みバッファの全内容を比較しま
                                す。
            REGION COMPARE  :   テストプログラムが持っている読み込みバッ
                                ファと書き込みバッファの特定領域の内容を
                                比較します。比較する領域はPAGE NUMBERで
                                指定したページからPAGE LENGTH分です。
            ALL TEST        :   指定した回数分だけ ALL ERASE -> ALL FILL 
                                -> ALL WRITE -> ALL COMPARE を実行します。
            PAGE LENGTH     :   ページ長を指定します。動作実験以外では原則
                                1を指定してください。
            PAGE NUMBER     :   ページ番号を指定します。

fogworld:
          フォグ処理とボリュームカリング処理の使用方法のサンプルプログラ
        ムです。

gbpak:
          64GBパックの簡単なサンプルプログラムです。ゲームボーイ・カート
        リッジ(MBC1のみに対応)からデータを読み出し、エラーが発生したと
        きは、対応したメッセージを画面に表示します。
          デフォルトでは、ゲーム名称や会社コードが入っていません。
        siproc.h で定義している COMPANY_CODE と GAME_TITLE を書き換えて
        ご使用ください。COMPANY_CODE を定義していないデフォルトの状態で
        は、ゲーム名称と会社コードのチェックをパスするようにしていますの
        で、ご注意ください。
          また、読み込むデータのサイズを変更したいときは、main.h で定義
        している DATA_SIZE の値(デフォルトでは 0x8000)を書き換えてくだ
        さい。
          また、画面表示メッセージの中に「対応ゲーム」という部分がありま
        すが、実際のゲーム・アプリケーションでは、具体的なゲーム名を表示
        するようお願いします。
          make 時に「make LANG_ENGLISH=YES」とすると、画面表示メッセージ
        が英語になります。

ginv:
          RCP、CPU のクロック速度、利用可能な DRAM の総量などの情報を出
        力する簡単なサンプルプログラムです。

gl:
          Partner-N64 用のゲームローダーです。コマンドラインから ROM 
        イメージを読み込み、実行することができます。詳しくは、
        README.jp を参照してください。

ground:
          大きなグラウンドプレーンを正確にクリッピングするサンプルプログ
        ラムです。


gs2dex:
          スプライトマイクロコード S2DEX の使用方法を説明したサンプルプ
        ログラムです。

lights:
          RSP のテクスチャを使用したスペキュラハイライト効果、シャドウ
        (陰)を擬似的に表現し、それらの位置や大きさをコントローラからの
        入力で制御します。背景はミップマップ処理しています。

mipmap:
          ミップマッピングのデモを行っています。他のテクスチャ処理と比較
        したり、ミップマップパラメータを変更しながら確認することができま
        す。

morphcube:
          CPU で各頂点をモーフィング計算しています。CPU とグラフィックス
        パイプラインは2フレーム続けて並列に実行しています。大きなミップ
        マップテクスチャを、テクスチャメモリに収容できる容量でタイリング
        しています。

morphfaces:
          2次元イメージをモーフィングしています。CPU では頂点のモーフィ
        ングをして、ブレンディングは2サイクルモードで行っています。詳し
        くは、morphfaces サンプルプログラムの NOTES を参照してください。

motortest:
          振動パックのサンプルプログラムです。詳細は、付属の README を
          参照ください。

nosPak:
          N64 のフォントデータを使用した、コントローラパックメニューのサ
        ンプルプログラムです。
          make を行うには、バッチファイル makenos.bat を実行してください。

onetri:
          Zバッファ処理せずに、1ポリゴンを描画する簡単なサンプルプログラ
        ムです。"gload -a -t" で実行することにより、簡単なテクスチャマッ
        ピングを行うことが出来ます。

onetri-fpal:
          onetri の PAL 版です。PAL 方式の TV で全画面表示を行うために 
        FPAL モードを使用しています。

overlay:
          onetri のコードのオーバーレイを行うサンプルプログラムです。
        (コードやデータを含んだ2つの異なるセグメントが同じメモリ領域を
        共有しています。)

pfs:
          コントローラパックのサンプルプログラムです。ゲームノートのチェ
        ックや作成、削除等の実験を行うことができます。操作方法は以下の通
        りです。
                十字キー左右... 作成するゲームノートの選択
                C上         ... ファイルシステムのチェック
                C下         ... ゲームノートの削除
                C左         ... ゲームノートの作成
                C右         ... コントローラパックのフォーマット
                A           ... ゲームのノートのリードテスト
                B           ... ゲームのノートのライトテスト
                START       ... 再読み込み&表示
          ちなみに、このサンプルプログラムはアプリケーションに付属される
        コントローラパックメニューとは違うものです。コントローラパックメ
        ニューのサンプルとしては nosPak を用意していますので、こちらの方
        をご参照ください。
          実際のゲームで作成したゲームノートの入ったコントローラパックを
        このサンプルプログラムで使用した場合、次のことに気をつけてくださ
        い。ライトテストや削除などで、ゲームノートを破壊してしまう可能性
        があります。
        また、カタカナ(日本語)には対応していません。ノート名称でカタカ
        ナを使用している場合、その部分には何も表示されません。

playseq:
          シーケンスプレイヤーを使用したサンプルプログラムです。ヘッダフ
        ァイル playseq.h の中で、MAX_VOICES を以下の 2 種類定義しています
        (#ifdef VOICES_16 - #else - #endif で括っています)。
                #define MAX_VOICES 16; 
                #define MAX_VOICES 32; 
        MAX_VOICES はシンセサイザの物理ボイス数及びシーケンスプレイヤー
        の仮想ボイス数を表しています。これらのボイス数が多いほど同時発音
        可能な音数が増えますが、CPU 及び RSP の処理量も増加します。この
        2 種類の定義を試し、ボイス数の効果を確認してください。
          なお、そのままでコンパイルすると、仮想ボイス数は 32 になります。

playseq.naudio:
        サンプルプログラム playseq を n_audio 対応へ変更したものです。

polyline:
        ポリゴンとラインのマイクロコードを切り替えて描画しています。

reboot:
         再立ち上げシーケンスのサンプルプログラムです。カートリッジにロー
        ドした topgun から、あらかじめディスクに書かれた onetri を再立ち
        上げします。
         make を実行すると reboot/ 下に dwrite, topgun.n64, reboot.out,
        onetri.n64, hello.n64, fat が作成されます。fat は 被起動ゲームの
        サイズと格納位置の情報、dwrite はディスクデータ書きこみ用のバッ
        チファイル、reboot.out は topgun.n64 のデバッグ情報ファイルです。
        PARTNER-N64 のコマンドウィンドウで「<dwrite」でディスクにデータ
        を書きこんだ後、「l reboot」「g」を実行してください。
          実行後、topgun の画面が表示されますので、A ボタンを押してくだ
        さい。再立ち上げを実行するかどうか確認するメニューが表示されます。 
        ここで OK を選んで A ボタンを押すことにより再立ち上げが実行され
        ます。
         なお、ディスク単体での立ち上げを行う場合は PARTNER-N64 のコマ
        ンドウィンドウで「resetdd」「g」と入力します。この場合、このサン
        プルではシンプルなメッセ−ジが表示されます。

        reboot/ 下のディレクトリ構成は以下のようになっています。        

        ddproc/
          DD 処理シーケンスとディスク処理、メッセ−ジ表示用関数等のモジュー
        ルです。以下の三つのアプリケーションで共通して使われます。DD 処
        理シーケンスは 64DD プログラミングマニュアル第10章に記載のエラー
        処理シーケンスにのっとって作成されています。シーケンス中の「異常
        終了」が発生した場合は、以降の処理を行わないようになっています。

        topgun/
         カートリッジから起動するゲームです。onetri を再立ち上げします。

        onetri/
         被起動ゲームです。topgun から再立ち上げされます。dwrite によっ
        てディスクの LBA 50 を先頭に書きこまれます。

        hello_world/
         ディスクの先頭に書かれるゲームです。

        makefat/
         指定ファイルのサイズと指定した格納位置をファイルに出力するプロ
        グラムです。このサンプルプログラムでは fat というファイルに 
        onetri のデータサイズとディスク内での格納位置を出力しています。こ
        の fat は dwrite によってディスクの LBA 49 に書きこまれ、topgun 
        によって参照されます。
        
         再立ち上げの概念、並びに実行方法について詳しくは 64DD プログラ
        ミングマニュアル第15-1章「再立ち上げ」を御覧下さい。


soundmonkey:
          シーケンスプレイヤーとサウンドプレイヤーの両方を使用しているサ
        ンプルプログラムです。本サンプルプログラムではシーケンスプレイヤ
        ーに仮想ボイスを4ボイスしか用意していません。このため MIDI デー
        タ再生時、仮想ボイスの割り当てに失敗し、正常な演奏が行われません。
          make 時にライブラリ libgultra_d.a をリンクした場合
        (「make ERROR=YES」のように引数に ERROR=YES をつけて make を実
        行した場合)、大量のエラーをコンソールに出力します。PARTNER-N64
        は、このエラーを出力する際に使用しているルーチンに対応していない
        ため、引数に ERROR=YES をつけて作成したプログラムは、PARTNER-N64
        上では全く動作しません。
          PARTNER-N64 を使用する場合は make 時に ERROR=YES をつけないよ
        うにして下さい。
          尚、本プログラムは敢えてこのように作成されております。バグでは
        ありません。

spgame:
          フォアグラウンドとバックグラウンドのオブジェクトをスプライト機
        能を使用して描画するサンプルプログラムです。

spritemonkey:
          スプライトマイクロコード Sprite2D の使用方法のデモを行うサンプ
        ルプログラムです。

spritemonkeyEX:
          スプライトマイクロコード S2DEX2 を利用したサンプルです。
        現状の S2DEX2 マイクロコードでは 32bit のテクスチャーの利用時に
        正常に表示されない仕様となっているため、該当するモードに関しては
        エミュレーション関数 guS2DEmuBgRect1Cyc() を利用して表示しています。

sramtest:
          256K SRAM が動作するかテストを行います。実行結果は 
        osSyncPrintf() で表示されます。実行には 256K SRAM の基板が必要で
        す。

terrain:
          これは“地形生成”サンプルプログラムです。N64 ハードウェアを利
        用してジオメトリを描画し、コントローラでインタフェースを操作でき
        ます。

texlight:
          ディフューズライト処理とスペキュラハイライト処理、またテクスチャ
        マッピングを施したオブジェクトを全て同時に表現しているサンプルプ
        ログラムです。

threadmonkey:
          スレッドプロファイラの利用方法を示したサンプルプログラムです。
        blockmonkey の block.c の一部にスレッドプロファイラ用の関数呼び
        出しと、結果表示のルーチンを組み込んだものです。通常の動作モー
        ドやキー操作のデバッグプリント表示の後に、各スレッドの動作回数
        と動作時間が表示されるように変更されています。

tile_rect2d:
          大きなテクスチャをテクスチャメモリにおさまる小さなテクスチャタ
        イルに分割する方法を簡単にデモしています。2次元のテクスチャレク
        タングル・プリミティブを生成しています。

tile_rect3d:
          大きなテクスチャをテクスチャメモリにおさまるタイルに分割する方
        法を説明しています。適切にフィルタリング処理しますので、つなぎ目
        ができることはありません。三角形を生成します。

topgun:
          このサンプルプログラムに登場する戦闘機は MultiGen でモデリング
        された .fltフォーマットのデータです。サンプルプログラムとして添付
        しているジオメトリコンバータ flt2c でディスプレイリストを作成して
        います。

tron:
          壁はソーティング処理していない透明オブジェクトです。RDP のハン
        グを避ける、BOWTIE_VAL パラメータの使用方法をデモしています。

voice:
          音声認識システム用ライブラリ関数を用いた、音声認識処理を行うた
        めのサンプルプログラムです。コントローラポートに音声認識システム
        を接続し、マイクに向かって音声を発することにより、認識結果が画面
        に表示されます。
          詳細は、付属の README を参照ください。