示例#1
0
        public bool FrameAdvance(IController controller, bool render, bool rendersound)
        {
            _controller = controller;

            byte ctrl1_byte = 0;

            if (_controller.IsPressed("P1 Up"))
            {
                ctrl1_byte |= 0x01;
            }
            if (_controller.IsPressed("P1 Down"))
            {
                ctrl1_byte |= 0x02;
            }
            if (_controller.IsPressed("P1 Left"))
            {
                ctrl1_byte |= 0x04;
            }
            if (_controller.IsPressed("P1 Right"))
            {
                ctrl1_byte |= 0x08;
            }
            if (_controller.IsPressed("P1 B1"))
            {
                ctrl1_byte |= 0x10;
            }
            if (_controller.IsPressed("P1 B2"))
            {
                ctrl1_byte |= 0x20;
            }

            if (_controller.IsPressed("P1 Start"))
            {
                ctrl1_byte |= 0x80;
            }

            _frame++;

            if (Tracer.Enabled)
            {
                tracecb = MakeTrace;
            }
            else
            {
                tracecb = null;
            }

            LibMSX.MSX_settracecallback(MSX_Pntr, tracecb);

            LibMSX.MSX_frame_advance(MSX_Pntr, ctrl1_byte, 0, true, true);

            return(true);
        }
示例#2
0
        public bool FrameAdvance(IController controller, bool render, bool rendersound)
        {
            _controller = controller;

            _frame++;

            if (Tracer.Enabled)
            {
                tracecb = MakeTrace;
            }
            else
            {
                tracecb = null;
            }

            LibMSX.MSX_settracecallback(MSX_Pntr, tracecb);

            LibMSX.MSX_frame_advance(MSX_Pntr, 0, 0, true, true);

            return(true);
        }
        public bool FrameAdvance(IController controller, bool render, bool rendersound)
        {
            _controller = controller;

            byte ctrl1_byte = 0xFF;

            if (_controller.IsPressed("P1 Up"))
            {
                ctrl1_byte -= 0x01;
            }
            if (_controller.IsPressed("P1 Down"))
            {
                ctrl1_byte -= 0x02;
            }
            if (_controller.IsPressed("P1 Left"))
            {
                ctrl1_byte -= 0x04;
            }
            if (_controller.IsPressed("P1 Right"))
            {
                ctrl1_byte -= 0x08;
            }
            if (_controller.IsPressed("P1 B1"))
            {
                ctrl1_byte -= 0x10;
            }
            if (_controller.IsPressed("P1 B2"))
            {
                ctrl1_byte -= 0x20;
            }

            byte ctrl2_byte = 0xFF;

            if (_controller.IsPressed("P2 Up"))
            {
                ctrl2_byte -= 0x01;
            }
            if (_controller.IsPressed("P2 Down"))
            {
                ctrl2_byte -= 0x02;
            }
            if (_controller.IsPressed("P2 Left"))
            {
                ctrl2_byte -= 0x04;
            }
            if (_controller.IsPressed("P2 Right"))
            {
                ctrl2_byte -= 0x08;
            }
            if (_controller.IsPressed("P2 B1"))
            {
                ctrl2_byte -= 0x10;
            }
            if (_controller.IsPressed("P2 B2"))
            {
                ctrl2_byte -= 0x20;
            }

            if (current_controller == MSXControllerKB)
            {
                kb_rows_check(controller);
            }

            _frame++;

            if (Tracer.Enabled)
            {
                tracecb = MakeTrace;
            }
            else
            {
                tracecb = null;
            }

            LibMSX.MSX_settracecallback(MSX_Pntr, tracecb);

            LibMSX.MSX_frame_advance(MSX_Pntr, ctrl1_byte, ctrl2_byte, kb_rows, true, true);

            return(true);
        }
示例#4
0
        public bool FrameAdvance(IController controller, bool render, bool rendersound)
        {
            _controller = controller;

            byte ctrl1_byte = 0xFF;

            if (_controller.IsPressed("P1 Up"))
            {
                ctrl1_byte -= 0x01;
            }
            if (_controller.IsPressed("P1 Down"))
            {
                ctrl1_byte -= 0x02;
            }
            if (_controller.IsPressed("P1 Left"))
            {
                ctrl1_byte -= 0x04;
            }
            if (_controller.IsPressed("P1 Right"))
            {
                ctrl1_byte -= 0x08;
            }
            if (_controller.IsPressed("P1 B1"))
            {
                ctrl1_byte -= 0x10;
            }
            if (_controller.IsPressed("P1 B2"))
            {
                ctrl1_byte -= 0x20;
            }

            byte ctrl2_byte = 0xFF;

            if (_controller.IsPressed("P2 Up"))
            {
                ctrl2_byte -= 0x01;
            }
            if (_controller.IsPressed("P2 Down"))
            {
                ctrl2_byte -= 0x02;
            }
            if (_controller.IsPressed("P2 Left"))
            {
                ctrl2_byte -= 0x04;
            }
            if (_controller.IsPressed("P2 Right"))
            {
                ctrl2_byte -= 0x08;
            }
            if (_controller.IsPressed("P2 B1"))
            {
                ctrl2_byte -= 0x10;
            }
            if (_controller.IsPressed("P2 B2"))
            {
                ctrl2_byte -= 0x20;
            }

            if (current_controller == MSXControllerKB)
            {
                kb_rows_check(controller);
            }

            if (Tracer.IsEnabled())
            {
                tracecb = MakeTrace;
            }
            else
            {
                tracecb = null;
            }

            LibMSX.MSX_settracecallback(MSX_Pntr, tracecb);

            LibMSX.MSX_frame_advance(MSX_Pntr, ctrl1_byte, ctrl2_byte, kb_rows, true, true);

            LibMSX.MSX_get_video(MSX_Pntr, _vidbuffer);

            /*
             * int msg_l = LibMSX.MSX_getmessagelength(MSX_Pntr);
             * StringBuilder new_msg = new StringBuilder(msg_l);
             * LibMSX.MSX_getmessage(MSX_Pntr, new_msg, msg_l - 1);
             * Console.WriteLine(new_msg);
             */

            _frame++;

            return(true);
        }