diff --git a/DS4Windows/DS4Control/X360Device.cs b/DS4Windows/DS4Control/X360Device.cs index 2d000f2..e3dd1fb 100644 --- a/DS4Windows/DS4Control/X360Device.cs +++ b/DS4Windows/DS4Control/X360Device.cs @@ -25,13 +25,16 @@ namespace DS4Windows protected Int32 Scale(Int32 Value, Boolean Flip) { - Value -= 0x80; + unchecked + { + Value -= 0x80; - //float temp = (Value - (-128)) / (float)inputResolution; - float temp = (Value - (-128)) * reciprocalInputResolution; - if (Flip) temp = (temp - 0.5f) * -1.0f + 0.5f; + //float temp = (Value - (-128)) / (float)inputResolution; + float temp = (Value - (-128)) * reciprocalInputResolution; + if (Flip) temp = (temp - 0.5f) * -1.0f + 0.5f; - return (Int32)(temp * outputResolution + (-32768)); + return (Int32)(temp * outputResolution + (-32768)); + } } @@ -113,41 +116,44 @@ namespace DS4Windows Output[i] = 0; } - if (state.Share) Output[10] |= (Byte)(1 << 5); // Back - if (state.L3) Output[10] |= (Byte)(1 << 6); // Left Thumb - if (state.R3) Output[10] |= (Byte)(1 << 7); // Right Thumb - if (state.Options) Output[10] |= (Byte)(1 << 4); // Start + unchecked + { + if (state.Share) Output[10] |= (Byte)(1 << 5); // Back + if (state.L3) Output[10] |= (Byte)(1 << 6); // Left Thumb + if (state.R3) Output[10] |= (Byte)(1 << 7); // Right Thumb + if (state.Options) Output[10] |= (Byte)(1 << 4); // Start - if (state.DpadUp) Output[10] |= (Byte)(1 << 0); // Up - if (state.DpadRight) Output[10] |= (Byte)(1 << 3); // Down - if (state.DpadDown) Output[10] |= (Byte)(1 << 1); // Right - if (state.DpadLeft) Output[10] |= (Byte)(1 << 2); // Left + if (state.DpadUp) Output[10] |= (Byte)(1 << 0); // Up + if (state.DpadRight) Output[10] |= (Byte)(1 << 3); // Down + if (state.DpadDown) Output[10] |= (Byte)(1 << 1); // Right + if (state.DpadLeft) Output[10] |= (Byte)(1 << 2); // Left - if (state.L1) Output[11] |= (Byte)(1 << 0); // Left Shoulder - if (state.R1) Output[11] |= (Byte)(1 << 1); // Right Shoulder + if (state.L1) Output[11] |= (Byte)(1 << 0); // Left Shoulder + if (state.R1) Output[11] |= (Byte)(1 << 1); // Right Shoulder - if (state.Triangle) Output[11] |= (Byte)(1 << 7); // Y - if (state.Circle) Output[11] |= (Byte)(1 << 5); // B - if (state.Cross) Output[11] |= (Byte)(1 << 4); // A - if (state.Square) Output[11] |= (Byte)(1 << 6); // X + if (state.Triangle) Output[11] |= (Byte)(1 << 7); // Y + if (state.Circle) Output[11] |= (Byte)(1 << 5); // B + if (state.Cross) Output[11] |= (Byte)(1 << 4); // A + if (state.Square) Output[11] |= (Byte)(1 << 6); // X - if (state.PS) Output[11] |= (Byte)(1 << 2); // Guide + if (state.PS) Output[11] |= (Byte)(1 << 2); // Guide - Output[12] = state.L2; // Left Trigger - Output[13] = state.R2; // Right Trigger + Output[12] = state.L2; // Left Trigger + Output[13] = state.R2; // Right Trigger - Int32 ThumbLX = Scale(state.LX, false); - Int32 ThumbLY = Scale(state.LY, true); - Int32 ThumbRX = Scale(state.RX, false); - Int32 ThumbRY = Scale(state.RY, true); - Output[14] = (Byte)((ThumbLX >> 0) & 0xFF); // LX - Output[15] = (Byte)((ThumbLX >> 8) & 0xFF); - Output[16] = (Byte)((ThumbLY >> 0) & 0xFF); // LY - Output[17] = (Byte)((ThumbLY >> 8) & 0xFF); - Output[18] = (Byte)((ThumbRX >> 0) & 0xFF); // RX - Output[19] = (Byte)((ThumbRX >> 8) & 0xFF); - Output[20] = (Byte)((ThumbRY >> 0) & 0xFF); // RY - Output[21] = (Byte)((ThumbRY >> 8) & 0xFF); + Int32 ThumbLX = Scale(state.LX, false); + Int32 ThumbLY = Scale(state.LY, true); + Int32 ThumbRX = Scale(state.RX, false); + Int32 ThumbRY = Scale(state.RY, true); + Output[14] = (Byte)((ThumbLX >> 0) & 0xFF); // LX + Output[15] = (Byte)((ThumbLX >> 8) & 0xFF); + Output[16] = (Byte)((ThumbLY >> 0) & 0xFF); // LY + Output[17] = (Byte)((ThumbLY >> 8) & 0xFF); + Output[18] = (Byte)((ThumbRX >> 0) & 0xFF); // RX + Output[19] = (Byte)((ThumbRX >> 8) & 0xFF); + Output[20] = (Byte)((ThumbRY >> 0) & 0xFF); // RY + Output[21] = (Byte)((ThumbRY >> 8) & 0xFF); + } } public Boolean Plugin(Int32 Serial) diff --git a/DS4Windows/DS4Forms/DS4Form.cs b/DS4Windows/DS4Forms/DS4Form.cs index 708ba14..b7711cc 100644 --- a/DS4Windows/DS4Forms/DS4Form.cs +++ b/DS4Windows/DS4Forms/DS4Form.cs @@ -409,13 +409,28 @@ namespace DS4Windows foreach (Control control in fLPSettings.Controls) { + string tempst; if (control.HasChildren) { foreach (Control ctrl in control.Controls) - ctrl.MouseHover += Items_MouseHover; + { + if (hoverTextDict.TryGetValue(ctrl, out tempst)) + { + ctrl.MouseHover += Items_MouseHover; + } + else + { + ctrl.MouseHover += ClearLastMessage; + } + } + } + else + { + if (hoverTextDict.TryGetValue(control, out tempst)) + control.MouseEnter += Items_MouseHover; + else + control.MouseHover += ClearLastMessage; } - - control.MouseHover += Items_MouseHover; } } @@ -447,6 +462,12 @@ namespace DS4Windows g.DrawImage(shield, new Rectangle(0, 0, finalWidth, finalHeight)); } + private void ClearLastMessage(object sender, EventArgs e) + { + lbLastMessage.Text = ""; + lbLastMessage.ForeColor = SystemColors.GrayText; + } + private void blankControllerTab() { for (int Index = 0, PadsLen = Pads.Length; diff --git a/DS4Windows/Properties/AssemblyInfo.cs b/DS4Windows/Properties/AssemblyInfo.cs index 3e1ef78..e5f8673 100644 --- a/DS4Windows/Properties/AssemblyInfo.cs +++ b/DS4Windows/Properties/AssemblyInfo.cs @@ -33,7 +33,7 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.5.1")] -[assembly: AssemblyFileVersion("1.5.1")] +[assembly: AssemblyVersion("1.5.2")] +[assembly: AssemblyFileVersion("1.5.2")] [assembly: NeutralResourcesLanguage("en")] diff --git a/README.md b/README.md index 2e4f4f8..b917ca4 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,12 @@ You can find the latest and older versions [here](https://github.com/Ryochan7/DS UdpServer builds for using Gyro motion controls in Cemu. -http://ryochan7.xyz/ds4windows/test/DS4Windows_1.5.0_UdpServer_x64.zip -http://ryochan7.xyz/ds4windows/test/DS4Windows_1.5.0_ViGEm_UdpServer_x64.zip +http://ryochan7.xyz/ds4windows/test/DS4Windows_1.5.1_UdpServer_x64.zip +http://ryochan7.xyz/ds4windows/test/DS4Windows_1.5.1_ViGEm_UdpServer_x64.zip ViGEm build. -http://ryochan7.xyz/ds4windows/test/DS4Windows_1.5.0_ViGEm_x64.zip +http://ryochan7.xyz/ds4windows/test/DS4Windows_1.5.1_ViGEm_x64.zip This project is a fork of the work of Jays2Kings. You can find the old project website at [ds4windows.com](http://ds4windows.com).