-----------------------------------------
Dreamcast SDK for SEGA Library Ver. 1.30J
-----------------------------------------
1998/12/21
株式会社セガ・エンタープライゼス
テクニカルサポートセンター

1.マニュアルの更新
SEGAライブラリ関数リファレンスの更新
	Ninja、Shinobi、Soundライブラリリファレンスを統一

2.ライブラリ全体に関する変更
 (1)Dev.Box SET5.24より前のH/Wのサポートを打ち切り。
	※リース品であればすべてSET 5.24以上です。

 ★注意★
   Dev.Box SET5.22/5.23でライブラリを使用すると、画面がオレンジ色になり無限ループします。

 (2)サウンドライブラリファイル(sg_sd.lib)の分離。 
    従来shinobi.libに含まれていたサウンドライブラリを単独のライブラリファイルとして提供。
 ★注意★
    現状サウンドライブラリは、makeuserの中で利用者が指定を追加する必要があります。
    例:makeuser
    USER_LIBS        = $(SHINOBI_DIR)\sg_sd.lib

 (3)ライブラリのコンパイル環境をSHC V5R32としました。

 (4)ディレクトリ名の変更に伴うMake環境の変更。
	katana → dc_sdk
 ★注意★
    set_kt.bat内で設定する環境変数のデフォルトを以下のように変更。
    KATANA_SDK_DIR=C:\DC_SDK

3.ライブラリ個別の変更

 (1)shinobi.h
    以下のインクルードファイルを追加した。このためライブラリ
    利用者は、shinobi.hのみをインクルードするだけでよい。
      sg_sycbl.h     ケーブル判別ライブラリ            
      sg_sycfg.h     コンフィギュレーションライブラリ  
      sg_sybt.h      BOOT ROMサービスルーチンライブラリ
      sg_btfnt.h     BOOT ROMフォントライブラリ        
      sg_lcd.h       液晶ライブラリ     
      sg_pdkbd.h     キーボードライブラリ     
      sg_pdvib.h     振動パックライブラリ     
      sg_bup.h       バックアップライブラリ   
      sg_cache.h     キャッシュライブラリイブ 
      sg_sysrt.h     スタートアップ(C++)ライブラリ     

 (2)sg_xpt.h
    ・bool型を__SHC__定義時のみ有効とする。
      (DreamcastOS環境とのソースを共有化をすすめるため。DreamcastOSではboolは予約済)
    ・Bool型をSint32とする。
      (従来のbool型の定義では、DreamcastOS環境とセガライブラリ環境ではBoolの
       サイズが異なるため(DreamcastOS:1byte,SEGA:4byte)。Bool使用時は4byteとなるように統一。)

 (3)Ninjaライブラリ
   [バグ修正情報]
    ・njInitVertexBuffer()関数でnjChangeSystem()関数の後に実行すると止まる可能性があったのを修正。
    ・njLoadTextureReq()関数の途中でロードを中止した場合、次のローディングが失敗してしまうバグを修正。
    ・njLoadTextureReq()関数でキャッシュ領域にテクスチャがロードできなかったバグを修正。
    ・njCnkDrawShapeMotionLink()の関数内部のルーチンでバグを修正。
	※シェープデータを補完する際に補完タイプがリニアだと起こる可能性があります。
    ・njCollisionCheckBC()関数でコリジョンが取れないバグを修正。
    ・njDrawSprite3D関数でNJD_SPRITE_SCALEが指定されているとき、アスペクト値が反映されていなかった
      バグを修正。
    ・チャンクモデル系関数で、親子階層で関節をつないだときにニアクリップが正しく行われるように修正
    ・njSetVSyncFunction()関数でNULLを入れたとき、違う関数の割り込みハンドラを削除する可能性があった
      バグを修正。
    ・レンダテクスチャを使用した場合の通常のレンダリングとのシーケンスにバグがあったのを修正。
    ・njLoadTexturePvmFile()関数でキャッシュテクスチャ領域にロードした場合ハングアップしていたバグを修正。
    ・シェイプ付きモーション関数で生成したデータのvlistのチャンクリストの最後に NJD_CEが入っていなかった
      バグを修正。

    [変更情報]
    ・チャンクモデル形式の NJD_CV_SH  NJD_CV_VN_SH のVertexは仕様から削除。
    ・モデル構造体で、vlistまたは、plistがNULLの時、何もしないように変更。
	これにより、plistをNULLにして、vlistだけでモデルを描画すると中間バッファにデータを生成して、
	ポリゴン描画は行わなくなります。そこで、中間バッファを変更してから、こんどは、vlistをNULLにして、
	plistだけで、モデル描画すると、ポリゴンの描画を行えます。
	この方法で、ポリゴンの計算値と描画を別々に制御できます。
    ・njReleaseTexture()関数でリストの途中にテクスチャメモリにロードされていないテクスチャがある場合、
      途中でエラーを返し中断していたのをエラーを返すがリストの最後まで実行する仕様に変更。
    ・メモリテクスチャからキャッシュ領域にロードできるように仕様を変更。
    ・njCollisionCheckBC、njCollisionCheckBS関数で片方がもう一方に完全に潜り込んだ場合のコリジョンを
      判定するように仕様変更。
    ・ライト・モーションのインテンシティ設定で、コンバータ側との仕様に差があったためライブラリ側で
      吸収するよう変更。
    ・Chunkモデル表示関数をエンベロープ対応。
    ・njCnkSimpleMultiDrawModel及びnjCnkEasyMultiDrawModelをDepthQueue対応。
    ・njCnkModDrawModelをNearClip対応。

    [追加情報]
    ・njLoadTextureReq()関数の途中で中止した場合に実行する中止関数 njLoadTextureReqStop()を追加
    ・パンチスルー対応。
	 njControl3D()で、NJD_CONTROL_3D_USE_PUNCHTHROUGH を設定すると、半透明ポリゴンをすべてパンチ
	スルーポリゴンとして扱うようになりました。(サンプルを追加しましたので参照してください)
    ・メモリコピー関数4つを追加しました。詳しくはリファレンスを参照してください。
    ・レンダ終了割り込みコールバック関数を追加。
	void njSetEORCallBackFunction( void (*func)(void) );
	njSetEORFunction()関数はnjWaitVSync内でレンダリングが終了していたら実行されるのに対して、
	njSetEORCallBackFunction()はレンダリング終了割り込み時に実行されます。
        2つの関数は同時に使用することが出来ます。
    ・njWaitVSync関数を分割した関数を追加
	void    njRenderStart( void )
	void	njFlipFrameBuffer( void )
	ペリフェラルサーバ pdExecPeripheralServer関数は入っていませんので各自呼び出してください。
	またnjSetEORFunction関数で登録した関数は実行しません。各自実行してください。
    ・システムデータ取得関数を追加
	void njGetSystemInfo(NJS_SYSTEMINFO *info);
    ・テクスチャメモリからメインメモリへのテクスチャの読み込み関数の追加
	Sint32 njReadTextureNum(Uint32 n,Sint8 *addr);
	Sint32 njReadTextureNumG(Uint32 globalIndex,Sint8 *addr);
    ・テクスチャのサイズを計算する関数の追加
	Uint32 njCalcTextureSize(Uint32 nWidth,Uint32 nHeight,Uint32 nTextureType);
    ・テクスチャのパラメータ再設定関数の追加
	void njSetTextureParam(NJS_TEXMEMLIST *texmemlist);
    ・テクスチャのパラメータ再設定に必要な定義を追加

 (4)Nindowsライブラリ
    release_nw.txt 参照。(Ver 0x01000072以降の更新部分)
    ・初期化時にsbInitSystem()に指定されたフレーム数をチェックし、
      マウスカーソルの移動スピードを変更するように修正しました。
    ・以下の関数が追加されました。

	1) nwSetMouseSpeed()
	2) nwGetMouseSpeed()
	3) nwSetMousePosition()

	[関数］void nwSetMouseSpeed(Sint32 x, Sint32 y)
	[入力］x, y ... マウスカーソルの移動スピード
	[出力］なし
	[返値］なし
	[機能］マウスカーソルの移動スピードを、標準を１として
	       何倍速で移動させるかを設定します。
	       2INT、3INTのアプリケーションで、マウスカーソルの
	       移動スピードが遅いと感じる場合に使用してください。


	[関数］void nwGetMouseSpeed(Sint32* x, Sint32* y)
	[入力］x, y ... マウスカーソルの移動スピードを取得するポインタ
	[出力］x, y ... マウスカーソルの移動スピード
	[返値］なし
	[機能］設定されているマウスカーソルの移動スピードを取得します。


	[関数］void nwSetMousePosition(Sint32 x, Sint32 y)
	[入力］x, y ... マウスカーソルの座標
	[出力］なし
	[返値］なし
	[機能］マウスカーソルを指定座標に移動させます。

 (5)サウンドライブラリ
    ・MIDIポートに対してFXレベルを設定するAPIである sdMidiSetFxLev およびダイレクトレベルを設定するAPIで
      ある sdMidiSetDrctLev の備考に音源の特性を追加。
    ・構造体型データタイプのポートステータスの麺場の説明の文面を多少追加。
    ・全角数字を使用していたところを修正。
    ・SDMIDI・SDSHOT・SDPSTMの初期化・破棄の手段などの説明の文面を多少追加。
    ・構造体型データタイプのポートステータスのメンバーの説明の文面を多少追加。
    ・音源のピッチの設定をするAPIであるsd????SetPitchの引数pitchのデータタイプがSint8になっていたのをSint16に修正。
    ・それ以前の更新情報は1.2J付属の更新記録を参照ください。

 (6)ファイルシステム
  ・読み込み中断時に発生するＧＤのハードウェアの不具合のワークアラウンド(正式版)
  を対応。(sg_gd.hも更新)

  ・[変更]ハードの制限に対する暫定対策。
     gdFsStopRd関数で終了コマンドを発行せず、データを読み捨てる方式に修正。
  ・[バグ修正]gdFsRead関数でドライブがビジィの時、読み込みができなかった
     にもかかわらず正常終了を返した不具合を修正。

 (7)システム系
   a.kabuto.lib
    プロテクトエリアの仕様変更にともなう修正。
   b.sg_sycbl.lib
    ・[追加] 放送形式の取得関数をサポート。(syCblCheckBroadcast)
    ・[追加] 簡易モニタ選択用種別の取得関数をサポート。(syCblCheck)

   c.sg_sycfg.lib
    ・[追加] 個体識別番号/国別情報/言語情報を取得するための関数を追加。
         (syCfgGetIndividualID/syCfgGetCountryCode/syCfgGetLanguage)

   d.sg_syfbr.lib
    ・[追加]割り込みハンドラ内でファイバの切り替えを行うための初期化
            手続きを関数として追加。(syFbrPreInit)

   e.sg_int.lib
    ・[変更]CodeScapeのプロファイラ対応のため割り込みハンドラの前後に
            NOPコードを追加。
    ・[変更]Codewarrior使用時のライブラリコンバート対応のため、
            未解決シンボルのアドレス演算の実装を修正。

   f.sg_cp.lib/sg_dma.lib
    ・shinobi.lib 1.2xまでリンクされていたsg_cp.lib,sg_dma.libは
    今回からリンクもされません。ヘッダファイルも提供しません。

   g.syMalloc
   [バグ修正]syMallocInit時に指定されたメモリ空間の後ろ32byteを余計に使用する
   不具合を対策。

4.IP関連
  (1) aip.obj
   ・[変更]アセンブラソース中からＣ言語ソース中のシンボルへの相対
    ジャンプ(BSR)のコードを絶対ジャンプ(JSR)に変更。

5.開発環境関連
  (1)サンプルメイク環境 makepre/makepost
    ・binファイル作成ツールをrof2binからelf2binに変更されたことによる対応。
  (2)sbver.exe
    ・ライブラリバージョンを表示するための領域のカラム数を広げた。

6.サンプルファイル
   shinobi.h以外のライブラリインクルードファイルをインクルードしているもの
   の削除。(但しsbinit.cの中のsg_syhw.hは除く)。

------------------------------------------------------------------------------
■Dreamcast SDK Version 1.20J ■		1998/11/9

(1)マニュアルの更新
1-1：SEGAライブラリ関数リファレンスの更新
        （フレームに対応しました）

(2)プログラミングツールの更新
2-1 sbver.exe
    ・[B対]ファイル内に特定文字列が存在すると例外が発生する不具合を
      修正。
2-2 sh4nlfzz.lib
    ・SHC v5r32付属の標準ライブラリから、以下の4オブジェクトを削除した。
      (malloc,free,realloc,calloc)

(3)SEGAライブラリの更新
3-1：Ninjaライブラリ Version 0x00060068への変更
3-1-1：バグ修正情報
     ・パレットテクスチャ使用のとき、同じグローバルインデックスで違うバンクの
       テクスチャを連続して使用した場合、初めに指定されたバンクで描画されていた
       バグを修正。（njSetTextureNum,njSetTextureNumG）
     ・スクロール関数でテクスチャのサイズを調べるときに、マップ(0,0)のテクスチャ
       サイズではなく、テクスチャ番号0番のテクスチャのサイズを使用していたバグを
       修正。
     ・チャンク（njCnkDrawObject類）用ライトのバグを修正。
       最適化によりスポット・ライトおよび点光源の距離判定（クリップ）にバグが出た
       のを、最適化以前のルーチンに戻すことで対応
     ・njDef.hの43行目NJS_CNK_OBJECTがNJS_CNKOBJECTになっていたバグを修正。
      （通常は使用していません）
     ・njCameraAction,njCameraMotion関数で、カメラのロールモーションにカメラ
       データのロール値がオフセットになるバグを修正。
       （第一引数のカメラデータのロール値＋モーションデータのロール値）
       上記の計算を期待してコーディングしていたユーザに対応するため、旧仕様を
       njCameraActionOld,njCameraMotionOld関数をテンポラリとして待避。
      （但し、新規ユーザはこれを使用しないこと）
     ・2Vレーテンシモードでトランスポリゴンバーテックスリストを直接転送している
       とき、(njInitVertexBufferのトランスポリゴンバーテックスリスト指定が
       マイナスのとき)トランスのポリゴンの登録前にnjUserClip関数を実行するとハン
       グするバグを修正。
     ・njLoadTextureReq関数でテクスチャをロードするときattrに未対応のバグを修正
       （※NJD_TEXATTR_GLOBALINDEXなどが使用できなかった）
     ・njUserClipping関数のバグを修正
       （内部変数に反映されなかったため、クリップ外まで描画の計算が入っていた。）
     ・njCnkDrawModelで
        NJD_FST_ILのフラグがたっているモデルのニアクリップ時に色がおかしくなる
        場合があるバグを修正。
        (頂点カラーがあるモデルで頂点毎に頂点カラーが違う場合等)
        
        NJD_FST_FLのフラグがたっているポリゴンモデルのニアクリップ時に色がおかし
        くなる場合があるバグを修正。
        
        CS_D8のチャンクストリップのポリゴンモデルのニアクリップ時に色がおかしく
        なる場合があるバグを修正。

        CS_D8のチャンクストリップでNJD_FST_IL,NJD_FST_IS,NJD_FST_UA,NJD_FST_DB,
        NJD_FST_ENVのフラグがたっているテクスチャモデルのクリップがおかしくなる
        バグを修正。

     ・njCnkDrawModel,njCnkSimpleDrawModelで
        頂点カラーがあるモデルでNJD_FST_UAのフラグがたっているモデルのα値が
        おかしくなる場合があるバグを修正。
     ・バックグラウンドのブレンディングモード設定のバグを修正。
       （バグの影響は未確認）
     ・デバッグ文字の一部記号出力のバグを修正。
       （英数字表示には問題ありません）
     ・キャッシュ領域へのロード、リリースをくり返しでハングするバグを修正。

     3-1-2：新規関数追加 （詳細は関数リファレンスを参照のこと）
     ・njReLoadTexturePartNum   ：テクスチャを一部リロードします。
     ・njReLoadTexturePartNumG  ：テクスチャを一部リロードします。
     ・njGetPaletteMode         ：パレットのカラーモードを取得します。  
     ・njGetPaletteData         ：パレットデータを取得します。  

3-2：Shinobiライブラリ Version 1.25 への更新
3-2-1 ペリフェラル系
  a.sg_pdVib(振動パックライブラリ)
    ・[B対]pdVibEnumerateUnit()を毎INT呼び出すと、コールバックが発生しなく
      なる不具合を修正

  b. sg_bup.lib
    ・[B対]ユーティリティ関数buAnalyzeBackupFileImage()で、ユーザ
      データのアドレス計算を間違える不具合を修正。
    ・[改善]クロスリンクが発生している(正確には、異常なファイルが存在し、
      そのまま次のファイルをセーブするとクロスリンクファイルができてしまう
      状態の)VMSへのセーブを対策。

3-2-2 GDファイルシステム系
    ・[改善]GDトレイオープン(カチャカチャ)問題の対策のため、
      gdFsReqDrvStat関数の内部処理を変更。(発行するコマンドを変更)

3-2-3 システム系
    キャッシュ関数
    ・[B対] syCacehOCBI等の関数で、引数のサイズに0を設定しても、不正に、
      インバリデート等しないように修正。
    割り込み処理
    ・[B対]下記不具合の修正
      (1)原因
         例外ハンドラ(割り込みハンドラではない)の中に不正なコードがあった。
      (2)現象
         (a) アプリケーションのデバッグ中にアプリケーションの不正な部分を
             特定できない。(マニュアルリセットになるため)
         (b) TRAP 命令を使用するアプリケーションの場合には、まったく動作しない
    syHwInit関数
    ・[変更]初期化時のH/Wレジスタを変更。

3-2-4 スタートアップ(C++使用時のみ)
    a.C_$VTBL(仮想関数表領域)セクションをD_INIT_,D_END_の次に置される
      ように定義する。
    b.グローバルコンストラクタを初期化する関数を,syStartGlobalConstractor()
      を提供し、必要な個所(e.g. sbInitSystemの中or後)でライブラリユーザに
      明示的に呼び出してもらうようにする。
      (詳細は添付ドキュメント参照 shinobi\doc\etc/strtcpp.txt参照)
    c.上記関数の宣言を記述したsg_sysrt.hを追加。

3-4 サウンド系
     ホストコマンドバッファをリングバッファと見たててバッファの末尾から先頭に
     変える時の処理がおかしかったので修正。
     ライブラリ内部にあるホストコマンドバッファを増やす。
     PCMストリームのポートエラー取得時にワンショットポートのエラーを見に
     行っていたのを修正。

(4)その他の更新
4-1 ip環境
 shinobi\lib下のIP関連ファイルを更新。
   sg_ini.obj
   ip.bin
   ip0000.bin

4-2 サンプルプログラム
 (1)teapot   : モデルデータを変更。njdef.hの修正なしでコンパイル可能とした。
 (2)f40      : 同上。
 (3)bup2a    : 同上。
 (4)bupd2    : サンプルで扱うファイル名をSAVEDATA_002に修正。
 (5)dooropen :gdFsReqDrvStat関数の内部処理を変更に対応した修正。
 (6)rtc      :表示内容・フォントサイズの変更。
 (7)font     :外字/VMSフォントの表示。

------------------------------------------------------------------------------
■Dreamcast SDK Version 1.00J ■		1998.10.19

(1)マニュアルの更新履歴
    1-1：Dreamcast 開発キット セットアップマニュアルの更新
         "Katana/Setupdc.pdfの更新
    1-2：Ninjaリファレンス（日本語版のみ）Version 3.21への更新
         "Katana/doc/segalib/reference/ninja/jpnの更新
    1-3：Dreamcast ハードウェア概要 Version 1.00 への更新
         "Katana/doc/infomation/dreamcast_hw.pdf の更新
    1-4：Dev.Box取扱説明書の新規追加
         "Root/devbox.pdf の更新
    1-5：お問い合わせ用紙の更新
         "Root/mail_fax.txt の更新
    1-6：リリースノートの新規追加
         "Root/readme.txt の新規追加
    1-7：Codesccape制限事項の更新
         "Katana/doc/cross_tool/codescape/cs_limt.pdf の更新
    1-8：GDWorkshop制限事項の更新
         "Katana/doc/cross_tool/gdworkshop/gd_limt.pdf の更新
    1-9：CopeScapeプロファイラデータ加工ツール prfdumpマニュアルの更新
         "Katana/doc/hitachi_tool/converter/prfdump.pdf の更新
   1-10：ロードモジュールファイル編集ツールELF2BINマニュアルの更新
         "Katana/doc/hitachi_tool/converter/elf2bin.txtの更新
   1-11：SHアセンブラ変更履歴の追加
         "Katana/doc/hitachi_tool/shc/asm/asmsh_j_hist.pdfの追加
   1-12：Hitachi Tools の収録ツール一覧を新規作成
         "Katana/doc/hitachi_tool/hitachi.txt" 
   1-13：Dreamcastソフトウェア作成基準 Version 1.00J（正式版）の更新
         "Katana/doc/softrule/Index.html" 

(2)プログラミングツールの更新履歴
    2-1：Codescape Version 0.99 への更新
         "Katana/codescape/codescape.exe の更新
    2-2：Codescape Firmware の更新
         "Katana/codescape/genie.fsh の更新
    2-3：GDWorkshop Version 2.43.6aへの更新
         "Katana/gdworkshop/gdworkshop.exeの更新
    2-4：GDWorkshop Firmware の更新
         "Katana/gdworkshop/gm2_4_5e.fshの更新
    2-5：CopeScapeプロファイラデータ加工ツール PRFDUMP Version 0.83への更新
         "Katana/bin/prfdump.exeの更新
    2-6：ロードモジュールファイル編集ツールELF2BIN Version 0.83への更新
         "Katana/bin/elf2bin.exeの更新
    2-7：SH アセンブラ Ver.4.0(98.7.6)への更新
         "Katana/shc/bin/asmsh.exeの更新

(3)SHINOBIライブラリの更新履歴
    3-1：Ninjaライブラリ Version 0x000600064への更新
    3-2：Ninjaに新規関数追加
          njGarbageTexture
          njGetTextureErrStat
          njChangeTextureMemorySize

(4)Boot Rom の更新履歴
    4-1：BootRom Version 0.976への更新 （詳細はSetupdc.pdfを参照の事）


