Пример #1
0
        public void OneCycleTest()
        {
            GameBoy gb   = new GameBoy();
            Cart    cart = CartTests.LoadCart("cpu_instrs.gb");

            gb.LoadCart(cart);

            gb.CPU.Execute();
            Assert.AreNotEqual(0x100, gb.CPU.registers.PC);
        }
Пример #2
0
        public void OneSecondTest()
        {
            GameBoy gb   = new GameBoy();
            Cart    cart = CartTests.LoadCart("cpu_instrs.gb");

            gb.LoadCart(cart);

            gb.Start();
            Thread.Sleep(1000);
            gb.Shutdown();
        }
Пример #3
0
        public void LoadTest()
        {
            GameBoy gb   = new GameBoy();
            Cart    cart = CartTests.LoadCart("cpu_instrs.gb");

            try {
                gb.LoadCart(cart);
            } catch (Exception e)
            {
                Assert.Fail(e.Message);
            }
        }
Пример #4
0
        //[Timeout(1200)]
        public void OneSecondClockTest()
        {
            GameBoy gb   = new GameBoy();
            Cart    cart = CartTests.LoadCart("cpu_instrs.gb");

            gb.LoadCart(cart);

            gb.Start();

            Stopwatch sw = Stopwatch.StartNew();

            Thread.Sleep(1000);
            sw.Stop();
            gb.Shutdown();

            //crazy hacks needed to join thread
            ((Thread)(typeof(GameBoy).GetField("cpuThread", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(gb))).Join();

            Console.WriteLine("Total cycles: {0}", gb.CPU.TotalCycles);

            double clock = gb.CPU.TotalCycles / (sw.ElapsedMilliseconds / 1000d);

            Assert.AreEqual(0x400000, clock, 250000);
        }