w0a Windows ayarlarını değiştirir — registry değerleri, güç planları, sürücü çağrıları. Kernel seviyesinde hiçbir şey yazmaz, kendine ait sürücü kurmaz, oyunlara kod enjekte etmez ve oyun belleği okumaz. Her registry ve güç planı değişikliği, önceki değeriyle birlikte kaydedilir ve tek tıkla geri alınır.
Üç adım
1. Çalıştır. Kurulumcu yok: tek bir çalıştırılabilir dosya, sağ tık, "Yönetici olarak çalıştır". Yönetici hakkı gerekiyor çünkü değiştirilen ayarlar makine geneli — kullanıcı düzeyinde bir süreç bunları yazamaz.
2. Önce ölç. Benchmark'ı aç, aynı haritada bir iki dakika oyna ve hiçbir şeyi değiştirmeden önce bir kayıt al. Bu, insanların atladığı adım; bu alandaki bilgilerin bu kadarının halk inanışı olmasının sebebi de bu.
3. Uygula, sonra tekrar ölç. İstediklerini aç — hangisinin ne yaptığını bilmek istiyorsan teker teker — ve aynı sahnede, aynı oyun içi ayarlarla ikinci kaydı al.
Geri alma gerçekte nasıl çalışıyor
Bir değer yazılmadan önce eskisi okunur ve %ProgramData%\w0a\backup.json dosyasındaki günlüğe eklenir; anahtar, değer adı, türü ve o değerin zaten var olup olmadığıyla birlikte. Yazmalar kontrol noktalarında gruplanır ve bir noktaya dönmek, seçmece bir geri alma değil o ana dönmektir: o noktadan sonra yapılan her değişiklik — sonraki kontrol noktaları dahil — onunla birlikte geri alınır; onay penceresi de başlamadan önce aynen bunu söyler.
Günlük kullanıcı profilinde değil %ProgramData% altında duruyor, çünkü geri alma yükseltilmiş çalışır ve talimatını o dosyadan alır. Aynı sebeple dosya serbest biçimli bir betik değildir: yalnızca uygulamanın içine derlenmiş izin listesindeki yollar geri alınabilir, yani kurcalanmış bir günlük, olmaması gereken bir yere yazmak için kullanılamaz.
Fix sayfası işin ikinci yarısı ve günlüğe hiç bağlı değil. Kartların hemen hepsi Windows varsayılanını koşulsuz geri yazar — yani makine, w0a hiç dokunmamış olsa da, günlük silinmiş olsa da, değeri başka bir şey değiştirmiş olsa da onarılabilir. Tek istisna CS2 kartı: başlatma seçenekleri ve autoexec senin kendi dosyaların; geri yazılacak bir Windows varsayılanları yok, o yüzden o kart w0a'nın aldığı .w0a.bak kopyalarını geri koyar; kopyalar yoksa hiçbir şey yapmaz. Fix sayfasının, uygulamanın geri kalanının yazamayacağı değerleri silme hakkının olmasının sebebi de bu.
Geri alma prosedürünün tamamı, adım adım
Yapmayı reddettikleri ve nedeni
Kernel seviyesinde değer yok. Kernel seviyesindeki anahtarlar — paging executive, large system cache, NTFS bellek kullanımı, zamanlayıcı çözünürlüğü istekleri — doğrudan reddedilir ve biri eklenirse derlemedeki bir test başarısız olur. Fix sayfası bunlardan üçünü — paging executive, NTFS bellek kullanımı ve zamanlayıcı çözünürlüğü isteklerini — silme hakkını korur, çünkü başka bir aracın bıraktığı eski bir kurulumun onarılabilmesi gerekir. Large system cache ise yalnızca reddedilir ve olduğu gibi bırakılır: ne yazılır, ne de silinir.
MPO ve TDR anahtarları yok. Overlay test modu, overlay kapatma, TDR gecikmesi ve TDR seviyesi yazılmaz. Gerçek bir makinede bunlar CS2'yi dondurdu; registry sayfası TdrDelay'i yükseltmek yerine Windows varsayılanına geri çeker.
Enjeksiyon yok, oyun belleği yok. Oyun sürecine hiçbir şey yüklenmez ve hiçbir şey oyun belleğini okumaz. Yazılan oyun dosyası üç tanedir, başkası yok: Başlatma Seçenekleri sayfasında senin istediğin CS2 ayarı ve Steam başlatma seçenekleri, bir de Görüntü Ayarları sayfasındaki CS2 görüntü ayarları dosyası. Her biri dokunulmadan önce yanına .w0a.bak olarak kopyalanır. Yine de hiçbir anti-cheat üreticisi adına söz veremeyiz — ama aradıkları davranışların hiçbiri bu programda yok.
Kendine ait sürücü yok. CPU sıcaklığı ve RAM zamanlamaları, Windows'un sunmadığı ring-0 okumaları gerektirir. Bunun için, yalnızca sen onaylarsan, imzalı PawnIO sürücüsü kurulur — okur, asla yazmaz. Reddedersen bu iki okuma yalnızca kullanılamaz olur.
Nasıl ölçüyor
Kare süreleri Windows'un kendi olay akışından geliyor. Kaplama yok, kanca yok, enjekte edilen DLL yok: işletim sisteminin zaten yaydığı olaylar tüketiliyor ve ortalama FPS, %1 low ve dakikadaki takılma sayısına çevriliyor. Önemli olan sayı %1 low — ortalama yükselirken oyun daha kötü hissettirebilir ve tek bir ortalamanın gizlediği durum tam olarak budur.
Girdi gecikmesi gerçek fare hareketinden ölçülüyor: raporlar geldikçe aralık zamanlanıyor, yani gösterilen polling hızı cihazın kutusunda yazan değil gerçekten verdiği değer. Yanında, makinedeki her sürücünün DPC ve ISR süresi örnekleniyor; bir takılmanın tahmin edilmek yerine sebebi olan sürücüye kadar izlenebilmesini sağlayan şey bu.
Önce ve sonra eşleniyor. Sonuçlar çift olarak saklanıyor ve karşılaştırma yalnızca iki kayıt da varsa sunuluyor. Karşılaştıracak bir şeyi olmayan bir sayı hiçbir şeyin kanıtı değildir.
Gecikme değerleri nasıl okunur
Kararlı bir %1 low'un arkasındaki kurulum sırası ve içindeki her sayının nasıl yeniden doğrulanacağı
Maç sırasında neden susuyor
Bir grafik sensörünü okumak, grafik çekirdeğinin içindeki bir kilidi alır. Oyun çalışırken iki saniyede bir yoklama yapmak gerçek bir makinede görülebilir bir takılma üretti — daha akıcı kare vaat eden araç, kendisi kare götürüyordu. Bu yüzden soru oyunun önde olup olmadığı değil, hiç çalışıp çalışmadığı: alt-tab'lanmış bir oyun da render etmeye devam eder ve sen tarayıcıya bakarken yapılan bir okuma, ona maçın ortasındakiyle aynı adaptör kilidine mal olur. Donanım yoklaması oyun açık kaldığı sürece durur ve oyun kapanınca devam eder. Aynı kural veri yolu taramaları ve süreç yürüyüşleri için de geçerli.
Her şey kapalı başlıyor
Yeni kurulumda tüm arka plan motorları kapalı — öncelik yükseltme, arka plan dengeleme, ayrılmış çekirdekler, indeksleyici tutma, uyku koruması. Her biri senin verdiğin bilinçli bir karar, kendi anahtarında, ve her biri ne yapacağını yapmadan önce söylüyor. Art arda beş geçişte başarısız olan bir motor kendini durduruyor ve oturumun geri kalanında sessizce başarısız olmak yerine nedenini söylüyor.
Neyin ölçülmediği ve neyin vaat edilmediği
Bunların ne kadar fayda vereceği makineye, oyuna ve ağ rotasına bağlı; w0a bunun aksini iddia etmiyor. Üründe hiçbir yerde "10 kat FPS" iddiası yok. Ağ ayarları zaten doymuş bir rotayı iyileştiremez; güç limitinde oturan bir işlemci, plan değişti diye daha yükseğe çıkmaz. Aracın garanti ettiği şey daha dar ve denetlenebilir: neyi değiştirdiğini söyler, başka bir şeyi değiştirmez ve bu değişikliklerin her birini geri koyabilir.