Exemplo n.º 1
0
        public override bool init(outDatum[] xgmBuf, ChipRegister chipRegister, EnmChip[] useChip, uint latency, uint waitTime)
        {
            this.vgmBuf       = xgmBuf;
            this.chipRegister = chipRegister;
            this.useChip      = useChip;
            this.latency      = latency;
            this.waitTime     = waitTime;

            Counter         = 0;
            TotalCounter    = 0;
            LoopCounter     = 0;
            vgmCurLoop      = 0;
            Stopped         = false;
            vgmFrameCounter = -latency - waitTime;
            vgmSpeed        = 1;
            vgmSpeedCounter = 0;

            if (!getXGMInfo(vgmBuf))
            {
                return(false);
            }

            //if (model == EnmModel.RealModel)
            //{
            //    chipRegister.setYM2612SyncWait(0, 1);
            //    chipRegister.setYM2612SyncWait(1, 1);
            //}

            //Driverの初期化
            musicPtr  = musicDataBlockAddr;
            xgmpcm    = new XGMPCM[] { new XGMPCM(), new XGMPCM(), new XGMPCM(), new XGMPCM() };
            DACEnable = 0;

            return(true);
        }
Exemplo n.º 2
0
        public void Stop(byte ChipID)
        {
            pcmExecDelta[ChipID] = 0.0;
            DACEnable[ChipID]    = 0;
            ox2b = false;

            for (int i = 0; i < 4; i++)
            {
                if (xgmpcm[ChipID][i] == null)
                {
                    xgmpcm[ChipID][i] = new XGMPCM();
                }
                xgmpcm[ChipID][i].isPlaying = false;
            }
            for (int i = 0; i < 63; i++)
            {
                sampleID[ChipID][i] = new XGMSampleID();
            }
        }