Esempio n. 1
0
        public void SetStreamData(byte si, byte bank, byte StepSize, byte StepBase)
        {
            if (si == 0xFF)
            {
                return;
            }

            DacCtrl[si].Bank = bank;
            if (DacCtrl[si].Bank >= PCM_BANK_COUNT)
            {
                DacCtrl[si].Bank = 0x00;
            }

            VGM_PCM_BANK TempPCM = PCMBank[DacCtrl[si].Bank];

            //Last95Max = TempPCM->BankCount;
            set_data(si, TempPCM.Data, TempPCM.DataSize, StepSize, StepBase);
        }
Esempio n. 2
0
        public void StartStreamFastCall(byte CurChip, uint TempSht, byte mode)
        {
            if (CurChip == 0xFF || !DacCtrl[CurChip].Enable ||
                PCMBank[DacCtrl[CurChip].Bank].BankCount == 0)
            {
                return;
            }

            VGM_PCM_BANK TempPCM = PCMBank[DacCtrl[CurChip].Bank];

            if (TempSht >= TempPCM.BankCount)
            {
                TempSht = 0x00;
            }

            VGM_PCM_DATA TempBnk = TempPCM.Bank[(int)TempSht];

            byte TempByt = (byte)(dacControl.DCTRL_LMODE_BYTES |
                                  (mode & 0x10) |        // Reverse Mode
                                  ((mode & 0x01) << 7)); // Looping

            start(CurChip, TempBnk.DataStart, TempByt, TempBnk.DataSize);
        }