Пример #1
0
        public static void testRomWithSerial(FileInfo romFileInfoInfo, bool trace = false)
        {
            Console.WriteLine($"\n### Running test rom {romFileInfoInfo.FullName} ###");
            var runner = new SerialTestRunner(romFileInfoInfo, Console.Out, trace);

            var result = runner.RunTest();

            Assert.True(result.Contains("Passed"));
        }
Пример #2
0
        public TestResult RunTest()
        {
            _tracer.Collect(_gb.Cpu.Registers);

            int status  = 0x80;
            int divider = 0;

            while (status == 0x80 && !SerialTestRunner.IsInfiniteLoop(_gb))
            {
                _gb.Tick();
                if (++divider >= (_gb.SpeedMode.GetSpeedMode() == 2 ? 1 : 4))
                {
                    status  = GetTestResult(_gb);
                    divider = 0;
                }

                _tracer.Collect(_gb.Cpu.Registers);
            }

            _tracer.Save();

            return(new TestResult(status, _text.ToString()));
        }