コード例 #1
0
ファイル: xgm.cs プロジェクト: kuma4649/mml2vgm
        public override bool init(outDatum[] xgmBuf, ChipRegister chipRegister, EnmChip[] useChip, uint latency, uint waitTime, long jumpPointClock)
        {
            this.vgmBuf         = xgmBuf;
            this.chipRegister   = chipRegister;
            this.useChip        = useChip;
            this.latency        = latency;
            this.waitTime       = waitTime;
            this.jumpPointClock = jumpPointClock;

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

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

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

            return(true);
        }
コード例 #2
0
ファイル: nsf.cs プロジェクト: hiroshica/MDPlayer
        public override bool init(byte[] vgmBuf, ChipRegister chipRegister, enmModel model, enmUseChip[] useChip, uint latency, uint waitTime)
        {
            this.vgmBuf       = vgmBuf;
            this.chipRegister = chipRegister;
            this.model        = model;
            this.useChip      = useChip;
            this.latency      = latency;
            this.waitTime     = waitTime;

            if (model == enmModel.RealModel)
            {
                Stopped    = true;
                vgmCurLoop = 9999;
                return(true);
            }

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

            GD3 = getGD3Info(vgmBuf, 0);

            nsfInit();

            return(true);
        }
コード例 #3
0
ファイル: S98.cs プロジェクト: tenchoTCS/MDPlayer
        public override bool init(byte[] vgmBuf, ChipRegister chipRegister, EnmChip[] useChip, uint latency, uint waitTime)
        {
            this.vgmBuf       = vgmBuf;
            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;

            GD3 = getGD3Info(vgmBuf, 0);
            //if (GD3 == null) return false;

            if (!getInformationHeader())
            {
                return(false);
            }

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

            return(true);
        }
コード例 #4
0
ファイル: xgm.cs プロジェクト: pedipanol/mml2vgm
        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);
        }
コード例 #5
0
ファイル: sid.cs プロジェクト: hiroshica/mml2vgm_mase
        public override bool init(byte[] vgmBuf, ChipRegister chipRegister, EnmChip[] useChip, uint latency, uint waitTime)
        {
            this.vgmBuf       = vgmBuf;
            this.chipRegister = chipRegister;
            this.useChip      = useChip;
            this.latency      = latency;
            this.waitTime     = waitTime;

            //if (model == EnmModel.RealModel)
            //{
            //    Stopped = true;
            //    vgmCurLoop = 9999;
            //    return true;
            //}

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

            GD3 = getGD3Info(vgmBuf, 0);

            SidInit(vgmBuf);
            initial = true;

            return(true);
        }
コード例 #6
0
ファイル: MUCOM88.cs プロジェクト: hiroshica/MDPlayer
        /// <summary>
        /// イニシャライズ
        /// </summary>
        /// <param name="buf"></param>
        /// <param name="chipRegister"></param>
        /// <param name="model"></param>
        /// <param name="useChip"></param>
        /// <param name="latency"></param>
        /// <param name="waitTime"></param>
        /// <returns></returns>
        public override bool init(byte[] buf, ChipRegister chipRegister, enmModel model, enmUseChip[] useChip, uint latency, uint waitTime)
        {
            this.vgmBuf       = buf;
            this.chipRegister = chipRegister;
            this.model        = model;
            this.useChip      = useChip;
            this.latency      = latency;
            this.waitTime     = waitTime;
            pc88.ChipRegister = chipRegister;
            pc88.fmTimer      = timerOPN;
            pc88.model        = model;

            //デバッグ向け
            //if (model == enmModel.RealModel) return true;

            GD3 = getGD3Info(buf, 0);

            fnVoicedat = string.IsNullOrEmpty(fnVoicedat) ? "voice.dat" : fnVoicedat;
            LoadFMVoice(fnVoicedat);

            fnPcm   = string.IsNullOrEmpty(fnPcm) ? "mucompcm.bin" : fnPcm;
            pcmdata = LoadPCM(fnPcm);

            //Compile
            ushort basicsize = StoreBasicSource(buf, 1, 1);

            //MUCOM88 初期化
            muc88.CINT();//0x9600

            //コンパイルコマンドのセット
            z80.HL = 0xf010;
            mem.LD_8(0xf010, 0x41);// 'A'
            mem.LD_8(0xf011, 0x00);
            mem.LD_8(0xf012, 0x00);

            //↓コンパイルが実施される
            int ret = muc88.COMPIL();//vector 0xeea8

            //エラー発生時は0以外が返る
            if (ret != 0)
            {
                int errLine = mem.LD_16(0x0f32e);//ワークアドレスのERRLINE
                log.Write(string.Format("コンパイル時にエラーが発生したみたい(errLine:{0})", errLine));
                return(false);
            }

            SaveMub(basicsize);

            setPCMData(pcmdata);
            music2.initMusic2();
            music2.MSTART();

            return(true);
        }
コード例 #7
0
        public YM3526(ChipRegister chipRegister, Setting setting, outDatum[] vgmBuf) : base(14)
        {
            this.chipRegister = chipRegister;
            this.setting      = setting;
            this.vgmBuf       = vgmBuf;

            Use    = true;
            Device = EnmZGMDevice.YM3526;
            name   = "YM3526";
            Model  = EnmVRModel.None;
            Number = 0;
            Hosei  = 0;
        }
コード例 #8
0
ファイル: C352.cs プロジェクト: kuma4649/mml2vgm
        public C352(ChipRegister chipRegister, Setting setting, outDatum[] vgmBuf) : base(32)
        {
            this.chipRegister = chipRegister;
            this.setting      = setting;
            this.vgmBuf       = vgmBuf;

            Use    = true;
            Device = EnmZGMDevice.C352;
            name   = "C352";
            Model  = EnmVRModel.None;
            Number = 0;
            Hosei  = 0;
        }
コード例 #9
0
ファイル: RF5C164.cs プロジェクト: hiroshica/mml2vgm_mase
        public RF5C164(ChipRegister chipRegister, Setting setting, outDatum[] vgmBuf) : base(8)
        {
            this.chipRegister = chipRegister;
            this.setting      = setting;
            this.vgmBuf       = vgmBuf;

            Use    = true;
            Device = EnmZGMDevice.RF5C164;
            name   = "RF5C164";
            Model  = EnmVRModel.None;
            Number = 0;
            Hosei  = 0;
        }
コード例 #10
0
        public Conductor(ChipRegister chipRegister, Setting setting, outDatum[] vgmBuf) : base(2)
        {
            this.chipRegister = chipRegister;
            this.setting      = setting;
            this.vgmBuf       = vgmBuf;

            Use    = true;
            Device = EnmZGMDevice.Conductor;
            name   = "CONDUCTOR";
            Model  = EnmVRModel.None;
            Number = 0;
            Hosei  = 0;
        }
コード例 #11
0
        public K053260(ChipRegister chipRegister, Setting setting, outDatum[] vgmBuf) : base(4)
        {
            this.chipRegister = chipRegister;
            this.setting      = setting;
            this.vgmBuf       = vgmBuf;

            Use    = true;
            Device = EnmZGMDevice.K053260;
            name   = "K053260";
            Model  = EnmVRModel.None;
            Number = 0;
            Hosei  = 0;
        }
コード例 #12
0
ファイル: QSound.cs プロジェクト: hiroshica/mml2vgm_mase
        public QSound(ChipRegister chipRegister, Setting setting, outDatum[] vgmBuf) : base(16)
        {
            this.chipRegister = chipRegister;
            this.setting      = setting;
            this.vgmBuf       = vgmBuf;

            Use    = true;
            Device = EnmZGMDevice.QSound;
            name   = "QSound";
            Model  = EnmVRModel.None;
            Number = 0;
            Hosei  = 0;
        }
コード例 #13
0
ファイル: NES.cs プロジェクト: kuma4649/mml2vgm
        public NES(ChipRegister chipRegister, Setting setting, outDatum[] vgmBuf) : base(5)
        {
            this.chipRegister = chipRegister;
            this.setting      = setting;
            this.vgmBuf       = vgmBuf;

            Use    = true;
            Device = EnmZGMDevice.NESAPU;
            name   = "NES";
            Model  = EnmVRModel.None;
            Number = 0;
            Hosei  = 0;
        }
コード例 #14
0
ファイル: SEGAPCM.cs プロジェクト: pedipanol/mml2vgm
        public SEGAPCM(ChipRegister chipRegister, Setting setting, outDatum[] vgmBuf) : base(16)
        {
            this.chipRegister = chipRegister;
            this.setting      = setting;
            this.vgmBuf       = vgmBuf;

            Use    = true;
            Device = EnmZGMDevice.SegaPCM;
            name   = "SEGAPCM";
            Model  = EnmVRModel.None;
            Number = 0;
            Hosei  = 0;
        }
コード例 #15
0
        public MidiGM(ChipRegister chipRegister, Setting setting, outDatum[] vgmBuf) : base(99)
        {
            this.chipRegister = chipRegister;
            this.setting      = setting;
            this.vgmBuf       = vgmBuf;

            Use    = true;
            Device = EnmZGMDevice.MIDIGM;
            name   = "GeneralMIDI";
            Model  = EnmVRModel.None;
            Number = 0;
            Hosei  = 0;
        }
コード例 #16
0
        public void InitDriver(
            string fileName
            , Action <ChipDatum> OPL4Write
            , Action <long, int> OPL4WaitSend
            , musicDriverInterface.MmlDatum[] mdrBuf
            , ChipRegister chipRegister
            )
        {
            musicDriverInterface.Log.writeMethod = disp;
            musicDriverInterface.Log.off         = 0;
            setting           = Audio.setting;
            this.chipRegister = chipRegister;

            int jumpIndex = -1;

            if (compiler != null)
            {
                CompilerInfo ci = compiler.GetCompilerInfo();
                if (ci.jumpClock != -1)
                {
                    jumpIndex = ci.jumpClock;
                }
            }

            object addtionalMoonDriverDotNETOption = new object[] {
                fileName,//string srcFile;
                (Func <string, Stream>)appendFileReaderCallback,
                Common.SampleRate,
                jumpIndex
            };

            object[] addOp = new object[] {
                fileName,
                //(Func<string, Stream>)appendFileReaderCallback,
                (double)Common.SampleRate,
                jumpIndex
            };

            List <ChipAction>    lca = new List <ChipAction>();
            MoonDriverChipAction ca  = new MoonDriverChipAction(OPL4Write); lca.Add(ca);

            driver.Init(
                //fileName
                //, OPL4Write
                lca
                , mdrBuf
                , appendFileReaderCallback
                //,OPL4WaitSend
                , addOp
                );
        }
コード例 #17
0
ファイル: moonDriverM.cs プロジェクト: hiroshica/mml2vgm_mase
        public bool init(MmlDatum[] mdrBuf
                         , string mdrWorkPath
                         , MoonDriverManager moonDriverManager
                         , ChipRegister chipRegister
                         , EnmChip[] enmChips
                         , uint v1, uint v2
                         , string mdrFileName)
        {
            if (moonDriverManager == null)
            {
                return(false);
            }

            this.vgmBuf       = null;
            this.mdrBuf       = mdrBuf;
            this.chipRegister = chipRegister;
            //this.useChip = useChip;
            //this.latency = latency;
            //this.waitTime = waitTime;
            this.MoonDriverManager = moonDriverManager;
            chipYMF278B            = chipRegister.YMF278B[0];
            filename = mdrFileName;

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

            initPhase = true;
            pcmdata   = new List <SoundManager.PackData>();


            //Driverの初期化
            moonDriverManager.InitDriver(
                System.IO.Path.Combine(mdrWorkPath, "dummy")
                , OPL4InitialWrite
                , OPL4WaitSend
                , mdrBuf
                , chipRegister
                );

            moonDriverManager.StartRendering((int)Common.SampleRate, (int)YMF278BClockValue);
            moonDriverManager.MSTART(0);

            return(true);
        }
コード例 #18
0
        public override bool init(byte[] vgmBuf, ChipRegister chipRegister, enmModel model, enmUseChip[] useChip, uint latency, uint waitTime)
        {
            this.vgmBuf       = vgmBuf;
            this.chipRegister = chipRegister;
            this.model        = model;
            this.useChip      = useChip;
            this.latency      = latency;
            this.waitTime     = waitTime;

            if (model == enmModel.RealModel)
            {
                Stopped    = true;
                vgmCurLoop = 9999;
                return(true);
            }

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

            ld = new HESDetector();
            ld.Reset();

            GD3 = getGD3Info(vgmBuf, 0);

            m_hes = new m_hes();
            m_hes.chipRegister = chipRegister;
            m_hes.ld           = ld;
            nez_play           = new m_hes.NEZ_PLAY();
            if (m_hes.HESLoad(nez_play, vgmBuf, (UInt32)vgmBuf.Length) != 0)
            {
                return(false);
            }
            nez_play.song.songno = (UInt32)(this.song + 1);
            m_hes.HESHESReset(nez_play);
            return(true);
        }
コード例 #19
0
ファイル: MID.cs プロジェクト: hiroshica/MDPlayer
        public override bool init(byte[] vgmBuf, ChipRegister chipRegister, enmModel model, enmUseChip[] useChip, uint latency, uint waitTime)
        {
            this.vgmBuf = vgmBuf;
            this.chipRegister = chipRegister;
            this.model = model;
            this.useChip = useChip;
            this.latency = latency;
            this.waitTime = waitTime;

            Counter = 0;
            TotalCounter = 0;
            LoopCounter = 0;
            vgmCurLoop = 0;
            Stopped = false;
            //コントロールを送信してからウェイトするためここでは0をセットする
            //vgmFrameCounter = -latency - waitTime;
            vgmFrameCounter = 0;
            vgmSpeed = 1;
            vgmSpeedCounter = 0;

            GD3 = getGD3Info(vgmBuf, 0);
            //if (GD3 == null) return false;

            if (!getInformationHeader()) return false;

            //ポートごとに事前に送信するコマンドを作成する
            if (!MakeBeforeSendCommand()) return false;

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

            return true;
        }
コード例 #20
0
        public bool init(musicDriverInterface.MmlDatum[] mubBuf, string workPath, mucomManager mucomManager, ChipRegister chipRegister
                         , EnmChip[] useChip
                         , uint latency
                         , uint waitTime
                         , string fn
                         )
        {
            if (mucomManager == null)
            {
                return(false);
            }

            this.vgmBuf       = null;
            this.mubBuf       = mubBuf;
            this.chipRegister = chipRegister;
            this.useChip      = useChip;
            this.latency      = latency;
            this.waitTime     = waitTime;
            this.mm           = mucomManager;
            chipYM2608        = chipRegister.YM2608[0];
            chipYM2608S       = chipRegister.YM2608[1];
            chipYM2610        = chipRegister.YM2610[0];
            chipYM2610S       = chipRegister.YM2610[1];
            chipYM2151        = chipRegister.YM2151[0];
            filename          = fn;

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

            initPhase = true;
            pd[0]     = new List <SoundManager.PackData>();
            pd[1]     = new List <SoundManager.PackData>();
            pd[2]     = new List <SoundManager.PackData>();
            pd[3]     = new List <SoundManager.PackData>();
            pd[4]     = new List <SoundManager.PackData>();
            pdOPNB[0] = null;
            pdOPNB[1] = null;
            pdOPNB[2] = null;
            pdOPNB[3] = null;
            pdOPM[0]  = null;
            pdOPM[1]  = null;

            //Driverの初期化
            mm.InitDriver(
                System.IO.Path.Combine(workPath, "dummy")
                , new List <Action <musicDriverInterface.ChipDatum> >()
            {
                OPNAWriteP
                , OPNAWriteS
                , OPNBWriteP
                , OPNBWriteS
                , OPMWriteP
            }
                , new List <Action <byte[], int, int> >()
            {
                null
                , null
                , OPNBWriteAdpcmP
                , OPNBWriteAdpcmS
            }
                , OPNAWaitSend
                , false, mubBuf, true, false);

            mm.StartRendering(Common.DataSequenceSampleRate, (int)YM2608ClockValue, (int)YM2610ClockValue, (int)YM2151ClockValue);
            mm.MSTART(0);

            return(true);
        }
コード例 #21
0
ファイル: mucomMub.cs プロジェクト: knight-ryu12/mml2vgm
 public override bool init(outDatum[] vgmBuf, ChipRegister chipRegister, EnmChip[] useChip, uint latency, uint waitTime, long jumpPointClock)
 {
     throw new NotImplementedException();
 }
コード例 #22
0
ファイル: PMDManager.cs プロジェクト: hiroshica/mml2vgm_mase
        public void InitDriver(
            string fileName
            , Action <ChipDatum> oPNAWrite
            , Action <long, int> oPNAWaitSend
            , Func <ChipDatum, int> ppz8Write
            , Func <ChipDatum, int> ppsdrvWrite
            , Func <ChipDatum, int> p86Write
            , bool dummy_NotSoundBoard2 //参照しません
            , musicDriverInterface.MmlDatum[] mBuf
            , bool isLoadADPCM
            , bool loadADPCMOnly
            , ChipRegister chipRegister
            , bool isGIMICOPNA)
        {
            musicDriverInterface.Log.writeMethod = disp;
            musicDriverInterface.Log.off         = 0;
            setting           = Audio.setting;
            this.chipRegister = chipRegister;

            isNRM            = setting.pmdDotNET.soundBoard == 0;
            isSPB            = setting.pmdDotNET.soundBoard == 1;
            isVA             = false;
            usePPS           = setting.pmdDotNET.usePPSDRV;
            usePPZ           = setting.pmdDotNET.usePPZ8;
            this.isGIMICOPNA = isGIMICOPNA;

            int jumpIndex = -1;

            if (compiler != null)
            {
                CompilerInfo ci = compiler.GetCompilerInfo();
                if (ci.jumpClock != -1)
                {
                    jumpIndex = ci.jumpClock;
                }
            }

            object[] addtionalPMDDotNETOption = new object[] {
                isLoadADPCM,              //bool
                loadADPCMOnly,            //bool
                setting.pmdDotNET.isAuto, //bool isAUTO;
                isVA,                     //bool
                isNRM,                    //bool
                usePPS,                   //bool
                usePPZ,                   //bool
                isSPB,                    //bool
                envPmd,                   //string[] 環境変数PMD
                envPmdOpt,                //string[] 環境変数PMDOpt
                fileName,                 //string srcFile;
                "",                       //string PPCFileHeader無視されます(設定不要)
                (Func <string, Stream>)appendFileReaderCallback,
                jumpIndex
            };

            string[]          addtionalPMDOption = GetPMDOption();
            List <ChipAction> lca = new List <ChipAction>();
            PMDChipAction     ca  = new PMDChipAction(oPNAWrite, oPNAWaitSend);

            lca.Add(ca);

            driver.Init(
                lca
                //fileName
                //, oPNAWrite
                //, oPNAWaitSend
                , mBuf
                , null                   //ここのコールバックは未使用
                , new object[] {
                addtionalPMDDotNETOption //PMDDotNET option
                , addtionalPMDOption     // PMD option
                , ppz8Write
                , ppsdrvWrite
                , p86Write
            });

            //AUTO指定の場合に構成が変わるので、構成情報を受け取ってから音量設定を行う
            isNRM  = (bool)addtionalPMDDotNETOption[4]; //4 = isNrm
            isSPB  = (bool)addtionalPMDDotNETOption[7]; //7 = isSPB
            isVA   = (bool)addtionalPMDDotNETOption[3]; //3 = isVA
            usePPS = (bool)addtionalPMDDotNETOption[5]; //5 = usePPS
            usePPZ = (bool)addtionalPMDDotNETOption[6]; //6 = usePPZ
            string[] pmdOptionVol = SetVolume();

            ////ユーザーがコマンドラインでDオプションを指定していない場合はpmdVolを適用させる
            //if (!pmdvolFound && pmdOptionVol != null && pmdOptionVol.Length > 0)
            //{
            //    ((PMDDotNET.Driver)driver).resetOption(pmdOptionVol);//
            //}
        }
コード例 #23
0
ファイル: baseDriver.cs プロジェクト: tenchoTCS/MDPlayer
 public abstract bool init(byte[] vgmBuf, ChipRegister chipRegister, EnmChip[] useChip, uint latency, uint waitTime);
コード例 #24
0
ファイル: mucomMub.cs プロジェクト: knight-ryu12/mml2vgm
        public bool init(musicDriverInterface.MmlDatum[] mubBuf, string workPath, mucomManager mucomManager, ChipRegister chipRegister
                         , EnmChip[] useChip
                         , uint latency
                         , uint waitTime
                         , string fn
                         )
        {
            if (mucomManager == null)
            {
                return(false);
            }

            this.vgmBuf       = null;
            this.mubBuf       = mubBuf;
            this.chipRegister = chipRegister;
            this.useChip      = useChip;
            this.latency      = latency;
            this.waitTime     = waitTime;
            this.mm           = mucomManager;
            chipYM2608        = chipRegister.YM2608[0];
            filename          = fn;

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

            initPhase = true;
            pd        = new List <SoundManager.PackData>();

            //Driverの初期化
            mm.InitDriver(System.IO.Path.Combine(workPath, "dummy"), OPNAInitialWrite, OPNAWaitSend, false, mubBuf, true, false);
            mm.StartRendering((int)Common.SampleRate, (int)YM2608ClockValue);
            mm.MSTART(0);

            return(true);
        }
コード例 #25
0
ファイル: baseDriver.cs プロジェクト: hiroshica/MDPlayer
 public abstract bool init(byte[] vgmBuf, ChipRegister chipRegister, enmModel model, enmUseChip[] useChip, uint latency, uint waitTime);
コード例 #26
0
ファイル: pmdM.cs プロジェクト: hiroshica/mml2vgm_mase
 public override bool init(outDatum[] vgmBuf, ChipRegister chipRegister, EnmChip[] useChip, uint latency, uint waitTime, long jumpPointClock)
 {
     return(true);
 }
コード例 #27
0
ファイル: pmdM.cs プロジェクト: hiroshica/mml2vgm_mase
        public bool init(MmlDatum[] mBuf
                         , string mWorkPath
                         , PMDManager pmdManager
                         , ChipRegister chipRegister
                         , EnmChip[] enmChips
                         , uint v1, uint v2
                         , string mFileName
                         , bool isGIMICOPNA)
        {
            if (pmdManager == null)
            {
                return(false);
            }

            this.vgmBuf       = null;
            this.mBuf         = mBuf;
            this.chipRegister = chipRegister;
            //this.useChip = useChip;
            //this.latency = latency;
            //this.waitTime = waitTime;
            this.pm    = pmdManager;
            chipYM2608 = chipRegister.YM2608[0];
            chipPPZ8   = chipRegister.PPZ8[0];
            chipPPSDRV = chipRegister.PPSDRV[0];
            chipP86    = chipRegister.P86[0];
            filename   = mFileName;

            Counter             = 0;
            TotalCounter        = 0;
            LoopCounter         = 0;
            vgmCurLoop          = 0;
            Stopped             = false;
            vgmFrameCounter     = -latency - waitTime;
            vgmSpeed            = 1;
            vgmSpeedCounter     = 0;
            YM2608_FMVolume     = 0;
            YM2608_SSGVolume    = 0;
            YM2608_RhythmVolume = 0;
            YM2608_AdpcmVolume  = 0;
            GIMIC_SSGVolume     = 0;

            initPhase = true;
            pd        = new List <SoundManager.PackData>();
            psd       = new List <SoundManager.PackData>();
            pzd       = new List <SoundManager.PackData>();
            p8d       = new List <SoundManager.PackData>();

            //Driverの初期化
            pm.InitDriver(
                System.IO.Path.Combine(mWorkPath, "dummy")
                , OPNAInitialWrite
                , OPNAWaitSend
                , PPZ8Write
                , PPSDRVWrite
                , P86Write
                , false
                , mBuf
                , true
                , false
                , chipRegister
                , isGIMICOPNA
                );

            YM2608_FMVolume     = pm.YM2608_FMVolume;
            YM2608_SSGVolume    = pm.YM2608_SSGVolume;
            YM2608_RhythmVolume = pm.YM2608_RhythmVolume;
            YM2608_AdpcmVolume  = pm.YM2608_AdpcmVolume;
            GIMIC_SSGVolume     = pm.GIMIC_SSGVolume;

            if (!Audio.setting.pmdDotNET.isAuto && Audio.setting.pmdDotNET.setManualVolume)
            {
                YM2608_FMVolume     = Audio.setting.pmdDotNET.volumeFM;
                YM2608_SSGVolume    = Audio.setting.pmdDotNET.volumeSSG;
                YM2608_RhythmVolume = Audio.setting.pmdDotNET.volumeRhythm;
                YM2608_AdpcmVolume  = Audio.setting.pmdDotNET.volumeAdpcm;
                GIMIC_SSGVolume     = Audio.setting.pmdDotNET.volumeGIMICSSG;
            }


            pm.StartRendering((int)Common.SampleRate, (int)YM2608ClockValue);
            pm.MSTART(0);

            return(true);
        }
コード例 #28
0
 public abstract bool init(outDatum[] vgmBuf, ChipRegister chipRegister, EnmChip[] useChip, uint latency, uint waitTime, long jumpPointClock);
コード例 #29
0
        public ZgmChip Create(uint chipIdentNo, ChipRegister chipRegister, Setting setting, outDatum[] vgmBuf)
        {
            switch (chipIdentNo)
            {
            case 0x0000_000C: return(new SN76489(chipRegister, setting, vgmBuf));

            case 0x0000_0010: return(new YM2413(chipRegister, setting, vgmBuf));

            case 0x0000_002c: return(new YM2612(chipRegister, setting, vgmBuf));

            case 0x0000_0030: return(new YM2151(chipRegister, setting, vgmBuf));

            case 0x0000_0038: return(new SEGAPCM(chipRegister, setting, vgmBuf));

            case 0x0000_0040: return(null);   // RF5C68

            case 0x0000_0044: return(new YM2203(chipRegister, setting, vgmBuf));

            case 0x0000_0048: return(new YM2608(chipRegister, setting, vgmBuf));

            case 0x0000_004C: return(new YM2610(chipRegister, setting, vgmBuf));

            case 0x0000_0050: return(null);   // YM3812

            case 0x0000_0054: return(null);   // YM3526

            case 0x0000_0058: return(null);   // Y8950

            case 0x0000_005C: return(null);   // YMF262

            case 0x0000_0060: return(null);   // YMF278B

            case 0x0000_0064: return(null);   // YMF271

            case 0x0000_0068: return(null);   // YMZ280B

            case 0x0000_006C: return(new RF5C164(chipRegister, setting, vgmBuf));

            case 0x0000_0070: return(null);   // PWM

            case 0x0000_0074: return(null);   // AY8910

            case 0x0000_0080: return(null);   // GameBoy DMG

            case 0x0000_0084: return(null);   // NES APU

            case 0x0000_0088: return(null);   // MultiPCM

            case 0x0000_008C: return(null);   // uPD7759

            case 0x0000_0090: return(null);   // OKIM6258

            case 0x0000_0098: return(null);   // OKIM6295

            case 0x0000_009C: return(new K051649(chipRegister, setting, vgmBuf));

            case 0x0000_00A0: return(null);   // K054539

            case 0x0000_00A4: return(new HuC6280(chipRegister, setting, vgmBuf));

            case 0x0000_00A8: return(new C140(chipRegister, setting, vgmBuf));

            case 0x0000_00AC: return(new K053260(chipRegister, setting, vgmBuf));

            case 0x0000_00B0: return(null);   // Pokey

            case 0x0000_00B4: return(new QSound(chipRegister, setting, vgmBuf));

            case 0x0000_00B8: return(null);   // SCSP

            case 0x0000_00C0: return(null);   // WonderSwan

            case 0x0000_00C4: return(null);   // Virtual Boy VSU

            case 0x0000_00C8: return(null);   // SAA1099

            case 0x0000_00CC: return(null);   // ES5503

            case 0x0000_00D0: return(null);   // ES5505/ES5506

            case 0x0000_00D8: return(null);   // X1-010

            case 0x0000_00DC: return(null);   // C352

            case 0x0000_00E0: return(null);   // GA20

            case 0x0001_0000: return(new Conductor(chipRegister, setting, vgmBuf));

            case 0x0002_0001: return(new YM2609(chipRegister, setting, vgmBuf));

            case 0x0003_0000: return(null);   // XG MU50

            case 0x0003_0001: return(null);   // XG MU100

            case 0x0003_0002: return(null);   // XG MU128

            case 0x0003_0003: return(null);   // XG MU1000

            case 0x0003_0004: return(null);   // XG MU2000

            case 0x0003_0005: return(null);   // XG MU1000EX

            case 0x0003_0006: return(null);   // XG MU2000EX

            case 0x0004_0000: return(null);   // GS MT-32 LA

            case 0x0004_0001: return(null);   // GS CM-64 LA

            case 0x0004_0002: return(null);   // GS SC-55

            case 0x0004_0003: return(null);   // GS SC-55mkII

            case 0x0004_0004: return(null);   // GS SC-88

            case 0x0004_0005: return(null);   // GS SC-88Pro

            case 0x0004_0006: return(null);   // GS SC-8820

            case 0x0004_0007: return(null);   // GS SC-8850

            case 0x0004_0008: return(null);   // GS SD-90

            case 0x0004_0009: return(null);   // GS Integra-7

            case 0x0005_0000: return(new MidiGM(chipRegister, setting, vgmBuf));

            case 0x0006_0000: return(null);   // CSTi General

            case 0x0007_0000: return(null);   // Wave General

            default: throw new ArgumentException();
            }
        }