README.jp 10.7 KB

本パッチは現時点で 2.0I の 64dd.dev に施された全てのバグの修正、および新
機能の追加をするものです。なお、これらの修正時にどのファイルが変更された
かについては、Changefiles.jp を参照してください。

本パッチをあてることにより、下記の変更がなされます。

98/10/21
        * LeoInquiry 関数によって返されるソフトウェアバージョンは6にな
          ります。

        * 再立ち上げ、という機能が追加されました。これは、主にカートリッ
          ジから、ディスクに格納されている別のゲームを立ち上げるための機
          能です。詳しくは、このパッチと同時に改訂された 64DD プログラミ
          ングマニュアル第15章を参照してください。

        * 再立ち上げに関連して、サンプルプログラム reboot が追加されまし
          た。詳しくは /usr/src/PR/demos/README_DEMOS_64DD.jp を参照して
          ください。

#ifndef PC
        * makedisk を変更しました。変更点に関しては DOC_packer.jp を参照
          してください。バージョンは 2.5 になります。また、ディスクの再
          立ち上げ機能に関連して、makerom も変更になっています。この変更
          に関しても DOC_packer.jp に記述があるので、参照してください。
          makerom のバージョンは 2.4 になります。
#else
        * mild を変更しました。変更点や注意事項等に関しては、パッチのパッ
          ケージの doc/mild/README.jp を参照してください。
#endif

        * ディスクアクセス中にアプリケーションが割り込みのマスクを長時間
          した場合、OS の内部キューに処理されないメッセージが余分に送信
          され、以降例えばリードコマンドを発行した場合、リードの転送が完
          了する前に終了メッセージがアプリケーションに届いてしまう、とい
          う不具合を修正しました。

        * LeoCreateLeoManager() におけるドライブの接続確認方法を変更し
          ました。DDROM が存在するかどうかで確認するように変更したので、
          開発中も DDROM をはずしていると「ドライブが接続されていない」
          と判断されてしまいます。注意してください。

        * ドライブが存在するかどうかを確認する関数 LeoDriveExist() を
          追加しました。引数はなしで、返り値は u32型です。ドライブが存
          在する場合は 1, しない場合は 0 を返します。この関数でドライ
          ブの存在を確認したあとで leo マネージャを立ち上げる場合でも、
          LeoCreateLeoManager() の返り値のチェックを省略しないようにし
          てください。

        * 新しいエラー番号を追加しました。LEO_ERROR_WAITING_NMI で、番
          号は 37 です。これは、LeoReset を実行した時点で実行されてい
          たコマンドやその後に発行されたコマンドに対して返されるエラー
          です。アプリケーションでは、このエラー番号は決して表示しない
          ようにしてください。この番号を受け取った場合は、preNMI が来
          たということなので、速やかにディスクのアクセスをやめ、NMI に
          備えてください。

        * エラー37 追加にともない、サンプルプログラム ddspgame の 
          diskproc.c: DiskOtherErrors() を修正し、エラー番号37 が画面
          にエラーとして表示されないようにしました。

        * LeoReset() を LeoCreateLeoManager() 実行以前に呼んだ場合、例
          外が発生してしまうという不具合を修正しました。
          
        * osDriveRomInit() 関数は、従来はこの関数がはじめて呼ばれた際は、
          取得した設定値にしたがって PI バスのアクセススピードを変更して
          いましたが、二回目以降はアクセススピードは変更されませんでした。 
          今回これを変更し、はじめて呼ばれた場合も設定値を変更しないよう
          にしました。この変更に関連して /usr/src/PR/doc/patches/ultra 
          にある DOC_handle.jp の最後の部分も修正しましたので、参照して
          ください。

        * 98/08/10 における calcncc の修正に不備があり、RAM 領域を使用し
          ないマスターデータに対して calcncc を使用するとエラー終了して
          しまっていました。修正しました。バージョンは 1.11 になりました。

        * エラー処理シーケンスに不具合および修正事項が見つかっています。
          詳しくは DOC_errseq.jp を参照してください。

98/08/10
        * calcncc の計算ルーチンにバグがあったため、修正しました。その
          ため、以前のバージョンと今回のバージョンとでは計算結果が異な
          ります。以前のバージョンは使用しないようにしてください。また、
          従来 calcncc では指定したマスターデータのファイル名の拡張子
          が .d64 でなかった場合、ユーザに確認のプロンプトを出していま
          したが、出さないように変更しました。バージョンは 1.10 になり
          ました。

        * 一回目の osCartRomInit()実行前に 64DD のイニシャライズ関数を
          実行していた場合、うまくハンドラが取得できないという不具合を
          修正しました。詳しくは /usr/src/PR/doc/patches/ultra にある 
          DOC_handle.jp を参照してください。

98/07/08
#ifdef SGI
        * makedisk に下記の変更をしました。バージョンは 2.4 になります。
                (1)セグメントに対して lba NONE を指定すると、そのセグ
                   メントはディスクに格納されないように変更しました。
                (2)ディスクマップを標準エラー出力に出力するようにしま
                   した。
                (3)-i オプションを追加しました。-i <idfile> とすると、
                   生成した gwrite の1行目に -I <idfile> が付加されま
                   す。
                (4)ディスクに格納されないセグメント(bss 領域のみ使用す
                   るセグメント)に lba の指定をした場合、従来エラーに
                   していましたが、ウォーニングに変更しました。
                (5)サイズが0のセクションに対しても、_**Segment**Start 
                   等のシンボルを生成するようにしました。
                (6)boot セグメントに対する _**SegmentDiskEnd シンボル
                   の値が、常に 0 になってしまうバグを修正しました。
                (7)spec ファイル中でウェーブ名を指定しなかった場合、コ
                   アダンプして終了していたバグを修正し、エラーメッセー
                   ジ(no wave name specified)を出力するように変更しま
                   した。

#endif
        * 64DD プログラミングマニュアル第10章エラーシーケンスの改訂に
          ともない、サンプルプログラム ddspgame を修正しました。エラー
          処理に関しては、このサンプルを参考にしてください。

        * 本来エラー47を返さないはずの関数(LeoSetTimer(), LeoReadTimer(),
          LeoSpdlMotor(), LeoModeSelectAsync(), LeoReadDiskID())をエラー
          02 発生直後に呼んだ場合、エラー47 を返すことがあるというバグ
          を修正しました。

        * 64DD 関連のオブジェクトファイルで、一部 libultra 内にあった
          ものを libleo にも入れておきました。
#ifdef PC

        * 抜けていたサウンドファイル 077Noise.16.c7.aifc を追加。
#endif

98/06/10
        * n64mdisk のバグが修正されました。
                (1)gwriteで-aオプション指定行が複数ある場合、-L 0が指定
                   されているものを優先して使用するようにしました。
                (2)gwriteで-L 0の指定がなかった場合エラーにするようにし
                   ました。 
                (3)gwriteでLBA指定が逆順になっている場合に対応しました。
                (4)gwriteとは異なったディスクタイプの指定がcfgファイルに
                   あった場合に対応しました。
                (5)ROM INIT. FILEのサイズがROM領域を越えた場合のエラーチェッ
                   クが追加されました。
                (6)バージョンが1.10になりました。

98/04/23
        * LeoInquiry 関数によって返されるソフトウェアバージョンは5にな
          ります。

        * 従来、エラー24として報告していたエラーの一部をエラー23に変
          更しました。これは、ライト中の電源遮断に対する、対策のためです。
          詳しくは DOC_pwoff.jp を参照してください。なお、ISR (Interrupt 
          Service Routine、libultra に含まれる) も変更が必要ですので、
          ultra のパッチも同時にあてるようにしてください。

        * LeoModeSelectAsync() と LeoSpdlMotor() は、従来メディアが変更
          されたかどうかをチェックし、変更されていればコマンドは実行せず
          にエラー47を返していました。これを変更し、これらの関数ではメ
          ディアが変更されたかどうかに関わらず、コマンドを実行するように
          しました。したがって、この2つの関数はエラー47を返すことはな
          くなります。

        * 従来は、メディアチェンジ後、LeoReadDiskID() 関数をコールしさえ
          すれば、それが正常終了か異常終了かにかかわらず、LeoReadWrite(),
          LeoSeek(), LeoRezero() の各関数を実行することができました。ま
          た、立ち上げ直後であれば、LeoReadDiskID() を発行せずにこれらの
          関数を実行することができました。これを変更し、立ち上げ直後もメ
          ディアチェンジ後も、LeoReadDiskID() が正常終了のときに限り、こ
          れらの関数が実行できるようにしました。

        * 今回の変更に伴う、エラー処理シーケンスの変更点を DOC_errseq.jp
          にまとめました。参考にしてください。

        * 上記の変更に伴い、サンプルプログラム ddspgame に以下の変更を加
          えました。
                (1) ライト時に毎回同じデータを書くのではなく、変更してい
                    くようにしました。
                (2) チェックサムをライト時に書き込み、リード時にチェック
                    するようにしました。
                (3) リード時にエラー23が発生したり、チェックサムがあわ
                    なかったりした場合、初期データをライトするようにしま
                    した。
                (4) その他、DOC_errseq.jp に記述のシーケンスの変更を反
                    映しました。
                (5) 異常終了時に処理を中断するようにしました。詳しくは
                    README_DEMOS_64DD.jp を参照してください。
                (6) diskproc.c: DiskAccessTest() の変数 lbas を static 
                    にしました(バグフィックス)。

        * n64mdisk のバグが修正されました。
                (1)最終セグメント以外のセグメントが RAM LBA だった場合に
                   ROM LBAとして扱ってしまうバグを修正しました。
                (2)ROM 領域と RAM 領域にまたがるセグメントに対するバグを
                   修正しました。
                (3)RAM 領域の指定に関して cfg ファイルでの記述が gwrite 
                   での記述より小さな範囲になっていた場合のチェックを追
                   加しました。
                (4)gwrite 内で -I オプションを指定した場合、誤動作して
                   いたバグをフィックスしました。
                (5)バージョンを 1.08 に変更しました。

98/03/05
        * LeoInquiry 関数によって返されるソフトウェアバージョンは4にな
          ります。

        * RTC 関連の関数(LeoSetRTC, LeoReadRTC)の仕様を変更しました。詳
          しくは DOC_rtcfnc.jpを参照してください。

        * LeoSpdlMotor関数に新たに LEO_MOTOR_BRAKE モードを追加しました。
          詳しくは DOC_brake.jpを参照してください。

        * ディスクIDのフォーマットとマスターデータ作成ツール n64mdisk と
          が変更になりました。詳しくは DOC_mdisk.jpを参照してください。

        * 上記の変更に伴い、サンプルプログラム ddspgameに 以下の変更が加
          わりました。
                (1)従来西暦の上位2桁はアプリケーション側で判断していまし
                   たが、これを変更し、LeoReadRTC の結果をそのまま使用す
                   るようにしました。
                (2)LEO_MOTOR_BRAKE モードの設定メニューを追加しました。
                (3)n64mdisk.cfg に RAM USE を追加しました。