w0a mění nastavení Windows — hodnoty registru, plány napájení, volání ovladačů. Nezapisuje nic na úrovni kernelu, neinstaluje žádný vlastní ovladač, neinjektuje kód do her a nečte herní paměť. Každá změna registru a plánu napájení se zaznamená i s hodnotou, která tam byla předtím, a vrátí se jedním kliknutím.
Tři kroky
1. Spusť ho. Žádný instalátor: jeden spustitelný soubor, pravý klik, „Spustit jako správce“. Práva správce jsou potřeba, protože měněná nastavení platí pro celý počítač — proces běžící pod uživatelem je zapsat nemůže.
2. Nejdřív měř. Otevři Benchmark, zahraj minutu dvě na stejné mapě a udělej záznam, než cokoli změníš. Tenhle krok lidi přeskakují — a právě proto je v téhle oblasti tolik folklóru.
3. Aplikuj a změř znovu. Zapni, co chceš — po jednom přepínači, jestli chceš vědět, který udělal co — a udělej druhý záznam na stejné scéně se stejným nastavením ve hře.
Jak vracení zpět doopravdy funguje
Než se hodnota zapíše, ta stará se přečte a připojí do logu v %ProgramData%\w0a\backup.json — spolu s klíčem, názvem hodnoty, jejím typem a informací, jestli vůbec existovala. Zápisy se skládají do checkpointů a návrat k některému z nich není výběr jednotlivostí, ale návrat do toho okamžiku: vrátí se s ním každá změna provedená potom — pozdější checkpointy včetně — a přesně tohle říká potvrzovací okno, ještě než se to spustí.
Log leží v %ProgramData%, ne v tvém uživatelském profilu, protože vracení běží se zvýšenými právy a instrukce si bere právě z tohohle souboru. Ze stejného důvodu ten soubor není volný skript: vrátit jdou jen cesty z allow-listu zkompilovaného přímo do aplikace, takže zmanipulovaný log nejde použít k zápisu někam, kam nemá.
Stránka Fix je druhá polovina a na logu nezávisí vůbec. Skoro každá karta bezpodmínečně zapíše zpět výchozí hodnotu Windows — takže počítač jde opravit, i když se ho w0a nikdy nedotkl, i když byl log smazán, i když hodnotu změnilo něco jiného. Jedinou výjimkou je karta CS2: spouštěcí parametry a autoexec jsou tvoje vlastní soubory, u kterých není žádná výchozí hodnota Windows, kterou by šlo obnovit, takže tahle karta vrací zpět kopie .w0a.bak, které w0a udělal, a když tam nejsou, neudělá vůbec nic. Právě proto smí stránka Fix mazat hodnoty, které zbytek aplikace zapisovat nesmí.
Celý postup vracení zpět, krok za krokem
Co odmítá dělat a proč
Žádné hodnoty na úrovni kernelu. Klíče na úrovni kernelu — paging executive, large system cache, využití paměti NTFS, požadavky na rozlišení časovače — jsou rovnou odmítnuty a test v buildu selže, kdyby se některý kdy přidal. Stránka Fix si nechává právo tři z nich smazat — paging executive, využití paměti NTFS a požadavky na rozlišení časovače — protože stará instalace po nějakém jiném nástroji musí jít opravit. Large system cache se odmítne a pak se nechá být: nikdy se nezapisuje a nemaže se ani ona.
Žádné klíče MPO ani TDR. Overlay test mode, vypnutí overlayů, TDR delay ani TDR level se nezapisují. Na reálném stroji kvůli nim CS2 zamrzalo — a stránka registru vrací TdrDelay zpět na výchozí hodnotu Windows, místo aby ho zvyšovala.
Žádná injekce, žádná herní paměť. Do herního procesu se nic nenahrává a nic ho nečte. Zapisují se tři herní soubory a žádné jiné: config CS2 a spouštěcí parametry Steamu, o které si řekneš na stránce Možnosti spuštění, a soubor s nastavením videa CS2 na stránce Nastavení obrazu. Každý se předtím, než se na něj sáhne, zkopíruje vedle do .w0a.bak. Za žádného výrobce anti-cheatu slibovat nemůžeme — ale nic z chování, po kterém pátrají, tenhle program nedělá.
Žádný vlastní ovladač. Teplota CPU a časování RAM vyžadují čtení v ring-0, které Windows nezpřístupňuje. Pro ně — a jen když to schválíš — se nainstaluje podepsaný ovladač PawnIO: čte a nikdy nezapisuje. Když ho odmítneš, tyhle dva údaje prostě nebudou dostupné.
Jak měří
Frame timy pocházejí z vlastního event streamu Windows. Žádný overlay, žádný hook, žádná injektovaná DLL: konzumují se stejné události, které operační systém stejně vysílá, a převádějí se na průměrné FPS, 1% low a záseky za minutu. Číslo, na kterém záleží, je 1% low — průměr může stoupnout, zatímco hra působí hůř, a přesně tenhle případ samotný průměr schová.
Vstupní latence se měří z reálného pohybu myši: interval reportů se stopuje, jak přicházejí, takže zobrazený polling rate je to, co zařízení opravdu dodává, ne co tvrdí jeho krabice. Vedle toho se vzorkují DPC a ISR časy každého ovladače v počítači — právě díky tomu jde zásek dohledat k ovladači, který ho způsobuje, místo aby se jen hádalo.
Před a po jdou v páru. Výsledky se ukládají jako dvojice a srovnání se nabídne, jen když existují oba záznamy. Číslo, se kterým není co porovnat, není důkazem ničeho.
Pořadí instalace, které stojí za stabilním 1% low, a jak si každé číslo v něm ověřit znovu
Proč během zápasu ztichne
Čtení grafického senzoru bere zámek uvnitř grafického jádra. Dotazování každé dvě sekundy při běžící hře vyvolalo na reálném stroji viditelný zásek — nástroj slibující plynulejší snímky sám snímky stál. Otázka proto nezní, jestli je hra v popředí, ale jestli vůbec běží: alt-tabnutá hra pořád renderuje a čtení provedené ve chvíli, kdy sedíš v prohlížeči, ji stojí přesně ten zámek adaptéru, který by ji stálo uprostřed přestřelky. Dotazování hardwaru se zastaví na celou dobu, kdy je hra spuštěná, a pokračuje, až když se zavře. Stejné pravidlo platí pro skenování sběrnic a procházení procesů.
Všechno startuje vypnuté
Po čisté instalaci je každý engine na pozadí vypnutý — zvedání priority, balancování pozadí, vyhrazená jádra, přidržení indexeru, hlídač uspání. Každý je vědomá volba, kterou děláš ty, na vlastním přepínači, a každý řekne, co udělá, ještě než to udělá. Engine, kterému pětkrát po sobě selže průchod, se sám zastaví a řekne proč, místo aby po zbytek relace potichu selhával.
Co se neměří a co se neslibuje
Kolik ti tohle všechno pomůže, závisí na počítači, hře a síťové trase — a w0a nepředstírá opak. Nikde v produktu nenajdeš tvrzení typu „10x FPS“. Síťové změny nevylepší trasu, která je už nasycená; procesor, který už sedí na svém power limitu, se kvůli změně plánu výš netaktne. To, co nástroj garantuje, je užší a ověřitelné: řekne, co změnil, nezměnil nic jiného a každou z těch změn umí vrátit zpět.