Beispiel #1
0
        public RSoundChip SearchOPNA()
        {
            if (nScci != null)
            {
                int iCount = nScci.NSoundInterfaceManager_.getInterfaceCount();
                for (int i = 0; i < iCount; i++)
                {
                    NSoundInterface      iIntfc = nScci.NSoundInterfaceManager_.getInterface(i);
                    NSCCI_INTERFACE_INFO iInfo  = nScci.NSoundInterfaceManager_.getInterfaceInfo(i);
                    int sCount = iIntfc.getSoundChipCount();
                    for (int s = 0; s < sCount; s++)
                    {
                        NSoundChip sc = iIntfc.getSoundChip(s);
                        int        t  = sc.getSoundChipType();
                        if (t != 1)
                        {
                            continue;
                        }

                        string         ChipName      = sc.getSoundChipInfo().cSoundChipName;
                        string         InterfaceName = iInfo.cInterfaceName;
                        RScciSoundChip rsc           = new RScciSoundChip(0, i, s);
                        rsc.scci = nScci;

                        return(rsc);
                    }
                }
            }

            if (nc86ctl != null)
            {
                int iCount = nc86ctl.getNumberOfChip();
                for (int i = 0; i < iCount; i++)
                {
                    NIRealChip rc  = nc86ctl.getChipInterface(i);
                    NIGimic2   gm  = rc.QueryInterface();
                    ChipType   cct = gm.getModuleType();

                    if (cct != ChipType.CHIP_YM2608 && cct != ChipType.CHIP_YMF288)
                    {
                        continue;
                    }

                    int    o    = -1;
                    string seri = gm.getModuleInfo().Serial;
                    if (!int.TryParse(seri, out o))
                    {
                        o = -1;
                    }
                    string ChipName      = gm.getModuleInfo().Devname;
                    string InterfaceName = gm.getMBInfo().Devname;

                    RC86ctlSoundChip rsc = new RC86ctlSoundChip(-1, i, o);
                    rsc.c86ctl = nc86ctl;
                    return(rsc);
                }
            }

            return(null);
        }
Beispiel #2
0
        public List <Setting.ChipType> GetRealChipList()
        {
            List <Setting.ChipType> ret = new List <Setting.ChipType>();

            if (nScci != null)
            {
                int iCount = nScci.NSoundInterfaceManager_.getInterfaceCount();
                for (int i = 0; i < iCount; i++)
                {
                    NSoundInterface      iIntfc = nScci.NSoundInterfaceManager_.getInterface(i);
                    NSCCI_INTERFACE_INFO iInfo  = nScci.NSoundInterfaceManager_.getInterfaceInfo(i);
                    int sCount = iIntfc.getSoundChipCount();
                    for (int s = 0; s < sCount; s++)
                    {
                        NSoundChip       sc = iIntfc.getSoundChip(s);
                        int              t  = sc.getSoundChipType();
                        Setting.ChipType ct = new Setting.ChipType();
                        ct.SoundLocation = 0;
                        ct.BusID         = i;
                        ct.SoundChip     = s;
                        ct.ChipName      = sc.getSoundChipInfo().cSoundChipName;
                        ct.Type          = t;
                        ct.InterfaceName = iInfo.cInterfaceName;
                        ret.Add(ct);
                    }
                }
            }

            if (nc86ctl != null)
            {
                int iCount = nc86ctl.getNumberOfChip();
                for (int i = 0; i < iCount; i++)
                {
                    NIRealChip       rc  = nc86ctl.getChipInterface(i);
                    NIGimic2         gm  = rc.QueryInterface();
                    ChipType         cct = gm.getModuleType();
                    Setting.ChipType ct  = null;
                    int o = -1;
                    ct = new Setting.ChipType();
                    ct.SoundLocation = -1;
                    ct.BusID         = i;
                    string seri = gm.getModuleInfo().Serial;
                    if (!int.TryParse(seri, out o))
                    {
                        o = -1;
                    }
                    ct.SoundChip     = o;
                    ct.ChipName      = gm.getModuleInfo().Devname;
                    ct.InterfaceName = gm.getMBInfo().Devname;
                    ct.Type          = (int)cct;
                    ret.Add(ct);
                }
            }

            return(ret);
        }
Beispiel #3
0
        /// <summary>
        /// マスタークロックの設定
        /// </summary>
        /// <param name="mClock">設定したい値</param>
        /// <returns>実際設定された値</returns>
        override public uint SetMasterClock(uint mClock)
        {
            NIGimic2 gm       = realChip.QueryInterface();
            uint     nowClock = gm.getPLLClock();

            if (nowClock != mClock)
            {
                gm.setPLLClock(mClock);
            }

            return(gm.getPLLClock());
        }
Beispiel #4
0
        override public void init()
        {
            NIRealChip rc = c86ctl.getChipInterface(BusID);

            rc.reset();
            realChip = rc;
            NIGimic2 gm = rc.QueryInterface();

            dClock   = gm.getPLLClock();
            chiptype = gm.getModuleType();
            if (chiptype == ChipType.CHIP_YM2608)
            {
                //setRegister(0x2d, 00);
                //setRegister(0x29, 82);
                //setRegister(0x07, 38);
            }
        }
Beispiel #5
0
        private static RSoundChip CheckDevice()
        {
            SChipType ct     = null;
            int       iCount = 0;

            switch (device)
            {
            case 1:    //GIMIC存在チェック
                nc86ctl = new Nc86ctl.Nc86ctl();
                nc86ctl.initialize();
                iCount = nc86ctl.getNumberOfChip();
                if (iCount == 0)
                {
                    nc86ctl.deinitialize();
                    nc86ctl = null;
                    Log.WriteLine(LogLevel.ERROR, "Not found G.I.M.I.C.");
                    device = 0;
                    break;
                }
                for (int i = 0; i < iCount; i++)
                {
                    NIRealChip rc  = nc86ctl.getChipInterface(i);
                    NIGimic2   gm  = rc.QueryInterface();
                    ChipType   cct = gm.getModuleType();
                    int        o   = -1;
                    if (cct == ChipType.CHIP_YM2608 || cct == ChipType.CHIP_YMF288 || cct == ChipType.CHIP_YM2203)
                    {
                        ct = new SChipType();
                        ct.SoundLocation = -1;
                        ct.BusID         = i;
                        string seri = gm.getModuleInfo().Serial;
                        if (!int.TryParse(seri, out o))
                        {
                            o  = -1;
                            ct = null;
                            continue;
                        }
                        ct.SoundChip     = o;
                        ct.ChipName      = gm.getModuleInfo().Devname;
                        ct.InterfaceName = gm.getMBInfo().Devname;
                        break;
                    }
                }
                RC86ctlSoundChip rsc = null;
                if (ct == null)
                {
                    nc86ctl.deinitialize();
                    nc86ctl = null;
                    Log.WriteLine(LogLevel.ERROR, "Not found G.I.M.I.C.(OPNA module)");
                    device = 0;
                }
                else
                {
                    rsc        = new RC86ctlSoundChip(-1, ct.BusID, ct.SoundChip);
                    rsc.c86ctl = nc86ctl;
                    rsc.init();

                    rsc.SetMasterClock(7987200); //SoundBoardII
                    rsc.setSSGVolume(63);        //PC-8801
                }
                return(rsc);

            case 2:    //SCCI存在チェック
                nScci  = new NScci.NScci();
                iCount = nScci.NSoundInterfaceManager_.getInterfaceCount();
                if (iCount == 0)
                {
                    nScci.Dispose();
                    nScci = null;
                    Log.WriteLine(LogLevel.ERROR, "Not found SCCI.");
                    device = 0;
                    break;
                }
                for (int i = 0; i < iCount; i++)
                {
                    NSoundInterface      iIntfc = nScci.NSoundInterfaceManager_.getInterface(i);
                    NSCCI_INTERFACE_INFO iInfo  = nScci.NSoundInterfaceManager_.getInterfaceInfo(i);
                    int sCount = iIntfc.getSoundChipCount();
                    for (int s = 0; s < sCount; s++)
                    {
                        NSoundChip sc = iIntfc.getSoundChip(s);
                        int        t  = sc.getSoundChipType();
                        if (t == 1)
                        {
                            ct = new SChipType();
                            ct.SoundLocation = 0;
                            ct.BusID         = i;
                            ct.SoundChip     = s;
                            ct.ChipName      = sc.getSoundChipInfo().cSoundChipName;
                            ct.InterfaceName = iInfo.cInterfaceName;
                            goto scciExit;
                        }
                    }
                }
                scciExit :;
                RScciSoundChip rssc = null;
                if (ct == null)
                {
                    nScci.Dispose();
                    nScci = null;
                    Log.WriteLine(LogLevel.ERROR, "Not found SCCI(OPNA module).");
                    device = 0;
                }
                else
                {
                    rssc      = new RScciSoundChip(0, ct.BusID, ct.SoundChip);
                    rssc.scci = nScci;
                    rssc.init();
                }
                return(rssc);
            }

            return(null);
        }
Beispiel #6
0
        override public void setSSGVolume(byte vol)
        {
            NIGimic2 gm = realChip.QueryInterface();

            gm.setSSGVolume(vol);
        }
Beispiel #7
0
        public List <Setting.ChipType> GetRealChipList(EnmRealChipType realChipType)
        {
            List <Setting.ChipType> ret = new List <Setting.ChipType>();

            if (nScci != null)
            {
                int iCount = nScci.NSoundInterfaceManager_.getInterfaceCount();
                for (int i = 0; i < iCount; i++)
                {
                    NSoundInterface      iIntfc = nScci.NSoundInterfaceManager_.getInterface(i);
                    NSCCI_INTERFACE_INFO iInfo  = nScci.NSoundInterfaceManager_.getInterfaceInfo(i);
                    int sCount = iIntfc.getSoundChipCount();
                    for (int s = 0; s < sCount; s++)
                    {
                        NSoundChip sc = iIntfc.getSoundChip(s);
                        int        t  = sc.getSoundChipType();
                        if (t == (int)realChipType)
                        {
                            Setting.ChipType ct = new Setting.ChipType();
                            ct.SoundLocation = 0;
                            ct.BusID         = i;
                            ct.SoundChip     = s;
                            ct.ChipName      = sc.getSoundChipInfo().cSoundChipName;
                            ct.InterfaceName = iInfo.cInterfaceName;
                            ret.Add(ct);
                        }
                        else
                        {
                            //互換指定をチェック
                            NSCCI_SOUND_CHIP_INFO chipInfo = sc.getSoundChipInfo();
                            for (int n = 0; n < chipInfo.iCompatibleSoundChip.Length; n++)
                            {
                                if ((int)realChipType != chipInfo.iCompatibleSoundChip[n])
                                {
                                    continue;
                                }

                                Setting.ChipType ct = new Setting.ChipType();
                                ct.SoundLocation = 0;
                                ct.BusID         = i;
                                ct.SoundChip     = s;
                                ct.ChipName      = sc.getSoundChipInfo().cSoundChipName;
                                ct.InterfaceName = iInfo.cInterfaceName;
                                ret.Add(ct);
                                break;
                            }
                        }
                    }
                }
            }

            if (nc86ctl != null)
            {
                int iCount = nc86ctl.getNumberOfChip();
                for (int i = 0; i < iCount; i++)
                {
                    NIRealChip       rc  = nc86ctl.getChipInterface(i);
                    NIGimic2         gm  = rc.QueryInterface();
                    ChipType         cct = gm.getModuleType();
                    Setting.ChipType ct  = null;
                    int o = -1;
                    switch (realChipType)
                    {
                    case EnmRealChipType.AY8910:
                        if (cct == ChipType.CHIP_UNKNOWN || cct == ChipType.CHIP_YM2608 || cct == ChipType.CHIP_YMF288 || cct == ChipType.CHIP_YM2203)
                        {
                            ct = new Setting.ChipType();
                            ct.SoundLocation = -1;
                            ct.BusID         = i;
                            string seri = gm.getModuleInfo().Serial;
                            if (!int.TryParse(seri, out o))
                            {
                                o = -1;
                            }
                            ct.SoundChip     = o;
                            ct.ChipName      = gm.getModuleInfo().Devname;
                            ct.InterfaceName = gm.getMBInfo().Devname;
                            ct.Type          = (int)cct;
                        }
                        break;

                    case EnmRealChipType.YM2203:
                    case EnmRealChipType.YM2608:
                        if (cct == ChipType.CHIP_YM2608 || cct == ChipType.CHIP_YMF288 || cct == ChipType.CHIP_YM2203)
                        {
                            ct = new Setting.ChipType();
                            ct.SoundLocation = -1;
                            ct.BusID         = i;
                            string seri = gm.getModuleInfo().Serial;
                            if (!int.TryParse(seri, out o))
                            {
                                o = -1;
                            }
                            ct.SoundChip     = o;
                            ct.ChipName      = gm.getModuleInfo().Devname;
                            ct.InterfaceName = gm.getMBInfo().Devname;
                            ct.Type          = (int)cct;
                        }
                        break;

                    case EnmRealChipType.YM2413:
                        if (cct == ChipType.CHIP_YM2413 || cct == ChipType.CHIP_UNKNOWN)
                        {
                            ct = new Setting.ChipType();
                            ct.SoundLocation = -1;
                            ct.BusID         = i;
                            string seri = gm.getModuleInfo().Serial;
                            if (!int.TryParse(seri, out o))
                            {
                                o = -1;
                            }
                            ct.SoundChip     = o;
                            ct.ChipName      = gm.getModuleInfo().Devname;
                            ct.InterfaceName = gm.getMBInfo().Devname;
                        }
                        break;

                    case EnmRealChipType.YM2610:
                        if (cct == ChipType.CHIP_YM2608 || cct == ChipType.CHIP_YMF288)
                        {
                            ct = new Setting.ChipType();
                            ct.SoundLocation = -1;
                            ct.BusID         = i;
                            string seri = gm.getModuleInfo().Serial;
                            if (!int.TryParse(seri, out o))
                            {
                                o = -1;
                            }
                            ct.SoundChip     = o;
                            ct.ChipName      = gm.getModuleInfo().Devname;
                            ct.InterfaceName = gm.getMBInfo().Devname;
                            ct.Type          = (int)cct;
                        }
                        break;

                    case EnmRealChipType.YM2151:
                        if (cct == ChipType.CHIP_YM2151)
                        {
                            ct = new Setting.ChipType();
                            ct.SoundLocation = -1;
                            ct.BusID         = i;
                            string seri = gm.getModuleInfo().Serial;
                            if (!int.TryParse(seri, out o))
                            {
                                o = -1;
                            }
                            ct.SoundChip     = o;
                            ct.ChipName      = gm.getModuleInfo().Devname;
                            ct.InterfaceName = gm.getMBInfo().Devname;
                            ct.Type          = (int)cct;
                        }
                        break;

                    case EnmRealChipType.YM3526:
                    case EnmRealChipType.YM3812:
                    case EnmRealChipType.YMF262:
                        if (cct == ChipType.CHIP_OPL3)
                        {
                            ct = new Setting.ChipType();
                            ct.SoundLocation = -1;
                            ct.BusID         = i;
                            string seri = gm.getModuleInfo().Serial;
                            if (!int.TryParse(seri, out o))
                            {
                                o = -1;
                            }
                            ct.SoundChip     = o;
                            ct.ChipName      = gm.getModuleInfo().Devname;
                            ct.InterfaceName = gm.getMBInfo().Devname;
                            ct.Type          = (int)cct;
                        }
                        break;
                    }

                    if (ct != null)
                    {
                        ret.Add(ct);
                    }
                }
            }

            return(ret);
        }
Beispiel #8
0
        public RSoundChip GetRealChip(Setting.ChipType chipType, int ind = 0)
        {
            if (nScci != null)
            {
                int iCount = nScci.NSoundInterfaceManager_.getInterfaceCount();
                for (int i = 0; i < iCount; i++)
                {
                    NSoundInterface      iIntfc = nScci.NSoundInterfaceManager_.getInterface(i);
                    NSCCI_INTERFACE_INFO iInfo  = nScci.NSoundInterfaceManager_.getInterfaceInfo(i);
                    int sCount = iIntfc.getSoundChipCount();
                    for (int s = 0; s < sCount; s++)
                    {
                        NSoundChip sc = iIntfc.getSoundChip(s);

                        switch (ind)
                        {
                        case 0:
                            if (0 == chipType.SoundLocation &&
                                i == chipType.BusID &&
                                s == chipType.SoundChip)
                            {
                                RScciSoundChip rsc = new RScciSoundChip(0, i, s, chipType.Type);
                                rsc.scci = nScci;
                                return(rsc);
                            }
                            break;

                        case 1:
                            if (0 == chipType.SoundLocation2A &&
                                i == chipType.BusID2A &&
                                s == chipType.SoundChip2A)
                            {
                                RScciSoundChip rsc = new RScciSoundChip(0, i, s, chipType.Type2A);
                                rsc.scci = nScci;
                                return(rsc);
                            }
                            break;

                        case 2:
                            if (0 == chipType.SoundLocation2B &&
                                i == chipType.BusID2B &&
                                s == chipType.SoundChip2B)
                            {
                                RScciSoundChip rsc = new RScciSoundChip(0, i, s, chipType.Type2B);
                                rsc.scci = nScci;
                                return(rsc);
                            }
                            break;
                        }
                    }
                }
            }

            if (nc86ctl != null)
            {
                int iCount = nc86ctl.getNumberOfChip();
                for (int i = 0; i < iCount; i++)
                {
                    NIRealChip rc   = nc86ctl.getChipInterface(i);
                    NIGimic2   gm   = rc.QueryInterface();
                    ChipType   cct  = gm.getModuleType();
                    int        o    = -1;
                    string     seri = gm.getModuleInfo().Serial;
                    if (!int.TryParse(seri, out o))
                    {
                        o = -1;
                    }

                    switch (ind)
                    {
                    case 0:
                        if (-1 == chipType.SoundLocation &&
                            i == chipType.BusID &&
                            o == chipType.SoundChip)
                        {
                            RC86ctlSoundChip rsc = new RC86ctlSoundChip(-1, i, o, chipType.Type);
                            rsc.c86ctl = nc86ctl;
                            return(rsc);
                        }
                        break;

                    case 1:
                        if (-1 == chipType.SoundLocation2A &&
                            i == chipType.BusID2A &&
                            o == chipType.SoundChip2A)
                        {
                            RC86ctlSoundChip rsc = new RC86ctlSoundChip(-1, i, o, chipType.Type2A);
                            rsc.c86ctl = nc86ctl;
                            return(rsc);
                        }
                        break;

                    case 2:
                        if (-1 == chipType.SoundLocation2B &&
                            i == chipType.BusID2B &&
                            o == chipType.SoundChip2B)
                        {
                            RC86ctlSoundChip rsc = new RC86ctlSoundChip(-1, i, o, chipType.Type2B);
                            rsc.c86ctl = nc86ctl;
                            return(rsc);
                        }
                        break;
                    }
                }
            }

            return(null);
        }
Beispiel #9
0
        public List <Setting.ChipType> GetRealChipList(EnmRealChipType realChipType)
        {
            List <Setting.ChipType> ret = new List <Setting.ChipType>();

            if (nScci != null)
            {
                int iCount = nScci.NSoundInterfaceManager_.getInterfaceCount();
                for (int i = 0; i < iCount; i++)
                {
                    NSoundInterface      iIntfc = nScci.NSoundInterfaceManager_.getInterface(i);
                    NSCCI_INTERFACE_INFO iInfo  = nScci.NSoundInterfaceManager_.getInterfaceInfo(i);
                    int sCount = iIntfc.getSoundChipCount();
                    for (int s = 0; s < sCount; s++)
                    {
                        NSoundChip sc = iIntfc.getSoundChip(s);
                        int        t  = sc.getSoundChipType();
                        if (t == (int)realChipType ||
                            (realChipType == EnmRealChipType.YM2203 && t == (int)EnmRealChipType.YM2608) ||
                            (realChipType == EnmRealChipType.YM2610 && t == (int)EnmRealChipType.YM2608) ||
                            (realChipType == EnmRealChipType.AY8910 && t == (int)EnmRealChipType.YM2203) ||
                            (realChipType == EnmRealChipType.AY8910 && t == (int)EnmRealChipType.YM2608) ||
                            (realChipType == EnmRealChipType.AY8910 && t == (int)EnmRealChipType.YM2610)
                            )
                        {
                            Setting.ChipType ct = new Setting.ChipType();
                            ct.SoundLocation = 0;
                            ct.BusID         = i;
                            ct.SoundChip     = s;
                            ct.ChipName      = sc.getSoundChipInfo().cSoundChipName;
                            ct.Type          = t;
                            ct.InterfaceName = iInfo.cInterfaceName;
                            ret.Add(ct);
                        }
                    }
                }
            }

            if (nc86ctl != null)
            {
                int iCount = nc86ctl.getNumberOfChip();
                for (int i = 0; i < iCount; i++)
                {
                    NIRealChip       rc  = nc86ctl.getChipInterface(i);
                    NIGimic2         gm  = rc.QueryInterface();
                    ChipType         cct = gm.getModuleType();
                    Setting.ChipType ct  = null;
                    int o = -1;
                    switch (realChipType)
                    {
                    case EnmRealChipType.AY8910:
                        if (cct == ChipType.CHIP_YM2608 || cct == ChipType.CHIP_YMF288 || cct == ChipType.CHIP_YM2203)
                        {
                            ct = new Setting.ChipType();
                            ct.SoundLocation = -1;
                            ct.BusID         = i;
                            string seri = gm.getModuleInfo().Serial;
                            if (!int.TryParse(seri, out o))
                            {
                                o = -1;
                            }
                            ct.SoundChip     = o;
                            ct.ChipName      = gm.getModuleInfo().Devname;
                            ct.InterfaceName = gm.getMBInfo().Devname;
                            ct.Type          = (int)cct;
                        }
                        break;

                    case EnmRealChipType.YM2203:
                    case EnmRealChipType.YM2608:
                        if (cct == ChipType.CHIP_YM2608 || cct == ChipType.CHIP_YMF288 || cct == ChipType.CHIP_YM2203)
                        {
                            ct = new Setting.ChipType();
                            ct.SoundLocation = -1;
                            ct.BusID         = i;
                            string seri = gm.getModuleInfo().Serial;
                            if (!int.TryParse(seri, out o))
                            {
                                o = -1;
                            }
                            ct.SoundChip     = o;
                            ct.ChipName      = gm.getModuleInfo().Devname;
                            ct.InterfaceName = gm.getMBInfo().Devname;
                            ct.Type          = (int)cct;
                        }
                        break;

                    case EnmRealChipType.YM2610:
                        if (cct == ChipType.CHIP_YM2608 || cct == ChipType.CHIP_YMF288)
                        {
                            ct = new Setting.ChipType();
                            ct.SoundLocation = -1;
                            ct.BusID         = i;
                            string seri = gm.getModuleInfo().Serial;
                            if (!int.TryParse(seri, out o))
                            {
                                o = -1;
                            }
                            ct.SoundChip     = o;
                            ct.ChipName      = gm.getModuleInfo().Devname;
                            ct.InterfaceName = gm.getMBInfo().Devname;
                            ct.Type          = (int)cct;
                        }
                        break;

                    case EnmRealChipType.YM2151:
                        if (cct == ChipType.CHIP_YM2151)
                        {
                            ct = new Setting.ChipType();
                            ct.SoundLocation = -1;
                            ct.BusID         = i;
                            string seri = gm.getModuleInfo().Serial;
                            if (!int.TryParse(seri, out o))
                            {
                                o = -1;
                            }
                            ct.SoundChip     = o;
                            ct.ChipName      = gm.getModuleInfo().Devname;
                            ct.InterfaceName = gm.getMBInfo().Devname;
                            ct.Type          = (int)cct;
                        }
                        break;
                    }

                    if (ct != null)
                    {
                        ret.Add(ct);
                    }
                }
            }

            return(ret);
        }
Beispiel #10
0
        private void Form1_Shown(object sender, EventArgs e)
        {
            for (int i = 0; i < 1; i++)
            {
                try
                {
                    MsgDisp("SCCI:処理開始");

                    MsgDisp("SCCI:コンストラクタ開始");
                    scci = new NScci.NScci();
                    MsgDisp("SCCI:コンストラクタ終了");

                    MsgDisp("SCCI:getInterfaceCount開始");
                    int n = scci.NSoundInterfaceManager_.getInterfaceCount();
                    MsgDisp("SCCI:getInterfaceCount完了");
                    if (n == 0)
                    {
                        MsgDisp("SCCI:SCCI見つからず");
                        scci.Dispose();
                        scci = null;
                    }
                    else
                    {
                        for (int j = 0; j < n; j++)
                        {
                            MsgDisp(string.Format("SCCI:====================== Interface {0}", j));
                            MsgDisp("SCCI:getInterface 開始");
                            NSoundInterface nsif = scci.NSoundInterfaceManager_.getInterface(j);
                            MsgDisp("SCCI:getInterface 完了");

                            MsgDisp("SCCI:getSoundChipCount 開始");
                            int c = nsif.getSoundChipCount();
                            MsgDisp("SCCI:getSoundChipCount 完了");

                            for (int k = 0; k < c; k++)
                            {
                                MsgDisp("SCCI:------------------- Chip Information");

                                MsgDisp("SCCI:getSoundChip 開始");
                                NSoundChip nsc = nsif.getSoundChip(k);
                                MsgDisp("SCCI:getSoundChip 完了");

                                MsgDisp("SCCI:getSoundChipInfo 開始");
                                NSCCI_SOUND_CHIP_INFO nssci = nsc.getSoundChipInfo();
                                MsgDisp("SCCI:getSoundChipInfo 完了");

                                MsgDisp(string.Format("SCCI:cSoundChipName {0}", nssci.cSoundChipName));
                                MsgDisp(string.Format("SCCI:dClock {0}", nssci.dClock));
                                MsgDisp(string.Format("SCCI:iSoundChip {0}", nssci.iSoundChip));
                                MsgDisp(string.Format("SCCI:bIsUsed {0}", nssci.bIsUsed));
                            }
                        }

                        if (scci != null)
                        {
                            scci.Dispose();
                            scci = null;
                        }
                    }
                }
                catch (Exception escci)
                {
                    MsgDisp("SCCI:Exception発生");
                    MsgDisp(string.Format("SCCI:Message:{0}", escci.Message));
                    MsgDisp(string.Format("SCCI:StackTrace:{0}", escci.StackTrace));
                }

                try
                {
                    MsgDisp("c86ctl:処理開始");

                    MsgDisp("c86ctl:Nc86ctl 開始");
                    c86 = new Nc86ctl.Nc86ctl();
                    MsgDisp("c86ctl:Nc86ctl 完了");

                    MsgDisp("c86ctl:initialize 開始");
                    c86.initialize();
                    MsgDisp("c86ctl:initialize 完了");

                    MsgDisp("c86ctl:getNumberOfChip 開始");
                    int nc = c86.getNumberOfChip();
                    MsgDisp("c86ctl:getNumberOfChip 完了");
                    if (nc == 0)
                    {
                        MsgDisp("c86ctl:deinitialize 開始");
                        c86.deinitialize();
                        MsgDisp("c86ctl:deinitialize 完了");
                        MsgDisp("c86ctl:c86ctl見つからず");
                        c86.Dispose();
                        c86 = null;
                    }
                    else
                    {
                        MsgDisp("c86ctl:getChipInterface 開始");
                        NIRealChip nirc = c86.getChipInterface(0);
                        MsgDisp("c86ctl:getChipInterface 完了");

                        MsgDisp("c86ctl:reset 開始");
                        nirc.reset();
                        MsgDisp("c86ctl:reset 完了");

                        MsgDisp("c86ctl:QueryInterface 開始");
                        NIGimic2 nig = nirc.QueryInterface();
                        MsgDisp("c86ctl:QueryInterface 完了");

                        UInt16 aa = 0;
                        UInt16 bb = 0;
                        UInt16 cc = 0;
                        UInt16 dd = 0;
                        MsgDisp("c86ctl:getFWVer 開始");
                        nig.getFWVer(ref aa, ref bb, ref cc, ref dd);
                        MsgDisp(string.Format("c86ctl:getFWVer 完了({0}.{1}.{2}.{3})", aa, bb, cc, dd));

                        MsgDisp("c86ctl:getMBInfo 開始");
                        Devinfo dv = nig.getMBInfo();
                        MsgDisp(string.Format("c86ctl:getMBInfo 完了 {0}", dv.Devname));

                        MsgDisp("c86ctl:getModuleType 開始");
                        ChipType tp = nig.getModuleType();
                        MsgDisp(string.Format("c86ctl:getModuleType 完了 {0}", tp));

                        MsgDisp("c86ctl:getModuleInfo 開始");
                        Devinfo di = nig.getModuleInfo();
                        MsgDisp(string.Format("c86ctl:getModuleInfo 完了 {0}", di.Devname));

                        MsgDisp("c86ctl:getSSGVolume 開始");
                        byte vol = nig.getSSGVolume();
                        MsgDisp(string.Format("c86ctl:getSSGVolume 完了 {0}", vol));

                        MsgDisp("c86ctl:getPLLClock 開始");
                        uint clock = nig.getPLLClock();
                        MsgDisp(string.Format("c86ctl:getPLLClock 完了 {0}", clock));
                    }
                }
                catch (Exception ec86)
                {
                    MsgDisp("c86ctl:Exception発生");
                    MsgDisp(string.Format("c86ctl:Message:{0}", ec86.Message));
                    MsgDisp(string.Format("c86ctl:StackTrace:{0}", ec86.StackTrace));
                }
            }
        }