(formerly โMSI Profile Switcherโ - renamed to keep the project clearly independent of MSI; see docs/ABOUT_THE_NAME.md)
A lightweight, independent Windows tray app to switch MSI laptop power profiles - Silent / Balanced / Extreme / Super Battery - instantly via global hotkeys, the tray menu, or auto-switch on AC/battery, with an on-screen overlay showing the active profile.
Built because MSI Center 2.0 removed the Silent profile. This app talks to the Embedded Controller (EC) through MSI's own WMI interface - no kernel driver, no disabling of Windows security - so it works regardless of the MSI Center version (even with MSI Center uninstalled).
โ ๏ธ Hardware-specific. Developed and tested on MSI Raider GE78HX 13V (board MS-17S1, i9-13950HX, EC firmware17S1IMS1.114), and confirmed by an owner on the GE78 HX 14V (17S2IMS2, same board). EC registers are model/firmware-specific - read docs/TECHNICAL.md before trying it on another model. Use at your own risk.
๐ ~135 MSI models recognised - the GE78HX board (13V + 14V), the Crosshair A16 HX (D7W/D8W) and the Sword 16 HX (B13V/B14V) are confirmed on real hardware, the rest are experimental (opt-in). See the full supported-models list, or browse it live in the app's Models tab.
- ๐ฅ๏ธ Tray icon (color = active profile) with a profile menu, plus a tabbed main window (Scenarios / Status / Fan curve / Models / Report / Updates) with a light / dark theme
- โจ๏ธ Global, rebindable hotkeys (default
Ctrl+Alt+F1โF4,Ctrl+Alt+P= cycle) - ๐ On-screen overlay (OSD) on every profile change
- ๐ฎ Detachable gaming overlay (HUD) - a small always-on-top panel with temps / fan RPM / profile / load / GPU% / VRAM / clocks / RAM / battery, in a card or bar layout. Pick which metrics to show, drag it anywhere (position remembered) or snap to a corner, toggle with a hotkey (default
Ctrl+Shift+O). Rendered per-pixel with independent background & content opacity, smooth anti-aliased text, a readability shadow, optional click-through lock (Ctrl+Shift+L) - ๐ 8 languages - EN / PL / DE / FR / ES / ไธญๆ / PT-BR / RU
- ๐จ Custom color per profile
- ๐ Status - live CPU/GPU temperature & fan rings, fan RPM, CPU usage & approx. clock, GPU load % / VRAM, RAM, battery %, plus a live EC profile-byte matrix (what each profile writes vs. the current values). Extra metrics are read driver-free (Windows PDH counters - no kernel driver, anti-cheat-safe)
- ๐ Fan curve editor - drag a custom CPU/GPU curve and run it on Balanced / Extreme / Super Battery (MSI Center only allows one in Extreme); fully reversible. Silent is the exception: its power cap lives in the same EC byte the curve needs, so turning a curve on in Silent necessarily leaves Silent for Balanced - the app warns and switches for you
- ๐ช๏ธ Fan Boost - force both fans to full speed with one click, a tray entry or a global hotkey (default
Ctrl+Alt+F5), independent of the active profile; shown as a compact toggle "brick" on the Scenarios tab (equivalent of MSI's Cooler Boost) - ๐ Change-history log - a running log of recent profile switches and EC writes (time, source: hotkey / tray / auto-AC / fan curve / external sync, the bytes written, and a readback), with a full-log window - handy for model-support reports
- ๐ก๏ธ Firmware-change guard - after a BIOS/EC update the app detects the changed firmware, blocks automatic writes and asks you to re-verify the model before it touches the EC again
- ๐ Optional auto-switch on AC / battery (off by default, so it won't fight MSI software)
- ๐ Battery charge limit (60 / 80 / 100 %)
- ๐ Start with Windows (elevated scheduled task - no UAC nag at logon)
- ๐ Syncs the UI if the profile is changed externally (e.g. by MSI Center)
- โฌ๏ธ In-app updates - a daily update check (can be disabled) with a tray notification, plus one-click install from the Updates tab: it downloads the new release, shows a progress bar and restarts itself on the new version (the previous
.exeis kept as a.bakand cleaned up on next start); falls back to the download page if the download fails - ๐ฃ Announcements & feedback - occasional in-app notices (tray balloon + a dismissible banner) fetched read-only from the repo on the same daily check; a Send feedbackโฆ tray entry opens GitHub Discussions. No data is collected by the app (a plain download, same privacy footprint as the update check); both can be turned off with the update-check toggle
GhostDeck is a small, focused tool - it deliberately does one thing (power/fan profiles) well, rather than replacing MSI Center. The table shows where it helps most: the Silent profile MSI removed, a fan curve outside just Extreme, no background services, and full transparency of what it writes to the EC.
| Feature | MSI Center 2.0 | GhostDeck |
|---|---|---|
| Silent profile | โ (removed in 2.0) | โ |
| Balanced / Extreme / Super Battery modes | โ | โ |
| Full fan speed (Fan Boost / MSI Cooler Boost) | โ | โ |
| Battery charge limit | โ (60/80/100) | โ (60/80/100) |
| Custom fan curve | Limitedยน | โ *(Balanced / Extreme / Super Battery)*ยน |
| Global rebindable hotkeys | Limitedยฒ | โ |
| Auto-switch profile on AC / battery | โ | โ |
| On-screen overlay (OSD) | โ (profile / Fn keys) | โ *(every function)*โถ |
| Detachable gaming overlay (HUD) | โ | โ (temps / RPM / GPU% / VRAM / clocks / RAM / battery; card or bar) |
| Live EC profile-byte view / transparency | โ | โ |
| Change & EC-write history log | โ | โ |
| Hardware monitoring | โ | Limitedยณ |
| Works with any / no MSI Center version | โ | โ |
| Installed size | ~950 MBโด + background services | ~155 MBโต (single portable .exe, no services) |
| RGB / keyboard / other MSI-Center features | โ | โ |
| In-app self-update | โ | โ (one-click install + restart) |
| Open source | โ | โ |
- MSI Center only allows a custom fan curve in Extreme; this app runs one on Balanced / Extreme / Super Battery, fully reversible. Silent is a hardware exception: its power cap and the fan-curve mode share the same EC byte (
0xD4), so enabling a curve in Silent necessarily switches the profile to Balanced (the app warns first). - MSI Center's shortcuts are limited; here every hotkey is global and rebindable.
- Monitors CPU/GPU temperature, fan RPM, CPU & RAM usage via EC/WMI, plus GPU load %, VRAM, an approximate CPU clock and battery % via driver-free Windows PDH counters - not MSI Center's full telemetry.
- MSI Center 2.0.x as the UWP app plus the files it installs to
C:\Program Files (x86)\MSIon first launch. - Self-contained single
.exe- no installer, no background service, no separate .NET runtime. - MSI Center shows an overlay for profile / Fn-key changes; this app shows one for every action it performs - profile switch and Fan Boost (and future functions) - so you always get feedback on what changed.
The comparison is against MSI Center 2.0 (the version that dropped Silent). This app is an unofficial, independent project - not affiliated with, endorsed, sponsored or supported by MSI. "MSI", "MSI Center" and "Cooler Boost" are trademarks of Micro-Star International Co., Ltd.; they are used here only descriptively to state compatibility.
Grab the latest GhostDeck.exe from the Releases page.
It's a single, self-contained file - no install, no .NET runtime needed. Run it and approve the UAC prompt (EC access requires administrator).
Each model is โ tested (verified on real hardware) or โ๏ธ experimental (built from the msi-ec register maps but not yet verified - the "Silent" power-cap behaviour is unconfirmed). On an unrecognized firmware the app runs read-only (Status works, writes disabled), so it never writes wrong registers on an untested machine.
Experimental models are opt-in: enable them in Settings โ Power โ "Enable experimental models". They write only documented MSI shift/fan registers (low risk), but switching may not give the same low-power "Silent" until an owner confirms it.
~134 models are recognised, grouped into two EC families taken from the msi-ec maps and cross-checked against MControlCenter:
| Tier | Models | EC firmware / registers | Fan curve |
|---|---|---|---|
| โ Tested | MSI Raider GE78HX / Vector GP78HX 13V, GE78 HX 14V | 17S1IMS1.*, 17S2IMS2.* - shift 0xD2 / fan 0xD4 |
โ editable |
| โ๏ธ G2 family (~101) | Raider / Vector / Titan HX (13Vโ14V), Stealth 16-18, Sword / Pulse / Crosshair 16, Katana, Cyborg, Bravo, Modern / Prestige / Summit | shift 0xD2 / fan 0xD4 / super-batt 0xEB |
โ editable after opt-in (unverified) |
| โ๏ธ G1 family (~33) | older GS / GF / GE / GP, Modern, Alpha, Bravo, Delta, Creator | shift 0xF2 / fan 0xF4 / charge 0xEF |
- profiles only |
The G2 fan-curve tables use the fixed addresses (CPU 0x6A/0x72, GPU 0x82/0x8A) that MControlCenter writes across the whole family, so they are practice-confirmed; on experimental models the curve is editable once you opt in, but stays flagged unverified until you compare it with MSI Center on your own model. See the full per-firmware list of all ~135 models (source of truth: Devices.cs). A handful of models whose msi-ec config documents no "Silent" fan value are deliberately left out (Silent is this app's core function - guessing it would be unsafe).
Got a different MSI - or own an experimental one and can confirm it works? The easiest way is right inside the app: tray menu โ Report my modelโฆ (also a button in the Status window). It walks you through a read-only EC capture in each MSI Center scenario, builds the report, copies it to your clipboard, saves it to a file, and opens a pre-filled GitHub issue - just paste and submit. (Requires MSI Center installed as the scenario reference.)
Prefer to do it by hand? Open a Model support request with your EC firmware (shown in the app's Status window) and the output of the diagnostic scripts in scripts/diagnostics/. The procedure is in docs/TECHNICAL.md ยง11.
Requires the .NET 8 SDK.
dotnet publish -c Release -r win-x64 --self-contained true ^
-p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -o publishThe app icon is generated by tools/gen-icon.ps1 (already committed as app.ico).
Each profile is a small set of EC register writes sent through root\wmi โ MSI_ACPI.Set_Data (a 32-byte Package_32 buffer: Bytes[0] = address, Bytes[1] = value). The key lever is the fan-mode register 0xD4 (Silent = 0x1D), which the EC firmware ties to the power cap - in testing it dropped package power from ~104 W to ~30 W under load.
Full reverse-engineering write-up, register map, measurements and the diagnostic scripts: docs/TECHNICAL.md.
Full per-firmware list of every recognised model: docs/SUPPORTED_MODELS.md (also shown live in the app's Models tab).
EC register map credit: BeardOverflow/msi-ec.
See docs/FAQ.md - fan control outside Extreme, exact-wattage / PL1-PL2 sliders (and the BIOS route), running alongside MSI Center (and why changes don't show in its UI), auto-clearing RAM, safety, and the admin/UAC prompt.
To preview the experimental / unsupported UI on any machine, set the MSIPS_FORCE_FIRMWARE environment variable to a firmware string before launching. The app then simulates that firmware and performs no EC writes (UI preview only):
# Run from an ADMIN PowerShell so the variable reaches the elevated app:
$env:MSIPS_FORCE_FIRMWARE = "16V1EMS1.100" # an experimental model
# or "ZZZZ" for an unsupported firmware
& .\GhostDeck.exe
# (close it, clear the variable, relaunch to return to normal)The Status window / tray show a (test) marker while simulating.
MIT ยฉ 2026 wygodad









