예제 #1
0
        private void InitializeJoyconPair(
            JoyConColor LeftColorBody,
            JoyConColor LeftColorButtons,
            JoyConColor RightColorBody,
            JoyConColor RightColorButtons)
        {
            long BaseControllerOffset = HidPosition + HidControllersOffset + 8 * HidControllerSize;

            HidControllerType Type = HidControllerType.ControllerType_Handheld;

            bool IsHalf = false;

            HidControllerColorDesc SingleColorDesc =
                HidControllerColorDesc.ColorDesc_ColorsNonexistent;

            JoyConColor SingleColorBody    = JoyConColor.Black;
            JoyConColor SingleColorButtons = JoyConColor.Black;

            HidControllerColorDesc SplitColorDesc = 0;

            Device.Memory.WriteInt32(BaseControllerOffset + 0x0, (int)Type);

            Device.Memory.WriteInt32(BaseControllerOffset + 0x4, IsHalf ? 1 : 0);

            Device.Memory.WriteInt32(BaseControllerOffset + 0x8, (int)SingleColorDesc);
            Device.Memory.WriteInt32(BaseControllerOffset + 0xc, (int)SingleColorBody);
            Device.Memory.WriteInt32(BaseControllerOffset + 0x10, (int)SingleColorButtons);
            Device.Memory.WriteInt32(BaseControllerOffset + 0x14, (int)SplitColorDesc);

            Device.Memory.WriteInt32(BaseControllerOffset + 0x18, (int)LeftColorBody);
            Device.Memory.WriteInt32(BaseControllerOffset + 0x1c, (int)LeftColorButtons);

            Device.Memory.WriteInt32(BaseControllerOffset + 0x20, (int)RightColorBody);
            Device.Memory.WriteInt32(BaseControllerOffset + 0x24, (int)RightColorButtons);
        }
예제 #2
0
        public void InitilizePrimaryController(HidControllerType controllerType)
        {
            HidControllerId controllerId = controllerType == HidControllerType.Handheld ?
                                           HidControllerId.ControllerHandheld : HidControllerId.ControllerPlayer1;

            if (controllerType == HidControllerType.ProController)
            {
                PrimaryController = new HidProController(_device);
            }
            else
            {
                PrimaryController = new HidNpadController(controllerType,
                                                          _device,
                                                          (NpadColor.BodyNeonRed, NpadColor.BodyNeonRed),
                                                          (NpadColor.ButtonsNeonBlue, NpadColor.ButtonsNeonBlue));
            }

            PrimaryController.Connect(controllerId);
        }
예제 #3
0
파일: Hid.cs 프로젝트: zhubaojian/Ryujinx
        public void InitilizePrimaryController(HidControllerType ControllerType)
        {
            HidControllerId ControllerId = ControllerType == HidControllerType.Handheld ?
                                           HidControllerId.CONTROLLER_HANDHELD : HidControllerId.CONTROLLER_PLAYER_1;

            if (ControllerType == HidControllerType.ProController)
            {
                PrimaryController = new HidProController(Device);
            }
            else
            {
                PrimaryController = new HidNpadController(ControllerType,
                                                          Device,
                                                          (NpadColor.Body_Neon_Red, NpadColor.Body_Neon_Red),
                                                          (NpadColor.Buttons_Neon_Blue, NpadColor.Buttons_Neon_Blue));
            }

            PrimaryController.Connect(ControllerId);
        }
예제 #4
0
        public static void Read(Switch device)
        {
            string iniFolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

            string iniPath = Path.Combine(iniFolder, "Ryujinx.conf");

            IniParser parser = new IniParser(iniPath);

            GraphicsConfig.ShadersDumpPath = parser.Value("Graphics_Shaders_Dump_Path");

            Logger.SetEnable(LogLevel.Debug, Convert.ToBoolean(parser.Value("Logging_Enable_Debug")));
            Logger.SetEnable(LogLevel.Stub, Convert.ToBoolean(parser.Value("Logging_Enable_Stub")));
            Logger.SetEnable(LogLevel.Info, Convert.ToBoolean(parser.Value("Logging_Enable_Info")));
            Logger.SetEnable(LogLevel.Warning, Convert.ToBoolean(parser.Value("Logging_Enable_Warn")));
            Logger.SetEnable(LogLevel.Error, Convert.ToBoolean(parser.Value("Logging_Enable_Error")));

            string[] filteredLogClasses = parser.Value("Logging_Filtered_Classes").Split(',', StringSplitOptions.RemoveEmptyEntries);

            //When the classes are specified on the list, we only
            //enable the classes that are on the list.
            //So, first disable everything, then enable
            //the classes that the user added to the list.
            if (filteredLogClasses.Length > 0)
            {
                foreach (LogClass Class in Enum.GetValues(typeof(LogClass)))
                {
                    Logger.SetEnable(Class, false);
                }
            }

            foreach (string logClass in filteredLogClasses)
            {
                if (!string.IsNullOrEmpty(logClass.Trim()))
                {
                    foreach (LogClass Class in Enum.GetValues(typeof(LogClass)))
                    {
                        if (Class.ToString().ToLower().Contains(logClass.Trim().ToLower()))
                        {
                            Logger.SetEnable(Class, true);
                        }
                    }
                }
            }

            SystemLanguage SetLanguage = Enum.Parse <SystemLanguage>(parser.Value("System_Language"));

            device.System.State.SetLanguage(SetLanguage);

            device.System.State.DockedMode = Convert.ToBoolean(parser.Value("Docked_Mode"));

            device.EnableDeviceVsync = Convert.ToBoolean(parser.Value("Enable_Vsync"));

            if (Convert.ToBoolean(parser.Value("Enable_MultiCore_Scheduling")))
            {
                device.System.EnableMultiCoreScheduling();
            }

            device.System.FsIntegrityCheckLevel = Convert.ToBoolean(parser.Value("Enable_FS_Integrity_Checks"))
                ? IntegrityCheckLevel.ErrorOnInvalid
                : IntegrityCheckLevel.None;

            HidControllerType ControllerType = Enum.Parse <HidControllerType>(parser.Value("Controller_Type"));

            device.Hid.InitilizePrimaryController(ControllerType);

            NpadKeyboard = new NpadKeyboard(

                new NpadKeyboardLeft
            {
                StickUp     = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Stick_Up")),
                StickDown   = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Stick_Down")),
                StickLeft   = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Stick_Left")),
                StickRight  = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Stick_Right")),
                StickButton = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Stick_Button")),
                DPadUp      = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_DPad_Up")),
                DPadDown    = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_DPad_Down")),
                DPadLeft    = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_DPad_Left")),
                DPadRight   = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_DPad_Right")),
                ButtonMinus = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Button_Minus")),
                ButtonL     = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Button_L")),
                ButtonZl    = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Button_ZL"))
            },

                new NpadKeyboardRight
            {
                StickUp     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Stick_Up")),
                StickDown   = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Stick_Down")),
                StickLeft   = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Stick_Left")),
                StickRight  = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Stick_Right")),
                StickButton = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Stick_Button")),
                ButtonA     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_A")),
                ButtonB     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_B")),
                ButtonX     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_X")),
                ButtonY     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_Y")),
                ButtonPlus  = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_Plus")),
                ButtonR     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_R")),
                ButtonZr    = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_ZR"))
            });

            NpadController = new NpadController(

                Convert.ToBoolean(parser.Value("GamePad_Enable")),
                Convert.ToInt32(parser.Value("GamePad_Index")),
                (float)Convert.ToDouble(parser.Value("GamePad_Deadzone"), CultureInfo.InvariantCulture),
                (float)Convert.ToDouble(parser.Value("GamePad_Trigger_Threshold"), CultureInfo.InvariantCulture),

                new NpadControllerLeft
            {
                Stick       = ToId(parser.Value("Controls_Left_JoyConController_Stick")),
                StickButton = ToId(parser.Value("Controls_Left_JoyConController_Stick_Button")),
                DPadUp      = ToId(parser.Value("Controls_Left_JoyConController_DPad_Up")),
                DPadDown    = ToId(parser.Value("Controls_Left_JoyConController_DPad_Down")),
                DPadLeft    = ToId(parser.Value("Controls_Left_JoyConController_DPad_Left")),
                DPadRight   = ToId(parser.Value("Controls_Left_JoyConController_DPad_Right")),
                ButtonMinus = ToId(parser.Value("Controls_Left_JoyConController_Button_Minus")),
                ButtonL     = ToId(parser.Value("Controls_Left_JoyConController_Button_L")),
                ButtonZl    = ToId(parser.Value("Controls_Left_JoyConController_Button_ZL"))
            },

                new NpadControllerRight
            {
                Stick       = ToId(parser.Value("Controls_Right_JoyConController_Stick")),
                StickButton = ToId(parser.Value("Controls_Right_JoyConController_Stick_Button")),
                ButtonA     = ToId(parser.Value("Controls_Right_JoyConController_Button_A")),
                ButtonB     = ToId(parser.Value("Controls_Right_JoyConController_Button_B")),
                ButtonX     = ToId(parser.Value("Controls_Right_JoyConController_Button_X")),
                ButtonY     = ToId(parser.Value("Controls_Right_JoyConController_Button_Y")),
                ButtonPlus  = ToId(parser.Value("Controls_Right_JoyConController_Button_Plus")),
                ButtonR     = ToId(parser.Value("Controls_Right_JoyConController_Button_R")),
                ButtonZr    = ToId(parser.Value("Controls_Right_JoyConController_Button_ZR"))
            });
        }
예제 #5
0
        public HidControllerBase(HidControllerType controllerType, Switch device)
        {
            Device = device;

            HidControllerType = controllerType;
        }
예제 #6
0
        public HidControllerBase(HidControllerType ControllerType, Switch Device)
        {
            this.Device = Device;

            HidControllerType = ControllerType;
        }