示例#1
0
文件: Apu.cs 项目: wensioness/EmuNes
        public void Step()
        {
            ulong lastCycle = cycle;

            ++cycle;
            ulong nextCycle = cycle;

            StepTimer();

            int lastCycleFrame = (int)((double)lastCycle / FrameCounterRate);
            int nextCycleFrame = (int)((double)nextCycle / FrameCounterRate);

            if (lastCycleFrame != nextCycleFrame)
            {
                StepFrameCounter();
            }

            int lastCycleSample = (int)((double)lastCycle / SampleRate);
            int nextCycleSample = (int)((double)nextCycle / SampleRate);

            if (lastCycleSample != nextCycleSample)
            {
                float filteredOutput = filterChain.Apply(Output);
                WriteSample?.Invoke(filteredOutput);
            }
        }
        private static void WriteSample()
        {
            var writeSample = new WriteSample();

            writeSample.Run();

            Console.ReadKey();
        }