##### Sound Library - データユーティリティ関数

# sdMltDownload

Multi Unitの転送

### 書式

> `SDE_ERR sdMltDownload( handle )
> SDMEMBLK handle
> `

### 引数

> handle メモリブロックハンドル

### 戻り値

> SDE_ERR_NOTHING | エラーなし
> SDE_ERR_NO_INIT | Sound Library が初期化されていない
> SDE_ERR_HANDLE_NULL | ハンドルがNULL
> SDE_ERR_HANDLE_ILLEGAL_VALUE | ハンドルが不正なアドレスを指している
> SDE_ERR_BANK_ILLEGAL_TYPE | Bank タイプが異常
> SDE_ERR_PTR_NULL | ダウンロード元のメモリブロックポインタがNULL
> SDE_ERR_BANK_ILLEGAL_CHECK_SUM | Multi Unitが壊れている可能性がある

### 解説

> Multi Unitをメインメモリからサウンドメモリへ転送します。Multi Unitは全てメインメモリにあらかじめ読み込んでなければいけません。

### 備考

> エラーのタイプが SDE_ERR_DATA_ILLEGAL_TYPE(データタイプが異常)の場合、マルチユニットでないファイルを読みこんだバッファを指定したり、ライブラリが識別できないバンクID・データIDが入ったマルチユニットをダウンロードしようとしたことが考えられます。

> この関数でSDE_ERR_BANK_ILLEGAL_CHECK_SUMが返ってきた場合Bankファイル作成時に記録されたチェクサムと実際にダウンロードした内容のチェクサムが合わなかったことを表します。 この場合Bankファイルが壊れている可能性がありますので、サウンドクリエーターに確認してください。

> Bankのダウンロードを行う場合、その時点で各種音源(MIDI音源・One Shot音源・PCM Stream音源・GD-DA音源)で再生している音に関係あるBankを更新しないようにしてください。 例えばOne Shot Bank番号0番・One Shot Data番号0番を再生している時に、One Shot Bank番号0番を更新すると再生中の波形が破壊されることになり、ノイズが発生します。 この場合、それぞれの該当音源ポートの再生を停止する処置(sdMidiSeqStop()関数・sdShotStop()関数など)を取ってください。 また、Host Commandのバッファリング等の関係から、停止処理を行った後数V同期割り込み分待ったうえでダウンロードを行う方が安全です。

> この関数を使用する時にはFXはsdSndClearFxPrg()関数で使用しないようにしてください。

### 参照

> sdMltDownloadEx() | Multi Unitの分割転送
> sdBankDownloadSetDivSz() | BankのDMA転送時の分割サイズの指定
> sdSndClearFxPrg() | FX Programのクリア

sdMltDownload

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000