From f6b6a856a4173559ed42e8b45907fd1e8c673509 Mon Sep 17 00:00:00 2001 From: Pavel Barabanov Date: Wed, 30 Jul 2025 23:51:20 +0200 Subject: [PATCH 1/7] [android] Early release fences option fix and translations (#167) Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/167 Co-authored-by: Pavel Barabanov Co-committed-by: Pavel Barabanov --- src/android/app/src/main/res/values-ar/strings.xml | 2 ++ src/android/app/src/main/res/values-ckb/strings.xml | 2 ++ src/android/app/src/main/res/values-cs/strings.xml | 2 ++ src/android/app/src/main/res/values-de/strings.xml | 2 ++ src/android/app/src/main/res/values-es/strings.xml | 2 ++ src/android/app/src/main/res/values-fa/strings.xml | 2 ++ src/android/app/src/main/res/values-fr/strings.xml | 2 ++ src/android/app/src/main/res/values-he/strings.xml | 2 ++ src/android/app/src/main/res/values-hu/strings.xml | 2 ++ src/android/app/src/main/res/values-id/strings.xml | 2 ++ src/android/app/src/main/res/values-it/strings.xml | 2 ++ src/android/app/src/main/res/values-ja/strings.xml | 2 ++ src/android/app/src/main/res/values-ko/strings.xml | 2 ++ src/android/app/src/main/res/values-nb/strings.xml | 2 ++ src/android/app/src/main/res/values-pl/strings.xml | 2 ++ .../app/src/main/res/values-pt-rBR/strings.xml | 2 ++ .../app/src/main/res/values-pt-rPT/strings.xml | 2 ++ src/android/app/src/main/res/values-ru/strings.xml | 2 ++ src/android/app/src/main/res/values-sr/strings.xml | 2 ++ src/android/app/src/main/res/values-uk/strings.xml | 2 ++ src/android/app/src/main/res/values-vi/strings.xml | 2 ++ .../app/src/main/res/values-zh-rCN/strings.xml | 2 ++ .../app/src/main/res/values-zh-rTW/strings.xml | 2 ++ src/android/app/src/main/res/values/strings.xml | 4 ++-- src/video_core/fence_manager.h | 13 +++++++++++++ 25 files changed, 61 insertions(+), 2 deletions(-) diff --git a/src/android/app/src/main/res/values-ar/strings.xml b/src/android/app/src/main/res/values-ar/strings.xml index 99bb92666a..71c59bb0aa 100644 --- a/src/android/app/src/main/res/values-ar/strings.xml +++ b/src/android/app/src/main/res/values-ar/strings.xml @@ -75,6 +75,8 @@ تبديل تخطي الإطارات لتحسين الأداء عن طريق تقليل عدد الإطارات المعروضة. هذه الميزة قيد التطوير وسيتم تمكينها في الإصدارات المستقبلية. تحسين توقيت الإطارات يضمن تسليمًا سلسًا ومتناسقًا للإطارات من خلال مزامنة التوقيت بينها، مما يقلل من التقطيع وعدم انتظام الحركة. مثالي للألعاب التي تعاني من عدم استقرار في توقيت الإطارات أو تقطع دقيق أثناء اللعب. + إطلاق الأسوار مبكرًا + يساعد في إصلاح مشكلة 0 إطار في الثانية في ألعاب مثل DKCR:HD وSubnautica Below Zero وOri 2، ولكن قد يتسبب في تعطيل التحميل أو الأداء في ألعاب Unreal Engine. تمكين ذاكرة التخزين المؤقت LRU تمكين أو تعطيل ذاكرة التخزين المؤقت الأقل استخداماً مؤخراً (LRU) لتحسين الأداء عن طريق تقليل استخدام وحدة المعالجة المركزية. بعض الألعاب قد تواجه مشاكل معه، خاصةً TotK 1.2.1، لذا قم بتعطيله إذا لم تعمل اللعبة أو انهارت عشوائياً. الحالة الديناميكية الممتدة diff --git a/src/android/app/src/main/res/values-ckb/strings.xml b/src/android/app/src/main/res/values-ckb/strings.xml index 03d834d71f..bca88fbe93 100644 --- a/src/android/app/src/main/res/values-ckb/strings.xml +++ b/src/android/app/src/main/res/values-ckb/strings.xml @@ -76,6 +76,8 @@ تێپەڕاندنی فرەیمەکان بکە بۆ باشترکردنی کارایی بە کەمکردنەوەی ژمارەی فرەیمە ڕێندرکراوەکان. ئەم تایبەتمەندییە هێشتا کاردەکرێت و لە وەشانە داهاتووەکاندا چالاکدەکرێت. تحسين توقيت الإطارات يضمن تسليمًا سلسًا ومتناسقًا للإطارات من خلال مزامنة التوقيت بينها، مما يقلل من التقطيع وعدم انتظام الحركة. مثالي للألعاب التي تعاني من عدم استقرار في توقيت الإطارات أو تقطع دقيق أثناء اللعب. + زێدەکردنی پەرستارەکان زووتر + یارمەتی دەدات لە چارەسەری 0 FPS لە یارییەکانی وەک DKCR:HD، Subnautica Below Zero و Ori 2، بەڵام ڕەنگە بارکردن یان کارایی لە یارییەکانی Unreal Engine تێکبدات. تمكين ذاكرة التخزين المؤقت LRU چالاک یان ناچالاککردنی کاشەی LRU، کارایی باشتر دەکات بە هەڵگرتنی بەکارهێنانی پرۆسەی CPU. هەندێک یاری کێشەی لەگەڵ هەیە، بەتایبەتی TotK 1.2.1، بۆیە بیخەوێنە ئەگەر یاریەکە نەگەڕێت یان بە هەڕەمەکی بشکێت. الحالة الديناميكية الممتدة diff --git a/src/android/app/src/main/res/values-cs/strings.xml b/src/android/app/src/main/res/values-cs/strings.xml index 739ebed3fc..59a4acbb0b 100644 --- a/src/android/app/src/main/res/values-cs/strings.xml +++ b/src/android/app/src/main/res/values-cs/strings.xml @@ -75,6 +75,8 @@ Přepínání přeskočení snímků pro zlepšení výkonu snížením počtu vykreslených snímků. Tato funkce je stále ve vývoji a bude povolena v budoucích verzích. Vylepšené časování snímků Zajišťuje plynulé a konzistentní zobrazování snímků synchronizací jejich časování, čímž snižuje trhání a nerovnoměrné animace. Ideální pro hry, které trpí nestabilitou časování snímků nebo mikrotrháním během hraní. + Uvolnit ploty brzy + Pomáhá opravit 0 FPS v hrách jako DKCR:HD, Subnautica Below Zero a Ori 2, ale může narušit načítání nebo výkon v hrách na Unreal Engine. Povolit LRU mezipaměť Povolte nebo zakažte mezipaměť LRU, čímž zvýšíte výkon snížením využití procesoru CPU. Některé hry s ní mají problémy, zejména TotK 1.2.1, takže ji deaktivujte, pokud hra neběží nebo náhodně padá. Rozšířený dynamický stav diff --git a/src/android/app/src/main/res/values-de/strings.xml b/src/android/app/src/main/res/values-de/strings.xml index 63d3e99173..7a14aec184 100644 --- a/src/android/app/src/main/res/values-de/strings.xml +++ b/src/android/app/src/main/res/values-de/strings.xml @@ -76,6 +76,8 @@ Aktivieren Sie Frame Skipping, um die Leistung durch Reduzierung der gerenderten Frames zu verbessern. Diese Funktion wird noch entwickelt und in zukünftigen Versionen verfügbar sein. Erweiterte Frame-Synchronisation Sorgt für eine gleichmäßige und konsistente Frame-Wiedergabe durch Synchronisierung der Frame-Zeiten, was Ruckeln und ungleichmäßige Animationen reduziert. Ideal für Spiele, die unter instabilen Frame-Zeiten oder Mikrorucklern leiden. + Zäune früher freigeben + Behebt 0 FPS in Spielen wie DKCR:HD, Subnautica Below Zero und Ori 2, kann aber Ladezeiten oder Performance in Unreal Engine-Spielen beeinträchtigen. LRU-Cache aktivieren Aktivieren oder deaktivieren Sie den LRU-Cache, um die Leistung durch Einsparung von CPU-Prozessorauslastung zu verbessern. Einige Spiele haben Probleme damit, insbesondere TotK 1.2.1, deaktivieren Sie es also, wenn das Spiel nicht startet oder zufällig abstürzt. Erweiterter dynamischer Status diff --git a/src/android/app/src/main/res/values-es/strings.xml b/src/android/app/src/main/res/values-es/strings.xml index 8cd0992f89..93f8a03b77 100644 --- a/src/android/app/src/main/res/values-es/strings.xml +++ b/src/android/app/src/main/res/values-es/strings.xml @@ -76,6 +76,8 @@ Activa o desactiva el salto de fotogramas para mejorar el rendimiento reduciendo el número de fotogramas renderizados. Esta función está en desarrollo y se habilitará en futuras versiones. Sincronización de fotogramas mejorada Garantiza una reproducción suave y consistente de fotogramas sincronizando sus tiempos, reduciendo el tartamudeo y animaciones irregulares. Ideal para juegos con problemas de sincronización de fotogramas o microtartamudeos. + Liberar vallas antes + Ayuda a solucionar 0 FPS en juegos como DKCR:HD, Subnautica Below Zero y Ori 2, pero puede afectar la carga o rendimiento en juegos de Unreal Engine. Habilitar caché LRU Activa o desactiva la caché LRU, mejorando el rendimiento al ahorrar uso del proceso de la CPU. Algunos juegos tienen problemas con ella, notablemente TotK 1.2.1, así que desactívala si el juego no inicia o se cierra aleatoriamente. Estado dinámico extendido diff --git a/src/android/app/src/main/res/values-fa/strings.xml b/src/android/app/src/main/res/values-fa/strings.xml index 2b41dfb0a4..7d724b8eaf 100644 --- a/src/android/app/src/main/res/values-fa/strings.xml +++ b/src/android/app/src/main/res/values-fa/strings.xml @@ -76,6 +76,8 @@ با فعال کردن رد کردن فریم‌ها، عملکرد را با کاهش تعداد فریم‌های رندر شده بهبود دهید. این قابلیت در حال توسعه است و در نسخه‌های آینده فعال خواهد شد. زمان‌بندی پیشرفته فریم‌ها ارسال یکنواخت و پایدار فریم‌ها را با همگام‌سازی زمان بین آن‌ها تضمین می‌کند، که منجر به کاهش لرزش و انیمیشن‌های ناهموار می‌شود. برای بازی‌هایی که ناپایداری در زمان‌بندی فریم‌ها یا میکرو لرزش در حین بازی دارند ایده‌آل است + رهاسازی حصارها زودتر + به رفع مشکل 0 فریم بر ثانیه در بازی‌هایی مانند DKCR:HD، Subnautica Below Zero و Ori 2 کمک می‌کند، اما ممکن است بارگذاری یا عملکرد بازی‌های Unreal Engine را مختل کند. فعال‌سازی حافظه نهان LRU حافظه پنهان LRU را فعال یا غیرفعال کنید تا با کاهش استفاده از پردازنده، عملکرد بهبود یابد. برخی بازی‌ها مانند TotK 1.2.1 با این ویژگی مشکل دارند، در صورت عدم راه‌اندازی یا قطعی تصادفی بازی، آن را غیرفعال کنید. حالت پویای گسترده diff --git a/src/android/app/src/main/res/values-fr/strings.xml b/src/android/app/src/main/res/values-fr/strings.xml index ac5bf9876c..16a3e2e9e9 100644 --- a/src/android/app/src/main/res/values-fr/strings.xml +++ b/src/android/app/src/main/res/values-fr/strings.xml @@ -76,6 +76,8 @@ Activez ou désactivez le saut d\'images pour améliorer les performances en réduisant le nombre d\'images affichées. Cette fonctionnalité est en cours de développement et sera activée dans les futures versions. Synchronisation avancée des frames Assure une diffusion fluide et régulière des frames en synchronisant leur timing, réduisant ainsi les saccades et les animations irrégulières. Idéal pour les jeux souffrant d`instabilité de timing des frames ou de micro-saccades pendant le jeu. + Libérer les barrières plus tôt + Résout les problèmes de 0 FPS dans des jeux comme DKCR:HD, Subnautica Below Zero et Ori 2, mais peut perturber le chargement ou les performances des jeux Unreal Engine. Activer le cache LRU Active ou désactive le cache LRU pour améliorer les performances en réduisant l\'utilisation du processeur. Certains jeux comme TotK 1.2.1 ont des problèmes - désactivez-le si le jeu ne démarre pas ou plante aléatoirement. État dynamique étendu diff --git a/src/android/app/src/main/res/values-he/strings.xml b/src/android/app/src/main/res/values-he/strings.xml index 2d7e575710..91a72b472b 100644 --- a/src/android/app/src/main/res/values-he/strings.xml +++ b/src/android/app/src/main/res/values-he/strings.xml @@ -76,6 +76,8 @@ החלף דילוג על פריימים כדי לשפר ביצועים על ידי הפחתת מספר הפריימים המוצגים. תכונה זו עדיין בפיתוח ותופעל בגרסאות עתידיות. סנכרון פריימים מתקדם מבטיח אספקה חלקה ועקבית של פריימים על ידי סנכרון התזמון ביניהם, מפחית קפיצות ואנימציה לא אחידה. אידיאלי למשחקים עם בעיות בתזמון פריימים או מיקרו-קפיצות במהלך המשחק. + שחרר גדרות מוקדם + עוזר לתקן 0 FPS במשחקים כמו DKCR:HD, Subnautica Below Zero ו-Ori 2, אך עלול לפגוע בטעינה או בביצועים במשחקי Unreal Engine. הפעלת מטמון LRU הפעל או השבת מטמון LRU לשיפור ביצועים על ידי חיסכון בשימוש במעבד. לחלק מהמשחקים כמו TotK 1.2.1 יש בעיות - השבת אם המשחק לא עולה או קורס באקראי. מצב דינמי מורחב diff --git a/src/android/app/src/main/res/values-hu/strings.xml b/src/android/app/src/main/res/values-hu/strings.xml index a9448a7e41..2b8b6d5c92 100644 --- a/src/android/app/src/main/res/values-hu/strings.xml +++ b/src/android/app/src/main/res/values-hu/strings.xml @@ -76,6 +76,8 @@ Kapcsolja be a képkihagyást a teljesítmény javításához a renderelt képkockák számának csökkentésével. Ez a funkció még fejlesztés alatt áll, és a jövőbeli kiadásokban lesz elérhető. Továbbfejlesztett Képkocka-időzítés Biztosítja a képkockák sima és egyenletes kézbesítését azok időzítésének szinkronizálásával, csökkentve a megakadásokat és egyenetlen animációkat. Ideális azokhoz a játékokhoz, amelyek képkocka-időzítési instabilitást vagy mikro-reccsenést tapasztalnak játék közben. + Korai kerítés-felszabadítás + Segít javítani a 0 FPS-t olyan játékokban, mint a DKCR:HD, Subnautica Below Zero és az Ori 2, de ronthatja az Unreal Engine játékok betöltését vagy teljesítményét. LRU gyorsítótár engedélyezése Engedélyezi vagy letiltja az LRU gyorsítótárat, növelve a teljesítményt a CPU használat csökkentésével. Néhány játéknak (különösen a TotK 1.2.1-nek) problémája lehet vele - tiltsa le, ha a játék nem indul el vagy véletlenszerűen összeomlik. Kiterjesztett Dinamikus Állapot diff --git a/src/android/app/src/main/res/values-id/strings.xml b/src/android/app/src/main/res/values-id/strings.xml index a9aade2ed7..b9546daf37 100644 --- a/src/android/app/src/main/res/values-id/strings.xml +++ b/src/android/app/src/main/res/values-id/strings.xml @@ -76,6 +76,8 @@ Aktifkan atau nonaktifkan frame skipping untuk meningkatkan performa dengan mengurangi jumlah frame yang dirender. Fitur ini masih dalam pengembangan dan akan diaktifkan di rilis mendatang. Penyelarasan Frame Tingkat Lanjut Memastikan pengiriman frame yang halus dan konsisten dengan menyinkronkan waktu antar frame, mengurangi stuttering dan animasi tidak rata. Ideal untuk game yang mengalami ketidakstabilan waktu frame atau micro-stutter selama gameplay. + Lepas Pagar Lebih Awal + Membantu memperbaiki 0 FPS di game seperti DKCR:HD, Subnautica Below Zero dan Ori 2, tapi mungkin mengganggu loading atau performa di game Unreal Engine. Aktifkan LRU Cache Aktifkan atau nonaktifkan cache LRU untuk meningkatkan performa dengan mengurangi penggunaan proses CPU. Beberapa game seperti TotK 1.2.1 memiliki masalah - nonaktifkan jika game tidak mau berjalan atau crash acak. Status Dinamis Ekstensi diff --git a/src/android/app/src/main/res/values-it/strings.xml b/src/android/app/src/main/res/values-it/strings.xml index 4bbc1a78eb..17cbd9b5ce 100644 --- a/src/android/app/src/main/res/values-it/strings.xml +++ b/src/android/app/src/main/res/values-it/strings.xml @@ -76,6 +76,8 @@ Attiva o disattiva il salto dei fotogrammi per migliorare le prestazioni riducendo il numero di fotogrammi renderizzati. Questa funzionalità è ancora in sviluppo e verrà abilitata nelle versioni future. Sincronizzazione avanzata fotogrammi Garantisce una consegna fluida e costante dei fotogrammi sincronizzandone i tempi, riducendo scatti e animazioni irregolari. Ideale per giochi che presentano instabilità nei tempi dei fotogrammi o micro-scatti durante il gameplay. + Rilascia le barriere prima + Risolve problemi di 0 FPS in giochi come DKCR:HD, Subnautica Below Zero e Ori 2, ma potrebbe compromettere caricamento o prestazioni in giochi Unreal Engine. Abilita cache LRU Abilita o disabilita la cache LRU per migliorare le prestazioni riducendo l\'uso della CPU. Alcuni giochi come TotK 1.2.1 hanno problemi - disabilitalo se il gioco non si avvia o crasha casualmente. Stato dinamico esteso diff --git a/src/android/app/src/main/res/values-ja/strings.xml b/src/android/app/src/main/res/values-ja/strings.xml index 3a9f55e883..7330aa6f7c 100644 --- a/src/android/app/src/main/res/values-ja/strings.xml +++ b/src/android/app/src/main/res/values-ja/strings.xml @@ -76,6 +76,8 @@ フレームスキップを切り替えて、レンダリングされるフレーム数を減らしパフォーマンスを向上させます。この機能は開発中であり、今後のリリースで有効になります。 高度なフレーム同期 フレーム間のタイミングを同期させることで、スムーズで一貫したフレーム配信を確保し、カクつきや不均一なアニメーションを軽減します。フレームタイミングの不安定さやマイクロスタッターが発生するゲームに最適です。 + フェンスを早期に解放 + DKCR:HD、Subnautica Below Zero、Ori 2などのゲームで0 FPSを修正しますが、Unreal Engineゲームの読み込みやパフォーマンスに影響する可能性があります。 LRUキャッシュを有効化 LRUキャッシュを有効/無効にし、CPUプロセスの使用を節約してパフォーマンスを向上させます。TotK 1.2.1など一部のゲームで問題が発生する可能性があるため、ゲームが起動しない場合やランダムにクラッシュする場合は無効にしてください。 拡張ダイナミックステート diff --git a/src/android/app/src/main/res/values-ko/strings.xml b/src/android/app/src/main/res/values-ko/strings.xml index c8a6a04bdd..64dd3c9f8b 100644 --- a/src/android/app/src/main/res/values-ko/strings.xml +++ b/src/android/app/src/main/res/values-ko/strings.xml @@ -76,6 +76,8 @@ 렌더링되는 프레임 수를 줄여 성능을 향상시키기 위해 프레임 스킵을 전환합니다. 이 기능은 현재 개발 중이며 향후 출시 버전에서 활성화될 예정입니다. 향상된 프레임 페이싱 프레임 간 타이밍을 동기화하여 부드럽고 일관된 프레임 전달을 보장하며, 끊김과 불균일한 애니메이션을 줄입니다. 프레임 타이밍 불안정이나 게임 플레이 중 미세 끊김이 발생하는 게임에 이상적입니다. + 펜스 조기 해제 + DKCR:HD, Subnautica Below Zero, Ori 2 등의 게임에서 0 FPS 현상을 해결하지만, Unreal Engine 게임의 로딩이나 성능에 문제를 일으킬 수 있습니다. LRU 캐시 사용 LRU 캐시를 활성화 또는 비활성화하여 CPU 프로세스 사용을 절약하고 성능을 향상시킵니다. TotK 1.2.1을 포함한 일부 게임에서 문제가 발생할 수 있으므로 게임이 부팅되지 않거나 무작위로 충돌하는 경우 비활성화하세요. 확장 동적 상태 diff --git a/src/android/app/src/main/res/values-nb/strings.xml b/src/android/app/src/main/res/values-nb/strings.xml index 287b2bd071..4592091d47 100644 --- a/src/android/app/src/main/res/values-nb/strings.xml +++ b/src/android/app/src/main/res/values-nb/strings.xml @@ -76,6 +76,8 @@ Slå av/på frame skipping for å forbedre ytelsen ved å redusere antall renderte bilder. Denne funksjonen er fortsatt under utvikling og vil bli aktivert i fremtidige versjoner. Avansert bildevindu-synkronisering Sikrer jevn og konsekvent bildelevering ved å synkronisere tiden mellom bilder, noe som reduserer hakking og ujevn animasjon. Ideelt for spill som opplever ustabil bildetid eller mikro-hakk under spilling. + Frigjør gjerder tidlig + Løser 0 FPS i spill som DKCR:HD, Subnautica Below Zero og Ori 2, men kan forårsake problemer med lasting eller ytelse i Unreal Engine-spill. Aktiver LRU-mellomlager Aktiver eller deaktiver LRU-mellomlager for å forbedre ytelsen ved å spare CPU-prosessorbruk. Noen spill som TotK 1.2.1 har problemer med dette - deaktiver hvis spillet ikke starter eller krasjer tilfeldig. Utvidet dynamisk tilstand diff --git a/src/android/app/src/main/res/values-pl/strings.xml b/src/android/app/src/main/res/values-pl/strings.xml index ab4a7b2704..1d2ec84c40 100644 --- a/src/android/app/src/main/res/values-pl/strings.xml +++ b/src/android/app/src/main/res/values-pl/strings.xml @@ -76,6 +76,8 @@ Włącz lub wyłącz pomijanie klatek, aby poprawić wydajność poprzez zmniejszenie liczby renderowanych klatek. Ta funkcja jest wciąż w fazie rozwoju i zostanie włączona w przyszłych wersjach. Zaawansowana synchronizacja klatek Zapewnia płynne i spójne wyświetlanie klatek poprzez synchronizację ich czasu, redukując zacinanie i nierówną animację. Idealne dla gier z niestabilnym czasem klatek lub mikro-zacinaniem podczas rozgrywki. + Wcześniejsze zwalnianie zabezpieczeń + Pomaga naprawić 0 FPS w grach takich jak DKCR:HD, Subnautica Below Zero i Ori 2, ale może zaburzyć ładowanie lub wydajność w grach Unreal Engine. Włącz pamięć podręczną LRU Włącz lub wyłącz pamięć podręczną LRU, aby poprawić wydajność poprzez zmniejszenie użycia procesora. Niektóre gry, takie jak TotK 1.2.1, mogą mieć problemy - wyłącz, jeśli gra się nie uruchamia lub losowo zawiesza. Rozszerzony stan dynamiczny diff --git a/src/android/app/src/main/res/values-pt-rBR/strings.xml b/src/android/app/src/main/res/values-pt-rBR/strings.xml index ee83c34c79..ca106e2c6c 100644 --- a/src/android/app/src/main/res/values-pt-rBR/strings.xml +++ b/src/android/app/src/main/res/values-pt-rBR/strings.xml @@ -76,6 +76,8 @@ Ative ou desative o pulo de quadros para melhorar o desempenho reduzindo o número de quadros renderizados. Este recurso ainda está em desenvolvimento e será habilitado em versões futuras. Sincronização avançada de quadros Garante entrega suave e consistente de quadros sincronizando seu tempo, reduzindo engasgos e animações irregulares. Ideal para jogos com instabilidade no tempo de quadros ou micro-engasgos durante a jogatina. + Liberar cercas antecipadamente + Ajuda a corrigir 0 FPS em jogos como DKCR:HD, Subnautica Below Zero e Ori 2, mas pode prejudicar carregamento ou desempenho em jogos Unreal Engine. Ativar cache LRU Ative ou desative o cache LRU para melhorar o desempenho economizando uso do processador. Alguns jogos como TotK 1.2.1 têm problemas - desative se o jogo não iniciar ou travar aleatoriamente. Estado Dinâmico Estendido diff --git a/src/android/app/src/main/res/values-pt-rPT/strings.xml b/src/android/app/src/main/res/values-pt-rPT/strings.xml index 896f72cacb..e4817f79cd 100644 --- a/src/android/app/src/main/res/values-pt-rPT/strings.xml +++ b/src/android/app/src/main/res/values-pt-rPT/strings.xml @@ -76,6 +76,8 @@ Ative ou desative o salto de frames para melhorar o desempenho reduzindo o número de frames renderizados. Esta funcionalidade ainda está em desenvolvimento e será ativada em versões futuras. Sincronização avançada de frames Garante uma entrega suave e consistente de frames sincronizando o seu tempo, reduzindo engasgadelas e animações irregulares. Ideal para jogos que experienciam instabilidade no tempo de frames ou micro-engasgadelas durante o jogo. + Libertar barreiras antecipadamente + Ajuda a corrigir 0 FPS em jogos como DKCR:HD, Subnautica Below Zero e Ori 2, mas pode afetar carregamento ou desempenho em jogos Unreal Engine. Ativar cache LRU Ative ou desative a cache LRU para melhorar desempenho poupando uso do processador. Alguns jogos como TotK 1.2.1 têm problemas - desative se o jogo não iniciar ou falhar aleatoriamente. Estado Dinâmico Estendido diff --git a/src/android/app/src/main/res/values-ru/strings.xml b/src/android/app/src/main/res/values-ru/strings.xml index 19d18e13d7..7e7ae4ee2e 100644 --- a/src/android/app/src/main/res/values-ru/strings.xml +++ b/src/android/app/src/main/res/values-ru/strings.xml @@ -76,6 +76,8 @@ Метод автоматического управления ресурсами в Vulkan, который обеспечивает правильное освобождение ресурсов при их ненадобности, но может вызывать сбои в бандл-играх. Улучшенная синхронизация кадров Обеспечивает плавную и стабильную подачу кадров за счет синхронизации их времени, уменьшая подтормаживания и неравномерную анимацию. Идеально для игр с нестабильным временем кадров или микро-подтормаживаниями во время игры. + Ранний релиз ограждений + Помогает исправить 0 FPS в играх типа DKCR:HD, Subnautica Below Zero и Ori 2, но может нарушить загрузку или производительность в играх на Unreal Engine. Включить LRU-кеш Включите или отключите кэш LRU (наименее недавно использованный), повышая производительность за счёт снижения нагрузки на ЦП. Некоторые игры могут работать с ним некорректно (например, TotK 1.2.1), поэтому отключите, если игра не запускается или случайно вылетает. Расширенное динамическое состояние diff --git a/src/android/app/src/main/res/values-sr/strings.xml b/src/android/app/src/main/res/values-sr/strings.xml index b3d6e2a1ef..4067f9fa8c 100644 --- a/src/android/app/src/main/res/values-sr/strings.xml +++ b/src/android/app/src/main/res/values-sr/strings.xml @@ -85,6 +85,8 @@ Метод аутоматског управљања ресурсима у Vulkan-у који осигурава правилно ослобађање ресурса када више нису потребни, али може изазвати падове у пакованим играма. Побољшани оквирни пејсинг Осигурава глатку и доследан испоруку оквира синхронизацијом времена између оквира, смањење муцања и неуједначене анимације. Идеално за игре које доживљавају временски оквир нестабилност или микро-штитнике током играња. + Ranije oslobađanje ograda + Pomaže u popravci 0 FPS u igrama kao što su DKCR:HD, Subnautica Below Zero i Ori 2, ali može oštetiti učitavanje ili performanse u Unreal Engine igrama. Користите ауто-стуб Аутоматски угушите мрежне услуге и функције. То може побољшати компатибилност, али може проузроковати пад рушења и питања стабилности. Деинсталирајте фирмвер diff --git a/src/android/app/src/main/res/values-uk/strings.xml b/src/android/app/src/main/res/values-uk/strings.xml index 473dff349c..e71dbfa0ca 100644 --- a/src/android/app/src/main/res/values-uk/strings.xml +++ b/src/android/app/src/main/res/values-uk/strings.xml @@ -76,6 +76,8 @@ Увімкніть або вимкніть пропуск кадрів для покращення продуктивності за рахунок зменшення кількості візуалізованих кадрів. Ця функція ще розробляється та буде доступна у майбутніх версіях. Покращена синхронізація кадрів Забезпечує плавну та стабільну подачу кадрів шляхом синхронізації їх часу, зменшуючи підвисання та нерівномірну анімацію. Ідеально для ігор з нестабільним часом кадрів або мікро-підвисаннями під час гри. + Раннє звільнення огорож + Допомагає виправити 0 FPS у таких іграх як DKCR:HD, Subnautica Below Zero та Ori 2, але може порушити завантаження чи продуктивність ігор на Unreal Engine. Увімкнути LRU-кеш Увімкніть або вимкніть кеш LRU для покращення продуктивності шляхом зменшення використання процесора. Деякі ігри (зокрема TotK 1.2.1) мають проблеми - вимкніть, якщо гра не запускається або випадково зникає. Розширений динамічний стан diff --git a/src/android/app/src/main/res/values-vi/strings.xml b/src/android/app/src/main/res/values-vi/strings.xml index 5d2e59a6d5..a65492974d 100644 --- a/src/android/app/src/main/res/values-vi/strings.xml +++ b/src/android/app/src/main/res/values-vi/strings.xml @@ -76,6 +76,8 @@ Bật hoặc tắt bỏ qua khung hình để cải thiện hiệu suất bằng cách giảm số lượng khung hình được kết xuất. Tính năng này đang được phát triển và sẽ được kích hoạt trong các bản phát hành tương lai. Đồng bộ khung hình nâng cao Đảm bảo cung cấp khung hình mượt mà và ổn định bằng cách đồng bộ hóa thời gian giữa các khung hình, giảm giật lag và hoạt ảnh không đồng đều. Lý tưởng cho các trò chơi gặp vấn đề về thời gian khung hình không ổn định hoặc giật lag nhẹ trong khi chơi. + Giải phóng rào chắn sớm + Giúp sửa lỗi 0 FPS trong các trò chơi như DKCR:HD, Subnautica Below Zero và Ori 2, nhưng có thể ảnh hưởng đến tải hoặc hiệu suất trong trò chơi Unreal Engine. Bật bộ nhớ đệm LRU Bật hoặc tắt bộ nhớ đệm LRU để cải thiện hiệu suất bằng cách tiết kiệm quy trình sử dụng CPU. Một số trò chơi như TotK 1.2.1 có vấn đề - hãy tắt nếu trò chơi không khởi động hoặc bị treo ngẫu nhiên. Trạng thái động mở rộng diff --git a/src/android/app/src/main/res/values-zh-rCN/strings.xml b/src/android/app/src/main/res/values-zh-rCN/strings.xml index 95c7352d08..51aa765e08 100644 --- a/src/android/app/src/main/res/values-zh-rCN/strings.xml +++ b/src/android/app/src/main/res/values-zh-rCN/strings.xml @@ -75,6 +75,8 @@ 启用或禁用跳帧以减少渲染帧数,提高性能。此功能仍在开发中,将在未来版本中启用。 增强帧同步 通过同步帧间时间确保流畅一致的帧交付,减少卡顿和不均匀动画。适合存在帧时间不稳定或游戏过程中出现微卡顿的游戏。 + 提前释放围栏 + 可修复《大金刚国度:热带寒流》《深海迷航:零度之下》和《奥日2》等游戏中的0 FPS问题,但可能影响Unreal Engine游戏的加载或性能。 启用LRU缓存 启用或禁用LRU缓存,通过节省CPU进程使用来提高性能。某些游戏可能存在问题,特别是TotK 1.2.1,如果游戏无法启动或随机崩溃,请禁用此选项。 扩展动态状态 diff --git a/src/android/app/src/main/res/values-zh-rTW/strings.xml b/src/android/app/src/main/res/values-zh-rTW/strings.xml index b9511bb959..9f04d71893 100644 --- a/src/android/app/src/main/res/values-zh-rTW/strings.xml +++ b/src/android/app/src/main/res/values-zh-rTW/strings.xml @@ -76,6 +76,8 @@ 啟用或停用跳幀以減少渲染幀數,提高效能。此功能仍在開發中,將在未來版本中啟用。 增強幀同步 通過同步幀間時間確保流暢一致的幀交付,減少卡頓和不均勻動畫。適合存在幀時間不穩定或遊戲過程中出現微卡頓的遊戲。 + 提前釋放圍欄 + 可修復《大金剛國度:熱帶寒流》《深海迷航:零度之下》和《奧日2》等遊戲中的0 FPS問題,但可能影響Unreal Engine遊戲的載入或效能。 啟用LRU快取 啟用或停用LRU快取,透過節省CPU進程使用來提高效能。某些遊戲可能存在問題,特別是TotK 1.2.1,如果遊戲無法啟動或隨機崩潰,請停用此選項。 擴展動態狀態 diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 324deaa255..f1baab8f2d 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -88,8 +88,8 @@ A method of automatic resource management in Vulkan that ensures proper release of resources when they are no longer needed, but may cause crashes in bundled games. Enhanced Frame Pacing Ensures smooth and consistent frame delivery by synchronizing the timing between frames, reducing stuttering and uneven animation. Ideal for games that experience frame timing instability or micro-stutters during gameplay. - Release fences early - Some games may require this to get past 0FPS errors, such as DKCR:HD, Subnautica, and Ori 2. Other games, notably Unreal Engine games, may work improperly or not boot with this enabled. + Release Fences Early + Helps fix 0 FPS in games like DKCR:HD, Subnautica Below Zero and Ori 2, but may break loading or performance in Unreal Engine games. CPU and Memory Synchronize Core Speed diff --git a/src/video_core/fence_manager.h b/src/video_core/fence_manager.h index 613713fe4e..dd67bc6d9b 100644 --- a/src/video_core/fence_manager.h +++ b/src/video_core/fence_manager.h @@ -88,9 +88,15 @@ public: const bool should_flush = ShouldFlush(); CommitAsyncFlushes(); TFence new_fence = CreateFence(!should_flush); + #ifdef __ANDROID__ + if (delay_fence && Settings::values.early_release_fences.GetValue()) { + guard.lock(); + } + #else if constexpr (can_async_check) { guard.lock(); } + #endif if (delay_fence) { uncommitted_operations.emplace_back(std::move(func)); } @@ -103,10 +109,17 @@ public: if (should_flush) { rasterizer.FlushCommands(); } + #ifdef __ANDROID__ + if (delay_fence && Settings::values.early_release_fences.GetValue()) { + guard.unlock(); + cv.notify_all(); + } + #else if constexpr (can_async_check) { guard.unlock(); cv.notify_all(); } + #endif rasterizer.InvalidateGPUCache(); } From c609389ec1e1744a5d024c5c6811cc7cea1ba113 Mon Sep 17 00:00:00 2001 From: Maufeat Date: Thu, 31 Jul 2025 00:03:18 +0200 Subject: [PATCH 2/7] [nifm] Readd room check to fix LAN on MK8D (#166) Co-authored-by: Maufeat Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/166 Co-authored-by: Maufeat Co-committed-by: Maufeat --- src/core/hle/service/nifm/nifm.cpp | 56 ++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp index e18afdb88b..4710167364 100644 --- a/src/core/hle/service/nifm/nifm.cpp +++ b/src/core/hle/service/nifm/nifm.cpp @@ -67,7 +67,6 @@ static u128 MakeUuidFromName(std::string_view name) { return {h1, h2}; } - // This is nn::nifm::RequestState enum class RequestState : u32 { NotSubmitted = 1, @@ -217,7 +216,6 @@ struct PendingProfile { std::array passphrase{}; }; - constexpr Result ResultPendingConnection{ErrorModule::NIFM, 111}; constexpr Result ResultInvalidInput{ErrorModule::NIFM, 112}; constexpr Result ResultNetworkCommunicationDisabled{ErrorModule::NIFM, 1111}; @@ -278,8 +276,7 @@ private: IPC::ResponseBuilder{ctx, 2}.Push(ResultSuccess); } - void IsProcessing(HLERequestContext& ctx) - { + void IsProcessing(HLERequestContext& ctx) { const bool processing = state.load() == State::Processing; IPC::ResponseBuilder rb{ctx, 3}; rb.Push(ResultSuccess); @@ -306,7 +303,7 @@ private: enum class State { Idle, Processing, Finished }; - void WorkerThread() { + void WorkerThread() { using namespace std::chrono_literals; scan_results = Network::ScanWifiNetworks(3s); @@ -321,7 +318,6 @@ private: Finish(ok ? ResultSuccess : ResultPendingConnection); } - void Finish(Result rc) { worker_result.store(rc); state.store(State::Finished); @@ -546,6 +542,7 @@ void IGeneralService::CreateRequest(HLERequestContext& ctx) { void IGeneralService::GetCurrentNetworkProfile(HLERequestContext& ctx) { Network::RefreshFromHost(); + const auto net_iface = Network::GetSelectedNetworkInterface(); const auto& st = Network::EmuNetState::Get(); SfNetworkProfileData profile{}; @@ -559,7 +556,7 @@ void IGeneralService::GetCurrentNetworkProfile(HLERequestContext& ctx) { profile.ip_setting_data.dns_setting.is_automatic = true; profile.ip_setting_data.dns_setting.primary_dns = {1, 1, 1, 1}; - profile.ip_setting_data.dns_setting.secondary_dns = {8, 8, 8, 8}; + profile.ip_setting_data.dns_setting.secondary_dns = {1, 0, 0, 1}, profile.uuid = MakeUuidFromName(st.ssid); profile.profile_type = static_cast(NetworkProfileType::User); @@ -568,6 +565,14 @@ void IGeneralService::GetCurrentNetworkProfile(HLERequestContext& ctx) { std::strncpy(profile.network_name.data(), st.ssid, sizeof(profile.network_name) - 1); + if (auto room_member = Network::GetRoomMember().lock()) { + if (room_member->IsConnected()) { + profile.ip_setting_data.ip_address_setting.ip_address = + room_member->GetFakeIpAddress(); + } + profile.ip_setting_data.dns_setting.secondary_dns = {8, 8, 8, 8}; + } + if (st.via_wifi) { profile.wireless_setting_data.ssid_length = static_cast(std::strlen(st.ssid)); std::memcpy(profile.wireless_setting_data.ssid.data(), st.ssid, @@ -665,8 +670,9 @@ void IGeneralService::GetNetworkProfile(HLERequestContext& ctx) { std::memcpy(net_name.data(), net_state.ssid, ssid_len); SfWirelessSettingData wifi{}; - wifi.ssid_length = static_cast(std::min(std::strlen(net_state.ssid), net_name.size())); - wifi.is_secured = !net_state.secure; //somehow reversed + wifi.ssid_length = + static_cast(std::min(std::strlen(net_state.ssid), net_name.size())); + wifi.is_secured = !net_state.secure; // somehow reversed wifi.passphrase = {"password"}; std::memcpy(wifi.ssid.data(), net_state.ssid, wifi.ssid_length); @@ -693,16 +699,21 @@ void IGeneralService::GetNetworkProfile(HLERequestContext& ctx) { .uuid{MakeUuidFromName(net_state.ssid)}, .network_name{net_name}, .profile_type = static_cast(NetworkProfileType::User), - .interface_type = - static_cast(net_iface->kind == - Network::HostAdapterKind::Wifi ? NetworkInterfaceType::WiFi_Ieee80211 : NetworkInterfaceType::Ethernet), - .wireless_setting_data{wifi} - }; + .interface_type = static_cast(net_iface->kind == Network::HostAdapterKind::Wifi + ? NetworkInterfaceType::WiFi_Ieee80211 + : NetworkInterfaceType::Ethernet), + .wireless_setting_data{wifi}}; }(); + if (auto room_member = Network::GetRoomMember().lock()) { + if (room_member->IsConnected()) { + profile.ip_setting_data.ip_address_setting.ip_address = room_member->GetFakeIpAddress(); + } + } + ctx.WriteBuffer(profile); - IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + IPC::ResponseBuilder rb{ctx, 2}; rb.Push(ResultSuccess); rb.PushIpcInterface(system); } @@ -732,7 +743,6 @@ void IGeneralService::SetNetworkProfile(HLERequestContext& ctx) { IPC::ResponseBuilder{ctx, 2}.Push(ResultSuccess); } - void IGeneralService::RemoveNetworkProfile(HLERequestContext& ctx) { LOG_WARNING(Service_NIFM, "(STUBBED) called"); @@ -759,7 +769,6 @@ void IGeneralService::GetScanDataV2(HLERequestContext& ctx) { const std::size_t max_rows = guest_bytes / sizeof(AccessPointDataV3); const std::size_t rows_copy = std::min(scans.size(), max_rows); - std::vector rows; rows.resize(rows_copy); @@ -776,7 +785,7 @@ void IGeneralService::GetScanDataV2(HLERequestContext& ctx) { ap.strength = to_bars(s.quality); bool is_connected = std::strncmp(net_state.ssid, ap.ssid, ap.ssid_len) == 0 && - net_state.ssid[ap.ssid_len] == '\0'; + net_state.ssid[ap.ssid_len] == '\0'; ap.visible = (is_connected) ? 0 : 1; ap.has_password = (s.flags & 2) ? 2 : 1; @@ -886,7 +895,16 @@ void IGeneralService::GetCurrentIpConfigInfo(HLERequestContext& ctx) { info.dns.secondary_dns = {8, 8, 8, 8}; } - IPC::ResponseBuilder rb{ctx, 2 + (sizeof(IpConfigInfo) + 3) / 4}; + if (auto room_member = Network::GetRoomMember().lock()) { + if (room_member->IsConnected()) { + info.ip.ip_address = room_member->GetFakeIpAddress(); + } + info.dns.is_automatic = true; + info.dns.primary_dns = {1, 1, 1, 1}; + info.dns.secondary_dns = {8, 8, 8, 8}; + } + + IPC::ResponseBuilder rb{ctx, 2 + (sizeof(IpConfigInfo) + 3) / sizeof(u32)}; rb.Push(ResultSuccess); rb.PushRaw(info); } From 3f12ae1e6eddc9848074a5a6b9b1bf01ab2a6957 Mon Sep 17 00:00:00 2001 From: SDK Chan Date: Thu, 31 Jul 2025 16:42:00 +0200 Subject: [PATCH 3/7] [shader_recompiler/Maxwell] Unstub ISBERD completely (#160) Unstub previous ISBERD stubs. Should improve internal shader handling in certain aspects. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/160 Co-authored-by: SDK Chan Co-committed-by: SDK Chan --- .../impl/internal_stage_buffer_entry_read.cpp | 51 +++++++++++++++++-- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp index 59ca4b15a3..d71c65069b 100644 --- a/src/shader_recompiler/frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -37,16 +40,56 @@ void TranslatorVisitor::ISBERD(u64 insn) { } const isberd{insn}; if (isberd.skew != 0) { - throw NotImplementedException("SKEW"); + IR::U32 current_lane_id{ir.LaneId()}; + IR::U32 result{ir.IAdd(X(isberd.src_reg), current_lane_id)}; + X(isberd.dest_reg, result); } if (isberd.o != 0) { - throw NotImplementedException("O"); + IR::U32 address{}; + IR::F32 result{}; + if (isberd.src_reg_num == 0xFF) { + address = ir.Imm32(isberd.imm); + result = ir.GetAttributeIndexed(address); + } else { + IR::U32 offset = ir.Imm32(isberd.imm); + address = ir.IAdd(X(isberd.src_reg), offset); + result = ir.GetAttributeIndexed(address); + } + X(isberd.dest_reg, ir.BitCast(result)); } if (isberd.mode != Mode::Default) { - throw NotImplementedException("Mode {}", isberd.mode.Value()); + IR::F32 result{}; + IR::U32 index{}; + if (isberd.src_reg_num == 0xFF) { + index = ir.Imm32(isberd.imm); + } else { + index = ir.IAdd(X(isberd.src_reg), ir.Imm32(isberd.imm)); + } + + switch (static_cast(isberd.mode.Value())) { + case static_cast(Mode::Patch): + result = ir.GetPatch(index.Patch()); + break; + case static_cast(Mode::Prim): + result = ir.GetAttribute(index.Attribute()); + break; + case static_cast(Mode::Attr): + result = ir.GetAttributeIndexed(index); + break; + } + X(isberd.dest_reg, ir.BitCast(result)); } if (isberd.shift != Shift::Default) { - throw NotImplementedException("Shift {}", isberd.shift.Value()); + IR::U32 result{}; + switch (static_cast(isberd.shift.Value())) { + case static_cast(Shift::U16): + result = ir.ShiftLeftLogical(result, static_cast(ir.Imm16(1))); + break; + case static_cast(Shift::B32): + result = ir.ShiftLeftLogical(result, ir.Imm32(1)); + break; + } + X(isberd.dest_reg, result); } //LOG_DEBUG(Shader, "(STUBBED) called {}", insn); if (isberd.src_reg_num == 0xFF) { From bd2061f44bf7d8d22f67feb4bf0b22a714552b2d Mon Sep 17 00:00:00 2001 From: Maufeat Date: Thu, 31 Jul 2025 16:47:21 +0200 Subject: [PATCH 4/7] [vk] remove config check return (#151) This is for testing some bugs, the return acually shouldn't happen and misses the rest of ConfigureImpl Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/151 Co-authored-by: Maufeat Co-committed-by: Maufeat --- src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp index ddd29e7acf..6c40ff1bab 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp @@ -401,8 +401,7 @@ bool GraphicsPipeline::ConfigureImpl(bool is_indexed) { config_stage(3); } if constexpr (Spec::enabled_stages[4]) { - if (!config_stage(4)) - return false; + config_stage(4); } texture_cache.FillGraphicsImageViews(std::span(views.data(), view_index)); From b089e7d4e6eb96b92681cdaf0aceb408e323652f Mon Sep 17 00:00:00 2001 From: Bix Date: Thu, 31 Jul 2025 16:54:04 +0200 Subject: [PATCH 5/7] [android] Update Ukrainian translation (#168) Authored-by: Rondo Signed-off-by: Bix Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/168 Co-authored-by: Bix Co-committed-by: Bix --- .../app/src/main/res/values-uk/strings.xml | 56 +++++++++++++++---- 1 file changed, 44 insertions(+), 12 deletions(-) diff --git a/src/android/app/src/main/res/values-uk/strings.xml b/src/android/app/src/main/res/values-uk/strings.xml index e71dbfa0ca..9c94acb6b2 100644 --- a/src/android/app/src/main/res/values-uk/strings.xml +++ b/src/android/app/src/main/res/values-uk/strings.xml @@ -26,9 +26,9 @@ Показати швидкість Відображати швидкість емуляції у відсотках Показати використання RAM - Показати обсяг оперативної пам’яті, яку використовує емулятор + Показати обсяг оперативної пам\'яті, яку використовує емулятор Показати системну RAM - Показати обсяг оперативної пам’яті, яку використовує система + Показати обсяг оперативної пам\'яті, яку використовує система Показати температуру батареї Показати поточну температуру акумулятора Одиниці виміру температури акумулятора @@ -76,12 +76,12 @@ Увімкніть або вимкніть пропуск кадрів для покращення продуктивності за рахунок зменшення кількості візуалізованих кадрів. Ця функція ще розробляється та буде доступна у майбутніх версіях. Покращена синхронізація кадрів Забезпечує плавну та стабільну подачу кадрів шляхом синхронізації їх часу, зменшуючи підвисання та нерівномірну анімацію. Ідеально для ігор з нестабільним часом кадрів або мікро-підвисаннями під час гри. - Раннє звільнення огорож - Допомагає виправити 0 FPS у таких іграх як DKCR:HD, Subnautica Below Zero та Ori 2, але може порушити завантаження чи продуктивність ігор на Unreal Engine. - Увімкнути LRU-кеш - Увімкніть або вимкніть кеш LRU для покращення продуктивності шляхом зменшення використання процесора. Деякі ігри (зокрема TotK 1.2.1) мають проблеми - вимкніть, якщо гра не запускається або випадково зникає. + Release fences early + Це налаштування може бути необхідним для виправлення помилок 0FPS у деяких іграх (зокрема DKCR:HD, Subnautica та Ori 2). Водночас інші ігри, особливо створені на рушії Unreal Engine, можуть працювати некоректно або взагалі не запускатися. + Увімкнути LRU-кеш + Увімкніть або вимкніть кеш LRU (Least Recently Used) для покращення продуктивності шляхом зменшення навантаження на CPU. Деякі ігри (зокрема TotK 1.2.1) можуть працювати некоректно - вимкніть, якщо гра не запускається або раптово вилітає. Розширений динамічний стан - Активує функції Vulkan для покращення продуктивності, поліпшеня рендерингу та економії ресурсів під час створення конвеєрів (pepeline), зберігаючи низьке використання CPU/GPU. Ці розширення можуть підвищити температуру пристрою, а старі GPU серії A6XX можуть реагувати некоректно. Вимкніть для емуляції масштабованих форматів. + Активує функції Vulkan для покращення продуктивності, поліпшеня рендерингу та економії ресурсів під час створення конвеєрів (pipeline), зберігаючи низьке використання CPU/GPU. Ці розширення можуть підвищити температуру пристрою, а старі GPU серії A6XX можуть реагувати некоректно. Вимкніть для емуляції масштабованих форматів. Вимкнено Синхронізувати швидкість ядра Синхронізує швидкість ядра з максимальним відсотком швидкості для покращення продуктивності без зміни реальної швидкості гри. @@ -92,7 +92,7 @@ Видалення прошивки... Прошивку успішно видалено Provoking Vertex - Провокуюча вершина (Provoking Vertex) покращує освітлення та обробку вершин у деяких іграх. Підтримується лише GPU з Vulkan 1.0+. + Покращує освітлення та обробку вершин у деяких іграх. Підтримується лише GPU з Vulkan 1.0+. Індексація дескрипторів Покращує обробку текстур та буферів, а також шар перекладу Maxwell. Підтримується деякими GPU Vulkan 1.1 та всіма GPU Vulkan 1.2+. Використовувати швидкий час GPU @@ -322,6 +322,7 @@ Не знайдено файлів або ще не вибрано теку з іграми. Пошук та фільтрація ігор Виберіть теку з іграми + Керування ігровими теками Дозволяє Eden заповнити список ігор Пропустити вибір теки з іграми? Ігри не відображатимуться у списку Ігри, якщо теку не вибрано. @@ -448,14 +449,27 @@ Gaia не існує Скопійовано в буфер обміну Емулятор Switch із відкритим вихідним кодом - Вкладники - Зроблено з \u2764 від команди Eden + Автори проєкту + Зроблено з \u2764 командою Eden + Проєкти, які зробили запуск Eden на Android можливим + Збірка + Дані користувача + Імпортувати/експортувати всі дані застосунку.\n\nПід час імпорту всі наявні дані користувача буде видалено!\n\nІмпортування даних із Citron може спричинити помилки. Рекомендується вручну імпортувати всі потрібні дані. + Експорт даних користувача… + Імпорт даних користувача… + Імпортувати дані користувача + Некоректна резервна копія Eden + Дані користувача успішно експортовано + Дані користувача успішно імпортовано + Експорт скасовано + Переконайтесь, що тека з даними користувача знаходяться в корені архіву ZIP і містять файл конфігурації за адресою config/config.ini, після чого повторіть спробу. + Обмеження швидкості Обмежує швидкість емуляції у відсотках від нормальної. Відсоток обмеження - Вказує відсоток обмеження швидкості. 100% — нормальна швидкість. + Вказує відсоток обмеження швидкості. 100% — звичайна швидкість. Режим CPU Точність CPU %1$s%2$s @@ -548,12 +562,19 @@ Діапазон Мертва зона Модифікатор + Діапазон модифікатора L R ZL ZR Z Некоректний + Фільтр прив\'язки введення + Виберіть пристрій для фільтрації вводу + Автоприв\'язка контролера + Виберіть пристрій для спроби автоприв\'язки + Спроба автоприв\'язки з %1$s + Тип контролера Контролер Pro Портативний Подвійні Joy-Con\'и @@ -567,7 +588,9 @@ Встановити поріг Переключити осі З\'єднано + Використовувати системну вібрацію Вібрація + Інтенсивність вібрації Профіль Використовувати глобальну конфігурацію вводу @@ -577,7 +600,8 @@ Помилка збереження %1$s.ini: %2$s Завантаження... Чи хочете ви повернути цей параметр до значення за замовчуванням? - Скидання до налаштувань за замовчуванням + Скинути налаштування + Скидає всі розширені налаштування до значень за замовчуванням Скинути всі налаштування Налаштування скинуто Закрити @@ -603,6 +627,7 @@ Отримання драйверів GPU + Менеджер драйверів GPU Отримати Помилка під час отримання Перевірте з\'єднання та спробуйте ще раз. @@ -632,11 +657,16 @@ Налаштування Загальні Система + Режим док-странції, регіон, мова Графіка + Рівень точності, роздільна здатність, кеш шейдерів Аудіо + Аудіорушій, гучність Керування + Призначити кнопки контролера Тема та колір Налагодження + Налагодження CPU/GPU, графічний API, швидка пам\'ять Інформація @@ -747,6 +777,8 @@ Підготовка шейдерів Побудова шейдерів + + Змінити тему За замовчуванням Material You From c1d9cbca647d20c5f6ede7ba8107097dc518f7bc Mon Sep 17 00:00:00 2001 From: notenergydrinks Date: Thu, 31 Jul 2025 16:55:14 +0200 Subject: [PATCH 6/7] [cheats] Check for comments in patch line loop (#156) My test case is this file, after line 27 is not marked as patch because it's after `@` tag but rest is patch lines including comments. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/156 Co-authored-by: notenergydrinks Co-committed-by: notenergydrinks --- src/core/file_sys/ips_layer.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/core/file_sys/ips_layer.cpp b/src/core/file_sys/ips_layer.cpp index d1ac24072e..57a9ce37d5 100644 --- a/src/core/file_sys/ips_layer.cpp +++ b/src/core/file_sys/ips_layer.cpp @@ -1,5 +1,5 @@ -// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later #include #include @@ -255,6 +255,11 @@ void IPSwitchCompiler::Parse() { const auto& patch_line = lines[++i]; + // Patch line may contain comments + if (StartsWith(patch_line, "//")) { + continue; + } + // Start of new patch if (StartsWith(patch_line, "@enabled") || StartsWith(patch_line, "@disabled")) { --i; From 6fd10fd85eda83ce660f79bf6e5491806df2cf6d Mon Sep 17 00:00:00 2001 From: weakboson Date: Thu, 31 Jul 2025 17:47:29 +0200 Subject: [PATCH 7/7] [vk] Remove improper check for image depth in texture cache. (#164) When looking for existing images, ImageBase::TryFindBase checks the depth of the existing image to be greater than the layer of the base + depth of the candidate. However the depth of images are not updated when cache were merged causing the lookup to fail. This commit disables this faulty check to fix a critical memory leak that crashes the emulator in some games. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/164 Co-authored-by: weakboson Co-committed-by: weakboson --- src/video_core/texture_cache/texture_cache.h | 1 + src/video_core/texture_cache/util.cpp | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 6c733fe902..78b6684c49 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -1426,6 +1426,7 @@ ImageId TextureCache

::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, DA if (solution) { gpu_addr = solution->gpu_addr; cpu_addr = solution->cpu_addr; + // TODO: properly update new_info.size.depth. new_info.resources = solution->resources; join_overlap_ids.push_back(overlap_id); join_copies_to_do.emplace_back(JoinCopy{false, overlap_id}); diff --git a/src/video_core/texture_cache/util.cpp b/src/video_core/texture_cache/util.cpp index 1a6f0d1ad1..f61a8558d9 100644 --- a/src/video_core/texture_cache/util.cpp +++ b/src/video_core/texture_cache/util.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project // SPDX-FileCopyrightText: Ryujinx Team and Contributors // SPDX-License-Identifier: GPL-2.0-or-later AND MIT @@ -1216,10 +1219,10 @@ std::optional FindSubresource(const ImageInfo& candidate, const return std::nullopt; } if (existing.type == ImageType::e3D) { - const u32 mip_depth = std::max(1U, existing.size.depth << base->level); - if (mip_depth < candidate.size.depth + base->layer) { - return std::nullopt; - } + // const u32 mip_depth = std::max(1U, existing.size.depth << base->level); + // if (mip_depth < candidate.size.depth + base->layer) { + // return std::nullopt; + // } } else if (existing.resources.layers < candidate.resources.layers + base->layer) { return std::nullopt; }