====================================== NINTENDO64 NuSytem sample highreso Copyright (C) 1997, NINTENDO Co,Ltd. ====================================== 【1】はじめに これは、NuSystemのハイレゾモード、ローレゾモードを使う サンプルです。 NINTENDO64は、ハイレゾモードをサポートしています。 NuSystemは、nuGfxInit()を使った場合の初期設定がローレゾモードのため、 ハイレゾモードに変更する場合、VIモードの変更と フレームバッファアドレスの変更、Zバッファアドレスの変更が必要です。 さらに、オーディオヒープの位置も変更する必要があります。 しかし、これらの変更は難しくありません。 ハイレゾモードを使う場合や、ローレゾモードとハイレゾモードの 両方を使う場合の参考にしてください。 【2】操作方法 起動直後の画面は、ハイレゾモードになっています。 コントローラの「A」ボタンを押すごとに、ハイレゾモードと ローレゾモードが切り替わります。 【3】メモリ配置 このサンプルでは、ハイレゾモードとローレゾモードのアドレス配置は 下の図のようになっています。 ハイレゾ画面とローレゾ画面のメモリ配置図 ハイレゾ ローレゾ 0x80000000 +---------+ +----------+ | System | | System | 0x80000400 +---------+ +----------+ | Free | | Z-Buffer | 0x80025A00 +---------+ +----------+ | Code | | Code | | & Data | | & Data | | & Heap | | & Heap | 0x801BE000 +---------+ | | |Z-Buffer | | | |FrameBuf | 0x8030F800 +----------+ | | | FrameBuf | | | | | 0x80380000 +---------+ +----------+ | Audio- | | Audio- | | Heap | | Heap | 0x083FFFFF +---------+ +----------+ ハイレゾ時は0x80000400-0x80024FFまでが空き領域になりますが この領域を空けたく無い場合はZ-Buffeをハイレゾとローレゾで 動的に確保して割り当てれば良いです。 ただしZ-BufferとFrameBufferは RDRAMの別バンクに割り当てた方が良いです。 (このサンプルは,ハイレゾ方のメモリ配置は良くないです。 その代わりヒープメモリの管理は楽になっています) 【4】その他 画面表示ににはS2DEXマイクロコードのBG機能を使っていますが、 思ったより時間がかかりますね。 実際は、BG全画面描画するならフレームバッファのクリアは必要なく 処理を省くことができます。もちろん、ハイレゾモードだとクリア時間も 結構かかりますから、これは大きいですよ。
Name |
Last commit
|
History
|
Last Update |
---|---|---|
.. | ||
CVS | ||
Makefile | ||
Makefile.dos | ||
Makefile.irix | ||
README.TXT | ||
graphics.c | ||
localdef.h | ||
main.c | ||
picahigh.551 | ||
picalow.551 | ||
spec |