w0a modifie des paramètres Windows — valeurs du registre, plans d'alimentation, appels de pilotes. Il n'écrit rien au niveau kernel, n'installe aucun pilote à lui, n'injecte aucun code dans les jeux et ne lit aucune mémoire de jeu. Chaque modification du registre ou d'un plan d'alimentation est enregistrée avec la valeur qui était là avant, et s'annule en un clic.
Trois étapes
1. Lance-le. Pas d'installeur : un seul exécutable, clic droit, « Exécuter en tant qu'administrateur ». Les droits administrateur sont nécessaires parce que les paramètres modifiés valent pour toute la machine — un processus au niveau utilisateur ne peut pas les écrire.
2. Mesure d'abord. Ouvre Benchmark, joue une minute ou deux sur la même map, et prends une capture avant de changer quoi que ce soit. C'est l'étape que tout le monde saute, et c'est pour ça qu'une si grande partie de ce domaine tient du folklore.
3. Applique, puis remesure. Active ce que tu veux — un réglage à la fois si tu veux savoir lequel a fait quoi — et prends une seconde capture sur la même scène, avec les mêmes paramètres en jeu.
Comment l'annulation fonctionne vraiment
Avant d'écrire une valeur, l'ancienne est lue et ajoutée à un journal dans %ProgramData%\w0a\backup.json, avec la clé, le nom de la valeur, son type, et le fait qu'elle existait ou non. Les écritures sont groupées en points de contrôle : un lot appliqué mardi peut être annulé d'un bloc sans toucher à ce que tu as fait mercredi.
Le journal vit dans %ProgramData% plutôt que dans ton profil utilisateur parce que l'annulation s'exécute avec élévation et tire ses instructions de ce fichier. Pour la même raison, le fichier n'est pas un script libre : seuls les chemins d'une liste d'autorisation compilée dans l'application peuvent être annulés, donc un journal trafiqué ne peut pas servir à écrire là où il ne devrait pas.
La page Fix est la seconde moitié, et elle ne dépend pas du tout du journal. Chaque carte réécrit la valeur par défaut de Windows sans condition — une machine peut donc être réparée même si w0a n'y a jamais touché, si le journal a été supprimé, ou si autre chose a changé la valeur. C'est aussi pour ça que la page Fix a le droit de supprimer des valeurs que le reste de l'application n'a pas le droit d'écrire.
La procédure d'annulation complète, étape par étape
Ce qu'il refuse de faire, et pourquoi
Aucune valeur de niveau kernel. Les clés de gestion mémoire du Session Manager — paging executive, large system cache, usage mémoire NTFS, requêtes de résolution du timer — sont refusées d'office, et un test du build échoue si l'une d'elles est un jour ajoutée. La page Fix garde le droit de les supprimer, parce qu'une vieille installation laissée par un autre outil doit rester réparable.
Aucune clé MPO ou TDR. Le mode test des overlays, leur désactivation, le délai TDR et le niveau TDR ne sont pas écrits. Sur une vraie machine, ils ont gelé CS2, et la page registre ramène TdrDelay en arrière, à la valeur par défaut de Windows, plutôt que de l'augmenter.
Pas d'injection, pas de mémoire de jeu. Rien n'est chargé dans un processus de jeu et rien n'en lit un. Les seuls fichiers de jeu écrits sont la config CS2 et les options de lancement Steam que tu demandes sur la page Options de lancement, et les deux sont d'abord sauvegardés. Nous ne pouvons rien promettre au nom d'un éditeur d'anti-cheat — mais aucun des comportements qu'ils recherchent n'est un comportement de ce programme.
Aucun pilote à lui. La température CPU et les timings RAM exigent des lectures ring-0 que Windows n'expose pas. Pour cela, et seulement si tu l'approuves, le pilote signé PawnIO est installé — il lit et n'écrit jamais. Refuse-le et ces deux lectures sont simplement indisponibles.
Comment il mesure
Les frame times viennent du flux d'événements de Windows lui-même. Pas d'overlay, pas de hook, pas de DLL injectée : les événements que le système émet déjà sont consommés et convertis en FPS moyens, 1% low et stutters par minute. Le 1% low est le chiffre qui compte — une moyenne peut monter pendant que le jeu se dégrade, et c'est exactement le cas qu'une moyenne seule cache.
La latence d'entrée est mesurée sur de vrais mouvements de souris : l'intervalle des rapports est chronométré à leur arrivée, donc le taux de polling affiché est ce que le périphérique délivre vraiment, pas ce que sa boîte prétend. À côté, le temps DPC et ISR de chaque pilote de la machine est échantillonné — c'est ce qui permet de remonter d'un stutter jusqu'au pilote qui le cause au lieu de le deviner.
Avant et après vont par paires. Les résultats sont stockés en paires, et une comparaison n'est proposée que si les deux captures existent. Un chiffre sans rien à quoi le comparer ne prouve rien.
Comment lire les chiffres de latence
Pourquoi il se tait pendant une partie
Lire un capteur graphique prend un verrou à l'intérieur du noyau graphique. Sonder toutes les deux secondes pendant qu'un jeu tourne a produit un accroc visible sur une vraie machine — l'outil qui promettait des frames plus fluides coûtait lui-même des frames. Le polling matériel s'arrête donc dès qu'une application plein écran passe au premier plan, et reprend quand ce n'est plus le cas. La même règle vaut pour les scans de bus et les parcours de processus.
Tout démarre désactivé
Sur une installation fraîche, chaque moteur d'arrière-plan est désactivé — élévation de priorité, équilibrage d'arrière-plan, cœurs réservés, blocage de l'indexeur, garde anti-veille. Chacun est un choix délibéré fait par toi, sur son propre interrupteur, et chacun dit ce qu'il va faire avant de le faire. Un moteur qui rate cinq passes d'affilée s'arrête de lui-même et dit pourquoi, plutôt que d'échouer en silence pour le reste de la session.
Ce qui n'est pas mesuré, et ce qui n'est pas promis
Le gain réel dépend de la machine, du jeu et de la route réseau, et w0a ne prétend pas le contraire. Il n'y a aucune promesse de « FPS x10 » nulle part dans le produit. Les réglages réseau ne peuvent pas améliorer une route déjà saturée ; un CPU déjà à sa limite de puissance ne montera pas plus haut parce qu'un plan a changé. Ce que l'outil garantit est plus étroit et vérifiable : il dit ce qu'il a changé, il n'a rien changé d'autre, et il peut ramener chacune de ces modifications à son état d'avant.