diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/ColecoVisionMultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/ColecoVisionMultiKeysSetting.cs new file mode 100644 index 00000000..d8781b9b --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/ColecoVisionMultiKeysSetting.cs @@ -0,0 +1,85 @@ +using AxibugEmuOnline.Client.Manager; +using UnityEngine; + +namespace Assets.Script.AppMain.AxiInput.Settings +{ + public class ColecoVisionMultiKeysSetting : MultiKeysSettingBase + { + public ColecoVisionMultiKeysSetting() + { + controllers = new ColecoVisionSingleKeysSeting[4]; + for (int i = 0; i < controllers.Length; i++) + controllers[i] = new ColecoVisionSingleKeysSeting(); + } + + public override void LoadDefaultSetting() + { + ClearAll(); + +#if UNITY_PSP2 && !UNITY_EDITOR + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_1, AxiInputEx.ByKeyCode(PSVitaKey.Start)); + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_2, AxiInputEx.ByKeyCode(PSVitaKey.Select)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(PSVitaKey.Up)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(PSVitaKey.Down)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(PSVitaKey.Left)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(PSVitaKey.Right)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(PSVitaKey.Cross)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(PSVitaKey.Circle)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(PSVitaKey.Block)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(PSVitaKey.Triangle)); + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByAxis(AxiInputAxisType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByAxis(AxiInputAxisType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByAxis(AxiInputAxisType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByAxis(AxiInputAxisType.RIGHT)); + controllers[0].ColletAllKey(); + return; +#endif + #region P1 + //P1 键盘 + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Return)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.RightShift)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.W)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.S)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.A)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.D)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.J)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.K)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(KeyCode.U)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(KeyCode.I)); + + //P1 UGUI + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4)); + + //P2 键盘 + controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0)); + controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.Delete)); + controllers[1].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.UpArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.DownArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.LeftArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.RightArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.Keypad1)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.Keypad2)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(KeyCode.Keypad3)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(KeyCode.Keypad4)); + + controllers[0].ColletAllKey(); + #endregion + } + } + + public class ColecoVisionSingleKeysSeting : SingleKeySettingBase + { + } +} + diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/ColecoVisionMultiKeysSetting.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/ColecoVisionMultiKeysSetting.cs.meta new file mode 100644 index 00000000..bf2ae342 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/ColecoVisionMultiKeysSetting.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6febcf958b506d74aadb5e7ea35f1a9d \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyColorMultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyColorMultiKeysSetting.cs new file mode 100644 index 00000000..ee135cf6 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyColorMultiKeysSetting.cs @@ -0,0 +1,68 @@ +using AxibugEmuOnline.Client.Manager; +using UnityEngine; + +namespace Assets.Script.AppMain.AxiInput.Settings +{ + public class GameBoyColorMultiKeysSetting : MultiKeysSettingBase + { + + public GameBoyColorMultiKeysSetting() + { + controllers = new GameBoyColorSingleKeysSeting[4]; + for (int i = 0; i < controllers.Length; i++) + controllers[i] = new GameBoyColorSingleKeysSeting(); + } + + public override void LoadDefaultSetting() + { + ClearAll(); + +#if UNITY_PSP2 && !UNITY_EDITOR + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_1, AxiInputEx.ByKeyCode(PSVitaKey.Start)); + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_2, AxiInputEx.ByKeyCode(PSVitaKey.Select)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(PSVitaKey.Up)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(PSVitaKey.Down)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(PSVitaKey.Left)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(PSVitaKey.Right)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(PSVitaKey.Cross)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(PSVitaKey.Circle)); + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByAxis(AxiInputAxisType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByAxis(AxiInputAxisType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByAxis(AxiInputAxisType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByAxis(AxiInputAxisType.RIGHT)); + controllers[0].ColletAllKey(); + return; +#endif + #region P1 + //P1 键盘 + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Return)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.RightShift)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.W)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.S)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.A)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.D)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.J)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.K)); + + //P1 UGUI + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2)); + + controllers[0].ColletAllKey(); + #endregion + } + } + + public class GameBoyColorSingleKeysSeting : SingleKeySettingBase + { + } +} + diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyColorMultiKeysSetting.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyColorMultiKeysSetting.cs.meta new file mode 100644 index 00000000..3021c891 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyColorMultiKeysSetting.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 98e9f2994f6a07c4fb69339055653348 \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyMultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyMultiKeysSetting.cs new file mode 100644 index 00000000..7c5fb01c --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyMultiKeysSetting.cs @@ -0,0 +1,68 @@ +using AxibugEmuOnline.Client.Manager; +using UnityEngine; + +namespace Assets.Script.AppMain.AxiInput.Settings +{ + public class GameBoyMultiKeysSetting : MultiKeysSettingBase + { + + public GameBoyMultiKeysSetting() + { + controllers = new GameBoySingleKeysSeting[4]; + for (int i = 0; i < controllers.Length; i++) + controllers[i] = new GameBoySingleKeysSeting(); + } + + public override void LoadDefaultSetting() + { + ClearAll(); + +#if UNITY_PSP2 && !UNITY_EDITOR + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_1, AxiInputEx.ByKeyCode(PSVitaKey.Start)); + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_2, AxiInputEx.ByKeyCode(PSVitaKey.Select)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(PSVitaKey.Up)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(PSVitaKey.Down)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(PSVitaKey.Left)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(PSVitaKey.Right)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(PSVitaKey.Cross)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(PSVitaKey.Circle)); + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByAxis(AxiInputAxisType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByAxis(AxiInputAxisType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByAxis(AxiInputAxisType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByAxis(AxiInputAxisType.RIGHT)); + controllers[0].ColletAllKey(); + return; +#endif + #region P1 + //P1 键盘 + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Return)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.RightShift)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.W)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.S)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.A)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.D)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.J)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.K)); + + //P1 UGUI + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2)); + + controllers[0].ColletAllKey(); + #endregion + } + } + + public class GameBoySingleKeysSeting : SingleKeySettingBase + { + } +} + diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyMultiKeysSetting.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyMultiKeysSetting.cs.meta new file mode 100644 index 00000000..4347d222 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameBoyMultiKeysSetting.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 42485ea83f647924e9e8a8db04c8b351 \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameGearMultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameGearMultiKeysSetting.cs new file mode 100644 index 00000000..5e7dc5fd --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameGearMultiKeysSetting.cs @@ -0,0 +1,85 @@ +using AxibugEmuOnline.Client.Manager; +using UnityEngine; + +namespace Assets.Script.AppMain.AxiInput.Settings +{ + public class GameGearMultiKeysSetting : MultiKeysSettingBase + { + public GameGearMultiKeysSetting() + { + controllers = new GameGearSingleKeysSeting[4]; + for (int i = 0; i < controllers.Length; i++) + controllers[i] = new GameGearSingleKeysSeting(); + } + + public override void LoadDefaultSetting() + { + ClearAll(); + +#if UNITY_PSP2 && !UNITY_EDITOR + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_1, AxiInputEx.ByKeyCode(PSVitaKey.Start)); + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_2, AxiInputEx.ByKeyCode(PSVitaKey.Select)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(PSVitaKey.Up)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(PSVitaKey.Down)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(PSVitaKey.Left)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(PSVitaKey.Right)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(PSVitaKey.Cross)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(PSVitaKey.Circle)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(PSVitaKey.Block)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(PSVitaKey.Triangle)); + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByAxis(AxiInputAxisType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByAxis(AxiInputAxisType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByAxis(AxiInputAxisType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByAxis(AxiInputAxisType.RIGHT)); + controllers[0].ColletAllKey(); + return; +#endif + #region P1 + //P1 键盘 + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Return)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.RightShift)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.W)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.S)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.A)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.D)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.J)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.K)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(KeyCode.U)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(KeyCode.I)); + + //P1 UGUI + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4)); + + //P2 键盘 + controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0)); + controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.Delete)); + controllers[1].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.UpArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.DownArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.LeftArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.RightArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.Keypad1)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.Keypad2)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(KeyCode.Keypad3)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(KeyCode.Keypad4)); + + controllers[0].ColletAllKey(); + #endregion + } + } + + public class GameGearSingleKeysSeting : SingleKeySettingBase + { + } +} + diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameGearMultiKeysSetting.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameGearMultiKeysSetting.cs.meta new file mode 100644 index 00000000..d0b9847a --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GameGearMultiKeysSetting.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1f1d4c32b29ac4740945cb36c4442f70 \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/MasterSystemMultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/MasterSystemMultiKeysSetting.cs new file mode 100644 index 00000000..de8d7491 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/MasterSystemMultiKeysSetting.cs @@ -0,0 +1,102 @@ +using AxibugEmuOnline.Client.Manager; +using System; +using UnityEngine; + +namespace Assets.Script.AppMain.AxiInput.Settings +{ + [Flags] + public enum EssgeeSingleKey : ushort + { + NONE = 0, + UP = 1, + DOWN = 1 << 1, + LEFT = 1 << 2, + RIGHT = 1 << 3, + BTN_1 = 1 << 4, + BTN_2 = 1 << 5, + BTN_3 = 1 << 6, + BTN_4 = 1 << 7, + OPTION_1 = 1 << 8, + OPTION_2 = 1 << 9, + } + public class MasterSystemMultiKeysSetting : MultiKeysSettingBase + { + + public MasterSystemMultiKeysSetting() + { + controllers = new MasterSystemSingleKeysSeting[4]; + for (int i = 0; i < controllers.Length; i++) + controllers[i] = new MasterSystemSingleKeysSeting(); + } + + public override void LoadDefaultSetting() + { + ClearAll(); + +#if UNITY_PSP2 && !UNITY_EDITOR + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_1, AxiInputEx.ByKeyCode(PSVitaKey.Start)); + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_2, AxiInputEx.ByKeyCode(PSVitaKey.Select)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(PSVitaKey.Up)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(PSVitaKey.Down)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(PSVitaKey.Left)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(PSVitaKey.Right)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(PSVitaKey.Cross)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(PSVitaKey.Circle)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(PSVitaKey.Block)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(PSVitaKey.Triangle)); + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByAxis(AxiInputAxisType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByAxis(AxiInputAxisType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByAxis(AxiInputAxisType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByAxis(AxiInputAxisType.RIGHT)); + controllers[0].ColletAllKey(); + return; +#endif + #region P1 + //P1 键盘 + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Return)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.RightShift)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.W)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.S)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.A)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.D)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.J)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.K)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(KeyCode.U)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(KeyCode.I)); + + //P1 UGUI + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4)); + + //P2 键盘 + controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0)); + controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.Delete)); + controllers[1].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.UpArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.DownArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.LeftArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.RightArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.Keypad1)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.Keypad2)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(KeyCode.Keypad3)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(KeyCode.Keypad4)); + + controllers[0].ColletAllKey(); + #endregion + } + } + + public class MasterSystemSingleKeysSeting : SingleKeySettingBase + { + } +} + diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/MasterSystemMultiKeysSetting.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/MasterSystemMultiKeysSetting.cs.meta new file mode 100644 index 00000000..46440769 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/MasterSystemMultiKeysSetting.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e3d5584a82b098141bf0c415938daf84 \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/NESMultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/NESMultiKeysSetting.cs new file mode 100644 index 00000000..e8aa0115 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/NESMultiKeysSetting.cs @@ -0,0 +1,79 @@ +using AxibugEmuOnline.Client.Manager; +using UnityEngine; +using VirtualNes.Core; + +namespace Assets.Script.AppMain.AxiInput.Settings +{ + public class NESMultiKeysSetting : MultiKeysSettingBase + { + public NESMultiKeysSetting() + { + controllers = new NESSingleKeysSeting[4]; + for (int i = 0; i < controllers.Length; i++) + controllers[i] = new NESSingleKeysSeting(); + } + + public override void LoadDefaultSetting() + { + ClearAll(); +#if UNITY_PSP2 && !UNITY_EDITOR + //PSV 摇杆 + controllers[0].SetKey((ulong)EnumButtonType.START, AxiInputEx.ByKeyCode(PSVitaKey.Start)); + controllers[0].SetKey((ulong)EnumButtonType.SELECT, AxiInputEx.ByKeyCode(PSVitaKey.Select)); + controllers[0].SetKey((ulong)EnumButtonType.UP, AxiInputEx.ByKeyCode(PSVitaKey.Up)); + controllers[0].SetKey((ulong)EnumButtonType.DOWN, AxiInputEx.ByKeyCode(PSVitaKey.Down)); + controllers[0].SetKey((ulong)EnumButtonType.LEFT, AxiInputEx.ByKeyCode(PSVitaKey.Left)); + controllers[0].SetKey((ulong)EnumButtonType.RIGHT, AxiInputEx.ByKeyCode(PSVitaKey.Right)); + controllers[0].SetKey((ulong)EnumButtonType.A, AxiInputEx.ByKeyCode(PSVitaKey.Cross)); + controllers[0].SetKey((ulong)EnumButtonType.B, AxiInputEx.ByKeyCode(PSVitaKey.Circle)); + controllers[0].SetKey((ulong)EnumButtonType.MIC, AxiInputEx.ByKeyCode(PSVitaKey.Block)); + //PSV 摇杆 + controllers[0].SetKey((ulong)EnumButtonType.UP, AxiInputEx.ByAxis(AxiInputAxisType.UP)); + controllers[0].SetKey((ulong)EnumButtonType.DOWN, AxiInputEx.ByAxis(AxiInputAxisType.DOWN)); + controllers[0].SetKey((ulong)EnumButtonType.LEFT, AxiInputEx.ByAxis(AxiInputAxisType.LEFT)); + controllers[0].SetKey((ulong)EnumButtonType.RIGHT, AxiInputEx.ByAxis(AxiInputAxisType.RIGHT)); + controllers[0].ColletAllKey(); + return; +#endif + #region P1 + //P1 键盘 + controllers[0].SetKey((ulong)EnumButtonType.START, AxiInputEx.ByKeyCode(KeyCode.Return)); + controllers[0].SetKey((ulong)EnumButtonType.SELECT, AxiInputEx.ByKeyCode(KeyCode.RightShift)); + controllers[0].SetKey((ulong)EnumButtonType.UP, AxiInputEx.ByKeyCode(KeyCode.W)); + controllers[0].SetKey((ulong)EnumButtonType.DOWN, AxiInputEx.ByKeyCode(KeyCode.S)); + controllers[0].SetKey((ulong)EnumButtonType.LEFT, AxiInputEx.ByKeyCode(KeyCode.A)); + controllers[0].SetKey((ulong)EnumButtonType.RIGHT, AxiInputEx.ByKeyCode(KeyCode.D)); + controllers[0].SetKey((ulong)EnumButtonType.A, AxiInputEx.ByKeyCode(KeyCode.K)); + controllers[0].SetKey((ulong)EnumButtonType.B, AxiInputEx.ByKeyCode(KeyCode.J)); + controllers[0].SetKey((ulong)EnumButtonType.MIC, AxiInputEx.ByKeyCode(KeyCode.U)); + + //P1 UGUI + controllers[0].SetKey((ulong)EnumButtonType.START, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_1)); + controllers[0].SetKey((ulong)EnumButtonType.SELECT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_2)); + controllers[0].SetKey((ulong)EnumButtonType.UP, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.UP)); + controllers[0].SetKey((ulong)EnumButtonType.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN)); + controllers[0].SetKey((ulong)EnumButtonType.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT)); + controllers[0].SetKey((ulong)EnumButtonType.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT)); + controllers[0].SetKey((ulong)EnumButtonType.A, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2)); + controllers[0].SetKey((ulong)EnumButtonType.B, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1)); + controllers[0].SetKey((ulong)EnumButtonType.MIC, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3)); + + //P2 键盘 + controllers[1].SetKey((ulong)EnumButtonType.START, AxiInputEx.ByKeyCode(KeyCode.Keypad0)); + controllers[1].SetKey((ulong)EnumButtonType.SELECT, AxiInputEx.ByKeyCode(KeyCode.Delete)); + controllers[1].SetKey((ulong)EnumButtonType.UP, AxiInputEx.ByKeyCode(KeyCode.UpArrow)); + controllers[1].SetKey((ulong)EnumButtonType.DOWN, AxiInputEx.ByKeyCode(KeyCode.DownArrow)); + controllers[1].SetKey((ulong)EnumButtonType.LEFT, AxiInputEx.ByKeyCode(KeyCode.LeftArrow)); + controllers[1].SetKey((ulong)EnumButtonType.RIGHT, AxiInputEx.ByKeyCode(KeyCode.RightArrow)); + controllers[1].SetKey((ulong)EnumButtonType.A, AxiInputEx.ByKeyCode(KeyCode.Keypad2)); + controllers[1].SetKey((ulong)EnumButtonType.B, AxiInputEx.ByKeyCode(KeyCode.Keypad1)); + controllers[1].SetKey((ulong)EnumButtonType.MIC, AxiInputEx.ByKeyCode(KeyCode.Keypad4)); + + controllers[0].ColletAllKey(); + #endregion + } + } + public class NESSingleKeysSeting : SingleKeySettingBase + { + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/NESMultiKeysSetting.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/NESMultiKeysSetting.cs.meta new file mode 100644 index 00000000..f0258e9f --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/NESMultiKeysSetting.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6556ff70f8cab73438e5fb7755808a3c \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SC3000MultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SC3000MultiKeysSetting.cs new file mode 100644 index 00000000..9bafd17f --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SC3000MultiKeysSetting.cs @@ -0,0 +1,85 @@ +using AxibugEmuOnline.Client.Manager; +using UnityEngine; + +namespace Assets.Script.AppMain.AxiInput.Settings +{ + public class SC3000MultiKeysSetting : MultiKeysSettingBase + { + public SC3000MultiKeysSetting() + { + controllers = new SC3000SingleKeysSeting[4]; + for (int i = 0; i < controllers.Length; i++) + controllers[i] = new SC3000SingleKeysSeting(); + } + + public override void LoadDefaultSetting() + { + ClearAll(); + +#if UNITY_PSP2 && !UNITY_EDITOR + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_1, AxiInputEx.ByKeyCode(PSVitaKey.Start)); + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_2, AxiInputEx.ByKeyCode(PSVitaKey.Select)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(PSVitaKey.Up)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(PSVitaKey.Down)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(PSVitaKey.Left)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(PSVitaKey.Right)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(PSVitaKey.Cross)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(PSVitaKey.Circle)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(PSVitaKey.Block)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(PSVitaKey.Triangle)); + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByAxis(AxiInputAxisType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByAxis(AxiInputAxisType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByAxis(AxiInputAxisType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByAxis(AxiInputAxisType.RIGHT)); + controllers[0].ColletAllKey(); + return; +#endif + #region P1 + //P1 键盘 + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Return)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.RightShift)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.W)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.S)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.A)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.D)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.J)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.K)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(KeyCode.U)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(KeyCode.I)); + + //P1 UGUI + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4)); + + //P2 键盘 + controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0)); + controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.Delete)); + controllers[1].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.UpArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.DownArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.LeftArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.RightArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.Keypad1)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.Keypad2)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(KeyCode.Keypad3)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(KeyCode.Keypad4)); + + controllers[0].ColletAllKey(); + #endregion + } + } + + public class SC3000SingleKeysSeting : SingleKeySettingBase + { + } +} + diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SC3000MultiKeysSetting.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SC3000MultiKeysSetting.cs.meta new file mode 100644 index 00000000..18f06e0f --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SC3000MultiKeysSetting.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bee2b8a3f5efaec47b9b363eeaa03160 \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SG1000MultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SG1000MultiKeysSetting.cs new file mode 100644 index 00000000..2324e159 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SG1000MultiKeysSetting.cs @@ -0,0 +1,85 @@ +using AxibugEmuOnline.Client.Manager; +using UnityEngine; + +namespace Assets.Script.AppMain.AxiInput.Settings +{ + public class SG1000MultiKeysSetting : MultiKeysSettingBase + { + public SG1000MultiKeysSetting() + { + controllers = new SG1000SingleKeysSeting[4]; + for (int i = 0; i < controllers.Length; i++) + controllers[i] = new SG1000SingleKeysSeting(); + } + + public override void LoadDefaultSetting() + { + ClearAll(); + +#if UNITY_PSP2 && !UNITY_EDITOR + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_1, AxiInputEx.ByKeyCode(PSVitaKey.Start)); + controllers[0].SetKey((ulong)EssgeeSingleKey.POTION_2, AxiInputEx.ByKeyCode(PSVitaKey.Select)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(PSVitaKey.Up)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(PSVitaKey.Down)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(PSVitaKey.Left)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(PSVitaKey.Right)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(PSVitaKey.Cross)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(PSVitaKey.Circle)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(PSVitaKey.Block)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(PSVitaKey.Triangle)); + //PSV 摇杆 + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByAxis(AxiInputAxisType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByAxis(AxiInputAxisType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByAxis(AxiInputAxisType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByAxis(AxiInputAxisType.RIGHT)); + controllers[0].ColletAllKey(); + return; +#endif + #region P1 + //P1 键盘 + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Return)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.RightShift)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.W)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.S)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.A)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.D)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.J)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.K)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(KeyCode.U)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(KeyCode.I)); + + //P1 UGUI + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.POTION_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.UP)); + controllers[0].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.DOWN)); + controllers[0].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.LEFT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.RIGHT)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_1)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_2)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_3)); + controllers[0].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByUGUIBtn(AxiInputUGuiBtnType.BTN_4)); + + //P2 键盘 + controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_1, AxiInputEx.ByKeyCode(KeyCode.Keypad0)); + controllers[1].SetKey((ulong)EssgeeSingleKey.OPTION_2, AxiInputEx.ByKeyCode(KeyCode.Delete)); + controllers[1].SetKey((ulong)EssgeeSingleKey.UP, AxiInputEx.ByKeyCode(KeyCode.UpArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.DOWN, AxiInputEx.ByKeyCode(KeyCode.DownArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.LEFT, AxiInputEx.ByKeyCode(KeyCode.LeftArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.RIGHT, AxiInputEx.ByKeyCode(KeyCode.RightArrow)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_1, AxiInputEx.ByKeyCode(KeyCode.Keypad1)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_2, AxiInputEx.ByKeyCode(KeyCode.Keypad2)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_3, AxiInputEx.ByKeyCode(KeyCode.Keypad3)); + controllers[1].SetKey((ulong)EssgeeSingleKey.BTN_4, AxiInputEx.ByKeyCode(KeyCode.Keypad4)); + + controllers[0].ColletAllKey(); + #endregion + } + } + + public class SG1000SingleKeysSeting : SingleKeySettingBase + { + } +} + diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SG1000MultiKeysSetting.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SG1000MultiKeysSetting.cs.meta new file mode 100644 index 00000000..8840360a --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/SG1000MultiKeysSetting.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 771225d8fe367ac42b6b91adf81ca27f \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/UMAMEMultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/UMAMEMultiKeysSetting.cs index 6d291e2d..0e8c96b0 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/UMAMEMultiKeysSetting.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/UMAMEMultiKeysSetting.cs @@ -22,7 +22,7 @@ namespace Assets.Script.AppMain.AxiInput.Settings { public UMAMEMultiKeysSetting() { - controllers = new UMAMEKSingleKeysSeting[1]; + controllers = new UMAMEKSingleKeysSeting[4]; for (int i = 0; i < controllers.Length; i++) controllers[i] = new UMAMEKSingleKeysSeting(); } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGKeyboard.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGKeyboard.cs index 123cf91f..ba77e66a 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGKeyboard.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGKeyboard.cs @@ -1,11 +1,14 @@ +using Assets.Script.AppMain.AxiInput.Settings; using AxibugEmuOnline.Client; using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.Event; +using AxibugEmuOnline.Client.Manager; using AxiReplay; using System; using System.Collections.Generic; using System.Linq; using UnityEngine; +using static Assets.Script.AppMain.AxiInput.Settings.MasterSystemMultiKeysSetting; public class UEGKeyboard : MonoBehaviour { @@ -539,7 +542,7 @@ public class EssgeeControllerMapper : IControllerSetuper } public class EssgssSingleController : IController { - public KeyCode UP, DOWN, LEFT, RIGHT, BTN_1, BTN_2, BTN_3, BTN_4, OPTION_1, OPTION_2; + //public KeyCode UP, DOWN, LEFT, RIGHT, BTN_1, BTN_2, BTN_3, BTN_4, OPTION_1, OPTION_2; public ulong tg_UP, tg_DOWN, tg_LEFT, tg_RIGHT, tg_BTN_1, tg_BTN_2, tg_BTN_3, tg_BTN_4, tg_OPTION_1, tg_OPTION_2; public ulong CurrLocalSingleAllInput { get; private set; } @@ -566,7 +569,7 @@ public class EssgssSingleController : IController public int ControllerIndex { get { return mControllerIndex; } - set { mControllerIndex = value; this.LoadControlKeyForConfig(); } + set { mControllerIndex = value; /*this.LoadControlKeyForConfig();*/ } } public EssgssSingleController(int controllerIndex) @@ -576,33 +579,65 @@ public class EssgssSingleController : IController public bool AnyButtonDown() { - if (Input.GetKeyDown(UP)) return true; - if (Input.GetKeyDown(DOWN)) return true; - if (Input.GetKeyDown(LEFT)) return true; - if (Input.GetKeyDown(RIGHT)) return true; - if (Input.GetKeyDown(BTN_1)) return true; - if (Input.GetKeyDown(BTN_2)) return true; - if (Input.GetKeyDown(BTN_3)) return true; - if (Input.GetKeyDown(BTN_4)) return true; - if (Input.GetKeyDown(OPTION_1)) return true; - if (Input.GetKeyDown(OPTION_2)) return true; - return false; + //if (Input.GetKeyDown(UP)) return true; + //if (Input.GetKeyDown(DOWN)) return true; + //if (Input.GetKeyDown(LEFT)) return true; + //if (Input.GetKeyDown(RIGHT)) return true; + //if (Input.GetKeyDown(BTN_1)) return true; + //if (Input.GetKeyDown(BTN_2)) return true; + //if (Input.GetKeyDown(BTN_3)) return true; + //if (Input.GetKeyDown(BTN_4)) return true; + //if (Input.GetKeyDown(OPTION_1)) return true; + //if (Input.GetKeyDown(OPTION_2)) return true; + //return false; + + return GetSingleKeys().HadAnyKeyDown(); } + + public SingleKeySettingBase GetSingleKeys() + { + switch (UEssgee.instance.Platform) + { + case AxibugProtobuf.RomPlatformType.MasterSystem: return App.input.sms.controllers[mControllerIndex]; + case AxibugProtobuf.RomPlatformType.GameBoy: return App.input.gb.controllers[mControllerIndex]; + case AxibugProtobuf.RomPlatformType.GameBoyColor: return App.input.gbc.controllers[mControllerIndex]; + case AxibugProtobuf.RomPlatformType.ColecoVision: return App.input.cv.controllers[mControllerIndex]; + case AxibugProtobuf.RomPlatformType.GameGear: return App.input.gg.controllers[mControllerIndex]; + case AxibugProtobuf.RomPlatformType.Sc3000: return App.input.sc3000.controllers[mControllerIndex]; + case AxibugProtobuf.RomPlatformType.Sg1000: return App.input.sg1000.controllers[mControllerIndex]; + default: throw new NotImplementedException("err essgee platform"); + } + } + public ulong GetSingleAllInput() { if (!ConnectSlot.HasValue) return 0; CurrLocalSingleAllInput = 0; - if (Input.GetKey(UP)) CurrLocalSingleAllInput |= (ulong)tg_UP; - if (Input.GetKey(DOWN)) CurrLocalSingleAllInput |= (ulong)tg_DOWN; - if (Input.GetKey(LEFT)) CurrLocalSingleAllInput |= (ulong)tg_LEFT; - if (Input.GetKey(RIGHT)) CurrLocalSingleAllInput |= (ulong)tg_RIGHT; - if (Input.GetKey(BTN_1)) CurrLocalSingleAllInput |= (ulong)tg_BTN_1; - if (Input.GetKey(BTN_2)) CurrLocalSingleAllInput |= (ulong)tg_BTN_2; - if (Input.GetKey(BTN_3)) CurrLocalSingleAllInput |= (ulong)tg_BTN_3; - if (Input.GetKey(BTN_4)) CurrLocalSingleAllInput |= (ulong)tg_BTN_4; - if (Input.GetKey(OPTION_1)) CurrLocalSingleAllInput |= (ulong)tg_OPTION_1; - if (Input.GetKey(OPTION_2)) CurrLocalSingleAllInput |= (ulong)tg_OPTION_1; + + SingleKeySettingBase essgeeKeys = GetSingleKeys(); + + if (essgeeKeys.GetKey((ulong)EssgeeSingleKey.UP)) CurrLocalSingleAllInput |= (ulong)tg_UP; + if (essgeeKeys.GetKey((ulong)EssgeeSingleKey.DOWN)) CurrLocalSingleAllInput |= (ulong)tg_DOWN; + if (essgeeKeys.GetKey((ulong)EssgeeSingleKey.LEFT)) CurrLocalSingleAllInput |= (ulong)tg_LEFT; + if (essgeeKeys.GetKey((ulong)EssgeeSingleKey.RIGHT)) CurrLocalSingleAllInput |= (ulong)tg_RIGHT; + if (essgeeKeys.GetKey((ulong)EssgeeSingleKey.BTN_1)) CurrLocalSingleAllInput |= (ulong)tg_BTN_1; + if (essgeeKeys.GetKey((ulong)EssgeeSingleKey.BTN_2)) CurrLocalSingleAllInput |= (ulong)tg_BTN_2; + if (essgeeKeys.GetKey((ulong)EssgeeSingleKey.BTN_3)) CurrLocalSingleAllInput |= (ulong)tg_BTN_3; + if (essgeeKeys.GetKey((ulong)EssgeeSingleKey.BTN_4)) CurrLocalSingleAllInput |= (ulong)tg_BTN_4; + if (essgeeKeys.GetKey((ulong)EssgeeSingleKey.OPTION_1)) CurrLocalSingleAllInput |= (ulong)tg_OPTION_1; + if (essgeeKeys.GetKey((ulong)EssgeeSingleKey.OPTION_2)) CurrLocalSingleAllInput |= (ulong)tg_OPTION_2; + + //if (Input.GetKey(UP)) CurrLocalSingleAllInput |= (ulong)tg_UP; + //if (Input.GetKey(DOWN)) CurrLocalSingleAllInput |= (ulong)tg_DOWN; + //if (Input.GetKey(LEFT)) CurrLocalSingleAllInput |= (ulong)tg_LEFT; + //if (Input.GetKey(RIGHT)) CurrLocalSingleAllInput |= (ulong)tg_RIGHT; + //if (Input.GetKey(BTN_1)) CurrLocalSingleAllInput |= (ulong)tg_BTN_1; + //if (Input.GetKey(BTN_2)) CurrLocalSingleAllInput |= (ulong)tg_BTN_2; + //if (Input.GetKey(BTN_3)) CurrLocalSingleAllInput |= (ulong)tg_BTN_3; + //if (Input.GetKey(BTN_4)) CurrLocalSingleAllInput |= (ulong)tg_BTN_4; + //if (Input.GetKey(OPTION_1)) CurrLocalSingleAllInput |= (ulong)tg_OPTION_1; + //if (Input.GetKey(OPTION_2)) CurrLocalSingleAllInput |= (ulong)tg_OPTION_1; return CurrLocalSingleAllInput; } } @@ -610,41 +645,41 @@ public class EssgssSingleController : IController public static class EssgssSingleControllerSetter { - public static void LoadControlKeyForConfig(this EssgssSingleController singlecontrol) - { - //TODO �ȴ�֧�����ã���ͳһ - switch (singlecontrol.ControllerIndex) - { - case 0: - singlecontrol.UP = KeyCode.W; - singlecontrol.DOWN = KeyCode.S; - singlecontrol.LEFT = KeyCode.A; - singlecontrol.RIGHT = KeyCode.D; - singlecontrol.BTN_1 = KeyCode.J; - singlecontrol.BTN_2 = KeyCode.K; - singlecontrol.BTN_3 = KeyCode.L; - singlecontrol.BTN_4 = KeyCode.U; - singlecontrol.OPTION_1 = KeyCode.Return; - singlecontrol.OPTION_2 = KeyCode.LeftShift; - break; - case 1: - singlecontrol.UP = KeyCode.UpArrow; - singlecontrol.DOWN = KeyCode.DownArrow; - singlecontrol.LEFT = KeyCode.LeftArrow; - singlecontrol.RIGHT = KeyCode.RightArrow; - singlecontrol.BTN_1 = KeyCode.Keypad1; - singlecontrol.BTN_2 = KeyCode.Keypad2; - singlecontrol.BTN_3 = KeyCode.Keypad3; - singlecontrol.BTN_4 = KeyCode.Keypad4; - singlecontrol.OPTION_1 = KeyCode.Keypad0; - singlecontrol.OPTION_2 = KeyCode.KeypadPeriod; - break; - case 2: - break; - case 3: - break; - } - } + //public static void LoadControlKeyForConfig(this EssgssSingleController singlecontrol) + //{ + // //TODO �ȴ�֧�����ã���ͳһ + // switch (singlecontrol.ControllerIndex) + // { + // case 0: + // singlecontrol.UP = KeyCode.W; + // singlecontrol.DOWN = KeyCode.S; + // singlecontrol.LEFT = KeyCode.A; + // singlecontrol.RIGHT = KeyCode.D; + // singlecontrol.BTN_1 = KeyCode.J; + // singlecontrol.BTN_2 = KeyCode.K; + // singlecontrol.BTN_3 = KeyCode.L; + // singlecontrol.BTN_4 = KeyCode.U; + // singlecontrol.OPTION_1 = KeyCode.Return; + // singlecontrol.OPTION_2 = KeyCode.LeftShift; + // break; + // case 1: + // singlecontrol.UP = KeyCode.UpArrow; + // singlecontrol.DOWN = KeyCode.DownArrow; + // singlecontrol.LEFT = KeyCode.LeftArrow; + // singlecontrol.RIGHT = KeyCode.RightArrow; + // singlecontrol.BTN_1 = KeyCode.Keypad1; + // singlecontrol.BTN_2 = KeyCode.Keypad2; + // singlecontrol.BTN_3 = KeyCode.Keypad3; + // singlecontrol.BTN_4 = KeyCode.Keypad4; + // singlecontrol.OPTION_1 = KeyCode.Keypad0; + // singlecontrol.OPTION_2 = KeyCode.KeypadPeriod; + // break; + // case 2: + // break; + // case 3: + // break; + // } + //} public static void ResetTargetMotionKey(this EssgssSingleController singlecontrol) { if (!singlecontrol.ConnectSlot.HasValue) @@ -688,7 +723,6 @@ public static class EssgssSingleControllerSetter singlecontrol.tg_OPTION_1 = EssgeeUnityKey.P2_POTION_1; singlecontrol.tg_OPTION_2 = EssgeeUnityKey.P2_POTION_2; break; - //�����ĺ� ֧��P3 P4 case 2: singlecontrol.tg_UP = EssgeeUnityKey.P3_UP; singlecontrol.tg_DOWN = EssgeeUnityKey.P3_DOWN; diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGMouse.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGMouse.cs deleted file mode 100644 index 1c64b41f..00000000 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGMouse.cs +++ /dev/null @@ -1,23 +0,0 @@ -//using MAME.Core; -//using UnityEngine; - -//public class UEGMouse : MonoBehaviour, IMouse -//{ -// static int mX, mY; -// public byte[] buttons = new byte[2]; -// void Update() -// { -// mX = (int)Input.mousePosition.x; -// mY = (int)Input.mousePosition.y; -// buttons[0] = Input.GetMouseButton(0) ? (byte)1 : (byte)0; -// buttons[1] = Input.GetMouseButton(1) ? (byte)1 : (byte)0; -// } - -// public void MouseXY(out int X, out int Y, out byte[] MouseButtons) -// { -// X = mX; -// Y = mY * -1; -// MouseButtons = buttons; -// } - -//} diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGMouse.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGMouse.cs.meta deleted file mode 100644 index cb734ce3..00000000 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/EssgeeEmulator/UEssgeeInterface/UEGMouse.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5000dd7c855d83549b136afe42b2bb47 \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/AudioProvider.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/AudioProvider.cs index 18c9a4a0..6fe3044e 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/AudioProvider.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/AudioProvider.cs @@ -1,4 +1,5 @@ -using UnityEngine; +using AxibugEmuOnline.Client.ClientCore; +using UnityEngine; using VirtualNes.Core; namespace AxibugEmuOnline.Client @@ -13,13 +14,25 @@ namespace AxibugEmuOnline.Client private SoundBuffer _buffer = new SoundBuffer(4096); public void Start() { + + //// 获取当前音频配置 + //AudioConfiguration config = AudioSettings.GetConfiguration(); + //// 设置目标音频配置 + //config.sampleRate = 44100; // 采样率 + //config.numRealVoices = 32; // 设置最大音频源数量(可选) + //config.numVirtualVoices = 512; // 设置虚拟音频源数量(可选) + //config.dspBufferSize = 1024; // 设置 DSP 缓冲区大小(可选) + //config.speakerMode = AudioSpeakerMode.Stereo; // 设置为立体声(2 声道) + App.audioMgr.SetAudioConfig(new AudioConfiguration()); + //TODO 采样率需要更准确,而且和clip并没有关系 - var dummy = AudioClip.Create("dummy", 1, 1, AudioSettings.outputSampleRate, false); - dummy.SetData(new float[] { 1 }, 0); - m_as.clip = dummy; //just to let unity play the audiosource + //var dummy = AudioClip.Create("dummy", 1, 1, AudioSettings.outputSampleRate, false); + //dummy.SetData(new float[] { 1 }, 0); + //m_as.clip = dummy; //just to let unity play the audiosource m_as.loop = true; m_as.spatialBlend = 1; m_as.Play(); + } public void GetAudioParams(out int frequency, out int channels) { diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesControllerMapper.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesControllerMapper.cs index f2b58e5d..71bea9b2 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesControllerMapper.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/NesEmulator/NesControllerMapper.cs @@ -1,5 +1,7 @@ -using AxibugEmuOnline.Client.Common; +using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.Common; using AxibugEmuOnline.Client.Event; +using NUnit.Framework.Internal; using System.Collections.Generic; using System.Linq; using UnityEngine; @@ -133,59 +135,70 @@ namespace AxibugEmuOnline.Client /// </summary> public uint? ConnectSlot { get; set; } - public Button UP { get; } - public Button DOWN { get; } - public Button LEFT { get; } - public Button RIGHT { get; } - public Button A { get; } - public Button B { get; } - public Button SELECT { get; } - public Button START { get; } - public Button MIC { get; } + //public Button UP { get; } + //public Button DOWN { get; } + //public Button LEFT { get; } + //public Button RIGHT { get; } + //public Button A { get; } + //public Button B { get; } + //public Button SELECT { get; } + //public Button START { get; } + //public Button MIC { get; } public Controller(int controllerIndex) { ControllerIndex = controllerIndex; - UP = new Button(this, EnumButtonType.UP); - DOWN = new Button(this, EnumButtonType.DOWN); - LEFT = new Button(this, EnumButtonType.LEFT); - RIGHT = new Button(this, EnumButtonType.RIGHT); - A = new Button(this, EnumButtonType.A); - B = new Button(this, EnumButtonType.B); - SELECT = new Button(this, EnumButtonType.SELECT); - START = new Button(this, EnumButtonType.START); - MIC = new Button(this, EnumButtonType.MIC); + //UP = new Button(this, EnumButtonType.UP); + //DOWN = new Button(this, EnumButtonType.DOWN); + //LEFT = new Button(this, EnumButtonType.LEFT); + //RIGHT = new Button(this, EnumButtonType.RIGHT); + //A = new Button(this, EnumButtonType.A); + //B = new Button(this, EnumButtonType.B); + //SELECT = new Button(this, EnumButtonType.SELECT); + //START = new Button(this, EnumButtonType.START); + //MIC = new Button(this, EnumButtonType.MIC); } public EnumButtonType GetButtons() { EnumButtonType res = 0; - res |= UP.SampleKey(); - res |= DOWN.SampleKey(); - res |= LEFT.SampleKey(); - res |= RIGHT.SampleKey(); - res |= A.SampleKey(); - res |= B.SampleKey(); - res |= SELECT.SampleKey(); - res |= START.SampleKey(); - res |= MIC.SampleKey(); + if(App.input.nes.controllers[ControllerIndex].GetKey((ulong)EnumButtonType.UP)) res |= EnumButtonType.UP; + if(App.input.nes.controllers[ControllerIndex].GetKey((ulong)EnumButtonType.DOWN)) res |= EnumButtonType.DOWN; + if(App.input.nes.controllers[ControllerIndex].GetKey((ulong)EnumButtonType.LEFT)) res |= EnumButtonType.LEFT; + if(App.input.nes.controllers[ControllerIndex].GetKey((ulong)EnumButtonType.RIGHT)) res |= EnumButtonType.RIGHT; + if(App.input.nes.controllers[ControllerIndex].GetKey((ulong)EnumButtonType.A)) res |= EnumButtonType.A; + if(App.input.nes.controllers[ControllerIndex].GetKey((ulong)EnumButtonType.B)) res |= EnumButtonType.B; + if(App.input.nes.controllers[ControllerIndex].GetKey((ulong)EnumButtonType.SELECT)) res |= EnumButtonType.SELECT; + if(App.input.nes.controllers[ControllerIndex].GetKey((ulong)EnumButtonType.START)) res |= EnumButtonType.START; + if(App.input.nes.controllers[ControllerIndex].GetKey((ulong)EnumButtonType.MIC)) res |= EnumButtonType.MIC; + + //res |= UP.SampleKey(); + //res |= DOWN.SampleKey(); + //res |= LEFT.SampleKey(); + //res |= RIGHT.SampleKey(); + //res |= A.SampleKey(); + //res |= B.SampleKey(); + //res |= SELECT.SampleKey(); + //res |= START.SampleKey(); + //res |= MIC.SampleKey(); return res; } public bool AnyButtonDown() { - return - UP.IsDown || - DOWN.IsDown || - LEFT.IsDown || - RIGHT.IsDown || - A.IsDown || - B.IsDown || - SELECT.IsDown || - START.IsDown || - MIC.IsDown; + return App.input.nes.controllers[ControllerIndex].HadAnyKeyDown(); + //return + // UP.IsDown || + // DOWN.IsDown || + // LEFT.IsDown || + // RIGHT.IsDown || + // A.IsDown || + // B.IsDown || + // SELECT.IsDown || + // START.IsDown || + // MIC.IsDown; } public static KeyListener GetKey(int controllerInput, EnumButtonType nesConBtnType) @@ -211,47 +224,47 @@ namespace AxibugEmuOnline.Client } } - /// <summary> - /// NES控制器按键类 - /// </summary> - public class Button - { - /// <summary> 所属控制器 </summary> - readonly Controller m_hostController; + ///// <summary> + ///// NES控制器按键类 + ///// </summary> + //public class Button + //{ + // /// <summary> 所属控制器 </summary> + // readonly Controller m_hostController; - /// <summary> 按键 </summary> - readonly EnumButtonType m_buttonType; + // /// <summary> 按键 </summary> + // readonly EnumButtonType m_buttonType; - /// <summary> 按键监听器 </summary> - KeyListener m_keyListener; + // /// <summary> 按键监听器 </summary> + // KeyListener m_keyListener; - /// <summary> 指示按钮是否正在按下状态 </summary> - public bool IsPressing => m_keyListener.IsPressing(); - /// <summary> 指示按钮是否被按下 </summary> - public bool IsDown => m_keyListener.IsDown(); + // /// <summary> 指示按钮是否正在按下状态 </summary> + // public bool IsPressing => m_keyListener.IsPressing(); + // /// <summary> 指示按钮是否被按下 </summary> + // public bool IsDown => m_keyListener.IsDown(); - public Button(Controller controller, EnumButtonType buttonType) - { - m_hostController = controller; - m_buttonType = buttonType; + // public Button(Controller controller, EnumButtonType buttonType) + // { + // m_hostController = controller; + // m_buttonType = buttonType; - CreateListener(); - } + // CreateListener(); + // } - /// <summary> - /// 采集按钮按下状态 - /// </summary> - /// <returns></returns> - public EnumButtonType SampleKey() - { - return IsPressing ? m_buttonType : 0; - } + // /// <summary> + // /// 采集按钮按下状态 + // /// </summary> + // /// <returns></returns> + // public EnumButtonType SampleKey() + // { + // return IsPressing ? m_buttonType : 0; + // } - private void CreateListener() - { - m_keyListener = Controller.GetKey(m_hostController.ControllerIndex, m_buttonType); - } - } + // private void CreateListener() + // { + // m_keyListener = Controller.GetKey(m_hostController.ControllerIndex, m_buttonType); + // } + //} //low C# readonly //public readonly struct KeyListener diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppInput.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppInput.cs index 875fb2ef..aa204a7a 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppInput.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppInput.cs @@ -14,11 +14,27 @@ namespace AxibugEmuOnline.Client.Manager public XMBMultiKeysSetting xmb; public GamingMultiKeysSetting gaming; public UMAMEMultiKeysSetting mame; + public NESMultiKeysSetting nes; + public MasterSystemMultiKeysSetting sms; + public ColecoVisionMultiKeysSetting cv; + public GameBoyColorMultiKeysSetting gbc; + public GameBoyMultiKeysSetting gb; + public GameGearMultiKeysSetting gg; + public SC3000MultiKeysSetting sc3000; + public SG1000MultiKeysSetting sg1000; public AppInput() { xmb = new XMBMultiKeysSetting(); gaming = new GamingMultiKeysSetting(); mame = new UMAMEMultiKeysSetting(); + nes = new NESMultiKeysSetting(); + sms = new MasterSystemMultiKeysSetting(); + cv = new ColecoVisionMultiKeysSetting(); + gbc = new GameBoyColorMultiKeysSetting(); + gb = new GameBoyMultiKeysSetting(); + gg = new GameGearMultiKeysSetting(); + sc3000 = new SC3000MultiKeysSetting(); + sg1000 = new SG1000MultiKeysSetting(); LoadDefaultSetting(); } @@ -27,6 +43,14 @@ namespace AxibugEmuOnline.Client.Manager xmb.LoadDefaultSetting(); gaming.LoadDefaultSetting(); mame.LoadDefaultSetting(); + nes.LoadDefaultSetting(); + sms.LoadDefaultSetting(); + cv.LoadDefaultSetting(); + gbc.LoadDefaultSetting(); + gb.LoadDefaultSetting(); + gg.LoadDefaultSetting(); + sc3000.LoadDefaultSetting(); + sg1000.LoadDefaultSetting(); } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/MonoCom/AudioMgr.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/MonoCom/AudioMgr.cs index 7df3b80d..d0b7cf5d 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/MonoCom/AudioMgr.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/MonoCom/AudioMgr.cs @@ -5,7 +5,6 @@ using System.IO; using System.Linq; using System.Text; using UnityEngine; -using static UnityEditor.PlayerSettings; namespace AxibugEmuOnline.Client {