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

# sdBankDownloadSetDivSz

BankのDMA転送時の分割サイズの指定

### 書式

> `SDE_ERR sdBankDownloadSetDivSz( div_sz)
> const Sint32 div_sz
> `

### 引数

> div_sz | 分割サイズ

### 戻り値

> SDE_ERR_NOTHING | エラーなし
> SDE_ERR_NO_INIT | Sound Library が初期化されていない
> SDE_ERR_PRM_OVER_RANGE | div_szの値が範囲外

### 解説

> Bankをメインメモリからサウンドメモリへ転送するときの1度に転送するサイズを指定します。

> サイズは20H〜200000H Bytesまで20H単位で指定できます。

### 用例

>     #define	SMPD_2MEGA_BYTES	( 2 * 1024 * 1024)

>     SDMEMBLK	BankMemBlk;
>     Uint8		BankBuffer[ SMPD_2MEGA_BYTES];
>     Sint32		BankSz = 0x100000;	/*  Bankのサイズは1MB程度あるとする  */

>     UserInit()
>     {
>     	/*  各種ライブラリ・変数の初期化  */

>     	/*  GD-ROMからBankの読み込み  */

>     	/*
>     	 *  Bankの分割ダウンロード
>     	 */
>     	/*  Bankは800H毎に転送する  */
>     	sdBankDownloadSetDivSz( 0x800);
>     	sdMemBlkSetPrm( BankMemBlk, BankBuffer, BankSz, SDD_MEMBLK_NO_FUNC, NULL);
>     	sdBankDownload( BankMemBlk, SDE_DATA_TYPE_MIDI_PRG_BANK, 0);
>     	/*  即時復帰なので抜けていきます  */

>     }
>     UserMain()
>     {
>     	/*
>     	 *  同時にPCM Stream再生をする
>     	 *  実際にはもしsdBankDownloadSetDivSz()関数を使用していない場合は
>     	 *  BankのダウンロードにDMAが占有されて正常なPCM Stream再生ができない
>     	 */
>     }

### 備考

> 通常sdBankDownload()関数は1つのBankをそのまま1度にサウンドメモリに転送しようとしますが、DMA転送の場合その間DMAを占有してします。 これによる弊害でADXをはじめMiddlewareやPCM Stream音源での音声の再生に支障が出る(逐次波形が転送できなくなる)場合があるということです。 そういう場合にこの関数でBankの分割転送をします。 この関数の設定はsdMultiUnitDownload()関数にも影響します。逆にこの関数での分割はsdBankDownloadEx()関数には影響しません。

### 参照

> sdBankDownload() | Bankの転送
> sdBankDownloadEx() | Bankの分割転送
> sdMltDownload() | Multi Unitの転送
> sdMltDownloadEx() | Multi Unitの分割転送

sdBankDownloadSetDivSz

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000