画面音频,基本调通。GB|MS 可用,音频欠佳
This commit is contained in:
parent
dd7424aa67
commit
eb53a458de
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ namespace Essgee.Emulation
|
||||
{
|
||||
readonly Action<Exception> exceptionHandler;
|
||||
|
||||
IMachine emulator;
|
||||
public IMachine emulator { get; private set; }
|
||||
|
||||
Thread emulationThread;
|
||||
volatile bool emulationThreadRunning;
|
||||
|
@ -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)
|
||||
|
@ -122,9 +122,9 @@ namespace Essgee.Emulation.Machines
|
||||
|
||||
int currentMasterClockCyclesInFrame, totalMasterClockCyclesInFrame;
|
||||
|
||||
Configuration.MasterSystem configuration;
|
||||
public Configuration.MasterSystem configuration { get; private set; }
|
||||
|
||||
IEnumerable<Keys> lastKeysDown;
|
||||
IEnumerable<MotionKey> 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<Keys>();
|
||||
lastKeysDown = new List<MotionKey>();
|
||||
lastControllerState = new ControllerState();
|
||||
|
||||
vdp.EndOfScanline += (s, e) =>
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
{
|
||||
|
@ -6,7 +6,7 @@ namespace Essgee.EventArguments
|
||||
{
|
||||
public class PollInputEventArgs : EventArgs
|
||||
{
|
||||
public IEnumerable<Keys> Keyboard { get; set; }
|
||||
public IEnumerable<MotionKey> 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<Keys>();
|
||||
Keyboard = new List<MotionKey>();
|
||||
|
||||
MouseButtons = MouseButtons.None;
|
||||
MousePosition = (0, 0);
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ using System.ComponentModel;
|
||||
|
||||
[Flags]
|
||||
[ComVisible(true)]
|
||||
public enum Keys
|
||||
public enum MotionKey
|
||||
{
|
||||
KeyCode = 0xFFFF,
|
||||
Modifiers = -65536,
|
@ -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())
|
||||
{
|
||||
|
@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Essgee.Utilities.XInput
|
||||
{
|
||||
|
401
Assets/Scenes/EssgeeUnity.Unity
Normal file
401
Assets/Scenes/EssgeeUnity.Unity
Normal file
@ -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}
|
352
Assets/Scenes/EssgeeUnity.prefab
Normal file
352
Assets/Scenes/EssgeeUnity.prefab
Normal file
@ -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
|
7
Assets/Scenes/EssgeeUnity.prefab.meta
Normal file
7
Assets/Scenes/EssgeeUnity.prefab.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20e1ff69d8c691b4299757181385f497
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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}
|
@ -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<Keys> 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<Keys>();
|
||||
//keysDown = new List<MotionKey>();
|
||||
}
|
||||
|
||||
#region 细节初始化
|
||||
@ -114,6 +125,8 @@ public class Essgeeinit : MonoBehaviour
|
||||
InitializeGraphicsHandler();
|
||||
InitializeSoundHandler();
|
||||
InitializeMetadataHandler();
|
||||
|
||||
mUniKeyboard = this.gameObject.AddComponent<UniKeyboard>();
|
||||
}
|
||||
|
||||
private void InitializeOSDHandler()
|
||||
@ -136,7 +149,7 @@ public class Essgeeinit : MonoBehaviour
|
||||
|
||||
private void InitializeSoundHandler()
|
||||
{
|
||||
soundHandler = this.gameObject.AddComponent<UEGSoundPlayer>();
|
||||
soundHandler = this.gameObject.GetComponent<UEGSoundPlayer>();
|
||||
//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<Type> machineType = new List<Type>();
|
||||
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<Keys>(keysDown);
|
||||
// e.Keyboard = new List<MotionKey>(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
|
||||
}
|
||||
|
72
Assets/Scripts/RingBuffer.cs
Normal file
72
Assets/Scripts/RingBuffer.cs
Normal file
@ -0,0 +1,72 @@
|
||||
using System.Threading;
|
||||
|
||||
public class RingBuffer<T>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
2
Assets/Scripts/RingBuffer.cs.meta
Normal file
2
Assets/Scripts/RingBuffer.cs.meta
Normal file
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c4dad3e52cbbde841a9eb86cd7a18a37
|
@ -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<KeyCode, MotionKey> dictKeyCfgs = new Dictionary<KeyCode, MotionKey>();
|
||||
// public KeyCode[] CheckList;
|
||||
// public MotionKey[] mCurrKey = new MotionKey[0];
|
||||
// public ulong CurryInpuAllData = 0;
|
||||
// List<MotionKey> temp = new List<MotionKey>();
|
||||
// ulong tempInputAllData = 0;
|
||||
// UniKeyboard mUniKeyboard;
|
||||
// bool bReplayMode;
|
||||
// List<MotionKey> ReplayCheckKey = new List<MotionKey>();
|
||||
public class KeyCodeCore
|
||||
{
|
||||
public Dictionary<KeyCode, MotionKey> dictKeyCfgs = new Dictionary<KeyCode, MotionKey>();
|
||||
public KeyCode[] CheckList;
|
||||
public MotionKey[] mCurrKey = new MotionKey[0];
|
||||
//public ulong CurryInpuAllData = 0;
|
||||
List<MotionKey> temp = new List<MotionKey>();
|
||||
ulong tempInputAllData = 0;
|
||||
UniKeyboard mUniKeyboard;
|
||||
//bool bReplayMode;
|
||||
//List<MotionKey> ReplayCheckKey = new List<MotionKey>();
|
||||
|
||||
// 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();
|
||||
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
@ -1,80 +1,82 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
public class UEGSoundPlayer : MonoBehaviour//, ISoundPlayer
|
||||
{
|
||||
//[SerializeField]
|
||||
//private AudioSource m_as;
|
||||
//private RingBuffer<float> _buffer = new RingBuffer<float>(4096);
|
||||
//private TimeSpan lastElapsed;
|
||||
//public double audioFPS { get; private set; }
|
||||
//float lastData = 0;
|
||||
[SerializeField]
|
||||
private AudioSource m_as;
|
||||
private RingBuffer<float> _buffer = new RingBuffer<float>(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;
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
|
||||
|
||||
//MAMEÀ´µÄÊÇBGRA32£¬ºÃºÃºÃ
|
||||
//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)
|
||||
{
|
||||
|
@ -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<UILongClickButton> mUIBtns = new List<UILongClickButton>();
|
||||
//public List<UILongClickButton> mUIBtns = new List<UILongClickButton>();
|
||||
|
||||
// void Awake()
|
||||
// {
|
||||
// mJoystick = GameObject.Find("tfJoystick").GetComponent<FloatingJoystick>();
|
||||
// tfKeyPad = GameObject.Find("tfKeyPad").transform;
|
||||
// btnP1 = GameObject.Find("btnP1").GetComponent<UILongClickButton>();
|
||||
// btnCoin1 = GameObject.Find("btnCoin1").GetComponent<UILongClickButton>();
|
||||
// btnA = GameObject.Find("btnA").GetComponent<UILongClickButton>();
|
||||
// btnB = GameObject.Find("btnB").GetComponent<UILongClickButton>();
|
||||
// btnC = GameObject.Find("btnC").GetComponent<UILongClickButton>();
|
||||
// btnD = GameObject.Find("btnD").GetComponent<UILongClickButton>();
|
||||
// //btnE = GameObject.Find("btnE")?.GetComponent<UILongClickButton>();
|
||||
// //btnF = GameObject.Find("btnF")?.GetComponent<UILongClickButton>();
|
||||
// btnAB = GameObject.Find("btnAB").GetComponent<UILongClickButton>();
|
||||
// btnCD = GameObject.Find("btnCD").GetComponent<UILongClickButton>();
|
||||
// btnABC = GameObject.Find("btnABC").GetComponent<UILongClickButton>();
|
||||
void Awake()
|
||||
{
|
||||
//mJoystick = GameObject.Find("tfJoystick").GetComponent<FloatingJoystick>();
|
||||
//tfKeyPad = GameObject.Find("tfKeyPad").transform;
|
||||
//btnP1 = GameObject.Find("btnP1").GetComponent<UILongClickButton>();
|
||||
//btnCoin1 = GameObject.Find("btnCoin1").GetComponent<UILongClickButton>();
|
||||
//btnA = GameObject.Find("btnA").GetComponent<UILongClickButton>();
|
||||
//btnB = GameObject.Find("btnB").GetComponent<UILongClickButton>();
|
||||
//btnC = GameObject.Find("btnC").GetComponent<UILongClickButton>();
|
||||
//btnD = GameObject.Find("btnD").GetComponent<UILongClickButton>();
|
||||
////btnE = GameObject.Find("btnE")?.GetComponent<UILongClickButton>();
|
||||
////btnF = GameObject.Find("btnF")?.GetComponent<UILongClickButton>();
|
||||
//btnAB = GameObject.Find("btnAB").GetComponent<UILongClickButton>();
|
||||
//btnCD = GameObject.Find("btnCD").GetComponent<UILongClickButton>();
|
||||
//btnABC = GameObject.Find("btnABC").GetComponent<UILongClickButton>();
|
||||
|
||||
// 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();
|
||||
// }
|
||||
//}
|
||||
public void UpdateInputKey()
|
||||
{
|
||||
mKeyCodeCore.UpdateLogic();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user