mucomMD2vgm MMLR}h
l^: MUSIC LALF MMLR}h


 .vgm/.xgmt@C쐬菇

  1. ɂȂMMLt@C쐬܂B
    (1) mucomMD2vgmł͊gq֋X.muMƂ܂B(ȉMMLt@ĈƂ.muMƗ܂B)
    (2) R[hshiftJIS(sCRLF)Ƃ܂B
    (3) .muct@C(mucom88winMMLt@C)gpł܂B
  

  2-A. mucomMD2vgm.exegpꍇ
    GUIł̎gpz肵vOłBt@CĎƎNAvgzϊ\B

    ʏ̃{^̐()
      Et@CJ
        .muM.muct@Cǂݍ݂܂B
        ǂݍ񂾂瑦RpCJn܂B

      ERpC
        xǂݍ.muMt@Cēǂݍ݁AăRpC܂B

      EvC[̎N(gO{^)
        RpCɐꂽvgm̃vOŊJ܂B
        \߁Avgm/xgmt@Cɑ΂Ċ֘AtsĂKv܂B

      Et@C̍XVĎ(gO{^)
        xǂݍ.muMt@C̊ĎJn܂B
        XVoƎIɃRpCs܂B
        eLXgGfB^mmlύX㏑ۑۂɎIɃRpC邱Ƃz肵@\łB
        
      Evgzt@C쐬(gO{^)(vgm/xgm)
        RpCɐvgm/xgmt@CIvgz/xgzɕϊ܂B

      ELR}h͏g(gO{^)
        mucom88{LR}h̓ł邾vgm/xgmōČ郂[hɂȂ܂B

      Eő僌_OԎw(eLXg{bNX)
        LR}h͏g{^LɂďsƂAő̉tԂbŎw肵܂B
        f[^LR}h̎w̎dɂẮAԂ̉tKvȃp^[邽߂łB

    ʏ̍yC̐
      RpC̃NbNJE^[lXg\yCłB
      EPart
        RpCsƁAp[g(MegaDrivȅꍇAQ܂)\܂B
      EChip
        MegaDrivȅꍇOPN2(YM2612/YM2612X)DCSG(SN76489)\܂B
        Chip̏ꍇ̖͂̂\܂B
      ECounter
        p[gƂ̃NbNJE^[l\܂B
        LR}hgpă[v́A̒lSp[gňvĂ邩mFƕ֗łB

    ʏ̉EyC̐
      RpC̐iARpC̃G[xȂǁAڍׂ\܂B


    ̎g
      GNXv[ȂǂŁAmucomMD2vgm.exẽACȐɍ쐬muc/muMt@CD&DƂRpC܂B
      ́AR}hCumucomMD2vgm.exe t@CvƑłł̃t@CRpC܂B

	  UIgpA
	    UImuc/muMt@CD&DƂRpC܂B
	    F1L[Ɓut@CJvA
	    F5L[ƁuRpCvs܂B

  
  2-B. mdvc.exegpꍇ
    mdvc.exe̓R}hvvgp̃vOłB
    RpCΏۂmuc/muMt@CR}hCŎw肵s܂B
    vgzϊ\B

  
  3. RpCsAG[⃏[jOAO\B
    ́AG[.vgm/.xgmt@Cmuc/muMƓtH_[ɐB
  

  4. 荠vgm/xgmvC[ŎBCKvł1JԂB
  

  5. IxɓBȓ[hB
    .xgm̏ꍇSGDKgLet's megadrive programming!!


 {IȋLq@

  .muM.muct@CƋLq@͊{AłB
  (.muct@Ĉ܂܎gpł܂B)


 mucom88Ƃ̈Ⴂ

  EΏۉ
    mucom88PC-8801(OPN/OPNA)̃hCoł
    {AvMEGA DRIVE(GENESIS)(OPN2+DCSG)̃hCołB
    mucom88Ƃł邾悤Ɏgpł悤Ă܂B
    ܂AOPL,OPMɂΉĂ܂B

    mucom88     -> OPNA(YM2608)
    mucomMD2vgm -> OPN2(YM2612),DCSG(SN76489)
                  /OPL(YM3526)
                  /OPM(YM2151)

  Ep[g
  MegaDrivȅꍇ
    A  OPN2(YM2612)  Ch.1
    B  OPN2(YM2612)  Ch.2
    C  OPN2(YM2612)  Ch.3 / Ch.3 extend mode op.1
    D  DCSG(SN76489) Ch.1
    E  DCSG(SN76489) Ch.2
    F  DCSG(SN76489) Ch.3
    G  DCSG(SN76489) Ch.4(noise Ch)
    H  OPN2(YM2612)  Ch.4
    I  OPN2(YM2612)  Ch.5
    J  OPN2(YM2612)  Ch.6(FM)
    K  OPN2(YM2612)  Ch.6(PCM)
    L  OPN2(YM2612)  Ch.3 extend mode op.2
    M  OPN2(YM2612)  Ch.3 extend mode op.3
    N  OPN2(YM2612)  Ch.3 extend mode op.4
    O  OPN2(YM2612)  Ch.6 PCM Ch.2(XGMonly)
    P  OPN2(YM2612)  Ch.6 PCM Ch.3(XGMonly)
    Q  OPN2(YM2612)  Ch.6 PCM Ch.4(XGMonly)
    (JK(O/P/Q)͔rIɎgp܂BЕL[I()ƂЕ̉͏܂)
  OPL̏ꍇ
    A  OPL(YM3526)  Ch.1
    B  OPL(YM3526)  Ch.2
    C  OPL(YM3526)  Ch.3
    D  OPL(YM3526)  Ch.4
    E  OPL(YM3526)  Ch.5
    F  OPL(YM3526)  Ch.6
    G  OPL(YM3526)  Ch.7
    H  OPL(YM3526)  Ch.8
    I  OPL(YM3526)  Ch.9
    J  OPL(YM3526)  Rhythm BD
    K  OPL(YM3526)  Rhythm SD
    L  OPL(YM3526)  Rhythm TOM
    M  OPL(YM3526)  Rhythm CYM
    N  OPL(YM3526)  Rhythm HH
  OPM̏ꍇ
    A  OPM(YM2151)  Ch.1
    B  OPM(YM2151)  Ch.2
    C  OPM(YM2151)  Ch.3
    D  OPM(YM2151)  Ch.4
    E  OPM(YM2151)  Ch.5
    F  OPM(YM2151)  Ch.6
    G  OPM(YM2151)  Ch.7
    H  OPM(YM2151)  Ch.8


  EF`
    mucom88@R}h@%R}ĥQނ̒`\łA
	mucomMD2vgmł͍XɈȉ̃R}hǉĂ܂B(NAL,M͑啶ł)


  OPNF`
	AMSSG-EG̃p[^wł܂B

  @N0
  0 , 7
; AR  DR  SR  RR  SL  TL  KS  ML  DT  AM SSG
  31, 12, 12, 15, 15,  0,  0,  1,  0,  1,  0
  31, 12, 12, 15, 15,  0,  0,  1,  0,  1,  1
  31, 12, 12, 15, 15,  0,  0,  1,  0,  1,  2
  31, 12, 12, 15, 15,  0,  0,  1,  0,  1,  3


  OPLF`

;    No. CNT FB
  @L 043 001 000
  @  015 006 010 006 000 000 001 000 000 000 000 000
  @  015 003 000 006 000 022 011 000 000 000 000 000
;    AR  DR  SL  RR  KSL TL  MT  AM  VIB EGT KSR WS


  OPMF`

; No.ALG FB
  @M 000
  @  001 000
  @  001 000 000 000 000 000 000 000 000 000 000
  @  001 000 000 000 000 000 000 000 000 000 000
  @  001 000 000 000 000 000 000 000 000 000 000
  @  001 000 000 000 000 000 000 000 000 000 000
;    AR  DR  SR  RR  SL  TL  KS  ML  DT1 DT2 AME

  ER}h
    mucom88Ɗ{Iɂ͓łB
    mucom88̃o[W1.7̃R}hɂ킹Ă܂B
    Ⴂ͈ȉ̒ʂłB

   v  {[R}hiYj
      mucom88̃Yp[gŎgpł`ɖΉłB

   L  ȑS̃[vR}h
      LR}h͏ʏ탂[h
        Ap[gȊOL͖܂B
        ܂vgm/xgmt@C̐ɂp[gƂɒقȂĂĂASp[g͈Ԓp[gɃpfBOi
        xŖ߂C[Włj܂B
      LR}h͏g[h
        mucom88ƓtɂȂ悤ASẴp[gLR}hlvgm/xgm쐬܂B
		̃[hł́A
		CɃ[v\ȃ|Cg܂œŃ[vsȂ珈p܂B
		܂Agݍ킹ɂĂ͂ȂȂ̃|CgȂꍇ܂B
		̂悤ȏ󋵂邽߂ɁAuMax renderingv(ő僌_OԎw)ƂڂpӂĂ܂B
		l600b𒴂Ă[v|CgȂꍇ͏őł؂܂B

   P  ~LT[hR}h(DCSG)
      Gp[g(DCSG Ch.4)ɂĎgp܂B
      ȉ̒lݒ肷邱Ƃɂē샂[h؂ւ܂B
      (ӁF@R}hŎw肷Gx[vvZbgp^[PR}h͖܂B)
        l      mode          rate  
        P0  ->  periodic      0
        P1  ->  periodic      1
        P2  ->  periodic      2
        P3  ->  periodic      Ch.3A
        P4  ->  white noise   0
        P5  ->  white noise   1
        P6  ->  white noise   2
        P7  ->  white noise   Ch.3A

      mode
        periodic    : t@~RɂƎĂ鉹Ȃ܂B
                      ͂Ȃ苷łAA[hɂăfBt邱Ƃ\łB

        white noise : AmCY𔭉܂B
                      ςGx[vƑgݍ킹ăYނ悤Ȏg܂B

      rate
        0 / 1 / 2   : priodicwhite noisěʂ̋ꂼႢ܂B
        Ch.3A    : DCSG̓mCY̎gCh.3(mucomMDłF`l)𗘗pĐݒ肵܂B
                      Ⴆo4aF`lŎw肷΂ɉmCYgZbg܂B
                      AĂ܂̂œRgɂƂłB
                      F`l̃{[0ɂĂ܂ƂA
                      ʏ͘A@\͎g킸Œ背[ggpuvƂƂɘAȂǁA
                      HvKvɂȂ܂B


   w  mCYgR}h(DCSG)
      wn  (n:0`1023)
      Ch.3̎g𐔒lŎwł܂B

	  QlF AY-8910(PSG/SSG) SN76489(DCSG) mCYgΉ\(WING쐬)
	         X ߎl
		  @PSG   DCSG
		  ---------------
		   `05      X
		     06     00
		     07     03
		     08     06
		     09     08
		     10     09
		     11     10
		     12     12
		     13     13
		     14     14
		     15     15
		     16     16
		     17     17
		     18     18
		     19     19
		     20     20
		     21     21
		     22     22
		     23     23
		     24     24
		     25     25
		     26     26
		     27     27
		     28     28
		     29     29
		     30     30
		     31     31
			  X     32`

   vm PCM{[[hR}h(FM PCM)
      ΉłB

   mon  PCM}bsO[hONɂBFR}hɂĐ؂ւB
   mof  PCM}bsO[hOFFɂB 

   EXON ʉ[hJnR}h(FMex)
   EXOF ʉ[h~R}h(FMex)
   EXn  ʉ[h̃Xbg蓖(gpXbg񋓂)R}h(FMex)
   S    ʉ[h̃XbgfB`[R}h()(FMex)

      EXR}hQɂ
        OPN,OPN2,OPNA,OPNBȂOPNn`bv́Aʉ[h𗘗pCH3ő4ĉt邱Ƃ\łB

        OPNn1CH4Iy[^FMłB
        ʏCH͎g1CHɂݒłȂ̂łA
        CH3͌ʉ[hgpƃIy[^Ɏgݒ肷邱Ƃł܂B
        i݂ɃL[ICHɊ֌WȂIy[^Ɏw\łBj
    
        ̋@\𗘗pꍇC/L/M/Np[ggp܂B
    
        邩́Aʏ(ĕςgȂ)A
        CH3ɐݒ肵ASYŌ܂܂B
		(ASY@R}hyR}hŐݒ肵܂B)
        Ⴆ
          ASY03́AIy[^4݂̂̔Ȃ̂ŕĎgp邱Ƃ͂܂肠܂B
          ASY4́AIy[^24܂̂2Ďgpł܂B
          ASY6́AIy[^2,3,4܂̂3Ďgpł܂B
          (ASY5AIy[^2,3,4̂ł12,3,4Ɋւ̂ŃNZ邩)
          ASY7́AIy[^1,2,3,4̑SĂ܂̂4Ďgpł܂B

          ߂̓ASY4łB2Iy[^܂̂OPLnɎgp邱Ƃ\łB
    
        gp
          悸EXONR}hŌʉ[hLɂ܂B
          EXR}hgpEX`lɃIy[^蓖Ă܂B
          Ⴆ
            Cp[gɃIy[^12蓖āA
            Lp[gɃIy[^34蓖Ăɂ͈ȉ̂悤ɂ܂B
    
            C EXON EX12
            L      EX34
    
          ̓ASY4̉Fw肵m[głB
		  (FC/L/M/Np[gSŋL܂B)
            C @123 c4d4e4
            L      gabgab

		
		  EXON / EXOF / @ R}h Cp[gōsĂB
    
      ʉ[h𗘗pXbgfB`[R}h(S)
        XbgfB`[̓`l̂͒ʏ̎gp@łA
        FNum̒lXbgɂ炵AF̕oƂɎgp܂B
        v́A̋@\𗘗p邱ƂOPMDT2Ɠ悤Ȍʂ𓾂܂B
		SR}hEXnR}h̓`bvIɂ͓@\gp܂̂ŋpł܂B
    
   EXM Xbg}XNR}h(FM/FMex)
      Ɏw̃XbgL[I悤ɂȂ܂B
	  L[IXbg񋓂܂B
	  ftHg1234őSẴXbgLłB
	  Ȃݒ͂ł܂B
	  C/L/M/ŃAʉ[hƕp͂ł܂Bʉ[hEXM̐ݒ͖܂B


   @n1,n2[,n3[,n4]] F[tBOR}h
      l͈̔
        n1 : (0`255)̉Fԍ
        n2 : (0`255)BڕW̉Fԍ
        n3 : (1`255)ωXs[h(Tick)
        n4 : (0:Ȃ 1:)ƂɃZbg邩ۂ(ȗ:1)
      gp\ȃp[g
        FM(OPN2)
      e
        FB,ALG,AR`DT4Iỹp[^[+-1ωAn2Ŏw肵Fɕω܂B
        ωXs[hn3Ŏw肵1őɂȂ܂B


-WX^
R}h
    y

    yn1,n2,n3,n4
l͈̔
    n1 : (0`4) 0:OPNA.1  1:OPNA.2  2:OPNB.1  3:OPNB.2  4:OPM
    n2 : (0`1) |[g
    n3 : (0`255) AhX
    n4 : (0`255) f[^
gp\ȃp[g
    S
e
    Chip̃p[gɑ΂ăf[^𑗂悤ɂ܂B
    ̃R}hƔrăAhX̐܂B
mubt@Cł̃tH[}bg
      0xFF 0xF7 n1 n2 n3 n4

  E^O
    mucom88winƊ{Iɂ͓łB^O͑啶ʂ܂B
    ^O͎ɋȏݒ肷̂Ɏgp܂B
    mucomMD2vgmłvgm/xgm̎dlɉGD3`ɕϊ܂BӖ̋߂^Oɒu܂B
	ȉ̒ʂłB

@ #Title
               ^Cg({ȊO)
@ #TitleJ
               ^Cg({p)
@ #GameName
               Q[({ȊO)
@ #GameNameJ
               Q[({p)
@ #SystemName
               VXe({ȊO)
			   Ⴆ MEGADRIVE  GENESIS Ȃ
@ #SystemNameJ
               VXe({p)
@ #Composer
               Ȏ({ȊO)
@ #ComposerJ
               Ȏ({p)
@ #Date
               t(vgmłrelease date)
@ #Author
               (vgmłConverted)
@ #Comment
               Rg(vgmłNotes)

    ܂Aȃf[^Ƃ̓ݒw肷̂ɂgp܂B
    Ⴂ͈ȉ̒ʂłB

   #pcm filename
               ADPCMw^O
               mucom88`ADPCMt@CfilenameɎw肵܂B
               muMt@CƓpXQƂ܂B
               (mucomMD2vgmł͓PCM`ɕϊ܂B)

   #PcmVolume n
               PCM̉ʐݒ^O
               ݒln10i̐lB͈͂0255Bl255B
               ADPCMPCMɕϊۂ̉ʂݒ肵܂B
               255ōő剹ʂɂȂ܂B
               ̐ݒ̑Ώۂ#pcm݂̂łB

   '@ Pn,"filename" , freq , volume
               PCMʐݒ
               n ɂ͉FԍAfilenameɂwavt@Cw肵܂B
               muMt@CƓpXQƂ܂B
               ǂݍ߂wavt@Č`͈ȉ̒ʂłB
			   vgm`
                 8KHz , 8bit , mono , kȂ , unsigned ł邱ƁB
                 8KHzŒōĐ܂B
			   xgm`
                 14KHz , 8bit , mono , kȂ , unsigned ł邱ƁB
                 14KHzŒōĐ܂B
               #PcmVolume̐ݒ͖܂B
               ܂A#pcmŒ`ĂeDŎgp܂B
               #pcmŒ`ĂȂFԍw肷邩A
               ꍇɂĂ#pcm̓e폜Kv܂B

			   volume 100Œʏ̉ʂɂȂ܂B100ȏwł܂܂B
			   
			   freqw肷ƁA36o4cƂ0`72͈̔͂ŉϊ`܂B
	           73ȏw肷8KHz/14KHzɁAقȂsb`PCMf[^Ƃēo^ł܂B
			   AA̋@\𗘗pɂsoxKvɂȂ܂B
			   SoX̓R}hCɂPCMf[^ϊc[łB
			   SoX
			    z[y[W
 			      http://sox.sourceforge.net/
				vÕA[JCuւ̃N
				  https://sourceforge.net/projects/sox/files/sox/14.4.2/sox-14.4.2-win32.zip/download
			    LICENSE
				  GPL
			   𓀂AmucomMD2vgm̃vOtH_[ɁusoxvtH_[쐬̒Ƀt@CRs[ĂB
			   ܂A.muM/.mucꏊɈȉ̃t@CƗpƂĎgp܂B㏑sƊƃt@C폜܂B
			     soxTemp.raw
				 soxTempDest.raw

			   gύX@\dl)
			   8KHzGuitaro4c̉̎Aȉ̂悤ɒ`ƂPIN^[uPCMϊȂ`B
			   (qPCM}bsO[hp)
                '@ P  1,"Guitar.wav" , 36 , 100
                '@ P  2,"Guitar.wav" , 37 , 100
                '@ P  3,"Guitar.wav" , 38 , 100
                '@ P  4,"Guitar.wav" , 39 , 100
                '@ P  5,"Guitar.wav" , 40 , 100
                '@ P  6,"Guitar.wav" , 41 , 100
                '@ P  7,"Guitar.wav" , 42 , 100
                '@ P  8,"Guitar.wav" , 43 , 100
                '@ P  9,"Guitar.wav" , 44 , 100
                '@ P 10,"Guitar.wav" , 45 , 100
                '@ P 11,"Guitar.wav" , 46 , 100
                '@ P 12,"Guitar.wav" , 47 , 100
                '@ P 13,"Guitar.wav" , 48 , 100
                '@ PM 0 , 4,0 , 1,2,3,4,5,6,7,8,9,10,11,12,13
			   ܂
                '@ P  1,"Guitar.wav" ,  8000 , 100
                '@ P  2,"Guitar.wav" ,  8476 , 100
                '@ P  3,"Guitar.wav" ,  8979 , 100
                '@ P  4,"Guitar.wav" ,  9513 , 100
                '@ P  5,"Guitar.wav" , 10079 , 100
                '@ P  6,"Guitar.wav" , 10679 , 100
                '@ P  7,"Guitar.wav" , 11314 , 100
                '@ P  8,"Guitar.wav" , 11987 , 100
                '@ P  9,"Guitar.wav" , 12699 , 100
                '@ P 10,"Guitar.wav" , 13455 , 100
                '@ P 11,"Guitar.wav" , 14255 , 100
                '@ P 12,"Guitar.wav" , 15102 , 100
                '@ P 13,"Guitar.wav" , 16000 , 100
                '@ PM 0 , 4,0 , 1,2,3,4,5,6,7,8,9,10,11,12,13

   '@ PM MapNo , Octave , Note , No...
               PCM}bsO[h`
	           MapNo       PCM Map No(0-255)
               Octave      IN^[u(1-8)
               Note        m[gԍ(0-11) 0:c 1:c+ ... 10:a+ 11:b
               No...       `ԍ(0-62) J}؂ŔƂɕ`\łB
	           w̃m[gPCM蓖Ă܂B̒`͏㏑܂B

   #Chip       type
               gpChip(͉\)w肵܂B
               w\type(l)
                MegaDrive
                OPL
                OPM
               3łB
               MegaDriveftHgłB
               MegaDrive`
                 OPN2DCSGgpt\łB
               OPL`
                 OPLgpt\łB
               OPM`
                 OPMgpt\łB

   #FileFormat type
               o͂t@CtH[}bgw肵܂B
               w\type(l)
                vgm
                xgm
               ̂QłB
               vgmftHgłB
               vgm`
                 lXȃ`bṽf[^Ƃ\ȃO`̃tH[}bgłB
                 `bvɑMf[^ԏ݂Ȃ񋓂Ă邾Ȃ̂ŁA
                 ĐvÔ̌`ƔrĈ|IɊyłA
                 ܂AG~[^[ȂǂŃ`bvɑꂽf[^o͂̂ɈՂ`łB
                 AAP̂ɏ璷Iȃf[^ɂȂ邽߃t@CTCYɂȂ肪łB
               xgm`
                 `bvOPN2DCSGɌ肵MEGA DRIVE(GENESIS)p̃tH[}bgłB
                 OPL/OPMł͎gpł܂B
                 {IɂvgmƓO`̃tH[}bgłA
                 `bvQɌ肵Ă̂ƁAPł͂܂f[^kċL^łdg݂Ă邽߁A
                 t@CTCY}邱Ƃł܂B
                 SGDK(MEGA DRIVEhome brewJ)ׂ̈ɗpӂꂽp̌`ŁA
                 ̂܂܃vOɑgݍŎgp邱Ƃ\łB
                 ő̓̓\tgEFAɂPCM4chĐłB
                 pʂɐU邱ƂłȂȂǂ̐܂ƂĂ͂ȋ@\ɂȂĂ܂B

   #XGMBaseFrame type
               t@CtH[}bgXGM`Iꍇ̂ݗLȃ^OłB
               1b̃t[w肵܂B
               w\type(l)
                ntsc
                pal
               ̂QłB
               ntscftHgłB
                 ntsc  t[ 60Hz B 
                 pal   t[ 50Hz B
               e|A\wƖڂȊ֌Wɂ܂B
               Ql
                 1NbNɊ蓖Ăt[ = XGMBaseFrame * (60 * 4) / ClockCount / tempo
                 Ⴆ
                   ntsc , clockcount=192 , tempo=120
                 ̂Ƃ
                   60 * 60 * 4 / 192 / 120 = 0.625 (frame/clock)
                 S
                   192 / 4 = 48 (clock)
                 48NbNȂ̂
                   0.625 * 48 = 30 (frame)
                 30t[ƂȂ܂B
                 e|120ƂƂ͂Pb(60frame)łS(30frame)2񉉑tł܂獇Ă܂ˁB

                 VGM`ɔׂĔɒlɒӂĂB(Ȃ݂VGM`̏ꍇ44100HzŒB)
                 łntscApal͓{A[bpȂǂ̃er̂PbԂ̉ʂ񐔂ӖĂ܂B
                 ̑̃Q[@͂̃er̉f^C~Oɍ킹ĉỷts܂B
                 KhCuœ삷XGM`dg݂ɂȂĂ܂B

   #Vsync hz
               vgm
               ̎wsƁA1Clock = 1Frame Œ胂[hɂȂ܂B
               ăe|̎wɂȂ܂B
               hz(l)Ɏw肵lAPbԂ̃t[ƂȂ܂B
               Ⴆ60w肷΁ANTSCȏԂɂȂ܂A1clock=1frame ŒȂ̂#XGMBaseFrameƂ͂ȂقȂ܂B
               ݂ɓł͈ȉ̂悤Ȋ֌WɂȂ܂B

                 44100Hz / 60Hz  =  1Clock  =  1Frame

   #Vsync 1
               xgm
               ̎wsƁA1Clock = 1Frame Œ胂[hɂȂ܂B
               ăe|̎wɂȂ܂B
               l1w肵ĂBXGMBaseFrameŐݒ肵lAPbԂ̃t[ƂȂ܂B

   #PcmRaw
               vgm
               gpƁAt@CTCY͑傫Ȃ܂ASPFMPlayerȂǂłĐł悤ɂȂ܂


  EG[ƌxɂ
    mucom88邳G[ƌxł܂B
	mucomMD2vgm͈ꕶǂݐi߂ȂG[𔻒肷̂ŘAĎ悤ȃG[\₷A
	đʂ̃G[\Ăۂ͂قǑςł͂ȂƂłB

	XGM`̏ꍇ
	  u1FrameɎ߂EoCg(256byte)𒴂Ă܂Bf[^𕪎UĂB Frame {0} : {1}bytev
	ƂxL^ꍇ܂B
	mml̕@ɖ肪킯ł͂ȂRpC̃f[^傫ASGDKXGMDriver̋Kl𒴂ꍇ
	܂BꂪȒŔƃt[PCM̍ĐɎxႪł\Ȃ܂B
	Q[JnȂ̎n܂ŏȂǂłΖȂꍇ܂̂ŎۂSGDKɑgݍŊmFAĂB
	Ԃ̃^C~OőR̃f[^OPN2DCSGɑׂɔĂ̂ŁAႤ^C~Oŏ悤
	ƔȂȂ܂B
	Ⴆ
	  OPN2@(Fݒ)R}h͑̃f[^𑗂܂̂łp[gƂɔ炵Đݒ肷
	Ƃ悤ȍHv܂B
	݂MDPlayer݂̂ōĐł΂قږĖȂxłB


ȏ
