예제 #1
0
        public void screenDrawParams()
        {
            bool SN76489Type = (chipID == 0) ? parent.setting.SN76489Type.UseScci : parent.setting.SN76489SType.UseScci;
            int  tp          = SN76489Type ? 1 : 0;

            MDChipParams.Channel osc;
            MDChipParams.Channel nsc;

            for (int c = 0; c < 3; c++)
            {
                osc = oldParam.channels[c];
                nsc = newParam.channels[c];

                DrawBuff.Volume(frameBuffer, 256, 8 + c * 8, 1, ref osc.volumeL, nsc.volumeL, tp);
                DrawBuff.Volume(frameBuffer, 256, 8 + c * 8, 2, ref osc.volumeR, nsc.volumeR, tp);
                DrawBuff.KeyBoard(frameBuffer, c, ref osc.note, nsc.note, tp);
                DrawBuff.ChSN76489(frameBuffer, c, ref osc.mask, nsc.mask, tp);
                DrawBuff.Pan(frameBuffer, 24, 8 + c * 8, ref osc.pan, nsc.pan, ref osc.pantp, tp);
            }

            osc = oldParam.channels[3];
            nsc = newParam.channels[3];
            DrawBuff.Volume(frameBuffer, 256, 8 + 3 * 8, 1, ref osc.volumeL, nsc.volumeL, tp);
            DrawBuff.Volume(frameBuffer, 256, 8 + 3 * 8, 2, ref osc.volumeR, nsc.volumeR, tp);
            DrawBuff.ChSN76489(frameBuffer, 3, ref osc.mask, nsc.mask, tp);
            DrawBuff.ChSN76489Noise(frameBuffer, ref osc, nsc, tp);
            DrawBuff.Pan(frameBuffer, 24, 8 + 3 * 8, ref osc.pan, nsc.pan, ref osc.pantp, tp);
            if (osc.freq != nsc.freq)
            {
                DrawBuff.drawFont4(frameBuffer, 172, 32, 0, nsc.freq.ToString("0000"));
                osc.freq = nsc.freq;
            }
        }
예제 #2
0
        public void screenDrawParams()
        {
            MDChipParams.Channel oyc;
            MDChipParams.Channel nyc;

            for (int ch = 0; ch < 32; ch++)
            {
                oyc = oldParam.channels[ch];
                nyc = newParam.channels[ch];

                DrawBuff.VolumeXY(frameBuffer, 105, ch * 2 + 2, 1, ref oyc.volumeL, nyc.volumeL, 0);   //Front
                DrawBuff.VolumeXY(frameBuffer, 105, ch * 2 + 3, 1, ref oyc.volumeR, nyc.volumeR, 0);   //Front
                DrawBuff.VolumeXY(frameBuffer, 115, ch * 2 + 2, 1, ref oyc.volumeRL, nyc.volumeRL, 0); //Rear
                DrawBuff.VolumeXY(frameBuffer, 115, ch * 2 + 3, 1, ref oyc.volumeRR, nyc.volumeRR, 0); //Rear
                for (int b = 0; b < 16; b++)
                {
                    DrawBuff.drawNESSw(frameBuffer, 64 * 4 + b * 4, ch * 8 + 8
                                       , ref oldParam.channels[ch].bit[b], newParam.channels[ch].bit[b]);
                }
                DrawBuff.font4Hex16Bit(frameBuffer, 4 * 81, ch * 8 + 8, 0, ref oyc.freq, nyc.freq);
                DrawBuff.font4Hex16Bit(frameBuffer, 4 * 86, ch * 8 + 8, 0, ref oyc.bank, nyc.bank);
                DrawBuff.font4Hex16Bit(frameBuffer, 4 * 91, ch * 8 + 8, 0, ref oyc.sadr, nyc.sadr);
                DrawBuff.font4Hex16Bit(frameBuffer, 4 * 96, ch * 8 + 8, 0, ref oyc.eadr, nyc.eadr);
                DrawBuff.font4Hex16Bit(frameBuffer, 4 * 101, ch * 8 + 8, 0, ref oyc.ladr, nyc.ladr);
                DrawBuff.KeyBoardToC352(frameBuffer, ch, ref oyc.note, nyc.note, 0);
                DrawBuff.PanType2(frameBuffer, ch, ref oyc.pan, nyc.pan, 0);
                DrawBuff.ChC352(frameBuffer, ch, ref oyc.mask, nyc.mask, 0);
            }
        }
예제 #3
0
        public void screenDrawParams()
        {
            for (int c = 0; c < 6; c++)
            {
                MDChipParams.Channel oyc = oldParam.channels[c];
                MDChipParams.Channel nyc = newParam.channels[c];

                bool YM2612type = parent.setting.YM2612Type.UseScci;
                int  tp         = YM2612type ? 1 : 0;

                DrawBuff.Inst(frameBuffer, 1, 6 + (c > 2 ? 3 : 0), c, oyc.inst, nyc.inst, oyc.typ, nyc.typ);

                int[] onl = oldParam.noteLog[c];
                int[] nnl = newParam.noteLog[c];

                for (int n = 0; n < 10; n++)
                {
                    DrawBuff.NoteLogYM2612MIDI(frameBuffer, (c % 3) * 13 * 8 + 2 * 8 + n * 8, (c / 3) * 18 * 4 + 24 * 4, ref onl[n], nnl[n]);
                }

                DrawBuff.UseChannelYM2612MIDI(frameBuffer, (c % 3) * 13 * 8, (c / 3) * 9 * 8 + 4 * 8, ref oldParam.useChannel[c], newParam.useChannel[c]);
            }

            DrawBuff.MONOPOLYYM2612MIDI(frameBuffer, ref oldParam.IsMONO, newParam.IsMONO);

            DrawBuff.LfoSw(frameBuffer, 16, 176, ref oldParam.lfoSw, newParam.lfoSw);
            DrawBuff.LfoFrq(frameBuffer, 64, 176, ref oldParam.lfoFrq, newParam.lfoFrq);
            DrawBuff.ToneFormat(frameBuffer, 16, 6, ref oldParam.useFormat, newParam.useFormat);
        }
예제 #4
0
 private void drawGVolAndFader(int num, MDChipParams.Mixer.VolumeInfo oVI, MDChipParams.Mixer.VolumeInfo nVI)
 {
     DrawBuff.drawGFader(
         frameBuffer
         , 5 + (num % 16) * 20
         , 16 + (num / 16) * 8 * 9
         , num == 0 ? 0 : 1
         , ref oVI.Volume
         , nVI.Volume);
     nVI.VisVol2Cnt--;
     if (nVI.VisVol2Cnt == 0)
     {
         nVI.VisVol2Cnt = 1;
         if (nVI.VisVolume2 > 0)
         {
             nVI.VisVolume2--;
         }
     }
     DrawBuff.MixerVolume(
         frameBuffer
         , 2 + (num % 16) * 20
         , 10 + (num / 16) * 8 * 9
         , ref oVI.VisVolume1
         , nVI.VisVolume1
         , ref oVI.VisVolume2
         , nVI.VisVolume2);
 }
예제 #5
0
        public void screenDrawParams()
        {
            int tp = ((chipID == 0) ? parent.setting.C140Type.UseScci : parent.setting.C140SType.UseScci) ? 1 : 0;

            for (int c = 0; c < 24; c++)
            {
                MDChipParams.Channel orc = oldParam.channels[c];
                MDChipParams.Channel nrc = newParam.channels[c];

                DrawBuff.VolumeToC140(frameBuffer, c, 1, ref orc.volumeL, nrc.volumeL, tp);
                DrawBuff.VolumeToC140(frameBuffer, c, 2, ref orc.volumeR, nrc.volumeR, tp);
                DrawBuff.KeyBoardToC140(frameBuffer, c, ref orc.note, nrc.note, tp);
                DrawBuff.PanType2(frameBuffer, c, ref orc.pan, nrc.pan, tp);

                DrawBuff.ChC140(frameBuffer, c, ref orc.mask, nrc.mask, tp);

                DrawBuff.drawNESSw(frameBuffer, 64 * 4, c * 8 + 8, ref oldParam.channels[c].bit[0], newParam.channels[c].bit[0]);
                DrawBuff.drawNESSw(frameBuffer, 65 * 4, c * 8 + 8, ref oldParam.channels[c].bit[1], newParam.channels[c].bit[1]);
                DrawBuff.font4Hex16Bit(frameBuffer, 4 * 67, c * 8 + 8, 0, ref orc.freq, nrc.freq);
                DrawBuff.font4HexByte(frameBuffer, 4 * 72, c * 8 + 8, 0, ref orc.bank, nrc.bank);
                DrawBuff.font4Hex16Bit(frameBuffer, 4 * 75, c * 8 + 8, 0, ref orc.sadr, nrc.sadr);
                DrawBuff.font4Hex16Bit(frameBuffer, 4 * 80, c * 8 + 8, 0, ref orc.eadr, nrc.eadr);
                DrawBuff.font4Hex16Bit(frameBuffer, 4 * 85, c * 8 + 8, 0, ref orc.ladr, nrc.ladr);
            }
        }
예제 #6
0
        public override void screenDrawParams()
        {
            for (int c = 0; c < 8; c++)
            {
                MDChipParams.Channel oyc = oldParam.channels[c];
                MDChipParams.Channel nyc = newParam.channels[c];

                bool YM2151Type          = (chipID == 0) ? parent.setting.YM2151Type.UseScci : parent.setting.YM2151SType.UseScci;
                int  YM2151SoundLocation = (chipID == 0) ? parent.setting.YM2151Type.SoundLocation : parent.setting.YM2151SType.SoundLocation;
                int  tp = !YM2151Type ? 0 : (YM2151SoundLocation < 0 ? 2 : 1);

                DrawBuff.Inst(frameBuffer, 1, 11, c, oyc.inst, nyc.inst);

                DrawBuff.Pan(frameBuffer, 24, 8 + c * 8, ref oyc.pan, nyc.pan, ref oyc.pantp, tp);
                DrawBuff.KeyBoard(frameBuffer, c, ref oyc.note, nyc.note, tp);

                DrawBuff.Volume(frameBuffer, 256, 8 + c * 8, 1, ref oyc.volumeL, nyc.volumeL, tp);
                DrawBuff.Volume(frameBuffer, 256, 8 + c * 8, 2, ref oyc.volumeR, nyc.volumeR, tp);

                DrawBuff.ChYM2151(frameBuffer, c, ref oyc.mask, nyc.mask, tp);

                DrawBuff.KfYM2151(frameBuffer, c, ref oyc.kf, nyc.kf);
            }

            DrawBuff.NeYM2151(frameBuffer, ref oldParam.ne, newParam.ne);
            DrawBuff.NfrqYM2151(frameBuffer, ref oldParam.nfrq, newParam.nfrq);
            DrawBuff.LfrqYM2151(frameBuffer, ref oldParam.lfrq, newParam.lfrq);
            DrawBuff.AmdYM2151(frameBuffer, ref oldParam.amd, newParam.amd);
            DrawBuff.PmdYM2151(frameBuffer, ref oldParam.pmd, newParam.pmd);
            DrawBuff.WaveFormYM2151(frameBuffer, ref oldParam.waveform, newParam.waveform);
            DrawBuff.LfoSyncYM2151(frameBuffer, ref oldParam.lfosync, newParam.lfosync);
        }
예제 #7
0
        public void screenDrawParams()
        {
            DrawBuff.KeyBoard(frameBuffer, 0, ref oldParam.channel.note, newParam.channel.note, 0);
            DrawBuff.Volume(frameBuffer, 256, 8 + 0 * 8, 0, ref oldParam.channel.volume, newParam.channel.volume, 0);

            DrawBuff.WaveFormToFDS(frameBuffer, 0, ref oldParam.wave, newParam.wave);
            DrawBuff.WaveFormToFDS(frameBuffer, 1, ref oldParam.mod, newParam.mod);

            DrawBuff.drawNESSw(frameBuffer, 20 * 4, 6 * 4, ref oldParam.VolDir, newParam.VolDir);
            DrawBuff.font4Int2(frameBuffer, 19 * 4, 8 * 4, 0, 2, ref oldParam.VolSpd, newParam.VolSpd);
            DrawBuff.font4Int2(frameBuffer, 19 * 4, 10 * 4, 0, 2, ref oldParam.VolGain, newParam.VolGain);
            DrawBuff.drawNESSw(frameBuffer, 20 * 4, 12 * 4, ref oldParam.VolDi, newParam.VolDi);
            DrawBuff.font4Hex12Bit(frameBuffer, 26 * 4, 6 * 4, 0, ref oldParam.VolFrq, newParam.VolFrq);
            DrawBuff.drawNESSw(frameBuffer, 28 * 4, 8 * 4, ref oldParam.VolHlR, newParam.VolHlR);

            DrawBuff.drawNESSw(frameBuffer, 48 * 4, 6 * 4, ref oldParam.ModDir, newParam.ModDir);
            DrawBuff.font4Int2(frameBuffer, 47 * 4, 8 * 4, 0, 2, ref oldParam.ModSpd, newParam.ModSpd);
            DrawBuff.font4Int2(frameBuffer, 47 * 4, 10 * 4, 0, 2, ref oldParam.ModGain, newParam.ModGain);
            DrawBuff.drawNESSw(frameBuffer, 48 * 4, 12 * 4, ref oldParam.ModDi, newParam.ModDi);
            DrawBuff.font4Hex12Bit(frameBuffer, 54 * 4, 6 * 4, 0, ref oldParam.ModFrq, newParam.ModFrq);
            DrawBuff.font4Int3(frameBuffer, 54 * 4, 8 * 4, 0, 3, ref oldParam.ModCnt, newParam.ModCnt);

            DrawBuff.font4Int3(frameBuffer, 65 * 4, 6 * 4, 0, 3, ref oldParam.EnvSpd, newParam.EnvSpd);
            DrawBuff.drawNESSw(frameBuffer, 67 * 4, 8 * 4, ref oldParam.EnvVolSw, newParam.EnvVolSw);
            DrawBuff.drawNESSw(frameBuffer, 67 * 4, 10 * 4, ref oldParam.EnvModSw, newParam.EnvModSw);

            DrawBuff.font4Int2(frameBuffer, 76 * 4, 6 * 4, 0, 2, ref oldParam.MasterVol, newParam.MasterVol);
            DrawBuff.drawNESSw(frameBuffer, 77 * 4, 8 * 4, ref oldParam.WE, newParam.WE);

            DrawBuff.ChFDS(frameBuffer, 0, ref oldParam.channel.mask, newParam.channel.mask, 0);
        }
예제 #8
0
        public void screenDrawParams()
        {
            int tp = 0;

            MDChipParams.Channel oyc;
            MDChipParams.Channel nyc;

            for (int c = 0; c < 6; c++)
            {
                oyc = oldParam.channels[c];
                nyc = newParam.channels[c];

                DrawBuff.Volume(frameBuffer, 256, 8 + c * 8, 0, ref oyc.volumeL, nyc.volumeL, tp);
                DrawBuff.KeyBoard(frameBuffer, c, ref oyc.note, nyc.note, tp);

                DrawBuff.drawInstNumber(frameBuffer, (c % 3) * 16 + 37, (c / 3) * 2 + 16, ref oyc.inst[0], nyc.inst[0]);
                DrawBuff.SUSFlag(frameBuffer, (c % 3) * 16 + 41, (c / 3) * 2 + 16, 0, ref oyc.inst[1], nyc.inst[1]);
                DrawBuff.SUSFlag(frameBuffer, (c % 3) * 16 + 44, (c / 3) * 2 + 16, 0, ref oyc.inst[2], nyc.inst[2]);
                DrawBuff.drawInstNumber(frameBuffer, (c % 3) * 16 + 46, (c / 3) * 2 + 16, ref oyc.inst[3], nyc.inst[3]);

                DrawBuff.ChYM2413(frameBuffer, c, ref oyc.mask, nyc.mask, tp);
            }

            oyc = oldParam.channels[0];
            nyc = newParam.channels[0];
            DrawBuff.drawInstNumber(frameBuffer, 9, 14, ref oyc.inst[4], nyc.inst[4]);  //TL
            DrawBuff.drawInstNumber(frameBuffer, 14, 14, ref oyc.inst[5], nyc.inst[5]); //FB

            for (int c = 0; c < 11; c++)
            {
                DrawBuff.drawInstNumber(frameBuffer, c * 3, 18, ref oyc.inst[6 + c], nyc.inst[6 + c]);
                DrawBuff.drawInstNumber(frameBuffer, c * 3, 20, ref oyc.inst[17 + c], nyc.inst[17 + c]);
            }
        }
예제 #9
0
        public override void screenInit()
        {
            bool YM2151Type          = (chipID == 0) ? parent.setting.YM2151Type.UseScci : parent.setting.YM2151SType.UseScci;
            int  YM2151SoundLocation = (chipID == 0) ? parent.setting.YM2151Type.SoundLocation : parent.setting.YM2151SType.SoundLocation;
            int  tp = !YM2151Type ? 0 : (YM2151SoundLocation < 0 ? 2 : 1);

            for (int ch = 0; ch < 8; ch++)
            {
                DrawBuff.drawFont8(frameBuffer, 296, ch * 8 + 8, 1, "   ");

                for (int ot = 0; ot < 12 * 8; ot++)
                {
                    int kx = Tables.kbl[(ot % 12) * 2] + ot / 12 * 28;
                    int kt = Tables.kbl[(ot % 12) * 2 + 1];
                    DrawBuff.drawKbn(frameBuffer, 32 + kx, ch * 8 + 8, kt, tp);
                }

                DrawBuff.ChYM2151_P(frameBuffer, 0, ch * 8 + 8, ch, false, tp);
                DrawBuff.drawPanP(frameBuffer, 24, ch * 8 + 8, 3, tp);
                int d = 99;
                DrawBuff.Volume(frameBuffer, 256, 8 + ch * 8, 1, ref d, 0, tp);
                d = 99;
                DrawBuff.Volume(frameBuffer, 256, 8 + ch * 8, 2, ref d, 0, tp);
            }
        }
예제 #10
0
        public void screenDrawParams()
        {
            MDChipParams.OKIM6258 ost = oldParam;
            MDChipParams.OKIM6258 nst = newParam;

            DrawBuff.PanToOKIM6258(frameBuffer, ref ost.pan, nst.pan, ref ost.pantp, 0);

            if (ost.masterFreq != nst.masterFreq)
            {
                DrawBuff.drawFont4(frameBuffer, 12 * 4, 8, 0, string.Format("{0:d5}", nst.masterFreq));
                ost.masterFreq = nst.masterFreq;
            }

            if (ost.divider != nst.divider)
            {
                DrawBuff.drawFont4(frameBuffer, 19 * 4, 8, 0, string.Format("{0:d5}", nst.divider));
                ost.divider = nst.divider;
            }

            if (ost.pbFreq != nst.pbFreq)
            {
                DrawBuff.drawFont4(frameBuffer, 26 * 4, 8, 0, string.Format("{0:d5}", nst.pbFreq));
                ost.pbFreq = nst.pbFreq;
            }

            DrawBuff.Volume(frameBuffer, 256, 8 + 0 * 8, 1, ref ost.volumeL, nst.volumeL / 2, 0);
            DrawBuff.Volume(frameBuffer, 256, 8 + 0 * 8, 2, ref ost.volumeR, nst.volumeR / 2, 0);

            DrawBuff.ChOKIM6258(frameBuffer, ref ost.mask, nst.mask, 0);
        }
예제 #11
0
        public void screenDrawParams()
        {
            int tp = parent.setting.K051649Type.UseScci ? 1 : 0;

            for (int c = 0; c < 5; c++)
            {
                MDChipParams.Channel oyc = oldParam.channels[c];
                MDChipParams.Channel nyc = newParam.channels[c];
                int x = c % 3;
                int y = c / 3;

                DrawBuff.KeyBoard(frameBuffer, c, ref oyc.note, nyc.note, tp);
                DrawBuff.Volume(frameBuffer, 256, 8 + c * 8, 0, ref oyc.volume, nyc.volume, tp);
                DrawBuff.font4Hex12Bit(frameBuffer, x * 4 * 26 + 4 * 14, y * 8 * 6 + 8 * 11, tp, ref oyc.freq, nyc.freq);
                DrawBuff.font4Hex4Bit(frameBuffer, x * 4 * 26 + 4 * 22, y * 8 * 6 + 8 * 11, tp, ref oyc.volumeL, nyc.volumeL);
                DrawBuff.drawNESSw(frameBuffer, x * 4 * 26 + 4 * 25, y * 8 * 6 + 8 * 11, ref oyc.dda, nyc.dda);
                DrawBuff.WaveFormToK051649(frameBuffer, c, ref oyc.typ, nyc.inst);

                DrawBuff.ChK051649(frameBuffer, c, ref oyc.mask, nyc.mask, tp);

                for (int i = 0; i < 32; i++)
                {
                    int fx = i % 8;
                    int fy = i / 8;
                    DrawBuff.font4HexByte(frameBuffer, x * 4 * 26 + 4 * 10 + fx * 8, y * 8 * 6 + 8 * 7 + fy * 8, tp, ref oyc.inst[i], nyc.inst[i]);
                }
            }
        }
예제 #12
0
        public void screenDrawParams()
        {
            int tp = parent.setting.HuC6280Type.UseScci ? 1 : 0;

            for (int c = 0; c < 6; c++)
            {
                MDChipParams.Channel oyc = oldParam.channels[c];
                MDChipParams.Channel nyc = newParam.channels[c];

                DrawBuff.KeyBoard(frameBuffer, c, ref oyc.note, nyc.note, tp);

                DrawBuff.VolumeToHuC6280(frameBuffer, c, 1, ref oyc.volumeL, nyc.volumeL);
                DrawBuff.VolumeToHuC6280(frameBuffer, c, 2, ref oyc.volumeR, nyc.volumeR);
                DrawBuff.PanType2(frameBuffer, c, ref oyc.pan, nyc.pan, tp);

                DrawBuff.WaveFormToHuC6280(frameBuffer, c, ref oyc.inst, nyc.inst);
                DrawBuff.DDAToHuC6280(frameBuffer, c, ref oyc.dda, nyc.dda);

                DrawBuff.ChHuC6280(frameBuffer, c, ref oyc.mask, nyc.mask, tp);

                if (c < 4)
                {
                    continue;
                }

                DrawBuff.NoiseToHuC6280(frameBuffer, c, ref oyc.noise, nyc.noise);
                DrawBuff.NoiseFrqToHuC6280(frameBuffer, c, ref oyc.nfrq, nyc.nfrq);
            }

            DrawBuff.MainVolumeToHuC6280(frameBuffer, 0, ref oldParam.mvolL, newParam.mvolL);
            DrawBuff.MainVolumeToHuC6280(frameBuffer, 1, ref oldParam.mvolR, newParam.mvolR);

            DrawBuff.LfoCtrlToHuC6280(frameBuffer, ref oldParam.LfoCtrl, newParam.LfoCtrl);
            DrawBuff.LfoFrqToHuC6280(frameBuffer, ref oldParam.LfoFrq, newParam.LfoFrq);
        }
예제 #13
0
        public FrmMIDIKbd(FrmMain frm, int zoom, MDChipParams.MIDIKbd newParam)
        {
            try
            {
                parent       = frm;
                this.zoom    = zoom;
                this.setting = parent.setting;
                keyPress     = new bool[kbdTbl.Length];
                if (setting.midiKbd.Octave == 0)
                {
                    setting.midiKbd.Octave = 4;
                }
                SoundManager = Audio.sm;
                SoundManager.AddDataSeqFrqEvent(OnDataSeqFrq);
                SoundManager.CurrentChip = "YM2612";
                SoundManager.CurrentCh   = 1;

                InitializeComponent();

                this.newParam = newParam;
                frameBuffer.Add(pbScreen, Properties.Resources.planeMIDIKB, null, zoom);
                DrawBuff.screenInitMixer(frameBuffer);
                update();
                Init();
            }catch
            {
            }
        }
예제 #14
0
        public void screenInit()
        {
            bool YM2612Type = (chipID == 0) ? parent.setting.YM2612Type.UseScci : parent.setting.YM2612SType.UseScci;
            int  tp         = YM2612Type ? 1 : 0;

            DrawBuff.screenInitYM2612(frameBuffer, tp, (chipID == 0) ? parent.setting.YM2612Type.OnlyPCMEmulation : parent.setting.YM2612SType.OnlyPCMEmulation, newParam.fileFormat == enmFileFormat.XGM);
            newParam.channels[5].pcmBuff = 100;
        }
예제 #15
0
        public frmAY8910(frmMain frm, int chipID, int zoom, MDChipParams.AY8910 newParam) : base(frm, chipID, zoom)
        {
            InitializeComponent();

            oldParam      = new MDChipParams.AY8910();
            this.newParam = newParam;
            frameBuffer.Add(this.pbScreen, Properties.Resources.planeAY8910, null, zoom);
            DrawBuff.screenInitAY8910(frameBuffer);
            update();
        }
예제 #16
0
        public void screenInit()
        {
            for (int c = 0; c < newParam.channels.Length; c++)
            {
                newParam.channels[c].note = -1;
            }
            bool YM2608Type = (chipID == 0) ? parent.setting.YM2608Type.UseScci : parent.setting.YM2608SType.UseScci;
            int  tp         = YM2608Type ? 1 : 0;

            DrawBuff.screenInitYM2608(frameBuffer, tp);
        }
예제 #17
0
        public void screenInit()
        {
            bool YM2203Type          = (chipID == 0) ? parent.setting.YM2203Type.UseScci : parent.setting.YM2203SType.UseScci;
            int  YM2203SoundLocation = (chipID == 0) ? parent.setting.YM2203Type.SoundLocation : parent.setting.YM2203SType.SoundLocation;
            int  tp = !YM2203Type ? 0 : (YM2203SoundLocation < 0 ? 2 : 1);

            for (int ch = 0; ch < 3; ch++)
            {
                for (int i = 0; i < 4; i++)
                {
                    newParam.channels[ch].inst[i * 11 + 0]  = 0;
                    newParam.channels[ch].inst[i * 11 + 1]  = 0;
                    newParam.channels[ch].inst[i * 11 + 2]  = 0;
                    newParam.channels[ch].inst[i * 11 + 3]  = 0;
                    newParam.channels[ch].inst[i * 11 + 4]  = 0;
                    newParam.channels[ch].inst[i * 11 + 5]  = 0;
                    newParam.channels[ch].inst[i * 11 + 6]  = 0;
                    newParam.channels[ch].inst[i * 11 + 7]  = 0;
                    newParam.channels[ch].inst[i * 11 + 8]  = 0;
                    newParam.channels[ch].inst[i * 11 + 9]  = 0;
                    newParam.channels[ch].inst[i * 11 + 10] = 0;
                }
                newParam.channels[ch].inst[44] = 0;
                newParam.channels[ch].inst[45] = 0;
                newParam.channels[ch].inst[46] = 0;
                newParam.channels[ch].inst[47] = 0;
                newParam.channels[ch].pan      = 3;
                newParam.channels[ch].volumeL  = 0;
                newParam.channels[ch].note     = -1;
            }

            for (int ch = 3; ch < 6; ch++) //FM EX
            {
                newParam.channels[ch].pan     = 0;
                newParam.channels[ch].note    = -1;
                newParam.channels[ch].volumeL = 0;
                newParam.channels[ch].note    = -1;
            }

            for (int ch = 0; ch < 3; ch++) //SSG
            {
                MDChipParams.Channel channel = newParam.channels[ch + 6];
                channel.tn     = 0;
                channel.volume = 0;
                channel.note   = -1;
            }

            newParam.nfrq  = 0;
            newParam.efrq  = 0;
            newParam.etype = 0;

            DrawBuff.screenInitYM2203(frameBuffer, tp);
        }
예제 #18
0
        public override void screenInit()
        {
            for (int c = 0; c < newParam.channels.Length; c++)
            {
                newParam.channels[c].note = -1;
            }
            bool YM2608Type          = (chipID == 0) ? parent.setting.YM2608Type.UseScci : parent.setting.YM2608SType.UseScci;
            int  YM2608SoundLocation = (chipID == 0) ? parent.setting.YM2608Type.SoundLocation : parent.setting.YM2608SType.SoundLocation;
            int  tp = !YM2608Type ? 0 : (YM2608SoundLocation < 0 ? 2 : 1);

            DrawBuff.screenInitYM2608(frameBuffer, tp);
        }
예제 #19
0
        public void screenDrawParams()
        {
            int tp = 0;// parent.setting.YMF262Type.UseScci ? 1 : 0;

            MDChipParams.Channel oyc;
            MDChipParams.Channel nyc;

            //FM
            for (int c = 0; c < 9; c++)
            {
                oyc = oldParam.channels[c];
                nyc = newParam.channels[c];

                for (int i = 0; i < 2; i++)
                {
                    DrawBuff.font4Int2(frameBuffer, 16 + 4 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[0 + i * 17], nyc.inst[0 + i * 17]);     //AR
                    DrawBuff.font4Int2(frameBuffer, 16 + 16 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[1 + i * 17], nyc.inst[1 + i * 17]);    //DR
                    DrawBuff.font4Int2(frameBuffer, 16 + 28 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[2 + i * 17], nyc.inst[2 + i * 17]);    //SL
                    DrawBuff.font4Int2(frameBuffer, 16 + 40 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[3 + i * 17], nyc.inst[3 + i * 17]);    //RR
                    DrawBuff.font4Int2(frameBuffer, 16 + 52 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[4 + i * 17], nyc.inst[4 + i * 17]);    //KL
                    DrawBuff.font4Int2(frameBuffer, 16 + 64 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[5 + i * 17], nyc.inst[5 + i * 17]);    //TL
                    DrawBuff.font4Int2(frameBuffer, 16 + 76 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[6 + i * 17], nyc.inst[6 + i * 17]);    //MT

                    DrawBuff.font4Int2(frameBuffer, 16 + 88 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[7 + i * 17], nyc.inst[7 + i * 17]);    //AM
                    DrawBuff.font4Int2(frameBuffer, 16 + 96 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[8 + i * 17], nyc.inst[8 + i * 17]);    //VB
                    DrawBuff.font4Int2(frameBuffer, 16 + 104 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[9 + i * 17], nyc.inst[9 + i * 17]);   //EG
                    DrawBuff.font4Int2(frameBuffer, 16 + 112 + i * 136, c * 8 + 104, 0, 0, ref oyc.inst[10 + i * 17], nyc.inst[10 + i * 17]); //KR
                }

                DrawBuff.font4Int2(frameBuffer, 16 + 4 * 65, c * 8 + 104, 0, 0, ref oyc.inst[11], nyc.inst[11]);  //BL
                DrawBuff.font4Hex12Bit(frameBuffer, 16 + 4 * 69, c * 8 + 104, 0, ref oyc.inst[12], nyc.inst[12]); //F-Num
                DrawBuff.font4Int2(frameBuffer, 16 + 4 * 73, c * 8 + 104, 0, 0, ref oyc.inst[14], nyc.inst[14]);  //CN
                DrawBuff.font4Int2(frameBuffer, 16 + 4 * 76, c * 8 + 104, 0, 0, ref oyc.inst[15], nyc.inst[15]);  //FB
                DrawBuff.KeyBoard(frameBuffer, c, ref oyc.note, nyc.note, tp);
                DrawBuff.VolumeXY(frameBuffer, 64, c * 2 + 2, 0, ref oyc.volume, nyc.volume, tp);
                DrawBuff.ChY8950(frameBuffer, c, ref oyc.mask, nyc.mask, tp);
            }

            DrawBuff.drawNESSw(frameBuffer, 76 * 4, 11 * 8, ref oldParam.channels[9].dda, newParam.channels[9].dda);   //DA
            DrawBuff.drawNESSw(frameBuffer, 80 * 4, 11 * 8, ref oldParam.channels[10].dda, newParam.channels[10].dda); //DV

            //Rhythm
            for (int c = 9; c < 14; c++)
            {
                DrawBuff.ChY8950(frameBuffer, c, ref oldParam.channels[c].mask, newParam.channels[c].mask, tp);
                DrawBuff.VolumeXY(frameBuffer, 3 + (c - 9) * 15, 11 * 2, 0, ref oldParam.channels[c].volume, newParam.channels[c].volume, tp);
            }

            //ADPCM
            DrawBuff.KeyBoard(frameBuffer, 9, ref oldParam.channels[14].note, newParam.channels[14].note, tp);
            DrawBuff.VolumeXY(frameBuffer, 64, 9 * 2 + 2, 0, ref oldParam.channels[14].volume, newParam.channels[14].volume, tp);
            DrawBuff.ChY8950(frameBuffer, 14, ref oldParam.channels[14].mask, newParam.channels[14].mask, tp);
        }
예제 #20
0
        public frmHuC6280(frmMain frm, int chipID, int zoom, MDChipParams.HuC6280 newParam)
        {
            parent      = frm;
            this.chipID = chipID;
            this.zoom   = zoom;

            InitializeComponent();

            this.newParam = newParam;
            frameBuffer.Add(pbScreen, Properties.Resources.planeHuC6280, null, zoom);
            DrawBuff.screenInitHuC6280(frameBuffer);
            update();
        }
예제 #21
0
        public frmMIDI(frmMain frm, int chipID, int zoom, MIDIParam newParam)
        {
            parent      = frm;
            this.chipID = chipID;
            this.zoom   = zoom;

            InitializeComponent();

            this.newParam = newParam;
            frameBuffer.Add(pbScreen, Properties.Resources.planeMIDI_GM, null, zoom);
            DrawBuff.screenInitMIDI(frameBuffer);
            update();
        }
예제 #22
0
        public frmMixer2(frmMain frm, int zoom, MDChipParams.Mixer newParam)
        {
            parent    = frm;
            this.zoom = zoom;

            InitializeComponent();
            pbScreen.MouseWheel += new MouseEventHandler(this.pbScreen_MouseWheel);

            this.newParam = newParam;
            frameBuffer.Add(pbScreen, Properties.Resources.planeMixer, null, zoom);
            DrawBuff.screenInitMixer(frameBuffer);
            update();
        }
예제 #23
0
        public frmYM2612MIDI(frmMain frm, int zoom, MDChipParams.YM2612MIDI newParam)
        {
            parent    = frm;
            this.zoom = zoom;

            InitializeComponent();
            this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.frmYM2612MIDI_MouseWheel);

            this.newParam = newParam;
            frameBuffer.Add(pbScreen, Properties.Resources.planeYM2612MIDI, null, zoom);
            DrawBuff.screenInitYM2612MIDI(frameBuffer);
            update();
        }
예제 #24
0
        public void screenInit()
        {
            int tp = parent.setting.YM2203Type.UseScci ? 1 : 0;

            for (int ch = 0; ch < 3; ch++)
            {
                for (int i = 0; i < 4; i++)
                {
                    newParam.channels[ch].inst[i * 11 + 0]  = 0;
                    newParam.channels[ch].inst[i * 11 + 1]  = 0;
                    newParam.channels[ch].inst[i * 11 + 2]  = 0;
                    newParam.channels[ch].inst[i * 11 + 3]  = 0;
                    newParam.channels[ch].inst[i * 11 + 4]  = 0;
                    newParam.channels[ch].inst[i * 11 + 5]  = 0;
                    newParam.channels[ch].inst[i * 11 + 6]  = 0;
                    newParam.channels[ch].inst[i * 11 + 7]  = 0;
                    newParam.channels[ch].inst[i * 11 + 8]  = 0;
                    newParam.channels[ch].inst[i * 11 + 9]  = 0;
                    newParam.channels[ch].inst[i * 11 + 10] = 0;
                }
                newParam.channels[ch].inst[44] = 0;
                newParam.channels[ch].inst[45] = 0;
                newParam.channels[ch].inst[46] = 0;
                newParam.channels[ch].inst[47] = 0;
                newParam.channels[ch].pan      = 3;
                newParam.channels[ch].volumeL  = 0;
                newParam.channels[ch].note     = -1;
            }

            for (int ch = 3; ch < 6; ch++) //FM EX
            {
                newParam.channels[ch].pan     = 0;
                newParam.channels[ch].note    = -1;
                newParam.channels[ch].volumeL = 0;
                newParam.channels[ch].note    = -1;
            }

            for (int ch = 0; ch < 3; ch++) //SSG
            {
                MDChipParams.Channel channel = newParam.channels[ch + 6];
                channel.tn     = 0;
                channel.volume = 0;
                channel.note   = -1;
            }

            newParam.nfrq  = 0;
            newParam.efrq  = 0;
            newParam.etype = 0;

            DrawBuff.screenInitYM2203(frameBuffer, tp);
        }
예제 #25
0
        public override void screenInit()
        {
            int tp = ((chipID == 0) ? (parent.setting.YM2610Type.UseScci || parent.setting.YM2610Type.UseScci2) : parent.setting.YM2610SType.UseScci) ? 1 : 0;

            for (int y = 0; y < 14; y++)
            {
                DrawBuff.drawFont8(frameBuffer, 296, y * 8 + 8, 1, "   ");
                for (int i = 0; i < 96; i++)
                {
                    int kx = Tables.kbl[(i % 12) * 2] + i / 12 * 28;
                    int kt = Tables.kbl[(i % 12) * 2 + 1];
                    DrawBuff.drawKbn(frameBuffer, 32 + kx, y * 8 + 8, kt, tp);
                }

                if (y < 13)
                {
                    DrawBuff.ChYM2610_P(frameBuffer, 0, y * 8 + 8, y, false, tp);
                }

                if (y < 6 || y == 13)
                {
                    DrawBuff.drawPanP(frameBuffer, 24, y * 8 + 8, 3, tp);
                }

                int d = 99;
                if (y > 5 && y < 9)
                {
                    DrawBuff.Volume(frameBuffer, 256, 8 + y * 8, 0, ref d, 0, tp);
                }
                else
                {
                    DrawBuff.Volume(frameBuffer, 256, 8 + y * 8, 1, ref d, 0, tp);
                    d = 99;
                    DrawBuff.Volume(frameBuffer, 256, 8 + y * 8, 2, ref d, 0, tp);
                }
            }

            for (int y = 0; y < 6; y++)
            {
                int d = 99;
                DrawBuff.PanYM2610Rhythm(frameBuffer, y, ref d, 3, ref d, tp);
                d = 99;
                DrawBuff.VolumeYM2610Rhythm(frameBuffer, y, 1, ref d, 0, tp);
                d = 99;
                DrawBuff.VolumeYM2610Rhythm(frameBuffer, y, 2, ref d, 0, tp);
            }
            bool f = true;

            DrawBuff.ChYM2610Rhythm(frameBuffer, 0, ref f, false, tp);
        }
예제 #26
0
        public void screenDrawParams()
        {
            for (int c = 0; c < 8; c++)
            {
                MDChipParams.Channel orc = oldParam.channels[c];
                MDChipParams.Channel nrc = newParam.channels[c];

                DrawBuff.Volume(frameBuffer, 256, 8 + c * 8, 1, ref orc.volumeL, nrc.volumeL, 0);
                DrawBuff.Volume(frameBuffer, 256, 8 + c * 8, 2, ref orc.volumeR, nrc.volumeR, 0);
                DrawBuff.KeyBoard(frameBuffer, c, ref orc.note, nrc.note, 0);
                DrawBuff.PanType2(frameBuffer, c, ref orc.pan, nrc.pan, 0);
                DrawBuff.ChRF5C164(frameBuffer, c, ref orc.mask, nrc.mask, 0);
            }
        }
예제 #27
0
        public void screenDrawParams()
        {
            bool YM2203Type          = (chipID == 0) ? parent.setting.YM2203Type.UseScci : parent.setting.YM2203SType.UseScci;
            int  YM2203SoundLocation = (chipID == 0) ? parent.setting.YM2203Type.SoundLocation : parent.setting.YM2203SType.SoundLocation;
            int  tp = !YM2203Type ? 0 : (YM2203SoundLocation < 0 ? 2 : 1);

            for (int c = 0; c < 6; c++)
            {
                MDChipParams.Channel oyc = oldParam.channels[c];
                MDChipParams.Channel nyc = newParam.channels[c];

                if (c == 2)
                {
                    DrawBuff.Volume(frameBuffer, 256, 8 + c * 8, 0, ref oyc.volumeL, nyc.volumeL, tp);
                    DrawBuff.KeyBoard(frameBuffer, c, ref oyc.note, nyc.note, tp);
                    DrawBuff.Inst(frameBuffer, 1, 12, c, oyc.inst, nyc.inst);
                    DrawBuff.Ch3YM2203(frameBuffer, c, ref oyc.mask, nyc.mask, ref oyc.ex, nyc.ex, tp);
                }
                else if (c < 3)
                {
                    DrawBuff.Volume(frameBuffer, 256, 8 + c * 8, 0, ref oyc.volumeL, nyc.volumeL, tp);
                    DrawBuff.KeyBoard(frameBuffer, c, ref oyc.note, nyc.note, tp);
                    DrawBuff.Inst(frameBuffer, 1, 12, c, oyc.inst, nyc.inst);
                    DrawBuff.ChYM2203(frameBuffer, c, ref oyc.mask, nyc.mask, tp);
                }
                else
                {
                    DrawBuff.Volume(frameBuffer, 256, 8 + (c + 3) * 8, 0, ref oyc.volumeL, nyc.volumeL, tp);
                    DrawBuff.KeyBoard(frameBuffer, c + 3, ref oyc.note, nyc.note, tp);
                    DrawBuff.ChYM2203(frameBuffer, c, ref oyc.mask, nyc.mask, tp);
                }
            }

            for (int c = 0; c < 3; c++)
            {
                MDChipParams.Channel oyc = oldParam.channels[c + 6];
                MDChipParams.Channel nyc = newParam.channels[c + 6];

                DrawBuff.Volume(frameBuffer, 256, 8 + (c + 3) * 8, 0, ref oyc.volume, nyc.volume, tp);
                DrawBuff.KeyBoard(frameBuffer, c + 3, ref oyc.note, nyc.note, tp);
                DrawBuff.Tn(frameBuffer, 6, 2, c + 3, ref oyc.tn, nyc.tn, ref oyc.tntp, tp * 2);

                DrawBuff.ChYM2203(frameBuffer, c + 6, ref oyc.mask, nyc.mask, tp);
            }

            DrawBuff.Nfrq(frameBuffer, 5, 32, ref oldParam.nfrq, newParam.nfrq);
            DrawBuff.Efrq(frameBuffer, 18, 32, ref oldParam.efrq, newParam.efrq);
            DrawBuff.Etype(frameBuffer, 33, 32, ref oldParam.etype, newParam.etype);
        }
예제 #28
0
        public void screenDrawParams()
        {
            bool ob;

            for (int i = 0; i < 2; i++)
            {
                DrawBuff.KeyBoard(frameBuffer, i * 2, ref oldParam.sqrChannels[i].note, newParam.sqrChannels[i].note, 0);
                DrawBuff.Volume(frameBuffer, 256, 8 + i * 2 * 8, 0, ref oldParam.sqrChannels[i].volume, newParam.sqrChannels[i].volume, 0);
                DrawBuff.font4Int2(frameBuffer, 16 * 4, (2 + i * 2) * 8, 0, 2, ref oldParam.sqrChannels[i].nfrq, newParam.sqrChannels[i].nfrq);
                DrawBuff.font4Int2(frameBuffer, 19 * 4, (2 + i * 2) * 8, 0, 2, ref oldParam.sqrChannels[i].pan, newParam.sqrChannels[i].pan);
                DrawBuff.font4Int2(frameBuffer, 22 * 4, (2 + i * 2) * 8, 0, 2, ref oldParam.sqrChannels[i].pantp, newParam.sqrChannels[i].pantp);
                DrawBuff.drawDuty(frameBuffer, 24, (1 + i * 2) * 8, ref oldParam.sqrChannels[i].kf, newParam.sqrChannels[i].kf);
                DrawBuff.drawNESSw(frameBuffer, 32, (2 + i * 2) * 8, ref oldParam.sqrChannels[i].dda, newParam.sqrChannels[i].dda);
                DrawBuff.drawNESSw(frameBuffer, 40, (2 + i * 2) * 8, ref oldParam.sqrChannels[i].noise, newParam.sqrChannels[i].noise);
                ob = oldParam.sqrChannels[i].volumeL != 0;
                DrawBuff.drawNESSw(frameBuffer, 48, (2 + i * 2) * 8, ref ob, newParam.sqrChannels[i].volumeL != 0);
                oldParam.sqrChannels[i].volumeL = ob ? 1 : 0;
                ob = oldParam.sqrChannels[i].volumeR != 0;
                DrawBuff.drawNESSw(frameBuffer, 56, (2 + i * 2) * 8, ref ob, newParam.sqrChannels[i].volumeR != 0);
                oldParam.sqrChannels[i].volumeR = ob ? 1 : 0;
                DrawBuff.ChNESDMC(frameBuffer, i, ref oldParam.sqrChannels[i].mask, newParam.sqrChannels[i].mask, 0);
            }

            DrawBuff.KeyBoard(frameBuffer, 4, ref oldParam.triChannel.note, newParam.triChannel.note, 0);
            DrawBuff.Volume(frameBuffer, 256, 8 + 4 * 8, 0, ref oldParam.triChannel.volume, newParam.triChannel.volume, 0);
            DrawBuff.drawNESSw(frameBuffer, 36, 6 * 8, ref oldParam.triChannel.dda, newParam.triChannel.dda);
            DrawBuff.font4Int3(frameBuffer, 13 * 4, 6 * 8, 0, 3, ref oldParam.triChannel.nfrq, newParam.triChannel.nfrq);
            DrawBuff.font4Int2(frameBuffer, 19 * 4, 6 * 8, 0, 2, ref oldParam.triChannel.pantp, newParam.triChannel.pantp);
            DrawBuff.ChNESDMC(frameBuffer, 2, ref oldParam.triChannel.mask, newParam.triChannel.mask, 0);

            DrawBuff.Volume(frameBuffer, 256, 8 + 3 * 8, 0, ref oldParam.noiseChannel.volume, newParam.noiseChannel.volume, 0);
            DrawBuff.drawNESSw(frameBuffer, 228, 32, ref oldParam.noiseChannel.dda, newParam.noiseChannel.dda);
            DrawBuff.drawNESSw(frameBuffer, 144, 32, ref oldParam.noiseChannel.noise, newParam.noiseChannel.noise);
            ob = oldParam.noiseChannel.volumeL != 0;
            DrawBuff.drawNESSw(frameBuffer, 160, 32, ref ob, newParam.noiseChannel.volumeL != 0);
            oldParam.noiseChannel.volumeL = ob ? 1 : 0;
            DrawBuff.font4Int2(frameBuffer, 176, 32, 0, 2, ref oldParam.noiseChannel.volumeR, newParam.noiseChannel.volumeR);
            DrawBuff.font4Int2(frameBuffer, 196, 32, 0, 2, ref oldParam.noiseChannel.nfrq, newParam.noiseChannel.nfrq);
            DrawBuff.ChNESDMC(frameBuffer, 3, ref oldParam.noiseChannel.mask, newParam.noiseChannel.mask, 0);

            DrawBuff.Volume(frameBuffer, 256, 8 + 5 * 8, 0, ref oldParam.dmcChannel.volume, newParam.dmcChannel.volume, 0);
            DrawBuff.drawNESSw(frameBuffer, 144, 48, ref oldParam.dmcChannel.dda, newParam.dmcChannel.dda);
            DrawBuff.drawNESSw(frameBuffer, 152, 48, ref oldParam.dmcChannel.dda, newParam.dmcChannel.noise);
            DrawBuff.font4Int2(frameBuffer, 176, 48, 0, 2, ref oldParam.dmcChannel.volumeL, newParam.dmcChannel.volumeL);
            DrawBuff.font4Int3(frameBuffer, 192, 48, 0, 3, ref oldParam.dmcChannel.volumeR, newParam.dmcChannel.volumeR);
            DrawBuff.font4HexByte(frameBuffer, 220, 48, 0, ref oldParam.dmcChannel.nfrq, newParam.dmcChannel.nfrq);
            DrawBuff.font4HexByte(frameBuffer, 244, 48, 0, ref oldParam.dmcChannel.pantp, newParam.dmcChannel.pantp);
            DrawBuff.ChNESDMC(frameBuffer, 4, ref oldParam.dmcChannel.mask, newParam.dmcChannel.mask, 0);
        }
예제 #29
0
        public frmVRC7(frmMain frm, int chipID, int zoom, MDChipParams.VRC7 newParam)
        {
            parent      = frm;
            this.chipID = chipID;
            this.zoom   = zoom;
            InitializeComponent();

            this.newParam = newParam;
            frameBuffer.Add(pbScreen, Properties.Resources.planeVRC7, null, zoom);
            bool VRC7Type = false;
            int  tp       = VRC7Type ? 1 : 0;

            DrawBuff.screenInitVRC7(frameBuffer, tp);
            update();
        }
예제 #30
0
        public frmYMF262(frmMain frm, int chipID, int zoom, MDChipParams.YMF262 newParam)
        {
            parent      = frm;
            this.chipID = chipID;
            this.zoom   = zoom;
            InitializeComponent();

            this.newParam = newParam;
            frameBuffer.Add(pbScreen, Properties.Resources.planeYMF262, null, zoom);
            bool YMF262Type = false;// (chipID == 0) ? parent.setting.YMF262Type.UseScci : parent.setting.YMF262Type.UseScci;
            int  tp         = YMF262Type ? 1 : 0;

            DrawBuff.screenInitYMF262(frameBuffer, tp);
            update();
        }