relnotes20I.jp 12.8 KB

12/15 リリース RELEASE NOTES
===============================

概要:
-----
          今回の Ultra 64 のリリース(RCP 2.0 用バージョン2.0I) は、2.0H
        以降にリリースされた様々のパッチを含んでいます。

#ifdef SGI
          2.0Cリリースにおいて説明した、R4300 CPUの乗算の不具合に注意し
        てください。この不具合を解消するには、IRIX5.3に含まれているパッ
        チをインストールする必要があります。簡単な説明を後述の付録Aで行っ
        ています;より詳しいパッチインストール指示は、そのパッチに添付さ
        れるリリースノートで説明しています(このパッチはこのテープにも含
        まれています)。

#endif /* SGI */
          /usr/src/PR の下のディレクトリ構成が一新され、デモソフトは 
        /usr/src/PR/demos にインストールされることになりました。その他の
        詳しい構成に関しては、/usr/src/PR/README.jp を参照してください。
        各デモソフトの説明は /usr/src/PR/demos/README_DEMOS.jp を参照し
        てください。
          また、インストール前には /usr/src/PR を全て消去しておくことを
        お勧めします。これにより、古いディレクトリと新しくインストールさ
        れたディレクトリが混在し、分かりにくくなることを事前に防ぐことが
        できます。

          /usr/src/PR/demos/README_DEMOS.jp および、/usr/src/PR/demos/ 
        の下のいくつかのサンプルデモのディレクトリにある README 内に、
        "gload" を実行する、というような記述がありますが、これは Indy + 
        開発ボード の開発環境におけるプログラムの実行方法です。PARTNER 
        を使用されている方は、PARTNER におけるプログラムの実行方法にした
        がって実行してくださるようお願いします。

#ifdef SGI
          インストール時にコンフリクトが起き、「パッチが依存しているため
        に古いバージョンを消去できない」と出ることがあります。そのときは
        「パッチも消去する」を選んでください。
#else
          2.0H では 64DD 開発環境が含まれていました。今回の 2.0I では
        64DD 開発環境は別パッケージとなりました。

          環境変数設定バッチファイル setup.bat が変更されました。ライブ
        ラリ用のバッチファイル setuplib.bat と、exeGCC 用のバッチファイ
        ル setupgcc.bat の2つが追加され、setup.bat ではこの2つのバッチ
        ファイルを呼ぶように変更しています。

          デモソフトの Makefile の書式を変更しました。SGI のものに近い
        形になりました。また、exeGCC Ver.1.2 以降のデバッグ情報圧縮機能
        に対応しました。これにともない、ultra/include/make 以下のファイ
        ルが一新されました。

          ultra/usr/include/以下のヘッダファイルが整理されました。
               ・削除されたヘッダファイル
                        ultra/usr/include/bstring.h
                                          math.h
                                          svr4_math.h
                                          tinymon.h
               ・内容が変更されたヘッダファイル
                        ultra/usr/include/assert.h
#endif

新しい機能:
-----------
          新しいスプライトマイクロコード S2DEX を追加しました。機能、使
        用法については /usr/src/PR/doc/gfxucode.S2DEX にあるドキュメント
        を参照してください。これは 2.0H に対するパッチとして配布していた 
        S2DEX マイクロコードの Release 1.06 と同じものです。これまで供給
        してた Sprite2D マイクロコードと S2DEX マイクロコードには互換性
        はありません。ご注意ください。

新しいデモソフト:
-----------------
        gs2dex
          S2DEX マイクロコードのサンプルプログラムです。 コントローラ 1 
        を使用します。
#ifdef SGI
                *このプログラムのコンパイルには perl が必要です。
                 IRIX の CD にある以下のパッケージをインストールしてくだ
                 さい。
                        eoe2.sw.gifts_perl (IRIX 5.3 の場合)
                        eoe.sw.gifts_perl (IRIX 6.X の場合)
#endif /* SGI */

        eeptest
          EEPROM 用のチェックプログラムです。EEPROM に対して WRITE/READ 
        を行い、正しく読み書きできるかチェックします。16K-EEPROM に対応
        しています。

        sramtest
          SRAMのサンプルプログラムです。実行には256KbitsのSRAM基板が必要
        です。実行結果はosSyncPrintfでターミナルに返されます。

変更されたデモソフト:
---------------------
        motortest
          振動パックを止める場合に、osMotorStop()を3回コールするように
        変更しました。

        nosPak
          コントローラパックメニューのサンプルライブラリ(libnos_jpn.a,
        libnos.a)が以前のものでは最初から用意されていました。これを、
        lib/ で make を行うことによって、ライブラリを作成するように変更
        しました。
#ifdef PC
          上記の変更にともない、ultra/usr/lib にあったサンプルライブラリ
        libnos*.a、及び、ultra/usr/include/PR にあったヘッダファイル
        lisnos.h, ncode.h を削除しました。
#endif        
          また、従来のコントローラパックメニュープログラムでは、メニュー
        内部で画面モードの設定を NTSC 用に行なっていました。そのため、
        NTSC 以外のモードでは使用できませんでした。今回、NTSC 以外のモー
        ドでもコントローラパックメニューを使用できるようにするため、画面
        モードの設定をメニュー内で行なうのを止めました。つまり、コントロー
        ラパックメニューを呼ぶ前には、画面モードの設定を行う必要がありま
        す。
          コントローラパック・メニューでコントローラパック・ライブラリの
        バージョンを表示するように変更しました。自作のコントローラパック・
        メニューにおいても、必ず、バージョン番号は表示するようにお願い致
        します。

#ifndef SGI
        overlay
          現在、PCではマルチウェーヴに対応していないため、削除しました。

#endif /* not SGI */
        pfs
          画面表示の文字の誤りを修正しました。また、コントローラパックの
        ガイドラインに添った仕様に変更しました。
          L、Rボタンによるゲームノートのページ数変更の機能を削除しました。

        nnsample1,2
          RDP FIFO バッファサイズの誤りを修正しました。また、rmon を使用
        する場合は、USE_RMON を指定するように変更しました。

修正された問題点:
-----------------

        AUDIO 
          osAiSetNextBuffer() 関数において、RCPのバグに関する補正を修正
        しました。今まではDMA元の最終アドレスが bXX10 0000 0000 0000 の
        場合にバグが発生すると判断していたものを bXXX0 0000 0000 0000 の
        ときに発生すると判断し、回避するように変更しました。

        GRAPHICS 
          Sprite2D マイクロコードにおいて Yield 処理が正常に行なわれなかっ
        たバグを修正しました。 以前は naudio マイクロコードと組み合わせ
        た場合にこの障害が起こっていました。

          F3DEX マイクロコードの gSP1Quadrangle でフラットシェードを使用
        したときに正常に動作しない場合がありました。gbi.h が修正されてい
        ます。

        OS 
          以前の OS では、osMotorInit()を呼ばずに、osMotorStart() や 
        osMotorStop()を呼んだときの動作は不定となっていました。今回、この
        ような場合、PFS_ERR_INVALID というエラーを返すように変更しました。

#ifndef SGI
          osContGetReadData()で 1-コントローラのデータが壊れて、正しいデー
        タが読めないときがあった。

#endif /* not SGI */
          osEepromLongRead() 内で、一回の読み込みごとに CPU タイマを使用
        して 15ms 待っていた部分を削除しました。15ms 待つ必要があるのは、
        Write 時だけで、Read 時は不要のためです。

          osPfsInitPak()の返り値で、コントローラパックを抜き差ししても、
        PFS_ERR_NEW_PACK が返らないときがあるという不具合を修正しました。
        他のポートのコントローラでコントローラパックを抜き差しした場合に
        このような不具合が発生していました。

          1Mコントローラパック(開発途中版)の使用時に、osPfsDeleteFile()
        でゲームノートを削除しようとしたときに、他のゲームノートも消して
        しまう不具合が修正されました。ちなみに、通常の 256Kのコントロー
        ラパック使用時には、以前から問題ありませんでした。
          また、この不具合が修正されたコントローラパック・ライブラリを使
        用していることがはっきりとわかるように次の仕様の追加をしました。
          コントローラパック・ライブラリのバージョンを示す OS_PFS_VERSION
        を追加しました。各ゲーム・アプリケーションの中のコントローラパッ
        ク・メニュー中では、必ずこのバージョンを表示するよう、お願い致し
        ます。
          OS_PFS_VERSION は 16bitの値です。上位 8bit が、バージョン番号
        の整数部分、下位 8bit が小数部分となっています。例えば、
        OS_PFS_VERSION の値が 0x0200 とすると、コントローラパック・ライ
        ブラリのバージョンは 2.0 となります。使用例としては、付属のサン
        プル nosPak をご参照ください。

          osEPi(Raw)ReadIo(), osEPi(Raw)WriteIo()を使用した際に、PI バス
        の設定値が引数で与えたハンドラの通りに変更されないという不具合が
        修正されました。
        
          マクロ定義で括弧が抜けている部分があったのを修正しました。

          マクロ OS_CYCLES_TO_*SEC, OS_*SEC_TO_CYCLES の定義を、オーバー
        フローしにくくなるように変更しました。

          ヘッダファイル os.h 中で、 osViRepeatLine()の extern 宣言が、
        osRepeatLine()となっていたのを修正しました。 

          SEGMENT_NUMBER の値がアドレスの上位 8bitだったのを、そのうちの
        上位 4bitを無視するように変更しました。このため、KSEG0,1 のアド
        レスを入れても誤動作しないようになりました。

          Partner で hostio を使用した場合、データが届いていないときに、
        スレッドがポーリングで待たされてしまうという問題点を修正しました。

          osUnmapTLBAll() を使用した際、本来ならエントリ0 - 30 を unmap 
        すべき(エントリ31 はシステムが使用します)ところを、エントリ1 -
        31 を unmap してしまう、という不具合がありました。修正されていま
        す。

          2.0H の例外ハンドラでは、64DD のプログラムで使用するグローバル
        変数領域を上書きしてしまう不具合がありました。修正されています。

          osDestroyThread() に存在しないスレッド(例えば既に destroy した
        スレッド等)を指定してコールした場合、暴走するという不具合を修正
        しました。そのような場合、何もせずに返るようになりました。

        TOOL

拡張された機能:
---------------

        AUDIO

        GRAPHICS

        OS
          EEPROM関数が 16K-EEPROM に対応しました。

          osGetMemSize() 関数が追加されました。これは、RDRAM の拡張メモ
        リ領域の一部に実際にアクセスしてみて、メモリー拡張パックが挿さっ
        ているかどうかを確認するためのものです。64DD のゲームで使用して
        ください。今までにあった、osMemSize との違いは、これは変数であり、
        起動時に得られた RDRAM のサイズが格納されているのに対し、
        osGetMemSize() はコールされた時点でアクセス可能かどうかを調べに
        行くところです。

          osEPiLinkHandle() 関数が追加されました。これはハンドラ取得関数
        を自分で作成する際に使用します。詳しくはサンプルデモ sramtest を
        参照してください。

今後サポートされない機能:
-------------------------
          osPfsReSizeFile() 関数が削除されました。


注意点:
-------

ドキュメント:
-------------

        ドキュメント類は情報の追加と整理を行っています。


----------------------------------------------------------------------------
警告:
----------------------------------------------------------------------------

グラフィックス:
---------------

オーディオ:
-----------

OS:
---

デモ:
-----

ツール:
-------

デバッガ:
---------

----------------------------------------------------------------------------
資料A
---------------------------------------------------------------------------- 

以前のリリースから認識しておく必要のあった重要な注意:
----------------------------------------------------------

#ifdef SGI
          アプリケーション'spin'を実行するためには‘sgitcl’が必要です。
        このツールはIRIX5.3のディストリビューションCDに含まれていますが、
        便宜上このリリースにも含められています。あなたが NINTENDO64 ソフ
        トウェア開発環境をデフォルトのまま、インストールする時にはインス
        トールされません。

          システムにはIRIXパッチpatchSG0001118をインストールする必要があ
        ります。このパッチは、R4300問題を回避するために、あなたのCコン
        パイラとアセンブラをフィックスするものです。このパッチは便宜上こ
        のリリースにも入っています。NINTENDO64ソフトウェア開発環境をデフォ
        ルトでインストールした場合にはこれはインストールされません。イン
        ストール指示の詳細は patch1118/patchSG0001118/relnotes/ch1.z を
        見てください。

          注:インストールする際にはこのパッチを選択する必要があります。 
        ‘inst’のデフォルトインストールではパッチはインストールされませ
        ん。ですから、このパッチがインストールされるよう明示的に示さなけ
        ればなりません。(より詳しい情報はinstのオンラインマニュアルにあ
        ります。)
#endif /* SGI */
#ifdef SGI
----------------------------------------------------------------------------
資料 B
---------------------------------------------------------------------------- 

makerom 変更履歴
----------------
06/10/97
     ver1.1a
        * IRIX 6.X 対応版
        * Partner差分転送対応版

06/13/97
     ver1.42beta
        * ver1.1aにあったバグを修正したbeta版

07/10/97
    ver.2.0
        * IRIX5.3,IRIX 6.X 対応版
        * Partner差分転送対応版

09/30/97
    ver.2.1
        * 高速化のため、アルゴリズムを見直し
          (評価版、限定リリース)

10/13/97
    ver.2.2
        * 若干の高速化アルゴリズム修正
          (OS2.0Iリリース版)

#endif /* SGI */