This project was originally created to enable simple P-state overclocking on ASUS AM4 motherboards from the OS. The original owner of the project, Jon Sandström (a.k.a. elmor/eelmor) is no longer maintaining it. Starting from Zen2 release (Matisse), I'm taking over and will try to provide as much functionality as possible.
- WinRing driver
- .Net Framework v4.0
- Supported OS: Windows XP/Vista/7/8/10
The application consists of two executables - the main GUI ZenStates.exe
and a service ZenStatesSrv.exe
.
An additional uninstall.bat
is provided for an easy uninstall of the previous service version.
- Extract the provided zip and place in a desired location on the disk
- Run
uninstall.bat
if not running for a first time - Run
ZenStates.exe
- SMU mailbox message address changed from
0x03B10528
to0x03B10530
- SMU mailbox response address changed from
0x03B10564
to0x03B1057C
- ARG base address changed from
0x03B10998
to0x03B109C4
There's no public document describing the available commands, however I was able reverse-engineer some of them with the help of the publicly released "worktool" app, ReadWriteEverything, CrystalCPUID and the info provided by FlyGoat.
The research is based on SMU version 64.40.00.
ID | Name | Description |
---|---|---|
0x1 | TestMessage | A test command to check if Mailbox responds. Returns 0x1 if successful. |
0x2 | GetSmuVersion | Gets the SMU Firmware version. |
0x3 | EnableSmuFeatures | |
0x4 | DisableSmuFeatures | The command is rejected (0xFD ). Seems to be currently blocked by AMD |
0x23 | SetTjMax | Set TjMax temperature, probably in degrees C° |
0x24 | EnableOverclocking | Forces manual overclock mode. All limits, except overtemperature protection, are lifted. OC means FID != default. |
0x25 | DisableOverclocking | Reverts back to non-OC mode. |
0x26 | SetOverclockFreqAllCores | Sets all core OC frequency, depends on 0x24 |
0x27 | SetOverclockFreqPerCore | Set overclock frequency per core. Probably requires 2 arguments. Depends on 0x24. |
0x28 | SetOverclockVid | Alters the VID (in HEX). Depends on 0x24 . |
0x29 | etBoostLimitFrequency | Sets single-thread max boost frequency. |
0x2B | SetBoostLimitFrequencyAllCores | Sets maximum boost frequency for multi-thread applications. Still depends on PBO limits. |
0x2C | GetOverclockCap | Gets OC capability, which is unclear to me how it could be used and what does it mean exactly. |
0x2F | SetFITLimitScalar | Sets Scalar from 1 to 10 |
0x30 | MessageCount | Get current messages count in the queue |