*******************************************************************************
hLg      FeCuJt@C
t@CL      FMANPCM.DOC
ΏۃCuĹFpcm
ΏۃCu    FoblE`coblĐCu
o[W            F1.16
쐬                FY.T
쐬                F1995-03-31
̑̃bZ[W    FȂ
*******************************************************************************

PDTv
  {CúAT^[ł̂oblXg[ĐT|[g܂B
@Đ[hƂāAĐ[hCt@CĐ[hCXg[Đ[h
AĐ[h̎gƂď풓ĐƁAĐ܂B
@AIFF`CAPCM`(SEGA ADPCM Encoder ̏o̓t@C`)CCD-ROM XA Audio`
̃t@CĐ邱Ƃł܂B
@{CúAVlpbNCũI[fBIƂɍ쐬Ă̂
֐C^tF[Xgp@́AVlpbNCuƂقƂǓłA[N
obt@A|[Yp[Nobt@̎ȂǁA኱̈Ⴂ܂̂Œ
ĉB

QD񋟕
@EoblE`coblĐCu
@E`coblLCu
@ETvvOi\[X܂ށjAubcpXNvg(VCD V1.72ɑΉ)

RDΉo[W
@  ^[Qbg@@@@@@@FPROGRAMMING BOX(Modelr) SCU2.4 ȏ
@  t@CVXe@@@@FVer1.20 ȏ 
@  Xg[VXe@@@FVer1.20 ȏ 
@  cl`Cu@@@@FVer1.05 ȏ 
  @TEhh/eCu FVer1.05 ȏ
  @TEhhCo@@@@FVer1.28 ȏ
  @ADPCMLCu @@FVer1.01 ȏ
  @o[`bc֘A(bc̍ĐsꍇɕKv)
@    @@VCDPRE      @@@FVer3.06 ȏ 
          VCDBUILD        @FVer3.06 ȏ 
          VCDEMU          @FVer1.72 ȏ 

SDӎ
SDP@eobt@̊m
  @@[Nobt@@@F[N\̂̃TCYB
  @@Oobt@@@FŒ ()*10 [byte]B
@@@oblobt@@@F4096*2 ` 4096*4 [sample/1ch]B
  @@|[Yp[NFoblobt@ƓTCYœKBŒ 4096 [sample]B

SDQ@rbt|cl` gp̒
@@bcubN烊Oobt@ւ̃f[^]rbt̂cl`ōsꍇA
@ytF񂪐ȂȂ邱Ƃ܂B
@@̏ꍇAő]ZN^(ftHgl 20)ݒ肷邱ƂŉPł
@܂AݒꍇAɌ\ȕpxŃ^XN֐iXg[
@Đ̏ꍇ STM_ExecServer  STM_ExecTransjR[Kv܂B
@@mn
@@@@PCM_SetTrModeCd(pcm, PCM_TRMODE_SCU);  /* SCU-DMAœ]         */
@@@@PCM_SetLoadNum(pcm, 5);                /* 1̓]ʂ̍ől [] */
@@܂Arbt|cl`œ]́AgpoXL̂ŁArg͂bot
@oXANZX悤ƂƂEGCgԂɂȂĂ܂܂B
@@rbt|cl`́Aɗ͎gpȂŉB

SDQ@̑̒
  E{Cu͂bot̃^C}gp܂BCu쎞͂bot̃^C}
  @gpȂŉB

  EPCM_Init ֐́AvO̐擪ŕKR[ĂB

  EPCM_VblIn ֐́AuuNhm荞݂ŖKR[ĂB

  EPCM_Task ֐́AȂƂuuN荞݂̕pxiP/PUjƓ
  @ȏ̕pxŁAIɃR[ĂB
    QȂꍇ́APCM_Task ̕pxȂ邱Ƃl܂B

  EPCM_Start ͍쐬nhɑ΂āAP񂾂sł܂B
    t@CxĐ́A̓sxnh𐶐ĂB

  EPCM_SetLoadNum, PCM_SetPcmStreamNo ͍ĐJnOɃR[ĂB

  EPCM_SetTrModeCd ́APCM_TaskR[OɃR[ĂB

@EPCM_CreateMemHandle Őnh́AK PCM_NotifyWriteSize ŃO
@@obt@ւ̃f[^ʂʒmĂB

@EADPCMgpꍇAȂ킿ASEGA ADPCM Encoder APCM`܂́ACD-ROM 
@@XA AudioĐꍇ́APCM_DeclareUseAdpcm ADPCMgp錾ĉB

@ECD-ROM XA Audio ̍Đꍇ́AK PCM_SetInfo ōĐݒ肵
@@B
@@CD-ROM XA Audio ̍Đł́AXg[Đ[hȊO͎gpł܂B
@@TvvO smppcm5.c QlɂĂB

TDTvvO̎gp@
  TvvO̎gp@́A\SATURN\SEGASMP\MAN\MANPCM.DOC QƂ
B

UDύX
Ver.1.00  Ver.1.10ւ̕ύX_
@@@1) CûύX܂B
@@@@ḿnuoblĐCuv
@@@@mV́nuoblE`coblĐCuv
@@@2) `coblĐɑΉ܂B
@@@3) ^XN֐̎dlύX܂B
@@@@mdlnSuuNɂPȏ̕pxŃR[B
@@@@@@@@@P̃^XNŏʂ́AőPCMobt@̗̔
@@@@mVdlnPuuNɂPȏ̕pxŃR[B
@@@@@@@@@P̃^XNŏʂ́Aő4096Tv̗
    @4) ADPCMgp錾֐ PCM_DeclareUseAdpcm ǉ܂B
      @  錾Ȃ΁AADPCMLײ؂ݸȂdg݂ɂĂ܂B

Ver.1.10  Ver.1.11ւ̕ύX_
@@@1) YtĂ ADPCMLCu Ver1.00  Ver1.01 ɂȂ܂B
@@@@   Ver1.00 ł́ANG[P[X܂B
       oblE`coblĐCû͑SύXĂ܂B

Ver.1.11  Ver.1.12ւ̕ύX_
      1) ̃G[`FbNǉ܂B
          PCM_ERR_TOO_SMALL_PCMBUF : uoblobt@TCYv
          PCM_ERR_ILL_SIZE_PCMBUF  : uoblobt@TCYsv
      2) ZNVɊւāȀC܂B
@@@@1.f[^̈icZNVjgpȂ悤ɏC܂B
      3) ̃oOC܂B
        1.Xg[VXegčĐĂ鎞ɁASTM_SetExecGrp R[
          Ƥ̊֐߂ȂꍇAC܂B
          Xg[̏xCXgbNɗ]T΁AĐɈꎞIɃXg
          [O[vύXÃXg[O[ṽf[^ǂނƂ
          ł悤ɂȂ܂B

Ver.1.12  Ver.1.13ւ̕ύX_
@@@1) ^XN֐̎dlύX܂B
         Xg[Đ[hɂāAȑO PCM_Task  STM_ExecServer 
         R[Ă܂ASTM_ExecServer  AvP[VR[
         悤ɎdlύX܂B
@       o[WƓ̓sɂ́APCM_Task ̒O STM_ExecServer 
         R[ĉB̂oblnhAPCM_Task A
         R[ꍇł STM_ExecServer ͂P̃R[ŏ\łB
         ꍇɂĂ STM_ExecServer ̑ɁAbcubN̓]
         s STM_ExecTrans R[邱Ƃł܂B
@@@@mdlnP̃^XNŏʂ́Aő4096[sample/1ch]B
@@@@@@@@@Xg[ĐACu STM_ExecServer R[B
@@@@mVdlnP̃^XNŏʂ͒߉\̫Ēl 1024[sample/1ch]
@@@@@@@@@Xg[ĐAAvP[V STM_ExecServer  
@@@@@@@@@STM_ExecTrans R[B
@@@2) P̃^XN֐ʂ̒
@@@   PCM_Set1TaskSample łP̃^XNŏʂ̏ݒł܂B
  @@@ ɂ^XN֐ׂ̕肳邱Ƃł܂B
@@@3) oblĐJn,~̐ݒ
@@@@ PCM_SetStartTrgSize, PCM_SetStartTrgSample ȂǂŁAĐJn
@@@@ тݒ肷΁AĐJnAf[^słĐ̈S
@@@@ Ȃ܂B

Ver.1.13  Ver.1.14ւ̕ύX_
      1) ̃oOC܂B
        `heẽXeIĐɁAuvƃmCYꍇAC
        ܂B

Ver.1.14  Ver.1.15ւ̕ύX_
@@@1) t@CĐ[h̃f[^](CPUDMȀꍇ)̉P
@@@@RقłP񕪂̍ő]̓]Ă܂B
@@@@QقłP񕪂̓]悤ɏC܂B
      2) [vĐ@\̒ǉ
        PCM_SetLoop ŁA[v񐔂w肵܂BftHglPB
@@@@Đ[hA܂́At@CĐ[hŎgpĉB
@@@@Đ[h̎gɂ́A풓ĐƁAĐ܂A
@@@@[vĐpł̂͏풓Đ̏ꍇłB
@@@@Xg[Đ[h͖ΉłB
        PCM_EntryNext  PCM_Change ͂̋@\D悳܂B܂胋[v
        񐔂̎wɂ炸Ao^Ẵnhɐ؂ւ܂B
@@@@TvvO smppcm4, smppcm13 ɏႪ܂B
      3) TvvȌC
      @TEhhCȍݒvOōs悤ɏC܂B

Ver.1.15  Ver.1.16ւ̕ύX_
      1) ̃oOC܂B
        t@CĐɂǂݏ
        @t@CVXegčĐ鎞APCM_Start  PCM_Task 
        @R[ƁǍĐJn悤Ƃ PCM_Start R[
        @ɂferɃG[𔭐Ă܂oO܂B
@@@@@CɂAĐJnO PCM_Task R[Ă΁AɃt@C
@@@@@̐ǂݏs悤ɂȂ܂B
      2) TEhh/eCu̎gp
@@@@@FTEhhCoւ̃R}hs͑SāAƎɍsB
@@@@@@@@@R}hubŃAw肳ꂽ̔ԍgpB
@@@@@VFTEhhCoւ̃R}hs͑SāATEhh/eCu
@@@@@@@@@gpčsBR}hubN͓肳ȂB
@@@@@TEhhCo̎dlύXz邽߂ɁATEhh/eCu
@@@@@gp悤ɏC܂B sega_snd.lib NKv
@@@@@܂B
      3) ̊֐폜܂B
@@@@@PCM_SetPcmCmdBlockNo :oblR}hubNԍ̐ݒ

/********************************* end of file *******************************/
