gSPLoadUcode.htm 2.8 KB
<HTML>

<BODY>

<img src="../Images/f3dex.gif">
<p>
<blink><b>F3DEXマイクロコード群で追加、変更された機能</b></blink>
<p>
<B><FONT FACE="Arial">gSPLoadUcode(3P) <BR>
</FONT></B>
<P>
<B>関数名<BR>
</B>
<P>
gSPLoadUcode, gsSPLoadUcode
<P>
→マイクロコードのロード<BR>
<P>
<b>構文</b>
<p>
<pre><font size=4>
gSPLoadUcode(Gfx *gdl, u64 *uc_start, u64 *uc_dstart)
gsSPLoadUcode(         u64 *uc_start, u64 *uc_dstart)
</font></pre>
<p>
<b>パラメータ</b>
<p>
<blockquote>
<b>*gdl</b>
<blockquote>
 グラフィクスディスプレイリストポインタ
</blockquote>
<b>uc_start</b>
<blockquote>
 マイクロコードのテキストセクションの先頭(物理アドレス)
</blockquote>
<b>uc_dstart</b>
<blockquote>
 マイクロコードのデータセクションの先頭(物理アドレス)
</blockquote>

</blockquote>
<p>
<b>説明</b>
<p>
<blockquote>
 指定されたマイクロコードをロードします。ただし、ロードが可能なのは<a href="../ucode/gspF3DEX.htm">F3DEXマイクロコード群(F3DEX, F3DLX, F3DLX_Rej, F3DLP_Rej, L3DEX)</a>に限ります。<a href="../ucode/gspFast3D.htm">Fast3D</a><a href="../ucode/gspTurbo3D">Turbo3D</a>をロードすることは出来ません。ただし、マイクロコードのロードはオーバーヘッドとなるため、パフォーマンスの取得のためにはむやみなロードは行わない方がよいでしょう。現実的には、<a href="../ucode/gspF3DEX.htm">F3DLX</a>等のクリップ処理が可能なマイクロコードで地形を書き、<a href="../ucode/gspF3DEX.htm">F3DLX_Rej</a>等の高速のマイクロコードで人物を描くというようにその時々の描画処理に対応するマイクロコードに切り替えていくことになると思われます。また、従来のようにラインを描くときの<a href="../ucode/gspF3DEX.htm">F3DEX</a><a href="../ucode/gspF3DEX.htm">L3DEX</a>の切り替えもCPUの介在無しに行うことが出来ます。
</blockquote>
<p>
<b>注意</b>
<p>
<blockquote>
 このGBIでマイクロコードをロードしたときのグラフィクス及びRSPの内部状態は初期化されてしまいます。このため、マイクロコードをロードした直後はRSPに関する設定を再度行う必要があります。また、ディスプレイリスト(DL)のリンク情報も初期化されてしまうため、<a href="../gsp/gSPDisplayList.htm">gSPDisplayList</a>で呼び出したDL内でこの命令を使用した場合、呼出もとのDLへ戻れなくなりますので、ご注意ください。この仕様は実装の都合上やむを得ないので、ご了承していただきますようお願いいたします。
<p>
 このマイクロコードの<b>g*SPLoadUcode</b>機能を使用可能にするには、以下のようにOSTask構造体のメンバーであるflagにはOS_TASK_LOADABLEフラグをセットする必要があります。
<p>
<pre><font size=4>
OSTask *tp;
tp-&gt;t.flag = OS_TASK_LOADABLE | OS_TASK_DP_WAIT;
</font></pre>
<p>
 このフラグ処理を有効にするために、OSにパッチをあてる必要があります。パッチのあて方については<a href="../ucode/gspF3DEX.htm">F3DEX</a>を参照してください。パッチをあてたOSは、パッチ前のものの上位互換となっています。
</blockquote>
<p>
<b>参照</b>
<p>
<a href="../gsp/gSPLoadUcodeL.htm">gSPLoadUcodeL</a>

</BODY>

</HTML>