Compare commits

...

27 Commits

Author SHA1 Message Date
Serge
04afbea26f Restrict fan curve points 2024-10-06 12:03:42 +02:00
Serge
e28f51cce6 Version bump 2024-10-05 11:35:19 +02:00
dantmnf
b0c48b9e63 IsOLED: Add Zenbook S 14 (Intel), Zenbook S 16 (AMD) (#3203) 2024-10-05 11:32:34 +02:00
Serge
ec17d8cb80 Limits 2024-10-04 18:18:54 +02:00
Serge
42ac2d627c Hide unsupported power limtis https://github.com/seerge/g-helper/discussions/3215 2024-10-04 12:11:09 +02:00
Serge
3c241cafba New translations strings.resx (Lithuanian) (#3197) 2024-10-01 19:24:10 +02:00
Serge
873fcc0591 Skip unsupported Lighting modes #3195 2024-09-30 20:58:24 +02:00
Serge
73d5a0bb90 Cleanup 2024-09-30 18:41:51 +02:00
Serge
ff5ac7de7e Re-apply Ally controller status on every wake up / reboot #3192 2024-09-30 18:41:21 +02:00
Serge
917fe112b8 Skip unsupported Lighting modes https://github.com/seerge/g-helper/issues/3195 2024-09-30 18:24:14 +02:00
Serge
4855733274 Re-apply Ally controller status on every wake up / reboot https://github.com/seerge/g-helper/issues/3192 2024-09-30 14:30:03 +02:00
Serge
740a34fa9c Merge branch 'main' of https://github.com/seerge/g-helper 2024-09-30 12:29:36 +02:00
Serge
534dc3d344 Init OOBE mode https://github.com/seerge/g-helper/pull/3169 2024-09-30 12:29:33 +02:00
Serge
a52a87bcfd New translations strings.resx (Chinese Traditional) (#3180) 2024-09-30 12:26:03 +02:00
Serge
cdeb4951dc Re-apply Ally controller status on every wake up / reboot https://github.com/seerge/g-helper/issues/3192 2024-09-30 12:13:22 +02:00
Serge
77d89505b3 Update GHelper.csproj 2024-09-29 11:49:00 +02:00
Serge
4be790dce0 Update tweaks 2024-09-28 17:39:05 +02:00
Serge
c9698a1613 Strix impact DPI correction https://github.com/seerge/g-helper/issues/3146 2024-09-28 17:30:21 +02:00
Serge
819506e7ee UI Tweaks 2024-09-28 09:31:39 +02:00
Serge
489616d255 Option to disable "gpu_mode_force_set" for GA503 https://github.com/seerge/g-helper/issues/3175 2024-09-26 13:22:21 +02:00
Serge
1103ab70f6 Extra delay when setting Ultimate from Eco https://github.com/seerge/g-helper/issues/3170 2024-09-25 19:48:38 +02:00
Serge
dbf0cbc3ac Dependencies update 2024-09-25 17:48:45 +02:00
Serge
a45d693937 Version bump 2024-09-25 08:15:49 +02:00
Serge
0db49af310 Config writing tweaks 2024-09-24 12:24:20 +02:00
Serge
28daaf9a4c Config writing tweaks 2024-09-24 11:56:18 +02:00
Serge
38d02ee7f9 Minimum possible number of E-Cores https://github.com/seerge/g-helper/issues/3160 2024-09-23 21:06:09 +02:00
Serge
c6d1b29a49 Touchscreen toggle toast tweaks https://github.com/seerge/g-helper/issues/3143 2024-09-23 15:24:28 +02:00
19 changed files with 133 additions and 173 deletions

View File

@@ -616,9 +616,9 @@ namespace GHelper.Ally
} }
public static void ApplyXBoxStatus() public static void DisableXBoxController(bool disabled)
{ {
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xD1, 0x0B, 0x01, AppConfig.Is("controller_disabled") ? (byte)0x02 : (byte)0x01 }, "Status"); AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD1, 0x0B, 0x01, disabled ? (byte)0x02 : (byte)0x01], $"ControllerDisabled: {disabled}");
} }
public static void ApplyMode(ControllerMode applyMode = ControllerMode.Auto, bool init = false) public static void ApplyMode(ControllerMode applyMode = ControllerMode.Auto, bool init = false)
@@ -651,7 +651,7 @@ namespace GHelper.Ally
InputDispatcher.SetBacklightAuto(true); InputDispatcher.SetBacklightAuto(true);
} }
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xD1, 0x01, 0x01, (byte)_applyMode }, "Controller"); AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD1, 0x01, 0x01, (byte)_applyMode], "Controller");
//AsusHid.WriteInput(CommandSave, null); //AsusHid.WriteInput(CommandSave, null);
BindZone(BindingZone.M1M2); BindZone(BindingZone.M1M2);
@@ -668,6 +668,13 @@ namespace GHelper.Ally
SetDeadzones(); SetDeadzones();
if (init && AppConfig.Is("controller_disabled"))
{
Thread.Sleep(500);
DisableXBoxController(false);
DisableXBoxController(true);
}
}); });
} }

View File

@@ -12,7 +12,7 @@ public static class AppConfig
private static string? _bios; private static string? _bios;
private static Dictionary<string, object> config = new Dictionary<string, object>(); private static Dictionary<string, object> config = new Dictionary<string, object>();
private static System.Timers.Timer timer = new System.Timers.Timer(1000); private static System.Timers.Timer timer = new System.Timers.Timer(2000);
static AppConfig() static AppConfig()
{ {
@@ -92,7 +92,9 @@ public static class AppConfig
Thread.Sleep(500); Thread.Sleep(500);
if (File.ReadAllText(backup).Contains("}")) var backupText = File.ReadAllText(backup);
if (backupText.Contains("{") && backupText.Contains("}"))
{ {
File.Copy(backup, configFile, true); File.Copy(backup, configFile, true);
} }
@@ -219,6 +221,7 @@ public static class AppConfig
private static void Write() private static void Write()
{ {
timer.Stop();
timer.Start(); timer.Start();
} }
@@ -451,7 +454,7 @@ public static class AppConfig
public static bool IsOLED() public static bool IsOLED()
{ {
return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606"); return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606") || ContainsModel("UX5406") || ContainsModel("UM5606");
} }
public static bool IsNoOverdrive() public static bool IsNoOverdrive()
@@ -637,7 +640,7 @@ public static class AppConfig
public static bool IsForceSetGPUMode() public static bool IsForceSetGPUMode()
{ {
return Is("gpu_mode_force_set") || ContainsModel("503"); return Is("gpu_mode_force_set") || (ContainsModel("503") && IsNotFalse("gpu_mode_force_set"));
} }
public static bool IsNoGPUModes() public static bool IsNoGPUModes()

View File

@@ -114,7 +114,7 @@ public class AsusACPI
public const int APU_MEM = 0x000600C1; public const int APU_MEM = 0x000600C1;
public const int TUF_KB_BRIGHTNESS = 0x00050021; public const int TUF_KB_BRIGHTNESS = 0x00050021;
public const int VIVO_KB_BRIGHTNESS = 0x0005002F; public const int KBD_BACKLIGHT_OOBE = 0x0005002F;
public const int TUF_KB = 0x00100056; public const int TUF_KB = 0x00100056;
public const int TUF_KB2 = 0x0010005a; public const int TUF_KB2 = 0x0010005a;
@@ -583,7 +583,7 @@ public class AsusACPI
} }
//Logger.WriteLine($"GetFan {device} :" + BitConverter.ToString(result)); //Logger.WriteLine($"GetFan {device} :" + BitConverter.ToString(result));
if (IsInvalidCurve(result)) result = AppConfig.GetDefaultCurve(device);
return result; return result;
} }
@@ -598,43 +598,20 @@ public class AsusACPI
return curve.All(singleByte => singleByte == 0); return curve.All(singleByte => singleByte == 0);
} }
public static int FixTemp(int temp, int index)
{
var dxMin = 30 + 10 * index;
var dxMax = dxMin + 9;
return Math.Min(dxMax, Math.Max(dxMin, temp));
}
public static byte[] FixFanCurve(byte[] curve) public static byte[] FixFanCurve(byte[] curve)
{ {
if (curve.Length != 16) throw new Exception("Incorrect curve"); if (curve.Length != 16) throw new Exception("Incorrect curve");
var points = new Dictionary<byte, byte>();
byte old = 0;
for (int i = 0; i < 8; i++) for (int i = 0; i < 8; i++)
{ {
if (curve[i] <= old) curve[i] = (byte)Math.Min(100, old + 6); // preventing 2 points in same spot from default asus profiles curve[i] = (byte)FixTemp(curve[i], i);
points[curve[i]] = curve[i + 8];
old = curve[i];
}
var pointsFixed = new Dictionary<byte, byte>();
bool fix = false;
int count = 0;
foreach (var pair in points.OrderBy(x => x.Key))
{
if (count == 0 && pair.Key >= 40)
{
fix = true;
pointsFixed.Add(30, 0);
}
if (count != 3 || !fix)
pointsFixed.Add(pair.Key, pair.Value);
count++;
}
count = 0;
foreach (var pair in pointsFixed.OrderBy(x => x.Key))
{
curve[count] = pair.Key;
curve[count + 8] = pair.Value;
count++;
} }
return curve; return curve;
@@ -788,7 +765,6 @@ public class AsusACPI
{ {
int param = 0x80 | (brightness & 0x7F); int param = 0x80 | (brightness & 0x7F);
DeviceSet(TUF_KB_BRIGHTNESS, param, "TUF Brightness"); DeviceSet(TUF_KB_BRIGHTNESS, param, "TUF Brightness");
if (AppConfig.IsVivoZenPro()) DeviceSet(VIVO_KB_BRIGHTNESS, param, "VIVO Brightness");
} }
@@ -831,6 +807,7 @@ public class AsusACPI
state = state | 0x01 << 8; state = state | 0x01 << 8;
DeviceSet(TUF_KB_STATE, state, "TUF_KB"); DeviceSet(TUF_KB_STATE, state, "TUF_KB");
if (AppConfig.IsVivoZenPro() && DeviceGet(KBD_BACKLIGHT_OOBE) >= 0) DeviceSet(KBD_BACKLIGHT_OOBE, 1, "VIVO OOBE");
} }
public void SubscribeToEvents(Action<object, EventArrivedEventArgs> EventHandler) public void SubscribeToEvents(Action<object, EventArrivedEventArgs> EventHandler)

View File

@@ -326,7 +326,8 @@ namespace GHelper
return; return;
} }
LightingMode lm = supportedLightingModes[comboBoxLightingMode.SelectedIndex]; var index = comboBoxLightingMode.SelectedIndex;
LightingMode lm = supportedLightingModes[index < supportedLightingModes.Count ? index : 0 ];
LightingSetting? ls = mouse.LightingSettingForZone(visibleZone); LightingSetting? ls = mouse.LightingSettingForZone(visibleZone);
if (ls.LightingMode == lm) if (ls.LightingMode == lm)

View File

@@ -145,7 +145,7 @@ namespace GHelper.AutoUpdate
Logger.WriteLine(ex.Message); Logger.WriteLine(ex.Message);
} }
Environment.Exit(0); Application.Exit();
} }
} }

View File

@@ -505,7 +505,10 @@ namespace GHelper
return; return;
} }
eCoresMax = Math.Max(8, eCoresMax); if (eCoresMax == 0) eCoresMax = 8;
if (pCoresMax == 0) pCoresMax = 6;
eCoresMax = Math.Max(4, eCoresMax);
pCoresMax = Math.Max(6, pCoresMax); pCoresMax = Math.Max(6, pCoresMax);
panelCores.Visible = true; panelCores.Visible = true;

View File

@@ -757,8 +757,8 @@ namespace GHelper
chart.Titles[0].Text = title; chart.Titles[0].Text = title;
chart.ChartAreas[0].AxisX.Minimum = 10; chart.ChartAreas[0].AxisX.Minimum = 20;
chart.ChartAreas[0].AxisX.Maximum = 100; chart.ChartAreas[0].AxisX.Maximum = 110;
chart.ChartAreas[0].AxisX.Interval = 10; chart.ChartAreas[0].AxisX.Interval = 10;
chart.ChartAreas[0].AxisY.Minimum = 0; chart.ChartAreas[0].AxisY.Minimum = 0;
@@ -1019,7 +1019,7 @@ namespace GHelper
int chartCount = 2; int chartCount = 2;
// Middle / system fan check // Middle / system fan check
if (!AsusACPI.IsEmptyCurve(Program.acpi.GetFanCurve(AsusFan.Mid)) || Program.acpi.GetFan(AsusFan.Mid) >= 0) if (Program.acpi.GetFan(AsusFan.Mid) >= 0)
{ {
AppConfig.Set("mid_fan", 1); AppConfig.Set("mid_fan", 1);
chartCount++; chartCount++;
@@ -1082,15 +1082,10 @@ namespace GHelper
if (reset || AsusACPI.IsInvalidCurve(curve)) if (reset || AsusACPI.IsInvalidCurve(curve))
{ {
curve = Program.acpi.GetFanCurve(device, Modes.GetCurrentBase()); curve = Program.acpi.GetFanCurve(device, Modes.GetCurrentBase());
Logger.WriteLine($"Default {device}:" + BitConverter.ToString(curve));
if (AsusACPI.IsInvalidCurve(curve))
curve = AppConfig.GetDefaultCurve(device);
curve = AsusACPI.FixFanCurve(curve);
} }
//Debug.WriteLine(BitConverter.ToString(curve)); curve = AsusACPI.FixFanCurve(curve);
byte old = 0; byte old = 0;
for (int i = 0; i < 8; i++) for (int i = 0; i < 8; i++)
@@ -1245,8 +1240,7 @@ namespace GHelper
dx = ax.PixelPositionToValue(e.X); dx = ax.PixelPositionToValue(e.X);
dy = ay.PixelPositionToValue(e.Y); dy = ay.PixelPositionToValue(e.Y);
if (dx < 20) dx = 20; dx = AsusACPI.FixTemp((int)dx, curIndex);
if (dx > 100) dx = 100;
if (dy < 0) dy = 0; if (dy < 0) dy = 0;
if (dy > fansMax) dy = fansMax; if (dy > fansMax) dy = fansMax;

View File

@@ -15,7 +15,7 @@
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly> <ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks> <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.192</AssemblyVersion> <AssemblyVersion>0.195</AssemblyVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -63,8 +63,8 @@
<PackageReference Include="NAudio" Version="2.1.0" /> <PackageReference Include="NAudio" Version="2.1.0" />
<PackageReference Include="NvAPIWrapper.Net" Version="0.8.1.101" /> <PackageReference Include="NvAPIWrapper.Net" Version="0.8.1.101" />
<PackageReference Include="System.Management" Version="8.0.0" /> <PackageReference Include="System.Management" Version="8.0.0" />
<PackageReference Include="TaskScheduler" Version="2.10.1" /> <PackageReference Include="TaskScheduler" Version="2.11.0" />
<PackageReference Include="WinForms.DataVisualization" Version="1.8.0" /> <PackageReference Include="WinForms.DataVisualization" Version="1.9.2" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -92,13 +92,16 @@ namespace GHelper.Gpu
{ {
if (AppConfig.NoAutoUltimate()) if (AppConfig.NoAutoUltimate())
{ {
int standardStatus = Program.acpi.SetGPUEco(0); Program.acpi.SetGPUEco(0);
if (standardStatus == 0) Thread.Sleep(500);
int eco = Program.acpi.DeviceGet(AsusACPI.GPUEco);
Logger.WriteLine("Eco flag : " + eco);
if (eco == 1)
{ {
settings.VisualiseGPUMode(); settings.VisualiseGPUMode();
return; return;
} }
Thread.Sleep(100);
} }
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux"); status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux");
restart = true; restart = true;

View File

@@ -94,7 +94,7 @@ namespace GHelper
private void CheckController_CheckedChanged(object? sender, EventArgs e) private void CheckController_CheckedChanged(object? sender, EventArgs e)
{ {
AppConfig.Set("controller_disabled", checkController.Checked ? 1 : 0); AppConfig.Set("controller_disabled", checkController.Checked ? 1 : 0);
AllyControl.ApplyXBoxStatus(); AllyControl.DisableXBoxController(checkController.Checked);
} }
private void ComboBinding(RComboBox combo) private void ComboBinding(RComboBox combo)

View File

@@ -2,21 +2,31 @@
public static class TouchscreenHelper public static class TouchscreenHelper
{ {
public static bool? ToggleTouchscreen()
public static bool? GetStatus()
{ {
try try
{ {
ProcessHelper.RunAsAdmin(); ProcessHelper.RunAsAdmin();
return ProcessHelper.RunCMD("powershell", "(Get-PnpDevice -FriendlyName '*touch*screen*').Status").Contains("OK");
}
catch (Exception ex)
{
Logger.WriteLine($"Can't get touchscreen status: {ex.Message}");
return null;
}
}
var status = !ProcessHelper.RunCMD("powershell", "(Get-PnpDevice -FriendlyName '*touch*screen*').Status").Contains("OK"); public static void ToggleTouchscreen(bool status)
{
try
{
ProcessHelper.RunAsAdmin();
ProcessHelper.RunCMD("powershell", (status ? "Enable-PnpDevice" : "Disable-PnpDevice") + " -InstanceId (Get-PnpDevice -FriendlyName '*touch*screen*').InstanceId -Confirm:$false"); ProcessHelper.RunCMD("powershell", (status ? "Enable-PnpDevice" : "Disable-PnpDevice") + " -InstanceId (Get-PnpDevice -FriendlyName '*touch*screen*').InstanceId -Confirm:$false");
return status;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.WriteLine($"Can't toggle touchscreen: {ex.Message}"); Logger.WriteLine($"Can't toggle touchscreen: {ex.Message}");
return null;
} }
} }

View File

@@ -591,9 +591,13 @@ namespace GHelper.Input
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey); Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
break; break;
case "touchscreen": case "touchscreen":
var touchscreenStatus = TouchscreenHelper.ToggleTouchscreen(); var status = !TouchscreenHelper.GetStatus();
if (touchscreenStatus is not null) Logger.WriteLine("Touchscreen status: " + status);
Program.toast.RunToast(Properties.Strings.Touchscreen + " " + ((bool)touchscreenStatus ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.Touchpad); if (status is not null)
{
Program.toast.RunToast(Properties.Strings.Touchscreen + " " + ((bool)status ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.Touchpad);
TouchscreenHelper.ToggleTouchscreen((bool)status);
}
break; break;
default: default:
break; break;

View File

@@ -270,9 +270,6 @@ namespace GHelper.Mode
var stapmResult = SendCommand.set_stapm_limit((uint)limit_total * 1000); var stapmResult = SendCommand.set_stapm_limit((uint)limit_total * 1000);
if (init) Logger.WriteLine($"STAPM: {limit_total} {stapmResult}"); if (init) Logger.WriteLine($"STAPM: {limit_total} {stapmResult}");
var stapmResult2 = SendCommand.set_stapm2_limit((uint)limit_total * 1000);
if (init) Logger.WriteLine($"STAPM2: {limit_total} {stapmResult2}");
var slowResult = SendCommand.set_slow_limit((uint)limit_slow * 1000); var slowResult = SendCommand.set_slow_limit((uint)limit_slow * 1000);
if (init) Logger.WriteLine($"SLOW: {limit_slow} {slowResult}"); if (init) Logger.WriteLine($"SLOW: {limit_slow} {slowResult}");

View File

@@ -86,7 +86,7 @@
public override int DPIIncrements() public override int DPIIncrements()
{ {
return 100; return 50;
} }

View File

@@ -250,13 +250,13 @@
<value>Pabudęs</value> <value>Pabudęs</value>
</data> </data>
<data name="BacklightLow" xml:space="preserve"> <data name="BacklightLow" xml:space="preserve">
<value>Low</value> <value>Žem.</value>
</data> </data>
<data name="BacklightMax" xml:space="preserve"> <data name="BacklightMax" xml:space="preserve">
<value>Max</value> <value>Maks.</value>
</data> </data>
<data name="BacklightMid" xml:space="preserve"> <data name="BacklightMid" xml:space="preserve">
<value>Mid</value> <value>Vid.</value>
</data> </data>
<data name="BacklightOff" xml:space="preserve"> <data name="BacklightOff" xml:space="preserve">
<value>Išjungta</value> <value>Išjungta</value>
@@ -265,10 +265,10 @@
<value>Laiko riba su lizdu / akumuliatoriumi (0 ĮJUNGTA)</value> <value>Laiko riba su lizdu / akumuliatoriumi (0 ĮJUNGTA)</value>
</data> </data>
<data name="BacklightTimeoutBattery" xml:space="preserve"> <data name="BacklightTimeoutBattery" xml:space="preserve">
<value>Backlight Timeout when on battery</value> <value>Foninio apšvietimo laikas akumuliatoriaus režimu</value>
</data> </data>
<data name="BacklightTimeoutPlugged" xml:space="preserve"> <data name="BacklightTimeoutPlugged" xml:space="preserve">
<value>Backlight Timeout when plugged</value> <value>Foninio apšvietimo laikas įkraunant</value>
</data> </data>
<data name="Balanced" xml:space="preserve"> <data name="Balanced" xml:space="preserve">
<value>Balansuotas</value> <value>Balansuotas</value>
@@ -519,7 +519,7 @@ Vis tiek norite tęsti?</value>
<value>Kairiojo jungiklio nejautrumo zonos</value> <value>Kairiojo jungiklio nejautrumo zonos</value>
</data> </data>
<data name="LTDeadzones" xml:space="preserve"> <data name="LTDeadzones" xml:space="preserve">
<value>Left Trigger Deadzones</value> <value>Kairiojo jungiklio nejautrumo zonos</value>
</data> </data>
<data name="MatrixAudio" xml:space="preserve"> <data name="MatrixAudio" xml:space="preserve">
<value>Garso vizualizatorius</value> <value>Garso vizualizatorius</value>
@@ -585,13 +585,13 @@ Vis tiek norite tęsti?</value>
<value>Sinchronizuoti su pele</value> <value>Sinchronizuoti su pele</value>
</data> </data>
<data name="Multizone" xml:space="preserve"> <data name="Multizone" xml:space="preserve">
<value>Multi Zone</value> <value>Kelios zonos</value>
</data> </data>
<data name="MultizoneStrong" xml:space="preserve"> <data name="MultizoneStrong" xml:space="preserve">
<value>Multi Zone Strong</value> <value>Kelių zonų stiprumas</value>
</data> </data>
<data name="Muted" xml:space="preserve"> <data name="Muted" xml:space="preserve">
<value>Muted</value> <value>Išjungta</value>
</data> </data>
<data name="MuteMic" xml:space="preserve"> <data name="MuteMic" xml:space="preserve">
<value>Mikrofono nutildymas</value> <value>Mikrofono nutildymas</value>
@@ -615,7 +615,7 @@ Vis tiek norite tęsti?</value>
<value>Įjungta</value> <value>Įjungta</value>
</data> </data>
<data name="OneZone" xml:space="preserve"> <data name="OneZone" xml:space="preserve">
<value>One Zone</value> <value>Viena zona</value>
</data> </data>
<data name="OpenGHelper" xml:space="preserve"> <data name="OpenGHelper" xml:space="preserve">
<value>Atidaryti G-Helper langą</value> <value>Atidaryti G-Helper langą</value>
@@ -675,16 +675,16 @@ Vis tiek norite tęsti?</value>
<value>RPM</value> <value>RPM</value>
</data> </data>
<data name="RSDeadzones" xml:space="preserve"> <data name="RSDeadzones" xml:space="preserve">
<value>Right Stick Deadzones</value> <value>Dešiniojo jungiklio nejautrumo zonos</value>
</data> </data>
<data name="RTDeadzones" xml:space="preserve"> <data name="RTDeadzones" xml:space="preserve">
<value>Right Trigger Deadzones</value> <value>Dešiniojo jungiklio nejautrumo zonos</value>
</data> </data>
<data name="RunOnStartup" xml:space="preserve"> <data name="RunOnStartup" xml:space="preserve">
<value>Paleisti įjungus sistemą</value> <value>Paleisti įjungus sistemą</value>
</data> </data>
<data name="ScalingQuality" xml:space="preserve"> <data name="ScalingQuality" xml:space="preserve">
<value>Scaling Quality</value> <value>Mastelio kokybė</value>
</data> </data>
<data name="ScreenPadDown" xml:space="preserve"> <data name="ScreenPadDown" xml:space="preserve">
<value>Ekrano skydelio ryškumo mažinimas</value> <value>Ekrano skydelio ryškumo mažinimas</value>
@@ -741,10 +741,10 @@ Vis tiek norite tęsti?</value>
<value>Perjungti ekraną</value> <value>Perjungti ekraną</value>
</data> </data>
<data name="ToggleTouchscreen" xml:space="preserve"> <data name="ToggleTouchscreen" xml:space="preserve">
<value>Toggle Touchscreen</value> <value>Valdyti jutiklinį ekraną</value>
</data> </data>
<data name="Touchscreen" xml:space="preserve"> <data name="Touchscreen" xml:space="preserve">
<value>Touchscreen</value> <value>Jutiklinis ekranas</value>
</data> </data>
<data name="Turbo" xml:space="preserve"> <data name="Turbo" xml:space="preserve">
<value>Turbo</value> <value>Turbo</value>
@@ -765,7 +765,7 @@ Vis tiek norite tęsti?</value>
<value>Įtampos mažinimas yra eksperimentinė ir pavojinga funkcija. Jei pritaikytos reikšmės yra per mažos jūsų aparatinei įrangai, ji gali tapti nestabili, išsijungti arba pažeisti duomenų vientisumą. Jei norite pabandyti, iš pirmo pradėkite nuo mažų reikšmių, spustelėkite „Taikyti“ ir išbandykite, kas jums tinka.</value> <value>Įtampos mažinimas yra eksperimentinė ir pavojinga funkcija. Jei pritaikytos reikšmės yra per mažos jūsų aparatinei įrangai, ji gali tapti nestabili, išsijungti arba pažeisti duomenų vientisumą. Jei norite pabandyti, iš pirmo pradėkite nuo mažų reikšmių, spustelėkite „Taikyti“ ir išbandykite, kas jums tinka.</value>
</data> </data>
<data name="Unmuted" xml:space="preserve"> <data name="Unmuted" xml:space="preserve">
<value>Unmuted</value> <value>Įjungta</value>
</data> </data>
<data name="Updates" xml:space="preserve"> <data name="Updates" xml:space="preserve">
<value>Naujinimai</value> <value>Naujinimai</value>
@@ -798,24 +798,24 @@ Vis tiek norite tęsti?</value>
<value>Visada rodyti programėlės langą viršuje</value> <value>Visada rodyti programėlės langą viršuje</value>
</data> </data>
<data name="Zoom" xml:space="preserve"> <data name="Zoom" xml:space="preserve">
<value>Zoom</value> <value>Mastelis</value>
</data> </data>
<data name="Donate" xml:space="preserve"> <data name="Donate" xml:space="preserve">
<value>Donate</value> <value>Paremti</value>
</data> </data>
<data name="Legend" xml:space="preserve"> <data name="Legend" xml:space="preserve">
<value>Legend</value> <value>Legenda</value>
</data> </data>
<data name="LegendGray" xml:space="preserve"> <data name="LegendGray" xml:space="preserve">
<value>Can't check local version</value> <value>Nepavyko patikrinti vietinės versijos</value>
<comment>Can't check local version</comment> <comment>Can't check local version</comment>
</data> </data>
<data name="LegendRed" xml:space="preserve"> <data name="LegendRed" xml:space="preserve">
<value>Update Available</value> <value>Išleista nauja versija</value>
<comment>Update Available</comment> <comment>Update Available</comment>
</data> </data>
<data name="LegendGreen" xml:space="preserve"> <data name="LegendGreen" xml:space="preserve">
<value>Updated</value> <value>Atnaujinta</value>
<comment>Updated</comment> <comment>Updated</comment>
</data> </data>
</root> </root>

View File

@@ -157,7 +157,7 @@
<value>程式正在執行</value> <value>程式正在執行</value>
</data> </data>
<data name="AppAlreadyRunningText" xml:space="preserve"> <data name="AppAlreadyRunningText" xml:space="preserve">
<value>G-Helper正在執行。 請檢查右下系統匣。</value> <value>G-Helper 正在執行。 請檢查右下系統匣。</value>
</data> </data>
<data name="Apply" xml:space="preserve"> <data name="Apply" xml:space="preserve">
<value>套用</value> <value>套用</value>
@@ -169,10 +169,10 @@
<value>套用功率限制</value> <value>套用功率限制</value>
</data> </data>
<data name="ApplyWindowsPowerPlan" xml:space="preserve"> <data name="ApplyWindowsPowerPlan" xml:space="preserve">
<value>自動調整Windows電源模式</value> <value>自動調整 Windows 電源模式</value>
</data> </data>
<data name="APUMemory" xml:space="preserve"> <data name="APUMemory" xml:space="preserve">
<value>分配給GPU的記憶體</value> <value>分配給 GPU 的記憶體</value>
</data> </data>
<data name="AsusServicesRunning" xml:space="preserve"> <data name="AsusServicesRunning" xml:space="preserve">
<value>執行中的華碩服務</value> <value>執行中的華碩服務</value>
@@ -295,7 +295,7 @@
<value>次要</value> <value>次要</value>
</data> </data>
<data name="BiosAndDriverUpdates" xml:space="preserve"> <data name="BiosAndDriverUpdates" xml:space="preserve">
<value>BIOS與驅動程式更新</value> <value>BIOS 與驅動程式更新</value>
</data> </data>
<data name="Boot" xml:space="preserve"> <data name="Boot" xml:space="preserve">
<value>開機時</value> <value>開機時</value>

View File

@@ -40,7 +40,8 @@ namespace Ryzen
//PHEONIX - 9 //PHEONIX - 9
//RAPHAEL/DRAGON RANGE - 10 //RAPHAEL/DRAGON RANGE - 10
//MENDOCINO - 11 //MENDOCINO - 11
//HAWKPOINT/STRIXPOINT - 12 //HAWKPOINT - 12
//STRIXPOINT - 13
public static void Init() public static void Init()
{ {
@@ -129,7 +130,7 @@ namespace Ryzen
if (CPUModel.Contains("Family " + Convert.ToString(26)) && CPUModel.Contains("Model " + Convert.ToString(36))) if (CPUModel.Contains("Family " + Convert.ToString(26)) && CPUModel.Contains("Model " + Convert.ToString(36)))
{ {
FAMID = 12; //STRIXPOINT FAMID = 13; //STRIXPOINT
} }
Logger.WriteLine($"CPU: {FAMID} - {CPUName} - {CPUModel}"); Logger.WriteLine($"CPU: {FAMID} - {CPUName} - {CPUModel}");
@@ -243,6 +244,16 @@ namespace Ryzen
Smu.PSMU_ADDR_RSP = 0x3B10a80; Smu.PSMU_ADDR_RSP = 0x3B10a80;
Smu.PSMU_ADDR_ARG = 0x3B10a88; Smu.PSMU_ADDR_ARG = 0x3B10a88;
} }
else if (FAMID == 13)
{
Smu.MP1_ADDR_MSG = 0x3B10928;
Smu.MP1_ADDR_RSP = 0x3B10978;
Smu.MP1_ADDR_ARG = 0x3B10998;
Smu.PSMU_ADDR_MSG = 0x3B10a20;
Smu.PSMU_ADDR_RSP = 0x3B10a80;
Smu.PSMU_ADDR_ARG = 0x3B10a88;
}
else if (FAMID == 4 || FAMID == 6) else if (FAMID == 4 || FAMID == 6)
{ {
Smu.MP1_ADDR_MSG = 0x3B10530; Smu.MP1_ADDR_MSG = 0x3B10530;

View File

@@ -21,7 +21,8 @@ namespace Ryzen
//PHEONIX - 9 //PHEONIX - 9
//RAPHAEL/DRAGON RANGE - 10 //RAPHAEL/DRAGON RANGE - 10
//MENDOCINO - 11 //MENDOCINO - 11
//HAWKPOINT/STRIXPOINT - 12 //HAWKPOINT - 12
//STRIXPOINT - 13
public static Smu RyzenAccess = new Smu(false); public static Smu RyzenAccess = new Smu(false);
public static int FAMID = RyzenControl.FAMID; public static int FAMID = RyzenControl.FAMID;
@@ -49,7 +50,8 @@ namespace Ryzen
case 9: case 9:
case 11: case 11:
case 12: case 12:
RyzenAccess.SendMp1(0x14, ref Args); case 13:
result = RyzenAccess.SendMp1(0x14, ref Args);
result = RyzenAccess.SendPsmu(0x31, ref Args); result = RyzenAccess.SendPsmu(0x31, ref Args);
break; break;
default: default:
@@ -61,32 +63,6 @@ namespace Ryzen
} }
//STAMP2 Limit
public static Smu.Status? set_stapm2_limit(uint value)
{
RyzenAccess.Initialize();
uint[] Args = new uint[6];
Args[0] = value;
Smu.Status? result = null;
switch (FAMID)
{
case 3:
case 5:
case 7:
case 8:
case 9:
case 11:
case 12:
result = RyzenAccess.SendPsmu(0x31, ref Args);
break;
default:
break;
}
RyzenAccess.Deinitialize();
return result;
}
//Fast Limit //Fast Limit
public static Smu.Status? set_fast_limit(uint value) public static Smu.Status? set_fast_limit(uint value)
{ {
@@ -109,7 +85,9 @@ namespace Ryzen
case 9: case 9:
case 11: case 11:
case 12: case 12:
case 13:
result = RyzenAccess.SendMp1(0x15, ref Args); result = RyzenAccess.SendMp1(0x15, ref Args);
result = RyzenAccess.SendPsmu(0x32, ref Args);
break; break;
default: default:
break; break;
@@ -140,7 +118,10 @@ namespace Ryzen
case 9: case 9:
case 11: case 11:
case 12: case 12:
case 13:
result = RyzenAccess.SendMp1(0x16, ref Args); result = RyzenAccess.SendMp1(0x16, ref Args);
result = RyzenAccess.SendPsmu(0x33, ref Args);
result = RyzenAccess.SendPsmu(0x34, ref Args);
break; break;
default: default:
break; break;
@@ -176,11 +157,12 @@ namespace Ryzen
case 9: case 9:
case 11: case 11:
case 12: case 12:
case 13:
result = RyzenAccess.SendMp1(0x19, ref Args); result = RyzenAccess.SendMp1(0x19, ref Args);
break; break;
case 4: case 4:
case 6: case 6:
RyzenAccess.SendMp1(0x23, ref Args); result = RyzenAccess.SendMp1(0x23, ref Args);
result = RyzenAccess.SendPsmu(0x56, ref Args); result = RyzenAccess.SendPsmu(0x56, ref Args);
break; break;
case 10: case 10:
@@ -194,37 +176,6 @@ namespace Ryzen
return result; return result;
} }
//Skin Temp limit
public static Smu.Status? set_apu_skin_temp_limit(uint value)
{
RyzenAccess.Initialize();
uint[] Args = new uint[6];
Args[0] = value;
Smu.Status? result = null;
switch (FAMID)
{
case 5:
case 8:
case 9:
case 11:
case 12:
result = RyzenAccess.SendMp1(0x33, ref Args);
break;
case 3:
case 7:
result = RyzenAccess.SendMp1(0x38, ref Args);
break;
default:
break;
}
RyzenAccess.Deinitialize();
return result;
}
//Set All Core Curve Optimiser //Set All Core Curve Optimiser
public static Smu.Status? set_coall(int value) public static Smu.Status? set_coall(int value)
{ {
@@ -241,12 +192,12 @@ namespace Ryzen
{ {
case 3: case 3:
case 7: case 7:
RyzenAccess.SendMp1(0x55, ref Args); result = RyzenAccess.SendMp1(0x55, ref Args);
result = RyzenAccess.SendPsmu(0xB1, ref Args); result = RyzenAccess.SendPsmu(0xB1, ref Args);
break; break;
case 4: case 4:
case 6: case 6:
RyzenAccess.SendMp1(0x36, ref Args); result = RyzenAccess.SendMp1(0x36, ref Args);
result = RyzenAccess.SendPsmu(0xB, ref Args); result = RyzenAccess.SendPsmu(0xB, ref Args);
break; break;
case 5: case 5:
@@ -254,6 +205,7 @@ namespace Ryzen
case 9: case 9:
case 11: case 11:
case 12: case 12:
case 13:
result = RyzenAccess.SendPsmu(0x5D, ref Args); result = RyzenAccess.SendPsmu(0x5D, ref Args);
break; break;
case 10: case 10:
@@ -285,7 +237,7 @@ namespace Ryzen
{ {
case 3: case 3:
case 7: case 7:
RyzenAccess.SendMp1(0x64, ref Args); result = RyzenAccess.SendMp1(0x64, ref Args);
result = RyzenAccess.SendPsmu(0x57, ref Args); result = RyzenAccess.SendPsmu(0x57, ref Args);
break; break;
case 5: case 5:
@@ -293,6 +245,7 @@ namespace Ryzen
case 9: case 9:
case 11: case 11:
case 12: case 12:
case 13:
result = RyzenAccess.SendPsmu(0xb7, ref Args); result = RyzenAccess.SendPsmu(0xb7, ref Args);
break; break;
default: default:

View File

@@ -226,13 +226,10 @@ namespace GHelper
public void _VisualiseNewCount(int updatesCount, TableLayoutPanel table) public void _VisualiseNewCount(int updatesCount, TableLayoutPanel table)
{ {
Invoke(delegate labelUpdates.Text = $"{Properties.Strings.NewUpdates}: {updatesCount}";
{ labelUpdates.ForeColor = colorTurbo;
labelUpdates.Text = $"{Properties.Strings.NewUpdates}: {updatesCount}"; labelUpdates.Font = new Font(labelUpdates.Font, FontStyle.Bold);
labelUpdates.ForeColor = colorTurbo; panelBios.AccessibleName = labelUpdates.Text;
labelUpdates.Font = new Font(labelUpdates.Font, FontStyle.Bold);
panelBios.AccessibleName = labelUpdates.Text;
});
} }
static string CleanupDeviceId(string input) static string CleanupDeviceId(string input)