README.jp
10.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
本パッチは現時点で 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 を追加しました。