Application Windows (.exe autonome) pour appliquer des profils BIOS optimisés
sur une carte ASUS ROG STRIX X870-A GAMING WIFI équipée d'un Ryzen 7 9800X3D,
via l'utilitaire AMI SCEWIN.
L'app permet de :
- Importer l'état réel du BIOS (export live SCEWIN, jamais un fichier obsolète) ;
- parcourir des catégories de réglages (Système/Latence, CPU/PBO, Mémoire DDR5, PCIe) avec, pour chaque option, une description explicative et un niveau de risque ;
- voir précisément quels paramètres seront modifiés (valeur actuelle → cible) avant d'écrire ;
- appliquer la sélection (sauvegarde automatique + vérification post-écriture) ;
- restaurer l'état précédent en un clic.
Interface Fluent / Windows 11 (WPF + WPF-UI), thème sombre, Mica.
⚠️ Modifier le BIOS comporte des risques (instabilité, no-boot). L'app crée une sauvegarde avant chaque écriture, mais un clear CMOS reste le filet de sécurité ultime. Un redémarrage est nécessaire pour que les changements prennent effet.
- L'app embarque
SCEWIN_64.exe+ ses drivers (amifldrv64.sys,amigendrv64.sys). Au premier lancement ils sont extraits dans%LOCALAPPDATA%\BiosTuner\scewin. - Importer →
SCEWIN_64.exe /O /Sexporte toutes les variables Setup dans un fichier texte, que l'app parse en blocsSetup Question. - Le catalogue (
catalog/catalog.json) décrit les réglages. Chaque tweak cible un ou plusieurs paramètres parquestion+(token, offset).Les tokens ne sont pas uniques (mêmes numéros réutilisés dans plusieurs menus : AMD CBS, AMD Overclocking, ASUS Ai Tweaker). Le couple
(token, offset)désambiguïse. - Aperçu calcule le diff sans rien écrire.
- Appliquer : ré-export frais → réécriture des lignes →
SCEWIN_64.exe /I /S(import) → ré-export → vérification ligne par ligne. Tous les artefacts (before/target/after/plan.csv) sont conservés dans%LOCALAPPDATA%\BiosTuner\runs\<horodatage>_<action>.
Les réglages PBO / Curve Optimizer sont pilotés uniquement dans le menu AMD Overclocking. Les copies du menu ASUS Ai/Extreme Tweaker sont remises sur Auto (tweak « Neutraliser les copies ASUS ») pour éviter tout état ambigu.
| Catégorie | Contenu | Risque |
|---|---|---|
| Système & Latence | ReBAR, C-states, virtualisation, TSME, iGPU, ASPM, Spread Spectrum, firmware sécurité | Sûr → Moyen |
| CPU – PBO (AMD OC) | PBO Advanced + Scalar 3X, Boost +200 MHz, Curve Optimizer −30, neutralisation ASUS | Sûr → Élevé |
| Mémoire DDR5 | Latence (UCLK/Gear Down…), FCLK 2067→2167 (exclusifs), tREFI, tWR, Nitro | Expérimental |
| PCIe | PSPP, Extended Tag, Gen5 link mode… | Expérimental |
Les paliers FCLK et tREFI sont mutuellement exclusifs (radio) : sélectionner l'un désélectionne l'autre.
Un tweak activé écrit ses valeurs cibles. Un tweak désactivé remet chaque réglage qu'il occupe encore à la valeur par défaut du BIOS — il n'y a donc pas de catégorie « annuler » : pour défaire un réglage, on le désactive.
Un tweak désactivé qui n'est pas appliqué n'écrit rien : le plan ne contient que de vrais changements. Les tweaks activés sont prioritaires — un paramètre revendiqué par un tweak actif n'est jamais réinitialisé par un tweak désactivé qui le partage (cas des paliers FCLK).
La valeur par défaut est résolue dans cet ordre :
- le champ
defaultde la règle, danscatalog.json; - la ligne
BIOS Defaultque SCEWIN exporte pour ce paramètre ; - l'option libellée
Auto, si elle existe.
Si aucune des trois n'est disponible, l'app n'invente rien : le paramètre est laissé tel quel et signalé comme tel dans l'Aperçu et dans le pied de fenêtre. C'est le cas d'une trentaine d'entrées AMD CBS (états D3 du SOC, USB4, power gating) que ce firmware n'expose pas.
Sur le BIOS 2402 de la machine cible, 179 règles se répartissent ainsi : 89 défauts fournis par
le BIOS, 10 par le catalogue, 10 via une option Auto, 24 sans valeur par défaut connue.
À utiliser en cas de BSOD CLOCK_WATCHDOG_TIMEOUT (0x101), de WHEA 0x124, ou de freeze
sous charge en rafales (builds Node/Vite/TypeScript) : désactivez les tweaks en cause, appliquez,
redémarrez. Voir
analysis/CLOCK_WATCHDOG_TIMEOUT_2026-07-26.md
pour la chaîne causale et l'ordre recommandé.
Le catalogue peut être édité sans recompiler : placez un catalog.json à côté de l'exe,
il prime sur la version embarquée.
dotnet publish src/Bios.App/Bios.App.csproj -c Release -r win-x64 -o publishProduit un unique publish/BiosTuner.exe (self-contained, aucune install .NET requise).
Le workflow .github/workflows/build.yml est entièrement automatisé :
chaque push sur main déclenche une nouvelle version, sans action manuelle.
À chaque push sur main, le workflow :
- versionne automatiquement :
v1.0.<numéro de run>(monotone, injecté aussi dans l'exe) ; - construit le
BiosTuner.exesingle-file surwindows-latest; - crée le tag et la Release GitHub avec l'exe attaché (notes générées auto) ;
- nettoie : supprime les anciennes releases + tags (ne garde que la dernière), tous les caches Actions, tous les artifacts, et les runs au-delà des 10 plus récents.
Aucun git tag manuel n'est nécessaire — il suffit de pousser sur main.
Double-cliquer BiosTuner.exe. L'app demande l'élévation administrateur
(obligatoire : SCEWIN charge des drivers noyau et écrit des variables UEFI).
Workflow recommandé :
- Importer le BIOS actuel
- cocher les réglages voulus (commencer par Recommandé)
- Aperçu pour vérifier le diff
- Appliquer
- Redémarrer, puis valider la stabilité (Observateur d'événements → aucun WHEA-Logger, y-cruncher / OCCT / TM5).
ASUS ROG STRIX X870-A GAMING WIFI / Ryzen 7 9800X3D / RTX 5070 / 4× DDR5-6200 (DOCP I, CL30, 1.35 V)
Le catalogue (tokens/offsets) est spécifique à ce BIOS. Sur un autre firmware,
ré-exportez et ré-adaptez catalog.json.
Le code de cette application est sous licence MIT (voir LICENSE).
ami*.sys sont des outils propriétaires AMI,
inclus ici uniquement pour un usage personnel sur la machine cible. Ils ne sont pas
couverts par la licence MIT. Si vous publiez ce dépôt, vérifiez vos droits de redistribution
de ces binaires (ou retirez-les de tools/scewin/ et fournissez-les séparément).