You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Public library API: from zenmaster import detect, apply, runner, smu, CpuInfo
runner.is_flag_arg() to query args that take no value
vrmcvip-current (VanGogh) for full RyzenAdj arg parity
Changed
Linux PCI backend now probes writability with a 0x47 register round-trip
(like UXTU4Linux) instead of only checking that the config file exists, so a
non-writable bus (no root, lockdown) fails at init with a clear message
Unified project description to "Adjust power management settings for Ryzen
CPUs on Linux and Windows"
Rewrote README with a fuller overview, compatibility table, and an accurate
RyzenAdj comparison
Args that require a value now report an error (or show help on the CLI)
when passed without =value, instead of silently sending 0
apply() results always include a consistent set of keys (error is None on success), making the return shape stable for consumers
Argument names are normalised to lowercase/hyphen form in apply() results
Modernised packaging to PEP 639 SPDX license metadata
Fixed
Windows PM table read now aborts if the final table-transfer retry is still
rejected, instead of reading stale/garbage physical memory
Windows SMU polling sleeps briefly after a fast initial spin, avoiding a busy
loop that pinned a core while waiting for the mailbox
--skin-temp-limit (a power limit in mW) is no longer multiplied by 256;
only the temperature args apu-skin-temp and dgpu-skin-temp are scaled,
matching RyzenAdj
Negative values (e.g. Curve Optimiser --set-coall=-20) now wrap to
unsigned 32-bit like RyzenAdj, instead of being clamped to 0
Flag args (--max-performance, --enable-oc, …) always send 0, ignoring any
value passed, matching RyzenAdj's boolean handling
smu.send_* now raise a clear error if called before smu.init()
smu.init() is idempotent and no longer leaks the Windows PawnIO handle
CLI shows help for a malformed argument before requiring root