ТЕХНОЛОГИЯ

Как это работает

Что приложение на самом деле делает с машиной, что оно отказывается делать и как откатывается каждое изменение. Написано, чтобы прочитать до установки, а не после того, как что-то сломалось.

Обновлено: 2026-09-03
Коротко

w0a меняет настройки Windows — значения реестра, планы электропитания, вызовы драйверов. Он ничего не пишет на уровне ядра, не ставит собственный драйвер, не внедряет код в игры и не читает память игр. Каждое изменение реестра и плана электропитания записывается вместе с прежним значением и откатывается в один клик.

Три шага

1. Запусти. Установщика нет: один исполняемый файл, правый клик, «Запуск от имени администратора». Права администратора нужны потому, что меняемые настройки общесистемные — процесс уровня пользователя их не запишет.

2. Сначала измерь. Открой «Бенчмарк», поиграй минуту-другую на той же карте и сними замер до того, как что-то менять. Это шаг, который все пропускают, — и именно поэтому в этой области столько фольклора.

3. Примени и измерь снова. Включи, что хочешь, — по одному переключателю, если хочешь знать, какой из них что дал, — и сними второй замер на той же сцене с теми же внутриигровыми настройками.

Как на самом деле работает откат

Перед записью значения старое читается и добавляется в журнал по пути %ProgramData%\w0a\backup.json — вместе с ключом, именем значения, его типом и отметкой, существовало ли оно вообще. Записи группируются в контрольные точки, и откат к одной из них — это возврат к тому моменту, а не выборочная отмена: вместе с ней откатывается каждое изменение, сделанное после неё, включая более поздние контрольные точки, — ровно это и говорит подтверждение перед запуском.

Журнал живёт в %ProgramData%, а не в твоём профиле пользователя, потому что откат выполняется с повышенными правами и берёт инструкции из этого файла. По той же причине файл — не произвольный скрипт: откатить можно только пути из белого списка, вшитого в приложение, поэтому подделанный журнал нельзя использовать, чтобы записать что-то туда, куда не следует.

Страница Fix — вторая половина, и от журнала она не зависит вовсе. Почти каждая карточка безусловно записывает обратно дефолт Windows — так что машину можно починить, даже если w0a её никогда не трогал, если журнал удалён или если значение поменяло что-то другое. Единственное исключение — карточка CS2: параметры запуска и autoexec — твои собственные файлы, и дефолта Windows, который можно было бы вернуть, у них нет, поэтому эта карточка возвращает копии .w0a.bak, сделанные w0a, и не делает вообще ничего, если их нет. Поэтому же странице Fix разрешено удалять значения, которые остальному приложению писать нельзя.

Полная процедура отката, шаг за шагом

Что он отказывается делать и почему

Никаких значений уровня ядра. Ключи уровня ядра — paging executive, large system cache, использование памяти NTFS, запросы разрешения таймера — отклоняются сразу, а если такой когда-нибудь добавят, тест в сборке упадёт. За страницей Fix сохраняется право удалять три из них — paging executive, использование памяти NTFS и запросы разрешения таймера, — потому что старую установку от какого-нибудь другого инструмента должно быть можно починить. Large system cache отклоняется и дальше не трогается вовсе: не пишется никогда и не удаляется тоже.

Никаких ключей MPO и TDR. Тестовый режим оверлеев, отключение оверлеев, задержка TDR и уровень TDR не пишутся. На реальной машине они замораживали CS2, а страница реестра возвращает TdrDelay обратно к дефолту Windows, вместо того чтобы его поднимать.

Никаких инъекций, никакой памяти игр. В игровой процесс ничего не загружается, и ничто его не читает. Игровых файлов записывается три и больше никаких: конфиг CS2 и параметры запуска Steam, которые ты сам просишь на странице «Параметры запуска», и файл видеонастроек CS2 на странице «Настройки видео». Каждый из них, прежде чем его тронут, копируется рядом в .w0a.bak. Обещать что-то от имени какого-либо разработчика античитов мы всё равно не можем — но ничего из поведения, которое они ищут, у этой программы нет.

Никакого собственного драйвера. Температуре CPU и таймингам RAM нужны чтения ring-0, которых Windows не даёт. Для них — и только с твоего одобрения — ставится подписанный драйвер PawnIO: он читает и никогда не пишет. Откажешься — эти два показания просто будут недоступны.

Как он измеряет

Время кадров берётся из собственного потока событий Windows. Ни оверлея, ни хуков, ни внедрённой DLL: потребляются те же события, которые операционная система и так испускает, и превращаются в средний FPS, 1% low и фризы в минуту. Важная цифра именно 1% low — средний может расти, а игра при этом ощущаться хуже, и ровно этот случай одна средняя цифра скрывает.

Задержка ввода измеряется по реальному движению мыши: интервал отчётов замеряется по мере их прихода, так что показанная частота опроса — то, что устройство реально выдаёт, а не то, что написано на коробке. Рядом сэмплируется время DPC и ISR каждого драйвера на машине — именно это позволяет отследить фриз до вызвавшего его драйвера, а не гадать.

«До» и «после» идут парой. Результаты хранятся парами, и сравнение предлагается, только когда есть оба замера. Число, которое не с чем сравнить, ничего не доказывает.

Как читать цифры задержки

Порядок установки, за которым стоит стабильный 1% low, и как перепроверить в нём каждую цифру

Почему он замолкает во время матча

Чтение графического датчика берёт блокировку внутри графического ядра. Опрос каждые две секунды при запущенной игре давал видимый фриз на реальной машине — инструмент, обещающий более плавные кадры, сам их отнимал. Поэтому вопрос не в том, впереди ли игра, а в том, запущена ли она вообще: свёрнутая по Alt-Tab игра всё равно рисует кадры, и чтение, сделанное, пока ты сидишь в браузере, стоит ей той же блокировки адаптера, что стоило бы посреди боя. Опрос железа останавливается на всё время, пока игра запущена, и возобновляется, когда она закрывается. То же правило действует для сканов шин и обходов процессов.

Всё стартует выключенным

На свежей установке все фоновые движки выключены — поднятие приоритета, балансировка фона, зарезервированные ядра, удержание индексатора, страж сна. Каждый — твоё осознанное решение, на своём отдельном переключателе, и каждый говорит, что сделает, прежде чем это сделать. Движок, проваливший пять проходов подряд, останавливает сам себя и объясняет почему, вместо того чтобы тихо сбоить до конца сессии.

Что не измеряется и что не обещается

Насколько всё это поможет, зависит от машины, игры и сетевого маршрута, и w0a не делает вид, что это не так. Нигде в продукте нет обещания «10x FPS». Сетевые изменения не улучшат уже забитый маршрут; процессор, упёршийся в свой лимит мощности, не поднимет частоту оттого, что сменился план. То, что инструмент гарантирует, куда скромнее — и проверяемо: он говорит, что именно изменил, больше ничего не менял и может вернуть каждое из этих изменений назад.

Посмотреть, что входит → Скачать