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); }
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(); } }