Skip to content

Commit d1a1fc6

Browse files
wygodadclaude
andcommitted
Raider GE68 HX 14VIG / Vector 16 HX A13V (15M1IMS2) is the 24th tested model (#104, #105)
The owner's per-scenario capture (MSI Center 2.0.48) matches StdRecipes on the three main profiles with a real Silent 0x1D, and his power test proves the cap: Silent does 73% of Balanced's work at 2474 vs 3364 MHz, Extreme runs 10% above Balanced, recipe bytes read back intact each phase, 2% drift. Super Battery on this board is vendor-written as shift 0xC6 with 0xEB untouched, so the entry mirrors the capture (custom recipes + ShiftEcoValue) instead of the family defaults. Fan RPM enabled at 0xC9/0xCB (family divisor scheme, cross-check requested). DataVersion 20260824, database re-signed. 24 tested / 123 experimental. Thanks @dodi6161. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 64ee8f5 commit d1a1fc6

6 files changed

Lines changed: 52 additions & 18 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ Format loosely based on [Keep a Changelog](https://keepachangelog.com/).
55

66
## [Unreleased]
77
### Changed
8+
- **MSI Raider GE68 HX 14VIG / Vector 16 HX A13V (`15M1IMS2`) promoted to tested** ([#104](../../issues/104),
9+
[#105](../../issues/105), thanks @dodi6161) - the owner's per-scenario capture matches the standard
10+
recipes on the three main profiles with a real Silent (`0xD4=0x1D`, MSI Center 2.0.48), and his
11+
power test shows the Silent cap outright: 73% of Balanced's work at 2474 vs 3364 MHz, Extreme 10%
12+
above Balanced, recipe bytes read back intact after every phase. On this board the vendor's Super
13+
Battery writes shift `0xC6` and never touches `0xEB`, so the entry carries those exact bytes
14+
instead of the family defaults. Fan RPM enabled at `0xC9`/`0xCB` (family scheme, owner asked to
15+
cross-check against HWiNFO). 24 models tested.
816
- **MSI Creator M14 A13VE (`14P1IWS1`) promoted to tested** ([#91](../../issues/91), thanks
917
@otherpartsoftheworld-spec) - his power-test run measured Silent dropping the fan from 3571
1018
to 2964 rpm at unchanged throughput, with every phase reading its recipe back cleanly.

Core/Devices.cs

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public static class Devices
8888
// generated data/models.json carries the same number (CI byte-compares a fresh dump
8989
// against the committed file, so the two cannot drift). A downloaded database is used
9090
// only when its dataVersion is strictly NEWER than this (anti-rollback, see ModelDb).
91-
public const int DataVersion = 20260823;
91+
public const int DataVersion = 20260824;
9292

9393
// A signed, newer database downloaded from the repo (ModelDb.LoadOverride). Null = the
9494
// compiled tables below are in effect. Volatile because it is applied on the UI thread and
@@ -523,7 +523,32 @@ private static string FwPrefix(string firmware)
523523
// ===== BULK IMPORT (msi-ec / MControlCenter) — all EXPERIMENTAL, opt-in, unverified =====
524524
// G2 modern-HX siblings of the tested 17S1IMS1 board (same 0xD2/0xD4 layout).
525525
new() { Name = "MSI Vector GP68 HX 13V", FirmwarePrefixes = new[] { "15M1IMS1" }, Tier = Tier.Experimental, FanCurve = ModernCurve, Recipes = StdRecipes(0xD2, 0xD4, 0xEB) },
526-
new() { Name = "MSI Raider GE68 HX 14VIG", FirmwarePrefixes = new[] { "15M1IMS2" }, Tier = Tier.Experimental, FanCurve = ModernCurve, Recipes = StdRecipes(0xD2, 0xD4, 0xEB) },
526+
// Raider GE68 HX 14VIG board (15M1IMS2), also sold as Vector 16 HX A13V - the owner's
527+
// report (issue #104, taken on MSI Center 2.0.48, the last lineup with the real Silent
528+
// scenario) matches StdRecipes on the three main profiles: shift 0xD2 C1/C1/C4, fan
529+
// 0xD4 1D/0D/0D with a true Silent 0x1D. Super Battery is NOT the family canon on this
530+
// board: the vendor writes shift 0xC6 (not 0xC2) and never touches 0xEB (00 in every
531+
// scenario; 0x50/0x51 rise to 4B/4B there as well), so the recipe mirrors the capture -
532+
// 0xC6 and no 0xEB write - and ShiftEcoValue makes detection report it. Eco itself is
533+
// unverified on hardware; the power test covers the three main profiles.
534+
// TESTED 2026-08-23 on the owner's power-test run (#105): Silent completes 73% of
535+
// Balanced's work at 2474 vs 3364 MHz, Extreme adds 10% on top (3649 MHz), recipe bytes
536+
// read back intact after every phase, 2% baseline drift. Curve tables hold the family
537+
// layout at the shipped ModernCurve addresses (ascending values) - no test curve, so the
538+
// curve stays unverified. RPM: single-byte divisors at 0xC9/0xCB as on the Pulse 16 AI
539+
// (0xC9 = C8/C8/C8/CD = ~2390-2330 rpm, 0xCB = EB/A6 = ~2030-2880 rpm where the GPU fan
540+
// was awake; the wide-pair bytes 0xC8/0xCA sit at 00 in all four columns) - enabled as
541+
// the family scheme, owner asked to cross-check against HWiNFO.
542+
new() { Name = "MSI Raider GE68 HX 14VIG / Vector 16 HX A13V", FirmwarePrefixes = new[] { "15M1IMS2" }, Tier = Tier.Tested,
543+
CpuRpmAddr = 0xC9, GpuRpmAddr = 0xCB, FanCurve = ModernCurve, ShiftEcoValue = 0xC6,
544+
Recipes = new()
545+
{
546+
[ProfileId.Silent] = new (byte, byte)[] { (0xD2, 0xC1), (0xD4, 0x1D) },
547+
[ProfileId.Balanced] = new (byte, byte)[] { (0xD2, 0xC1), (0xD4, 0x0D) },
548+
[ProfileId.Extreme] = new (byte, byte)[] { (0xD2, 0xC4), (0xD4, 0x0D) },
549+
[ProfileId.SuperBattery] = new (byte, byte)[] { (0xD2, 0xC6), (0xD4, 0x0D) },
550+
},
551+
Credit = "dodi6161", CreditUrl = "https://github.com/wygodad/ghostdeck/issues/104" },
527552
new() { Name = "MSI Raider GE68 HX 14VGG", FirmwarePrefixes = new[] { "15M2IMS2" }, Tier = Tier.Experimental, FanCurve = ModernCurve, Recipes = StdRecipes(0xD2, 0xD4, 0xEB) },
528553
// Vector 16 HX AI (15M3EMS1) - the first model promoted on a MEASUREMENT rather than on its
529554
// owner's judgement. The Power test (issue #74) answers all three hardware checks with

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Built because **MSI Center 2.0 removed the _Silent_ profile**. This app talks to
2020

2121
> ⚠️ **Hardware-specific.** Developed and tested on **MSI Raider GE78HX 13V** (board MS-17S1, i9-13950HX, EC firmware `17S1IMS1.114`), and confirmed by an owner on the **GE78 HX 14V** (`17S2IMS2`, same board). EC registers are model/firmware-specific - read [docs/TECHNICAL.md](docs/TECHNICAL.md) before trying it on another model. **Use at your own risk.**
2222
23-
📋 **147 MSI models recognised** - **23 models confirmed on real hardware** by their owners (GE78HX/Vector boards, Crosshair A16 HX, Crosshair 16 HX AI, Sword 16 HX, GE67 HX, GE66 Raider / GP66 Leopard, Cyborg 15, both GF63 Thins, Raider GE76 12UE/12UGS, Raider A18 HX, Vector A18 HX, Vector 16 HX AI, Titan 18 HX Dragon, Bravo 15 B7ED, Bravo 17, Katana GF66 11U, Pulse/Katana 17 B13V, Katana 15 HX B14WEK, Modern 14 C12M, Pulse 16 AI C1V, Creator M16 / Pulse 15 / Katana 15 B13V, Creator M14 A13VE), the rest are experimental (opt-in). See the **[full supported-models list](docs/SUPPORTED_MODELS.md)**, or browse it live in the app's **Models** tab.
23+
📋 **147 MSI models recognised** - **24 models confirmed on real hardware** by their owners (GE78HX/Vector boards, Raider GE68 HX / Vector 16 HX A13V, Crosshair A16 HX, Crosshair 16 HX AI, Sword 16 HX, GE67 HX, GE66 Raider / GP66 Leopard, Cyborg 15, both GF63 Thins, Raider GE76 12UE/12UGS, Raider A18 HX, Vector A18 HX, Vector 16 HX AI, Titan 18 HX Dragon, Bravo 15 B7ED, Bravo 17, Katana GF66 11U, Pulse/Katana 17 B13V, Katana 15 HX B14WEK, Modern 14 C12M, Pulse 16 AI C1V, Creator M16 / Pulse 15 / Katana 15 B13V, Creator M14 A13VE), the rest are experimental (opt-in). See the **[full supported-models list](docs/SUPPORTED_MODELS.md)**, or browse it live in the app's **Models** tab.
2424

2525
> [!TIP]
2626
> **❓ Five minutes well spent: the [FAQ](docs/FAQ.md).** Honest, sourced answers to the questions everyone asks sooner or later: [why there is no watt slider](docs/FAQ.md#can-i-set-an-exact-wattage-a-power-slider--pl1--pl2) - and the one real route to get one - [running GhostDeck next to MSI Center](docs/FAQ.md#why-dont-my-changes-show-up-in-msi-center-can-i-run-both), [why the MUX switch needs a reboot on every brand](docs/FAQ.md#can-ghostdeck-switch-the-mux---discrete-gpu-direct-mode-独显直连) (and what is quietly cooking there…), [whether any of this can damage your laptop](docs/FAQ.md#is-there-any-risk-of-damaging-my-laptop), and [what to do when an antivirus grumbles](docs/FAQ.md#my-antivirus--virustotal-flags-ghostdeckexe---is-it-malware).

data/models.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schemaVersion": 1,
3-
"dataVersion": 20260823,
3+
"dataVersion": 20260824,
44
"models": [
55
{
66
"name": "MSI Raider GE78HX 13V / 14V",
@@ -997,11 +997,14 @@
997997
}
998998
},
999999
{
1000-
"name": "MSI Raider GE68 HX 14VIG",
1000+
"name": "MSI Raider GE68 HX 14VIG / Vector 16 HX A13V",
10011001
"prefixes": [
10021002
"15M1IMS2"
10031003
],
1004-
"tier": "Experimental",
1004+
"tier": "Tested",
1005+
"cpuRpmAddr": "0xC9",
1006+
"gpuRpmAddr": "0xCB",
1007+
"shiftEcoValue": "0xC6",
10051008
"fanCurve": {
10061009
"advancedModeValue": "0x8D",
10071010
"cpuTempBase": "0x69",
@@ -1012,26 +1015,24 @@
10121015
"verified": false,
10131016
"singleFan": false
10141017
},
1018+
"credit": "dodi6161",
1019+
"creditUrl": "https://github.com/wygodad/ghostdeck/issues/104",
10151020
"recipes": {
10161021
"Silent": [
10171022
"0xD2=0xC1",
1018-
"0xD4=0x1D",
1019-
"0xEB=0x00"
1023+
"0xD4=0x1D"
10201024
],
10211025
"Balanced": [
10221026
"0xD2=0xC1",
1023-
"0xD4=0x0D",
1024-
"0xEB=0x00"
1027+
"0xD4=0x0D"
10251028
],
10261029
"Extreme": [
10271030
"0xD2=0xC4",
1028-
"0xD4=0x0D",
1029-
"0xEB=0x00"
1031+
"0xD4=0x0D"
10301032
],
10311033
"SuperBattery": [
1032-
"0xD2=0xC2",
1033-
"0xD4=0x0D",
1034-
"0xEB=0x0F"
1034+
"0xD2=0xC6",
1035+
"0xD4=0x0D"
10351036
]
10361037
}
10371038
},

data/models.json.sig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
MEQCIC+0T6ayHQNg74UJEyKJn1fLR0wYN76g1NFLSVA7FJEEAiA6jWGTk6B/jlm18XqR/Y3TFYYT62P2usbmf/WNGv9LHA==
1+
MEUCIDfPv5kLWvxqbmUDHEVHJUEMoyOiU9Ot9JsCZ8MNWBfnAiEApb2KQBj8RD1ywOkRyjvD3jMOH43NZh9fuDIt3K1nL0k=

docs/SUPPORTED_MODELS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
> Auto-generated from [`Devices.cs`](../Core/Devices.cs) - the single source of truth. Do not edit by hand: regenerate with `GhostDeck.exe --dump-supported-md docs/SUPPORTED_MODELS.md` (CI fails when this file drifts from the code).
44
5-
**147 laptop models** are recognised: **23 tested** on real hardware (MSI Bravo 15 B7ED; MSI Bravo 17 C7VE / D7VFK; MSI Creator M14 A13VE; MSI Creator M16 B13VF / Pulse 15 B13VGK / Katana 15 B13UDXK; MSI Crosshair 16 HX AI D2XW; MSI Crosshair A16 HX (D7W/D8W); MSI Cyborg 15 A12VF / A13VF; MSI GE66 Raider / GP66 Leopard; MSI GF63 Thin 11UC / 11SC; MSI Katana 15 HX B14WEK; MSI Katana GF66 11UE / 11UG; MSI Modern 14 C12M; MSI Pulse 16 AI C1VGKG/C1VFKG; MSI Pulse/Katana 17 B13V/GK; MSI Raider A18 HX A7VIG; MSI Raider GE67 HX 12U; MSI Raider GE76 12UE / 12UGS; MSI Raider GE78HX 13V / 14V; MSI Sword 16 HX B13V / B14V; MSI Thin GF63 12VE; MSI Titan 18 HX Dragon Edition; MSI Vector 16 HX AI A2XWHG / A2XWIG; MSI Vector A18 HX A9WHG) and **124 experimental** (opt-in), built from the [msi-ec](https://github.com/BeardOverflow/msi-ec) register maps, with fan and temperature registers cross-checked against [MControlCenter](https://github.com/dmitry-s93/MControlCenter). Keyboard-backlight control covers models where msi-ec documents the EC brightness register; laptops with **per-key RGB keyboards** (SteelSeries) do not expose it and keep using their own Fn key (see [LIGHTING.md](LIGHTING.md) for the hardware research behind that). On an **unrecognised firmware the app stays read-only** (Status works, no writes), so it never touches wrong registers.
5+
**147 laptop models** are recognised: **24 tested** on real hardware (MSI Bravo 15 B7ED; MSI Bravo 17 C7VE / D7VFK; MSI Creator M14 A13VE; MSI Creator M16 B13VF / Pulse 15 B13VGK / Katana 15 B13UDXK; MSI Crosshair 16 HX AI D2XW; MSI Crosshair A16 HX (D7W/D8W); MSI Cyborg 15 A12VF / A13VF; MSI GE66 Raider / GP66 Leopard; MSI GF63 Thin 11UC / 11SC; MSI Katana 15 HX B14WEK; MSI Katana GF66 11UE / 11UG; MSI Modern 14 C12M; MSI Pulse 16 AI C1VGKG/C1VFKG; MSI Pulse/Katana 17 B13V/GK; MSI Raider A18 HX A7VIG; MSI Raider GE67 HX 12U; MSI Raider GE68 HX 14VIG / Vector 16 HX A13V; MSI Raider GE76 12UE / 12UGS; MSI Raider GE78HX 13V / 14V; MSI Sword 16 HX B13V / B14V; MSI Thin GF63 12VE; MSI Titan 18 HX Dragon Edition; MSI Vector 16 HX AI A2XWHG / A2XWIG; MSI Vector A18 HX A9WHG) and **123 experimental** (opt-in), built from the [msi-ec](https://github.com/BeardOverflow/msi-ec) register maps, with fan and temperature registers cross-checked against [MControlCenter](https://github.com/dmitry-s93/MControlCenter). Keyboard-backlight control covers models where msi-ec documents the EC brightness register; laptops with **per-key RGB keyboards** (SteelSeries) do not expose it and keep using their own Fn key (see [LIGHTING.md](LIGHTING.md) for the hardware research behind that). On an **unrecognised firmware the app stays read-only** (Status works, no writes), so it never touches wrong registers.
66

77
Column meaning:
88

@@ -32,6 +32,7 @@ Own an experimental model and can confirm it works (or doesn't)? Use the in-app
3232
| MSI Pulse/Katana 17 B13V/GK | `17L5EMS1` | G2 | &#9989; tested | &#9989; editable | &#10003; | &mdash; |
3333
| MSI Raider A18 HX A7VIG | `182KIMS1` | G2 | &#9989; tested | &#9989; editable | &mdash; | &#10003; 0xC9/0xCB |
3434
| MSI Raider GE67 HX 12U | `1545IMS1` | G2 | &#9989; tested | &#9989; editable | &#10003; | &mdash; |
35+
| MSI Raider GE68 HX 14VIG / Vector 16 HX A13V | `15M1IMS2` | G2 | &#9989; tested | &#9673; unverified | &mdash; | &#10003; 0xC9/0xCB |
3536
| MSI Raider GE76 12UE / 12UGS | `17K4EMS1` | G2 | &#9989; tested | &#9989; editable | &#10003; | &#10003; 0xC9/0xCB |
3637
| MSI Raider GE78HX 13V / 14V | `17S1IMS1`, `17S2IMS2` | G2 | &#9989; tested | &#9989; editable | &#10003; | &#10003; 0xC9/0xCB |
3738
| MSI Sword 16 HX B13V / B14V | `15P2EMS1` | G2 | &#9989; tested | &#9989; editable | &#10003; | &#10003; 0xC9/0xCB |
@@ -85,7 +86,6 @@ Own an experimental model and can confirm it works (or doesn't)? Use the in-app
8586
| MSI Prestige 16 Studio A13VE | `1594EMS1` | G2 | &#9887;&#65039; experimental | &#9673; unverified | &#10003; | &mdash; |
8687
| MSI Prestige A16 AI+ A3HMG | `159KIMS1` | G2 | &#9887;&#65039; experimental | &#9673; unverified | &#10003; | &mdash; |
8788
| MSI Raider GE68 HX 14VGG | `15M2IMS2` | G2 | &#9887;&#65039; experimental | &#9673; unverified | &#10003; | &mdash; |
88-
| MSI Raider GE68 HX 14VIG | `15M1IMS2` | G2 | &#9887;&#65039; experimental | &#9673; unverified | &#10003; | &mdash; |
8989
| MSI Raider GE68HX 13V | `15M2IMS1` | G2 | &#9887;&#65039; experimental | &#9673; unverified | &#10003; | &mdash; |
9090
| MSI Raider GE77 HX 12UGS | `17K5IMS1` | G2 | &#9887;&#65039; experimental | &#9673; unverified | &#10003; | &mdash; |
9191
| MSI Raider GE78 HX 14VHG | `17S1IMS2` | G2 | &#9887;&#65039; experimental | &#9673; unverified | &#10003; | &mdash; |

0 commit comments

Comments
 (0)