diff --git a/Assets/Plugins/Essgee/Emulation/Configuration/ColecoVision.cs b/Assets/Plugins/Essgee/Emulation/Configuration/ColecoVision.cs index 16b9067..1abd152 100644 --- a/Assets/Plugins/Essgee/Emulation/Configuration/ColecoVision.cs +++ b/Assets/Plugins/Essgee/Emulation/Configuration/ColecoVision.cs @@ -13,83 +13,83 @@ namespace Essgee.Emulation.Configuration //todo Unity [DropDownControl("Controls", "Up", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsUp { get; set; } + public MotionKey ControlsUp { get; set; } //todo Unity [DropDownControl("Controls", "Down", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsDown { get; set; } + public MotionKey ControlsDown { get; set; } //todo Unity [DropDownControl("Controls", "Left", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsLeft { get; set; } + public MotionKey ControlsLeft { get; set; } //todo Unity [DropDownControl("Controls", "Right", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsRight { get; set; } + public MotionKey ControlsRight { get; set; } //todo Unity [DropDownControl("Controls", "Left Button", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsButtonLeft { get; set; } + public MotionKey ControlsButtonLeft { get; set; } //todo Unity [DropDownControl("Controls", "Right Button", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsButtonRight { get; set; } + public MotionKey ControlsButtonRight { get; set; } //todo Unity [DropDownControl("Controls", "Keypad 1", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypad1 { get; set; } + public MotionKey ControlsKeypad1 { get; set; } //todo Unity [DropDownControl("Controls", "Keypad 2", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypad2 { get; set; } + public MotionKey ControlsKeypad2 { get; set; } //todo Unity [DropDownControl("Controls", "Keypad 3", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypad3 { get; set; } + public MotionKey ControlsKeypad3 { get; set; } //todo Unity [DropDownControl("Controls", "Keypad 4", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypad4 { get; set; } + public MotionKey ControlsKeypad4 { get; set; } //todo Unity [DropDownControl("Controls", "Keypad 5", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypad5 { get; set; } + public MotionKey ControlsKeypad5 { get; set; } //todo Unity [DropDownControl("Controls", "Keypad 6", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypad6 { get; set; } + public MotionKey ControlsKeypad6 { get; set; } //todo Unity [DropDownControl("Controls", "Keypad 7", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypad7 { get; set; } + public MotionKey ControlsKeypad7 { get; set; } //todo Unity [DropDownControl("Controls", "Keypad 8", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypad8 { get; set; } + public MotionKey ControlsKeypad8 { get; set; } //todo Unity [DropDownControl("Controls", "Keypad 9", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypad9 { get; set; } + public MotionKey ControlsKeypad9 { get; set; } //todo Unity [DropDownControl("Controls", "Keypad 0", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypad0 { get; set; } + public MotionKey ControlsKeypad0 { get; set; } //todo Unity [DropDownControl("Controls", "Keypad *", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypadStar { get; set; } + public MotionKey ControlsKeypadStar { get; set; } //todo Unity [DropDownControl("Controls", "Keypad #", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsKeypadNumberSign { get; set; } + public MotionKey ControlsKeypadNumberSign { get; set; } public ColecoVision() { BiosRom = string.Empty; - ControlsUp = Keys.Up; - ControlsDown = Keys.Down; - ControlsLeft = Keys.Left; - ControlsRight = Keys.Right; - ControlsButtonLeft = Keys.A; - ControlsButtonRight = Keys.S; + ControlsUp = MotionKey.Up; + ControlsDown = MotionKey.Down; + ControlsLeft = MotionKey.Left; + ControlsRight = MotionKey.Right; + ControlsButtonLeft = MotionKey.A; + ControlsButtonRight = MotionKey.S; - ControlsKeypad1 = Keys.NumPad1; - ControlsKeypad2 = Keys.NumPad2; - ControlsKeypad3 = Keys.NumPad3; - ControlsKeypad4 = Keys.NumPad4; - ControlsKeypad5 = Keys.NumPad5; - ControlsKeypad6 = Keys.NumPad6; - ControlsKeypad7 = Keys.NumPad7; - ControlsKeypad8 = Keys.NumPad8; - ControlsKeypad9 = Keys.NumPad9; - ControlsKeypad0 = Keys.NumPad0; - ControlsKeypadStar = Keys.Multiply; - ControlsKeypadNumberSign = Keys.Divide; + ControlsKeypad1 = MotionKey.NumPad1; + ControlsKeypad2 = MotionKey.NumPad2; + ControlsKeypad3 = MotionKey.NumPad3; + ControlsKeypad4 = MotionKey.NumPad4; + ControlsKeypad5 = MotionKey.NumPad5; + ControlsKeypad6 = MotionKey.NumPad6; + ControlsKeypad7 = MotionKey.NumPad7; + ControlsKeypad8 = MotionKey.NumPad8; + ControlsKeypad9 = MotionKey.NumPad9; + ControlsKeypad0 = MotionKey.NumPad0; + ControlsKeypadStar = MotionKey.Multiply; + ControlsKeypadNumberSign = MotionKey.Divide; } } } diff --git a/Assets/Plugins/Essgee/Emulation/Configuration/GameBoy.cs b/Assets/Plugins/Essgee/Emulation/Configuration/GameBoy.cs index 9af577f..01b355a 100644 --- a/Assets/Plugins/Essgee/Emulation/Configuration/GameBoy.cs +++ b/Assets/Plugins/Essgee/Emulation/Configuration/GameBoy.cs @@ -38,28 +38,28 @@ namespace Essgee.Emulation.Configuration //todo Unity [DropDownControl("Controls", "Up", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsUp { get; set; } + public MotionKey ControlsUp { get; set; } //todo Unity [DropDownControl("Controls", "Down", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsDown { get; set; } + public MotionKey ControlsDown { get; set; } //todo Unity [DropDownControl("Controls", "Left", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsLeft { get; set; } + public MotionKey ControlsLeft { get; set; } //todo Unity [DropDownControl("Controls", "Right", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsRight { get; set; } + public MotionKey ControlsRight { get; set; } //todo Unity [DropDownControl("Controls", "A", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsA { get; set; } + public MotionKey ControlsA { get; set; } //todo Unity [DropDownControl("Controls", "B", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsB { get; set; } + public MotionKey ControlsB { get; set; } //todo Unity [DropDownControl("Controls", "Select", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsSelect { get; set; } + public MotionKey ControlsSelect { get; set; } //todo Unity [DropDownControl("Controls", "Start", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsStart { get; set; } + public MotionKey ControlsStart { get; set; } public GameBoy() { @@ -70,14 +70,14 @@ namespace Essgee.Emulation.Configuration CameraSource = GBCameraCartridge.ImageSources.Noise; CameraImageFile = string.Empty; - ControlsUp = Keys.Up; - ControlsDown = Keys.Down; - ControlsLeft = Keys.Left; - ControlsRight = Keys.Right; - ControlsA = Keys.S; - ControlsB = Keys.A; - ControlsSelect = Keys.Space; - ControlsStart = Keys.Enter; + ControlsUp = MotionKey.Up; + ControlsDown = MotionKey.Down; + ControlsLeft = MotionKey.Left; + ControlsRight = MotionKey.Right; + ControlsA = MotionKey.S; + ControlsB = MotionKey.A; + ControlsSelect = MotionKey.Space; + ControlsStart = MotionKey.Enter; } } } diff --git a/Assets/Plugins/Essgee/Emulation/Configuration/GameBoyColor.cs b/Assets/Plugins/Essgee/Emulation/Configuration/GameBoyColor.cs index f0963ef..45ef612 100644 --- a/Assets/Plugins/Essgee/Emulation/Configuration/GameBoyColor.cs +++ b/Assets/Plugins/Essgee/Emulation/Configuration/GameBoyColor.cs @@ -33,31 +33,31 @@ namespace Essgee.Emulation.Configuration //todo Unity [DropDownControl("Controls", "Up", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsUp { get; set; } + public MotionKey ControlsUp { get; set; } //todo Unity [DropDownControl("Controls", "Down", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsDown { get; set; } + public MotionKey ControlsDown { get; set; } //todo Unity [DropDownControl("Controls", "Left", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsLeft { get; set; } + public MotionKey ControlsLeft { get; set; } //todo Unity [DropDownControl("Controls", "Right", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsRight { get; set; } + public MotionKey ControlsRight { get; set; } //todo Unity [DropDownControl("Controls", "A", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsA { get; set; } + public MotionKey ControlsA { get; set; } //todo Unity [DropDownControl("Controls", "B", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsB { get; set; } + public MotionKey ControlsB { get; set; } //todo Unity [DropDownControl("Controls", "Select", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsSelect { get; set; } + public MotionKey ControlsSelect { get; set; } //todo Unity [DropDownControl("Controls", "Start", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsStart { get; set; } + public MotionKey ControlsStart { get; set; } //todo Unity [DropDownControl("Controls", "Send IR Signal", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsSendIR { get; set; } + public MotionKey ControlsSendIR { get; set; } public GameBoyColor() { @@ -71,15 +71,15 @@ namespace Essgee.Emulation.Configuration InfraredSource = Machines.GameBoyColor.InfraredSources.None; InfraredDatabasePikachu = string.Empty; - ControlsUp = Keys.Up; - ControlsDown = Keys.Down; - ControlsLeft = Keys.Left; - ControlsRight = Keys.Right; - ControlsA = Keys.S; - ControlsB = Keys.A; - ControlsSelect = Keys.Space; - ControlsStart = Keys.Enter; - ControlsSendIR = Keys.Back; + ControlsUp = MotionKey.Up; + ControlsDown = MotionKey.Down; + ControlsLeft = MotionKey.Left; + ControlsRight = MotionKey.Right; + ControlsA = MotionKey.S; + ControlsB = MotionKey.A; + ControlsSelect = MotionKey.Space; + ControlsStart = MotionKey.Enter; + ControlsSendIR = MotionKey.Back; } } } diff --git a/Assets/Plugins/Essgee/Emulation/Configuration/GameGear.cs b/Assets/Plugins/Essgee/Emulation/Configuration/GameGear.cs index e59e623..9353518 100644 --- a/Assets/Plugins/Essgee/Emulation/Configuration/GameGear.cs +++ b/Assets/Plugins/Essgee/Emulation/Configuration/GameGear.cs @@ -19,25 +19,25 @@ namespace Essgee.Emulation.Configuration //todo Unity [DropDownControl("Controls", "D-Pad Up", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsUp { get; set; } + public MotionKey ControlsUp { get; set; } //todo Unity [DropDownControl("Controls", "D-Pad Down", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsDown { get; set; } + public MotionKey ControlsDown { get; set; } //todo Unity [DropDownControl("Controls", "D-Pad Left", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsLeft { get; set; } + public MotionKey ControlsLeft { get; set; } //todo Unity [DropDownControl("Controls", "D-Pad Right", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsRight { get; set; } + public MotionKey ControlsRight { get; set; } //todo Unity [DropDownControl("Controls", "Button 1", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsButton1 { get; set; } + public MotionKey ControlsButton1 { get; set; } //todo Unity [DropDownControl("Controls", "Button 2", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsButton2 { get; set; } + public MotionKey ControlsButton2 { get; set; } //todo Unity [DropDownControl("Controls", "Start", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys ControlsStart { get; set; } + public MotionKey ControlsStart { get; set; } public bool AllowMemoryControl { get; set; } @@ -47,13 +47,13 @@ namespace Essgee.Emulation.Configuration Region = Region.Export; - ControlsUp = Keys.Up; - ControlsDown = Keys.Down; - ControlsLeft = Keys.Left; - ControlsRight = Keys.Right; - ControlsButton1 = Keys.A; - ControlsButton2 = Keys.S; - ControlsStart = Keys.Return; + ControlsUp = MotionKey.Up; + ControlsDown = MotionKey.Down; + ControlsLeft = MotionKey.Left; + ControlsRight = MotionKey.Right; + ControlsButton1 = MotionKey.A; + ControlsButton2 = MotionKey.S; + ControlsStart = MotionKey.Return; AllowMemoryControl = true; } diff --git a/Assets/Plugins/Essgee/Emulation/Configuration/MasterSystem.cs b/Assets/Plugins/Essgee/Emulation/Configuration/MasterSystem.cs index a76468c..0efdeb3 100644 --- a/Assets/Plugins/Essgee/Emulation/Configuration/MasterSystem.cs +++ b/Assets/Plugins/Essgee/Emulation/Configuration/MasterSystem.cs @@ -25,54 +25,56 @@ namespace Essgee.Emulation.Configuration //todo Unity [DropDownControl("General", "Pause Button", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys InputPause { get; set; } + public MotionKey InputPause { get; set; } //todo Unity [DropDownControl("General", "Reset Button", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys InputReset { get; set; } + public MotionKey InputReset { get; set; } //todo Unity [DropDownControl("Controller Port 1", "Device Type", typeof(InputDevice))] [JsonConverter(typeof(StringEnumConverter))] public InputDevice Joypad1DeviceType { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Up", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Up { get; set; } + public MotionKey Joypad1Up { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Down", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Down { get; set; } + public MotionKey Joypad1Down { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Left", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Left { get; set; } + public MotionKey Joypad1Left { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Right", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Right { get; set; } + public MotionKey Joypad1Right { get; + set; + } //todo Unity [DropDownControl("Controller Port 1", "Button 1", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Button1 { get; set; } + public MotionKey Joypad1Button1 { get; set; } //todo Unity [DropDownControl("Controller Port 1", "Button 2", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Button2 { get; set; } + public MotionKey Joypad1Button2 { get; set; } //todo Unity [DropDownControl("Controller Port 2", "Device Type", typeof(InputDevice))] [JsonConverter(typeof(StringEnumConverter))] public InputDevice Joypad2DeviceType { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Up", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Up { get; set; } + public MotionKey Joypad2Up { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Down", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Down { get; set; } + public MotionKey Joypad2Down { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Left", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Left { get; set; } + public MotionKey Joypad2Left { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Right", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Right { get; set; } + public MotionKey Joypad2Right { get; set; } //todo Unity [DropDownControl("Controller Port 2", "Button 1", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Button1 { get; set; } + public MotionKey Joypad2Button1 { get; set; } //todo Unity [DropDownControl("Controller Port 2", "Button 2", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Button2 { get; set; } + public MotionKey Joypad2Button2 { get; set; } public bool AllowMemoryControl { get; set; } @@ -84,24 +86,24 @@ namespace Essgee.Emulation.Configuration Region = Region.Export; VDPType = VDPTypes.SMS2GG; - InputPause = Keys.Space; - InputReset = Keys.Back; + InputPause = MotionKey.Space; + InputReset = MotionKey.Back; Joypad1DeviceType = InputDevice.Controller; - Joypad1Up = Keys.Up; - Joypad1Down = Keys.Down; - Joypad1Left = Keys.Left; - Joypad1Right = Keys.Right; - Joypad1Button1 = Keys.A; - Joypad1Button2 = Keys.S; + Joypad1Up = MotionKey.Up; + Joypad1Down = MotionKey.Down; + Joypad1Left = MotionKey.Left; + Joypad1Right = MotionKey.Right; + Joypad1Button1 = MotionKey.A; + Joypad1Button2 = MotionKey.S; Joypad2DeviceType = InputDevice.Controller; - Joypad2Up = Keys.NumPad8; - Joypad2Down = Keys.NumPad2; - Joypad2Left = Keys.NumPad4; - Joypad2Right = Keys.NumPad6; - Joypad2Button1 = Keys.NumPad1; - Joypad2Button2 = Keys.NumPad3; + Joypad2Up = MotionKey.NumPad8; + Joypad2Down = MotionKey.NumPad2; + Joypad2Left = MotionKey.NumPad4; + Joypad2Right = MotionKey.NumPad6; + Joypad2Button1 = MotionKey.NumPad1; + Joypad2Button2 = MotionKey.NumPad3; AllowMemoryControl = true; } diff --git a/Assets/Plugins/Essgee/Emulation/Configuration/SC3000.cs b/Assets/Plugins/Essgee/Emulation/Configuration/SC3000.cs index e8fdbc2..32479c8 100644 --- a/Assets/Plugins/Essgee/Emulation/Configuration/SC3000.cs +++ b/Assets/Plugins/Essgee/Emulation/Configuration/SC3000.cs @@ -12,75 +12,75 @@ namespace Essgee.Emulation.Configuration //todo Unity [DropDownControl("General", "Reset Button", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys InputReset { get; set; } + public MotionKey InputReset { get; set; } //todo Unity [DropDownControl("General", "Change Input Mode", typeof(Keys), Keys.F11, Tooltip = "Selects which PC keyboard key is used to switch between SC-3000 keyboard and controller input.")] [JsonConverter(typeof(StringEnumConverter))] - public Keys InputChangeMode { get; set; } + public MotionKey InputChangeMode { get; set; } //todo Unity [DropDownControl("General", "Play Tape", typeof(Keys), Keys.F11, Tooltip = "Note that tape emulation is currently non-functional.")] [JsonConverter(typeof(StringEnumConverter))] - public Keys InputPlayTape { get; set; } + public MotionKey InputPlayTape { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Up", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Up { get; set; } + public MotionKey Joypad1Up { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Down", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Down { get; set; } + public MotionKey Joypad1Down { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Left", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Left { get; set; } + public MotionKey Joypad1Left { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Right", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Right { get; set; } + public MotionKey Joypad1Right { get; set; } //todo Unity [DropDownControl("Controller Port 1", "Button 1", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Button1 { get; set; } + public MotionKey Joypad1Button1 { get; set; } //todo Unity [DropDownControl("Controller Port 1", "Button 2", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Button2 { get; set; } + public MotionKey Joypad1Button2 { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Up", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Up { get; set; } + public MotionKey Joypad2Up { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Down", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Down { get; set; } + public MotionKey Joypad2Down { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Left", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Left { get; set; } + public MotionKey Joypad2Left { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Right", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Right { get; set; } + public MotionKey Joypad2Right { get; set; } //todo Unity [DropDownControl("Controller Port 2", "Button 1", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Button1 { get; set; } + public MotionKey Joypad2Button1 { get; set; } //todo Unity [DropDownControl("Controller Port 2", "Button 2", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Button2 { get; set; } + public MotionKey Joypad2Button2 { get; set; } public SC3000() { TVStandard = TVStandard.NTSC; - InputReset = Keys.F12; - InputChangeMode = Keys.F1; - InputPlayTape = Keys.F2; + InputReset = MotionKey.F12; + InputChangeMode = MotionKey.F1; + InputPlayTape = MotionKey.F2; - Joypad1Up = Keys.Up; - Joypad1Down = Keys.Down; - Joypad1Left = Keys.Left; - Joypad1Right = Keys.Right; - Joypad1Button1 = Keys.A; - Joypad1Button2 = Keys.S; + Joypad1Up = MotionKey.Up; + Joypad1Down = MotionKey.Down; + Joypad1Left = MotionKey.Left; + Joypad1Right = MotionKey.Right; + Joypad1Button1 = MotionKey.A; + Joypad1Button2 = MotionKey.S; - Joypad2Up = Keys.NumPad8; - Joypad2Down = Keys.NumPad2; - Joypad2Left = Keys.NumPad4; - Joypad2Right = Keys.NumPad6; - Joypad2Button1 = Keys.NumPad1; - Joypad2Button2 = Keys.NumPad3; + Joypad2Up = MotionKey.NumPad8; + Joypad2Down = MotionKey.NumPad2; + Joypad2Left = MotionKey.NumPad4; + Joypad2Right = MotionKey.NumPad6; + Joypad2Button1 = MotionKey.NumPad1; + Joypad2Button2 = MotionKey.NumPad3; } } } diff --git a/Assets/Plugins/Essgee/Emulation/Configuration/SG1000.cs b/Assets/Plugins/Essgee/Emulation/Configuration/SG1000.cs index d729d4b..656065a 100644 --- a/Assets/Plugins/Essgee/Emulation/Configuration/SG1000.cs +++ b/Assets/Plugins/Essgee/Emulation/Configuration/SG1000.cs @@ -12,65 +12,65 @@ namespace Essgee.Emulation.Configuration //todo Unity [DropDownControl("General", "Pause Button", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys InputPause { get; set; } + public MotionKey InputPause { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Up", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Up { get; set; } + public MotionKey Joypad1Up { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Down", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Down { get; set; } + public MotionKey Joypad1Down { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Left", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Left { get; set; } + public MotionKey Joypad1Left { get; set; } //todo Unity [DropDownControl("Controller Port 1", "D-Pad Right", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Right { get; set; } + public MotionKey Joypad1Right { get; set; } //todo Unity [DropDownControl("Controller Port 1", "Button 1", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Button1 { get; set; } + public MotionKey Joypad1Button1 { get; set; } //todo Unity [DropDownControl("Controller Port 1", "Button 2", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad1Button2 { get; set; } + public MotionKey Joypad1Button2 { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Up", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Up { get; set; } + public MotionKey Joypad2Up { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Down", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Down { get; set; } + public MotionKey Joypad2Down { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Left", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Left { get; set; } + public MotionKey Joypad2Left { get; set; } //todo Unity [DropDownControl("Controller Port 2", "D-Pad Right", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Right { get; set; } + public MotionKey Joypad2Right { get; set; } //todo Unity [DropDownControl("Controller Port 2", "Button 1", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Button1 { get; set; } + public MotionKey Joypad2Button1 { get; set; } //todo Unity [DropDownControl("Controller Port 2", "Button 2", typeof(Keys), Keys.F11)] [JsonConverter(typeof(StringEnumConverter))] - public Keys Joypad2Button2 { get; set; } + public MotionKey Joypad2Button2 { get; set; } public SG1000() { TVStandard = TVStandard.NTSC; - InputPause = Keys.Space; + InputPause = MotionKey.Space; - Joypad1Up = Keys.Up; - Joypad1Down = Keys.Down; - Joypad1Left = Keys.Left; - Joypad1Right = Keys.Right; - Joypad1Button1 = Keys.A; - Joypad1Button2 = Keys.S; + Joypad1Up = MotionKey.Up; + Joypad1Down = MotionKey.Down; + Joypad1Left = MotionKey.Left; + Joypad1Right = MotionKey.Right; + Joypad1Button1 = MotionKey.A; + Joypad1Button2 = MotionKey.S; - Joypad2Up = Keys.NumPad8; - Joypad2Down = Keys.NumPad2; - Joypad2Left = Keys.NumPad4; - Joypad2Right = Keys.NumPad6; - Joypad2Button1 = Keys.NumPad1; - Joypad2Button2 = Keys.NumPad3; + Joypad2Up = MotionKey.NumPad8; + Joypad2Down = MotionKey.NumPad2; + Joypad2Left = MotionKey.NumPad4; + Joypad2Right = MotionKey.NumPad6; + Joypad2Button1 = MotionKey.NumPad1; + Joypad2Button2 = MotionKey.NumPad3; } } } diff --git a/Assets/Plugins/Essgee/Emulation/EmulatorHandler.cs b/Assets/Plugins/Essgee/Emulation/EmulatorHandler.cs index bd540f2..d0b4d16 100644 --- a/Assets/Plugins/Essgee/Emulation/EmulatorHandler.cs +++ b/Assets/Plugins/Essgee/Emulation/EmulatorHandler.cs @@ -14,7 +14,7 @@ namespace Essgee.Emulation { readonly Action exceptionHandler; - IMachine emulator; + public IMachine emulator { get; private set; } Thread emulationThread; volatile bool emulationThreadRunning; diff --git a/Assets/Plugins/Essgee/Emulation/Machines/GameBoy.cs b/Assets/Plugins/Essgee/Emulation/Machines/GameBoy.cs index fd675bb..9c16241 100644 --- a/Assets/Plugins/Essgee/Emulation/Machines/GameBoy.cs +++ b/Assets/Plugins/Essgee/Emulation/Machines/GameBoy.cs @@ -131,7 +131,7 @@ namespace Essgee.Emulation.Machines int currentMasterClockCyclesInFrame, totalMasterClockCyclesInFrame; - Configuration.GameBoy configuration; + public Configuration.GameBoy configuration { get; private set; } public GameBoy() { } @@ -455,24 +455,40 @@ namespace Essgee.Emulation.Machines inputsPressed = 0; /* Keyboard */ - if (eventArgs.Keyboard.Contains(configuration.ControlsRight) && !eventArgs.Keyboard.Contains(configuration.ControlsLeft)) inputsPressed |= JoypadInputs.Right; - if (eventArgs.Keyboard.Contains(configuration.ControlsLeft) && !eventArgs.Keyboard.Contains(configuration.ControlsRight)) inputsPressed |= JoypadInputs.Left; - if (eventArgs.Keyboard.Contains(configuration.ControlsUp) && !eventArgs.Keyboard.Contains(configuration.ControlsDown)) inputsPressed |= JoypadInputs.Up; - if (eventArgs.Keyboard.Contains(configuration.ControlsDown) && !eventArgs.Keyboard.Contains(configuration.ControlsUp)) inputsPressed |= JoypadInputs.Down; - if (eventArgs.Keyboard.Contains(configuration.ControlsA)) inputsPressed |= JoypadInputs.A; - if (eventArgs.Keyboard.Contains(configuration.ControlsB)) inputsPressed |= JoypadInputs.B; - if (eventArgs.Keyboard.Contains(configuration.ControlsSelect)) inputsPressed |= JoypadInputs.Select; - if (eventArgs.Keyboard.Contains(configuration.ControlsStart)) inputsPressed |= JoypadInputs.Start; + if (eventArgs.Keyboard.Contains(configuration.ControlsRight) && !eventArgs.Keyboard.Contains(configuration.ControlsLeft)) + inputsPressed |= JoypadInputs.Right; + if (eventArgs.Keyboard.Contains(configuration.ControlsLeft) && !eventArgs.Keyboard.Contains(configuration.ControlsRight)) + inputsPressed |= JoypadInputs.Left; + if (eventArgs.Keyboard.Contains(configuration.ControlsUp) && !eventArgs.Keyboard.Contains(configuration.ControlsDown)) + inputsPressed |= JoypadInputs.Up; + if (eventArgs.Keyboard.Contains(configuration.ControlsDown) && !eventArgs.Keyboard.Contains(configuration.ControlsUp)) + inputsPressed |= JoypadInputs.Down; + if (eventArgs.Keyboard.Contains(configuration.ControlsA)) + inputsPressed |= JoypadInputs.A; + if (eventArgs.Keyboard.Contains(configuration.ControlsB)) + inputsPressed |= JoypadInputs.B; + if (eventArgs.Keyboard.Contains(configuration.ControlsSelect)) + inputsPressed |= JoypadInputs.Select; + if (eventArgs.Keyboard.Contains(configuration.ControlsStart)) + inputsPressed |= JoypadInputs.Start; /* XInput controller */ - if (eventArgs.ControllerState.IsAnyRightDirectionPressed() && !eventArgs.ControllerState.IsAnyLeftDirectionPressed()) inputsPressed |= JoypadInputs.Right; - if (eventArgs.ControllerState.IsAnyLeftDirectionPressed() && !eventArgs.ControllerState.IsAnyRightDirectionPressed()) inputsPressed |= JoypadInputs.Left; - if (eventArgs.ControllerState.IsAnyUpDirectionPressed() && !eventArgs.ControllerState.IsAnyDownDirectionPressed()) inputsPressed |= JoypadInputs.Up; - if (eventArgs.ControllerState.IsAnyDownDirectionPressed() && !eventArgs.ControllerState.IsAnyUpDirectionPressed()) inputsPressed |= JoypadInputs.Down; - if (eventArgs.ControllerState.IsAPressed()) inputsPressed |= JoypadInputs.A; - if (eventArgs.ControllerState.IsXPressed() || eventArgs.ControllerState.IsBPressed()) inputsPressed |= JoypadInputs.B; - if (eventArgs.ControllerState.IsBackPressed()) inputsPressed |= JoypadInputs.Select; - if (eventArgs.ControllerState.IsStartPressed()) inputsPressed |= JoypadInputs.Start; + if (eventArgs.ControllerState.IsAnyRightDirectionPressed() && !eventArgs.ControllerState.IsAnyLeftDirectionPressed()) + inputsPressed |= JoypadInputs.Right; + if (eventArgs.ControllerState.IsAnyLeftDirectionPressed() && !eventArgs.ControllerState.IsAnyRightDirectionPressed()) + inputsPressed |= JoypadInputs.Left; + if (eventArgs.ControllerState.IsAnyUpDirectionPressed() && !eventArgs.ControllerState.IsAnyDownDirectionPressed()) + inputsPressed |= JoypadInputs.Up; + if (eventArgs.ControllerState.IsAnyDownDirectionPressed() && !eventArgs.ControllerState.IsAnyUpDirectionPressed()) + inputsPressed |= JoypadInputs.Down; + if (eventArgs.ControllerState.IsAPressed()) + inputsPressed |= JoypadInputs.A; + if (eventArgs.ControllerState.IsXPressed() || eventArgs.ControllerState.IsBPressed()) + inputsPressed |= JoypadInputs.B; + if (eventArgs.ControllerState.IsBackPressed()) + inputsPressed |= JoypadInputs.Select; + if (eventArgs.ControllerState.IsStartPressed()) + inputsPressed |= JoypadInputs.Start; } private byte ReadMemory(ushort address) diff --git a/Assets/Plugins/Essgee/Emulation/Machines/MasterSystem.cs b/Assets/Plugins/Essgee/Emulation/Machines/MasterSystem.cs index 780318a..dd0a4aa 100644 --- a/Assets/Plugins/Essgee/Emulation/Machines/MasterSystem.cs +++ b/Assets/Plugins/Essgee/Emulation/Machines/MasterSystem.cs @@ -122,9 +122,9 @@ namespace Essgee.Emulation.Machines int currentMasterClockCyclesInFrame, totalMasterClockCyclesInFrame; - Configuration.MasterSystem configuration; + public Configuration.MasterSystem configuration { get; private set; } - IEnumerable lastKeysDown; + IEnumerable lastKeysDown; ControllerState lastControllerState; MouseButtons lastMouseButtons; (int x, int y) lastMousePosition; @@ -145,7 +145,7 @@ namespace Essgee.Emulation.Machines inputDevices[0] = InputDevice.None; inputDevices[1] = InputDevice.None; - lastKeysDown = new List(); + lastKeysDown = new List(); lastControllerState = new ControllerState(); vdp.EndOfScanline += (s, e) => diff --git a/Assets/Plugins/Essgee/Emulation/Machines/SC3000.cs b/Assets/Plugins/Essgee/Emulation/Machines/SC3000.cs index d08d725..cbec38c 100644 --- a/Assets/Plugins/Essgee/Emulation/Machines/SC3000.cs +++ b/Assets/Plugins/Essgee/Emulation/Machines/SC3000.cs @@ -378,84 +378,84 @@ namespace Essgee.Emulation.Machines /* Handle keyboard */ // TODO: Replace hardcoded English layout w/ user-configurable settings - keyboard[0, 0] = keysDown.Contains(Keys.D1); - keyboard[0, 1] = keysDown.Contains(Keys.D2); - keyboard[0, 2] = keysDown.Contains(Keys.D3); - keyboard[0, 3] = keysDown.Contains(Keys.D4); - keyboard[0, 4] = keysDown.Contains(Keys.D5); - keyboard[0, 5] = keysDown.Contains(Keys.D6); - keyboard[0, 6] = keysDown.Contains(Keys.D7); + keyboard[0, 0] = keysDown.Contains(MotionKey.D1); + keyboard[0, 1] = keysDown.Contains(MotionKey.D2); + keyboard[0, 2] = keysDown.Contains(MotionKey.D3); + keyboard[0, 3] = keysDown.Contains(MotionKey.D4); + keyboard[0, 4] = keysDown.Contains(MotionKey.D5); + keyboard[0, 5] = keysDown.Contains(MotionKey.D6); + keyboard[0, 6] = keysDown.Contains(MotionKey.D7); - keyboard[1, 0] = keysDown.Contains(Keys.Q); - keyboard[1, 1] = keysDown.Contains(Keys.W); - keyboard[1, 2] = keysDown.Contains(Keys.E); - keyboard[1, 3] = keysDown.Contains(Keys.R); - keyboard[1, 4] = keysDown.Contains(Keys.T); - keyboard[1, 5] = keysDown.Contains(Keys.Y); - keyboard[1, 6] = keysDown.Contains(Keys.U); + keyboard[1, 0] = keysDown.Contains(MotionKey.Q); + keyboard[1, 1] = keysDown.Contains(MotionKey.W); + keyboard[1, 2] = keysDown.Contains(MotionKey.E); + keyboard[1, 3] = keysDown.Contains(MotionKey.R); + keyboard[1, 4] = keysDown.Contains(MotionKey.T); + keyboard[1, 5] = keysDown.Contains(MotionKey.Y); + keyboard[1, 6] = keysDown.Contains(MotionKey.U); - keyboard[2, 0] = keysDown.Contains(Keys.A); - keyboard[2, 1] = keysDown.Contains(Keys.S); - keyboard[2, 2] = keysDown.Contains(Keys.D); - keyboard[2, 3] = keysDown.Contains(Keys.F); - keyboard[2, 4] = keysDown.Contains(Keys.G); - keyboard[2, 5] = keysDown.Contains(Keys.H); - keyboard[2, 6] = keysDown.Contains(Keys.J); + keyboard[2, 0] = keysDown.Contains(MotionKey.A); + keyboard[2, 1] = keysDown.Contains(MotionKey.S); + keyboard[2, 2] = keysDown.Contains(MotionKey.D); + keyboard[2, 3] = keysDown.Contains(MotionKey.F); + keyboard[2, 4] = keysDown.Contains(MotionKey.G); + keyboard[2, 5] = keysDown.Contains(MotionKey.H); + keyboard[2, 6] = keysDown.Contains(MotionKey.J); - keyboard[3, 0] = keysDown.Contains(Keys.Z); - keyboard[3, 1] = keysDown.Contains(Keys.X); - keyboard[3, 2] = keysDown.Contains(Keys.C); - keyboard[3, 3] = keysDown.Contains(Keys.V); - keyboard[3, 4] = keysDown.Contains(Keys.B); - keyboard[3, 5] = keysDown.Contains(Keys.N); - keyboard[3, 6] = keysDown.Contains(Keys.M); + keyboard[3, 0] = keysDown.Contains(MotionKey.Z); + keyboard[3, 1] = keysDown.Contains(MotionKey.X); + keyboard[3, 2] = keysDown.Contains(MotionKey.C); + keyboard[3, 3] = keysDown.Contains(MotionKey.V); + keyboard[3, 4] = keysDown.Contains(MotionKey.B); + keyboard[3, 5] = keysDown.Contains(MotionKey.N); + keyboard[3, 6] = keysDown.Contains(MotionKey.M); - keyboard[4, 0] = keysDown.Contains(Keys.None); // Alphanumerics, Eng Dier's - keyboard[4, 1] = keysDown.Contains(Keys.Space); - keyboard[4, 2] = keysDown.Contains(Keys.Home); // Clr, Home - keyboard[4, 3] = keysDown.Contains(Keys.Back); // Del, Ins - keyboard[4, 4] = keysDown.Contains(Keys.None); // Not on English keyboard? - keyboard[4, 5] = keysDown.Contains(Keys.None); // "" - keyboard[4, 6] = keysDown.Contains(Keys.None); // "" + keyboard[4, 0] = keysDown.Contains(MotionKey.None); // Alphanumerics, Eng Dier's + keyboard[4, 1] = keysDown.Contains(MotionKey.Space); + keyboard[4, 2] = keysDown.Contains(MotionKey.Home); // Clr, Home + keyboard[4, 3] = keysDown.Contains(MotionKey.Back); // Del, Ins + keyboard[4, 4] = keysDown.Contains(MotionKey.None); // Not on English keyboard? + keyboard[4, 5] = keysDown.Contains(MotionKey.None); // "" + keyboard[4, 6] = keysDown.Contains(MotionKey.None); // "" - keyboard[5, 0] = keysDown.Contains(Keys.Oemcomma); - keyboard[5, 1] = keysDown.Contains(Keys.OemPeriod); - keyboard[5, 2] = keysDown.Contains(Keys.OemQuestion); // Forward slash - keyboard[5, 3] = keysDown.Contains(Keys.None); // Pi - keyboard[5, 4] = keysDown.Contains(Keys.Down); - keyboard[5, 5] = keysDown.Contains(Keys.Left); - keyboard[5, 6] = keysDown.Contains(Keys.Right); + keyboard[5, 0] = keysDown.Contains(MotionKey.Oemcomma); + keyboard[5, 1] = keysDown.Contains(MotionKey.OemPeriod); + keyboard[5, 2] = keysDown.Contains(MotionKey.OemQuestion); // Forward slash + keyboard[5, 3] = keysDown.Contains(MotionKey.None); // Pi + keyboard[5, 4] = keysDown.Contains(MotionKey.Down); + keyboard[5, 5] = keysDown.Contains(MotionKey.Left); + keyboard[5, 6] = keysDown.Contains(MotionKey.Right); - keyboard[6, 0] = keysDown.Contains(Keys.K); - keyboard[6, 1] = keysDown.Contains(Keys.L); - keyboard[6, 2] = keysDown.Contains(Keys.Oemplus); // Semicolon - keyboard[6, 3] = keysDown.Contains(Keys.OemSemicolon); // Colon - keyboard[6, 4] = keysDown.Contains(Keys.OemCloseBrackets); - keyboard[6, 5] = keysDown.Contains(Keys.Enter); - keyboard[6, 6] = keysDown.Contains(Keys.Up); + keyboard[6, 0] = keysDown.Contains(MotionKey.K); + keyboard[6, 1] = keysDown.Contains(MotionKey.L); + keyboard[6, 2] = keysDown.Contains(MotionKey.Oemplus); // Semicolon + keyboard[6, 3] = keysDown.Contains(MotionKey.OemSemicolon); // Colon + keyboard[6, 4] = keysDown.Contains(MotionKey.OemCloseBrackets); + keyboard[6, 5] = keysDown.Contains(MotionKey.Enter); + keyboard[6, 6] = keysDown.Contains(MotionKey.Up); - keyboard[7, 0] = keysDown.Contains(Keys.I); - keyboard[7, 1] = keysDown.Contains(Keys.O); - keyboard[7, 2] = keysDown.Contains(Keys.P); - keyboard[7, 3] = keysDown.Contains(Keys.PageUp); // @ - keyboard[7, 4] = keysDown.Contains(Keys.OemOpenBrackets); - keyboard[7, 5] = keysDown.Contains(Keys.None); // Not on English keyboard? - keyboard[7, 6] = keysDown.Contains(Keys.None); // "" + keyboard[7, 0] = keysDown.Contains(MotionKey.I); + keyboard[7, 1] = keysDown.Contains(MotionKey.O); + keyboard[7, 2] = keysDown.Contains(MotionKey.P); + keyboard[7, 3] = keysDown.Contains(MotionKey.PageUp); // @ + keyboard[7, 4] = keysDown.Contains(MotionKey.OemOpenBrackets); + keyboard[7, 5] = keysDown.Contains(MotionKey.None); // Not on English keyboard? + keyboard[7, 6] = keysDown.Contains(MotionKey.None); // "" - keyboard[8, 0] = keysDown.Contains(Keys.D8); - keyboard[8, 1] = keysDown.Contains(Keys.D9); - keyboard[8, 2] = keysDown.Contains(Keys.D0); - keyboard[8, 3] = keysDown.Contains(Keys.OemMinus); - keyboard[8, 4] = keysDown.Contains(Keys.Oemtilde); // ^, ~ - keyboard[8, 5] = keysDown.Contains(Keys.OemPipe); // Yen, Pipe, Pound? - keyboard[8, 6] = keysDown.Contains(Keys.PageDown); // Break + keyboard[8, 0] = keysDown.Contains(MotionKey.D8); + keyboard[8, 1] = keysDown.Contains(MotionKey.D9); + keyboard[8, 2] = keysDown.Contains(MotionKey.D0); + keyboard[8, 3] = keysDown.Contains(MotionKey.OemMinus); + keyboard[8, 4] = keysDown.Contains(MotionKey.Oemtilde); // ^, ~ + keyboard[8, 5] = keysDown.Contains(MotionKey.OemPipe); // Yen, Pipe, Pound? + keyboard[8, 6] = keysDown.Contains(MotionKey.PageDown); // Break - keyboard[9, 6] = keysDown.Contains(Keys.RControlKey); // Graph + keyboard[9, 6] = keysDown.Contains(MotionKey.RControlKey); // Graph - keyboard[10, 6] = keysDown.Contains(Keys.LControlKey); // Ctrl + keyboard[10, 6] = keysDown.Contains(MotionKey.LControlKey); // Ctrl - keyboard[11, 5] = keysDown.Contains(Keys.Tab); // Func - keyboard[11, 6] = keysDown.Contains(Keys.ShiftKey); // Shift + keyboard[11, 5] = keysDown.Contains(MotionKey.Tab); // Func + keyboard[11, 6] = keysDown.Contains(MotionKey.ShiftKey); // Shift } else { diff --git a/Assets/Plugins/Essgee/Emulation/Video/Nintendo/DMGVideo.cs b/Assets/Plugins/Essgee/Emulation/Video/Nintendo/DMGVideo.cs index c91b629..9840b5f 100644 --- a/Assets/Plugins/Essgee/Emulation/Video/Nintendo/DMGVideo.cs +++ b/Assets/Plugins/Essgee/Emulation/Video/Nintendo/DMGVideo.cs @@ -10,6 +10,7 @@ using Essgee.EventArguments; using Essgee.Utilities; using static Essgee.Emulation.CPU.SM83; +using System.Runtime.InteropServices; namespace Essgee.Emulation.Video.Nintendo { @@ -408,9 +409,16 @@ namespace Essgee.Emulation.Video.Nintendo if (skipFrames > 0) skipFrames--; - /* Submit screen for rendering */ - OnRenderScreen(new RenderScreenEventArgs(displayActiveWidth, displayActiveHeight, outputFramebuffer.Clone() as byte[])); - } + /* Submit screen for rendering */ + + + // 固定数组,防止垃圾回收器移动它 + var bitmapcolorRect_handle = GCHandle.Alloc(outputFramebuffer.Clone() as byte[], GCHandleType.Pinned); + // 获取数组的指针 + IntPtr mFrameDataPtr = bitmapcolorRect_handle.AddrOfPinnedObject(); + OnRenderScreen(new RenderScreenEventArgs(displayActiveWidth, displayActiveHeight, mFrameDataPtr)); + //OnRenderScreen(new RenderScreenEventArgs(displayActiveWidth, displayActiveHeight, outputFramebuffer.Clone() as byte[])); + } else { modeNumber = 2; diff --git a/Assets/Plugins/Essgee/Emulation/Video/SegaGGVDP.cs b/Assets/Plugins/Essgee/Emulation/Video/SegaGGVDP.cs index 892ec28..061091b 100644 --- a/Assets/Plugins/Essgee/Emulation/Video/SegaGGVDP.cs +++ b/Assets/Plugins/Essgee/Emulation/Video/SegaGGVDP.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; @@ -54,7 +55,14 @@ namespace Essgee.Emulation.Video protected override void PrepareRenderScreen() { - OnRenderScreen(new RenderScreenEventArgs(Viewport.Width, Viewport.Height, outputFramebuffer.Clone() as byte[])); + + + // 固定数组,防止垃圾回收器移动它 + var bitmapcolorRect_handle = GCHandle.Alloc(outputFramebuffer.Clone() as byte[], GCHandleType.Pinned); + // 获取数组的指针 + IntPtr mFrameDataPtr = bitmapcolorRect_handle.AddrOfPinnedObject(); + OnRenderScreen(new RenderScreenEventArgs(numVisiblePixels, numVisibleScanlines, mFrameDataPtr)); + //OnRenderScreen(new RenderScreenEventArgs(Viewport.Width, Viewport.Height, outputFramebuffer.Clone() as byte[])); } private bool ModifyAndVerifyCoordinates(ref int x, ref int y) diff --git a/Assets/Plugins/Essgee/Emulation/Video/SegaSMSVDP.cs b/Assets/Plugins/Essgee/Emulation/Video/SegaSMSVDP.cs index ef3c275..a2d02f6 100644 --- a/Assets/Plugins/Essgee/Emulation/Video/SegaSMSVDP.cs +++ b/Assets/Plugins/Essgee/Emulation/Video/SegaSMSVDP.cs @@ -9,6 +9,7 @@ using Essgee.EventArguments; using Essgee.Utilities; using static Essgee.Emulation.Utilities; +using System.Runtime.InteropServices; namespace Essgee.Emulation.Video { @@ -446,7 +447,14 @@ namespace Essgee.Emulation.Video protected override void PrepareRenderScreen() { - OnRenderScreen(new RenderScreenEventArgs(numVisiblePixels, numVisibleScanlines, outputFramebuffer.Clone() as byte[])); + + + // 固定数组,防止垃圾回收器移动它 + var bitmapcolorRect_handle = GCHandle.Alloc(outputFramebuffer.Clone() as byte[], GCHandleType.Pinned); + // 获取数组的指针 + IntPtr mFrameDataPtr = bitmapcolorRect_handle.AddrOfPinnedObject(); + OnRenderScreen(new RenderScreenEventArgs(numVisiblePixels, numVisibleScanlines, mFrameDataPtr)); + //OnRenderScreen(new RenderScreenEventArgs(numVisiblePixels, numVisibleScanlines, outputFramebuffer.Clone() as byte[])); } protected override byte ReadVram(ushort address) diff --git a/Assets/Plugins/Essgee/Emulation/Video/TMS99xxA.cs b/Assets/Plugins/Essgee/Emulation/Video/TMS99xxA.cs index f356b8d..186d237 100644 --- a/Assets/Plugins/Essgee/Emulation/Video/TMS99xxA.cs +++ b/Assets/Plugins/Essgee/Emulation/Video/TMS99xxA.cs @@ -9,6 +9,7 @@ using Essgee.EventArguments; using Essgee.Utilities; using static Essgee.Emulation.Utilities; +using System.Runtime.InteropServices; namespace Essgee.Emulation.Video { @@ -342,8 +343,15 @@ namespace Essgee.Emulation.Video protected virtual void PrepareRenderScreen() { - OnRenderScreen(new RenderScreenEventArgs(numVisiblePixels, numVisibleScanlines, outputFramebuffer.Clone() as byte[])); - } + + // 固定数组,防止垃圾回收器移动它 + var bitmapcolorRect_handle = GCHandle.Alloc(outputFramebuffer.Clone() as byte[], GCHandleType.Pinned); + // 获取数组的指针 + IntPtr mFrameDataPtr = bitmapcolorRect_handle.AddrOfPinnedObject(); + OnRenderScreen(new RenderScreenEventArgs(numVisiblePixels, numVisibleScanlines, mFrameDataPtr)); + + //OnRenderScreen(new RenderScreenEventArgs(numVisiblePixels, numVisibleScanlines, outputFramebuffer.Clone() as byte[])); + } protected virtual void ClearScreenUsage() { diff --git a/Assets/Plugins/Essgee/EventArguments/PollInputEventArgs.cs b/Assets/Plugins/Essgee/EventArguments/PollInputEventArgs.cs index e8072dc..05029e7 100644 --- a/Assets/Plugins/Essgee/EventArguments/PollInputEventArgs.cs +++ b/Assets/Plugins/Essgee/EventArguments/PollInputEventArgs.cs @@ -6,7 +6,7 @@ namespace Essgee.EventArguments { public class PollInputEventArgs : EventArgs { - public IEnumerable Keyboard { get; set; } + public IEnumerable Keyboard { get; set; } public MouseButtons MouseButtons { get; set; } public (int X, int Y) MousePosition { get; set; } @@ -15,7 +15,7 @@ namespace Essgee.EventArguments public PollInputEventArgs() { - Keyboard = new List(); + Keyboard = new List(); MouseButtons = MouseButtons.None; MousePosition = (0, 0); diff --git a/Assets/Plugins/Essgee/EventArguments/RenderScreenEventArgs.cs b/Assets/Plugins/Essgee/EventArguments/RenderScreenEventArgs.cs index 49835fc..efd776c 100644 --- a/Assets/Plugins/Essgee/EventArguments/RenderScreenEventArgs.cs +++ b/Assets/Plugins/Essgee/EventArguments/RenderScreenEventArgs.cs @@ -10,13 +10,16 @@ namespace Essgee.EventArguments { public int Width { get; private set; } public int Height { get; private set; } - public byte[] FrameData { get; private set; } + //public byte[] FrameData { get; private set; } + public IntPtr FrameDataPtr { get; private set; } - public RenderScreenEventArgs(int width, int height, byte[] data) + + public RenderScreenEventArgs(int width, int height, IntPtr ptr) { Width = width; Height = height; - FrameData = data; + //FrameData = data; + FrameDataPtr = ptr; } } } diff --git a/Assets/Plugins/Essgee/Keys.cs b/Assets/Plugins/Essgee/MotionKey.cs similarity index 99% rename from Assets/Plugins/Essgee/Keys.cs rename to Assets/Plugins/Essgee/MotionKey.cs index 8e10ef0..257f883 100644 --- a/Assets/Plugins/Essgee/Keys.cs +++ b/Assets/Plugins/Essgee/MotionKey.cs @@ -5,7 +5,7 @@ using System.ComponentModel; [Flags] [ComVisible(true)] -public enum Keys +public enum MotionKey { KeyCode = 0xFFFF, Modifiers = -65536, diff --git a/Assets/Plugins/Essgee/Keys.cs.meta b/Assets/Plugins/Essgee/MotionKey.cs.meta similarity index 100% rename from Assets/Plugins/Essgee/Keys.cs.meta rename to Assets/Plugins/Essgee/MotionKey.cs.meta diff --git a/Assets/Plugins/Essgee/Utilities/InterfaceDictionaryConverter.cs b/Assets/Plugins/Essgee/Utilities/InterfaceDictionaryConverter.cs index d6dd61b..65c655d 100644 --- a/Assets/Plugins/Essgee/Utilities/InterfaceDictionaryConverter.cs +++ b/Assets/Plugins/Essgee/Utilities/InterfaceDictionaryConverter.cs @@ -22,7 +22,7 @@ namespace Essgee.Utilities if (!objectType.IsGenericType || objectType.GetGenericTypeDefinition() != typeof(Dictionary<,>)) throw new InvalidOperationException("Can only deserialize dictionaries"); var dictionary = (System.Collections.IDictionary)Activator.CreateInstance(objectType); - + //不再读取配置 var jObject = JObject.Load(reader); foreach (var child in jObject.Children()) { diff --git a/Assets/Plugins/Essgee/Utilities/XInput/ControllerManager.cs b/Assets/Plugins/Essgee/Utilities/XInput/ControllerManager.cs index 71d3333..ef7e068 100644 --- a/Assets/Plugins/Essgee/Utilities/XInput/ControllerManager.cs +++ b/Assets/Plugins/Essgee/Utilities/XInput/ControllerManager.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Essgee.Utilities.XInput { diff --git a/Assets/Scenes/EssgeeUnity.Unity b/Assets/Scenes/EssgeeUnity.Unity new file mode 100644 index 0000000..d323dec --- /dev/null +++ b/Assets/Scenes/EssgeeUnity.Unity @@ -0,0 +1,401 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!1 &1469661490 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1469661493} + - component: {fileID: 1469661492} + - component: {fileID: 1469661491} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1469661491 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1469661490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 +--- !u!114 &1469661492 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1469661490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1469661493 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1469661490} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &6778330545329863699 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 70883439141109485, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_Name + value: EssgeeUnity + objectReference: {fileID: 0} + - target: {fileID: 1697793132499616605, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1697793132499616605, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1697793132499616605, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1697793132499616605, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1697793132499616605, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1697793132499616605, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1697793132499616605, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1697793132499616605, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1697793132499616605, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1697793132499616605, guid: 20e1ff69d8c691b4299757181385f497, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 20e1ff69d8c691b4299757181385f497, type: 3} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 330585546} + - {fileID: 6778330545329863699} + - {fileID: 1469661493} diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Scenes/EssgeeUnity.Unity.meta similarity index 100% rename from Assets/Scenes/SampleScene.unity.meta rename to Assets/Scenes/EssgeeUnity.Unity.meta diff --git a/Assets/Scenes/EssgeeUnity.prefab b/Assets/Scenes/EssgeeUnity.prefab new file mode 100644 index 0000000..4e39a45 --- /dev/null +++ b/Assets/Scenes/EssgeeUnity.prefab @@ -0,0 +1,352 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &70883439141109485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1697793132499616605} + - component: {fileID: 736821097941426334} + - component: {fileID: 1479243231233559559} + - component: {fileID: 7015183808095004452} + - component: {fileID: 6011412303868462633} + m_Layer: 0 + m_Name: EssgeeUnity + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1697793132499616605 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 70883439141109485} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4829774629647575852} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &736821097941426334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 70883439141109485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ee8551c24327cd04a81ffb5de0146f9c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1479243231233559559 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 70883439141109485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f675565b1f4ed7744a8ea9788c92429d, type: 3} + m_Name: + m_EditorClassIdentifier: + mWidth: 160 + mHeight: 144 + mDataLenght: 0 + m_rawBufferWarper: {fileID: 0} + m_drawCanvas: {fileID: 1415903496979242101} + m_drawCanvasrect: {fileID: 4829774629647575852} +--- !u!114 &7015183808095004452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 70883439141109485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 89abab1d3b1020340a147d74e60751ce, type: 3} + m_Name: + m_EditorClassIdentifier: + m_as: {fileID: 6011412303868462633} +--- !u!82 &6011412303868462633 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 70883439141109485} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_Resource: {fileID: 0} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 1 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!1 &2203418964758308711 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 153069469667130431} + - component: {fileID: 1996193783355217829} + - component: {fileID: 1415903496979242101} + m_Layer: 5 + m_Name: GameRawImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &153069469667130431 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2203418964758308711} + m_LocalRotation: {x: 1, y: 0, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4829774629647575852} + m_LocalEulerAnglesHint: {x: 180, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1996193783355217829 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2203418964758308711} + m_CullTransparentMesh: 1 +--- !u!114 &1415903496979242101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2203418964758308711} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!1 &5558964681998005947 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4829774629647575852} + - component: {fileID: 6904606342347745421} + - component: {fileID: 2921482546112766419} + - component: {fileID: 7864505849399022799} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4829774629647575852 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5558964681998005947} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 153069469667130431} + m_Father: {fileID: 1697793132499616605} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &6904606342347745421 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5558964681998005947} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &2921482546112766419 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5558964681998005947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &7864505849399022799 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5558964681998005947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 diff --git a/Assets/Scenes/EssgeeUnity.prefab.meta b/Assets/Scenes/EssgeeUnity.prefab.meta new file mode 100644 index 0000000..2a3ab2a --- /dev/null +++ b/Assets/Scenes/EssgeeUnity.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 20e1ff69d8c691b4299757181385f497 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity deleted file mode 100644 index d11bbaa..0000000 --- a/Assets/Scenes/SampleScene.unity +++ /dev/null @@ -1,754 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 10 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 13 - m_BakeOnSceneLoad: 0 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 1 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 3 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - buildHeightMesh: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &14591771 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 14591772} - - component: {fileID: 14591774} - - component: {fileID: 14591773} - m_Layer: 5 - m_Name: GameRawImage - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &14591772 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 14591771} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1786953329} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &14591773 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 14591771} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Texture: {fileID: 0} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 ---- !u!222 &14591774 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 14591771} - m_CullTransparentMesh: 1 ---- !u!1 &330585543 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 330585546} - - component: {fileID: 330585545} - - component: {fileID: 330585544} - - component: {fileID: 330585547} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &330585544 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 ---- !u!20 &330585545 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &330585546 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &330585547 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: -1 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 1 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_AllowHDROutput: 1 - m_UseScreenCoordOverride: 0 - m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} - m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 - m_TaaSettings: - m_Quality: 3 - m_FrameInfluence: 0.1 - m_JitterScale: 1 - m_MipBias: 0 - m_VarianceClampScale: 0.9 - m_ContrastAdaptiveSharpening: 0 ---- !u!1 &410087039 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 410087041} - - component: {fileID: 410087040} - - component: {fileID: 410087042} - m_Layer: 0 - m_Name: Directional Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &410087040 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 410087039} - m_Enabled: 1 - serializedVersion: 11 - m_Type: 1 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 2 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 5000 - m_UseColorTemperature: 1 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ForceVisible: 0 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_LightUnit: 1 - m_LuxAtDistance: 1 - m_EnableSpotReflector: 1 ---- !u!4 &410087041 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 410087039} - serializedVersion: 2 - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!114 &410087042 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 410087039} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Version: 3 - m_UsePipelineSettings: 1 - m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 - m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 - m_LightCookieSize: {x: 1, y: 1} - m_LightCookieOffset: {x: 0, y: 0} - m_SoftShadowQuality: 1 ---- !u!1 &832575517 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 832575519} - - component: {fileID: 832575518} - m_Layer: 0 - m_Name: Global Volume - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &832575518 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 832575517} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IsGlobal: 1 - priority: 0 - blendDistance: 0 - weight: 1 - sharedProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2} ---- !u!4 &832575519 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 832575517} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1469661490 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1469661493} - - component: {fileID: 1469661492} - - component: {fileID: 1469661491} - m_Layer: 0 - m_Name: EventSystem - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1469661491 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1469661490} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_MoveRepeatDelay: 0.5 - m_MoveRepeatRate: 0.1 - m_XRTrackingOrigin: {fileID: 0} - m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} - m_DeselectOnBackgroundClick: 1 - m_PointerBehavior: 0 - m_CursorLockBehavior: 0 - m_ScrollDeltaPerTick: 6 ---- !u!114 &1469661492 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1469661490} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &1469661493 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1469661490} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1786953328 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1786953329} - - component: {fileID: 1786953332} - - component: {fileID: 1786953331} - - component: {fileID: 1786953330} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1786953329 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1786953328} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 14591772} - m_Father: {fileID: 2110653908} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!114 &1786953330 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1786953328} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &1786953331 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1786953328} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!223 &1786953332 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1786953328} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_VertexColorAlwaysGammaSpace: 0 - m_AdditionalShaderChannelsFlag: 0 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!1 &2110653906 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2110653908} - - component: {fileID: 2110653907} - - component: {fileID: 2110653909} - m_Layer: 0 - m_Name: GameObject - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &2110653907 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2110653906} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ee8551c24327cd04a81ffb5de0146f9c, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &2110653908 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2110653906} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1786953329} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2110653909 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2110653906} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f675565b1f4ed7744a8ea9788c92429d, type: 3} - m_Name: - m_EditorClassIdentifier: - mWidth: 160 - mHeight: 144 - mDataLenght: 0 - m_rawBufferWarper: {fileID: 0} - m_drawCanvas: {fileID: 14591773} - m_drawCanvasrect: {fileID: 1786953329} ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 330585546} - - {fileID: 410087041} - - {fileID: 832575519} - - {fileID: 2110653908} - - {fileID: 1469661493} diff --git a/Assets/Scripts/Essgeeinit.cs b/Assets/Scripts/Essgeeinit.cs index 7f23d8b..731dfd3 100644 --- a/Assets/Scripts/Essgeeinit.cs +++ b/Assets/Scripts/Essgeeinit.cs @@ -16,7 +16,9 @@ using UnityEngine; public class Essgeeinit : MonoBehaviour { + static Essgeeinit instance; public static System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew(); + public static bool bInGame => instance?.emulatorHandler?.IsRunning == true ? true : false; #region UEGVideoPlayer graphicsHandler; UEGSoundPlayer soundHandler; @@ -29,13 +31,15 @@ public class Essgeeinit : MonoBehaviour double currentPixelAspectRatio; byte[] lastFramebufferData; (int width, int height) lastFramebufferSize; + private UniKeyboard mUniKeyboard; - private List keysDown; #endregion void Awake() { + instance = this; InitAll(Application.streamingAssetsPath, Application.persistentDataPath); + //LoadAndRunCartridge("G:/Ninja_Gaiden_(UE)_type_A_[!].sms"); LoadAndRunCartridge("G:/SML2.gb"); } @@ -45,6 +49,13 @@ public class Essgeeinit : MonoBehaviour Dispose(false); } + private void Update() + { + if (!emulatorHandler.IsRunning) + return; + mUniKeyboard.UpdateInputKey(); + } + void InitAll(string BaseDataDir, string CustonDataDir) { //ʼ @@ -103,7 +114,7 @@ public class Essgeeinit : MonoBehaviour void InitEmu() { - keysDown = new List(); + //keysDown = new List(); } #region ϸڳʼ @@ -114,6 +125,8 @@ public class Essgeeinit : MonoBehaviour InitializeGraphicsHandler(); InitializeSoundHandler(); InitializeMetadataHandler(); + + mUniKeyboard = this.gameObject.AddComponent(); } private void InitializeOSDHandler() @@ -136,7 +149,7 @@ public class Essgeeinit : MonoBehaviour private void InitializeSoundHandler() { - soundHandler = this.gameObject.AddComponent(); + soundHandler = this.gameObject.GetComponent(); //soundHandler = new SoundHandler(onScreenDisplayHandler, Program.Configuration.SampleRate, 2, ExceptionHandler); //soundHandler.SetVolume(Program.Configuration.Volume); //soundHandler.SetMute(Program.Configuration.Mute); @@ -176,6 +189,7 @@ public class Essgeeinit : MonoBehaviour } List machineType = new List(); machineType.Add(typeof(GameBoy)); + machineType.Add(typeof(MasterSystem)); //foreach (var machineConfigType in Assembly.GetExecutingAssembly().GetTypes().Where(x => typeof(IConfiguration).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)) foreach (var machineConfigType in machineType) @@ -344,8 +358,16 @@ public class Essgeeinit : MonoBehaviour //startRecordingToolStripMenuItem.Enabled = true; //toggleLayersToolStripMenuItem.Enabled = enableChannelsToolStripMenuItem.Enabled = true; + + //ʼͬƽ̨İť + mUniKeyboard.Init(emulatorHandler.emulator); + emulatorHandler.Startup(); + + //ʼƵ + soundHandler.Initialize(); + //SizeAndPositionWindow(); //SetWindowTitleAndStatus(); @@ -544,7 +566,8 @@ public class Essgeeinit : MonoBehaviour //lastFramebufferData = e.FrameData; //graphicsHandler?.SetTextureData(e.FrameData); - graphicsHandler.SubmitVideo(e.Width, e.Height, e.FrameData, 0); + //graphicsHandler.SubmitVideo(e.Width, e.Height, e.FrameData, 0); + graphicsHandler.SubmitVideo(e.Width, e.Height, e.FrameDataPtr, 0); // TODO: create emulation "EndOfFrame" event for this? ControllerManager.Update(); @@ -577,10 +600,14 @@ public class Essgeeinit : MonoBehaviour { //TODO Inputʵ - //// TODO: rare, random, weird argument exceptions on e.Keyboard assignment; does this lock help?? + e.Keyboard = mUniKeyboard.mKeyCodeCore.GetPressedKeys(); + e.MouseButtons = default; + e.MousePosition = default; + + // TODO: rare, random, weird argument exceptions on e.Keyboard assignment; does this lock help?? //lock (uiLock) //{ - // e.Keyboard = new List(keysDown); + // e.Keyboard = new List(keysDown); // e.MouseButtons = mouseButtonsDown; // var vx = (currentViewport.x - 50); @@ -655,7 +682,6 @@ public class Essgeeinit : MonoBehaviour public void EnqueueSoundSamples(object sender, EnqueueSamplesEventArgs e) { - return; //if (sampleQueue.Count > MaxQueueLength) //{ // var samplesToDrop = (sampleQueue.Count - MaxQueueLength); @@ -674,7 +700,7 @@ public class Essgeeinit : MonoBehaviour //} //TODO Ƶ - soundHandler.SubmitSamples(e.MixedSamples, e.MixedSamples.Length); + soundHandler.SubmitSamples(e.MixedSamples, e.ChannelSamples, e.MixedSamples.Length); } #endregion } diff --git a/Assets/Scripts/RingBuffer.cs b/Assets/Scripts/RingBuffer.cs new file mode 100644 index 0000000..ff3727c --- /dev/null +++ b/Assets/Scripts/RingBuffer.cs @@ -0,0 +1,72 @@ +using System.Threading; + +public class RingBuffer +{ + private readonly T[] buffer; + private readonly int capacity; + private int writePos; + private int readPos; + private int count; + + public RingBuffer(int capacity) + { + this.capacity = capacity; + this.buffer = new T[capacity]; + this.writePos = 0; + this.readPos = 0; + this.count = 0; + } + + public void Write(T item) + { + int localWritePos; + int localReadPos; + + do + { + localWritePos = Volatile.Read(ref writePos); + localReadPos = Volatile.Read(ref readPos); + + int nextWritePos = (localWritePos + 1) % capacity; + + if (nextWritePos == localReadPos) + { + // ɵδ + Interlocked.CompareExchange(ref readPos, (localReadPos + 1) % capacity, localReadPos); + } + } + while (Interlocked.CompareExchange(ref writePos, (localWritePos + 1) % capacity, localWritePos) != localWritePos); + + buffer[localWritePos] = item; + Interlocked.Increment(ref count); + } + + public bool TryRead(out T item) + { + item = default(T); + + int localReadPos; + int localWritePos; + + do + { + localReadPos = Volatile.Read(ref readPos); + localWritePos = Volatile.Read(ref writePos); + + if (localReadPos == localWritePos) + { + return false; // Ϊ + } + } + while (Interlocked.CompareExchange(ref readPos, (localReadPos + 1) % capacity, localReadPos) != localReadPos); + + item = buffer[localReadPos]; + Interlocked.Decrement(ref count); + return true; + } + + public int Available() + { + return Volatile.Read(ref count); + } +} diff --git a/Assets/Scripts/RingBuffer.cs.meta b/Assets/Scripts/RingBuffer.cs.meta new file mode 100644 index 0000000..874ff3b --- /dev/null +++ b/Assets/Scripts/RingBuffer.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c4dad3e52cbbde841a9eb86cd7a18a37 \ No newline at end of file diff --git a/Assets/Scripts/UniInterface/KeyCodeCore.cs b/Assets/Scripts/UniInterface/KeyCodeCore.cs index 8971122..ce69cdf 100644 --- a/Assets/Scripts/UniInterface/KeyCodeCore.cs +++ b/Assets/Scripts/UniInterface/KeyCodeCore.cs @@ -1,183 +1,198 @@ -//using MAME.Core; -//using System; -//using System.Collections.Generic; -//using System.Linq; -//using UnityEngine; +using Essgee.Emulation.Configuration; +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; -//public class KeyCodeCore : IKeyboard -//{ -// public Dictionary dictKeyCfgs = new Dictionary(); -// public KeyCode[] CheckList; -// public MotionKey[] mCurrKey = new MotionKey[0]; -// public ulong CurryInpuAllData = 0; -// List temp = new List(); -// ulong tempInputAllData = 0; -// UniKeyboard mUniKeyboard; -// bool bReplayMode; -// List ReplayCheckKey = new List(); +public class KeyCodeCore +{ + public Dictionary dictKeyCfgs = new Dictionary(); + public KeyCode[] CheckList; + public MotionKey[] mCurrKey = new MotionKey[0]; + //public ulong CurryInpuAllData = 0; + List temp = new List(); + ulong tempInputAllData = 0; + UniKeyboard mUniKeyboard; + //bool bReplayMode; + //List ReplayCheckKey = new List(); -// ulong last_CurryInpuAllData_test = 0; + ulong last_CurryInpuAllData_test = 0; -// public MotionKey[] GetPressedKeys() -// { -// if (!bReplayMode) -// { -// //UMAME.instance.mReplayWriter.NextFramebyFrameIdx((int)UMAME.instance.mUniVideoPlayer.mFrame, CurryInpuAllData); -// UMAME.instance.mReplayWriter.NextFramebyFrameIdx((int)UMAME.instance.mUniVideoPlayer.mFrame, CurryInpuAllData); + public MotionKey[] GetPressedKeys() + { + return mCurrKey; -//#if UNITY_EDITOR -// if (last_CurryInpuAllData_test != CurryInpuAllData) -// { -// last_CurryInpuAllData_test = CurryInpuAllData; -// string TempStr = ""; -// foreach (var item in mCurrKey) -// { -// TempStr += $"{item.ToString()}|"; -// } -// if (!string.IsNullOrEmpty(TempStr)) -// Debug.Log($"{UMAME.instance.mUniVideoPlayer.mFrame} | Input-> {TempStr}"); -// else -// Debug.Log($"{UMAME.instance.mUniVideoPlayer.mFrame} | Input-> 0"); -// } -//#endif -// return mCurrKey; -// } -// else -// { -// //有变化 + // if (!bReplayMode) + // { + // //UMAME.instance.mReplayWriter.NextFramebyFrameIdx((int)UMAME.instance.mUniVideoPlayer.mFrame, CurryInpuAllData); + // UMAME.instance.mReplayWriter.NextFramebyFrameIdx((int)UMAME.instance.mUniVideoPlayer.mFrame, CurryInpuAllData); -// //if (UMAME.instance.mReplayReader.NextFrame(out AxiReplay.ReplayStep stepData)) -// if (UMAME.instance.mReplayReader.NextFramebyFrameIdx((int)UMAME.instance.mUniVideoPlayer.mFrame, out AxiReplay.ReplayStep stepData)) -// { -// temp.Clear(); -// //有数据 -// for (int i = 0; i < ReplayCheckKey.Count; i++) -// { -// if ((stepData.InPut & (ulong)ReplayCheckKey[i]) > 0) -// temp.Add(ReplayCheckKey[i]); -// } -// mCurrKey = temp.ToArray(); + //#if UNITY_EDITOR + // if (last_CurryInpuAllData_test != CurryInpuAllData) + // { + // last_CurryInpuAllData_test = CurryInpuAllData; + // string TempStr = ""; + // foreach (var item in mCurrKey) + // { + // TempStr += $"{item.ToString()}|"; + // } + // if (!string.IsNullOrEmpty(TempStr)) + // Debug.Log($"{UMAME.instance.mUniVideoPlayer.mFrame} | Input-> {TempStr}"); + // else + // Debug.Log($"{UMAME.instance.mUniVideoPlayer.mFrame} | Input-> 0"); + // } + //#endif + // return mCurrKey; + // } + // else + // { + // //有变化 + + // //if (UMAME.instance.mReplayReader.NextFrame(out AxiReplay.ReplayStep stepData)) + // if (UMAME.instance.mReplayReader.NextFramebyFrameIdx((int)UMAME.instance.mUniVideoPlayer.mFrame, out AxiReplay.ReplayStep stepData)) + // { + // temp.Clear(); + // //有数据 + // for (int i = 0; i < ReplayCheckKey.Count; i++) + // { + // if ((stepData.InPut & (ulong)ReplayCheckKey[i]) > 0) + // temp.Add(ReplayCheckKey[i]); + // } + // mCurrKey = temp.ToArray(); -//#if UNITY_EDITOR -// string TempStr = ""; -// foreach (var item in mCurrKey) -// { -// TempStr += $"{item.ToString()}|"; -// } -// if (!string.IsNullOrEmpty(TempStr)) -// Debug.Log($"{UMAME.instance.mUniVideoPlayer.mFrame} | Input-> {TempStr}"); -// else -// Debug.Log($"{UMAME.instance.mUniVideoPlayer.mFrame} | Input-> 0"); -//#endif -// } + //#if UNITY_EDITOR + // string TempStr = ""; + // foreach (var item in mCurrKey) + // { + // TempStr += $"{item.ToString()}|"; + // } + // if (!string.IsNullOrEmpty(TempStr)) + // Debug.Log($"{UMAME.instance.mUniVideoPlayer.mFrame} | Input-> {TempStr}"); + // else + // Debug.Log($"{UMAME.instance.mUniVideoPlayer.mFrame} | Input-> 0"); + //#endif + // } -// return mCurrKey; -// } -// } + // return mCurrKey; + // } + } -// public void SetRePlay(bool IsReplay) -// { -// bReplayMode = IsReplay; -// } -// public void Init(UniKeyboard uniKeyboard, bool IsReplay) -// { -// bReplayMode = IsReplay; -// mUniKeyboard = uniKeyboard; -// foreach (MotionKey mkey in Enum.GetValues(typeof(MotionKey))) -// { -// ReplayCheckKey.Add(mkey); -// } -// dictKeyCfgs.Clear(); -// //dictKeyCfgs.Add(KeyCode.P, MotionKey.EMU_PAUSED); -// dictKeyCfgs.Add(KeyCode.Alpha1, MotionKey.P1_GAMESTART); -// dictKeyCfgs.Add(KeyCode.Alpha5, MotionKey.P1_INSERT_COIN); -// dictKeyCfgs.Add(KeyCode.W, MotionKey.P1_UP); -// dictKeyCfgs.Add(KeyCode.S, MotionKey.P1_DOWN); -// dictKeyCfgs.Add(KeyCode.A, MotionKey.P1_LEFT); -// dictKeyCfgs.Add(KeyCode.D, MotionKey.P1_RIGHT); -// dictKeyCfgs.Add(KeyCode.J, MotionKey.P1_BTN_1); -// dictKeyCfgs.Add(KeyCode.K, MotionKey.P1_BTN_2); -// dictKeyCfgs.Add(KeyCode.L, MotionKey.P1_BTN_3); -// dictKeyCfgs.Add(KeyCode.U, MotionKey.P1_BTN_4); -// dictKeyCfgs.Add(KeyCode.KeypadDivide, MotionKey.P2_GAMESTART); -// dictKeyCfgs.Add(KeyCode.KeypadMultiply, MotionKey.P2_INSERT_COIN); -// dictKeyCfgs.Add(KeyCode.UpArrow, MotionKey.P2_UP); -// dictKeyCfgs.Add(KeyCode.DownArrow, MotionKey.P2_DOWN); -// dictKeyCfgs.Add(KeyCode.LeftArrow, MotionKey.P2_LEFT); -// dictKeyCfgs.Add(KeyCode.RightArrow, MotionKey.P2_RIGHT); -// dictKeyCfgs.Add(KeyCode.Keypad1, MotionKey.P2_BTN_1); -// dictKeyCfgs.Add(KeyCode.Keypad2, MotionKey.P2_BTN_2); -// dictKeyCfgs.Add(KeyCode.Keypad3, MotionKey.P2_BTN_3); -// dictKeyCfgs.Add(KeyCode.Keypad4, MotionKey.P2_BTN_4); -// CheckList = dictKeyCfgs.Keys.ToArray(); + public void SetRePlay(bool IsReplay) + { + //bReplayMode = IsReplay; + } + public void Init(Essgee.Emulation.Machines.IMachine Machine, UniKeyboard uniKeyboard, bool IsReplay) + { + //bReplayMode = IsReplay; + mUniKeyboard = uniKeyboard; + //foreach (MotionKey mkey in Enum.GetValues(typeof(MotionKey))) + //{ + // ReplayCheckKey.Add(mkey); + //} + dictKeyCfgs.Clear(); + //dictKeyCfgs.Add(KeyCode.P, MotionKey.EMU_PAUSED); + + if (Machine is Essgee.Emulation.Machines.MasterSystem) + { + var machine = (Essgee.Emulation.Machines.MasterSystem)Machine; + dictKeyCfgs.Add(KeyCode.W, machine.configuration.Joypad1Up); + dictKeyCfgs.Add(KeyCode.S, machine.configuration.Joypad1Down); + dictKeyCfgs.Add(KeyCode.A, machine.configuration.Joypad1Left); + dictKeyCfgs.Add(KeyCode.D, machine.configuration.Joypad1Right); + dictKeyCfgs.Add(KeyCode.J, machine.configuration.Joypad1Button1); + dictKeyCfgs.Add(KeyCode.K, machine.configuration.Joypad1Button2); + + dictKeyCfgs.Add(KeyCode.UpArrow, machine.configuration.Joypad2Up); + dictKeyCfgs.Add(KeyCode.DownArrow, machine.configuration.Joypad2Down); + dictKeyCfgs.Add(KeyCode.LeftArrow, machine.configuration.Joypad2Left); + dictKeyCfgs.Add(KeyCode.RightAlt, machine.configuration.Joypad2Right); + dictKeyCfgs.Add(KeyCode.Alpha1, machine.configuration.Joypad2Button1); + dictKeyCfgs.Add(KeyCode.Alpha2, machine.configuration.Joypad2Button2); + } + else if (Machine is Essgee.Emulation.Machines.GameBoy) + { + var machine = (Essgee.Emulation.Machines.GameBoy)Machine; + + dictKeyCfgs.Add(KeyCode.W, machine.configuration.ControlsUp); + dictKeyCfgs.Add(KeyCode.S, machine.configuration.ControlsDown); + dictKeyCfgs.Add(KeyCode.A, machine.configuration.ControlsLeft); + dictKeyCfgs.Add(KeyCode.D, machine.configuration.ControlsRight); + dictKeyCfgs.Add(KeyCode.J, machine.configuration.ControlsB); + dictKeyCfgs.Add(KeyCode.K, machine.configuration.ControlsA); + + dictKeyCfgs.Add(KeyCode.Return, machine.configuration.ControlsStart); + dictKeyCfgs.Add(KeyCode.RightShift, machine.configuration.ControlsSelect); + } + + CheckList = dictKeyCfgs.Keys.ToArray(); -// mUniKeyboard.btnP1.Key = new long[] { (long)MotionKey.P1_GAMESTART }; -// mUniKeyboard.btnCoin1.Key = new long[] { (long)MotionKey.P1_INSERT_COIN }; -// mUniKeyboard.btnA.Key = new long[] { (long)MotionKey.P1_BTN_1 }; -// mUniKeyboard.btnB.Key = new long[] { (long)MotionKey.P1_BTN_2 }; -// mUniKeyboard.btnC.Key = new long[] { (long)MotionKey.P1_BTN_3 }; -// mUniKeyboard.btnD.Key = new long[] { (long)MotionKey.P1_BTN_4 }; -// //mUniKeyboard.btnE.Key = new long[] { (long)MotionKey.P1_BTN_5 }; -// //mUniKeyboard.btnF.Key = new long[] { (long)MotionKey.P1_BTN_6 }; -// mUniKeyboard.btnAB.Key = new long[] { (long)MotionKey.P1_BTN_1, (long)MotionKey.P1_BTN_2 }; -// mUniKeyboard.btnCD.Key = new long[] { (long)MotionKey.P1_BTN_3, (long)MotionKey.P1_BTN_4 }; -// mUniKeyboard.btnABC.Key = new long[] { (long)MotionKey.P1_BTN_1, (long)MotionKey.P1_BTN_2, (long)MotionKey.P1_BTN_3 }; -// } + //mUniKeyboard.btnP1.Key = new long[] { (long)MotionKey.P1_GAMESTART }; + //mUniKeyboard.btnCoin1.Key = new long[] { (long)MotionKey.P1_INSERT_COIN }; + //mUniKeyboard.btnA.Key = new long[] { (long)MotionKey.P1_BTN_1 }; + //mUniKeyboard.btnB.Key = new long[] { (long)MotionKey.P1_BTN_2 }; + //mUniKeyboard.btnC.Key = new long[] { (long)MotionKey.P1_BTN_3 }; + //mUniKeyboard.btnD.Key = new long[] { (long)MotionKey.P1_BTN_4 }; + ////mUniKeyboard.btnE.Key = new long[] { (long)MotionKey.P1_BTN_5 }; + ////mUniKeyboard.btnF.Key = new long[] { (long)MotionKey.P1_BTN_6 }; + //mUniKeyboard.btnAB.Key = new long[] { (long)MotionKey.P1_BTN_1, (long)MotionKey.P1_BTN_2 }; + //mUniKeyboard.btnCD.Key = new long[] { (long)MotionKey.P1_BTN_3, (long)MotionKey.P1_BTN_4 }; + //mUniKeyboard.btnABC.Key = new long[] { (long)MotionKey.P1_BTN_1, (long)MotionKey.P1_BTN_2, (long)MotionKey.P1_BTN_3 }; + } -// public void UpdateLogic() -// { -// if (bReplayMode) return; -// tempInputAllData = 0; -// temp.Clear(); -// for (int i = 0; i < CheckList.Length; i++) -// { -// if (Input.GetKey(CheckList[i])) -// { -// MotionKey mk = dictKeyCfgs[CheckList[i]]; -// temp.Add(mk); -// tempInputAllData |= (ulong)mk; -// } -// } + public void UpdateLogic() + { + //if (bReplayMode) return; + tempInputAllData = 0; + temp.Clear(); + for (int i = 0; i < CheckList.Length; i++) + { + if (Input.GetKey(CheckList[i])) + { + MotionKey mk = dictKeyCfgs[CheckList[i]]; + temp.Add(mk); + tempInputAllData |= (ulong)mk; + } + } -// for (int i = 0; i < mUniKeyboard.mUIBtns.Count; i++) -// { -// if (mUniKeyboard.mUIBtns[i].bHotKey) -// { -// for (int j = 0; j < mUniKeyboard.mUIBtns[i].Key.Length; j++) -// { -// MotionKey mk = (MotionKey)mUniKeyboard.mUIBtns[i].Key[j]; -// temp.Add(mk); -// tempInputAllData |= (ulong)mk; -// } -// } -// } + //for (int i = 0; i < mUniKeyboard.mUIBtns.Count; i++) + //{ + // if (mUniKeyboard.mUIBtns[i].bHotKey) + // { + // for (int j = 0; j < mUniKeyboard.mUIBtns[i].Key.Length; j++) + // { + // MotionKey mk = (MotionKey)mUniKeyboard.mUIBtns[i].Key[j]; + // temp.Add(mk); + // tempInputAllData |= (ulong)mk; + // } + // } + //} -// Vector2Int inputV2 = mUniKeyboard.mJoystick.RawInputV2; -// //Debug.Log($"{inputV2.x},{inputV2.y}"); -// if (inputV2.x > 0) -// { -// temp.Add(MotionKey.P1_RIGHT); -// tempInputAllData |= (ulong)MotionKey.P1_RIGHT; -// } -// else if (inputV2.x < 0) -// { -// temp.Add(MotionKey.P1_LEFT); -// tempInputAllData |= (ulong)MotionKey.P1_LEFT; -// } -// if (inputV2.y > 0) -// { -// temp.Add(MotionKey.P1_UP); -// tempInputAllData |= (ulong)MotionKey.P1_UP; -// } -// else if (inputV2.y < 0) -// { -// temp.Add(MotionKey.P1_DOWN); -// tempInputAllData |= (ulong)MotionKey.P1_DOWN; -// } -// CurryInpuAllData = tempInputAllData; -// mCurrKey = temp.ToArray(); + //Vector2Int inputV2 = mUniKeyboard.mJoystick.RawInputV2; + ////Debug.Log($"{inputV2.x},{inputV2.y}"); + //if (inputV2.x > 0) + //{ + // temp.Add(MotionKey.P1_RIGHT); + // tempInputAllData |= (ulong)MotionKey.P1_RIGHT; + //} + //else if (inputV2.x < 0) + //{ + // temp.Add(MotionKey.P1_LEFT); + // tempInputAllData |= (ulong)MotionKey.P1_LEFT; + //} + //if (inputV2.y > 0) + //{ + // temp.Add(MotionKey.P1_UP); + // tempInputAllData |= (ulong)MotionKey.P1_UP; + //} + //else if (inputV2.y < 0) + //{ + // temp.Add(MotionKey.P1_DOWN); + // tempInputAllData |= (ulong)MotionKey.P1_DOWN; + //} + //CurryInpuAllData = tempInputAllData; + mCurrKey = temp.ToArray(); -// } -//} \ No newline at end of file + } +} \ No newline at end of file diff --git a/Assets/Scripts/UniInterface/UEGSoundPlayer.cs b/Assets/Scripts/UniInterface/UEGSoundPlayer.cs index 6b5d7bf..53f0800 100644 --- a/Assets/Scripts/UniInterface/UEGSoundPlayer.cs +++ b/Assets/Scripts/UniInterface/UEGSoundPlayer.cs @@ -1,80 +1,82 @@ +using System; using UnityEngine; public class UEGSoundPlayer : MonoBehaviour//, ISoundPlayer { - //[SerializeField] - //private AudioSource m_as; - //private RingBuffer _buffer = new RingBuffer(4096); - //private TimeSpan lastElapsed; - //public double audioFPS { get; private set; } - //float lastData = 0; + [SerializeField] + private AudioSource m_as; + private RingBuffer _buffer = new RingBuffer(4096); + private TimeSpan lastElapsed; + public double audioFPS { get; private set; } + float lastData = 0; - //void Awake() - //{ - // AudioClip dummy = AudioClip.Create("dummy", 1, 2, AudioSettings.outputSampleRate, false); - // dummy.SetData(new float[] { 1, 1 }, 0); - // m_as.clip = dummy; - // m_as.loop = true; - // m_as.spatialBlend = 1; - //} - - //public void Initialize() - //{ - // if (!m_as.isPlaying) - // { - // m_as.Play(); - // } - //} - - //public void StopPlay() - //{ - // if (m_as.isPlaying) - // { - // m_as.Stop(); - // } - //} - - //void OnAudioFilterRead(float[] data, int channels) - //{ - // if (!UMAME.bInGame) return; - // int step = channels; - // for (int i = 0; i < data.Length; i += step) - // { - // float rawFloat = lastData; - // if (_buffer.TryRead(out float rawData)) - // { - // rawFloat = rawData; - // } - - // data[i] = rawFloat; - // for (int fill = 1; fill < step; fill++) - // data[i + fill] = rawFloat; - // lastData = rawFloat; - // } - //} - - public void SubmitSamples(short[] buffer, int samples_a) + void Awake() { - return; - //var current = UMAME.sw.Elapsed; - //var delta = current - lastElapsed; - //lastElapsed = current; - //audioFPS = 1d / delta.TotalSeconds; + //AudioClip dummy = AudioClip.Create("dummy", 1, 2, AudioSettings.outputSampleRate, false); + AudioClip dummy = AudioClip.Create("dummy", 1, 2, 44100, false); + dummy.SetData(new float[] { 1, 1 }, 0); + m_as.clip = dummy; + m_as.loop = true; + m_as.spatialBlend = 1; + } + public void Initialize() + { + if (!m_as.isPlaying) + { + m_as.Play(); + } + } + + public void StopPlay() + { + if (m_as.isPlaying) + { + m_as.Stop(); + } + } + + void OnAudioFilterRead(float[] data, int channels) + { + if (!Essgeeinit.bInGame) return; + int step = channels; + for (int i = 0; i < data.Length; i += step) + { + float rawFloat = lastData; + if (_buffer.TryRead(out float rawData)) + { + rawFloat = rawData; + } + + data[i] = rawFloat; + for (int fill = 1; fill < step; fill++) + data[i + fill] = rawFloat; + lastData = rawFloat; + } + } + + public void SubmitSamples(short[] buffer, short[][] ChannelSamples, int samples_a) + { + var current = Essgeeinit.sw.Elapsed; + var delta = current - lastElapsed; + lastElapsed = current; + audioFPS = 1d / delta.TotalSeconds; - ////for (int i = 0; i < samples_a; i++) - ////{ - //// short left = BitConverter.ToInt16(buffer, i * 2 * 2); - //// //short right = BitConverter.ToInt16(buffer, i * 2 * 2 + 2); - //// _buffer.Write(left / 32767.0f); - //// //_buffer.Write(right / 32767.0f); - ////} //for (int i = 0; i < samples_a; i++) //{ - // _buffer.Write(buffer); + // short left = BitConverter.ToInt16(buffer, i * 2 * 2); + // //short right = BitConverter.ToInt16(buffer, i * 2 * 2 + 2); + // _buffer.Write(left / 32767.0f); + // //_buffer.Write(right / 32767.0f); //} + + for (int i = 0; i < samples_a; i += 2) + { + _buffer.Write(buffer[i] / 32767.0f); + //_buffer.Write(buffer[i] / 32767.0f); + } } public void BufferWirte(int Off, byte[] Data) @@ -90,8 +92,8 @@ public class UEGSoundPlayer : MonoBehaviour//, ISoundPlayer public void SetVolume(int Vol) { //TODO - //if (m_as) - // return; - //m_as.volume = Vol; + if (m_as) + return; + m_as.volume = Vol; } } diff --git a/Assets/Scripts/UniInterface/UEGVideoPlayer.cs b/Assets/Scripts/UniInterface/UEGVideoPlayer.cs index d26804d..21dc07f 100644 --- a/Assets/Scripts/UniInterface/UEGVideoPlayer.cs +++ b/Assets/Scripts/UniInterface/UEGVideoPlayer.cs @@ -17,7 +17,7 @@ public class UEGVideoPlayer : MonoBehaviour private RawImage m_drawCanvas; [SerializeField] private RectTransform m_drawCanvasrect; - byte[] mFrameData; + //byte[] mFrameData; IntPtr mFrameDataPtr; private TimeSpan lastElapsed; @@ -40,17 +40,17 @@ public class UEGVideoPlayer : MonoBehaviour if (m_rawBufferWarper == null) { mDataLenght = mWidth * mHeight * 4; - mFrameData = new byte[mDataLenght]; + //mFrameData = new byte[mDataLenght]; - // ̶飬ֹƶ - var bitmapcolorRect_handle = GCHandle.Alloc(mFrameData, GCHandleType.Pinned); - // ȡָ - mFrameDataPtr = bitmapcolorRect_handle.AddrOfPinnedObject(); + //// ̶飬ֹƶ + //var bitmapcolorRect_handle = GCHandle.Alloc(mFrameData, GCHandleType.Pinned); + //// ȡָ + //mFrameDataPtr = bitmapcolorRect_handle.AddrOfPinnedObject(); //MAMEBGRA32úú - //m_rawBufferWarper = new Texture2D(mWidth, mHeight, TextureFormat.BGRA32, false); - m_rawBufferWarper = new Texture2D(mWidth, mHeight, TextureFormat.ARGB32, false); + m_rawBufferWarper = new Texture2D(mWidth, mHeight, TextureFormat.BGRA32, false); + //m_rawBufferWarper = new Texture2D(mWidth, mHeight, TextureFormat.ARGB32, false); m_rawBufferWarper.filterMode = FilterMode.Point; } @@ -82,7 +82,8 @@ public class UEGVideoPlayer : MonoBehaviour m_rawBufferWarper.Apply(); } - public void SubmitVideo(int width, int height, byte[] data, long frame_number) + //public void SubmitVideo(int width, int height, byte[] data, long frame_number) + public void SubmitVideo(int width, int height, IntPtr ptr, long frame_number) { mFrame = (ulong)frame_number; @@ -90,7 +91,8 @@ public class UEGVideoPlayer : MonoBehaviour var delta = current - lastElapsed; lastElapsed = current; videoFPS = 1d / delta.TotalSeconds; - mFrameData = data; + //mFrameData = data; + mFrameDataPtr = ptr; if (!bHadData) { diff --git a/Assets/Scripts/UniInterface/UniKeyboard.cs b/Assets/Scripts/UniInterface/UniKeyboard.cs index a11d24e..3c3e811 100644 --- a/Assets/Scripts/UniInterface/UniKeyboard.cs +++ b/Assets/Scripts/UniInterface/UniKeyboard.cs @@ -1,74 +1,77 @@ -//using System.Collections.Generic; -//using UnityEngine; +using UnityEngine; -//public class UniKeyboard : MonoBehaviour -//{ -// public KeyCodeCore mKeyCodeCore = new KeyCodeCore(); -// #region -// public UILongClickButton btnP1; -// public UILongClickButton btnCoin1; -// public UILongClickButton btnA; -// public UILongClickButton btnB; -// public UILongClickButton btnC; -// public UILongClickButton btnD; -// //public UILongClickButton btnE; -// //public UILongClickButton btnF; -// public UILongClickButton btnAB; -// public UILongClickButton btnCD; -// public UILongClickButton btnABC; -// public Transform tfKeyPad; -// public FloatingJoystick mJoystick; -// #endregion +public class UniKeyboard : MonoBehaviour +{ + public KeyCodeCore mKeyCodeCore = new KeyCodeCore(); + #region + //public UILongClickButton btnP1; + //public UILongClickButton btnCoin1; + //public UILongClickButton btnA; + //public UILongClickButton btnB; + //public UILongClickButton btnC; + //public UILongClickButton btnD; + ////public UILongClickButton btnE; + ////public UILongClickButton btnF; + //public UILongClickButton btnAB; + //public UILongClickButton btnCD; + //public UILongClickButton btnABC; + //public Transform tfKeyPad; + //public FloatingJoystick mJoystick; + #endregion -// public List mUIBtns = new List(); + //public List mUIBtns = new List(); -// void Awake() -// { -// mJoystick = GameObject.Find("tfJoystick").GetComponent(); -// tfKeyPad = GameObject.Find("tfKeyPad").transform; -// btnP1 = GameObject.Find("btnP1").GetComponent(); -// btnCoin1 = GameObject.Find("btnCoin1").GetComponent(); -// btnA = GameObject.Find("btnA").GetComponent(); -// btnB = GameObject.Find("btnB").GetComponent(); -// btnC = GameObject.Find("btnC").GetComponent(); -// btnD = GameObject.Find("btnD").GetComponent(); -// //btnE = GameObject.Find("btnE")?.GetComponent(); -// //btnF = GameObject.Find("btnF")?.GetComponent(); -// btnAB = GameObject.Find("btnAB").GetComponent(); -// btnCD = GameObject.Find("btnCD").GetComponent(); -// btnABC = GameObject.Find("btnABC").GetComponent(); + void Awake() + { + //mJoystick = GameObject.Find("tfJoystick").GetComponent(); + //tfKeyPad = GameObject.Find("tfKeyPad").transform; + //btnP1 = GameObject.Find("btnP1").GetComponent(); + //btnCoin1 = GameObject.Find("btnCoin1").GetComponent(); + //btnA = GameObject.Find("btnA").GetComponent(); + //btnB = GameObject.Find("btnB").GetComponent(); + //btnC = GameObject.Find("btnC").GetComponent(); + //btnD = GameObject.Find("btnD").GetComponent(); + ////btnE = GameObject.Find("btnE")?.GetComponent(); + ////btnF = GameObject.Find("btnF")?.GetComponent(); + //btnAB = GameObject.Find("btnAB").GetComponent(); + //btnCD = GameObject.Find("btnCD").GetComponent(); + //btnABC = GameObject.Find("btnABC").GetComponent(); -// mUIBtns.Add(btnP1); -// mUIBtns.Add(btnCoin1); -// mUIBtns.Add(btnA); -// mUIBtns.Add(btnB); -// mUIBtns.Add(btnC); -// mUIBtns.Add(btnD); -// mUIBtns.Add(btnAB); -// mUIBtns.Add(btnCD); -// mUIBtns.Add(btnABC); + //mUIBtns.Add(btnP1); + //mUIBtns.Add(btnCoin1); + //mUIBtns.Add(btnA); + //mUIBtns.Add(btnB); + //mUIBtns.Add(btnC); + //mUIBtns.Add(btnD); + //mUIBtns.Add(btnAB); + //mUIBtns.Add(btnCD); + //mUIBtns.Add(btnABC); -// //if (btnE != null) -// //{ -// // mUIBtns.Add(btnE); -// // btnE.gameObject.SetActive(false); -// //} -// //else -// //{ -// // mUIBtns.Add(btnF); -// // btnF.gameObject.SetActive(false); -// //} + //if (btnE != null) + //{ + // mUIBtns.Add(btnE); + // btnE.gameObject.SetActive(false); + //} + //else + //{ + // mUIBtns.Add(btnF); + // btnF.gameObject.SetActive(false); + //} -//#if UNITY_STANDALONE_WIN || UNITY_EDITOR -// tfKeyPad.gameObject.SetActive(false); -//#endif -// mKeyCodeCore.Init(this,false); -// } +#if UNITY_STANDALONE_WIN || UNITY_EDITOR + //tfKeyPad.gameObject.SetActive(false); +#endif + } + + public void Init(Essgee.Emulation.Machines.IMachine Machine) + { + mKeyCodeCore.Init(Machine, this, false); + } -// public void UpdateInputKey() -// { -// mKeyCodeCore.UpdateLogic(); -// } -//} \ No newline at end of file + public void UpdateInputKey() + { + mKeyCodeCore.UpdateLogic(); + } +} \ No newline at end of file