Skip to content

Releases: heraklessii/Muifly

v0.5.0 — Faz 5: ekran çevirisi

Choose a tag to compare

@heraklessii heraklessii released this 02 Sep 22:00

Bu bir yayın değil. Depo private, kod imzalama sertifikası hâlâ yok
(ROADMAP M3), kurulum imzasız. Paketler iç doğrulama içindir.

Faz 5 — ekran çevirisi (kararlar #30, #37)

Kısayola basıldığında ekranın seçilmiş bir bölgesi yakalanıyor, OCR'dan
geçiyor, yerel bir modelle çevriliyor ve üstüne bir overlay olarak
yazılıyor. Varsayılan kapalı, model ikiliye girmiyor — isteğe bağlı
iniyor.

Bu, üçüne eş sayılan dördüncü bir modül değil: ürünün kimliği hâlâ "System
Boost + Network Boost + Scaling'i tek araçta birleştirmek".

Faz iki turda yazıldı. Karar #30 yakalamaya dokunmayan dört parçayı
(önişleme, sözlük, bellek, OCR dil modeli) önceden yazmıştı; karar #37
kalanını yazdı: yakalama, OCR, kısayol, overlay, alan seçici, model
indirme, çıkarım, arayüz. Karar #30'un ayrım testi tuttu — eski dört
parçanın hiçbiri yeniden yazılmadı.

Ölçülmemiş bir varsayım çürüdü

Karar #30, terim işareti olarak [[0]] seçmişti ve bunu ölçmemişti.
Gerçek modelde işaret [0] olarak çıkıyordu — yani korunması gereken terim
sessizce bozuluyordu. On beş aday ölçüldü, #0# seçildi. Ölçüm testi
--ignored olarak duruyor, silinmedi.

Model bu makinede uçtan uca koştu: yükleme 1,7 s, cümle başına 78-243 ms.
Karar #29'un listelediği üç zaafın üçü de beklenen davranışı gösterdi.

Karar #34'ün dersi iki yeni pencerede uygulandı

Ölçekleme penceresi bir kez makineyi kullanılamaz hâle getirmişti. İki yeni
pencere o listeyi tek tek kırıyor: overlay ekranın bir bölümünü kaplıyor ve
kapatma düğmesi gerçekten tıklanabiliyor; alan seçici Esc ile kapanıyor ve
Esc dinleyicisi ekran görüntüsü gelmeden önce de duruyor.

Çeviri kısayolu kaydedilemezse özellik hiç açılmıyor — kısayolsuz bir
ekran çevirisi, oyunun içindeyken tetiklenemez.

Rekabetçi modda kapatılmadı, ve bu ölçekleme/kare üretiminden bilinçli
bir fark: ikisi her karede gecikme ekliyor, çeviri kullanıcı tuşa
bastığında bir kez çalışıyor.

Bedeli gizlenmiyor

  • İkili 8,69 → 31,81 MiB (ONNX Runtime statik bağlı). load-dynamic
    alternatifi reddedildi: indirilen şey veri değil kod olurdu — imzalı bir
    kurulumun yanına imzasız bir ikili.
  • Model dosyaları ~507 MiB ve kuruluma girmiyor. Her dosyanın
    boyutu ve SHA-256'sı kodda sabit.
  • HTTP kasası eklenmedi: TLS, sertifika deposu, vekil ve yönlendirme
    WinHTTP'ye bırakıldı. SHA-256 elle yazıldı, testi FIPS 180-4'ün kendi
    örnekleriyle — ve bu test gerçek bir hatayı yakaladı (64 bayta
    bölünmeyen parçalarda özet sessizce yanlış çıkıyordu).

Denenmemiş olan

Hiçbiri gerçek bir oyunda denenmedi. Kısayol, overlay, alan seçici ve
ürünün kendi indirme yolu hiç çalıştırılmadı; bu oturumda model dosyaları
curl ile inmişti. OCR külliyatı hâlâ sentetik.

Faz 1'in saha doğrulaması üçüncü kez ertelendi. Karar #33 bunu "emsal
değil" diye kayda geçirmişti; üçüncü tekrarda artık bir borç.

Bu paketlerin doğrulanması

Kontrol Sonuç
npm test 79/79
cargo test 473/473 (5 --ignored)
cargo test --features demo 473/473
cargo clippy --all-targets --features olcum-yardimcisi -D warnings temiz
Ölçüm yardımcısı (muifly-olcum.exe) iki kurulumda da var evet

SHA-256:

c2d1fd6fb0736be50b620e5af29e21d32d9a1ef455595dc5b05a81f071952d6c  Muifly_0.5.0_x64-setup.exe
487f5f3848676215a0d3622824a3fa6b60047a5ae05da6add6adf7f032145724  Muifly_0.5.0_x64_en-US.msi

v0.4.0 — Faz 4a: kare üretimi

Choose a tag to compare

@heraklessii heraklessii released this 02 Sep 01:33

Bu bir yayın değil. Depo private, kod imzalama sertifikası hâlâ yok
(ROADMAP M3), kurulum imzasız. Paketler iç doğrulama içindir.

Faz 4a — kare üretimi (karar #35)

İki gerçek kare arasına, ikisinden hesaplanmış bir kare koyan boru hattı.
ML yok, model yok, indirilen ağırlık yok.

Yol haritası Faz 4'ü tek parça "ML tabanlı frame generation" olarak
tanımlıyordu ve fazı yanlış çerçeveliyordu: kare üretimi ML gerektirmiyor
— referans aldığımız aracın ilk kare üreteci de klasik bir algoritmaydı.
Faz ikiye ayrıldı: 4a (klasik) yazıldı, 4b (ML) fizibilitesi yapılıp
gerekçesiyle ertelendi.

Algoritma: parlaklık piramidi → üç seviyeli blok eşleme (16 px blok,
kabadan inceye) → 3×3 ortanca → çift yönlü warp + karışım. Örtüşen
bölgelerde karışım yapılmıyor, en yakın gerçek kareye düşülüyor — sonuç
"yanlış" değil, "üretilmemiş".

Doğruluk gözle değil testle: hareket.rs bilinen bir kaydırma
uygulanmış iki kare verip çıkan vektörü ölçüyor. Gölgelendirici sabitleri
CPU referansıyla test ile bağlı, HLSL'in derlendiği ayrı bir test var.

Bedeli gizlenmiyor

Ara kare, iki gerçek karenin ikisi de elde olmadan hesaplanamaz. Yani
ikinci gerçek kare bir sunum turu bekletilir — kaynak 60 kare/s ise ~17 ms.
Bu bekleme daha hızlı donanımla azalmaz, kare üretiminin tanımında
vardır.

Sonuçları:

  • Varsayılan kapalı
  • Rekabetçi modda kapalı (profil şeması + çalışma zamanı, iki ayrı kapı)
  • Ekran yenileme hızı okunuyor; kaynaktan belirgin olarak hızlı değilse
    kullanıcıya söyleniyor
  • Arayüzde bedel anahtardan önce yazıyor, ve bunu bir test koruyor
  • "Kaç kare/s kazandırır" ölçüsü bilinçli olarak yok — ölçülen şey
    bedel (tasarım ilkesi 4)

Faz 4b (ML) — fizibilite yapıldı, açılmadı

docs/FRAME_GENERATION.md: veri seti, eğitim maliyeti, inference bütçesi
ve dağıtım etkisi. Asıl engel para değil inference: 144 Hz'de 6,9 ms ve
oyunla aynı GPU. Açılmama gerekçesi ise sıralama — 4a sahada
doğrulanmadan onu iyileştirecek bir modele yatırım yapmak, çözülmemiş bir
problemi optimize etmek olur.

Doğrulama durumu

Rust 393 test, arayüz 72 test, clippy temiz. 4a'nın hiçbir parçası
gerçek bir oyunla gözle denenmedi
— birim testleri hareket vektörünün
doğru olduğunu gösteriyor, görüntünün iyi göründüğünü göstermiyor.
docs/tasks.md → Sıradaki 8, on maddelik liste.

Faz 1'in saha doğrulaması hâlâ bekliyor.

Paketler

dosya biçim
Muifly_0.4.0_x64-setup.exe NSIS kurulum
Muifly_0.4.0_x64_en-US.msi MSI

v0.3.1 — Ölçekleme kaçış kısayolu

Choose a tag to compare

@heraklessii heraklessii released this 02 Sep 00:50

Bu bir yayın değil. Depo private, kod imzalama sertifikası hâlâ yok
(ROADMAP M3) ve kurulum imzasız — SmartScreen uyarısı çıkar. Paketler
iç doğrulama içindir.

Düzeltme — ölçekleme artık makineyi kilitlemiyor (karar #34)

0.3.0'da ölçekleme masaüstünde başlatıldığında ekran kaplanıyor ve
kapatmanın hiçbir yolu kalmıyordu; tek çıkış makineyi yeniden başlatmaktı.

Sunum penceresinin beş özelliği tek tek doğruydu ama birlikte
kapatılamayan bir kutu yapıyordu: tam ekran, üstte, odak almayan,
tıklanamayan, Alt+Tab'da görünmeyen. "Durdur" düğmesi ekrandaydı,
kaplamanın altında. Tetikleyen şey hedef pencere bulunamadığında
masaüstünün tamamını ölçekleyen yedek davranıştı — ekranı ekranın
kopyasıyla kaplamak.

Değişenler:

  • Kaçış kısayolu: Ctrl+Alt+Shift+S (meşgulse iki yedek aday).
    RegisterHotKey ile — klavye kancası değil, tuş basışları okunmuyor.
    Kaydedilemezse ölçekleme başlamıyor: kaçış yolu olmayan tam ekran
    kaplama açmak, kullanıcıyı aynı yere geri koyardı.
  • Hedef önde değilken pencere gizleniyor: masaüstünde ve Muifly'a
    bakarken ekran kullanıcıya kalıyor. Hedef unutulmuyor — oyuna
    dönüldüğünde ölçekleme kaldığı yerden sürüyor.
  • Kısayolla durdurma günlüğe yazılıyor (şeffaflık ilkesi).
  • Arayüz kısayolu ölçekleme açılmadan önce de yazıyor.

Doğrulama durumu

Rust 376 test, arayüz 67 test, clippy temiz. Düzeltmelerin hiçbiri
gerçek bir oyunla elle denenmedi
— docs/tasks.md → Sıradaki 7'ye iki
madde eklendi. Faz 1 ve Faz 2'nin bekleyen saha doğrulamaları da yerinde.

Paketler

dosya biçim
Muifly_0.3.1_x64-setup.exe NSIS kurulum
Muifly_0.3.1_x64_en-US.msi MSI

v0.3.0 — Faz 3: ölçekleme

Choose a tag to compare

@heraklessii heraklessii released this 02 Sep 00:16

Bu bir yayın değil. İç kilometre taşı; depo private, indirebilen tek
kişi sensin. Public dağıtım heraklessii/Muifly üzerinden yapılacak ve
hâlâ M3'ü (kod imzalama) bekliyor.

Kurulum

  • Muifly_0.3.0_x64-setup.exe (2,2 MB, NSIS, kullanıcı bazında kurulum)
  • Muifly_0.3.0_x64_en-US.msi (3,3 MB) — ilk kez üretiliyor, aşağıya bak

İkisi de x64 ve tam sürüm, demo değil.

İMZASIZ. Kod imzalama M3'ü bekliyor, o yüzden Windows SmartScreen
"bilinmeyen yayıncı" uyarısı çıkaracak: Daha fazla bilgi → Yine de çalıştır.
Beklenen davranış, kurulumun kendisiyle ilgili bir sorun değil.

Faz 3 — ölçekleme

Ekran okunuyor, büyütülüyor, oyunun üstünde duran bir pencerede gösteriliyor.
Oyunun kendisine dokunulmuyor: belleğine yazılmıyor, çağrıları
yönlendirilmiyor, süreci açılmıyor (tasarım ilkesi 3).

Dört algoritma — tam sayı katı (varsayılan, yeni renk üretmeyen tek yol),
bilinear, Lanczos (a=3), xBR. Çalışırken değiştirilebiliyor, ekran kararmıyor.

Gerçek zamanlı yol GPU'da. CPU mu GPU mu sorusu ölçümle kapandı:
1080p→1440p tek kare, release derlemesi — bilinear 270 ms, Lanczos 208 ms,
xBR 1293 ms. 60 FPS'in kare bütçesi 16,67 ms. Ölçekleme D3D11 piksel
gölgelendiricilerinde ve yakalanan kare hiç CPU'ya inmiyor (karar #32).

Eklenen gecikme ölçülüp gösteriliyor. Ölçekleme her kareye gecikme ekler;
bu bir bedel ve ekranda öyle yazıyor. Kare başına süre, en kötü %1 ve en kötü
tek kare ayrı ayrı duruyor. Tek bir "şu kadar iyileşti" oranı üretilmiyor
(karar #15).

Rekabetçi modda kapalı — kısıtlı değil, kapalı. O mod gecikmeyi en aza
indirmek için var; ölçekleme gecikme ekliyor. Üç kapı: profil dosyası
doğrulaması, profil uygulama yolu, mod geçişi.

Deftere yazmıyor, günlüğe yazıyor. Geri alınacak kalıcı bir iz yok:
açılan tek şey sürecin ömrüyle sınırlı bir pencere. Günlüğe başlangıç,
algoritma ve durma sebebi düşüyor.

Yeni Ölçekleme sekmesi: başlat/durdur, yakalama denemesi, algoritma ve
ekran seçimi, canlı gecikme özeti.

MSI ilk kez üretiliyor

tauri.conf.json başından beri "msi" hedefini listeliyordu ama hiç MSI
çıkmamıştı. Sebep bu sürümde bulundu: tauri build paketin bütün cargo bin
hedeflerini kuruluma koyuyor, externalBin sidecar'ı da aynı dosyayı koyuyor
ve ölçüm yardımcısı iki kez yazılıyordu. NSIS üstüne yazıp geçiyordu, WiX
ICE30 ile reddediyordu.

Yardımcı ikili required-features arkasına alındı; kuruluma giren tek kopya
sidecar'ın kendisi — yani imzalanacak dosya. Bir testle bağlandı, çünkü bu
sorun derleme zamanında değil yalnızca paketleme gününde görünüyor.

Ayrıca bu sürümde

  • Oturum geçmişi (karar #31): biten oyun oturumları diske yazılıyor, düz
    metin rapor olarak dışa aktarılabiliyor. Telemetri değil — dosya kendi
    klasöründe, hiçbir yere gönderilmiyor.
  • Faz 5'in yakalamasız katmanı (karar #30): çeviri önişleme, terim
    sözlüğü, çeviri belleği, OCR dil kontrolü. Motor'a bağlı değil, arayüzü yok.

Ne doğrulandı, ne doğrulanmadı

Boru hattı bu makinede uçtan uca koştu: yakalama açıldı, gölgelendirici
derlendi, kareler çizildi, kırpma öndeki pencerenin istemci alanını buldu.
İlk çalıştırma iki işlevsizlik kusuru gösterdi ve ikisi de düzeltildi
(masaüstünün tamamı ölçekleniyordu; sunum penceresi kendini yakalıyordu).

Gerçek bir oyunda ve gözle denenmedi. Görüntünün doğru göründüğünü,
dört algoritmanın beklenen farkı gösterdiğini, tıklamaların oyuna geçtiğini
birim testleri söyleyemez. Faz 1'in 5-10 oyunluk saha testi de hâlâ yapılmadı;
Faz 3'e onun önüne geçilerek başlandı (karar #33).

Rust 373 test, arayüz 67 test; clippy -D warnings ve cargo fmt temiz,
--features demo yeşil.

v0.2.0 — Faz 2 uçtan uca

Choose a tag to compare

@heraklessii heraklessii released this 01 Sep 16:26

Bu bir yayın değil. İç kilometre taşı; depo private, indirebilen tek
kişi sensin. Public dağıtım heraklessii/Muifly üzerinden yapılacak.

Kurulum

Muifly_0.2.0_x64-setup.exe (2,1 MB, x64, tam sürüm — demo değil).

İMZASIZ. Kod imzalama M3'ü bekliyor, o yüzden Windows SmartScreen
"bilinmeyen yayıncı" uyarısı çıkaracak: Daha fazla bilgi → Yine de çalıştır.
Beklenen davranış, kurulumun kendisiyle ilgili bir sorun değil.

Kurulum kullanıcı bazında (currentUser), yönetici gerekmiyor. Kare ölçümü
kullanıldığında ayrıca UAC istemi çıkar — nedeni istem çıkmadan önce ekranda
yazıyor (karar #17).

Faz 2 uçtan uca kapandı

Kare ölçümü — ETW oturumundan arayüze kadar (kararlar #14, #27):

  • Sağlayıcılar çekirdek tarafında PID süzgeciyle açılıyor
  • Ölçüm ayrı, yükseltilmiş bir yardımcı ikilide (muifly-olcum.exe); sistemde
    hiçbir şey değiştirmiyor, o yüzden geri alma defterine yazacak bir şeyi yok
  • Arayüz, UAC istemi çıkmadan önce yetkinin neden istendiğini gösteriyor
  • Arayüz PID taşımıyor: düğmeye basıldığı anda öndeki pencere Muifly'ın kendisi
    olur, öndeki pencereye bakan bir ölçüm yanlış süreci ölçerdi

Paketleme hatası bulundu ve düzeltildi — ilk kurulum denemesi 249 KB çıktı
ve içinde muifly.exe yoktu: Tauri ana ikili diye ölçüm yardımcısını
paketlemişti (cargo karar #27'den beri iki ikili üretiyor). default-run ile
bağlandı. cargo test ve cargo build yeşilken oluyordu; yalnızca kurulumu
üretip içini açmak gösterdi.

Faz 5 fizibilitesi — OCR (karar #28) ve yerel EN→TR çeviri (karar #29);
ikisi de olumlu, kod yazılmadı.

Bakım — site/README artık olmayan bir demoyu vaat etmiyor; oyun katalogu
53 → 142 ve "fazla genel exe adı" riski testle bağlandı (karar #26 korunuyor).

Durum

  • Rust 257 test, arayüz 46 test, clippy -D warnings ve cargo fmt temiz
  • Sıradaki iş kod değil saha doğrulaması: 5-10 oyunla Faz 1 kabul
    kriterleri, kare ölçümünün oyunun kendi sayacıyla karşılaştırılması