# Dreamcast用サウンドライブラリ

## 変更履歴

### 1998. 9. 6

- マニュアルの更新．
- ビルド時間の文字列フォーマットを最新のものに変更．

### 1998. 9. 2

- GD-DAのパンポットの設定がサウンドドライバのバージョンによってうまく設定できなかったのを修正（サウンドライブラリのワークアラウンドの扱いミス）

### 1998. 9. 1

- PCMストリームのパンポットの設定がうまく出来ないことがあったのを修正．

### 1998. 8.31

- PCMストリームのボリューム設定がうまく出来なかったのを修正．

### 1998. 8.29

- SH-C v5.0r10にてリコンパイルしなおし．

### 1998. 8.28

- グローバルサウンドコントロールAPIに内部エラーのトラップを追加した．
- MIDIポートのフラグで変化するはずのない上位24ビットが変化していたのを修正．

### 1998. 8.26

- ワンショット・PCMストリームの総演奏サンプル数の取得APIである`sdShotGetTotalSmpFrame`および`sdPstmGetTotalSmpFrame`がおかしかったのを修正．
- パラメータの範囲エラーの強化をした．
- ほとんどのAPIに内部エラーのトラップを追加した．
- いくつかのサンプルでパッドのアナログ系統を利用したパラメータ設定を追加．

### 1998. 8.25

- PCMストリームのパンポット設定の仕様変更に対してまだまだ不都合があったので修正．
- PCMストリームの2チャンネル目のボリュームの設定がうまく出来なかったのを修正．

### 1998. 8.24

- 一度送信したホストコマンドが場合によっては何度も送られることがあったのを修正．

### 1998. 8.22

- PCMストリームのパンポット設定の仕様変更に対してまだ不都合があったので修正．

### 1998. 8.18

- 新しい（まだ非公開の）makefileパッケージに対応．

### 1998. 8.14

- サウンドドライバのバージョンチェックに不都合があったので修正．
- 一部のAPIで内部で起こったエラーのトラップ対応を追加．

### 1998. 8.12

- 一部のAPIで内部で起こったエラーをトラップ出来るような機構を追加．順次対応を増やしていく（WARP対応からの逆機能追加）
- 割り込み禁止を割り込みマスク15で行っていたのを割り込みマスク4で行うように修正．
- サウンドドライバのバージョンが1.01.xx以外は受け付けないように修正．バージョンあわせてね．

### 1998. 7.31

- GD-DA関係のコントロールAPIのパラメータが旨く設定できていなかったので修正（ついでにドライバのバグ回避コードも追加）

### 1998. 7.29

- ワンショットのパン設定のAPIである`sdShotSetPan`をはじめ，いくつかのパラメータ設定APIの動作がおかしかったので修正．

### 1998. 7.24

- まだ割込み禁止解除処理を間違えていたところがあったので修正．

### 1998. 7.23

- サンプルを若干整理．汎用で使えそうなサンプルマルチユニットファイルを新規追加．
- 割込み禁止解除処理を間違えていたのを修正．

### 1998. 7.22

- メンテナンス情報が全然更新されていないので`00maintenance-ja.html`を削除．
- ドキュメントを更新．

### 1998. 7.18

- サウンドドライバの動作診断を行うAPIである`sdDrvCheckExecute`を追加．
- サウンドライブラリのAPIが全て実装されているか検査するtest01を作成．おかしなものがいくつかあった（汗）

### 1998. 7.14

- メモリブロック転送にキュー処理が旨くいってなかった（キューのポップが旨くできてなかった）のを修正．
- キューが溜まっている登録数を取得するAPIである`sdMemBlkQueGetPushNum`がおかしかったのを修正．
- sample10でキューにメモリブロック転送処理をたくさん溜めるテストも出来るようにした．実質testですな...

### 1998. 7.13

- メモリブロック転送にキュー処理を追加．
- 一部の関数ででホストコマンドを符号付き8ビットでキャストしていたのを気持ち悪いんで符号なしにする．

### 1998. 7. 9

- `sdShotClosePort`がライブラリに入っていなかったので慌てて収録．

### 1998. 7. 8

- ドキュメントを更新．

### 1998. 7. 7

- makefileをnmake対応にしてからサウンドシステムAPI群が更新されていなかったのを修正．
- sample01およびsample10を解像度320×240用に修正．
- MIDIポートのステータス取得APIである`sdMidiGetStat`で返ってくる構造体のメンバのうち`m_Flg`がおかしいことがあるのを修正．

### 1998. 7. 6

- サウンドドライバをバージョン1.19に更新．なお，今回から数バージョン残して収録することにした（ただしチェックは最新版で行います）
- sample01をGD-ROMからサウンドドライバ・マルチユニットファイルをダウンロードすることにした．

### 1998. 7. 3

- ドキュメントに新API等を追加．詳しくはそっちの変更履歴参照のこと．

### 1998. 7. 1

- モジュールポートに対して演奏中かどうかなどのフラグとエラー情報をステータス取得APIである`sd????GetStat`で取得出来るようにした．取得結果はデータタイプ`SD_MIDI_STAT`，`SD_SHOT_STAT`，`SD_PSTM_CH_STAT`に格納されます．
- サウンドドライバをバージョン1.17に更新．

### 1998. 6.28

- ライブラリ内にサウンドドライバのオブジェクトを入れておくのを廃止．それによって`sdDrvGetBuildinInfo`（だったと思う）も廃止．
- makefileパッケージ対応がまだ不完全だったので修正．

### 1998. 6.28

- メモリブロック転送モード設定のAPIである`sdMemBlkSetTransferMode`のソースファイルの末尾にアンダーラインが付加されていなかったので追加．
- 標準の`makefile`パッケージにてコンパイルできるように修正．一応最新版．

### 1998. 6.25

- ホストコマンド送信時にARM7のワークをポーリングするのを止めた．忙しそうだったら送信は次の機会にする．
- ビルドインサウンドドライバを最新版（6月23日版）に更新．
- PCMストリームポートの実際の使用チャンネル数を設定するAPIである`sdPstmSetUseCh`を追加した．
- サンプルを最新のmakefileパッケージに対応させた．

### 1998. 6.22

- メモリブロック転送に転送モードを設定するAPIである`sdMemBlkSetTransferMode`を追加．転送AICA-DMAで行うかSH-4で行うか設定可能にした（デフォルトはSH-4）
- ビルドインサウンドドライバを最新版（6月22日版）に更新．

### 1998. 6.19

- マニュアルに追加APIの説明をいくつか追加．
- その他マニュアルの補強．

### 1998. 6.18

- G2 DMAのキュー処理をしていないので`sdMemBlkTransfer`の二重転送要求はとりあえずG2 DMAが使えるまで延々と待つように修正．

### 1998. 6.16

- `sdDrvInit`でサウンドドライバの起動が待てないのを修正．
- サウンドメモリの8ビット・16ビットの読み書きでアドレスエラーが起こるのを修正．
- `sdLibGetBuildDate`の廃止．日付を見るときはライブラリのバイナリを"sd Build:"で検索すること．
- サウンドサーバの`sdSysServer`が返り値を返すことが出来るように修正．
- サウンドドライバのバージョン取得をいちいちサウンドメモリに見に行くのではなく，サウンドライブラリ内のワークに保存するように修正．

### 1998. 6.12

- 新しいG2ライブラリに対応．G2 DMAを使ってみる．
- ビルドインサウンドドライバを最新版（6月9日版）に更新．

### 1998. 6. 9

- 波形転送関係のAPI（`sdPstmIsTransfer`，`sdPstmTransfer`）でリングバッファの大きさを予期に計らうようにした．
  - `sdPstmIsTransfer`は4ビットADPCM・8ビットPCM・16ビットPCMそれぞれ最大00007000H・0000F000H・1F000Hがリミットとする．ただし`sdPstmPlay`を実行する前は一律最大7000Hまでとする．
  - `sdPstmTransfer`は4ビットADPCM・8ビットPCM・16ビットPCMそれぞれ最大00007000H・0000F000H・0001F000Hがリミットとする．

### 1998. 6. 6

- ヘッダファイルにconstを追加してみた．

### 1998. 6. 5

- メモリアロケート情報を取得するAPIの`sdSndMemGetBankInfo`を公開．

### 1998. 6. 1

- SET5モドキに移行．
- MIDIシーケンスを鳴らすだけのサンプルを追加．
- サンプルのディレクトリの体裁を少しだけ整える．
- 関数一覧の更新．

### 1998. 5.31

- マニュアルをちょっと更新．
- sdPstmGetCurAdrがちゃんと相対アドレスになるように修正．

### 1998. 5.28

- サウンドドライバの転送・実行後のタイミングを取る手段がないのでほおったらかしにしていたのを大きくウェイトを入れることにした．後でタイミングの取り方は考える．
- マルチユニットのダウンロードAPIを`sdDownloadMultiUnit`から`sdMultiUnitDownload`に変更．ただししばらくはどっちも使えるようにしておく．
- バンクのダウンロードAPIを`sdDownloadSingleBank`から`sdBankDownload`に変更．ただししばらくはどっちも使えるようにしておく．

### 1998. 5.27

- 古いマルチユニットの識別がおかしかったので修正．
- PCMストリームで同じポートで複数回再生が出来なかったので修正．
- サンプルを一部忍ライブラリを使用してみる（まだだめだめ）
- エラーチェックをもう少し追加．
- その他多分いくつかのバグ修正．
- 一部のKATANAというキーワードをDreamcastに変更．

### 1998. 5.25

- 時々すぐにホストコマンドが発行されないバグを修正．
- ビルドインサウンドドライバを最新版（５月22日版）に更新．

### 1998. 5.21

- サウンドモジュールのポートオープン処理がおかしかったのを修正．
- ビルドインサウンドドライバを最新版（５月20日版）に更新．

### 1998. 5.20

- `sdMidiSetVol`と`sdShotSetVol`がおかしかったのを修正．

### 1998. 5.15

- ツール関係で問題があるのでサウンドドライバのファイル名を`sound.drv`から`manatee.drv`に変更．
- `sdMidiSetMes`の正常なMIDIメッセージが作れなくなることがあったのを修正．
- MIDIシーケンスの再生速度を変更するAPIの`sdMidiSetSpeed`のパラメータを分かりやすい単位に修正．
- バージョンを0.47.06とする．

### 1998. 5.14

- `sdMemBlkDestroy`が`sdmemBlkDestory`になっていたのを修正．
- エラーチェックもうちょっと厳しくした（主にハンドルの`NULL`チェック）
- バージョンを0.47.06とする．
- サウンドドライバのファイル名を`snddrv.drv`からsound.drvに変更．

### 1998. 5.13

- かなりのドキュメントをHTML4.0+CSS1で書き直した．
- ドキュメントを加筆．
- エラーチェック・データIDチェックをもうちょっと厳しくした．
- ビルドインサウンドドライバを最新版（５月12日版）に更新．
- バージョンを0.47.05とする．

### 1998. 5.12

- ドキュメントを大幅に加筆．詳しくはドキュメントの変更履歴参照のこと．
- 新しいマルチユニットフォーマットに対応．
- エラーチェックをもうちょっと厳しくした．
- SDE_ERRの列挙子の番号と名称を整理した．

### 1998. 5. 5

- 多分ホストコマンドルーチン旨くいってると思う．
- マルチユニットのIDチェックをしていなかったのでするようにした．
- 一部のサウンドドライバに渡すホストコマンドのパラメータのエンディアンが逆だったので修正．

### 1998. 5. 3

- 内部的に各種バッファを新たに指定できるようにした．
- ホストコマンドのAPIを複数のファイルに細分化．

### 1998. 4.30

- もう少しコーディング規約に近づけた（SizeをSzに修正）
- ホストコマンド処理を完全に書き直す．

### 1998. 4.30

- サンプルを一新．HTMLのみにしてみる．
- 一部のHTMLをより正確なHTMLにしてみる．

### 1998. 4.28

- ファイル名のベースの後ろにアンダーラインを付加した．

### 1998. 4.26

- ビルドインサウンドドライバを最新版（４月24日版）に更新．
- ステレオインターリーブのデコードサンプルを追加．厳密にはステレオPCMストリームサンプル内に追加．

### 1998. 4.22

- sdPstmPlayでのサンプリング周波数の指定が旨く出来なかったのを修正．

### 1998. 4.21

- サウンドライブラリドキュメントを更新．0.47α2として対応．
- サンプルを新しいライブラリに対応．ただしPCMストリーム関係のもののみ．
- ビルドインサウンドドライバを最新版（４月20日版）に更新．
- サンプルファミリーに新たにステレオPCMストリーム再生を追加．

### 1998. 4.20

- サウンドライブラリドキュメント0.47αに対応．メモリブロック関係を一新．
- 使用しているSH-C環境を最新のものにした．
- ワークメモリからサウンドメモリへのブロック転送が32バイトバウンダリにならなかったことがあるのを修正．

### 1998. 4.16

- ARM7のリセット関係の処理がおかしかったので修正．ついでに処理中の割込み禁止及び他のビットの保持を行うようにした．

### 1998. 4.15

- PCMストリームの波形転送ルーツんのバグが完全に取れたと... 思う．
- Akariシステムがなくても使用できるサンプルを作成．
- ビルドインサウンドドライバを最新版（４月15日版）に更新．

### 1998. 4.14

- ポートオープン関係の処理を１から書き直す．

### 1998. 4.13

- ビルドインサウンドドライバを最新版（４月13日版）に更新．
- PCMストリーム関係をデバグ．でもバグが残っている．

### 1998. 4.10

- 用語に若干変更があったので対応．
- FXアウトプットのパラメータ設定のAPIをコーディングを追加．

### 1998. 4. 6

- ビルドインサウンドライブラリを最新版（４月６日版）に更新．
- マルチデータをダウンロードして再生するサンプルを正式版とする．

### 1998. 3.30

- メンテナンス用のドキュメント？をHTML 4.0に対応．一部スタイルシートまで使ってみる．

### 1998. 3.16

- 現段階をバージョン0.41とする．
- SH-4のキャッシュに対応した．またキャッシュライブラリにも対応した．
- G2ライブラリに対応した．
- 簡易説明書の殆どがHTMLになった．それによって一部の説明にリンクが貼られた．

### 1998. 3. 2

- 現段階をバージョン0.40とする．

以上．