From 1d7ff850d6fe57540f838fa32c5f183139198d3e Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Tue, 31 Oct 2023 20:19:33 -0400
Subject: android: Update translations from transifex
---
src/android/app/src/main/res/values-ar/strings.xml | 385 ++++++++++++++++++++
.../app/src/main/res/values-ckb/strings.xml | 336 +++++++++++++++++
src/android/app/src/main/res/values-de/strings.xml | 119 ++++--
src/android/app/src/main/res/values-es/strings.xml | 180 ++++++---
src/android/app/src/main/res/values-fr/strings.xml | 180 ++++++---
src/android/app/src/main/res/values-he/strings.xml | 367 +++++++++++++++++++
src/android/app/src/main/res/values-hu/strings.xml | 402 +++++++++++++++++++++
src/android/app/src/main/res/values-it/strings.xml | 192 +++++++---
src/android/app/src/main/res/values-ja/strings.xml | 218 +++++++----
src/android/app/src/main/res/values-ko/strings.xml | 273 +++++++-------
src/android/app/src/main/res/values-nb/strings.xml | 113 +++---
src/android/app/src/main/res/values-pl/strings.xml | 81 +++--
.../app/src/main/res/values-pt-rBR/strings.xml | 210 ++++++++---
.../app/src/main/res/values-pt-rPT/strings.xml | 192 +++++++---
src/android/app/src/main/res/values-ru/strings.xml | 159 ++++++--
src/android/app/src/main/res/values-uk/strings.xml | 90 +----
src/android/app/src/main/res/values-vi/strings.xml | 340 +++++++++++++++++
.../app/src/main/res/values-zh-rCN/strings.xml | 138 +++++--
.../app/src/main/res/values-zh-rTW/strings.xml | 137 ++++++-
19 files changed, 3425 insertions(+), 687 deletions(-)
create mode 100644 src/android/app/src/main/res/values-ar/strings.xml
create mode 100644 src/android/app/src/main/res/values-ckb/strings.xml
create mode 100644 src/android/app/src/main/res/values-he/strings.xml
create mode 100644 src/android/app/src/main/res/values-hu/strings.xml
create mode 100644 src/android/app/src/main/res/values-vi/strings.xml
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/res/values-ar/strings.xml b/src/android/app/src/main/res/values-ar/strings.xml
new file mode 100644
index 000000000..07dffffe8
--- /dev/null
+++ b/src/android/app/src/main/res/values-ar/strings.xml
@@ -0,0 +1,385 @@
+
+
+
+ المحاكي نشط
+ اظهار اشعار دائم عندما يكون المحاكي نشطاً
+ يوزو يعمل
+ الإشعارات والأخطاء
+ اظهار اشعار عند حصول اي مشكلة.
+ لم يتم منح إذن الإشعار
+
+
+ مرحبًا
+ والانتقال إلى المحاكاة يوزو تعرف على كيفية إعداد.
+ لنبدأ
+ المفاتيح
+ اختر ملف <b>prod.keys</b> من الزر ادناه
+ إختيار المفاتيح
+ الألعاب
+ اختر مجلد <b>العابك</b> من الزر ادناه.
+ إنهاء
+ كل شيء جاهز./n استمتع بألعابك!
+ استمر
+ التالي
+ عودة
+ إضافة ألعاب
+ إختار مجلد ألعابك
+ مكتمل
+
+
+ الألعاب
+ البحث
+ الإعدادات
+ لم يتم العثور على ملفات او لم يتم تحديد مسار العاب.
+ بحث وتصفية الألعاب
+ تحديد مجلد الألعاب
+ يسمح لـ يوزو بملء قائمة الألعاب
+ تخطُ اختيار مجلد الالعاب؟
+ لن يتم عرض الألعاب في قائمة الألعاب إذا لم يتم تحديد مجلد
+ https://yuzu-emu.org/help/quickstart/#dumping-games
+ البحث عن ألعاب
+ إعدادات البحث
+ تم تحديد مجلد الألعاب
+ تثبيت prod.keys
+ مطلوب لفك تشفير ألعاب البيع بالتجزئة
+ تخطي إضافة المفاتيح؟
+ مطلوب مفاتيح صالحة لمحاكاة ألعاب البيع بالتجزئة. ستعمل تطبيقات البيرة المنزلية فقط إذا تابعت
+ https://yuzu-emu.org/help/quickstart/#guide-introduction
+ التنبيهات
+ امنح إذن الإشعار باستخدام الزر أدناه
+ منح الإذن
+ تخطي منح إذن الإشعارات؟
+ لن يتمكن يوزو من إشعارك بالمعلومات المهمة
+ تم رفض الإذن
+ لقد رفضت هذا الإذن عدة مرات ويتعين عليك الآن منحه يدويًا في إعدادات النظام
+ حول
+ بناء الإصدار، والاعتمادات، وأكثر من ذلك
+ مساعدة
+ تخطي
+ إلغاء
+ تثبيت مفاتيح أميبو
+ مطلوب لاستخدام أميبو في اللعبة
+ تم تحديد ملف مفاتيح غير صالح
+ تم تثبيت المفاتيح بنجاح
+ خطأ في قراءة مفاتيح التشفير
+ مفاتيح التشفير غير صالحة
+ https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys
+ الملف المحدد غير صحيح أو تالف. يرجى إعادة المفاتيح الخاصة بك
+ GPU تثبيت برنامج تشغيل
+ قم بتثبيت برامج تشغيل بديلة للحصول على أداء أو دقة أفضل
+ إعدادات متقدمة
+ إعدادات متقدمة: %1$s
+ تكوين إعدادات المحاكي
+ لعبت مؤخرا
+ أضيف مؤخرا
+ بيع بالتجزئة
+ البيرة المنزلية
+ فتح مجلد يوزو
+ إدارة ملفات يوزو الداخلية
+ تعديل مظهر التطبيق
+ لم يتم العثور على مدير الملفات
+ لا يمكن فتح مجلد يوزو
+ الرجاء تحديد موقع مجلد المستخدم باستخدام اللوحة الجانبية لمدير الملفات يدويًا
+ إدارة حفظ البيانات
+ حفظ البيانات التي تم العثور عليها. يرجى اختيار أحد الخيارات التالية
+ استيراد أو تصدير ملفات الحفظ
+ تم الاستيراد بنجاح
+ بنية مجلد الحفظ غير صالحة
+ يجب أن يكون اسم المجلد الفرعي الأول هو معرف عنوان اللعبة.
+ استيراد
+ تصدير
+ تثبيت البرامج الثابتة
+ تثبيت البرامج الثابتة
+ تم تثبيت البرامج الثابتة بنجاح
+ فشل تثبيت البرامج الثابتة
+ مشاركة سجلات التصحيح
+ مشاركة ملف سجل يوزو لتصحيح المشكلات
+ لم يتم العثور على ملف السجل
+ تثبيت محتوى اللعبة
+ DLC قم بتثبيت تحديثات اللعبة أو
+ جارٍ تثبيت المحتوى
+ لا يُسمح بتثبيت الألعاب الأساسية لتجنب التعارضات المحتملة.
+ %1$d تم التثبيت بنجاح
+ %1$d تمت الكتابة فوقه بنجاح
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ برامج التشغيل المخصصة غير مدعومة
+ تحميل برنامج التشغيل المخصص غير معتمد حاليًا لهذا الجهاز.\nحدد هذا الخيار مرة أخرى في المستقبل لمعرفة ما إذا تمت إضافة الدعم!
+ إدارة بيانات يوزو
+ استيراد/تصدير البرامج الثابتة والمفاتيح وبيانات المستخدم والمزيد!
+ مشاركة ملف الحفظ
+ فشل تصدير الحفظ
+
+ نسخ إلى الحافظة
+ محاكي سويتش مفتوح المصدر
+ المساهمين
+ https://github.com/yuzu-emu/yuzu/graphs/contributors
+ المشاريع التي تجعل تطبيق يوزو لنظام أندرويد ممكنًا
+ البناء
+ بيانات المستخدم
+ جارٍ تصدير بيانات المستخدم
+ جارٍ استيراد بيانات المستخدم
+ استيراد بيانات المستخدم
+ نسخة احتياطية يوزو غير صالحة
+ تم تصدير بيانات المستخدم بنجاح
+ تم استيراد بيانات المستخدم بنجاح
+ تم إلغاء التصدير
+ https://discord.gg/u77vRWY
+ https://yuzu-emu.org/
+ https://github.com/yuzu-emu
+
+
+ الوصول المبكر
+ احصل على الوصول المبكر
+ https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea
+ الميزات المتطورة، والوصول المبكر إلى التحديثات، وأكثر من ذلك
+ مزايا الوصول المبكر
+ ميزات متطورة
+ الوصول المبكر إلى التحديثات
+ لا يوجد التثبيت اليدوي
+ الدعم ذو الأولوية
+ المساعدة في الحفاظ على اللعبة
+ امتناننا الأبدي
+ هل انت مهتم؟
+
+
+ الحد من السرعة
+ يحد من سرعة المحاكاة بنسبة محددة من السرعة العادية
+ الحد من السرعة في المئة
+ يحدد النسبة المئوية للحد من سرعة المحاكاة. 100% هي السرعة الطبيعية. ستؤدي القيم الأعلى أو الأدنى إلى زيادة أو تقليل حد السرعة.
+ دقة وحدة المعالجة المركزية
+ %1$s%2$s
+
+
+ وضع الإرساء
+ زيادة الدقة، وانخفاض الأداء. يتم استخدام الوضع المحمول عند تعطيله، مما يؤدي إلى خفض الدقة وزيادة الأداء.
+ المنطقة التي تمت محاكاتها
+ لغة المحاكاه
+ حدد التاريخ و الساعة في الوقت الحقيقي
+ حدد وقت الساعة في الوقت الفعلي
+ ساعة مخصصة في الوقت الحقيقي
+ يسمح لك بتعيين ساعة مخصصة في الوقت الفعلي منفصلة عن وقت النظام الحالي لديك
+ تعيين ساعة مخصصة في الوقت الحقيقي
+
+
+ مستوى الدقة
+ (Handheld/Docked) الدقة
+ VSync وضع
+ الاتجاه
+ تناسب الابعاد
+ طريقة مكافحة التعرج
+ استخدم تظليل غير متزامن
+ يجمع التظليل بشكل غير متزامن، مما يقلل من التأتأة ولكنه قد يؤدي إلى حدوث بعض الأخطاء.
+ استخدم التنظيف التفاعلي
+ تحسين دقة العرض في بعض الألعاب على حساب الأداء
+ يقلل من التأتأة عن طريق تخزين وتحميل التظليلات التي تم إنشاؤها محليًا.
+
+
+ وحدة المعالج المركزية
+ تصحيح أخطاء وحدة المعالجة المركزية
+ يضع وحدة المعالجة المركزية في وضع التصحيح البطيء.
+ GPU
+ API
+ تصحيح الأخطاء الرسومية
+ يضبط واجهة برمجة تطبيقات الرسومات على وضع تصحيح الأخطاء البطيء.
+ Fastmem
+
+
+ محرك الإخراج
+ حجم
+ يحدد حجم إخراج الصوت
+
+
+ افتراضي
+ الإعدادات المحفوظة
+ الإعدادات المحفوظة لـ %1$s
+ القائمة غير المنفذة
+ جاري تحميل
+ إيقاف تشغيل
+ هل تريد إعادة تعيين هذا الإعداد مرة أخرى إلى قيمته الافتراضية؟
+ إعادة تعيين إلى الافتراضي
+ إعادة تعيين جميع الإعدادات؟
+ سيتم إعادة تعيين كافة الإعدادات المتقدمة إلى تكوينها الافتراضي. هذا لا يمكن التراجع عنها.
+ إعادة تعيين الأعدادات
+ إغلاق
+ معرفة المزيد
+ تلقائي
+ إرسال
+ قيمه خاليه
+ استيراد
+ تصدير
+ فشل التصدير
+ فشل الاستيراد
+ إلغاء
+
+
+ GPU حدد برنامج تشغيل
+ الحالي الخاص بك؟ GPU هل ترغب في استبدال برنامج تشغيل
+ تثبيت
+ افتراضي
+ يستخدم تعريف معالج الرسوميات الافتراضي
+ تم تحديد برنامج تشغيل غير صالح ، باستخدام النظام الافتراضي
+ تعريف معالج الرسوميات الخاص بالنظام
+ جارٍ تثبيت برنامج التشغيل…
+
+
+ إعدادات
+ عام
+ النظام
+ الرسوميات
+ الصوت
+ السمة واللون
+ تصحيح الأخطاء
+
+
+ الخاص بك ROM تم تشفير
+ حدث خطأ أثناء تهيئة مركز الفيديو
+ ROM غير قادر على تحميل
+ غير موجود ROM ملف
+
+
+ الخروج من المحاكاة
+ منجز
+ عداد إطار/ثانية
+ تبديل عناصر التحكم
+ مركز العصا النسبي
+ مزلاق أزرار الاتجاهات
+ الاهتزازات الديناميكية
+ عرض التراكب
+ تبديل الكل
+ ضبط التراكب
+ حجم
+ العتامه
+ إعادة تعيين التراكب
+ تحرير التراكب
+ إيقاف المحاكاة مؤقتًا
+ إلغاء الإيقاف المؤقت للمضاهاة
+ خيارات التراكب
+
+ جارٍ تحميل الإعدادات
+
+
+ لوحة المفاتيح البرمجية
+
+
+ إلغاء
+ استمر
+ لم يتم العثور على أرشيف النظام
+ أرشيف النظام
+ خطأ في الحفظ/التحميل
+ خطا فادح
+ سيؤدي إيقاف تشغيل هذا الإعداد إلى تقليل أداء المحاكاة بشكل ملحوظ! للحصول على أفضل تجربة، يوصى بترك هذا الإعداد ممكنًا.
+ %1$s %2$s
+ لا توجد لعبة قابلة للتمهيد
+
+
+ اليابان
+ الولايات المتحدة الأمريكية
+ أوروبا
+ أستراليا
+ الصين
+ كوريا
+ تايوان
+
+
+ Byte
+ KB
+ MB
+ GB
+ TB
+ PB
+ EB
+
+
+ Vulkan
+ لاشيء
+
+
+ عادي
+ عالي
+ Extreme (بطيء)
+
+
+ 0.5X (360p/540p)
+ 0.75X (540p/810p)
+ 1X (720p/1080p)
+ 2X (1440p/2160p) (بطيء)
+ 3X (2160p/3240p) (بطيء)
+ 4X (2880p/4320p) (بطيء)
+
+
+ Immediate (Off)
+ Mailbox
+ FIFO (On)
+ FIFO Relaxed
+
+
+ Nearest Neighbor
+ Bilinear
+ Bicubic
+ Gaussian
+ ScaleForce
+ AMD FidelityFX™ Super Resolution
+
+
+ لا شيء
+ FXAA
+ SMAA
+
+
+ افقي
+ عمودي
+ تلقائي
+
+
+ (16:9) افتراضي
+ 4:3 فرض
+ 21:9 فرض
+ 16:10 فرض
+ تمتد إلى النافذة
+
+
+ دقه
+ غير آمن
+ Paranoid (Slow)
+
+
+ أزرار الاتجاهات
+ العصا اليسرى
+ العصا اليمنى
+ شاشة الإستقبال
+ لقطة شاشة
+
+
+ تحضير التظليل
+ بناء التظليل
+
+
+ تغيير سمة التطبيق
+ افتراضي
+ Material You
+
+
+ تغيير وضع السمة
+ اتبع النظام
+ فاتح
+ غامق
+
+
+ cubeb
+
+
+ خلفيات سوداء
+ عند استخدام المظهر الداكن، قم بتطبيق خلفيات سوداء.
+
+
+ صورة داخل صورة
+ تصغير النافذة عند وضعها في الخلفية
+ توقف
+ تشغيل
+ كتم
+ إلغاء الكتم
+
+
+ التراخيص
+ AMD ترقية عالية الجودة من
+
diff --git a/src/android/app/src/main/res/values-ckb/strings.xml b/src/android/app/src/main/res/values-ckb/strings.xml
new file mode 100644
index 000000000..d2e5fee19
--- /dev/null
+++ b/src/android/app/src/main/res/values-ckb/strings.xml
@@ -0,0 +1,336 @@
+
+
+
+ ئەم نەرمەکاڵایە یارییەکانی کۆنسۆلی نینتێندۆ سویچ کارپێدەکات. هیچ ناونیشانێکی یاری و کلیلی تێدا نییە..<br /><br />پێش ئەوەی دەست پێ بکەیت، تکایە شوێنی فایلی prod.keys ]]> دیاریبکە لە نێو کۆگای ئامێرەکەت.<br /><br />زیاتر فێربە]]>
+ ئیمولەیشن کارایە
+ ئاگادارکردنەوەیەکی بەردەوام نیشان دەدات کاتێک ئیمولەیشن کاردەکات.
+ یوزو کاردەکات
+ ئاگاداری و هەڵەکان
+ ئاگادارکردنەوەکان پیشان دەدات کاتێک شتێک بە هەڵەدا دەچێت.
+ مۆڵەتی ئاگادارکردنەوە نەدراوە!
+
+
+ بەخێربێیت!
+ فێربە چۆن <b>yuzu</b> ڕێکبخەیت و بچییە ناو ئیمولەیشن.
+ دەست پێبکە
+ کلیلەکان
+ فایلی <b>prod.keys</b> هەڵبژێرە بە دوگمەی خوارەوە.
+ کلیلەکان هەڵبژێرە
+ یاریەکان
+ فۆڵدەری <b>Games</b> هەڵبژێرە بە دوگمەی خوارەوە.
+ تەواو
+ تۆ تەواو ئامادەیت.\nچێژ لە یارییەکانت وەربگرە!
+ بەردەوام بوون
+ دواتر
+ گەڕانەوە
+ زیادکردنی یاری
+ فۆڵدەری یارییەکانت هەڵبژێرە
+
+ یاریەکان
+ گەڕان
+ ڕێکخستنەکان
+ تا ئێستا هیچ فایلێک نەدۆزراوەتەوە یان هیچ ناونیشانێکی یاری هەڵنەبژێردراوە.
+ گەڕان و فلتەرکردنی یارییەکان
+ فۆڵدەری یارییەکان هەڵبژێرە
+ ڕێگە بە یوزو دەدات بۆ پڕکردنەوەی لیستی یارییەکان
+ هەڵبژاردنی فۆڵدەری یارییەکان تێپەڕدەکەیت؟
+ یارییەکان لە لیستی یارییەکاندا پیشان نادرێن ئەگەر فۆڵدەرێک هەڵنەبژێردرێت.
+ https://yuzu-emu.org/help/quickstart/#dumping-games
+ گەڕان بەدوای یارییەکاندا
+ ناونیشانی یارییەکان هەڵبژێردرا
+ دابمەزرێنە prod.keys
+ پێویستە بۆ کۆدکردنەوەى یارییە تاکەکەسییەکان
+ زیادکردنی کلیلەکان تێپەڕدەکەیت؟
+ کلیلی دروست پێویستە بۆ وەرگرتنی یارییەکانی تاکەکەسی. تەنها ئەپەکانی homebrew کاردەکەن ئەگەر بەردەوام بیت.
+ https://yuzu-emu.org/help/quickstart/#guide-introduction
+ ئاگادارکردنەوەکان
+ بە دوگمەی خوارەوە مۆڵەتی ئاگادارکردنەوەکە بدە.
+ مۆڵەت بدە
+ پێدانی مۆڵەتی ئاگادارکردنەوە تێپەڕدەکەیت؟
+ یوزو ناتوانێت لە زانیاری گرنگ ئاگادارت بکاتەوە.
+ مۆڵەت پێدان ڕەتکرایەوە
+ زۆر جار ئەم مۆڵەتەت ڕەتکردۆتەوە و ئێستا دەبێت بە دەستی ڕێگەپێدان بکەیت لە ڕێکخستنەکانی سیستەمدا.
+ دەربارە
+ وەشانی دروستکردن، بیتبێن و زۆر شتیتر
+ یارمەتی
+ پەڕاندن
+ ڕەتکردنەوە
+ دامەزراندنی کلیلی Amiibo
+ پێویستە بۆ بەکارهێنانی Amiibo لە یاریدا
+ فایلی کلیلێکی نادروست هەڵبژێردرا
+ کلیلەکان بە سەرکەوتوویی دامەزران
+ هەڵە لە خوێندنەوەی کۆدکردنی کلیل
+ دڵنیابەوە کە فایلی کلیلەکانت درێژکراوەی .keys ی هەیە و دووبارە هەوڵبدەرەوە.
+ دڵنیابە کە فایلی کلیلەکانت درێژکراوەی .bin ی هەیە و دووبارە هەوڵبدەرەوە.
+ کلیلی کۆدکردنی نادروستە
+ https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys
+ فایلە هەڵبژێردراوەکە هەڵەیە یان تێکچووە. تکایە دووبارە کلیلەکانت دەربێنەوە.
+ دامەزراندنی وەگەڕخەری GPU
+ دامەزراندنی وەگەڕخەری بەدیل بۆ ئەوەی بە ئەگەرێکی زۆرەوە کارایی باشتر یان وردبینی هەبێت
+ ڕێکخستنە پێشکەوتووەکان
+ سازدانی ڕێکخستنەکانی ئیمولەیتەر
+ بەم دواییە یاری کردووە
+ بەم دواییە زیادکرا
+ بەتاک
+ هۆم بریو
+ کردنەوەی فۆڵدەری یوزو
+ بەڕێوەبردنی فایلە ناوخۆییەکانی یوزو
+ دەستکاری کردنی شێوازی ئەپەکە
+ هیچ فایل بەڕێوەبەرێک نەدۆزرایەوە
+ نەتوانرا ناونیشانی یوزو بکرێتەوە
+ تکایە شوێنی فۆڵدەری بەکارهێنەر لەگەڵ پانێڵی لایەنی فایل بەڕێوەبارەکان بە دەست بدۆزەرەوە.
+ بەڕێوەبردنی داتای پاشەکەوتکراو
+ داتای پاشەکەوتکراو دۆزراوە. تکایە لە خوارەوە بژاردەیەک هەڵبژێرە.
+ هاوردەکردن یان هەناردەکردنی فایلی پاشەکەوتکراو
+ بە سەرکەوتوویی هاوردە کرا
+ پێکهاتەی شوێنی پاشەکەوتکراو نادروستە
+ ناوی یەکەمی فۆڵدەر دەبێت ناسنامەی ناونیشانی یارییەکە بێت.
+ هاوردەکردن
+ هەناردەکردن
+ دامەزراندنی پتەوواڵا
+ پتەوواڵا دەبێت لە ئەرشیفی زیپدا بێت و پێویستە بۆ بووتکردنی هەندێک یاری
+ دامەزرانی پتەوواڵا
+ پتەوواڵا بە سەرکەوتوویی دامەزرا
+ دامەزراندنی پتەوواڵا شکستی هێنا
+ هاوبەشی پێکردنی لۆگەکانی چاککردنەوە
+ فایلە لۆگەکەی یوزو هاوبەش بکە بۆ چاککردنی کێشەکان
+ هیچ فایلێکی لۆگ نەدۆزراوە
+ دامەزراندنی ناوەڕۆکی یاری
+ دامەزراندنی نوێکاری یارییەکان یان DLC
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+
+ گایا ڕاستەقینە نییە
+ کۆپی کرا بۆ تەختەی نووسین
+ ئیمۆلیتەرێکی سەرچاوە-کراوەی سویچ
+ بەشداربووان
+ دروستکراوە لەگەڵ \u2764 لەلایەن تیمەکەی یوزو
+ https://github.com/yuzu-emu/yuzu/graphs/contributors
+ ئەو پڕۆژانەی کە یوزوی بۆ ئەندرۆید ڕەخساند
+ بونیات
+ https://discord.gg/u77vRWY
+ https://yuzu-emu.org/
+ https://github.com/yuzu-emu
+
+
+ بەزوویی دەسپێگەشتن
+ بەدەستهێنانی بەزوویی دەسپێگەشتن
+ https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea
+ تایبەتمەندییە پێشکەوتووەکان، بەزوویی دەستگەیشتن بە نوێکارییەکان و زۆر شتی تر
+ سوودەکانی بەزوویی دەسپێگەشتن
+ تایبەتمەندییە پێشکەوتووەکان
+ زوو دەستگەیشتن بە نوێکارییەکان
+ چیتر دامەزراندنی دەستی نییە
+ پشتگیری لە پێشینە
+ یارمەتیدانی پاراستنی یارییەکان
+ سوپاس و پێزانینی هەمیشەییمان
+ ئایا تۆ خوازیاریت؟
+
+
+ سنووردارکردنی خێرایی
+ خێرایی ئیمولەیشن سنووردار دەکات بۆ ڕێژەیەکی دیاریکراو لە خێرایی ئاسایی.
+ سنووردارکردنی لەسەدای خێرایی
+ ڕێژەی سەدی دیاری دەکات بۆ سنووردارکردنی خێرایی ئیمولەیشن. 100% خێرایی ئاساییە. بەهایی بەرزتر یان نزمتر دەبێتە هۆی زیاد یان کەمکردنەوەی سنووری خێرایی.
+ وردی CPU
+
+ دۆخی دۆککراو
+ ڕوونی زیاد دەکات، کارایی کەم دەکاتەوە. دۆخی دەستی بەکاردێت کاتێک لەکاردەخرێت، ئەمەش ڕوونی دادەبەزێنێت و کارایی زیاد دەکات.
+ ناوچەی ئیمولەیشن
+ زمانی ئیمولەیتەر
+ هەڵبژاردنی بەرواری RTC
+ هەڵبژاردنی کاتی RTC
+ RTCی تایبەتمەند
+ ڕێگەت پێدەدات کاتژمێرێکی کاتی ڕاستەقینەی تایبەتمەند دابنێیت کە جیاوازە لە کاتی ئێستای سیستەمەکەت.
+ دانانی RTCی تایبەتمەند
+
+
+ ئاستی وردبینی
+ ڕوونی (دۆخی دەستی/دۆخی دۆک)
+ دۆخی VSync
+ ڕێژەی ڕووبەری شاشە
+ فلتەری گونجاندنی پەنجەرە
+ شێوازی دژە-خاوڕۆیی
+ ناچاریکردن بۆ زۆرترین کاتژمێر (تەنها ئەدرینۆ)
+ GPU ناچار دەکات بە زۆرترین کاتژمێر کاربکات (هێشتا سنووردارکردنی گەرمی جێبەجێ دەکرێت).
+ بەکارهێنانی سێبەری ناهاوسەنگ
+ سێبەرەکان بە شێوەیەکی ناهاوسەنگ کۆدەکاتەوە، پچڕپچڕی کەمدەکاتەوە بەڵام لەوانەیە گلێچ دروستکا.
+ بەکارهێنانی بەرپێچدەرەوە
+ وردی ڕێندەرکردن لە هەندێک یاریدا باشتر دەکات لەسەر تێچووی کارایی.
+ بیرگەخێرای سێبەری دیسک
+ پچڕپچڕی کەمدەکاتەوە بە هەڵگرتن و بارکردنی سێبەری دروستکراو لە ناوخۆدا.
+
+
+ CPU
+ API گرافیک
+ چاککردنەوەی گرافیک
+ API ی گرافیکەکان ڕێکدەخات بۆ دۆخی چاککردنی خاو.
+ قەبارەی دەنگی
+ دیاریکردنی قەبارەی دەنگی دەرچووی بیستۆک و بزوێنەری دەنگی دەرەکی.
+
+
+ بنەڕەت
+ ڕێکخستنە پاشەکەوتکراوەکان
+ ڕێکخستنە پاشەکەوتکراوەکان بۆ %1$s
+ هەڵە لە پاشەکەوتکردن %1$s.ini: %2$s
+ بارکردن...
+ ئایا دەتەوێت ئەم ڕێکخستنە بگەڕێنیتەوە بۆ بەهای بنەڕەتی خۆی؟
+ دوبارە ڕێکخستنەوەی بۆ بنەڕەت
+ هەموو ڕێکخستنەکان دوبارە ڕێک دەخاتەوە؟
+ هەموو ڕێکخستنە پێشکەوتووەکان دەگەڕێنەوە بۆ ڕێکخستنی بنەڕەتی خۆیان. پاشگەز بوونەوەی نییه.
+ دوبارە ڕێککردنەوەی ڕێکخستنەکان
+ داخستن
+ زیاتر فێربە
+ خودکار
+ پێشکەشکردن
+ هاوردەکردن
+ هەناردەکردن
+
+ هەڵبژاردنی وەگەڕخەری GPU
+ حەز دەکەیت وەگەڕخەری GPU ی ئێستات بگۆڕیت؟
+ دامەزراندن
+ بنەڕەت
+ بەکارهێنانی وەگەڕخەری GPU ی بنەڕەت
+ وەگەڕخەری نادروست هەڵبژێردرا، بە بەکارهێنانی بنەڕەتی سیستەم!
+ وەگەڕخەری GPU ی سیستەم
+ دامەزراندنی وەگەڕخەر...
+
+
+ ڕێکخستنەکان
+ گشتی
+ سیستەم
+ گرافیک
+ دەنگ
+ ڕەنگ و ڕووکار
+ چاککردنەوە
+
+
+ ڕۆمەکەت کۆدکراوە
+ prod.keys فایلەکەت بۆ ئەوەی بتوانرێت یارییەکان کۆد بکرێنەوە.]]>
+ هەڵەیەک لە دەستپێکردنی ناوەکی ڤیدیۆکەدا ڕوویدا
+ ئەمەش بەزۆری بەهۆی وەگەڕخەرێکی ناتەبای GPU ەوەیە. دامەزراندنی وەگەڕخەری GPU ی تایبەتمەندکراو لەوانەیە ئەم کێشەیە چارەسەر بکات.
+ ناتوانرێت ڕۆم باربکرێت
+ فایلی ڕۆم بوونی نییە
+
+
+ دەرچوون لە ئیمولەیشن
+ تەواو
+ FPS ژمێر
+ گۆڕینی کۆنتڕۆڵ
+ ناوەندی گێڕ بەنزیکەیی
+ خلیسکانی 4 دوگمەکە
+ لەرینەوەی پەنجەلێدان
+ نیشاندانی داپۆشەر
+ گۆڕینی سەرجەم
+ ڕێکخستنی داپۆشەر
+ پێوەر
+ ڕوونی
+ دووبارە ڕێکخستنەوەی داپۆشەر
+ دەستکاریکردنی داپۆشەر
+ وەستاندنی ئیمولەیشن
+ لادانی وەستاندنی ئیمولەیشن
+ هەڵبژاردەکانی داپۆشەر
+
+ بارکردنی ڕێکخستنەکان...
+
+
+ کیبۆردی نەرمەکاڵا
+
+
+ دەربارە
+ بەردەوام بوون
+ ئەرشیفی سیستەم نەدۆزراوە
+ %s دیار نییە. تکایە ئەرشیفی سیستەمەکەت فڕێ بدە.\nبەردەوامی ئیمولەیشن لەوانەیە ببێتە هۆی تێکچوون و فڕێدانەدەرەوە.
+ ئەرشیفێکی سیستەم
+ هەڵەی پاشەکەوتکردن/بارکردن
+ هەڵەی کوشندە
+ هەڵەیەکی کوشندە ڕوویدا. بۆ وردەکارییەکان لۆگەکە بپشکنە.\nبەردەوامی ئیمولەیشن لەوانەیە ببێتە هۆی تێکچوون و فڕێدانەدەرەوە.
+ کوژاندنەوەی ئەم ڕێکخستنە دەبێتە هۆی کەمکردنەوەی کارایی ئیمولەیشن! بۆ باشترین ئەزموون، باشترە ئەم ڕێکخستنە چالاک بهێڵیتەوە.
+
+ ژاپۆن
+ ئەمریکا
+ ئەورووپا
+ ئوسترالیا
+ چین
+ کۆریا
+ تایوان
+
+ GB
+
+ ڤوڵکان
+ هیچ
+
+
+ ئاسایی
+ بەرز
+ ئەوپەڕ (خاو)
+
+
+ 0.5X (360p/540p)
+ 0.75X (540p/810p)
+ 1X (720p/1080p)
+ 2X (1440p/2160p) (خاو)
+ 3X (2160p/3240p) (خاو)
+ 4X (2880p/4320p) (خاو)
+
+
+ دەستبەجێ (کوژاوە)
+ سندوقی پۆستە
+ FIFO (پێکراو)
+ FIFO ئارام
+
+
+ نزیکترین دراوسێ
+ دوو هێڵی
+ دووخشتەکی
+ گاوسی
+ پێوەرهێز
+ AMD FidelityFX™ سوپەر ووردبینی
+
+
+ هیچ
+ FXAA
+ SMAA
+
+ خودکار
+
+
+ بنەڕەت (16:9)
+ ڕووبەری 4:3
+ ڕووبەری 21:9
+ ڕووبەری 16:10
+ کشانی پڕ بەشاشە
+
+
+ وورد
+ ناسەقامگیر
+ بەگومان (خاو)
+
+
+ 4 دوگمەکە
+ گێڕی چەپ
+ گێڕی ڕاست
+ ماڵەوە
+ وێنەگرتنی شاشە
+
+
+ ئامادەکردنی سێبەرەکان
+ دروستکردنی سێبەرەکان
+
+
+ گۆڕینی ڕووکاری ئەپەکە
+ بنەڕەت
+ کەرەستەی تۆ
+
+
+ گۆڕینی دۆخی ڕووکار
+ پەیڕەوی کردنی سیستەم
+ ڕوناکی
+ تاریک
+
+
+ پاشبنەمای ڕەش
+ لە کاتی بەکارهێنانی ڕووکاری تاریکدا، پاشبنەمای ڕەش دادەنێ.
+
+
+ مۆڵەتەکان
+ بەرزکردنەوەی کوالێتی بەرز لە کۆمپانیای AMD
+
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 72a47fbdb..9c6590b5e 100644
--- a/src/android/app/src/main/res/values-de/strings.xml
+++ b/src/android/app/src/main/res/values-de/strings.xml
@@ -1,5 +1,5 @@
-
+Diese Software kann Spiele für die Nintendo Switch abspielen. Keine Spiele oder Spielekeys sind enthalten.<br /><br />Bevor du beginnst, bitte halte deine prod.keys ]]> auf deinem Gerät bereit. .<br /><br />Mehr Infos]]>Emulation ist aktiv
@@ -25,6 +25,7 @@
ZurückSpiele hinzufügenSpieleverzeichnis auswählen
+ Fertig!Spiele
@@ -38,6 +39,7 @@
Spiele werden in der Spieleliste nicht angezeigt, wenn kein Ordner ausgewählt ist.https://yuzu-emu.org/help/quickstart/#dumping-gamesSpiele suchen
+ Einstellungen suchenSpieleverzeichnis ausgewähltprod.keys installierenZum Entschlüsseln von Spielen benötigt
@@ -60,8 +62,11 @@
Ungültige Schlüsseldatei ausgewähltSchlüssel erfolgreich installiertFehler beim Lesen der Schlüssel
+ Überprüfen Sie, ob Ihre Schlüsseldatei die Erweiterung \".keys\" hat, und versuchen Sie es erneut.
+ Überprüfen Sie, ob Ihre Schlüsseldatei die Erweiterung \".bin\" hat, und versuchen Sie es erneut.Ungültige Schlüsselhttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keys
+ Die ausgewählte Datei ist falsch oder beschädigt. Bitte kopieren Sie Ihre Schlüssel erneut.GPU-Treiber installierenAlternative Treiber für eventuell bessere Leistung oder Genauigkeit installierenErweiterte Einstellungen
@@ -84,7 +89,17 @@
Der erste Unterordnername muss die Titel-ID des Spiels sein.ImportierenExportieren
-
+ Firmware installieren
+ Die Firmware muss in einem ZIP-Archiv vorliegen und wird zum Booten einiger Spiele benötigt
+ Firmware wird installiert
+ Die Firmware wurde erfolgreich installiert!
+ Bei der Firmware installation ist etwas fehlgeschlagen.
+ Debug-Logs teilen
+ Debug-Logs an yuzu zur Untersuchung absenden
+ Keine Log-Datei gefunden
+ Spiel installieren
+ Spiel Update oder DLC installieren
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updatesGaia ist nicht realIn die Zwischenablage kopiert
@@ -92,7 +107,10 @@
BeitragendeGemacht mit \u2764 vom yuzu Teamhttps://github.com/yuzu-emu/yuzu/graphs/contributors
+ Projekte, die yuzu für Android möglich machen Build
+ Nutzerdaten
+ Export abgebrochenhttps://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu
@@ -107,45 +125,39 @@
Früherer Zugriff auf UpdatesKeine manuelle InstallationPriorisierte Unterstützung
+ Beitrag zur Erhaltung der SpieleUnsere ewige DankbarkeitBist du interessiert?
- Geschwindigkeitsbegrenzung aktivieren
- Wenn aktiviert, wird die Emulationsgeschwindigkeit auf einen Prozentsatz der normalen Geschwindigkeit begrenzt.
+ Limitierte Geschwindigkeit
+ Limitiert die Geschwindigkeit auf einen von dir festgelegten Prozentsatz.Geschwindkeitsbegrenzung in Prozent
- Legt den Prozentsatz der Bergrenzung der Emulationsgeschwindigkeit fest. Mit dem Standardwert von 100% wird die Emulation auf die normale Geschwindigkeit begrenzt. Höhere oder niedrigere Werte erhöhen oder verringern die Geschwindigkeitsbegrenzung.
+ Gibt die prozentuale Geschwindigkeit der Emulation an. 100% sind normal. Werte darüber oder drunter werden die Geschwindigkeit entsprechend verändern.CPU-Genauigkeit
-
- Dock-Modus
- Emuliert im Dock-Modus, was die Auflösung verbessert, aber die Leistung senkt.
+ Gedockter Modus
+ Der Docked Modus erhöht die Auflösung, verringert die aber die Leistung. Wird der Handheld-Modus verwendet, verringert es die Auflösung und erhöht die Leistung.Emulierte RegionEmulierte SpracheRTC-Datum auswählenRTC-Zeit auswählen
- Benutzerdefinierte RTC aktivieren
- Mit dieser Einstellung kann eine benutzerdefinierte Echtzeituhr unabhängig von der aktuellen Systemzeit verwendet werden.
- Benutzerdefinierte RTC einstellen
-
+ Benutzerdefinierte Echtzeituhr
- APIGenauigkeitsstufe
- AuflösungVSync-Modus
+ OrientierungSeitenverhältnisFensteranpassungsfilter
- Kantenglättungs-MethodeMaximale Taktfrequenz erzwingen (nur Adreno)Erzwingt den Betrieb der GPU mit der maximal möglichen Taktfrequenz (Temperaturbeschränkungen werden weiterhin angewendet).Asynchrone Shader nutzen
- Kompiliert Shader asynchron, was Ruckler reduziert, aber zu Glitches führen kann.
- Grafik-Debugging aktivieren
- Wenn aktiviert, schaltet die Grafik-API in einen langsameren Debugging-Modus.
- Nutze Festplatten-Shader-Cache
- Ruckeln wird durch das Speichern und Laden von generierten Shadern auf der Festplatte reduziert.
-
-
+
+ CPU
+ CPU Debugging
+ GPU
+ API
+ Graphik-DebuggingLautstärkeLegt die Lautstärke der Audioausgabe fest.
@@ -154,14 +166,22 @@
Einstellungen gespeichertEinstellungen für %1$s gespeichertFehler beim Speichern von %1$s.ini: %2$s
+ Unimplementiertes MenüLädt...Möchtest du diese Einstellung auf den Standardwert zurücksetzen?Auf Standard zurücksetzenAlle Einstellungen zurücksetzen?
- Alle erweiterten Einstellungen werden auf ihren Standardwert zurückgesetzt. Dies kann nicht rückgängig gemacht werden.Einstellungen zurückgesetztSchließenMehr erfahren
+ Auto
+ Absenden
+ Null
+ Importieren
+ Exportieren
+ Export fehlgeschlagen
+ Import fehlgeschlagen
+ AbbrechenGPU-Treiber auswählen
@@ -169,6 +189,7 @@
InstallierenStandardStandard GPU-Treiber wird verwendet
+ Ungültiger Treiber ausgewählt, Standard-Treiber wird verwendet!System GPU-TreiberTreiber wird installiert...
@@ -179,6 +200,7 @@
GrafikAudioTheme und Farbe
+ DebugDas ROM ist verschlüsselt
@@ -192,22 +214,15 @@
Emulation beendenFertigFPS Zähler
- Steuerung umschalten
- Relative Stick-Mitte
- DPad Slide
- Haptik
- Overlay anzeigenAlle umschaltenOverlay anpassenGrößeTransparenzOverlay zurücksetzenOverlay bearbeiten
- Emulation pausieren
- Emulation fortsetzenOverlay-Optionen
- Lädt Einstellungen...
+ Lade Einstellungen...Software-Tastatur
@@ -221,7 +236,7 @@
Schwerwiegender FehlerEin schwerwiegender Fehler ist aufgetreten. Einzelheiten wurden im Log protokolliert.\nDas Fortsetzen der Emulation kann zu Abstürzen und Bugs führen.Das Deaktivieren dieser Einstellung führt zu erheblichen Leistungsverlusten! Für ein optimales Erlebnis wird empfohlen, sie aktiviert zu lassen.
-
+ %1$s %2$sJapanUSA
@@ -231,6 +246,15 @@
KoreaTaiwan
+
+ Byte
+ KB
+ MB
+ GB
+ TB
+ PB
+ EB
+
VulkanKeiner
@@ -267,12 +291,15 @@
FXAASMAA
+ Portrait
+ Auto
+
Standard (16:9)4:3 erzwingen21:9 erzwingenErzwinge 16:10
- Auf Fenster anpassen
+ Auf Bildschirmgröße anpsassenAkkurat
@@ -280,9 +307,9 @@
Paranoid (Langsam)
- Steuerkreuz
- Linker Analogstick
- Rechter Analogstick
+ D-Pad
+ Linker Stick
+ Rechter StickHomeScreenshot
@@ -291,18 +318,30 @@
Shader werden erstellt
- App-Theme ändern
+ App-Thema ändernStandardMaterial You
- Theme-Modus ändern
+ Themen-Modus ändernSystem folgenHellDunkel
+
+ cubeb
+
- Schwarze Hintergünde verwenden
+ Schwarze HintergründeBei Verwendung des dunklen Themes, schwarze Hintergründe verwenden.
-
+
+ Bild im Bild
+ Pause
+ Stummschalten
+ Ton aktivieren
+
+
+ Lizenzen
+ Hochwertiges Upscaling von AMD
+
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 e5bdd5889..103ac6e65 100644
--- a/src/android/app/src/main/res/values-es/strings.xml
+++ b/src/android/app/src/main/res/values-es/strings.xml
@@ -1,7 +1,7 @@
-
+
- Este software ejecuta juegos para la videoconsola Nintendo Switch. Los videojuegos o keys no vienen incluidos.<br /><br />Antes de empezar, por favor, localice el archivo prod.keys ]]>en el almacenamiento de su dispositivo..<br /><br />Saber más]]>
+ Este software ejecuta juegos para la videoconsola Nintendo Switch. Los videojuegos o claves no vienen incluidos.<br /><br />Antes de empezar, por favor, localice el archivo prod.keys ]]>en el almacenamiento de su dispositivo..<br /><br />Saber más]]>Emulación activaMuestra una notificación persistente cuando la emulación está activa.yuzu esta ejecutándose
@@ -25,6 +25,7 @@
AtrásAñadir JuegosSelecciona la carpeta de juegos
+ ¡Completado!Juegos
@@ -37,7 +38,8 @@
¿Omitir la selección de la carpeta de juegos?No se mostrará ningún juego si no se ha seleccionado una carpeta de juegos.https://yuzu-emu.org/help/quickstart/#dumping-games
- Buscar Juegos
+ Buscar juegos
+ Buscar configuraciónDirectorio de juegos seleccionadoInstalar prod.keysRequerido para descifrar juegos
@@ -58,15 +60,18 @@
CancelarInstalar clave de AmiibooNecesario para usar Amiibo en el juego
- Archivo de claves inválido seleccionado
+ Archivo de claves seleccionado inválidoClaves instaladas correctamenteError al leer las claves de cifrado
+ Compruebe que el archivo de claves tenga una extensión .keys y pruebe otra vez.
+ Compruebe que el archivo de claves tenga una extensión .bin y pruebe otra vez.Claves de cifrado no válidashttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keysEl archivo seleccionado es incorrecto o está corrupto. Vuelva a redumpear sus claves.Instalar driver de GPUInstale drivers alternativos para obtener un rendimiento o una precisión potencialmente mejoresOpciones avanzadas
+ Configuración avanzada: %1$sConfigurar las opciones del emuladorJugado recientementeAñadido recientemente
@@ -86,6 +91,33 @@
El nombre de la primera subcarpeta debe ser el Title ID del juego.ImportarExportar
+ Instalar firmware
+ El firmware debe estar en un archivo ZIP y es necesario para ejecutar algunos juegos
+ Instalando firmware
+ Firmware instalado con éxito
+ Falló la instalación de firmware
+ Asegúrese de que los archivos nca del firmware estén en la raíz del zip e inténtelo de nuevo.
+ Compartir registros de depuración
+ Comparta el archivo de registro de yuzu para depurar problemas
+ No se encontró ningún archivo de registro
+ Instalar contenido de juego
+ Instalar actualizaciones o DLC
+ Instalando contenido...
+ Error instalando archivo(s) a la NAND
+ Asegúrese de que el/los contenido(s) son válidos y que el archivo prod.keys esté instalado.
+ La instalación de los juegos base no está permitida para así evitar posibles conflictos.
+ Sólo hay soporte para el contenido en NSP y XCI. Asegúrese de que el/los contenido(s) son válidos.
+ %1$d error(es) de instalación
+ Contenido(s) de juego instalado/s con éxito
+ %1$d instalado con éxito
+ %1$d sobreescrito con éxito
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ Drivers personalizados no soportados
+ En estos momentos, la carga de drivers personalizados no está disponible para este dispositivo..\n¡Comprueba esta opción en el futuro para ver si ya está añadido el soporte a ese dispositivo!
+ Administrar datos de yuzu
+ Importa/exporta el firmware, las keys, los datos de usuario, ¡y más!
+ Compartir archivo de guardado
+ La exportación del guardado fallóGaia no es real
@@ -94,7 +126,18 @@
ContribuidoresHecho con \u2764 del equipo yuzuhttps://github.com/yuzu-emu/yuzu/graphs/contributors
+ Proyectos que hacen que yuzu para Android sea una realidadVersión
+ Datos de usuario
+ Importa/exporta todos los datos de usuario.\n\nCuando se importen los datos de usuario, ¡los demás datos de usuario existentes serán borrados!
+ Exportando datos de usuario...
+ Importando datos de usuario...
+ Importar datos de usuario
+ Backup de válido
+ Datos de usuario exportados con éxito
+ Datos de usuario importados con éxito
+ Exportación cancelada
+ Asegúrese de que las carpetas de datos de usuario estén en la raíz de la carpeta del zip y contengan un archivo config en config/config.ini e inténtelo de nuevo.https://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu
@@ -114,41 +157,53 @@
¿Estás interesado?
- Activar limite de velocidad
- Cuando está habilitado, la velocidad de emulación se limitará a un porcentaje específico de la velocidad normal.
+ Limitar velocidad
+ Limita la velocidad de emulación a un porcentaje específico de la velocidad normal.Limitar porcentaje de velocidad
- Especifica el porcentaje para limitar la velocidad de emulación. Con el valor predeterminado del 100 %, la emulación se limitará a la velocidad normal. Valores más altos o más bajos aumentarán o disminuirán el límite de velocidad.
+ Especifica el porcentaje para limitar la velocidad de emulación. 100% es la velocidad normal. Valores más altos o bajos incrementarán o disminuirán el límite de velocidad.Precisión de CPU
+ %1$s%2$s
- Modo sobremesa
- Emula en modo sobremesa, lo que aumenta la resolución perjudicando el rendimiento.
+ Modo Sobremesa
+ Incrementa la resolución al coste de reducir el rendimiento. El Modo Portátil es usado cuando está desactivado, reduciendo la resolución y mejorando así el rendimiento.Región emuladaIdioma emulado
- Seleccionar Fecha RTC
- Seleccionar Tiempo RTC
- Habilitar RTC Personalizado
- Esta configuración le permite configurar un reloj de tiempo real personalizado diferente a la hora actual de su sistema
- Establecer RTC Personalizado
+ Seleccionar fecha RTC
+ Seleccionar tiempo RTC
+ RTC personalizado
+ Te permite tener un reloj personalizado en tiempo real diferente del tiempo del propio sistema.
+ Configurar RTC personalizado
- APINivel de precisión
- Resolución
+ Resolución (Portátil/Sobremesa)Modo VSync
+ OrientaciónRelación de aspectoFiltro de adaptación de ventana
- Metodo Anti Aliasing
+ Método anti-aliasingForzar velocidad al máximo (solo Adreno)Fuerza a la GPU a ejecutarse a la velocidad máxima de reloj posible (se seguirán aplicando restricciones térmicas).Usar shaders asíncronos
- Compila shaders de forma asincrónica, lo que reducirá los parones pero puede introducir fallos.
- Habilitar la depuración de gráficos
- Cuando esté marcado, la API de gráficos entra en un modo de depuración más lento.
- Usar caché de shaders en disco
- Reduzca los parones almacenando y cargando shaders generados en el disco.
+ Compila shaders de manera asíncrona, reduciendo los parones, pero puede introducir fallos.
+ Usar limpieza reactiva
+ Mejora la precisión de renderizado en algunos juegos, pero reduce el rendimiento.
+ Caché de shaders en disco
+ Reduce los parones almacenando y cargando shaders generados.
+
+
+ CPU
+ Depuración de CPU
+ Pone la CPU en un modo de depuración lento.
+ GPU
+ API
+ Depuración de gráficos
+ Configura la API gráfica a un modo de depuración lento.
+ Fastmem
+ Motor de salidaVolumenEspecifica el volumen de la salida de audio.
@@ -157,14 +212,24 @@
Configuración guardadaConfiguración guardada para %1$sError guardando %1$s.ini: %2$s
+ Menú sin implementarCargando...
+ Saliendo...¿Desea restablecer esta configuración a su valor predeterminado?Restablecer a predeterminado¿Restablecer todas las configuraciones?
- Todas las configuraciones avanzadas se restablecerán a su configuración predeterminada. Esto no se puede deshacer.
+ Todas las opciones avanzadas se restablecerán a su configuración predeterminada. Esta acción no se puede deshacer.Reiniciar la configuracionCerrar
- Más información
+ Saber más
+ Auto
+ Enviar
+ Null
+ Importar
+ Exportar
+ La exportación falló
+ La importación falló
+ CancelandoSeleccionar driver GPU
@@ -172,6 +237,7 @@
InstalarPredeterminadoUsando el driver de GPU por defecto
+ ¡Driver no válido, utilizando el predeterminado del sistema!Driver GPU del sistemaInstalando driver...
@@ -182,10 +248,11 @@
GráficosAudioTema y color
+ DepuraciónSu ROM está encriptada
- cartuchos de juegos o titulos instalados.]]>
+ cartuchos de juegos o títulos instalados.]]>prod.keys está instalado, para que los juegos sean descifrados.]]>Ocurrió un error al inicializar el núcleo de video, posiblemente debido a una incompatibilidad con el driver seleccionadoEsto suele deberse a un driver de GPU incompatible. La instalación de un controlador de GPU personalizado puede resolver este problema.
@@ -196,25 +263,25 @@
Salir de la emulaciónHechoContador de FPS
- Alternar Controles
- Centro Relativo del Stick
- Deslizamiento de la Cruceta
- Hápticos
- Mostrar pantalla
- Alternar Todo
- Ajustar pantalla
+ Alternar controles
+ Centro relativo del stick
+ Deslizamiento de la cruceta
+ Toques hápticos
+ Mostrar overlay
+ Alternar todo
+ Ajustar overlayEscalaOpacidad
- Reiniciar pantalla
- Editar pantalla
- Pausar Emulación
- Reanudar Emulación
- Opciones de pantalla
+ Reiniciar overlay
+ Editar overlay
+ Pausar emulación
+ Despausar emulación
+ Opciones de overlayCargando configuración...
- Software del teclado
+ Teclado de softwareAbortar
@@ -226,6 +293,9 @@
Error fatalOcurrió un error fatal. Consulte el registro para obtener más detalles.\nContinuar con la emulación puede provocar bloqueos y errores.¡Desactivar esta configuración reducirá significativamente el rendimiento de la emulación! Para obtener la mejor experiencia, se recomienda dejar esta configuración habilitada.
+ RAM de dispositivo: %1$s\nRecomendado: %2$s
+ %1$s %2$s
+ ¡No hay ningún juego ejecutable presente!Japón
@@ -236,7 +306,14 @@
CoreaTaiwán
-
+
+ Byte
+ KB
+ MB
+ GB
+ TB
+ PB
+ EBVulkan
@@ -274,6 +351,11 @@
FXAASMAA
+
+ Paisaje
+ Retrato
+ Auto
+
Predeterminado (16:9)Forzar 4:3
@@ -298,7 +380,7 @@
Construyendo shaders
- Cambiar Tema
+ Cambiar temaPredeterminadoMaterial You
@@ -308,8 +390,22 @@
ClaroOscuro
+
+ cubeb
+
- Usar Fondos Negros
+ Fondos oscurosCuando utilice el modo oscuro, aplique fondos negros.
-
+
+ Picture in Picture
+ Minimizar ventana cuando esté en segundo plano
+ Pausar
+ Jugar
+ Mutear
+ Desmutear
+
+
+ Licencias
+ Upscaling de alta calidad de AMD
+
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 1e02828aa..5a827c50b 100644
--- a/src/android/app/src/main/res/values-fr/strings.xml
+++ b/src/android/app/src/main/res/values-fr/strings.xml
@@ -1,5 +1,5 @@
-
+Ce logiciel exécutera des jeux pour la console de jeu Nintendo Switch. Aucun jeux ou clés n\'est inclus.<br /><br />Avant de commencer, veuillez localiser votre fichier prod.keys ]]> sur le stockage de votre appareil.<br /><br />En savoir plus]]>L\'émulation est active
@@ -19,12 +19,13 @@
JeuxSélectionnez votre dossier <b>de Jeux</b> avec le bouton ci-dessous.Terminé
- Vous êtes prêt.\nProfitez de vos jeux !
+ Vous êtes prêt.\nProfitez de vos jeux !ContinuerSuivantRetourAjouter des jeux
- Sélectionner votre dossier de jeux
+ Sélectionner le dossier des jeux
+ Terminé !Jeux
@@ -32,12 +33,13 @@
ParamètresAucun fichier n\'a été trouvé ou aucun répertoire de jeu n\'a encore été sélectionné.Rechercher et filtrer les jeux
- Sélectionner le dossier de jeux
+ Sélectionner le dossier des jeuxPermet à yuzu de remplir la liste des jeux
- Ne pas sélectionner le dossier des jeux ?
+ Ne pas sélectionner le dossier des jeux ?Les jeux ne seront pas affichés dans la liste des jeux si aucun dossier n\'est sélectionné.https://yuzu-emu.org/help/quickstart/#dumping-gamesRechercher des jeux
+ Rechercher un paramètreRépertoire de jeux sélectionnéInstaller prod.keysNécessaire pour décrypter les jeux commerciaux.
@@ -46,7 +48,7 @@
https://yuzu-emu.org/help/quickstart/#guide-introductionNotificationsAccordez l\'autorisation de notification avec le bouton ci-dessous.
- Donner la permission
+ Accorder la permissionNe pas accorder la permission de notification ?yuzu ne pourra pas vous communiquer d\'informations importantes.Permission refusée
@@ -61,12 +63,15 @@
Fichier de clés sélectionné invalideClés installées avec succèsErreur lors de la lecture des clés de chiffrement
+ Vérifiez que votre fichier de clés a une extension .keys et réessayez.
+ Vérifiez que votre fichier de clés a une extension .bin et réessayez.Clés de chiffrement invalideshttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keysLe fichier sélectionné est incorrect ou corrompu. Veuillez dumper à nouveau vos clés.Installer le pilote du GPU
- Installez des pilotes alternatifs pour des performances ou une précision potentiellement meilleures
+ Installer des pilotes alternatifs pour des performances ou une précision potentiellement meilleuresParamètres avancés
+ Paramètres avancés : %1$sConfigurer les paramètres de l\'émulateurJoué récemmentAjouté récemment
@@ -86,6 +91,33 @@
Le nom du premier sous-dossier doit être l\'identifiant du titre du jeu.ImporterExporter
+ Installer le firmware
+ Le firmware doit être dans une archive ZIP et est nécessaire pour démarrer certains jeux.
+ Installation du firmware
+ Firmware installé avec succès
+ L\'installation du firmware a échoué
+ Assurez-vous que les fichiers NCA du firmware se trouvent à la racine du fichier ZIP, puis réessayez.
+ Partager les logs de débogage
+ Partagez le fichier de log de yuzu pour déboguer les problèmes.
+ Aucun fichier de log trouvé
+ Installer le contenu du jeu
+ Installer une mise à jour ou un DLC
+ Installation du contenu en cours...
+ Erreur lors de l\'installation du fichier dans la NAND
+ Veuillez vous assurer que le contenu est valide et que le fichier prod.keys est installé.
+ L\'installation de jeux de base n\'est pas autorisée afin d\'éviter d\'éventuels conflits.
+ Seuls les contenus NSP et XCI sont pris en charge. Veuillez vérifier que le contenu du jeu est valide.
+ %1$d erreur(s) d\'installation
+ Contenu du jeu installé avec succès
+ %1$d installé avec succès
+ %1$d écrasé avec succès
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ Pilotes personnalisés non supporté
+ Le chargement des pilotes personnalisés ne sont pas actuellement pris en charge pour ce périphérique. Vérifiez à nouveau cette option à l\'avenir pour voir si la prise en charge a été ajoutée !
+ Gérer les données de yuzu
+ Importer/exporter le firmware, les clés, les données utilisateur, et bien plus encore !
+ Partager le fichier de sauvegarde
+ Échec de l\'exportation de la sauvegardeGaia n\'est pas réel
@@ -94,7 +126,18 @@
ContributeursFait avec \u2764 de l\'équipe yuzuhttps://github.com/yuzu-emu/yuzu/graphs/contributors
+ Des projets qui rendent possible yuzu pour AndroidBuild
+ Données utilisateur
+ Importer/exporter toutes les données de l\'application.\n\nLors de l\'importation des données utilisateur, toutes les données utilisateur existantes seront supprimées !
+ Exportation des données utilisateur...
+ Importation des données utilisateur...
+ Importer des données utilisateur
+ Backup yuzu invalide
+ Les données utilisateur ont été exportés avec succès
+ Les données utilisateur ont été importées avec succès
+ Exportation annulée
+ Assurez-vous que les dossiers de données utilisateur se trouvent à la racine du dossier ZIP et contiennent un fichier de configuration à config/config.ini, puis réessayez.https://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu
@@ -114,64 +157,87 @@
Es tu intéressé ?
- Activer la vitesse limite
- Lorsqu\'elle est activée, la vitesse d\'émulation sera limitée à un pourcentage spécifié de la vitesse normale.
+ Limitation de vitesse
+ Limiter la vitesse d\'émulation à un pourcentage spécifié de la vitesse normaleLimite en pourcentage de vitesse
- Spécifie le pourcentage pour limiter la vitesse d\'émulation. Avec la valeur par défaut de 100%, l\'émulation sera limitée à la vitesse normale. Des valeurs supérieures ou inférieures augmenteront ou diminueront la limite de vitesse.
+ Spécifier le pourcentage pour limiter la vitesse d\'émulation. 100% correspond à la vitesse normale. Des valeurs plus élevées ou plus basses augmenteront ou diminueront la limite de vitesse.Précision du CPU
+ %1$s%2$sMode TV
- Émuler en mode TV augmente la résolution au détriment des performances.
+ Augmenter la résolution, ce qui diminue les performances. Le mode portable est utilisé lorsque la fonction est désactivée, ce qui réduit la résolution et améliore les performances.Région émuléeLangue émuléeSélectionner la date RTCSélectionner l\'heure RTC
- Activer l\'horloge RTC personnalisée
- Ce paramètre vous permet de définir une horloge en temps réel personnalisée distincte de l\'heure actuelle de votre système.
+ RTC personnalisé
+ Vous permet de définir une horloge en temps réel personnalisée distincte de l\'heure actuelle de votre système.Définir l\'horloge RTC personnalisée
- APINiveau de précision
- Résolution
+ Résolution (Mode Portable/Mode TV)Mode VSync
+ OrientationFormatFiltre de fenêtre adaptatif
- Méthode d\'anticrénelage :
- Forcer la fréquence d\'horloge maximale (Adreno uniquement)
- Force le GPU à fonctionner au maximum d\'horloges possibles (les contraintes thermiques seront toujours appliquées).
+ Méthode d\'anticrénelage
+ Forcer les fréquences maximales (Adreno uniquement)
+ Forcer le GPU à fonctionner à ses fréquences maximales possibles (les contraintes thermiques seront toujours appliquées).Utiliser les shaders asynchrones
- Compile les shaders de manière asynchrone, ce qui réduira les saccades mais peut entraîner des problèmes visuels.
- Activer le débogage des graphismes
- Lorsque cette case est cochée, l\'API graphique entre dans un mode de débogage plus lent.
- Utiliser les shader cache de disque
- Réduire les saccades en stockant et en chargeant les shaders générés sur le disque.
+ Compile les shaders de manière asynchrone, réduisant les saccades mais pouvant entraîner des problèmes visuels.
+ Utiliser le vidage réactif
+ Améliore la précision du rendu dans certains jeux au détriment des performances.
+ Utiliser les shader cache
+ Réduire les saccades en stockant et en chargeant localement les shaders générés
+
+
+ CPU
+ Débogage du CPU
+ Place le CPU en mode lent de débogage.
+ GPU
+ API
+ Débogage des graphismes
+ Définit l\'API graphique en mode de débogage lent.
+ Fastmem
+ Moteur de sortieVolume
- Spécifie le volume de la sortie audio.
+ Spécifier le volume de la sortie audio.
- Défaut
+ Par défautParamètres enregistrésParamètres enregistrés pour %1$sErreur lors de l\'enregistrement de %1$s.ini: %2$s
+ Menu non implémentéChargement...
- Voulez-vous réinitialiser ce paramètre à sa valeur par défaut ?
+ Extinction en cours...
+ Voulez-vous réinitialiser ce paramètre à sa valeur par défaut ?Réinitialiser par défautRéinitialiser tous les réglages ?Tous les paramètres avancés seront réinitialisés à leur configuration par défaut. Ça ne peut pas être annulé.Paramètres réinitialisésFermer
- Plus d\'informations
+ En savoir plus
+ Auto
+ Soumettre
+ Nul
+ Importer
+ Exporter
+ L\'exportation a échoué
+ L\'importation a échoué
+ AnnulationSélectionner le pilote du GPUSouhaitez vous remplacer votre pilote actuel ?Installer
- Défaut
- Utilisation du pilote de GPU par défaut
+ Par défaut
+ Utilisation du pilote du GPU par défaut
+ Pilote non valide sélectionné, utilisation du paramètre par défaut du système !Pilote du GPU du systèmeInstallation du pilote...
@@ -182,13 +248,14 @@
VidéoAudioThème et couleur
+ DébogageVotre ROM est cryptée
- cartouches de jeu ou titres installés.]]>
+ cartouches de jeu ou de vos titres installés.]]>prod.keys est installé pour que les jeux puissent être déchiffrés.]]>Une erreur s\'est produite lors de l\'initialisation du noyau vidéo
- Cela est généralement dû à un pilote du GPU incompatible. L\'installation d\'un pilote du GPU personnalisé peut résoudre ce problème.
+ Cela est généralement dû à un pilote GPU incompatible. L\'installation d\'un pilote GPU personnalisé peut résoudre ce problème.Impossible de charger la ROMLe fichier ROM n\'existe pas
@@ -198,8 +265,8 @@
Compteur FPSActiver/Désactiver les contrôlesCentre du stick relatif
- Glissement du DPad
- Haptique
+ Glissement du D-pad
+ Toucher haptiqueAfficher l\'overlayTout basculerAjuster l\'overlay
@@ -225,7 +292,10 @@
Erreur de sauvegarde/chargementErreur fataleUne erreur fatale s\'est produite. Consultez les logs pour plus de détails.\nContinuer l\'émulation peut entraîner des plantages et des bogues.
- La désactivation de ce paramètre réduira considérablement les performances d\'émulation ! Pour une expérience optimale, il est recommandé de laisser ce paramètre activé.
+ La désactivation de ce paramètre réduira considérablement les performances d\'émulation ! Pour une expérience optimale, il est recommandé de laisser ce paramètre activé.
+ Mémoire RAM de l\'appareil : %1$s\nRecommandé : %2$s
+ %1$s %2$s
+ Aucun jeu démarreable présent !Japon
@@ -236,7 +306,14 @@
CoréeTaïwan
-
+
+ Octet
+ Ko
+ Mo
+ GB
+ To
+ Po
+ EoVulkan
@@ -274,6 +351,11 @@
FXAASMAA
+
+ Paysage
+ Portrait
+ Auto
+
Par défaut (16:9)Forcer le 4:3
@@ -288,8 +370,8 @@
Pavé directionnel
- Stick Gauche
- Stick Droit
+ Stick gauche
+ Stick droitHomeCapture d\'écran
@@ -299,7 +381,7 @@
Changer le thème de l\'application
- Défaut
+ Par défautMaterial You
@@ -308,8 +390,22 @@
LumineuxSombre
-
- Utiliser des arrière-plans noirs
- Lorsque vous utilisez le thème sombre, appliquer des arrière-plans noirs.
+
+ cubeb
-
+
+ Arrière-plan noir
+ Lorsque vous utilisez le thème sombre, appliquer un arrière-plan noir.
+
+
+ Lecteur réduit
+ Réduire la fenêtre lorsqu\'elle est placée en arrière-plan
+ Pause
+ Jouer
+ Couper le son
+ Remettre le son
+
+
+ Licences
+ Mise à l\'échelle de haute qualité par AMD.
+
diff --git a/src/android/app/src/main/res/values-he/strings.xml b/src/android/app/src/main/res/values-he/strings.xml
new file mode 100644
index 000000000..0af78a57c
--- /dev/null
+++ b/src/android/app/src/main/res/values-he/strings.xml
@@ -0,0 +1,367 @@
+
+
+
+ התוכנה תריץ משחקים לקונסולת ה Nintendo Switch. אף משחק או קבצים בעלי זכויות יוצרים נכללים.<br /><br /> לפני שאת/ה מתחיל בבקשה מצא את קובץ prod.keys]]> על המכשיר.<br /><br />קרא עוד]]>
+ אמולציה פעילה
+ מציג התראה מתמשכת כאשר האמולציה פועלת.
+ yuzu רץ
+ התראות ותקלות
+ מציג התראות כאשר משהו הולך לא כשורה.
+ הרשאות התראות לא ניתנה!
+
+
+ ברוכים הבאים!
+ למד איך להפעיל <b>yuzu</b> וקפוץ ישר לאמולציה.
+ כדי להתחיל
+ מפתחות
+ בחר את קובץ ה <b>prod.keys</b> שלך עם הכפתור למטה.
+ בחר מפתחות
+ משחקים
+ בחר את התיקיית ה <b>Games</b> שלך עם הכפתור למטה.
+ סיום
+ את/ה מוכן. \nתהנה/י מהמשחקים שלך
+ המשך
+ הבא
+ אחורה
+ הוסף משחקים
+ בחר/י את תיקיית המשחקים שלך
+ הושלם!
+
+
+ משחקים
+ חפש
+ הגדרות
+ לא נמצאו קבצים או לנבחרה ספריית קבצים בינתיים.
+ חפש וסנן משחקים
+ בחר תיקיית משחקים
+ אפשר ל yuzu לאכלס את רשימת המשחקים
+ לדלג על בחירת תיקיית המשחקים?
+ משחקים לא יוצגו ברשימת המשחקים אם לנבחרה תיקיית משחקים.
+ https://yuzu-emu.org/help/quickstart/#dumping-games
+ חפש משחקים
+ חפש בהגדרות
+ ספריית משחקים נבחרה
+ התקן prod.keys
+ הכרחי בכדי לפענח משחקים
+ לדלג על הוספת מפתחות?
+ מפתחות חוקיים הכרחיים כדי לשחק במשחקים. רק אפליקציות פירטיות יפעלו אם תמשיך.
+ https://yuzu-emu.org/help/quickstart/#guide-introduction
+ התראות
+ תן גישה להתראות עם הכפתור למטה.
+ תן הרשאה
+ דלג על מתן הרשאה להתראות?
+ yuzu לא יוכל להתריע לך על מידע חשוב.
+ הרשאה נדחתה
+ את/ה דיחת את ההרשאה יותר מדי פעמים ועכשיו את/ה צריך/ה לתת גישה באופן ידני בהגדרות.
+ אודות
+ מספר גירסה, קרדיטים ועוד
+ עזרה
+ דלג
+ ביטול
+ התקן מפתחות Amiibo
+ נחוץ כדי להשתמש ב Amiibo במשחק
+ קובץ מפתחות לא חוקי נבחר
+ מפתחות הותקנו בהצלחה
+ שגיאה בקריאת מפתחות ההצפנה
+ ודא שלקובץ המפתחות שלך יש סיומת של key. ונסה/י שוב.
+ ודא/י שלקובץ המפתחות שלך יש סיומת של bin. ונסה/י שוב.
+ מפתחות הצפנה לא חוקיים
+ https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys
+ קבוץ שנבחר מושחת או לא נכון. בבקשה הוצא מחדש את המפתחות שלך.
+ התקן דרייבר למעבד הגרפי
+ התקן דרייברים אחרים בשביל סיכוי לביצועים או דיוק גבוההים יותר
+ הגדרות מתקדמות
+ הגדרות מתקדמות: %1$s
+ הדר את הגדרות האמולטור
+ שוחק לאחרונה
+ הוסף לאחרונה
+ קמעונאי
+ Homebrew
+ פתח את תיקיית yuzu
+ נה ל את הקבצים הפנימיין של yuzu
+ ערוך את נראות האפליקציה
+ לא נמצא מנהל קבצים
+ לא יכול לפתוח את ספריית yuzu
+ בבקשה מקם את תיקיית המשתמש בפנל הצידי של מנהל הקבצים באופן ידני.
+ נהל מידע שמור
+ מידע שמור לא נמצא. בבקשה בחר/י אופציה מלמטה
+ יבא או יצא קבצי שמירה
+ יובא בהצלחה
+ מבנה ספריית השמירות לא חוקי
+ התת תיקייה הראשונה חייב להיות ה title ID של המשחק
+ ייבוא
+ ייצוא
+ התקן firmware
+ ה frimware חייב להיות בקובץ zip והוא הכרחי להפעלת חלק מהמשחקים
+ מתקין frimware
+ ה frimware הותקן בהצלחה
+ התקנת ה frimware נכשלה
+ ודא שקבצי ה firmware nca נמצאים בשורש ה zip ונסה שוב.
+ שתף את יומני הרישום של מיפוי הבאגים
+ שתף את קובץ יומני הרישום של yuzu בכדי לתקן בעיות
+ לא נמצא קובץ יומן רישום
+ התקן תוכן משחק
+ התקן עדכוני משחק או DLC
+ מתקין תוכן...
+ תקלה בהתקנת הקובץ (או קבצים) ל NAND
+ בבקשה ודא שהתוכן (או תכנים) חוקיים ושקובץ ה prod.keys מותקן.
+ התקנת משחק בסיס נדחת בכדי להימנע מקונפליקטים אפשריים.
+ רק קבצי NSP ו XCI נתמכים. בבקשה ודא שתוכן (או תכנים) המשחק חוקי.
+ %1$dבעיה (בעיות) התקנה
+ תוכן (או תכני) המשחק הותקנו בהצלחה
+ %1$d הותקן בהצלחה
+ %1$d נדרס/נכתב מעל בהצלחה
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ דרייברים מותאמים אישית לא נתמכים
+ הטענת דרייבים מותאמים אישית לא נתמך כרגע על מכשיר זה. \nבבקשה בדוק אופציה זו בעתיד בכדי לראות אם נוספה תמיכה!
+ נהל את המידע של yuzu
+ יבא/יצא firmware, keys, מידע של משתמש ועוד!
+ שתף קובץ שמירה
+ נכשל בייצוא שמירה
+
+
+ Gaia לא אמיתית
+ הועתק ללוח
+ אמולטור Switch עם קוד פתוח
+ תורמים
+ נוצר עם \u2764 מקבוצת yuzu
+ https://github.com/yuzu-emu/yuzu/graphs/contributors
+ פרוייקטים שהופכים את yuzu ל Android אפשרי
+ גרסה
+ נתוני משתמש
+ יבא/יצא את כל נתוני האפליקציה.\n\nכאשר מייבאים את נתוני המשתמש, כל נתוני המשתמש הקיימים ימחקו!
+ מייצא נתוני משתמש...
+ מייבא נתוני משתמש...
+ יבא נתוני משתמש
+ גיבוי yuzu לא חוקי
+ נתוני משתמש יוצאו בהצלחה
+ נתוני משתמש יובאו בהצלחה
+ ייצוא בוטל
+ ודא שנתוני המשתמש נמצאים בשורש קובץ ה zip ושהוא מכיל קובץ סידור ב config/config.ini ונסה שוב.
+ https://discord.gg/u77vRWY
+ https://yuzu-emu.org/
+ https://github.com/yuzu-emu
+
+
+ גישה מוקדמת
+ קבל גישה מוקדמת
+ https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea
+ תכונות חותכות קצה, גישה מוקדמת לעדכונים, ועוד
+ יתרונות של גישה מקודמת
+ תכונות חותכות קצה
+ גישה מוקדמת לעדכונים
+ ללא התקנה ידנית
+ תמיכה בעדיפות
+ עוזר בשמירת משחקים
+ התודה האינסופית שלנו
+ אתה מעוניין?
+
+
+ הגבל מהירות
+ מגביל את מהירות האמולציה לאחוז מהירות המבוקש מהמהירות הרגילה.
+ הגבל את אחוז המהירות
+ מדייק את אחוז מהירות האמולציה. 100% זה מהירות רגילה. ערכים גדולים או קטנים יאיצו או יאטו את מהירות האמולציה.
+ דיוק המעבד
+ %1$s%2$s
+
+
+ מצב עגינה
+ מעלה את הרזולוציה, פוגע בביצועים. משתמש במצב נייד כאשר מנוטרל, מפחית את הרזולוציה ומעלה את הביצועים.
+ אזור אמולציה
+ שפת אמולציה
+ בחר תאריך RTC
+ בחר זמן RTC
+ RTC מותאם אישית
+ מאפשר לך לקבוע שעון זמן אמת נפרד משעון המערכת שלך.
+ קבע RTC מותאם אישית
+
+
+ רמת דיוק
+ רזולוציה (מעוגן/נייד)
+ מצב VSync
+ כיוון
+ יחס רוחב גובה
+ פילטר מתאם חלון
+ שיטת Anti-aliasing
+ החזק מהירות שעון מקסימלית (רק ל Adreno)
+ מכריח לדחוף את מהירויות המעבד הגרפי למקסימום (הגבלות חום ימשיכו לתפקד).
+ משפר את הדיוק של האמולציה במשחקים מסויימים במחיר של ביצועים.
+
+ מעבד
+ מכניס את המעבד למצב דיבאג איטי
+ מעבד גרפי
+
+ מנוע פלט
+ עוצמת שמע
+
+ ברירת מחדל
+ הגדרות שמורות
+ הגדרות שמורות עבור %1$s
+ תקלה בשמירת %1$s.ini: %2$s
+ טוען...
+ כיבוי...
+ אתה מעוניין לאפס את ההגדרה הזו חזרה לברירת המחדל?
+ אפס לברירת המחדל
+ לאפס את כל ההגדרות?
+ כל ההגדרות המתקדמות יאופסו לברירת המחדל. לא ניתן לבטל פעולה זו.
+ אפס הגדרות
+ סגור
+ למד עוד
+ אוטומטי
+ שלח
+ ייבוא
+ ייצוא
+ ייצוא נכשל
+ ייבוא נכשל
+ מבטל
+
+
+ בחר דרייבר למעבד הגרפי
+ אתה מעוניין להחליף את הדרייבר של המעבד הגרפי שלך?
+ התקן
+ ברירת מחדל
+ משתמש בדרייבר ברירת המחדל של המעבד הגרפי
+ דרייבר לא חוקי נבחר, משתמש בברירת המחדל של המערכת!
+ דרייבר של המעבד הגרפי של המערכת
+ מתקין דרייבר...
+
+
+ הגדרות
+ כללי
+ מערכת
+ גרפיקה
+ שמע
+ צבע ונושא
+
+ המשחק שלך מוצפן
+ אין אפשרות לטעון את המשחק
+ קובץ המשחק לא קיים
+
+
+ צא מהאמולציה
+ סיום
+ סופר FPS
+ קנה מידה
+ שקיפות
+ עצור אמולציה
+ המשך אמולציה
+ טוען הגדרות...
+
+
+ מקלדת תוכנה
+
+
+ אודות
+ המשך
+ ארכיון מערכת לא נמצא
+ %s חסר. בבקשה הוצא תא ארכיוני המערכת שלך./nהמשכת האמולציה עלולה לגרום לקריסות ובאגים.
+ ארכיון מערכת
+ בעיית שמירה/טעינה
+ שגיאה חמורה
+ RAM המכשיר: %1$s/nמומלץ: %2$s
+ %1$s%2$s
+ אין משחק שניתן להריץ!
+
+
+ יפן
+ ארה״ב
+ אירופה
+ אוסטרליה
+ סין
+ קוריאה
+ טייוואן
+
+
+ בייט
+ KB
+ MB
+ GB
+ TB
+ PB
+ EB
+
+
+ Vulkan
+ אין שום דבר
+
+
+ רגיל
+ גבוה
+ אקסטרים (איטי)
+
+
+ 0.5X (360p/540p)
+ 0.75X (540p/810p)
+ 1X (720p/1080p)
+ 2X (1440p/2160p) (איטי)
+ 3X (2160p/3240p) (איטי)
+ 4X (2880p/4320p) (איטי)
+
+ תיבת דואר
+ FIFO (On)
+ FIFO נינוח
+
+
+ השכן הקרוב ביותר
+ ScaleForce
+ AMD FidelityFX™ Super Resolution
+
+
+ אין שום דבר
+ FXAA
+ SMAA
+
+
+ לרוחב
+ לאורך
+ אוטומטי
+
+
+ ברירת מחדל (16:9)
+ הכרח 4:3
+ הכרח 21:9
+ הכרח 16:10
+ הרחב לגודל המסך
+
+
+ מדויק
+ לא בטוח
+ פראנואידי (איטי)
+
+
+ D-pad
+ ג׳ויסטיק שמאלי
+ ג׳ויסטיק ימני
+ בית
+ צילום מסך
+
+
+ שנה את נושא האפליקצייה
+ ברירת מחדל
+ חומר אתה/מאטיריאל יו
+
+
+ שנה את מצב הנושא
+ עקוב אחרי המערכת
+ בהיר
+ כהה
+
+
+ cubeb
+
+
+ רקעים שחורים
+ כשמתשמשים במצב כהה, שם רקעים שחורים.
+
+
+ תמונה בתוך תמונה
+ הקטן את החלון כאשר נמצא ברקע
+ עצור
+ שחק
+ השתק
+ בטל השתקה
+
+
+ רישיונות
+ אפסקיילינג באיכות גבוהה מ AMD
+
diff --git a/src/android/app/src/main/res/values-hu/strings.xml b/src/android/app/src/main/res/values-hu/strings.xml
new file mode 100644
index 000000000..6563ba288
--- /dev/null
+++ b/src/android/app/src/main/res/values-hu/strings.xml
@@ -0,0 +1,402 @@
+
+
+
+ Ez a szoftver Nintendo Switch játékkonzolhoz készült játékokat futtat. Nem tartalmaz játékokat vagy kulcsokat. .<br /><br />Mielőtt hozzákezdenél, kérjük, válaszd ki a prod.keys]]> fájl helyét a készülék tárhelyén<br /><br />Tudj meg többet]]>
+ Emuláció aktív
+ Állandó értesítést jelenít meg, amíg az emuláció fut.
+ A yuzu fut
+ Megjegyzések és hibák
+ Értesítések megjelenítése, ha valami rosszul sül el.
+ Nincs engedély az értesítés megjelenítéséhez!
+
+
+ Üdvözöljük!
+ Ismerkedj meg a <b>yuzu</b> beállításával és ugorj bele az emulációba.
+ Vágjunk bele
+ Kulcsok
+ Válaszd ki a(z) <b>prod.keys</b> fájlodat az alábbi gombbal.
+ Kulcsok kiválasztása
+ Játékok
+
+Válaszd ki a(z) <b>Games</b> mappát az alábbi gombbal.
+ Kész
+ Minden kész.\nJó szórakozást!
+ Folytatás
+ Következő
+ Vissza
+ Játékok hozzáadása
+ Játékaid mappa kiválasztása
+ Kész!
+
+
+ Játékok
+ Keresés
+ Beállítások
+ Nem található fájl, vagy még nincs kiválasztva könyvtár.
+ Játékok keresése és szűrése
+ Játékmappa kiválasztása
+ Kihagyod a játékok mappa kiválasztását?
+ A játékok nem jelennek meg a Játékok listában, ha egy mappa nincs kijelölve.
+ https://yuzu-emu.org/help/quickstart/#dumping-games
+ Játékok keresése
+ Beállítások keresése
+ Játékok könyvtár kiválasztva
+ prod.keys telepítése
+ Kiskereskedelmi játékok dekódolásához szükséges
+ Kihagyod a kulcsok hozzáadását?
+ A kiskereskedelmi játékok emulálásához érvényes kulcsokra van szükség. Csak a homebrew alkalmazások fognak működni, ha folytatod.
+ https://yuzu-emu.org/help/quickstart/#guide-introduction
+ Értesítések
+ Értesítési engedélyek megadása az alábbi gombbal.
+ Engedély megadása
+ Kihagyod az értesítési engedély megadását?
+ yuzu nem fog tudni értesíteni a fontos imformációkról
+ Engedély megtagadva
+ Túl gyakran utasítottad el a hozzáférést, így manuálisan kell jóváhagynod a rendszer beállításokban.
+ A programról
+ Build verzió, készítők, és még több
+ Segítség
+ Kihagyás
+ Mégse
+ Amiibo kulcsok telepítése
+ Amiibo használata szükséges a játékhoz
+ Érvénytelen titkosítófájlok kiválasztva
+ Kulcsok sikeresen telepítve
+ Hiba történt a titkosítókulcsok olvasása során
+ Győződj meg róla, hogy a titkosító fájlod .keys kiterjesztéssel rendelkezik, majd próbáld újra.
+ Győződj meg róla, hogy a titkosító fájlod .bin kiterjesztéssel rendelkezik, majd próbáld újra.
+ Érvénytelen titkosítókulcsok
+ https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys
+ A kiválasztott fájl helytelen, vagy sérült. Állíts össze egy új kulcsot.
+ GPU illesztőprogram telepítése
+ Alternatív illesztőprogramok telepítése az esetlegesen elérhető teljesítmény és pontosság érdekében
+ Haladó beállítások
+ Haladó beállítások: %1$s
+ Emulátorbeállítások konfigurálása
+ Nemrég játszva
+ Nemrég hozzáadva
+ Kiskereskedelmi
+ yuzu mappa megnyitása
+ yuzu belső fájljainak kezelése
+ Az alkalmazás megjelenésének módosítása
+ Nem található fájlkezelő
+ Nem sikerült megnyitni a yuzu könyvtárat
+ Kérjük, manuálisan keresd meg a felhasználói mappát a fájlkezelő oldalsó paneljével.
+ Mentésadatok kezelése
+ Mentés található. Kérjük, válassz egyet az alábbi opciók közül.
+ Mentési fájlok importálás vagy exportálása
+ Sikeresen importálva
+ Érvénytelen mentési könyvtárstruktúra
+ Az első almappa neve a játék azonosítója kell, hogy legyen.
+ Importálás
+ Exportálás
+ Firmware telepítés
+ A firmwarenek ZIP archívumban kell lennie, és szükséges a játékok indításához
+ Firmware telepítése
+ Firmware sikeresen telepítve
+ Firmware telepítése sikertelen
+ Győződj meg róla, hogy a firmware nca fájlok a zip gyökerénél vannak, és próbáld meg újra.
+ Hibakereső logok megosztása
+ A yuzu naplófájl megosztása a problémák elhárításához
+ Nem található log fájl
+ Játéktartalom telepítése
+ Játékfrissítések vagy DLC telepítése
+ Tartalom telepítése...
+ Hiba történt a fájl(ok) NAND-ra telepítése közben
+ Győződj meg róla, hogy a tartalom valós, és a prod.keys fájl telepítve van.
+ Az alapjátékok telepítése nem engedélyezett az esetleges konfliktusok elkerülése érdekében.
+ Csak NSP és XCI tartalom támogatott. Győződj meg róla, hogy a játéktartalom érvényes.
+ %1$d telepítési hiba
+ Játéktartalom sikeresen telepítve
+ %1$d sikeresen telepítve
+ %1$d sikeresen felülírva
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ Egyéni illesztőprogramok nem támogatottak
+ Egyéni illesztőprogram telepítése jelenleg nem támogatott ezen az eszközön.\nNézz vissza később, hátha hozzáadtuk a támogatását!
+ yuzu adatok kezelése
+ Firmware, kulcsok, felhasználói adatok és egyebek importálása/exportálása
+ Mentési fájl megosztása
+ A mentés exportálása sikertelen
+
+
+ Gaia nem valódi
+ Másolva a vágólapra
+ Egy nyílt forráskódú Switch emulátor
+ Hozzájárulók
+ \u2764 által készítve a yuzu csapattól
+ https://github.com/yuzu-emu/yuzu/graphs/contributors
+ Projektek, amik nélkül a yuzu nem jöhetett volna létre Androidra
+ Felhasználói adatok
+ Az összes alkalmazásadat importálása/exportálása.\n\nA felhasználói adatok importálásakor az összes meglévő felhasználói adat törlődik!
+ Felhasználói adatok exportálása...
+ Felhasználói adatok importálása...
+ Felhasználói adatok importálása
+ Érvénytelen yuzu biztonsági másolat
+ Felhasználói adatok sikeresen exportálva
+ Felhasználói adatok sikeresen importálva
+ Exportálás megszakítva
+ Ellenőrizd, hogy a felhasználói adatok mappái a zip mappa gyökerében vannak, és tartalmaznak egy konfig fájlt a config/config.ini címen, majd próbáld meg újra.
+ https://discord.gg/u77vRWY
+ https://yuzu-emu.org/
+ https://github.com/yuzu-emu
+
+
+ Korai hozzáférés
+ Szerezz korai hozzáférést
+ https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea
+ Legújabb funkciók, korai hozzáférés a frissítésekhez, és sok más
+ Korai hozzáférés előnyei
+ Legújabb funkciók
+ Korai hozzáférés a frissítésekhez
+ Automatikus telepítések
+ Priorizált támogatás
+ Valamint az örök hálánk
+ Érdekel a dolog?
+
+
+ Sebességkorlát
+ Korlátozza az emuláció sebességét a normál sebesség adott százalékára.
+ Sebességkorlát százaléka
+ Az emuláció sebességét határozza meg. 100% a normál sebesség. A magasabb értékek növelik, az alacsonyabbak csökkentik a sebességkorlátot.
+ CPU pontosság
+ %1$s%2$s
+
+
+ Dokkolt mód
+ Növeli a felbontást, de csökkenti a teljesítményt. Kikapcsolás esetén a Kézi mód van használatban, ami kisebb felbontást, de nagyobb teljesítményt eredményez.
+ Emulált régió
+ Emulált nyelv
+ Válassz RTC dátumot
+ Válassz RTC időt
+ Egyéni RTC
+ Megadhatsz egy valós idejű órát, amely eltér a rendszer által használt órától.
+ Egyéni RTC beállítása
+
+
+ Pontosság szintje
+ Felbontás (Kézi/Dockolt)
+ VSync mód
+ Orientáció
+ Képarány
+ Ablakhoz alkalmazkodó szűrő
+ Élsimítási módszer
+ Maximum órajel kényszerítése (csak Adreno)
+ Kényszeríti a GPU-t a lehető legnagyobb órajelen működésre (a hőmérséklet korlátozások továbbra is érvényben maradnak).
+ Aszinkron árnyékolók használata
+ Aszinkron módon fordítja az árnyékolókat, ami csökkenti az akadozást, de hibákat okozhat.
+ Reaktív ürítés használata
+ Javítja a renderelési pontosságot néhány játékban a teljesítmény rovására.
+ Lemez árnyékoló gyorsítótár
+ Csökkenti az akadásokat azáltal, hogy helyileg tárolja és tölti be a generált árnyékolókat.
+
+
+ CPU
+ CPU hibakeresés
+ Lassú hibakereső módba állítja a CPU-t.
+ GPU
+ API
+ Grafikai hibakeresés
+ Lassú hibakeresési módba állítja a grafikus API-t .
+
+ Kimeneti rendszer
+ Hangerő
+ Hangkimenet hangerejének megadása
+
+
+ Alapértelmezett
+ Beállítások elmentve
+ Beállítások elmentve a következőhöz: %1$s
+ Mentési hiba%1$s .ini: %2$s
+ Nem implementált menü
+ Betöltés...
+ Leállítás...
+ Szeretnéd visszaállítani a beállítások az alapértelmezett értékekre?
+ Alaphelyzetbe állítás
+ Alaphelyzetbe állítod a beállításokat?
+ Minden haladó beállítás vissza lesz állítva az alapértelmezett konfigurációra. Ez a művelet nem vonható vissza.
+ Beállítások alaphelyzetbe állítva
+ Bezárás
+ Tudj meg többet
+ Automatikus
+ Küldés
+ Nulla
+ Importálás
+ Exportálás
+ Exportálás sikertelen
+ Importálás sikertelen
+ Megszakítás
+
+
+ Válassz GPU illesztőprogramot
+ Szeretnéd lecserélni a jelenlegi GPU illesztőprogramot?
+ Telepítés
+ Alapértelmezett
+ Alapértelmezett GPU illesztőprogram használata
+ Érvénytelen driver kiválasztva, a rendszer alapértelmezett lesz használva!
+ Rendszer GPU illesztőprogram
+ Illesztőprogram telepítése...
+
+
+ Beállítások
+ Általános
+ Rendszer
+ Grafika
+ Hang
+ Téma és színek
+ Hibakeresés
+
+
+ ROM titkosítva
+ prod.keys fájl telepítve van, hogy a játékok visszafejthetők legyenek.]]>
+ Hiba lépett fel a videómag inicializása során
+ Ezt általában egy nem kompatibilis GPU illesztő okozza. Egyéni GPU illesztőprogram telepítése megoldhatja a problémát.
+ Nem sikerült betölteni a ROM-ot
+ ROM fájl nem létezik
+
+
+ Emuláció bezárása
+ Kész
+ FPS számláló
+ Irányítás átkapcsolása
+ D-pad csúsztatása
+ Érintés haptikája
+ Átfedés mutatása
+ Össze átkapcsolása
+ Átfedés testreszabása
+ Skálázás
+ Átlátszóság
+ Átfedés visszaállítása
+ Átfedés módosítása
+ Emuláció szünetelése
+ Emuláció folytatása
+ Átfedés beállításai
+
+ Beállítások betöltése...
+
+
+ Szoftver billenytűzet
+
+
+ Megszakítás
+ Folytatás
+ Nem található rendszerarchívum
+ %s hiányzik. Kérjük, mentsd ki a rendszerarchívumaidat.\nAz emuláció folytatása összeomlásokhoz és hibákhoz vezethet.
+ Egy rendszerarchívum
+ Mentési/betöltési hiba
+ Végzetes hiba
+ Végzetes hiba történt. Ellenőrizd a logot a részletekért.\nAz emuláció folytatása összeomlást és hibákat eredményzhet.
+ Ennek a beállításnak a kikapcsolása jelentős mértékben csökkenti a teljesítményt! A legjobb élmény érdekében javasolt a beállítás bekapcsolva tartása.
+ Eszköz RAM: %1$s\nAjánlott: %2$s
+ %1$s %2$s
+ Nincs indítható játék!
+
+
+ Japán
+ USA
+ Európa
+ Ausztrália
+ Kína
+ Korea
+ Tajvan
+
+
+ Bájt
+ KB
+ MB
+ GB
+ TB
+ PB
+ EB
+
+
+ Vulkan
+ Nincs
+
+
+ Normál
+ Magas
+ Extrém (Lassú)
+
+
+ 0.5X (360p/540p)
+ 0.75X (540p/810p)
+ 1X (720p/1080p)
+ 2X (1440p/2160p) (Lassú)
+ 3X (2160p/3240p) (Lassú)
+ 4X (2880p/4320p) (Lassú)
+
+
+ Azonnali (Ki)
+ Postaláda
+ FIFO (Be)
+ FIFO Relaxált
+
+
+ Legközelebbi szomszéd
+ Bilineáris
+ Bikubikus
+ Gauss-féle
+ ScaleForce
+ AMD FidelityFX™ Super Resolution
+
+
+ Nincs
+ FXAA
+ SMAA
+
+
+ Fekvő
+ Álló
+ Automatikus
+
+
+ Alapértelmezett (16:9)
+ 4:3 kényszerítése
+ 21:9 kényszerítése
+ 16:10 kényszerítése
+ Ablakhoz nyújtás
+
+
+ Pontos
+ Nem biztonságos
+ Paranoid (Lassú)
+
+
+ D-pad
+ Bal kar
+ Jobb kar
+ Home
+ Képernyőmentés
+
+
+ Árnyékolók előkészítése
+ Árnyékolók létrehozása
+
+
+ Alkalmazás témájának módosítása
+ Alapértelmezett
+
+ Téma váltása
+ Rendszerbeállítások használata
+ Világos
+ Sötét
+
+
+ cubeb
+
+
+ Fekete háttér
+ Sötét téma használatakor fekete háttér használata.
+
+
+ Kép a képben
+ Ablak minimalizálása, amikor háttérbe kerül
+ Szünet
+ Lejátszás
+ Némítás
+ Némítás feloldása
+
+
+ Licenszek
+ Magas minőségű felskálázás az AMD-től
+
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 09c9345b0..5afebb4c4 100644
--- a/src/android/app/src/main/res/values-it/strings.xml
+++ b/src/android/app/src/main/res/values-it/strings.xml
@@ -1,5 +1,5 @@
-
+Questo software permette di giocare ai giochi della console Nintendo Switch. Nessun gioco o chiave è inclusa.<br /><br />Prima di iniziare, perfavore individua il file prod.keys ]]> nella memoria del tuo dispositivo.<br /><br />Scopri di più]]>L\'emulatore è attivo
@@ -13,9 +13,9 @@
Benvenuto!Scopri come configurare <b>yuzu</b> e passare all\'emulazione.Iniziare
- Pulsanti
+ ChiaviSeleziona il tuo file <b>prod.keys</b> con il pulsante in basso.
- Selezione Pulsanti
+ Seleziona le chiaviGiochiSeleziona la cartella <b>Games</b> con il pulsante in basso.Fatto
@@ -25,6 +25,7 @@
IndietroAggiungi giochiSeleziona la cartella dei giochi
+ Completato!Giochi
@@ -38,6 +39,7 @@
I giochi non saranno mostrati nella lista dei giochi se una cartella non è selezionata.https://yuzu-emu.org/help/quickstart/#dumping-gamesCerca giochi
+ Cerca impostazioneCartella dei giochi selezionataInstalla prod.keysNecessario per decrittografare i giochi
@@ -61,15 +63,18 @@
Selezionate chiavi non valideChiavi installate correttamenteErrore durante la lettura delle chiavi di crittografia
+ Controlla che le tue chiavi abbiano l\'estensione .keys e prova di nuovo.
+ Controlla che le tue chiavi abbiano l\'estensione .bin e prova di nuovoChiavi di crittografia non validehttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keysIl file selezionato è incorretto o corrotto. Per favore riesegui il dump delle tue chiavi.Installa i driver GPUInstalla driver alternativi per potenziali prestazioni migliori o accuratezza.Impostazioni avanzate
+ Impostazioni Avanzate: %1$sConfigura le impostazioni dell\'emulatore
- Giocato recentemente
- Aggiunto recentemente
+ Giocati recentemente
+ Aggiunti recentementeRivenditoreHomebrewApri la cartella di yuzu
@@ -86,6 +91,33 @@
La prima sotto cartella deve chiamarsi come l\'ID del titolo del gioco.ImportaEsporta
+ Installa firmware
+ Il firmware deve essere in un archivio ZIP ed è necessario per avviare alcuni giochi
+ Installando il firmware
+ Firmware installato con successo
+ L\'installazione del firmware è fallita
+ Accertati che i file .nca del firmware siano contenuti direttamente nella radice dello .zip e riprova.
+ Condividi log di debug
+ Condividi i log di yuzu per ricevere supporto
+ Nessun file di log trovato
+ Installa contenuti di gioco
+ Installa aggiornamenti o DLC
+ Installazione dei contenuti...
+ Errore durante l\'installazione del contenuto in NAND.
+ Accertati che i contenuti da installare siano validi e che le prod.keys siano presenti.
+ Installare i giochi base in NAND non è permesso, perché potrebbe causare dei conflitti con altri tipi di contenuti(Aggiornamenti e DLC)
+ Solo i tipi NSP e XCI sono supportati. Verifica che i contenuti di gioco siano validi.
+ Errori di installazione: %1$d
+ Contenuto/i di gioco installato/i con successo.
+ %1$dinstallato con successo.
+ %1$dsovrascritto con successo
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ I driver personalizzati non sono supportati.
+ I driver personalizzati non sono attualmente supportati su questo dispositivo.\n Ricontrolla in futuro.
+ Gestisci i dati di Yuzu
+ Importa/Esporta il firmware, le keys, i dati utente, e altro!
+ Condividi i tuoi dati di salvataggio
+ Errore durante l\'esportazione del salvataggioGaia non è reale
@@ -94,7 +126,18 @@
CollaboratoriRealizzato con \u2764 dal team yuzuhttps://github.com/yuzu-emu/yuzu/graphs/contributors
+ Progetti che rendono yuzu per Android possibileCompilazione
+ Dati Utente
+ Importa/Esporta tutti i dati dell\'applicazione.\n\nDurante l\'importazione dei Dati Utente, quelli già esistenti verranno ELIMINATI.
+ Esportazione dei Dati Utente...
+ Importazione dei Dati Utente...
+ Importa i Dati Utente
+ Backup di Yuzu Invalido
+ Dati Utente esportati con successo
+ Dati Utente importati con successo.
+ Esportazione annullata
+ Assicurati che la cartella dei Dati dell\'utente stiano nella radice del file.zip e che sia presente una cartella config in config/config.ini, poi, riprova.https://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu
@@ -114,41 +157,53 @@
Sei interessato?
- Abilita il limite di velocità
- Quando abilitato, la velocità di emulazione verrà limitata a una specifica percentuale della velocità normale.
+ Limita velocità
+ Limita la velocità dell\'emulazione a una specifica percentuale della velocità normale.Limite velocità percentuale
- Specifica la percentuale del limite della velocità di emulazione. Con quella preimpostata al 100% l\'emulazione verrà limitata alla velocità normale. Valori più alti o bassi aumenteranno o diminuiranno il limite di velocità.
+ Specifica la percentuale per limitare la velocità di emulazione. 100% è la velocità normale. Valori maggiori o minori aumenteranno o diminuiranno il limite di velocitàAccuratezza della CPU
+ %1$s%2$s
- Modalità docked
- Emula in modalità docked, questo aumenta la risoluzione a spese delle performance.
+ Modalità Docked
+ Aumenta la risoluzione, diminuendo le performance. La modalità portatile è usata quando disabilitato, diminuendo la risoluzione e aumentando le performance.Regione emulataLingua emulata
- Seleziona la data dall\'orologio in tempo reale
- Seleziona il tempo dall\'orologio in tempo reale
- Abilità l\'orologio in tempo reale personalizzato
- Questa impostazione ti permette di impostare un orologio in tempo reale personalizzato separato da quello del tuo sistema corrente.
- Imposta l\'orologio in tempo reale personalizzato
+ Imposta la data
+ Imposta l\'ora, i minuti e i secondi.
+ RTC Personalizzato
+ Ti permette di impostare un orologio in tempo reale personalizzato, completamente separato da quello di sistema.
+ Imposta un orologio in tempo reale personalizzato
- APILivello di accuratezza
- Risoluzione
+ Risoluzione (Portatile/Docked)Modalità VSync
- Rapporto d\'aspetto
- Filtro di adattamento alla finestra
+ Orientamento
+ Rapporto d\'aspetto:
+ Filtro adattivo della finestra Metodo di anti-aliasingForza clock massimi (solo Adreno)Forza la GPU a girare col massimo clock possibile (i vincoli alla temperatura saranno comunque applicati)Usa shaders asincrone
- Compila le shaders asincronamente, questo riduce lo shutter ma potrebbe introdurre dei glitch.
- Abilità il debug grafico
- Quando l\'opzione è selezionata, l\'API grafica entra in una modalità di debug più lenta
- Usa cache shader su disco
- Riduce lo stuttering salvando e caricando le shader generate sul disco.
+ Compila le shader in modo asincrone, riducendo lo stutter. Può causare glitch grafici.
+ Abilita il Reactive Flushing
+ Migliora l\'accuratezza della grafica in alcuni giochi, al costo delle performance.
+ Usa la cache delle shader
+ Riduce lo stuttering caricando le shader già compilate all\'avvio.
+
+
+ CPU
+ Debug della CPU
+ Imposta la CPU in modalità Debug (Più lento)
+ GPU
+ API
+ Debug GPU
+ Imposta l\'API grafica in uno stato dedicato al Debugging. Impatta di molto sulle performance.
+ Fastmem
+ Motore di OutputVolumeSpecifica il volume dell\'audio in uscita.
@@ -157,14 +212,24 @@
Impostazioni salvateImpostazioni salvate per %1$sErrore nel salvare %1$s.ini %2$s
+ Menu non implementatoCaricamento…
+ Spegnimento...Vuoi ripristinare queste impostazioni al loro valore originale?Riportare alle impostazioni originaliResettare tutte le impostazioni?
- Tutte le Impostazioni Avanzate saranno ripristinate a quelle originali. Questa operazione non è reversibile
+ Le impostazione avanzate verranno completamente reimpostate. Questa operazione è IRREVERSIBILE.Reimposta le impostazioniChiudiPer saperne di più
+ Automatico
+ Invia
+ Nullo
+ Importa
+ Esporta
+ Esportazione Fallita
+ Importazione Fallita
+ CancellazioneSeleziona il driver della GPU
@@ -172,6 +237,7 @@
InstallaPredefinitoUtilizza il driver predefinito della GPU.
+ Il driver selezionato è invalido, è in utilizzo quello predefinito di sistema!Driver GPU del sistemaInstallando i driver...
@@ -182,10 +248,11 @@
GraficaAudioTema e colori
+ DebugLa tua ROM è criptata
- cartuccia di gioco o i titoli installati.]]>
+ dump delle tue cartucce di giocooppure dei titoli già installati.]]>prod.keys sia installato in modo che i giochi possano essere decrittati.]]>È stato riscontrato un errore nell\'inizializzazione del core videoQuesto è causato solitamente dal driver incompatibile di una GPU. L\'installazione di driver GPU personalizzati potrebbe risolvere questo problema.
@@ -193,28 +260,28 @@
Il file della ROM non esiste
- Uscire dall\'emulazione
+ Arresta emulazioneFatto
- Contatore degli FPS
+ Contatore FPSControlli a interruttoreCentro relativo degli Stick
- Slittamento del Pad Direzionale
- Aptico
- Mostra Overlay
- Attiva/disattiva tutto
- Aggiusta Overlay
+ DPad A Scorrimento
+ Feedback Aptico
+ Mostra l\'Overlay
+ Attiva/Disattiva tutto
+ Modifica l\'OverlayScalaOpacità
- Reimposta Overlay
- Modifica Overlay
- Metti in pausa l\'emulazione
- Riprendi Emulazione
- Impostazioni Overlay
+ Reimposta l\'Overlay
+ Modifica l\'Overlay
+ Sospendi l\'emulazione
+ Riprendi l\'emulazione
+ Opzioni overlay
- Caricamento delle impostazioni...
+ Carico le impostazioni...
- Tastiera software
+ Tastiera SoftwareInterrompi
@@ -226,6 +293,9 @@
Errore FataleUn errore fatale è accaduto. Controlla i log per i dettagli.\nContinuare ad emulare potrebbe portare bug o causare crash.Disattivare questa impostazione può ridurre significativamente le performance di emulazione! Per una migliore esperienza, è consigliato lasciare questa impostazione attivata.
+ RAM Totale:%1$s\nRaccomandati: %2$s
+ %1$s%2$s
+ Non è presente alcun gioco avviabile.Giappone
@@ -236,7 +306,14 @@
CoreaTaiwan
-
+
+ Byte
+ Kb
+ Mb
+ GB
+ Tb
+ Pb
+ EbVulkan
@@ -274,12 +351,17 @@
FXAASMAA
+
+ Layout Orizzontale
+ Layout Verticale
+ Automatico
+
Predefinito (16:9)Forza 4:3Forza 21:9Forza 16:10
- Allunga a finestra
+ Adatta alla finestraAccurata
@@ -287,9 +369,9 @@
Paranoico (Lento)
- D-Pad
- Levetta sinistra
- Levetta destra
+ D-pad
+ Analogico sinistro
+ Analogico destroHomeScreenshot
@@ -298,7 +380,7 @@
Costruendo gli shaders
- Cambia il tema dell\'app
+ Cambia tema dell\'appPredefinitoMaterial You
@@ -308,8 +390,22 @@
ChiaroScuro
+
+ cubeb
+
- Usa sfondi neri
+ Sfondi neriQuando utilizzi il tema scuro, applica sfondi neri.
-
+
+ Picture in Picture
+ Minimizza la finestra quando viene impostata in background
+ Pausa
+ Gioca
+ Silenzia
+ Riattiva
+
+
+ Licenze
+ Upscaling di alta qualità da parte di AMD
+
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 a0ea78bef..3be4e7d26 100644
--- a/src/android/app/src/main/res/values-ja/strings.xml
+++ b/src/android/app/src/main/res/values-ja/strings.xml
@@ -1,11 +1,12 @@
-
+
- このソフトウェアは、Nintendo Switch用のゲームを実行します。 ゲームソフトやキーは含まれません。<br /><br />事前に、 prod.keys ]]> ファイルをデバイスのストレージに配置しておいてください。<br /><br />詳細]]>
+ このソフトウェアでは、Nintendo Switchのゲームを実行できます。 ゲームソフトやキーは含まれません。<br /><br />事前に、 prod.keys ]]> ファイルをストレージに配置しておいてください。<br /><br />詳細]]>エミュレーションが有効ですエミュレーションの実行中に常設通知を表示します。yuzu は実行中です
- 問題が発生したときに通知を表示します。
+ 通知とエラー
+ 問題の発生時に通知を表示します。通知が許可されていません!
@@ -16,7 +17,7 @@
下のボタンから <b>prod.keys</b> ファイルを選択してください。キーを選択ゲーム
- 下のボタンから<b>ゲーム</b>があるフォルダを選択してください。
+ 下のボタンから<b>ゲーム</b>のあるフォルダを選択してください。完了準備が完了しました。\nゲームをお楽しみください!続行
@@ -24,48 +25,53 @@
戻るゲームを追加ゲームフォルダを選択
+ 完了!ゲーム検索設定
- ファイルが見つからないか、ゲームディレクトリがまだ選択されていません。
+ ファイルが存在しないかゲームフォルダが選択されていません。ゲームの検索と絞り込み
- ゲームフォルダを選択
- yuzu がゲームリストに追加できるようにします
+ ゲームフォルダ
+ ゲームをyuzuのゲームリストに追加しますゲームフォルダの選択をスキップしますか?
- フォルダを選択しない場合、ゲームはゲームリストに表示されません。
+ フォルダを選択しないと、ゲームがリストに表示されません。https://yuzu-emu.org/help/quickstart/#dumping-gamesゲームを検索
- ゲームディレクトリが選択されました
- prod.keys をインストール
- ゲームの復号化に必要
+ 検索設定
+ フォルダを選択しました
+ prod.keys
+ 製品版ゲームの復号化に必要ですキーの追加をスキップしますか?製品版ゲームのエミュレーションには、有効なキーが必要です。続行すると自作アプリしか機能しません。https://yuzu-emu.org/help/quickstart/#guide-introduction通知
- 下のボタンで通知の権限を許可してください。
+ 下のボタンで通知を許可してください。許可通知の許可をスキップしますか?yuzuは重要なお知らせを通知できません。権限が拒否されました
- この権限を複数回拒否したため、システム設定で手動で許可する必要があります。
+ この権限を複数回拒否したため、設定から手動で許可する必要があります。情報ビルドバージョン、クレジットなどヘルプスキップキャンセル
- Amiibo キーをインストール
- ゲーム内での Amiibo の使用に必要
- 無効なキーファイルが選択されました
+ Amiibo
+ ゲーム内での Amiibo の使用に必要です
+ 無効なキーファイルです正常にインストールされました
- 暗号化キーの読み取りエラー
- 暗号化キーが無効です
+ 暗号化キーの読み込み失敗
+ キーの拡張子が.keysであることを確認し、再度お試しください。
+ キーの拡張子が.binであることを確認し、再度お試しください。
+ 暗号化キーが無効https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys
- 選択されたファイルが不正または破損しています。キーを再ダンプしてください。
- GPUドライバーをインストール
+ ファイルが間違っているか破損しています。キーを再ダンプしてください。
+ GPUドライバー代替ドライバーをインストールしてパフォーマンスや精度を向上させます高度な設定
+ 高度な設定: %1$sエミュレーターの設定を構成します最近プレイした最近追加された
@@ -77,15 +83,34 @@
ファイルマネージャーが見つかりませんでしたyuzuのディレクトリを開けませんファイルマネージャのサイドパネルでユーザーフォルダを手動で探してください。
- セーブデータを管理
- セーブデータが見つかりました。以下のオプションから選択してください。
+ セーブデータ
+ セーブデータが見つかりました。操作を選択してください。セーブファイルをインポート/エクスポートインポートが完了しました
- セーブデータのディレクトリ構造が無効です
+ セーブデータのディレクトリ構造が無効最初のサブフォルダ名は、ゲームのタイトルIDである必要があります。インポートエクスポート
-
+ ファームウェア
+ ファームウェアはZIPアーカイブである必要があり、一部のゲームを起動するのに必要です
+ ファームウェアをインストール中
+ インストールが完了しました
+ インストール失敗
+ デバッグログ
+ yuzuのログファイルを共有して問題をデバッグします
+ ログが見つかりません
+ 追加コンテンツ
+ 更新データやDLCをインストールします
+ コンテンツをインストール中...
+ NSPとXCI形式のコンテンツのみサポートされています。ゲームコンテンツが有効なものであるかご確認ください。
+ %1$d のインストールエラー
+ ゲームコンテンツのインストールに成功しました
+ %1$d のインストールに成功しました
+ %1$d の上書きに成功しました
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ カスタムドライバはサポートされていません
+ yuzu データを管理
+ セーブファイルを共有ガイアは実在しないクリップボードにコピーしました
@@ -93,7 +118,15 @@
貢献者yuzuチームの\u2764で作られたhttps://github.com/yuzu-emu/yuzu/graphs/contributors
+ yuzu for Androidの作成を可能にしたプロジェクトビルド
+ ユーザデータ
+ ユーザデータをエクスポート中...
+ ユーザデータをインポート中...
+ ユーザデータをインポート
+ ユーザデータのエクスポートに成功しました
+ ユーザデータのインポートに成功しました
+ エクスポートをキャンセルしましたhttps://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu
@@ -105,72 +138,91 @@
最先端の機能、アップデートの早期アクセスなど早期アクセスのメリット最先端の機能
- アップデートの早期アクセス
+ アップデートへの早期アクセス手動インストールが不要
- 優先的なサポート
+ 優先サポートゲームの保存に貢献
- 私たちの永遠の感謝
+ 私たちから永遠の感謝興味がありますか?
- 速度制限を有効化
- 有効にすると、エミュレーション速度が任意の割合に制限されます。
- エミュレーション速度の制限
- エミュレーション速度を制限する割合を指定します。デフォルトの100%では、エミュレーションは通常の速度に制限されます。値が高いまたは低いほど、速度制限が増加または減少します。
+ エミュレーション速度を制限
+ エミュレーション速度を指定した割合に制限します。
+ エミュレーション速度
+ エミュレーション速度を制限するパーセンテージを指定します。100%は通常速度です。値の増減で速度も増減します。CPU精度
-
TVモード
- TVモードでエミュレートします。パフォーマンスが犠牲になりますが、解像度が向上します。
+ 高解像度、低パフォーマンス。無効時には携帯モードが使用されます(低解像度、高パフォーマンス)。地域言語RTCの日付を選択RTCの時刻を選択
- カスタムRTC
- 現在のシステム時間とは別にカスタムのリアルタイムクロックを設定できます。
+ カスタム RTC
+ 現在のシステム時間とは別に、任意のリアルタイムクロックを設定できます。カスタムRTCを設定
- API精度
- 解像度
+ 解像度(携帯モード/TVモード)垂直同期モード
+ 画面の向きアスペクト比ウィンドウ適応フィルターアンチエイリアス方式最大クロックを強制 (Adrenoのみ)
- GPUを可能な限り最大クロックで動作させます (過熱制限は引き続き適用されます)。
+ GPUを最大限可能な周波数で動作させます (過熱制限は引き続き適用されます)。非同期シェーダーシェーダーを非同期でコンパイルします。コマ落ちが軽減されますが、不具合が発生する可能性があります。
+ 即時書き込み
+ 一部のゲームにおいて、パフォーマンスを犠牲にしながらも、レンダリング精度を向上させます。
+ ディスクシェーダーキャッシュ
+ 生成したシェーダーを端末に保存して読み込み、コマ落ちを軽減します。
+
+
+ CPU
+ CPU デバッギング
+ GPU
+ APIグラフィックデバッグ
- オンにすると、グラフィックAPI は低速のデバッグモードに入ります。
- シェーダーキャッシュを使用
- 生成したシェーダーをディスクに保存して読み込むことで、コマ落ちを軽減します。
+ グラフィックAPIを低速デバッグモードに設定します。
+ Fastmem
+ 出力エンジン音量オーディオ出力の音量を指定しますデフォルト設定を保存しました
- %1$sの設定を保存しました
+ %1$s の設定を保存しました%1$s.ini の保存エラー: %2$s
+ 未実装のメニュー読み込み中…
+ 終了中...この設定を初期値にリセットしますか?初期設定に戻すすべての設定をリセットしますか?
- すべての詳細設定が初期設定に戻されます。この操作は元に戻せません。
+ すべての詳細設定が初期値に戻されます。この操作は元に戻せません。設定をリセットしました閉じる詳細情報
+ 自動
+ 送信
+ インポート
+ エクスポート
+ エクスポート失敗
+ インポート失敗
+ キャンセル中GPUドライバを選択
- 現在のGPUドライバーを置き換えますか?
+ 現在のGPUドライバを置き換えますか?インストールデフォルト
- デフォルトのGPUドライバーを使用します
+ デフォルトのドライバを使用します
+ 選択されたドライバが無効、システムのデフォルトを使用します!システムのGPUドライバインストール中…
@@ -181,33 +233,34 @@
グラフィックサウンドテーマと色
+ デバッグROMが暗号化されています
- ゲームカートリッジやインストール済みのタイトルを再度ダンプするためのガイドに従ってください。]]>
- prod.keys ファイルがインストールされていることを確認してください。]]>
+ prod.keys ファイルがインストールされていることを確認してください。]]>ビデオコアの初期化中にエラーが発生しましたこれは通常、互換性のないGPUドライバーが原因で発生します。 カスタムGPUドライバーをインストールすると、問題が解決する可能性があります。ROMの読み込みに失敗しましたROMファイルが存在しません
- エミュレーションを終了
+ 終了完了FPSカウンター
- コントロールを切り替え
- 十字キーのスライド操作
- 振動
- オーバーレイを表示
- すべて選択
- オーバーレイを調整
+ ボタンの表示設定
+ スティックを固定しない
+ 十字キーをスライド操作
+ タッチ振動
+ ボタンを表示
+ すべて切替
+ 見た目を調整大きさ不透明度リセット
- オーバーレイを編集
- エミュレーションを一時停止
- エミュレーションを再開
- オーバーレイオプション
+ 位置を編集
+ 一時停止
+ 再開
+ 表示オプション設定をロード中…
@@ -220,10 +273,13 @@
システムアーカイブが見つかりません%s が見つかりません。システムアーカイブをダンプしてください。\nエミュレーションを続行すると、クラッシュやバグが発生する可能性があります。システムアーカイブ
- セーブ/ロード エラー
+ セーブ/ロードエラー致命的なエラー致命的なエラーが発生しました。詳細はログを確認してください。\nエミュレーションを続行するとクラッシュやバグが発生する可能性があります。
- この設定をオフにすると、エミュレーションのパフォーマンスが著しく低下します!最高の体験を得るためには、この設定を有効にしておくことをお勧めします。
+ この設定をオフにすると、エミュレーションのパフォーマンスが著しく低下します!最高の体験を得るためには、この設定を有効にしておくことを推奨します。
+ デバイス RAM: %1$s\n推奨: %2$s
+ %1$s %2$s
+ 起動できるゲームがありません!日本
@@ -234,7 +290,14 @@
韓国台湾
-
+
+ Byte
+ KB
+ MB
+ GB
+ TB
+ PB
+ EBVulkan
@@ -242,7 +305,7 @@
標準
- 高い
+ 高最高 (低速)
@@ -272,12 +335,17 @@
FXAASMAA
+
+ 横長
+ 縦長
+ 自動
+
デフォルト (16:9)強制 4:3強制 21:9強制 16:10
- ウィンドウに合わせる
+ 画面に合わせる正確
@@ -289,7 +357,7 @@
LスティックRスティックHOMEボタン
- スクリーンショット
+ キャプチャーボタンシェーダーを準備しています
@@ -306,8 +374,22 @@
ライトダーク
-
- 黒色の背景を使用
- ダークテーマの使用時は、黒色の背景を有効にしてください。
+
+ cubeb
-
+
+ 完全な黒を使用
+ ダークテーマの背景色に黒が適用されます。
+
+
+ ピクチャーインピクチャー
+ バックグラウンド時にウインドウを最小化する
+ 中断
+ プレイ
+ 消音
+ 消音解除
+
+
+ ライセンス
+ AMDの高品質アップスケーリング
+
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 214f95706..1b9160a23 100644
--- a/src/android/app/src/main/res/values-ko/strings.xml
+++ b/src/android/app/src/main/res/values-ko/strings.xml
@@ -1,9 +1,9 @@
-
+
- 이 소프트웨어는 닌텐도 스위치 게임 콘솔용 게임을 실행합니다. 게임 타이틀이나 keys는 포함되어 있지 않습니다.<br /><br />시작하기 전에 장치 저장소에서 prod.keys ]]> 파일을 찾아주세요.<br /><br />자세히 알아보기]]>
+ 이 소프트웨어는 Nintendo Switch 게임을 실행합니다. 게임 타이틀이나 키는 포함되어 있지 않습니다.<br /><br />시작하기 전에 장치 저장소에서 prod.keys ]]> 파일을 찾아주세요.<br /><br />자세히 알아보기]]>에뮬레이션이 활성화됨
- 에뮬레이션이 실행 중일 때 영구 알림을 표시합니다.
+ 에뮬레이션이 실행 중일 때 지속적으로 알림을 표시합니다.yuzu가 실행 중입니다.알림 및 오류문제가 발생하면 알림을 표시합니다.
@@ -11,26 +11,25 @@
환영합니다!
- <b>yuzu</b> 를 설정하고 에뮬레이션으로 이동하는 방법을 알아보세요.
+ <b>yuzu</b>를 설정하고 에뮬레이션을 시작하세요.시작하기
- Keys
- 아래 버튼을 사용하여 <b>prod.keys</b> 파일을 선택합니다.
- keys 선택
+ 키 설정
+ 아래 버튼으로 <b>prod.keys</b> 파일을 선택합니다.
+ 키 선택게임아래 버튼으로 <b>게임</b> 폴더를 선택합니다.완료
- 모든 준비가 완료되었습니다.\n게임을 즐기세요!
+ 모두 준비되었습니다.\n게임을 즐기세요!계속다음
- 뒤로
+ 이전게임 추가게임 폴더 선택
-
게임검색설정
- 파일을 찾을 수 없거나 아직 게임 디렉토리를 선택하지 않았습니다.
+ 파일을 찾을 수 없거나 아직 게임 디렉터리를 선택하지 않았습니다.게임 검색 및 필터링게임 폴더 선택yuzu가 게임 목록을 채울 수 있도록 허용
@@ -38,140 +37,160 @@
폴더를 선택하지 않으면 게임 목록에 게임이 표시되지 않습니다.https://yuzu-emu.org/help/quickstart/#dumping-games게임 검색
- 게임 디렉터리 선택
+ 게임 디렉터리를 설정했습니다.prod.keys 설치
- 판매용 게임 암호 해독에 요구
- keys 추가를 건너뛰겠습니까?
- 정품 게임을 에뮬레이트하려면 유효한 keys가 필요합니다. 계속하면 자체 제작 앱만 작동합니다.
+ 패키지 게임 암호 해독에 필요
+ 키 추가를 건너뛰겠습니까?
+ 패키지 게임을 에뮬레이트하려면 유효한 키 값이 필요합니다. 이 단계를 건너뛰면 홈브류 게임만 실행할 수 있습니다.https://yuzu-emu.org/help/quickstart/#guide-introduction알림아래 버튼으로 알림 권한을 부여합니다.
- 권한 부여
- 알림 권한 부여를 건너뛰겠습니까?
- yuzu는 중요한 정보를 알려드리지 않습니다.
+ 알림 켜기
+ 알림을 끄겠습니까?
+ yuzu가 중요한 정보를 알려드리지 않습니다.권한 거부됨
- 이 권한을 너무 많이 거부했으므로 이제 시스템 설정에서 수동으로 권한을 부여해야 합니다.
+ 권한 허용을 너무 많이 거부하여 시스템 설정에서 수동으로 권한을 부여해야 합니다.정보빌드 버전, 크레딧 등도움말건너뛰기취소
- Amiibo keys 설치
- 게임에서 아미보 사용 시 필요
- 잘못된 keys 파일 선택
- keys가 성공적으로 설치됨
- 암호화 keys 읽기 오류
- 잘못된 암호화 keys
+ amiibo 키 설치
+ 게임에서 amiibo 사용 시 필요
+ 잘못된 키 파일이 선택됨
+ 키 값을 설치했습니다.
+ 암호화 키 읽기 오류
+ 키 파일의 확장자가 .keys인지 확인하고 다시 시도하세요.
+ 키 파일의 확장자가 .bin인지 확인하고 다시 시도하세요.
+ 암호화 키가 올바르지 않음https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys
- 선택한 파일이 잘못되었거나 손상되었습니다. keys를 다시 덤프하세요.
+ 선택한 파일이 잘못되었거나 손상되었습니다. 키를 다시 덤프하세요.GPU 드라이버 설치잠재적으로 더 나은 성능 또는 정확성을 위해 대체 드라이버를 설치하세요.고급 설정에뮬레이터 설정 구성
- 최근 플레이한 게임
- 최근 추가한 게임
- 판매용
+ 최근 플레이
+ 최근 추가
+ 패키지홈브류yuzu 폴더 열기yuzu의 내부 파일 관리
- 앱 모양 수정
+ 앱 디자인 편집파일 관리자를 찾을 수 없음
- yuzu 디렉토리를 열 수 없음
+ yuzu 디렉터리를 열 수 없음파일 관리자의 사이드 패널에서 사용자 폴더를 수동으로 찾아주세요.저장 데이터 관리
- 데이터를 저장했습니다. 아래에서 옵션을 선택하세요.
+ 저장 데이터를 발견했습니다. 아래에서 옵션을 선택하세요.저장 파일 가져오기 또는 내보내기
- 가져오기 성공
- 저장 디렉터리 구조가 잘못됨
+ 데이터를 불러왔습니다.
+ 올바르지 않은 저장 디렉터리 구조첫 번째 하위 폴더 이름은 게임의 타이틀 ID여야 합니다.가져오기내보내기
-
+ 펌웨어 설치
+ 펌웨어는 ZIP 파일이며 일부 게임을 부팅하는 데 필요합니다.
+ 펌웨어 설치
+ 펌웨어를 설치했습니다.
+ 펌웨어 설치 실패
+ 디버그 로그 공유
+ yuzu의 로그 파일을 공유하여 문제 디버깅하기
+ 로그 파일을 찾을 수 없습니다.
+ 게임 콘텐츠 설치
+ 게임 업데이트 또는 DLC 설치
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates가이아는 진짜가 아님
- 클립보드에 복사
- 오픈 소스 스위치 에뮬레이터
+ 클립보드에 복사되었습니다.
+ 오픈 소스 Switch 에뮬레이터기여자yuzu 팀의 \u2764로 제작https://github.com/yuzu-emu/yuzu/graphs/contributors
+ Android용 yuzu를 가능하게 하는 프로젝트빌드https://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu
- 미리 체험하기
- 미리 체험하기 신청
+ 앞서 해보기
+ 앞서 해보기 신청https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea
- 최첨단 기능, 미리 체험하기 업데이트 등
- 미리 체험하기 혜택
- 최첨단 기능
- 미리 체험하기 업데이트
+ 최신 기능, 업데이트 미리 체험 등
+ 앞서 해보기 혜택
+ 최신 기능
+ 업데이트 미리 체험수동 설치 불필요우선 지원
- 게임 보존 도움주기
- 영원한 감사의 마음을 전합니다
+ 게임 보존 지원
+ 우리의 영원한 감사의 마음관심 있으세요?
- 제한 속도 활성화
- 활성화하면 에뮬레이션 속도가 정상 속도의 지정된 비율로 제한됩니다.
+ 속도 제한
+ 에뮬레이션 속도를 정상 속도의 지정된 비율로 제한합니다.속도 제한 비율
- 에뮬레이션 속도를 제한할 비율을 지정합니다. 기본값인 100%로 설정하면 에뮬레이션이 정상 속도로 제한됩니다. 값이 높거나 낮으면 속도 제한이 증가하거나 감소합니다.
+ 에뮬레이션 속도의 제한 비율을 지정합니다. 100%가 정상 속도입니다. 값이 높거나 낮으면 속도 제한이 증가하거나 감소합니다.CPU 정확도
-
- 도킹 모드
- 도킹 모드에서 에뮬레이션하면 성능이 저하되는 대신 해상도가 향상됩니다.
- 에뮬레이트된 지역
- 에뮬레이트된 언어
+ 독 모드
+ 해상도를 높이며 성능이 저하됩니다. 비활성화시 휴대 모드가 사용되며 해상도는 낮아지고 성능은 향상됩니다.
+ 에뮬레이트 지역
+ 에뮬레이트 언어RTC 날짜 선택RTC 시간 선택
- 커스텀 RTC 활성화
- 이 설정을 사용하면 현재 시스템 시간과 별도로 사용자 지정 실시간 시계를 설정할 수 있음
- 커스텀 RTC 설정
+ 사용자 지정 RTC
+ 현재 시스템 시간과 별도로 사용자 지정 실시간 시계를 설정할 수 있습니다.
+ 사용자 지정 RTC 설정
- API정확도 수준
- 해상도
+ 해상도 (휴대 모드/독 모드)수직동기화 모드화면비
- 창 적응 필터
- 안티-에일리어싱 방법
- 최대 클럭 강제 설정 (아드레노만 해당)
+ 윈도우 적응 필터
+ 안티에일리어싱 방법
+ 최대 클럭 강제 설정 (아드레노 전용)GPU가 가능한 최대 클럭으로 실행되도록 강제합니다 (열 제약 조건은 여전히 적용됩니다).비동기 셰이더 사용
- 셰이더를 비동기식으로 컴파일하므로 끊김 현상이 줄어들지만 글리치가 발생할 수 있습니다.
- 그래픽 디버깅 활성화
- 이 옵션을 선택하면 그래픽 API가 느린 디버깅 모드로 전환됩니다.
- 디스크 셰이더 캐시 사용
- 생성된 셰이더를 디스크에 저장하고 불러오기하여 끊김 현상을 줄입니다.
-
-
+ 셰이더를 비동기식으로 컴파일하여 끊김 현상을 줄이지만 글리치가 발생할 수 있습니다.
+ 반응형 플러싱 사용
+ 일부 게임에서 성능 저하를 감수하고 렌더링 정확도를 향상합니다.
+ 디스크 셰이더 캐시
+ 생성된 셰이더를 로컬에 저장하고 로드하여 끊김 현상을 줄입니다.
+
+
+ CPU
+ API
+ 그래픽 디버깅
+ 그래픽 API를 느린 디버깅 모드로 설정합니다.볼륨오디오 출력의 볼륨을 지정합니다.기본값
- 저장된 설정
- %1$s를 위해 저장된 설정
- %1$s.ini 저장 중 오류: %2$s
- 불러오기 중...
- 이 설정을 기본값으로 되돌리겠습니까?
+ 설정이 저장되었습니다.
+ %1$s 전용 설정이 저장되었습니다.
+ %1$s.ini 저장 중 오류 발생: %2$s
+ 불러오는 중...
+ 이 설정을 기본값으로 재설정하겠습니까?기본값으로 재설정모든 설정을 초기화하겠습니까?
- 모든 고급 설정이 기본 구성으로 재설정됩니다. 이 설정은 되돌릴 수 없습니다.
+ 모든 고급 설정이 기본 구성으로 재설정됩니다. 이 작업은 되돌릴 수 없습니다.설정 초기화닫기
- 자세히 알아보기
-
+ 자세히
+ 자동
+ 제출
+ Null
+ 가져오기
+ 내보내기GPU 드라이버 선택
- 현재 사용 중인 GPU 드라이버를 교체하겠습니까?
+ 현재 사용중인 GPU 드라이버를 변경하겠습니까?설치기본값
- 기본 GPU 드라이버 사용
+ 기본 GPU 드라이버를 사용합니다.
+ 잘못된 드라이브가 선택되었습니다. 시스템 기본값을 사용합니다.시스템 GPU 드라이버드라이버 설치 중...
@@ -182,51 +201,50 @@
그래픽오디오테마 및 색상
+ 디버그
- 롬이 암호화되었음
- 게임 카트리지 또는 설치된 타이틀를 다시 덤프하세요.]]>
- prod.keys 파일이 설치되어 있는지 확인하세요.]]>
+ 롬 파일이 암호화되어있음
+ prod.keys 파일이 설치되어 있는지 확인하세요.]]>비디오 코어를 초기화하는 동안 오류 발생
- 이 문제는 일반적으로 호환되지 않는 GPU 드라이버로 인해 발생합니다. 사용자 지정 GPU 드라이버를 설치하면 이 문제가 해결될 수 있습니다.
- 롬을 불러올 수 없음
+ 일반적으로 이 문제는 호환되지 않는 GPU 드라이버로 인해 발생합니다. 사용자 지정 GPU 드라이버를 설치하면 이 문제가 해결될 수 있습니다.
+ 롬 파일을 불러올 수 없음롬 파일이 존재하지 않음에뮬레이션 종료완료
- FPS 카운터
- 토글 제어
- 상대 스틱 센터
- 십자패드 슬라이드
- 햅틱
- 오버레이 표시
- 모두 토글
- 오버레이 조정
- 스케일
+ FPS 표시
+ 컨트롤러 선택
+ 스틱의 중심 이동
+ 십자키 슬라이드
+ 터치 햅틱
+ 컨트롤러 표시
+ 모두 선택
+ 컨트롤러 조정
+ 크기불투명도
- 오버레이 재설정
- 오버레이 편집
+ 컨트롤러 설정 초기화
+ 컨트롤러 위치 편집에뮬레이션 일시 중지에뮬레이션 일시 중지 해제
- 오버레이 옵션
+ 화면 오버레이 설정
- 설정 불러오기 중...
+ 설정 불러오는 중...
- 가상 키보드
+ 소프트웨어 키보드
- 정보
+ 중단계속시스템 아카이브를 찾을 수 없음%s가 누락되었습니다. 시스템 아카이브를 덤프하세요.\n에뮬레이션을 계속하면 충돌 및 버그가 발생할 수 있습니다.시스템 아카이브저장하기/불러오기 오류
- 치명적인 오류
- 치명적인 오류가 발생했습니다. 자세한 내용은 로그를 확인하십시오.\n에뮬레이션을 계속하면 충돌 및 버그가 발생할 수 있습니다.
+ 치명적 오류
+ 치명적 오류가 발생했습니다. 자세한 내용은 로그를 확인하십시오.\n에뮬레이션을 계속하면 충돌 및 버그가 발생할 수 있습니다.이 설정을 끄면 에뮬레이션 성능이 크게 저하됩니다! 최상의 환경을 위해 이 설정을 활성화된 상태로 두는 것이 좋습니다.
-
일본미국
@@ -234,12 +252,11 @@
호주중국대한민국
- 타이완
-
-
+ 대만
+ 영국 하계 표준시(GB)
- 불칸
+ Vulcan없음
@@ -256,17 +273,17 @@
4X (2880p/4320p) (느림)
- 즉시 (끔)
+ 즉각 표시 (끄기)메일박스
- FIFO (켬)
- FIFO 릴랙스
+ FIFO (켜기)
+ FIFO Relaxed
- 가장 가까운 이웃
- 이중선형
- 고등차수보간
+ 최근접 보간
+ 쌍선형 보간
+ 쌍입방 보간가우시안
- 스케일포스
+ ScaleForceAMD FidelityFX™ 초고해상도
@@ -274,27 +291,29 @@
FXAASMAA
+ 자동
+
기본 (16:9)강제 4:3강제 21:9강제 16:10
- 창에 맞게 늘림
+ 화면에 맞춤정확함
- 안전하지 않음
- 편집증 (느림)
+ 최적화 (안전하지 않음)
+ 최적화하지 않음 (느림)
- 십자패드
+ 십자키L 스틱R 스틱홈스크린샷
- 셰이더 준비하기
+ 셰이더 준비하는 중셰이더 빌드 중
@@ -303,13 +322,19 @@
Material You
- 테마 모드 변경
- 팔로우 시스템
- 밝음
- 어두움
+ 다크 모드 설정
+ 시스템 값 사용
+ 라이트 모드
+ 다크 모드
- 검은색 배경 사용
- 어두운 테마를 사용할 때는 검은색 배경을 적용합니다.
+ 검정 배경
+ 어두운 테마를 사용할 때는 검정 배경을 적용합니다.
+
+ 음소거
+ 음소거 해제
-
+
+ 라이센스
+ AMD의 고품질 업스케일링
+
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 5443cef42..3162a9d41 100644
--- a/src/android/app/src/main/res/values-nb/strings.xml
+++ b/src/android/app/src/main/res/values-nb/strings.xml
@@ -1,5 +1,5 @@
-
+Denne programvaren vil kjøre spill for Nintendo Switch-spillkonsollen. Ingen spilltitler eller nøkler er inkludert.<br /><br />Før du begynner, må du finne prod.keys ]]> filen din på enhetslagringen.<br /><br />Lær mer]]>Emulering er aktiv
@@ -25,7 +25,6 @@
TilbakeLegg til spillVelg din spillmappe
-
SpillSøk
@@ -37,7 +36,7 @@
Hoppe over valg av spillmappe?Spill vises ikke i Spill-listen hvis en mappe ikke er valgt.https://yuzu-emu.org/help/quickstart/#dumping-games
- Søk i spill
+ Søk i spill|Spillkatalogen er valgtInstaller prod.keysNødvendig for å dekryptere spill
@@ -61,6 +60,8 @@
Ugyldig nøkkelfil valgtNøkler vellykket installertFeil ved lesing av krypteringsnøkler
+ Kontroller at nøkkelfilen har filtypen .keys, og prøv igjen.
+ Kontroller at nøkkelfilen har filtypen .bin, og prøv igjen.Ugyldige krypteringsnøklerhttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keysDen valgte filen er feil eller ødelagt. Vennligst dump nøklene på nytt.
@@ -86,7 +87,17 @@
Det første undermappenavnet må være spillets tittel-ID.ImporterEksporter
-
+ Installer fastvare
+ Fastvaren må være i et ZIP-arkiv og er nødvendig for å starte noen spill.
+ Installering av fastvare
+ Fastvaren er vellykket installert
+ Installasjon av fastvare mislyktes
+ Del feilsøkingslogger
+ Del yuzus loggfil for å feilsøke problemer
+ Ingen loggfil funnet
+ Installer spillinnhold
+ Installer spilloppdateringer eller DLC
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updatesGaia er ikke ekteKopiert til utklippstavlen
@@ -94,6 +105,7 @@
BidragsytereLaget med \u2764 fra yuzu-teamethttps://github.com/yuzu-emu/yuzu/graphs/contributors
+ Prosjekter som gjør yuzu for Android muligBygghttps://discord.gg/u77vRWYhttps://yuzu-emu.org/
@@ -114,41 +126,43 @@
Er du interessert?
- Aktiver hastighetsbegrensning
- Når aktivert, begrenses emuleringshastigheten til en angitt prosentandel av normal hastighet.
+ Begrense hastigheten
+ Begrenser emuleringshastigheten til en spesifisert prosentandel av normal hastighet.Hastighetsbegrensning i prosent
- Angir prosentandelen som skal begrense emuleringshastigheten. Med standardverdien 100 % vil emuleringen være begrenset til normal hastighet. Høyere eller lavere verdier vil øke eller redusere hastighetsbegrensningen.
+ Angir prosentandelen som skal begrense emuleringshastigheten. 100 % er normal hastighet. Høyere eller lavere verdier vil øke eller redusere hastighetsgrensen.CPU-nøyaktighet
-
Dokket modus
- Emulerer i dokket modus, noe som øker oppløsningen på bekostning av ytelsen.
+ Øker oppløsningen, men reduserer ytelsen. Håndholdt modus brukes når den er deaktivert, noe som reduserer oppløsningen og øker ytelsen.Emulert regionEmulert språkVelg RTC-datoVelg RTC-tid
- Aktiver egendefinert RTC
- Med denne innstillingen kan du stille inn en egendefinert sanntidsklokke som er atskilt fra gjeldende systemtid.
- Angi egendefinert RTC
+ Tilpasset Sannhetstidsklokke
+ Gjør det mulig å stille inn en egendefinert sanntidsklokke separat fra den gjeldende systemtiden.
+ Angi tilpasset RTC
- APINøyaktighetsnivå
- Oppløsning
+ Oppløsning (håndholdt/dokket)VSync-modusStørrelsesforholdFilter for vindustilpasning
- Anti-Aliasing-metode
+ Anti-aliasing-metodeTving fram maksimal klokkefrekvens (kun Adreno)Tvinger GPU-en til å kjøre med maksimal klokkefrekvens (termiske begrensninger vil fortsatt gjelde).Bruk asynkrone shaders
- Kompilerer shaders asynkront, noe som reduserer hakkingen, men kan føre til feil.
- Aktiver feilsøking av grafikk
- Når dette er merket av, går grafikk-API-et inn i en langsommere feilsøkingsmodus.
- Bruk disk shader-cache
- Reduser hakking ved å lagre og laste inn genererte shaders på disken.
-
-
+ Kompilerer shaders asynkront, noe som reduserer hakking, men kan føre til feil.
+ Bruk reaktiv spyling
+ Forbedrer gjengivelsesnøyaktigheten i enkelte spill på bekostning av ytelsen.
+ Disk shader-hurtigbuffer
+ Reduserer hakking ved å lagre og laste inn genererte shaders lokalt.
+
+
+ CPU
+ API
+ Feilsøking av grafikk
+ Setter grafikk-API-et til en langsom feilsøkingsmodus.VolumAngir volumet på lydutgangen.
@@ -164,14 +178,19 @@
Alle avanserte innstillinger tilbakestilles til standardkonfigurasjonen. Dette kan ikke angres.Tilbakestilling av innstillingerLukk
- Lær Mer
-
+ Lær mer
+ Auto
+ Send inn
+ Null
+ Importer
+ EksporterVelg GPU-driverØnsker du å bytte ut din nåværende GPU-driver?InstallerStandardBruk av standard GPU-driver
+ Ugyldig driver valgt, bruker systemstandard!Systemets GPU-driverInstallerer driver...
@@ -182,10 +201,10 @@
GrafikkLydTema og farge
+ FeilsøkROM-en din er kryptert
- spillkassetter eller installerte titler.]]>prod.keys filen er installert slik at spillene kan dekrypteres.]]>Det oppstod en feil ved initialisering av videokjernenDette skyldes vanligvis en inkompatibel GPU-driver. Installering av en tilpasset GPU-driver kan løse problemet.
@@ -196,25 +215,25 @@
Avslutt emuleringFerdigFPS-teller
- Veksle kontroller
- Relativt senter for stikken
- DPad-skyveplate
- Haptikk
+ Veksle mellom kontrollene
+ Relativt pinnesenter
+ D-pad-skyving
+ BerøringshaptikkVis overlegg
- Slå av alt
+ Veksle mellom alleJuster overleggSkalerGjennomsiktighetTilbakestill overleggRediger overlegg
- Pause Emulering
- Opphev pausing av emulering
- Alternativer for overlegg
+ Pause emulering
+ Ta emuleringen ut av pause
+ Overlay-alternativerLaster inn innstillinger...
- Programvare Tastatur
+ ProgramvaretastaturAvbryt
@@ -226,7 +245,6 @@
Fatal FeilDet oppstod en fatal feil. Sjekk loggen for mer informasjon.\nFortsatt emulering kan føre til krasj og feil.Hvis du slår av denne innstillingen, reduseres emuleringsytelsen betydelig! Vi anbefaler at du lar denne innstillingen være aktivert for å få den beste opplevelsen.
-
JapanUSA
@@ -236,8 +254,7 @@
KoreaTaiwan
-
-
+ GBVulkanIngen
@@ -274,12 +291,14 @@
FXAASMAA
+ Auto
+
Standard (16:9)Tving 4:3Tving 21:9Tving 16:10
- Strekk til Vindu
+ Strekk til vinduNøyaktig
@@ -287,9 +306,9 @@
Paranoid (Langsom)
- D-Pad
- Venstre Pinne
- Høyre Pinne
+ D-pad
+ Venstre spak
+ Høyre spakHjemSkjermbilde
@@ -298,7 +317,7 @@
Bygging av shaders
- Endre appens tema
+ Endre app-temaStandardMaterial You
@@ -309,7 +328,13 @@
Mørk
- Bruk svart bakgrunn
+ Svart bakgrunnBruk svart bakgrunn når du bruker det mørke temaet.
-
+ Lydløs
+ Slå på lyden
+
+
+ Lisenser
+ Oppskalering av høy kvalitet fra AMD
+
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 899e233d0..f4d9920c2 100644
--- a/src/android/app/src/main/res/values-pl/strings.xml
+++ b/src/android/app/src/main/res/values-pl/strings.xml
@@ -1,5 +1,5 @@
-
+To oprogramowanie umożliwia uruchomienie gier z konsoli Nintendo Switch. Nie zawiera gier ani wymaganych kluczy.<br /><br />Zanim zaczniesz, wybierz plik kluczy prod.keys ]]> z katalogu w pamięci masowej.<br /><br />Dowiedz się więcej]]>Emulacja jest uruchomiona
@@ -25,7 +25,6 @@
WsteczDodaj gryWybierz folder zawierający Twoje gry
-
GrySzukaj
@@ -61,6 +60,8 @@
Wybrano niepoprawne kluczeKlucze zainstalowane pomyślnieBłąd podczas odczytu kluczy
+ Upewnij się że twoje klucze mają rozszerzenie .keys i spróbuj ponownie.
+ Upewnij się że twoje klucze mają rozszerzenie .bin i spróbuj ponownie.Niepoprawne kluczehttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keysWybrany plik jest niepoprawny lub uszkodzony. Zrzuć ponownie swoje klucze.
@@ -86,7 +87,17 @@
Pierwszy podkatalog musi zawierać w nazwie numer ID tytułu gry.ImportujEksportuj
-
+ Zainstaluj firmware
+ Firmware musi być w postaci archiwum ZIP, niektóre gry wymagają go do uruchomienia/prawidłowego działania
+ Instaluję firmware
+ Zainstalowano pomyślnie
+ Błąd podczas instalacji firmware
+ Udostępnij logi debugowania
+ Podziel się logami yuzu, pomoże to twórcom w poprawie działania emulatora
+ Nie znaleziono plików logów
+ Zainstaluj zawartość gry
+ Zainstaluj aktualizację gry lub dodatek DLC
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updatesGaia isn\'t realSkopiowano do schowka
@@ -94,6 +105,7 @@
WspółtwórcyStworzone z \u2764 przez zespół yuzuhttps://github.com/yuzu-emu/yuzu/graphs/contributors
+ Projekty dzięki którym yuzu mógł zostać stworzonyWersjahttps://discord.gg/u77vRWYhttps://yuzu-emu.org/
@@ -114,27 +126,25 @@
Jesteś zainteresowany?
- Włącz limit szybkości emulacji
+ Limit szybkośćWłącz, aby ustawić procentowy limit szybkości emulacjiProcentowy limit szybkości emulacjiOkreśla limit szybkości emulacji gier. Domyślna wartość 100% oznacza normalną szybkość z jaką działa gra. Wartości niższe lub wyższe zmniejszą lub zwiększą limit szybkości.Dokładność procesora CPU
-
Tryb zadokowany
- Emulacja w trybie stacji dokującej, zwiększa rozdzielczość kosztem wydajności.
+ Zwiększa rozdzielczość kosztem wydajności. Kiedy wyłączone, używany jest tryb Handheld, który obniża rozdzielczość i dzięki temu zwiększa wydajność.Region emulacjiJęzyk emulacjiUstaw datę RTCUstaw czas RTC
- Włącz niestandardowy zegar RTC
+ Niestandardowy RTCTa opcja pozwala na wybranie własnych ustawień czasu używanych w czasie emulacji, innych niż czas systemu Android.Ustaw niestandardowy czas RTC
- Interfejs graficznyPoziom precyzji emulacji
- Rozdzielczość
+ Rozdzielczość (Handheld/Zadokowany)Synchronizacja pionowa VSyncProporcje ekranuFiltr adaptacji rozdzielczości
@@ -143,12 +153,16 @@
Wymusza uruchomienie maksymalnego taktowania układu graficznego (zabezpieczenia termiczne będą dalej aktywne).Wyłącz synchronizację shaderówKompiluj oświetlenie bez synchronizacji, poprawi wydajność ale może powodować błędy.
- Włącz debugowanie grafiki
- Kiedy włączone, interfejs graficzny korzysta z wolnego trybu debugowania błędów.
- Użyj pamięci podręcznej shaderów na dysku
+ Użyj spłukiwania reaktywnego - reactive flushing
+ Poprawia jakość renderowania w kilku grach, kosztem wydajności.
+ Pamięć podręczna shaderówZmniejsza przycięcia przez przechowywanie gotowych wygenerowanych plików oświetlenia w pamięci urządzenia.
-
+
+ CPU
+ Interfejs graficzny
+ Debugowanie grafiki
+ Kiedy włączone, interfejs graficzny korzysta z wolnego trybu debugowania błędów.GłośnośćUstala poziom głośności wyjścia dźwięku.
@@ -161,17 +175,21 @@
Przywrócić wartość tego ustawienia do wartości domyślnej?Przywróć ustawienia domyślnePrzywrócić WSZYSTKIE ustawienia?
- Wszystkie zaawansowane opcje zostaną przywrócone do wartości domyślnych. Czynności nie będzie można cofnąć.
+ Wszystkie zaawansowane opcje zostaną przywrócone do wartości domyślnych. Czynności nie będzie można cofnąćReset ustawieńZamknijDowiedz się więcej
-
+ Automatyczny
+ Zatwierdź
+ Importuj
+ EksportujWybierz sterownik GPU Chcesz zastąpić obecny sterownik układu graficznego?ZainstalujDomyślneAktywny domyślny sterownik GPU
+ Wybrano błędny sterownik, powrót do domyślnego. Systemowy sterownik GPUInstalowanie sterownika...
@@ -182,10 +200,10 @@
GrafikaDźwiękMotyw i kolor
+ DebugTwój ROM jest zakodowany
- kardridży lub zainstalowanych gier.]]>prod.keys jest zainstalowany aby gry mogły zostać odczytane.]]>Błąd inicjacji podsystemu graficznegoZazwyczaj spowodowane niekompatybilnym sterownikiem GPU, instalacja niestandardowego sterownika może rozwiązać ten problem.
@@ -198,23 +216,23 @@
Licznik FPSWybierz przyciskiWycentruj gałki
- Ruchomy DPad
+ Ruchomy D-padWibracje haptycznePokaż przyciski
- Zaznacz wszystkie
+ Włącz wszystkieDostosuj nakładkęSkalaPrzeźroczystość
- Resetuj
+ Resetuj nakładkęEdytuj nakładkęWstrzymaj emulacjęWznów emulacjęOpcje nakładki
- Wczytywanie ustawień...
+ Wczytuję ustawienia...
- Klawiatura systemowa
+ Klawiatura programowaPrzerwij
@@ -226,7 +244,6 @@
Błąd krytycznyWystąpił błąd krytyczny. Szczegóły znajdziesz w pliku log.\nKontynuowanie może spowodować błędy lub przerwanie emulacji. Wyłączenie tej opcji znacząco ograniczy wydajność! Dla najlepszego doświadczenia, zaleca się zostawienie tej opcji włączonej.
-
JaponiaUSA
@@ -236,8 +253,7 @@
KoreaTajwan
-
-
+ GBVulkanŻadny
@@ -274,12 +290,14 @@
FXAASMAA
+ Automatyczny
+
Domyślne (16:9)Wymuś 4:3Wymuś 21:9Wymuś 16:10
- Rozciągnij do Okna
+ Rozciągnij do oknaDokładny
@@ -287,7 +305,7 @@
Paranoid (Wolny)
- D-Pad
+ D-padLewa gałkaPrawa gałkaHome
@@ -298,18 +316,21 @@
Budowanie shaderów
- Zmień motyw aplikacji
+ Ustaw motyw aplikacjiDomyślnyMaterial You
- Zmiana trybu motywu
+ Zmień tryb motywuPodążaj za systemowymJasnyCiemny
- Używaj czarnego tła
+ Czarne tłaKiedy używany ciemny motyw, tła zostają zastąpione czernią.
-
+
+ Licencje
+ Rozciąganie wysokiej jakości od AMD
+
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 caa095364..8888fc750 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
@@ -1,30 +1,31 @@
-
+
- Este software corre jogos para a consola Nintendo Switch. Não estão incluídas nem jogos ou chaves. <br /><br />Antes de começares, por favor localiza o ficheiro no armazenamento do teu dispositivo.<br /><br />
+ Este software executa jogos do console Nintendo Switch. Não estão inclusos nem jogos ou chaves. <br /><br />Antes de começar, por favor localize o arquivo no armazenamento de seu dispositivo.<br /><br />Emulação está Ativa
- Mostra uma notificação permanente enquanto a emulação está a correr.
+ Mostra uma notificação permanente enquanto a emulação estiver em andamento.Yuzu está em execução Notificações e erros
- Mostra notificações quendo algo corre mal.
- Permissões de notificação não permitidas
+ Mostra notificações quando algo dá errado.
+ Acesso às notificações não concedido!
- Bemvindo!
- Aprende como configurar <b>yuzu</b> e arranca a emulação.
- Começa
- Chaves
- Seleciona o teu ficheiro <b>prod.keys</b> com o botão abaixo.
- Seleciona as Chaves
+ Bem-vindo!
+ Aprenda como configurar o <b>yuzu</b> e mergulhe na emulação.
+ Primeiros passos
+ Keys
+ Selecione seu arquivo <b>prod.keys</b> com o botão abaixo.
+ Selecione as KeysJogos
- Seleciona a tua pasta <b>Games</b> com o botão abaixo.
+ Seleciona sua pasta <b>Jogos</b> com o botão abaixo.Feito
- Tudo pronto.\nDisfruta dos teus jogos!
+ Tudo pronto.\nAproveite seus jogos!ContinuarPróximoVoltar
- Adiciona Jogos
- Seleciona a tua pasta de Jogos
+ Adicionar Jogos
+ Selecione sua pasta de Jogos
+ Completo!Jogos
@@ -37,7 +38,8 @@
Ignorar a seleção da pasta de jogos?Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada.https://yuzu-emu.org/help/quickstart/#dumping-games
- Procurar Jogos
+ Procurar jogos
+ Procurar nas definiçõesPasta de Jogos selecionadaInstala prod.keysNecessário para desencriptar jogos comerciais
@@ -61,15 +63,18 @@
Ficheiro de chaves inválidoChaves instaladas com sucessoErro ao ler chaves de encriptação
+ Verifique se seu arquivo keys possui a extensão .keys e tente novamente.
+ Verifique se seu arquivo keys possui a extensão .bin e tente novamente.Chaves de encriptação inválidashttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keysO ficheiro selecionado está corrompido. Por favor recarrega as tuas chaves.Instala driver para GPUInstala drivers alternativos para desempenho ou precisão potencialmente melhoresDefinições avançadas
+ Definições avançadas: %1$sConfigura definições do emulador
- Jogos recentes
- Adicionados recentemente
+ Jogado recentemente
+ Adicionado recentementeJogos comerciaisHomebrewAbre a pasta Yuzu
@@ -86,6 +91,33 @@
O nome da primeira sub pasta tem de ser a ID do jogo.ImportarExportar
+ Instalar firmware
+ O firmware deve estar em um arquivo ZIP e é necessário para iniciar alguns jogos.
+ Instalando firmware
+ Firmware instalado com sucesso.
+ Falha na instalação do firmware
+ Cofirma que os ficheiros firmware nca estão no root do finheiro zip e tenta de novo.
+ Compartilhe registros de debug.
+ Compartilhe o arquivo de registro do yuzu para obter ajuda com problemas
+ Arquivo de registro não encontrado
+ Instalar conteúdo de jogos
+ Instalar atualizações de jogos ou DLC
+ A instalar conteúdo...
+ Erro ao instalar ficheiro(s) para NAND
+ Por favor confitma que o conteúdo(s) é válido e que as prod.keys estão instaladas.
+ A instalação de jogos base não é permitida para evitar possíveis conflitos.
+ Sò conteúdos NSP e XCI são suportados. Por favor verifica que o conteúdo(s) do jogo são válidos.
+ %1$d erro(s) de instalação
+ Conteúdo(s) de jogo instalados com sucesso
+ %1$d instalado com sucesso
+ %1$d substituída com êxito
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ Drivers personalizados não suportados
+ Carrea«gamento de drivers personalizados não é suportado pr este dispositivo. \nCheck verifica esta opção de futuro para confirmar se o suporte foi adicionado!
+ Administrar dados yuzu
+ Importa/exporta firmware, chaves, dados do usuário e mais!
+ Partilha ficheiro duardado
+ Erro ao exportar dados guardadosGaia não é real
@@ -94,7 +126,18 @@
ContribuidoresFeito com \u2764 da equipa do Yuzuhttps://github.com/yuzu-emu/yuzu/graphs/contributors
+ Projetos que tornam o yuzu para Android possívelVersão
+ Dado de utilizados
+ Importar/exportar todos dados da aplicação data.\n\n Ao importar dados do utilizados, todos os dados existentes do utilizados serão excluídos!
+ A exportar dados de utilizados...
+ A importar dados de utilizador...
+ Importar dados de utilizados...
+ Backup yuzu inválido
+ Dados de utilizados exportados com sucesso
+ Dados de utilizador importado com sucesso
+ Exportação cancelada
+ Verifiqua se as pastas de dados do utilizados estão na raiz da pasta zip e contêm um arquivo de configuração em config/config.ini e tenta novamente.https://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu
@@ -114,41 +157,53 @@
Estás interessado?
- Ativar limite de velocidade
- Quando ativada, a velocidade da emulação será limitada à percentagem definida da velocidade normal.
+ Limite de velocidade
+ Limita a velocidade da emulação a uma porcentagem específica da velocidade normal.Percentagem do limite de velocidade
- Especifica o limite da percentagem da velocidade da emulação. Com a velocidade por defeito a 100% a emulação será limitada à velocidade normal. Valores maiores ou menores aumentarão ou diminuirão o limite de velocidade.
+ Especifica a porcentagem para limitar a velocidade de emulação. 100% é o normal. Valores mais altos ou mais baixos irão aumentar ou diminuir o limite de velocidade.Precisão do CPU
+ %1$s%2$s
- Modo ancorado
- Emula em modo ancorado, que aumenta a resolução ás custas da performance.
+ Modo Ancorado
+ Aumenta a resolução, diminuindo o desempenho. O Modo Portátil é utilizado quando estiver desabilitado, diminuindo a resolução e melhorando o desempenho.Região da emulaçãoIdioma da emulação
- Seleciona a data RTC
- Seleciona a hora RTC
- Ativa RTC personalizado
- Esta configuração permite definir um RTC personalizado diferente da hora atual do sistema
- Define RTC personalizado
+ Selecione a data do sistema
+ Selecione a hora do sistema
+ Data e hora personalizada
+ Permite a você configurar um relógio em tempo real separado do relógio do seu dispositivo.
+ Defina um relógio em tempo real personalizado
- APINível de precisão
- Resolução
+ Resolução (Portátil/Ancorado)Modo VSync
- Proporção do ecrã
+ Oriantação
+ Proporção da telaFiltro de Adaptação da Janela
- Método de Anti-Aliasing
+ Método de Anti-SerrilhadoForça velocidade máxima (Adreno only)Força o GPU a correr à velocidade máxima (restrições térmicas serão aplicadas)Usa shaders assíncronos
- Compila shaders assincronamente, que aumentará a fluidez, mas poderá causar falhas.
+ Compila os shaders de forma assíncrona, reduzindo travamentos, mas pode apresentar problemas.
+ Usar flushing reativo
+ Melhora a precisão da renderização em alguns jogos ao custo de desempenho.
+ Cache de shaders em disco
+ Reduz travamentos ao armazenar e carregar localmente os shaders.
+
+
+ CPU
+ Depuração da CPU
+ Coloca a CPU em um modo de depuração lento.
+ GPU
+ APIAtivar depuração de gráficosQuando selecionado, a API gráfica entra num modo de depuração mais lento.
- Usar cache de shaders em disco
- Aumenta a fluidez ao guardar e carregar shaders gerados para o armazenamento.
+ Fastmem
+ Motor de saídaVolumeEspecifica o volume de saída.
@@ -157,14 +212,24 @@
Definições guardadasDefinições guardadas para %1$sErro ao guardar %1$s.ini: %2$s
+ Menu não implementadoA carregar...
+ A desligar...Queres reverter esta definição para os valores padrão?Reverter para padrãoRedefinir todas as definições?
- Todas as definições avançadas serão redefinidas para as definições padrão. Isto não pode ser revertido.
+ Todas as configurações avançadas retornarão ao padrão. Isto não pode ser desfeito.Redefinir definiçõesFecharSaiba mais
+ Automático
+ Enviar
+ Nenhum (desativado)
+ Importar
+ Exportar
+ Exportação falhada
+ IMportação falhada
+ A cancelarSeleciona a driver para o GPU
@@ -172,6 +237,7 @@
InstalarPadrãoUsar o driver padrão do GPU
+ Driver selecionado inválido, a usar o padrão do sistema!Driver do GPU padrãoA instalar o Driver...
@@ -182,10 +248,11 @@
GráficosÁudioCor e tema.
+ DepuraçãoA tua ROM está encriptada
- Cartidges de Jogo or Jogos Instalados.]]>
+ cartucho de jogo or títulos instalados.]]>prod.keys está instalado para que os jogos possam ser desencriptados.]]>Ocorreu um erro ao iniciar o núcleo de vídeo.Isto é normalmente causado por um driver de GPU incompatível. Instalar um driver GPU pode resolver este problema.
@@ -193,25 +260,25 @@
O ficheiro da ROM não existe
- Sair da emulação
+ Parar emulaçãoFeitoContador de FPS
- Alterar Controlos
- Centro do Analógico Relativo
- Deslizar do DPad
- Hápticos
- Mostrar sobreposição
- Alterar todos
- Ajustar a sobreposição
+ Alterar controles
+ Centro Relativo de Analógico
+ Deslizamento dos Botões Direcionais
+ Vibração ao tocar
+ Mostrar overlay
+ Marcar/Desmarcar tudo
+ Ajustar overlayEscalaOpacidade
- Redefinir Sobreposição
- Editar sobreposição
- Pausa emulação
+ Restaurar overlay padrão
+ Editar overlay
+ Pausar emulaçãoRetomar emulação
- Opções de sobreposição
+ Opções de overlay
- Configurações a carregar...
+ Carregando configurações...Teclado de software
@@ -226,6 +293,9 @@
Erro fatalOcorreu um erro fatal. Verifica o teu registro para detalhes. \nContinuar a emulação pode causar erros.Desligar esta configuração irá reduzir a performance da emulação significantemente! Para a melhor experiência é recomendado que deixes esta configuração ativada.
+ RAM do dispositivo: %1$s\nRecommended: %2$s
+ %1$s %2$s
+ Nenhum jogo inicializável presente!Japão
@@ -236,7 +306,14 @@
CoréiaTaiwan
-
+
+ Byte
+ KB
+ MB
+ GB
+ TB
+ PB
+ EBVulcano
@@ -274,12 +351,17 @@
FXAASMAA
+
+ Landscape
+ Portrait
+ Automático
+
Padrão (16:9)Forçar 4:3Forçar 21:9Forçar 16:10
- Esticar para a janela
+ Esticar à janelaPreciso
@@ -287,7 +369,7 @@
Paranoid (Lento)
- D-pad
+ Botões DirecionaisAnalógico esquerdoAnalógico direitoBotão Home
@@ -298,18 +380,32 @@
A criar shaders
- Muda o Tema da App
+ Mudar o tema do aplicativoPadrãoMaterial You
- Altera o Modo do Tema
+ Alterar o temaIgual ao SistemaClaroEscuro
+
+ cubeb
+
- Usa Fundos Negros
+ Plano de fundo pretoQuando usar tema escuro, aplicar fundos escuros
-
+
+ Picture in Picture
+ Minimizar a janela quando colocada em segundo plano
+ Pausa
+ Correr
+ Mudo
+ Unmute
+
+
+ Licenças
+ Upscaling de alta qualidade da AMD
+
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 0a1a47fbb..6afea9b03 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
@@ -1,5 +1,5 @@
-
+Este software corre jogos para a consola Nintendo Switch. Não estão incluídas nem jogos ou chaves. <br /><br />Antes de começares, por favor localiza o ficheiro no armazenamento do teu dispositivo.<br /><br />Emulação está Ativa
@@ -25,6 +25,7 @@
VoltarAdiciona JogosSeleciona a tua pasta de Jogos
+ Completo!Jogos
@@ -37,7 +38,8 @@
Ignorar a seleção da pasta de jogos?Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada.https://yuzu-emu.org/help/quickstart/#dumping-games
- Procurar Jogos
+ Procurar jogos
+ Procurar nas definiçõesPasta de Jogos selecionadaInstala prod.keysNecessário para desencriptar jogos comerciais
@@ -61,15 +63,18 @@
Ficheiro de chaves inválidoChaves instaladas com sucessoErro ao ler chaves de encriptação
+ Verifique se seu arquivo keys possui a extensão .keys e tente novamente.
+ Verifique se seu arquivo keys possui a extensão .bin e tente novamente.Chaves de encriptação inválidashttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keysO ficheiro selecionado está corrompido. Por favor recarrega as tuas chaves.Instala driver para GPUInstala drivers alternativos para desempenho ou precisão potencialmente melhoresConfigurações avançadas
+ Definições avançadas: %1$sConfigura configurações do emulador
- Jogos recentes
- Adicionados recentemente
+ Jogado recentemente
+ Adicionado recentementeJogos comerciaisHomebrewAbre a pasta Yuzu
@@ -86,6 +91,33 @@
O nome da primeira sub pasta tem de ser a ID do jogo.ImportarExportar
+ Instalar firmware
+ O firmware deve estar em um arquivo ZIP e é necessário para iniciar alguns jogos.
+ Instalando firmware
+ Firmware instalado com sucesso.
+ Falha na instalação do firmware
+ Cofirma que os ficheiros firmware nca estão no root do finheiro zip e tenta de novo.
+ Compartilhe registros de debug.
+ Compartilhe o arquivo de registro do yuzu para obter ajuda com problemas
+ Arquivo de registro não encontrado
+ Instalar conteúdo adicional
+ Instale atualizações de jogos ou DLC
+ A instalar conteúdo...
+ Erro ao instalar ficheiro(s) para NAND
+ Por favor confitma que o conteúdo(s) é válido e que as prod.keys estão instaladas.
+ A instalação de jogos base não é permitida para evitar possíveis conflitos.
+ Sò conteúdos NSP e XCI são suportados. Por favor verifica que o conteúdo(s) do jogo são válidos.
+ %1$d erro(s) de instalação
+ Conteúdo(s) de jogo instalados com sucesso
+ %1$d instalado com sucesso
+ %1$d substituída com êxito
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ Drivers personalizados não suportados
+ Carrea«gamento de drivers personalizados não é suportado pr este dispositivo. \nCheck verifica esta opção de futuro para confirmar se o suporte foi adicionado!
+ Administrar dados yuzu
+ Importa/exporta firmware, chaves, dados do usuário e mais!
+ Partilha ficheiro duardado
+ Erro ao exportar dados guardadosGaia não é real
@@ -94,7 +126,18 @@
ContribuidoresFeito com \u2764 da equipa do Yuzuhttps://github.com/yuzu-emu/yuzu/graphs/contributors
+ Projetos que tornam o yuzu para Android possívelVersão
+ Dado de utilizados
+ Importar/exportar todos dados da aplicação data.\n\n Ao importar dados do utilizados, todos os dados existentes do utilizados serão excluídos!
+ A exportar dados de utilizados...
+ A importar dados de utilizador...
+ Importar dados de utilizados...
+ Backup yuzu inválido
+ Dados de utilizados exportados com sucesso
+ Dados de utilizador importado com sucesso
+ Exportação cancelada
+ Verifiqua se as pastas de dados do utilizados estão na raiz da pasta zip e contêm um arquivo de configuração em config/config.ini e tenta novamente.https://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu
@@ -114,41 +157,53 @@
Estás interessado?
- Ativar limite de velocidade
- Quando ativada, a velocidade da emulação será limitada à percentagem definida da velocidade normal.
+ Limite de velocidade
+ Limita a velocidade da emulação a uma porcentagem específica da velocidade normal.Percentagem do limite de velocidade
- Especifica o limite da percentagem da velocidade da emulação. Com a velocidade por defeito a 100% a emulação será limitada à velocidade normal. Valores maiores ou menores aumentarão ou diminuirão o limite de velocidade.
+ Especifica a porcentagem para limitar a velocidade de emulação. 100% é o normal. Valores mais altos ou mais baixos irão aumentar ou diminuir o limite de velocidade.Precisão do CPU
+ %1$s%2$s
- Modo ancorado
- Emula em modo ancorado, que aumenta a resolução ás custas da performance.
+ Modo Ancorado
+ Aumenta a resolução, diminuindo o desempenho. O Modo Portátil é utilizado quando estiver desabilitado, diminuindo a resolução e melhorando o desempenho.Região da emulaçãoIdioma da emulação
- Seleciona a data RTC
- Seleciona a hora RTC
- Ativa RTC personalizado
- Esta configuração permite definir um RTC personalizado diferente da hora atual do sistema
- Define RTC personalizado
+ Selecione a data do sistema
+ Selecione a hora do sistema
+ RTC personalizado
+ Permite a você configurar um relógio em tempo real separado do relógio do seu dispositivo.
+ Defina um relógio em tempo real personalizado
- APINível de precisão
- Resolução
+ Resolução (Portátil/Ancorado)Modo VSync
- Proporção do ecrã
+ Oriantação
+ Proporção da telaFiltro de Adaptação da Janela
- Método de Anti-Aliasing
+ Método de Anti-SerrilhadoForça velocidade máxima (Adreno only)Força o GPU a correr à velocidade máxima (restrições térmicas serão aplicadas)Usa shaders assíncronos
- Compila shaders assincronamente, que aumentará a fluidez, mas poderá causar falhas.
+ Compila os shaders de forma assíncrona, reduzindo travamentos, mas pode apresentar problemas.
+ Usar flushing reativo
+ Melhora a precisão da renderização em alguns jogos ao custo de desempenho.
+ Cache de shaders em disco
+ Reduz travamentos ao armazenar e carregar localmente os shaders.
+
+
+ CPU
+ Depuração da CPU
+ Coloca a CPU em um modo de depuração lento.
+ GPU
+ APIAtivar depuração de gráficosQuando selecionado, a API gráfica entra num modo de depuração mais lento.
- Usar cache do disk shader
- Aumenta a fluidez ao guardar e carregar shaders gerados para o armazenamento.
+ Fastmem
+ Motor de saídaVolumeEspecifica o volume de saída.
@@ -157,14 +212,24 @@
Configurações guardadasConfigurações guardadas para %1$sErro ao guardar %1$s.ini: %2$s
+ Menu não implementadoA carregar...
+ A desligar...Queres reverter esta definição para os valores padrão?Reverter para padrãoRedefinir todas as configurações?
- Todas as configurações avançadas serão redefinidas para as definições padrão. Isto não pode ser revertido.
+ Todas as configurações avançadas retornarão ao padrão. Isto não pode ser desfeito.Redefinir configurações Fechar
- Saber Mais
+ Saber mais
+ Automático
+ Enviar
+ Nenhum (desativado)
+ Importar
+ Exportar
+ Exportação falhada
+ IMportação falhada
+ A cancelarSeleciona a driver para o GPU
@@ -172,6 +237,7 @@
InstalarPadrãoUsar o driver padrão do GPU
+ Driver selecionado inválido, a usar o padrão do sistema!Driver do GPU padrãoA instalar o Driver...
@@ -182,10 +248,11 @@
GráficosAudioCor e tema.
+ DepurarA tua ROM está encriptada
- Cartidges de Jogo or Jogos Instalados.]]>
+ cartucho de jogo or títulos instalados.]]>prod.keys está instalado para que os jogos possam ser desencriptados.]]>Ocorreu um erro ao iniciar o núcleo de vídeo.Isto é normalmente causado por um driver de GPU incompatível. Instalar um driver GPU pode resolver este problema.
@@ -193,28 +260,28 @@
O ficheiro da ROM não existe
- Sair da emulação
+ Parar emulaçãoFeitoContador de FPS
- Alterar Controlos
- Centro do Analógico Relativo
- Deslizar do DPad
- Hápticos
- Mostrar sobreposição
- Alterar todos
- Ajustar a sobreposição
+ Alterar controles
+ Centro Relativo de Analógico
+ Deslizamento dos Botões Direcionais
+ Vibração ao tocar
+ Mostrar overlay
+ Marcar/Desmarcar tudo
+ Ajustar overlayEscalaOpacidade
- Redefinir Sobreposição
- Editar sobreposição
- Pausa emulação
- Retomar emulação
- Opções de sobreposição
+ Restaurar overlay padrão
+ Editar overlay
+ Pausar emulação
+ Despausar emulação
+ Opções de overlay
- Configurações a carregar...
+ Carregando configurações...
- Teclado de Software
+ Teclado de softwareAbortar
@@ -226,6 +293,9 @@
Erro fatalOcorreu um erro fatal. Verifica o teu registro para detalhes. \nContinuar a emulação pode causar erros.Desligar esta configuração irá reduzir a performance da emulação significantemente! Para a melhor experiência é recomendado que deixes esta configuração ativada.
+ RAM do dispositivo: %1$s\nRecommended: %2$s
+ %1$s %2$s
+ Nenhum jogo inicializável presente!Japão
@@ -236,7 +306,14 @@
CoreiaTaiwan
-
+
+ Byte
+ KB
+ MB
+ GB
+ TB
+ PB
+ EBVulcano
@@ -274,12 +351,17 @@
FXAASMAA
+
+ Landscape
+ Portrait
+ Automático
+
Padrão (16:9)Forçar 4:3Forçar 21:9Forçar 16:10
- Esticar à Janela
+ Esticar à janelaPreciso
@@ -287,9 +369,9 @@
Paranoid (Lento)
- D-Pad
- Analógico Esquerdo
- Analógico Direito
+ Botões Direcionais
+ Analógico esquerdo
+ Analógico direitoHomeCaptura de ecrã
@@ -298,18 +380,32 @@
A criar shaders
- Muda o Tema da App
+ Mudar o tema do aplicativoPadrãoMaterial You
- Altera o Modo do Tema
+ Alterar o temaIgual ao SistemaClaroEscuro
+
+ cubeb
+
- Usa Fundos Escuros
+ Plano de fundo pretoQuando usar tema escuro, aplicar fundos escuros
-
+
+ Picture in Picture
+ Minimizar a janela quando colocada em segundo plano
+ Pausa
+ Correr
+ Mute
+ Unmute
+
+
+ Licenças
+ Upscaling de alta qualidade da AMD
+
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 0bef035d6..c614257a8 100644
--- a/src/android/app/src/main/res/values-ru/strings.xml
+++ b/src/android/app/src/main/res/values-ru/strings.xml
@@ -1,5 +1,5 @@
-
+Это программное обеспечение позволяет запускать игры для игровой консоли Nintendo Switch. Мы не предоставляем сами игры или ключи.<br /><br />Перед началом работы найдите файл prod.keys ]]> в хранилище устройства..<br /><br />Узнать больше]]>Эмуляция активна
@@ -7,7 +7,7 @@
yuzu запущенУведомления и ошибкиПоказывать уведомления, когда что-то пошло не так
- Вы не предоставили разрешение уведомлений!
+ Вы не предоставили разрешение на уведомления!Добро пожаловать!
@@ -25,6 +25,7 @@
НазадДобавить игрыВыберите папку с играми
+ Выполнено!Игры
@@ -38,6 +39,7 @@
Игры не будут отображаться в списке Игры, если папка не выбрана.https://yuzu-emu.org/help/quickstart/#dumping-gamesНайти игры
+ Настройки поискаВыбрана папка с играмиУстановить prod.keysТребуется для расшифровки розничных игр
@@ -61,14 +63,17 @@
Выбран неверный файл ключейКлючи успешно установленыОшибка при чтении ключей шифрования
+ Убедитесь, что файл ключей имеет расширение .keys, и повторите попытку.
+ Убедитесь, что файл ключей имеет расширение .bin, и повторите попытку.Неверные ключи шифрованияhttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keysВыбранный файл неверен или поврежден. Пожалуйста, пере-дампите ваши ключи.Установить драйвер ГПУстановите альтернативные драйверы для потенциально лучшей производительности и/или точностиРасширенные настройки
+ Расширенные настройки: %1$sНастройка параметров эмулятора
- Недавно сыграно
+ Недавно сыгранныеНедавно добавленоРозничныеHomebrew
@@ -86,6 +91,34 @@
Название первой вложенной папки должно быть идентификатором игры.ИмпортЭкспорт
+ Установить прошивку
+ Прошивка должна находиться в ZIP-архиве и необходима для загрузки некоторых игр
+ Установка прошивки
+ Прошивка успешно установлена
+ Не удалось установить прошивку
+ Убедитесь что файлы прошивки nca находятся в корне zip-архива и повторите попытку.
+ Поделиться журналом отладки
+ Поделиться журналом отладки yuzu для устранения проблем
+ Файл журнала не найден
+ Установить игровой контент
+ Установить обновления игры или дополнений
+ Установка контента...
+ Ошибка установки файл(ов) в NAND.
+ Убедитесь что содержимое допустимо и что файл prod.keys установлен.
+ Установка базовых игр запрещена во избежание возможных конфликтов.
+ Поддерживается только контент NSP и XCI. Пожалуйста убедитесь что игровой контент действителен.
+ %1$d ошибка установки
+ Игровой контент успешно установлен
+ %1$d Успешно установлено
+ %1$d Успешно перезаписано
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ Пользовательские драйверы не поддерживаются
+ Загрузка пользовательского драйвера в настоящее время не поддерживается для этого устройства.\nПроверьте этот параметр еще раз в будущем чтобы узнать была ли добавлена поддержка!
+
+ Управление данными yuzu
+ Импортируйте/экспортируйте прошивку, ключи, пользовательские данные и многое другое!
+ Поделиться файлом сохранения
+ Не удалось экспортировать сохранениеGaia не существует
@@ -94,7 +127,18 @@
КонтрибьюторыСделано с \u2764 от команды yuzuhttps://github.com/yuzu-emu/yuzu/graphs/contributors
+ Проекты, которые сделали yuzu для Android возможнымСборка
+ Данные пользователя
+ Импортируйте/экспортируйте все данные приложения.\n\nПри импорте пользовательских данных все существующие пользовательские данные будут удалены!
+ Экспорт пользовательских данных…
+ Импорт пользовательских данных…
+ Импортировать пользовательские данные
+ Неверная резервная копия yuzu
+ Пользовательские данные успешно экспортированы
+ Пользовательские данные успешно импортированы
+ Экспорт отменен
+ Убедитесь что папки пользовательских данных находятся в корне zip-папки и содержат файл конфигурации config/config.ini и повторите попытку.https://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu
@@ -114,41 +158,51 @@
Вы заинтересованы?
- Включить ограничение скорости
- Если эта функция включена, скорость эмуляции будет ограничена указанным процентом от нормальной скорости.
+ Ограничить скорость
+ Ограничивает скорость эмуляции указанным процентом от нормальной скорости.Ограничение процента cкорости
- Указывает процент для ограничения скорости эмуляции. При значении по умолчанию 100% эмуляция будет ограничена нормальной скоростью. Значения выше или ниже будут увеличивать или уменьшать ограничение скорости.
+ Указывает процент ограничения скорости эмуляции. 100% - это нормальная скорость. Значения больше или меньше увеличивают или уменьшают ограничение скорости.Точность ЦП
+ %1$s%2$sРежим док-станции
- Эмуляция режима док-станции, что увеличивает разрешение за счет снижения производительности.
- Эмулируемый регион
- Эмулируемый язык
+ Увеличивает разрешение, снижая производительность. Портативный режим используется при отключении, снижая разрешение и повышая производительность.
+ Регион консоли
+ Язык консолиВыберите дату RTCВыберите время RTC
- Включить пользовательский RTC
- Этот параметр позволяет установить пользовательские часы реального времени отдельно от текущего системного времени
+ Пользовательский RTC
+ Позволяет установить пользовательские часы реального времени отдельно от текущего системного времени.Установить пользовательский RTC
- APIУровень точности
- Разрешение
+ Разрешение (портативное/в док-станции)Режим верт. синхронизации
+ ОриентацияСоотношение сторонФильтр адаптации окнаМетод сглаживанияПринудительно заставить максимальную тактовую частоту (только для Adreno)Заставляет ГП работать на максимально возможных тактовых частотах (тепловые ограничения все равно будут применяться).Использовать асинхронные шейдеры
- Компилирует шейдеры асинхронно, что уменьшает зависания, но может взамен предоставить визуальные баги.
- Включить отладку графики
- Если включено, графический API переходит в более медленный режим отладки
- Использовать кэш шейдеров на диске
- Уменьшение зависаний за счет хранения и загрузки сгенерированных шейдеров на хранилище.
+ Компиляция шейдеров происходит асинхронно, что уменьшает зависания, но может привести к появлению багов.
+ Реактивная очистка
+ Повышение точности рендеринга в некоторых играх за счет снижения производительности.
+ Кэш шейдеров на диске
+ Уменьшение зависаний за счет хранения и загрузки сгенерированных шейдеров.
+
+
+ ЦП
+ Отладка ЦП
+ Переводит ЦП в режим медленной отладки.
+ графический процессор
+ API
+ Отладка графики
+ Переводит графический API в режим медленной отладки.
+ Fastmem
-
ГромкостьЗадает громкость аудиовыхода.
@@ -157,7 +211,9 @@
Сохраненные настройкиНастройки сохранены для %1$sОшибка сохранения %1$s.ini: %2$s
+ Нереализованное менюЗагрузка...
+ Выключение…Хотите ли вы вернуть этот параметр к значению по умолчанию?Сброс к настройкам по умолчаниюСбросить все настройки?
@@ -165,6 +221,14 @@
Настройки сброшеныЗакрытьУзнать больше
+ Авто
+ Отправить
+ Null
+ Импорт
+ Экспорт
+ Ошибка экспорта
+ Ошибка импортирования
+ ОтменяюВыбрать драйвер ГП
@@ -172,6 +236,7 @@
УстановитьПо умолчаниюИспользуется стандартный драйвер ГП
+ Выбран неверный драйвер, используется стандартный системный!Системный драйвер ГПУстановка драйвера...
@@ -182,10 +247,11 @@
ГрафикаАудиоТема и цвет
+ ОтладкаВаш ROM зашифрованный
- игровые картриджи или установленные игры.]]>
+ или установленные игры.]]>prod.keys установлен, чтобы игры можно было расшифровать.]]>Произошла ошибка при инициализации видеоядра.Обычно это вызвано несовместимым драйвером ГП. Установка пользовательского драйвера ГП может решить эту проблему.
@@ -199,17 +265,17 @@
Переключение управленияОтносительный центр стикаСлайд крестовиной
- Тактильная обратная связь
+ Обратная связь от нажатийПоказать оверлейПереключить всё
- Настроить оверлей
+ Регулировка оверлеяМасштабНепрозрачностьСбросить оверлей
- Изменить оверлей
+ Редактировать оверлейПауза эмуляции
- Возобновление эмуляции
- Настройки оверлея
+ Возобновить эмуляцию
+ Настройка оверлеяЗагрузка настроек...
@@ -226,6 +292,9 @@
Фатальная ошибкаПроизошла фатальная ошибка. Проверьте журнал для получения подробной информации.\nПродолжение эмуляции может привести к сбоям и ошибкам.Отключение этой настройки значительно снизит производительность эмуляции! Для достижения наилучших результатов рекомендуется оставить эту настройку включенной.
+ Оперативная память устройства: %1$s\nРекомендовано: %2$s
+ %1$s%2$s
+ Загрузочной игры нету!Япония
@@ -236,7 +305,14 @@
КореяТайвань
-
+
+ Байт
+ КБ
+ МБ
+ GB
+ ТБ
+ ПБ
+ ЕВVulkan
@@ -274,6 +350,11 @@
FXAASMAA
+
+ Пейзаж
+ Портрет
+ Авто
+
Стандартное (16:9)Заставить 4:3
@@ -288,8 +369,8 @@
Крестовина
- Левый мини-джойстик
- Правый мини-джойстик
+ Левый стик
+ Правый стикHomeСкриншот
@@ -298,18 +379,32 @@
Постройка шейдеров
- Изменить тему приложения
+ Сменить темуПо умолчаниюMaterial You
- Изменить режим темы
+ Сменить режим темыСистемнаяСветлаяТемная
+
+ cubeb
+
- Использовать черный фон
+ Чёрный фонПри использовании темной темы применяйте черный фон.
-
+
+ Картинка в картинке
+ Свернуть окно при размещении в фоновом режиме
+ Пауза
+ Играть
+ Выключить звук
+ Включить звук
+
+
+ Лицензии
+ Высококачественное масштабирование от AMD
+
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 5b789ee98..34809dbb8 100644
--- a/src/android/app/src/main/res/values-uk/strings.xml
+++ b/src/android/app/src/main/res/values-uk/strings.xml
@@ -1,5 +1,5 @@
-
+Це програмне забезпечення дозволяє запускати ігри для ігрової консолі Nintendo Switch. Ми не надаємо самі ігри або ключі.<br /><br />Перед початком роботи знайдіть ваш файл prod.keys ]]> у сховищі пристрою.<br /><br />Дізнатися більше]]>Емуляція активна
@@ -25,7 +25,6 @@
НазадДодати ігриВиберіть папку з іграми
-
ІгриПошук
@@ -61,6 +60,7 @@
Вибрано неправильний файл ключівКлючі успішно встановленоПомилка під час зчитування ключів шифрування
+ Переконайтеся, що файл ключів має розширення .keys, і повторіть спробу.Невірні ключі шифруванняhttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keysОбраний файл невірний або пошкоджений. Будь ласка, пере-дампіть ваші ключі.
@@ -68,8 +68,6 @@
Встановіть альтернативні драйвери для потенційно кращої продуктивності та/або точностіРозширені налаштуванняНалаштування параметрів емулятора
- Нещодавно зіграно
- Нещодавно доданоРоздрібніHomebrewВідкрити папку yuzu
@@ -86,7 +84,6 @@
Назва першої вкладеної папки має бути ідентифікатором гри.ІмпортЕкспорт
-
Gaia не існуєСкопійовано в буфер обміну
@@ -113,42 +110,20 @@
Наша нескінченна вдячністьВи зацікавлені?
-
- Увімкнути обмеження швидкості
- Якщо цю функцію ввімкнено, швидкість емуляції буде обмежена зазначеним відсотком від нормальної швидкості.Обмеження відсотка швидкості
- Вказує відсоток для обмеження швидкості емуляції. При значенні за замовчуванням 100% емуляція буде обмежена нормальною швидкістю. Значення вище або нижче збільшуватимуть або зменшуватимуть обмеження швидкості.Точність ЦП
-
-
- Режим док-станції
- Емуляція режиму док-станції, що збільшує роздільну здатність за рахунок зниження продуктивності.Емульований регіонЕмульована мова
- Оберіть дату RTC
- Оберіть час RTC
- Увімкнути користувацький RTC
- Цей параметр дає змогу встановити користувацький годинник реального часу окремо від поточного системного часу
- Встановити користувацький RTC
-
+ Користувацький RTC
- APIРівень точності
- Роздільна здатністьРежим верт. синхронізації
- Співвідношення сторін
- Фільтр адаптації вікна
- Метод згладжуванняПримусово змусити максимальну тактову частоту (тільки для Adreno)Змушує ГП працювати на максимально можливих тактових частотах (теплові обмеження все одно будуть застосовуватися).Використовувати асинхронні шейдери
- Компілює шейдери асинхронно, що зменшує зависання, але може натомість надати візуальні баги.
- Увімкнути налагодження графіки
- Якщо увімкнено, графічний API переходить у повільніший режим налагодження
- Використовувати кеш шейдерів на диску
- Зменшення зависань завдяки зберіганню та завантаженню згенерованих шейдерів на сховище.
-
-
+
+ ЦП
+ APIГучністьВказує гучність аудіовиходу.
@@ -161,17 +136,20 @@
Чи хочете ви повернути цей параметр до значення за замовчуванням?Скидання до налаштувань за замовчуваннямСкинути всі налаштування
- Усі додаткові налаштування буде скинуто до налаштування за замовчуванням. Це неможливо скасувати.Налаштування скинутоЗакритиДізнатися більше
-
+ Авто
+ Null
+ Імпорт
+ ЕкспортВибрати драйвер ГПХочете замінити поточний драйвер ГП?ВстановитиЗа замовчуваннямВикористовується стандартний драйвер ГП
+ Обрано неправильний драйвер, використовується стандартний системний!Системний драйвер ГПВстановлення драйвера...
@@ -182,40 +160,19 @@
ГрафікаАудіоТема і колір
+ НалагодженняВаш ROM зашифрований
- ігрові картриджі або встановлені ігри.]]>prod.keys встановлено, щоб ігри можна було розшифрувати.]]>Сталася помилка під час ініціалізації відеоядра.Зазвичай це спричинено несумісним драйвером ГП. Встановлення користувацького драйвера ГП може вирішити цю проблему.Не вдалося запустити ROMФайл ROM не існує
-
- Вихід з емуляціїГотово
- Лічильник FPS
- Перемикання керування
- Відносний центр стіка
- Слайд хрестовиною
- Тактильний зворотний зв\'язок
- Показати оверлей
- Перемкнути все
- Налаштувати оверлейМасштабНепрозорість
- Скинути оверлей
- Змінити оверлей
- Пауза емуляції
- Відновлення емуляції
- Налаштування оверлея
-
- Завантаження налаштувань...
-
-
- Віртуальна клавіатура
-
ПерерватиПродовжити
@@ -226,7 +183,6 @@
Фатальна помилкаСталася фатальна помилка. Перевірте журнал для отримання докладної інформації.\nПродовження емуляції може призвести до збоїв і помилок.Вимкнення цього налаштування значно знизить продуктивність емуляції! Для досягнення найкращих результатів рекомендується залишити це налаштування увімкненим.
-
ЯпоніяСША
@@ -236,8 +192,7 @@
КореяТайвань
-
-
+ GBVulkanВимкнено
@@ -274,22 +229,18 @@
FXAASMAA
+ Авто
+
За замовчуванням (16:9)Змусити 4:3Змусити 21:9Змусити 16:10
- Розтягнути до вікна
-
ТочноНебезпечноПараноїк (повільно)
-
- Кнопки напрямків
- Лівий міні-джойстик
- Правий міні-джойстикHomeЗнімок екрану
@@ -297,19 +248,16 @@
Підготовка шейдерівПобудова шейдерів
-
- Змінити тему застосункуЗа замовчуваннямMaterial You
-
- Змінити режим темиСистемнаСвітлаТемна
-
- Використовувати чорне тлоУ разі використання темної теми застосовуйте чорне тло.
-
+ Вимкнути звук
+ Увімкнути звук
+
+
diff --git a/src/android/app/src/main/res/values-vi/strings.xml b/src/android/app/src/main/res/values-vi/strings.xml
new file mode 100644
index 000000000..f977db3a2
--- /dev/null
+++ b/src/android/app/src/main/res/values-vi/strings.xml
@@ -0,0 +1,340 @@
+
+
+
+ Phần mềm này sẽ chạy các game cho máy chơi game Nintendo Switch. Không có title games hoặc keys được bao gồm.<br /><br />Trước khi bạn bắt đầu, hãy tìm tập tin prod.keys ]]> trên bộ nhớ thiết bị của bạn.<br /><br />Tìm hiểu thêm]]>
+ Giả lập đang chạy
+ Hiển thị thông báo liên tục khi giả lập đang chạy.
+ yuzu đang chạy
+ Thông báo và lỗi
+ Hiển thị thông báo khi có sự cố xảy ra.
+ Ứng dụng không được cấp quyền thông báo!
+
+
+ Chào mừng!
+ Tìm hiểu cách cài đặt <b>yuzu</b> và bắt đầu giả lập.
+ Bắt đầu
+ Keys
+ Chọn tệp <b>prod.keys</b> của bạn bằng nút bên dưới.
+ Chọn Keys
+ Game
+ Chọn thư mục <b>Game</b> của bạn bằng nút bên dưới.
+ Hoàn thành
+ Tất cả đã hoàn tất.\nHãy tận hưởng các game của bạn!
+ Tiếp tục
+ Tiếp theo
+ Trở lại
+ Thêm Game
+ Chọn thư mục game của bạn
+
+ Game
+ Tìm kiếm
+ Cài đặt
+ Không tìm thấy tập tin hoặc chưa có thư mục game nào được chọn.
+ Tìm và lọc game
+ Chọn thư mục game
+ Cho phép yuzu thêm vào danh sách game
+ Bỏ qua việc lựa chọn thư mục game?
+ Game sẽ không hiển thị trong danh sách nếu một thư mục không được chọn.
+ https://yuzu-emu.org/help/quickstart/#dumping-games
+ Tìm kiếm game
+ Thư mục game đã được chọn
+ Cài đặt prod.keys
+ Yêu cầu để giải mã các game bán lẻ
+ Bỏ qua việc thêm keys?
+ Cần có keys hợp lệ để giả lập các game bán lẻ. Chỉ có các ứng dụng homebrew có thể vận hành nếu bạn tiếp tục.
+ https://yuzu-emu.org/help/quickstart/#guide-introduction
+ Thông báo
+ Cấp quyền thông báo bằng nút bên dưới.
+ Cấp quyền
+ Bỏ qua việc cấp quyền thông báo?
+ yuzu sẽ không thể gửi những thông báo quan trọng đến bạn.
+ Đã từ chối cấp quyền
+ Bạn từ chối cấp quyền này quá nhiều lần và giờ bạn phải cấp quyền thủ công trong cài đặt máy.
+ Thông tin
+ Phiên bản, đóng góp và những thứ khác
+ Trợ giúp
+ Bỏ qua
+ Hủy bỏ
+ Cài đặt keys Amiibo
+ Cần thiết để dùng Amiibo trong game
+ Tệp keys không hợp lệ đã được chọn
+ Cài đặt keys thành công
+ Lỗi đọc keys mã hóa
+ Xác minh rằng tệp keys của bạn có đuôi .keys và thử lại.
+ Xác minh rằng tệp keys của bạn có đuôi .bin và thử lại.
+ Keys mã hoá không hợp lệ
+ https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys
+ Tệp đã chọn sai hoặc hỏng. Vui lòng trích xuất lại keys của bạn.
+ Cài đặt driver GPU
+ Cài đặt driver thay thế để có thể có hiệu suất tốt và chính xác hơn
+ Cài đặt nâng cao
+ Cấu hình cài đặt giả lập
+ Đã chơi gần đây
+ Đã thêm gần đây
+ Bán lẻ
+ Homebrew
+ Mở thư mục yuzu
+ Quản lý tệp nội bộ của yuzu
+ Thay đổi giao diện ứng dụng
+ Không tìm thấy trình quản lý tập tin
+ Không thể mở thư mục yuzu
+ Vui lòng xác định thư mục người dùng với bảng điều khiển bên của trình quản lý tệp thủ công.
+ Quản lý dữ liệu save
+ Đã tìm thấy dữ liệu save. Vui lòng chọn một tuỳ chọn bên dưới.
+ Nhập hoặc xuất tệp save
+ Nhập thành công
+ Cấu trúc thư mục save không hợp lệ
+ Tên thư mục con đầu tiên phải là ID title của game.
+ Nhập
+ Xuất
+ Cài đặt firmware
+ Firmware phải được đặt trong một tập tin nén ZIP và cần thiết để khởi chạy một số game
+ Đang cài đặt firmware
+ Cài đặt firmware thành công
+ Cài đặt firmware thất bại
+ Chia sẻ nhật ký gỡ lỗi
+ Chia sẻ tập tin nhật ký của yuzu để gỡ lỗi vấn đề
+ Không tìm thấy tập tin nhật ký
+ Cài đặt nội dung game
+ Cài đặt cập nhật game hoặc DLC
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+
+ Gaia không có thật
+ Đã sao chép vào bộ nhớ tạm
+ Một giả lập Switch mã nguồn mở
+ Người đóng góp
+ Được làm với \u2764 từ nhóm yuzu
+ https://github.com/yuzu-emu/yuzu/graphs/contributors
+ Các dự án làm cho yuzu trên Android trở thành điều có thể
+ Dựng
+ https://discord.gg/u77vRWY
+ https://yuzu-emu.org/
+ https://github.com/yuzu-emu
+
+
+ Early Access
+ Tải Early Access
+ https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea
+ Các tính năng tiên tiến, truy cập sớm các bản cập nhật và nhiều hơn nữa
+ Lợi ích của Early Access
+ Tính năng tiên tiến
+ Truy cập sớm các bản cập nhật
+ Không có cài đặt thủ công
+ Ưu tiên hỗ trợ
+ Hỗ trợ bảo tồn game
+ Sự biết ơn vô hạn của chúng tôi
+ Bạn có thấy hứng thú không?
+
+
+ Giới hạn tốc độ
+ Giới hạn tốc độ giả lập ở một phần trăm cụ thể của tốc độ bình thường.
+ Giới hạn phần trăm tốc độ
+ Xác định phần trăm để giới hạn tốc độ giả lập. 100% là tốc độ bình thường. Giá trị cao hơn hoặc thấp hơn sẽ tăng hoặc giảm giới hạn tốc độ.
+ Độ chính xác CPU
+
+ Chế độ docked
+ Tăng độ phân giải, giảm hiệu suất. Chế độ handheld được sử dụng khi tắt, giảm độ phân giải và tăng hiệu suất.
+ Khu vực giả lập
+ Ngôn ngữ giả lập
+ Chọn ngày RTC
+ Chọn giờ RTC
+ RTC tuỳ chỉnh
+ Cho phép bạn thiết lập một đồng hồ thời gian thực tùy chỉnh riêng biệt so với thời gian hệ thống hiện tại.
+ Thiết lập RTC tùy chỉnh
+
+
+ Mức độ chính xác
+ Độ phân giải (Handheld/Docked)
+ Chế độ VSync
+ Tỉ lệ khung hình
+ Bộ lọc điều chỉnh cửa sổ
+ Phương pháp khử răng cưa
+ Buộc chạy ở xung nhịp tối đa (chỉ cho Adreno)
+ Buộc GPU hoạt động ở xung nhịp tối đa có thể (ràng buộc nhiệt độ vẫn sẽ được áp dụng).
+ Dùng các shader bất đồng bộ
+ Biên dịch các shader bất đồng bộ, giảm tình trạng giật lag nhưng có thể gây ra các lỗi.
+ Dùng xả tương ứng
+ Cải thiện độ chính xác kết xuất trong một số game nhưng đồng thời giảm hiệu suất.
+ Lưu bộ nhớ đệm shader trên ổ cứng
+ Giảm tình trạng giật lag bằng cách lưu trữ và tải các shader được tạo ra nội bộ.
+
+
+ CPU
+ API
+ Gỡ lỗi đồ hoạ
+ Đặt API đồ họa vào chế độ gỡ lỗi chậm.
+ Âm lượng
+ Xác định âm lượng của đầu ra âm thanh.
+
+
+ Mặc định
+ Cài đặt đã lưu
+ Cài đặt đã lưu cho %1$s
+ Lỗi khi lưu %1$s.ini: %2$s
+ Đang tải...
+ Bạn có muốn đặt lại cài đặt này về giá trị mặc định không?
+ Đặt lại về mặc định
+ Bạn có muốn đặt lại tất cả các cài đặt về giá trị mặc định không?
+ Tất cả các cài đặt nâng cao sẽ được đặt lại về cấu hình mặc định. Điều này không thể hoàn tác.
+ Cài đặt đã được đặt lại
+ Đóng
+ Tìm hiểu thêm
+ Tự động
+ Gửi
+ Null
+ Nhập
+ Xuất
+
+ Chọn driver GPU
+ Bạn có muốn thay thế driver GPU hiện tại không?
+ Cài đặt
+ Mặc định
+ Dùng driver GPU mặc định
+ Driver không hợp lệ đã được chọn, dùng mặc định hệ thống!
+ Driver GPU hệ thống
+ Đang cài đặt driver...
+
+
+ Cài đặt
+ Chung
+ Hệ thống
+ Đồ hoạ
+ Âm thanh
+ Chủ đề và màu sắc
+ Gỡ lỗi
+
+
+ ROM của bạn đã bị mã hoá
+ prod.keys đã được cài đặt để các game có thể được giải mã.]]>
+ Đã xảy ra lỗi khi khởi tạo lõi video
+ Việc này thường do driver GPU không tương thích. Cài đặt một driver GPU tùy chỉnh có thể giải quyết vấn đề này.
+ Không thể nạp ROM
+ Tệp ROM không tồn tại
+
+
+ Thoát giả lập
+ Hoàn thành
+ Bộ đếm FPS
+ Chuyển đổi điều khiển
+ Trung tâm nút cần xoay tương đối
+ Trượt D-pad
+ Chạm haptics
+ Hiện lớp phủ
+ Chuyển đổi tất cả
+ Điều chỉnh lớp phủ
+ Tỉ lệ thu phóng
+ Độ mờ
+ Đặt lại lớp phủ
+ Chỉnh sửa lớp phủ
+ Tạm đừng giả lập
+ Tiếp tục giả lập
+ Tuỳ chọn lớp phủ
+
+ Đang tải cài đặt...
+
+
+ Bàn phím mềm
+
+
+ Hủy bỏ
+ Tiếp tục
+ Không tìm thấy bản lưu trữ của hệ thống
+ %s bị thiếu. Vui lòng trích xuất các bản lưu trữ hệ thống của bạn.\nNếu chạy tiếp giả lập có thể bị crash và lỗi.
+ Một bản lưu trữ của hệ thống
+ Lỗi Lưu/Tải
+ Lỗi nghiêm trọng
+ Đã xảy ra lỗi nghiêm trọng. Kiểm tra nhật ký để biết thêm chi tiết.\nNếu chạy tiếp giả lập có thể bị crash và lỗi.
+ Tắt cài đặt này sẽ làm giảm đáng kể hiệu suất giả lập! Để có trải nghiệm tốt nhất, bạn nên bật cài đặt này.
+
+ Nhật Bản
+ Hoa Kỳ
+ Châu Âu
+ Úc
+ Trung Quốc
+ Hàn Quốc
+ Đài Loan
+
+ GB
+
+ Vulkan
+ Không có
+
+
+ Bình thường
+ Cao
+ Cực đại (Chậm)
+
+
+ 0.5X (360p/540p)
+ 0.75X (540p/810p)
+ 1X (720p/1080p)
+ 2X (1440p/2160p) (Chậm)
+ 3X (2160p/3240p) (Chậm)
+ 4X (2880p/4320p) (Chậm)
+
+
+ Immediate (Tắt)
+ Mailbox
+ FIFO (Bật)
+ FIFO Relaxed
+
+
+ Nearest Neighbor
+ Bilinear
+ Bicubic
+ Gaussian
+ ScaleForce
+ AMD FidelityFX™ Super Resolution
+
+
+ Không có
+ FXAA
+ SMAA
+
+ Tự động
+
+
+ Mặc định (16:9)
+ Dùng 4:3
+ Dùng 21:9
+ Dùng 16:10
+ Mở rộng đến cửa sổ
+
+
+ Chính xác
+ Không an toàn
+ Paranoid (Chậm)
+
+
+ D-pad
+ Cần trái
+ Cần phải
+ Home
+ Ảnh chụp màn hình
+
+
+ Đang chuẩn bị shader
+ Đang đựng shader
+
+
+ Thay đổi chủ đề ứng dụng
+ Mặc định
+ Material You
+
+
+ Thay đổi chủ đề
+ Theo hệ thống
+ Sáng
+ Tối
+
+
+ Nền đen
+ Khi sử dụng chủ đề tối, hãy áp dụng nền đen.
+
+ Tắt tiếng
+ Bật tiếng
+
+
+ Giấy phép
+ Upscaling chất lượng cao từ AMD
+
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 c0e885751..13455564f 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
@@ -1,5 +1,5 @@
-
+此软件可以运行 Nintendo Switch 游戏,但不包含任何游戏和密钥文件。<br /><br />在开始前,请找到放置于设备存储中的 prod.keys ]]> 文件。<br /><br />了解更多]]>正在进行模拟
@@ -17,7 +17,7 @@
使用下方的按钮来选择你的 <b>prod.keys</b> 文件。选择密钥文件游戏
- 使用下方的按钮选择你的 <b>游戏</b> 文件夹。
+ 使用下方的按钮选择你的<b>游戏</b>文件夹。完成你完成了全部设置。\n玩的开心!继续
@@ -25,6 +25,7 @@
上一步添加游戏选择你的游戏文件夹
+ 完成!游戏
@@ -38,6 +39,7 @@
如果未选择游戏文件夹,游戏将不会显示在游戏列表中。https://yuzu-emu.org/help/quickstart/#dumping-games搜索游戏
+ 搜索设置已选择游戏文件夹安装 prod.keys 文件需要密钥文件来解密游戏
@@ -61,12 +63,15 @@
选择的密钥文件无效密钥文件已成功安装读取加密密钥时出错
+ 请确保您的密钥文件扩展名为 .keys 并重试。
+ 请确保您的密钥文件扩展名为 .bin 并重试。无效的加密密钥https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys选择的密钥文件不正确或已损坏。请重新转储密钥文件。安装 GPU 驱动安装替代的驱动程序以获得更好的性能和精度高级选项
+ 高级选项: %1$s更改模拟器设置最近游玩最近添加
@@ -86,6 +91,33 @@
第一个子文件夹名称必须为当前游戏的 ID。导入导出
+ 安装固件
+ 固件文件必须为 zip 格式,启动某些游戏时必需
+ 正在安装固件
+ 固件已成功安装
+ 固件安装失败
+ 请确保固件 nca 文件位于 zip 压缩包的根目录,然后重试。
+ 分享调试日志
+ 分享 yuzu 日志文件以便调试
+ 未找到日志文件
+ 安装游戏附加内容
+ 安装游戏更新及 DLC
+ 安装中...
+ 向 NAND 安装文件时失败
+ 请确保附加内容的有效性,并且 prod.keys 密钥文件已安装。
+ 为避免产生冲突,此功能不能用于安装游戏本体。
+ 只有 NSP 或 XCI 格式的附加内容可以安装。请确保您的游戏附加内容是有效的。
+ %1$d 安装出错
+ 游戏附加内容已成功安装
+ %1$d 安装成功
+ %1$d 覆盖安装成功
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ 不支持自定义驱动
+ 此设备不支持自定义驱动。\n请之后再访问此项,查看是否已为此设备添加支持。
+ 管理 yuzu 数据
+ 导入/导出固件、密钥、用户数据及其他。
+ 分享存档文件
+ 导出存档文件失败Gaia 不真实
@@ -94,14 +126,25 @@
贡献者使用来自 yuzu 团队的 \u2764 制作https://github.com/yuzu-emu/yuzu/graphs/contributors
+ Android 版 yuzu 离不开这些项目的支持构建版本
+ 用户数据
+ 导入/导出应用程序所有数据。\n\n导入用户数据时,将删除当前所有的用户数据!
+ 正在导出用户数据...
+ 正在导入用户数据...
+ 导入用户数据
+ 无效的 yuzu 备份
+ 导出用户数据成功
+ 导入用户数据成功
+ 已取消导出数据
+ 请确保用户数据文件夹位于 zip 压缩包的根目录,并在 config/config.ini 路径中包含配置文件,然后重试。https://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu抢先体验
- 取得抢先体验
+ 获取抢先体验!https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea最新的功能、抢先更新、以及更多抢先体验的权益
@@ -109,33 +152,34 @@
抢先更新无需手动安装优先支持
- 帮助保留游戏
+ 帮助保留游玩历史我们真诚的感激您对此感兴趣吗?
- 启用运行速度限制
- 启用后,模拟速度将限制在正常运行速度的指定百分比。
+ 运行速度限制
+ 将运行速度限制为正常速度的指定百分比。限制速度百分比
- 指定限制模拟速度的百分比。预设为 100%,此时模拟速度将被限制为标准速度。更高或更低的值将增加或降低速度限制上限。
+ 指定限制运行速度的百分比。100% 为正常速度。更高或更低的值将增加或降低速度限制上限。CPU 精度
+ %1$s%2$s主机模式
- 以主机模式进行模拟,牺牲性能并提高画面分辨率。
+ 提高分辨率,但降低性能。禁用此项时使用掌机模式,降低分辨率并提高性能。模拟区域模拟语言选择日期选择时间
- 启用自定义系统时钟
- 此选项允许您设置与目前系统时间相独立的自定义系统时钟
- 设置自定义系统时钟
+ 自定义系统时间
+ 此选项允许您设置与目前系统时间相独立的自定义系统时钟。
+ 设置自定义系统时间
- API精度等级
- 分辨率
+ 分辨率 (掌机模式/主机模式)垂直同步模式
+ 屏幕方向屏幕纵横比窗口滤镜抗锯齿方式
@@ -143,12 +187,23 @@
强制 GPU 以最大时钟运行 (仍被温控限制)。使用异步着色器异步编译着色器,减少卡顿,但可能引入故障。
- 启用图形调试
- 启用时,图形 API 将进入较慢的调试模式。
- 使用磁盘着色器缓存
- 将生成的着色器缓存于磁盘中并进行读取以减少卡顿。
+ 启用反应性刷新
+ 牺牲性能,提高某些游戏的渲染精度。
+ 磁盘着色器缓存
+ 将生成的着色器缓存于磁盘中并进行读取,以减少卡顿。
+
+
+ CPU
+ CPU 调试
+ 将 CPU 设置为较慢的调试模式。
+ GPU
+ API
+ 图形调试
+ 将图形 API 设置为较慢的调试模式。
+ Fastmem
+ 输出引擎音量指定输出的音量。
@@ -157,7 +212,9 @@
已保存设置已保存 %1$s 的设置保存 %1$s.ini 时出错: %2$s
+ 未生效菜单加载中…
+ 正在关闭…您要将此设定重设为默认值吗?恢复默认重置所有设置项?
@@ -165,6 +222,14 @@
重设设置项关闭了解更多
+ 自动
+ 提交
+ 无
+ 导入
+ 导出
+ 导出失败
+ 导入失败
+ 取消中选择 GPU 驱动程序
@@ -172,6 +237,7 @@
安装系统默认使用默认 GPU 驱动程序
+ 选择的驱动程序无效,将使用系统默认的驱动程序!系统 GPU 驱动程序正在安装驱动程序…
@@ -182,10 +248,11 @@
图形声音主题和色彩
+ 调试您的 ROM 已加密
- 游戏卡带或已安装的游戏。]]>
+ 游戏卡带或已安装的游戏。]]>prod.keys 文件已安装,使得游戏可以被解密。]]>初始化视频核心时发生错误这通常由不兼容的 GPU 驱动程序造成,安装自定义 GPU 驱动程序可能解决此问题。
@@ -226,6 +293,9 @@
致命错误发生致命错误,请查阅日志获取详细信息。\n继续模拟可能会造成崩溃和错误。关闭此项会显著降低模拟性能!建议您将此项保持为启用状态。
+ 设备 RAM: %1$s\n推荐 RAM: %2$s
+ %1$s%2$s
+ 当前没有可启动的游戏!日本
@@ -236,7 +306,14 @@
韩国中国台湾
-
+
+ Byte
+ KB
+ MB
+ GB
+ TB
+ PB
+ EBVulkan
@@ -274,6 +351,11 @@
快速近似抗锯齿子像素形态学抗锯齿
+
+ 横向大屏
+ 纵向屏幕
+ 自动
+
默认 (16:9)强制 4:3
@@ -303,13 +385,27 @@
Material You
- 主题模式
+ 更改主题模式跟随系统浅色深色
+
+ cubeb
+
使用黑色背景使用深色主题时,套用黑色背景。
-
+
+ 画中画
+ 模拟器位于后台时最小化窗口
+ 暂停
+ 开始
+ 静音
+ 取消静音
+
+
+ 许可证
+ 来自 AMD 的高品质画质升级
+
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 4a21bf893..b8f468c68 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
@@ -1,5 +1,5 @@
-
+此軟體可以執行 Nintendo Switch 主機遊戲,但不包含任何遊戲和金鑰。<br /><br />在您開始前,請找到放置於您的裝置儲存空間的 prod.keys ]]> 檔案。<br /><br />深入瞭解]]>模擬進行中
@@ -25,6 +25,7 @@
上一步新增遊戲選取您的遊戲資料夾
+ 完成!遊戲
@@ -33,11 +34,12 @@
找不到檔案,或者尚未選取遊戲目錄。搜尋並篩選遊戲選取遊戲資料夾
- 一律允許 yuzu 填入遊戲清單
+ 允許 yuzu 填入遊戲清單跳過選取遊戲資料夾?如果資料夾未選取,遊戲將不會顯示在遊戲清單。https://yuzu-emu.org/help/quickstart/#dumping-games搜尋遊戲
+ 搜索设置遊戲目錄已選取安裝 prod.keys需要解密零售遊戲
@@ -60,13 +62,16 @@
需要在遊戲中使用 Amiibo無效的金鑰檔案已選取金鑰已成功安裝
- 讀取加密金鑰時出現錯誤
+ 讀取加密金鑰時發生錯誤
+ 驗證您的金鑰檔案是否具有 .keys 副檔名並再試一次。
+ 驗證您的金鑰檔案是否具有 .bin 副檔名並再試一次。無效的加密金鑰https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys選取的檔案不正確或已損毀,請重新傾印您的金鑰。安裝 GPU 驅動程式安裝替代驅動程式以取得潛在的更佳效能或準確度進階設定
+ 高级选项: %1$s進行模擬器設定最近遊玩最近新增
@@ -86,6 +91,33 @@
首個子資料夾名稱必須為遊戲標題 ID。匯入匯出
+ 安裝韌體
+ 韌體必須為 ZIP 封存檔,將會用於部分遊戲的啟動
+ 正在安裝韌體
+ 韌體已成功安裝
+ 韌體安裝失敗
+ 请确保固件 nca 文件位于 zip 压缩包的根目录,然后重试。
+ 分享偵錯記錄
+ 分享 yuzu 的記錄檔以便對相關問題進行偵錯
+ 找不到記錄檔
+ 安裝遊戲內容
+ 安裝遊戲更新或 DLC
+ 安装中...
+ 向 NAND 安装文件时失败
+ 请确保附加内容的有效性,并且 prod.keys 密钥文件已安装。
+ 为避免产生冲突,此功能不能用于安装游戏本体。
+ 只有 NSP 或 XCI 格式的附加内容可以安装。请确保您的游戏附加内容是有效的。
+ %1$d 安装出错
+ 游戏附加内容已成功安装
+ %1$d 安装成功
+ %1$d 覆盖安装成功
+ https://yuzu-emu.org/help/quickstart/#dumping-installed-updates
+ 不支持自定义驱动
+ 此设备不支持自定义驱动。\n请之后再访问此项,查看是否已为此设备添加支持。
+ 管理 yuzu 数据
+ 导入/导出固件、密钥、用户数据及其他。
+ 分享存档文件
+ 导出存档文件失败Gaia 不真實
@@ -94,7 +126,18 @@
參與者使用來自 yuzu 團隊的 \u2764 製作https://github.com/yuzu-emu/yuzu/graphs/contributors
+ 這些專案使 yuzu Android 版成為可能組建
+ 用户数据
+ 导入/导出应用程序所有数据。\n\n导入用户数据时,将删除当前所有的用户数据!
+ 正在导出用户数据...
+ 正在导入用户数据...
+ 导入用户数据
+ 无效的 yuzu 备份
+ 导出用户数据成功
+ 导入用户数据成功
+ 已取消导出数据
+ 请确保用户数据文件夹位于 zip 压缩包的根目录,并在 config/config.ini 路径中包含配置文件,然后重试。https://discord.gg/u77vRWYhttps://yuzu-emu.org/https://github.com/yuzu-emu
@@ -114,28 +157,29 @@
您仍感興趣嗎?
- 啟用限制速度
- 若啟用,模擬速度將會限制在標準速度的指定百分比。
+ 限制速度
+ 將模擬速度限制在標準速度的指定百分比。限制速度百分比
- 指定限制模擬速度的百分比。預設為 100%,模擬速度將被限制為標準速度。更高或更低的值將會增加或減少速度限制。
+ 指定限制模擬速度的百分比。100% 為標準速度,更高或更低的值將會增加或減少速度限制。CPU 準確度
+ %1$s%2$s底座模式
- 以底座模式模擬,以犧牲效能的代價提高解析度。
+ 提高解析度,降低效能。停用後將會使用手提模式,會降低解析度並提高效能。模擬區域模擬語言選取 RTC 日期選取 RTC 時間
- 啟用自訂 RTC
- 此設定允許您設定與您的目前系統時間相互獨立的自訂即時時鐘
+ 自訂 RTC
+ 允許您設定與您的目前系統時間相互獨立的自訂即時時鐘。設定自訂 RTC
- API準確度層級
- 解析度
+ 解析度 (手提/底座)VSync 模式
+ 屏幕方向長寬比視窗適應過濾器消除鋸齒方法
@@ -143,12 +187,23 @@
強制 GPU 以最大可能時脈執行 (熱溫限制仍被套用)。使用非同步著色器非同步編譯著色器,將會減少間斷,但可能會引入故障。
- 啟用圖形偵錯
- 核取時,圖形 API 將會進入慢速偵錯模式。
- 使用磁碟著色器快取
+ 使用重新啟用排清
+ 犧牲效能,以改善部分遊戲的轉譯準確度。
+ 磁碟著色器快取透過將產生的著色器儲存並載入至磁碟,減少中斷。
+
+ CPU
+ CPU 调试
+ 将 CPU 设置为较慢的调试模式。
+ GPU
+ API
+ 圖形偵錯
+ 將圖形 API 設為慢速偵錯模式。
+ Fastmem
+
+ 输出引擎音量指定音訊輸出音量。
@@ -157,7 +212,9 @@
已儲存設定已儲存 %1$s 設定儲存 %1$s 時發生錯誤 ini: %2$s
+ 未生效菜单正在載入…
+ 正在关闭…要將此設定重設回預設值嗎?重設為預設值重設所有設定?
@@ -165,6 +222,14 @@
設定已重設關閉深入瞭解
+ 自動
+ 提交
+ 無
+ 匯入
+ 匯出
+ 导出失败
+ 导入失败
+ 取消中選取 GPU 驅動程式
@@ -172,6 +237,7 @@
安裝預設使用預設 GPU 驅動程式
+ 選取的驅動程式無效,將使用系統預設驅動程式!系統 GPU 驅動程式正在安裝驅動程式…
@@ -182,10 +248,11 @@
圖形音訊主題和色彩
+ 偵錯您的 ROM 已加密
- 遊戲卡匣或安裝標題。]]>
+ 游戏卡带或已安装的游戏。]]>prod.keys 檔案已安裝,讓遊戲可以解密。]]>初始化視訊核心時發生錯誤這經常由不相容的 GPU 驅動程式造成,安裝自訂 GPU 驅動程式可能會解決此問題。
@@ -219,13 +286,16 @@
中止繼續
- 找不到系統檔案
+ 找不到系統封存%s 遺失,請傾印您的系統封存。\n繼續模擬可能會造成當機和錯誤。系統封存儲存/載入發生錯誤嚴重錯誤發生嚴重錯誤,檢查記錄以取得詳細資訊。\n繼續模擬可能會造成當機和錯誤。關閉此設定會顯著降低模擬效能!如需最佳體驗,建議您將此設定保持為啟用狀態。
+ 设备 RAM: %1$s\n推荐 RAM: %2$s
+ %1$s%2$s
+ 当前没有可启动的游戏!日本
@@ -236,7 +306,14 @@
南韓台灣
-
+
+ Byte
+ KB
+ MB
+ 英國
+ TB
+ PB
+ EBVulkan
@@ -274,14 +351,20 @@
FXAASMAA
+
+ 横向大屏
+ 纵向屏幕
+ 自動
+
預設 (16:9)強制 4:3強制 21:9強制 16:10
- 延伸視窗
+ 延展視窗
+ 高精度低精度不合理 (慢)
@@ -307,8 +390,22 @@
淺色深色
+
+ cubeb
+
- 使用黑色背景
+ 黑色背景使用深色主題時,套用黑色背景。
-
+
+ 画中画
+ 模拟器位于后台时最小化窗口
+ 暂停
+ 开始
+ 靜音
+ 取消靜音
+
+
+ 授權
+ 來自 AMD 的升級圖像品質
+
--
cgit v1.2.3
From 97b4ca1d01fef5fb350125d103e6aff89cd92108 Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Tue, 31 Oct 2023 20:29:16 -0400
Subject: android: Auto-generate locale config
---
src/android/app/build.gradle.kts | 4 ++++
src/android/app/src/main/AndroidManifest.xml | 1 -
src/android/app/src/main/res/resources.properties | 1 +
src/android/app/src/main/res/xml/locales_config.xml | 17 -----------------
4 files changed, 5 insertions(+), 18 deletions(-)
create mode 100644 src/android/app/src/main/res/resources.properties
delete mode 100644 src/android/app/src/main/res/xml/locales_config.xml
(limited to 'src/android/app')
diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts
index ac43d84b7..021b070e0 100644
--- a/src/android/app/build.gradle.kts
+++ b/src/android/app/build.gradle.kts
@@ -47,6 +47,10 @@ android {
jniLibs.useLegacyPackaging = true
}
+ androidResources {
+ generateLocaleConfig = true
+ }
+
defaultConfig {
// TODO If this is ever modified, change application_id in strings.xml
applicationId = "org.yuzu.yuzu_emu"
diff --git a/src/android/app/src/main/AndroidManifest.xml b/src/android/app/src/main/AndroidManifest.xml
index a67351727..f10131b24 100644
--- a/src/android/app/src/main/AndroidManifest.xml
+++ b/src/android/app/src/main/AndroidManifest.xml
@@ -26,7 +26,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
android:supportsRtl="true"
android:isGame="true"
android:appCategory="game"
- android:localeConfig="@xml/locales_config"
android:banner="@drawable/tv_banner"
android:fullBackupContent="@xml/data_extraction_rules"
android:dataExtractionRules="@xml/data_extraction_rules_api_31"
diff --git a/src/android/app/src/main/res/resources.properties b/src/android/app/src/main/res/resources.properties
new file mode 100644
index 000000000..467b3efec
--- /dev/null
+++ b/src/android/app/src/main/res/resources.properties
@@ -0,0 +1 @@
+unqualifiedResLocale=en-US
diff --git a/src/android/app/src/main/res/xml/locales_config.xml b/src/android/app/src/main/res/xml/locales_config.xml
deleted file mode 100644
index 51b88d9dc..000000000
--- a/src/android/app/src/main/res/xml/locales_config.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--
cgit v1.2.3
From 2b6edd3efd1c3a88ed47249b77e7b12951d8a13d Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Wed, 1 Nov 2023 00:17:38 -0400
Subject: android: Reorganize settings tab
---
.../yuzu_emu/fragments/HomeSettingsFragment.kt | 66 +++++++++++-----------
1 file changed, 33 insertions(+), 33 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
index 6e19fc6c0..ed2a5cb55 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
@@ -84,28 +84,6 @@ class HomeSettingsFragment : Fragment() {
}
)
)
- add(
- HomeSetting(
- R.string.open_user_folder,
- R.string.open_user_folder_description,
- R.drawable.ic_folder_open,
- { openFileManager() }
- )
- )
- add(
- HomeSetting(
- R.string.preferences_theme,
- R.string.theme_and_color_description,
- R.drawable.ic_palette,
- {
- val action = HomeNavigationDirections.actionGlobalSettingsActivity(
- null,
- Settings.MenuTag.SECTION_THEME
- )
- binding.root.findNavController().navigate(action)
- }
- )
- )
add(
HomeSetting(
R.string.gpu_driver_manager,
@@ -121,17 +99,6 @@ class HomeSettingsFragment : Fragment() {
driverViewModel.selectedDriverMetadata
)
)
- add(
- HomeSetting(
- R.string.manage_yuzu_data,
- R.string.manage_yuzu_data_description,
- R.drawable.ic_install,
- {
- binding.root.findNavController()
- .navigate(R.id.action_homeSettingsFragment_to_installableFragment)
- }
- )
- )
add(
HomeSetting(
R.string.applets,
@@ -146,6 +113,17 @@ class HomeSettingsFragment : Fragment() {
R.string.applets_error_description
)
)
+ add(
+ HomeSetting(
+ R.string.manage_yuzu_data,
+ R.string.manage_yuzu_data_description,
+ R.drawable.ic_install,
+ {
+ binding.root.findNavController()
+ .navigate(R.id.action_homeSettingsFragment_to_installableFragment)
+ }
+ )
+ )
add(
HomeSetting(
R.string.select_games_folder,
@@ -170,6 +148,28 @@ class HomeSettingsFragment : Fragment() {
{ shareLog() }
)
)
+ add(
+ HomeSetting(
+ R.string.open_user_folder,
+ R.string.open_user_folder_description,
+ R.drawable.ic_folder_open,
+ { openFileManager() }
+ )
+ )
+ add(
+ HomeSetting(
+ R.string.preferences_theme,
+ R.string.theme_and_color_description,
+ R.drawable.ic_palette,
+ {
+ val action = HomeNavigationDirections.actionGlobalSettingsActivity(
+ null,
+ Settings.MenuTag.SECTION_THEME
+ )
+ binding.root.findNavController().navigate(action)
+ }
+ )
+ )
add(
HomeSetting(
R.string.about,
--
cgit v1.2.3
From 5872c7d420064a2831520aa3b31a4070c7a17484 Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Wed, 1 Nov 2023 00:18:20 -0400
Subject: android: Adjust driver manager source string
---
src/android/app/src/main/res/values/strings.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index b92978140..c551a6106 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -72,7 +72,7 @@
Invalid encryption keyshttps://yuzu-emu.org/help/quickstart/#dumping-decryption-keysThe selected file is incorrect or corrupt. Please redump your keys.
- GPU Driver Manager
+ GPU driver managerInstall GPU driverInstall alternative drivers for potentially better performance or accuracyAdvanced settings
--
cgit v1.2.3
From 344162db75bffd0de9b43d18d2d789c1fd564e57 Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Wed, 1 Nov 2023 13:10:51 -0400
Subject: android: Default to player number 0 if we get an input from an
unrecognized controller
---
src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
index fc6a8b5cb..47bde5081 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
@@ -68,7 +68,7 @@ object InputHandler {
private fun getPlayerNumber(index: Int, deviceId: Int = -1): Int {
var deviceIndex = index
if (deviceId != -1) {
- deviceIndex = controllerIds[deviceId]!!
+ deviceIndex = controllerIds[deviceId] ?: 0
}
// TODO: Joycons are handled as different controllers. Find a way to merge them.
--
cgit v1.2.3
From 92418e909f7bb3d2c199b9392304f4bd1dea65bc Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Wed, 1 Nov 2023 00:45:13 -0400
Subject: android: Use yuzu logging system
Now anything that's logged in the frontend will be printed into the log file
---
.../main/java/org/yuzu/yuzu_emu/NativeLibrary.kt | 4 +--
.../src/main/java/org/yuzu/yuzu_emu/utils/Log.kt | 34 ++++------------------
src/android/app/src/main/jni/CMakeLists.txt | 1 +
src/android/app/src/main/jni/native_log.cpp | 31 ++++++++++++++++++++
4 files changed, 39 insertions(+), 31 deletions(-)
create mode 100644 src/android/app/src/main/jni/native_log.cpp
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
index 07f1b4842..ed8fe6c3f 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
@@ -462,12 +462,12 @@ object NativeLibrary {
}
fun setEmulationActivity(emulationActivity: EmulationActivity?) {
- Log.verbose("[NativeLibrary] Registering EmulationActivity.")
+ Log.debug("[NativeLibrary] Registering EmulationActivity.")
sEmulationActivity = WeakReference(emulationActivity)
}
fun clearEmulationActivity() {
- Log.verbose("[NativeLibrary] Unregistering EmulationActivity.")
+ Log.debug("[NativeLibrary] Unregistering EmulationActivity.")
sEmulationActivity.clear()
}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
index a193e82a4..1d3c7dce3 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
@@ -3,38 +3,14 @@
package org.yuzu.yuzu_emu.utils
-import android.util.Log
-import org.yuzu.yuzu_emu.BuildConfig
-
-/**
- * Contains methods that call through to [android.util.Log], but
- * with the same TAG automatically provided. Also no-ops VERBOSE and DEBUG log
- * levels in release builds.
- */
object Log {
- private const val TAG = "Yuzu Frontend"
-
- fun verbose(message: String) {
- if (BuildConfig.DEBUG) {
- Log.v(TAG, message)
- }
- }
+ external fun debug(message: String)
- fun debug(message: String) {
- if (BuildConfig.DEBUG) {
- Log.d(TAG, message)
- }
- }
+ external fun warning(message: String)
- fun info(message: String) {
- Log.i(TAG, message)
- }
+ external fun info(message: String)
- fun warning(message: String) {
- Log.w(TAG, message)
- }
+ external fun error(message: String)
- fun error(message: String) {
- Log.e(TAG, message)
- }
+ external fun critical(message: String)
}
diff --git a/src/android/app/src/main/jni/CMakeLists.txt b/src/android/app/src/main/jni/CMakeLists.txt
index 1c36661f5..88a570f68 100644
--- a/src/android/app/src/main/jni/CMakeLists.txt
+++ b/src/android/app/src/main/jni/CMakeLists.txt
@@ -18,6 +18,7 @@ add_library(yuzu-android SHARED
native_config.cpp
uisettings.cpp
game_metadata.cpp
+ native_log.cpp
)
set_property(TARGET yuzu-android PROPERTY IMPORTED_LOCATION ${FFmpeg_LIBRARY_DIR})
diff --git a/src/android/app/src/main/jni/native_log.cpp b/src/android/app/src/main/jni/native_log.cpp
new file mode 100644
index 000000000..33d691dc8
--- /dev/null
+++ b/src/android/app/src/main/jni/native_log.cpp
@@ -0,0 +1,31 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include
+#include
+
+#include "android_common/android_common.h"
+
+extern "C" {
+
+void Java_org_yuzu_yuzu_1emu_utils_Log_debug(JNIEnv* env, jobject obj, jstring jmessage) {
+ LOG_DEBUG(Frontend, "{}", GetJString(env, jmessage));
+}
+
+void Java_org_yuzu_yuzu_1emu_utils_Log_warning(JNIEnv* env, jobject obj, jstring jmessage) {
+ LOG_WARNING(Frontend, "{}", GetJString(env, jmessage));
+}
+
+void Java_org_yuzu_yuzu_1emu_utils_Log_info(JNIEnv* env, jobject obj, jstring jmessage) {
+ LOG_INFO(Frontend, "{}", GetJString(env, jmessage));
+}
+
+void Java_org_yuzu_yuzu_1emu_utils_Log_error(JNIEnv* env, jobject obj, jstring jmessage) {
+ LOG_ERROR(Frontend, "{}", GetJString(env, jmessage));
+}
+
+void Java_org_yuzu_yuzu_1emu_utils_Log_critical(JNIEnv* env, jobject obj, jstring jmessage) {
+ LOG_CRITICAL(Frontend, "{}", GetJString(env, jmessage));
+}
+
+} // extern "C"
--
cgit v1.2.3
From 398e8814288cbf71e2620ff22648d3002f7908b6 Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Wed, 1 Nov 2023 01:26:10 -0400
Subject: android: Adjust log lifecycle
Now logging will start when the frontend starts like qt does. This also adjusts the share log button to follow where we share the current log if we just returned from a game or return the old log if we haven't started a game yet.
---
.../yuzu/yuzu_emu/activities/EmulationActivity.kt | 2 ++
.../yuzu_emu/fragments/HomeSettingsFragment.kt | 26 +++++++++++++++++-----
.../src/main/java/org/yuzu/yuzu_emu/utils/Log.kt | 3 +++
src/android/app/src/main/jni/native.cpp | 9 ++++----
4 files changed, 30 insertions(+), 10 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
index f37875ffe..da98d4ef5 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
@@ -47,6 +47,7 @@ import org.yuzu.yuzu_emu.model.EmulationViewModel
import org.yuzu.yuzu_emu.model.Game
import org.yuzu.yuzu_emu.utils.ForegroundService
import org.yuzu.yuzu_emu.utils.InputHandler
+import org.yuzu.yuzu_emu.utils.Log
import org.yuzu.yuzu_emu.utils.MemoryUtil
import org.yuzu.yuzu_emu.utils.NfcReader
import org.yuzu.yuzu_emu.utils.ThemeHelper
@@ -80,6 +81,7 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
}
override fun onCreate(savedInstanceState: Bundle?) {
+ Log.gameLaunched = true
ThemeHelper.setTheme(this)
super.onCreate(savedInstanceState)
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
index 6e19fc6c0..8ed4b482e 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
@@ -42,6 +42,7 @@ import org.yuzu.yuzu_emu.model.HomeViewModel
import org.yuzu.yuzu_emu.ui.main.MainActivity
import org.yuzu.yuzu_emu.utils.FileUtil
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
+import org.yuzu.yuzu_emu.utils.Log
class HomeSettingsFragment : Fragment() {
private var _binding: FragmentHomeSettingsBinding? = null
@@ -312,19 +313,32 @@ class HomeSettingsFragment : Fragment() {
}
}
+ // Share the current log if we just returned from a game but share the old log
+ // if we just started the app and the old log exists.
private fun shareLog() {
- val file = DocumentFile.fromSingleUri(
+ val currentLog = DocumentFile.fromSingleUri(
mainActivity,
DocumentsContract.buildDocumentUri(
DocumentProvider.AUTHORITY,
"${DocumentProvider.ROOT_ID}/log/yuzu_log.txt"
)
)!!
- if (file.exists()) {
- val intent = Intent(Intent.ACTION_SEND)
- .setDataAndType(file.uri, FileUtil.TEXT_PLAIN)
- .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
- .putExtra(Intent.EXTRA_STREAM, file.uri)
+ val oldLog = DocumentFile.fromSingleUri(
+ mainActivity,
+ DocumentsContract.buildDocumentUri(
+ DocumentProvider.AUTHORITY,
+ "${DocumentProvider.ROOT_ID}/log/yuzu_log.txt.old.txt"
+ )
+ )!!
+
+ val intent = Intent(Intent.ACTION_SEND)
+ .setDataAndType(currentLog.uri, FileUtil.TEXT_PLAIN)
+ .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
+ if (!Log.gameLaunched && oldLog.exists()) {
+ intent.putExtra(Intent.EXTRA_STREAM, oldLog.uri)
+ startActivity(Intent.createChooser(intent, getText(R.string.share_log)))
+ } else if (currentLog.exists()) {
+ intent.putExtra(Intent.EXTRA_STREAM, currentLog.uri)
startActivity(Intent.createChooser(intent, getText(R.string.share_log)))
} else {
Toast.makeText(
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
index 1d3c7dce3..fb682c344 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
@@ -4,6 +4,9 @@
package org.yuzu.yuzu_emu.utils
object Log {
+ // Tracks whether we should share the old log or the current log
+ var gameLaunched = false
+
external fun debug(message: String)
external fun warning(message: String)
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp
index 0e458df38..294e41045 100644
--- a/src/android/app/src/main/jni/native.cpp
+++ b/src/android/app/src/main/jni/native.cpp
@@ -248,6 +248,11 @@ void EmulationSession::ConfigureFilesystemProvider(const std::string& filepath)
}
void EmulationSession::InitializeSystem() {
+ // Initialize logging system
+ Common::Log::Initialize();
+ Common::Log::SetColorConsoleBackendEnabled(true);
+ Common::Log::Start();
+
// Initialize filesystem.
m_system.SetFilesystem(m_vfs);
m_system.GetUserChannel().clear();
@@ -462,10 +467,6 @@ void EmulationSession::OnEmulationStopped(Core::SystemResultStatus result) {
}
static Core::SystemResultStatus RunEmulation(const std::string& filepath) {
- Common::Log::Initialize();
- Common::Log::SetColorConsoleBackendEnabled(true);
- Common::Log::Start();
-
MicroProfileOnThreadCreate("EmuThread");
SCOPE_EXIT({ MicroProfileShutdown(); });
--
cgit v1.2.3
From b3a1f793c3792dce9fb38c764d0ee9ee38d66783 Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Fri, 3 Nov 2023 13:31:06 -0400
Subject: android: Update surface parameters on emulation start
This adds a quick update that notifies the render surface if there was a change between surface creation and emulation starting.
---
.../main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt | 9 +++++++++
1 file changed, 9 insertions(+)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
index 07bd78bf7..c456c0592 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
@@ -312,6 +312,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
ViewUtils.showView(binding.surfaceInputOverlay)
ViewUtils.hideView(binding.loadingIndicator)
+ emulationState.updateSurface()
+
// Setup overlay
updateShowFpsOverlay()
}
@@ -804,6 +806,13 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
}
}
+ @Synchronized
+ fun updateSurface() {
+ if (surface != null) {
+ NativeLibrary.surfaceChanged(surface)
+ }
+ }
+
@Synchronized
fun clearSurface() {
if (surface == null) {
--
cgit v1.2.3
From 9bb8ac7cb6ac87fe5c0b82cd563ba62483761b4e Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Fri, 3 Nov 2023 15:51:17 -0400
Subject: android: Fix fetching system memory size from MemoryUtil
We weren't rounding up the value at a unit before (GB, MB, etc) we were rounding up the total bytes and that would do nothing. This fixes that, and the check for total system memory during first emulation start where we tried to check the required system memory against 1 gigabyte.
---
.../yuzu/yuzu_emu/activities/EmulationActivity.kt | 2 +-
.../java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt | 34 ++++++++++------------
2 files changed, 17 insertions(+), 19 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
index da98d4ef5..054e4b755 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
@@ -107,7 +107,7 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
val preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
if (!preferences.getBoolean(Settings.PREF_MEMORY_WARNING_SHOWN, false)) {
- if (MemoryUtil.isLessThan(MemoryUtil.REQUIRED_MEMORY, MemoryUtil.Gb)) {
+ if (MemoryUtil.isLessThan(MemoryUtil.REQUIRED_MEMORY, MemoryUtil.totalMemory)) {
Toast.makeText(
this,
getString(
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt
index aa4a5539a..9076a86c4 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt
@@ -27,7 +27,7 @@ object MemoryUtil {
const val Pb = Tb * 1024
const val Eb = Pb * 1024
- private fun bytesToSizeUnit(size: Float): String =
+ private fun bytesToSizeUnit(size: Float, roundUp: Boolean = false): String =
when {
size < Kb -> {
context.getString(
@@ -39,63 +39,59 @@ object MemoryUtil {
size < Mb -> {
context.getString(
R.string.memory_formatted,
- (size / Kb).hundredths,
+ if (roundUp) ceil(size / Kb) else (size / Kb).hundredths,
context.getString(R.string.memory_kilobyte)
)
}
size < Gb -> {
context.getString(
R.string.memory_formatted,
- (size / Mb).hundredths,
+ if (roundUp) ceil(size / Mb) else (size / Mb).hundredths,
context.getString(R.string.memory_megabyte)
)
}
size < Tb -> {
context.getString(
R.string.memory_formatted,
- (size / Gb).hundredths,
+ if (roundUp) ceil(size / Gb) else (size / Gb).hundredths,
context.getString(R.string.memory_gigabyte)
)
}
size < Pb -> {
context.getString(
R.string.memory_formatted,
- (size / Tb).hundredths,
+ if (roundUp) ceil(size / Tb) else (size / Tb).hundredths,
context.getString(R.string.memory_terabyte)
)
}
size < Eb -> {
context.getString(
R.string.memory_formatted,
- (size / Pb).hundredths,
+ if (roundUp) ceil(size / Pb) else (size / Pb).hundredths,
context.getString(R.string.memory_petabyte)
)
}
else -> {
context.getString(
R.string.memory_formatted,
- (size / Eb).hundredths,
+ if (roundUp) ceil(size / Eb) else (size / Eb).hundredths,
context.getString(R.string.memory_exabyte)
)
}
}
- // Devices are unlikely to have 0.5GB increments of memory so we'll just round up to account for
- // the potential error created by memInfo.totalMem
- private val totalMemory: Float
+ val totalMemory: Float
get() {
val memInfo = ActivityManager.MemoryInfo()
with(context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager) {
getMemoryInfo(memInfo)
}
- return ceil(
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
- memInfo.advertisedMem.toFloat()
- } else {
- memInfo.totalMem.toFloat()
- }
- )
+ return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+ memInfo.advertisedMem.toFloat()
+ } else {
+ memInfo.totalMem.toFloat()
+ }
}
fun isLessThan(minimum: Int, size: Float): Boolean =
@@ -109,5 +105,7 @@ object MemoryUtil {
else -> totalMemory < Kb && totalMemory < minimum
}
- fun getDeviceRAM(): String = bytesToSizeUnit(totalMemory)
+ // Devices are unlikely to have 0.5GB increments of memory so we'll just round up to account for
+ // the potential error created by memInfo.totalMem
+ fun getDeviceRAM(): String = bytesToSizeUnit(totalMemory, true)
}
--
cgit v1.2.3
From 0a83047368b2e0e72535c0239db806d6c229d7e9 Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Fri, 3 Nov 2023 15:52:01 -0400
Subject: android: Log more system information during startup
Logs device manufacturer/model, SoC manufacturer/model where available, and the total system memory
---
.../app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt | 2 ++
src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt | 12 ++++++++++++
2 files changed, 14 insertions(+)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt
index 8c053670c..d114bd53d 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt
@@ -11,6 +11,7 @@ import java.io.File
import org.yuzu.yuzu_emu.utils.DirectoryInitialization
import org.yuzu.yuzu_emu.utils.DocumentsTree
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
+import org.yuzu.yuzu_emu.utils.Log
fun Context.getPublicFilesDir(): File = getExternalFilesDir(null) ?: filesDir
@@ -49,6 +50,7 @@ class YuzuApplication : Application() {
DirectoryInitialization.start()
GpuDriverHelper.initializeDriverParameters()
NativeLibrary.logDeviceInfo()
+ Log.logDeviceInfo()
createNotificationChannels()
}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
index fb682c344..aebe84b0f 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
@@ -3,6 +3,8 @@
package org.yuzu.yuzu_emu.utils
+import android.os.Build
+
object Log {
// Tracks whether we should share the old log or the current log
var gameLaunched = false
@@ -16,4 +18,14 @@ object Log {
external fun error(message: String)
external fun critical(message: String)
+
+ fun logDeviceInfo() {
+ info("Device Manufacturer - ${Build.MANUFACTURER}")
+ info("Device Model - ${Build.MODEL}")
+ if (Build.VERSION.SDK_INT > Build.VERSION_CODES.R) {
+ info("SoC Manufacturer - ${Build.SOC_MANUFACTURER}")
+ info("SoC Model - ${Build.SOC_MODEL}")
+ }
+ info("Total System Memory - ${MemoryUtil.getDeviceRAM()}")
+ }
}
--
cgit v1.2.3
From 036d2686af47c9c52e121c96266cfa47fb865742 Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Fri, 3 Nov 2023 22:49:31 -0400
Subject: android: Don't reload log/system after loading firmware/backup
---
.../main/java/org/yuzu/yuzu_emu/NativeLibrary.kt | 2 +-
.../java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt | 4 ++--
.../yuzu/yuzu_emu/utils/DirectoryInitialization.kt | 2 +-
src/android/app/src/main/jni/native.cpp | 21 +++++++++++++--------
src/android/app/src/main/jni/native.h | 2 +-
5 files changed, 18 insertions(+), 13 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
index ed8fe6c3f..9ebd6c732 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
@@ -252,7 +252,7 @@ object NativeLibrary {
external fun reloadKeys(): Boolean
- external fun initializeSystem()
+ external fun initializeSystem(reload: Boolean)
external fun defaultCPUCore(): Int
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
index ba1177426..211b7cf69 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
@@ -403,7 +403,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
} else {
firmwarePath.deleteRecursively()
cacheFirmwareDir.copyRecursively(firmwarePath, true)
- NativeLibrary.initializeSystem()
+ NativeLibrary.initializeSystem(true)
getString(R.string.save_file_imported_success)
}
} catch (e: Exception) {
@@ -649,7 +649,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
}
// Reinitialize relevant data
- NativeLibrary.initializeSystem()
+ NativeLibrary.initializeSystem(true)
gamesViewModel.reloadGames(false)
return@newInstance getString(R.string.user_data_import_success)
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
index 79a07f7ef..5e9a1176a 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
@@ -15,7 +15,7 @@ object DirectoryInitialization {
fun start() {
if (!areDirectoriesReady) {
initializeInternalStorage()
- NativeLibrary.initializeSystem()
+ NativeLibrary.initializeSystem(false)
areDirectoriesReady = true
}
}
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp
index 294e41045..46438906e 100644
--- a/src/android/app/src/main/jni/native.cpp
+++ b/src/android/app/src/main/jni/native.cpp
@@ -247,11 +247,13 @@ void EmulationSession::ConfigureFilesystemProvider(const std::string& filepath)
}
}
-void EmulationSession::InitializeSystem() {
- // Initialize logging system
- Common::Log::Initialize();
- Common::Log::SetColorConsoleBackendEnabled(true);
- Common::Log::Start();
+void EmulationSession::InitializeSystem(bool reload) {
+ if (!reload) {
+ // Initialize logging system
+ Common::Log::Initialize();
+ Common::Log::SetColorConsoleBackendEnabled(true);
+ Common::Log::Start();
+ }
// Initialize filesystem.
m_system.SetFilesystem(m_vfs);
@@ -667,12 +669,15 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchReleased(JNIEnv* env, jclass c
}
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeSystem(JNIEnv* env, jclass clazz) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeSystem(JNIEnv* env, jclass clazz,
+ jboolean reload) {
// Create the default config.ini.
Config{};
// Initialize the emulated system.
- EmulationSession::GetInstance().System().Initialize();
- EmulationSession::GetInstance().InitializeSystem();
+ if (!reload) {
+ EmulationSession::GetInstance().System().Initialize();
+ }
+ EmulationSession::GetInstance().InitializeSystem(reload);
}
jint Java_org_yuzu_yuzu_1emu_NativeLibrary_defaultCPUCore(JNIEnv* env, jclass clazz) {
diff --git a/src/android/app/src/main/jni/native.h b/src/android/app/src/main/jni/native.h
index 0aa2b085b..3b9596459 100644
--- a/src/android/app/src/main/jni/native.h
+++ b/src/android/app/src/main/jni/native.h
@@ -43,7 +43,7 @@ public:
const Core::PerfStatsResults& PerfStats() const;
void ConfigureFilesystemProvider(const std::string& filepath);
- void InitializeSystem();
+ void InitializeSystem(bool reload);
Core::SystemResultStatus InitializeEmulation(const std::string& filepath);
bool IsHandheldOnly();
--
cgit v1.2.3
From 9543adf072a7d116e49b2d54359cd7e5b374e594 Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Fri, 3 Nov 2023 23:57:57 -0400
Subject: android: Always update FPS counter
---
.../main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt | 6 +++---
src/android/app/src/main/jni/native.cpp | 9 ++-------
src/android/app/src/main/jni/native.h | 3 +--
3 files changed, 6 insertions(+), 12 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
index c456c0592..77f2cdf65 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
@@ -414,12 +414,12 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
val FRAMETIME = 2
val SPEED = 3
perfStatsUpdater = {
- if (emulationViewModel.emulationStarted.value == true) {
+ if (emulationViewModel.emulationStarted.value) {
val perfStats = NativeLibrary.getPerfStats()
- if (perfStats[FPS] > 0 && _binding != null) {
+ if (_binding != null) {
binding.showFpsText.text = String.format("FPS: %.1f", perfStats[FPS])
}
- perfStatsUpdateHandler.postDelayed(perfStatsUpdater!!, 100)
+ perfStatsUpdateHandler.postDelayed(perfStatsUpdater!!, 800)
}
}
perfStatsUpdateHandler.post(perfStatsUpdater!!)
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp
index 294e41045..2b1c6374d 100644
--- a/src/android/app/src/main/jni/native.cpp
+++ b/src/android/app/src/main/jni/native.cpp
@@ -199,8 +199,8 @@ bool EmulationSession::IsPaused() const {
return m_is_running && m_is_paused;
}
-const Core::PerfStatsResults& EmulationSession::PerfStats() const {
- std::scoped_lock m_perf_stats_lock(m_perf_stats_mutex);
+const Core::PerfStatsResults& EmulationSession::PerfStats() {
+ m_perf_stats = m_system.GetAndResetPerfStats();
return m_perf_stats;
}
@@ -381,11 +381,6 @@ void EmulationSession::RunEmulation() {
break;
}
}
- {
- // Refresh performance stats.
- std::scoped_lock m_perf_stats_lock(m_perf_stats_mutex);
- m_perf_stats = m_system.GetAndResetPerfStats();
- }
}
}
diff --git a/src/android/app/src/main/jni/native.h b/src/android/app/src/main/jni/native.h
index 0aa2b085b..9f915b160 100644
--- a/src/android/app/src/main/jni/native.h
+++ b/src/android/app/src/main/jni/native.h
@@ -41,7 +41,7 @@ public:
void RunEmulation();
void ShutdownEmulation();
- const Core::PerfStatsResults& PerfStats() const;
+ const Core::PerfStatsResults& PerfStats();
void ConfigureFilesystemProvider(const std::string& filepath);
void InitializeSystem();
Core::SystemResultStatus InitializeEmulation(const std::string& filepath);
@@ -80,6 +80,5 @@ private:
// Synchronization
std::condition_variable_any m_cv;
- mutable std::mutex m_perf_stats_mutex;
mutable std::mutex m_mutex;
};
--
cgit v1.2.3
From 50c604f37fc34ca6aaa874f1d51c9bcdec90f570 Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Sat, 4 Nov 2023 00:11:05 -0400
Subject: android: Color the FPS counter white
---
.../app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt | 2 --
1 file changed, 2 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
index 77f2cdf65..3781d1d35 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
@@ -10,7 +10,6 @@ import android.content.DialogInterface
import android.content.SharedPreferences
import android.content.pm.ActivityInfo
import android.content.res.Configuration
-import android.graphics.Color
import android.net.Uri
import android.os.Bundle
import android.os.Handler
@@ -155,7 +154,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
}
binding.surfaceEmulation.holder.addCallback(this)
- binding.showFpsText.setTextColor(Color.YELLOW)
binding.doneControlConfig.setOnClickListener { stopConfiguringControls() }
binding.drawerLayout.addDrawerListener(object : DrawerListener {
--
cgit v1.2.3
From 5191465b0aa7b0cf1edde2c29f0c42a96a09a2ae Mon Sep 17 00:00:00 2001
From: Charles Lombardo
Date: Sun, 5 Nov 2023 18:28:50 -0500
Subject: android: Simplify FPS counter padding
---
.../yuzu/yuzu_emu/fragments/EmulationFragment.kt | 21 ---------------------
.../app/src/main/res/layout/fragment_emulation.xml | 8 +++++---
2 files changed, 5 insertions(+), 24 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
index 3781d1d35..c32fa0d7e 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
@@ -462,7 +462,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
if (it.orientation == FoldingFeature.Orientation.HORIZONTAL) {
// Restrict emulation and overlays to the top of the screen
binding.emulationContainer.layoutParams.height = it.bounds.top
- binding.overlayContainer.layoutParams.height = it.bounds.top
// Restrict input and menu drawer to the bottom of the screen
binding.inputContainer.layoutParams.height = it.bounds.bottom
binding.inGameMenu.layoutParams.height = it.bounds.bottom
@@ -476,7 +475,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
if (!isFolding) {
binding.emulationContainer.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
binding.inputContainer.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
- binding.overlayContainer.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
binding.inGameMenu.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
isInFoldableLayout = false
updateOrientation()
@@ -484,7 +482,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
}
binding.emulationContainer.requestLayout()
binding.inputContainer.requestLayout()
- binding.overlayContainer.requestLayout()
binding.inGameMenu.requestLayout()
}
@@ -710,24 +707,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
}
v.setPadding(left, cutInsets.top, right, 0)
-
- // Ensure FPS text doesn't get cut off by rounded display corners
- val sidePadding = resources.getDimensionPixelSize(R.dimen.spacing_xtralarge)
- if (cutInsets.left == 0) {
- binding.showFpsText.setPadding(
- sidePadding,
- cutInsets.top,
- cutInsets.right,
- cutInsets.bottom
- )
- } else {
- binding.showFpsText.setPadding(
- cutInsets.left,
- cutInsets.top,
- cutInsets.right,
- cutInsets.bottom
- )
- }
windowInsets
}
}
diff --git a/src/android/app/src/main/res/layout/fragment_emulation.xml b/src/android/app/src/main/res/layout/fragment_emulation.xml
index 750ce094a..cd6360b45 100644
--- a/src/android/app/src/main/res/layout/fragment_emulation.xml
+++ b/src/android/app/src/main/res/layout/fragment_emulation.xml
@@ -134,16 +134,18 @@
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
-
--
cgit v1.2.3
From 09f993899e174d1f3c4577ab713eb8119741093e Mon Sep 17 00:00:00 2001
From: t895
Date: Thu, 9 Nov 2023 22:27:40 -0500
Subject: android: Hide loading animation on first frame
---
src/android/app/src/main/jni/emu_window/emu_window.cpp | 8 ++++++++
src/android/app/src/main/jni/emu_window/emu_window.h | 4 +++-
src/android/app/src/main/jni/native.cpp | 2 --
src/android/app/src/main/jni/native.h | 3 ++-
4 files changed, 13 insertions(+), 4 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/jni/emu_window/emu_window.cpp b/src/android/app/src/main/jni/emu_window/emu_window.cpp
index a7e414b81..c4f631924 100644
--- a/src/android/app/src/main/jni/emu_window/emu_window.cpp
+++ b/src/android/app/src/main/jni/emu_window/emu_window.cpp
@@ -9,6 +9,7 @@
#include "input_common/drivers/virtual_gamepad.h"
#include "input_common/main.h"
#include "jni/emu_window/emu_window.h"
+#include "jni/native.h"
void EmuWindow_Android::OnSurfaceChanged(ANativeWindow* surface) {
m_window_width = ANativeWindow_getWidth(surface);
@@ -57,6 +58,13 @@ void EmuWindow_Android::OnRemoveNfcTag() {
m_input_subsystem->GetVirtualAmiibo()->CloseAmiibo();
}
+void EmuWindow_Android::OnFrameDisplayed() {
+ if (!m_first_frame) {
+ EmulationSession::GetInstance().OnEmulationStarted();
+ m_first_frame = true;
+ }
+}
+
EmuWindow_Android::EmuWindow_Android(InputCommon::InputSubsystem* input_subsystem,
ANativeWindow* surface,
std::shared_ptr driver_library)
diff --git a/src/android/app/src/main/jni/emu_window/emu_window.h b/src/android/app/src/main/jni/emu_window/emu_window.h
index b38087f73..a34a0e479 100644
--- a/src/android/app/src/main/jni/emu_window/emu_window.h
+++ b/src/android/app/src/main/jni/emu_window/emu_window.h
@@ -45,7 +45,7 @@ public:
float gyro_z, float accel_x, float accel_y, float accel_z);
void OnReadNfcTag(std::span data);
void OnRemoveNfcTag();
- void OnFrameDisplayed() override {}
+ void OnFrameDisplayed() override;
std::unique_ptr CreateSharedContext() const override {
return {std::make_unique(m_driver_library)};
@@ -61,4 +61,6 @@ private:
float m_window_height{};
std::shared_ptr m_driver_library;
+
+ bool m_first_frame = false;
};
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp
index 1484cc224..64663b084 100644
--- a/src/android/app/src/main/jni/native.cpp
+++ b/src/android/app/src/main/jni/native.cpp
@@ -372,8 +372,6 @@ void EmulationSession::RunEmulation() {
m_system.InitializeDebugger();
}
- OnEmulationStarted();
-
while (true) {
{
[[maybe_unused]] std::unique_lock lock(m_mutex);
diff --git a/src/android/app/src/main/jni/native.h b/src/android/app/src/main/jni/native.h
index 6b02c44b5..78ef96802 100644
--- a/src/android/app/src/main/jni/native.h
+++ b/src/android/app/src/main/jni/native.h
@@ -52,9 +52,10 @@ public:
void OnGamepadDisconnectEvent([[maybe_unused]] int index);
SoftwareKeyboard::AndroidKeyboard* SoftwareKeyboard();
+ static void OnEmulationStarted();
+
private:
static void LoadDiskCacheProgress(VideoCore::LoadCallbackStage stage, int progress, int max);
- static void OnEmulationStarted();
static void OnEmulationStopped(Core::SystemResultStatus result);
private:
--
cgit v1.2.3
From c600bc86526bae9fe621cd3d8ab1a36d0fc7a931 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 13:54:31 -0500
Subject: android: Fix top app bar tint being cut off in the about fragment
Adjust margin on the toolbar, not the app bar
---
.../src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt
index 2ff827c6b..a1620fbb7 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt
@@ -114,10 +114,10 @@ class AboutFragment : Fragment() {
val leftInsets = barInsets.left + cutoutInsets.left
val rightInsets = barInsets.right + cutoutInsets.right
- val mlpAppBar = binding.appbarAbout.layoutParams as MarginLayoutParams
- mlpAppBar.leftMargin = leftInsets
- mlpAppBar.rightMargin = rightInsets
- binding.appbarAbout.layoutParams = mlpAppBar
+ val mlpToolbar = binding.toolbarAbout.layoutParams as MarginLayoutParams
+ mlpToolbar.leftMargin = leftInsets
+ mlpToolbar.rightMargin = rightInsets
+ binding.toolbarAbout.layoutParams = mlpToolbar
val mlpScrollAbout = binding.scrollAbout.layoutParams as MarginLayoutParams
mlpScrollAbout.leftMargin = leftInsets
--
cgit v1.2.3
From 4efb9763d90f02e4f966034db90b51fca366c441 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 13:55:20 -0500
Subject: android: Shrink logo in settings tab
Adjusts padding between the cards and logo to fit appropriately
---
src/android/app/src/main/res/layout/card_home_option.xml | 4 ++--
src/android/app/src/main/res/layout/fragment_home_settings.xml | 9 +++++----
2 files changed, 7 insertions(+), 6 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/res/layout/card_home_option.xml b/src/android/app/src/main/res/layout/card_home_option.xml
index 6e8a232f9..cb667c928 100644
--- a/src/android/app/src/main/res/layout/card_home_option.xml
+++ b/src/android/app/src/main/res/layout/card_home_option.xml
@@ -6,8 +6,8 @@
android:id="@+id/option_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginVertical="12dp"
- android:layout_marginHorizontal="16dp"
+ android:layout_marginBottom="24dp"
+ android:layout_marginHorizontal="12dp"
android:background="?attr/selectableItemBackground"
android:backgroundTint="?attr/colorSurfaceVariant"
android:clickable="true"
diff --git a/src/android/app/src/main/res/layout/fragment_home_settings.xml b/src/android/app/src/main/res/layout/fragment_home_settings.xml
index 1cb421dcb..d84093ba3 100644
--- a/src/android/app/src/main/res/layout/fragment_home_settings.xml
+++ b/src/android/app/src/main/res/layout/fragment_home_settings.xml
@@ -14,13 +14,14 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:background="?attr/colorSurface">
+ android:background="?attr/colorSurface"
+ android:paddingHorizontal="8dp">
--
cgit v1.2.3
From ff72bf2cb2cdc652e77fc71b3dc39188db9fa4c4 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 13:56:13 -0500
Subject: android: Shrink logo in about page
---
src/android/app/src/main/res/layout/fragment_about.xml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/res/layout/fragment_about.xml b/src/android/app/src/main/res/layout/fragment_about.xml
index 3e1d98451..a24f5230e 100644
--- a/src/android/app/src/main/res/layout/fragment_about.xml
+++ b/src/android/app/src/main/res/layout/fragment_about.xml
@@ -38,17 +38,17 @@
+ android:layout_marginHorizontal="20dp" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--
cgit v1.2.3
From 55412962c0cf2da12539aed747d3002214833d78 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 15:45:42 -0500
Subject: android: Remove "auto" region option
This doesn't exist and if you clicked it, your region would be set to Taiwan.
---
src/android/app/src/main/res/values/arrays.xml | 2 --
1 file changed, 2 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml
index dc10159c9..51bcc49a3 100644
--- a/src/android/app/src/main/res/values/arrays.xml
+++ b/src/android/app/src/main/res/values/arrays.xml
@@ -2,7 +2,6 @@
- @string/auto@string/region_australia@string/region_china@string/region_europe
@@ -13,7 +12,6 @@
- -1342
--
cgit v1.2.3
From 1a1393dad77c9ac7947c755904a826c49f46f739 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 19:08:57 -0500
Subject: android: Remove general section from settings
Limit speed options were moved to system, cpu accuracy was moved to debug, and PiP was moved to graphics.
---
.../org/yuzu/yuzu_emu/features/settings/model/Settings.kt | 1 -
.../features/settings/ui/SettingsFragmentPresenter.kt | 13 +++----------
2 files changed, 3 insertions(+), 11 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt
index 08e2a973d..2bf0e1b0d 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt
@@ -82,7 +82,6 @@ object Settings {
enum class MenuTag(val titleId: Int) {
SECTION_ROOT(R.string.advanced_settings),
- SECTION_GENERAL(R.string.preferences_general),
SECTION_SYSTEM(R.string.preferences_system),
SECTION_RENDERER(R.string.preferences_graphics),
SECTION_AUDIO(R.string.preferences_audio),
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
index 766414a6c..4b8adc7a3 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
@@ -53,7 +53,6 @@ class SettingsFragmentPresenter(
val sl = ArrayList()
when (menuTag) {
Settings.MenuTag.SECTION_ROOT -> addConfigSettings(sl)
- Settings.MenuTag.SECTION_GENERAL -> addGeneralSettings(sl)
Settings.MenuTag.SECTION_SYSTEM -> addSystemSettings(sl)
Settings.MenuTag.SECTION_RENDERER -> addGraphicsSettings(sl)
Settings.MenuTag.SECTION_AUDIO -> addAudioSettings(sl)
@@ -75,7 +74,6 @@ class SettingsFragmentPresenter(
private fun addConfigSettings(sl: ArrayList) {
sl.apply {
- add(SubmenuSetting(R.string.preferences_general, 0, Settings.MenuTag.SECTION_GENERAL))
add(SubmenuSetting(R.string.preferences_system, 0, Settings.MenuTag.SECTION_SYSTEM))
add(SubmenuSetting(R.string.preferences_graphics, 0, Settings.MenuTag.SECTION_RENDERER))
add(SubmenuSetting(R.string.preferences_audio, 0, Settings.MenuTag.SECTION_AUDIO))
@@ -88,17 +86,10 @@ class SettingsFragmentPresenter(
}
}
- private fun addGeneralSettings(sl: ArrayList) {
+ private fun addSystemSettings(sl: ArrayList) {
sl.apply {
add(BooleanSetting.RENDERER_USE_SPEED_LIMIT.key)
add(ShortSetting.RENDERER_SPEED_LIMIT.key)
- add(IntSetting.CPU_ACCURACY.key)
- add(BooleanSetting.PICTURE_IN_PICTURE.key)
- }
- }
-
- private fun addSystemSettings(sl: ArrayList) {
- sl.apply {
add(BooleanSetting.USE_DOCKED_MODE.key)
add(IntSetting.REGION_INDEX.key)
add(IntSetting.LANGUAGE_INDEX.key)
@@ -116,6 +107,7 @@ class SettingsFragmentPresenter(
add(IntSetting.RENDERER_ANTI_ALIASING.key)
add(IntSetting.RENDERER_SCREEN_LAYOUT.key)
add(IntSetting.RENDERER_ASPECT_RATIO.key)
+ add(BooleanSetting.PICTURE_IN_PICTURE.key)
add(BooleanSetting.RENDERER_USE_DISK_SHADER_CACHE.key)
add(BooleanSetting.RENDERER_FORCE_MAX_CLOCK.key)
add(BooleanSetting.RENDERER_ASYNCHRONOUS_SHADERS.key)
@@ -249,6 +241,7 @@ class SettingsFragmentPresenter(
add(BooleanSetting.RENDERER_DEBUG.key)
add(HeaderSetting(R.string.cpu))
+ add(IntSetting.CPU_ACCURACY.key)
add(BooleanSetting.CPU_DEBUG_MODE.key)
add(SettingsItem.FASTMEM_COMBINED)
}
--
cgit v1.2.3
From 6b888b0fa8aa3e06514a5c97c9651505ae038939 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 19:11:33 -0500
Subject: android: Add icons and descriptions to the first-level advanced
settings page
Additionally adjusts padding to place the icons in-line with the back button in the top app bar and makes the text for normal settings appear in-line with the expanded top app bar title.
---
.../settings/model/view/RunnableSetting.kt | 3 +
.../features/settings/model/view/SubmenuSetting.kt | 7 ++-
.../features/settings/ui/SettingsFragment.kt | 5 +-
.../settings/ui/SettingsFragmentPresenter.kt | 48 ++++++++++++---
.../settings/ui/viewholder/RunnableViewHolder.kt | 14 +++++
.../settings/ui/viewholder/SubmenuViewHolder.kt | 14 +++++
src/android/app/src/main/res/drawable/ic_audio.xml | 9 +++
src/android/app/src/main/res/drawable/ic_code.xml | 9 +++
.../app/src/main/res/drawable/ic_graphics.xml | 9 +++
.../src/main/res/drawable/ic_system_settings.xml | 9 +++
.../app/src/main/res/layout/list_item_setting.xml | 72 ++++++++++++++--------
.../main/res/layout/list_item_setting_switch.xml | 8 +--
src/android/app/src/main/res/values/strings.xml | 5 ++
13 files changed, 165 insertions(+), 47 deletions(-)
create mode 100644 src/android/app/src/main/res/drawable/ic_audio.xml
create mode 100644 src/android/app/src/main/res/drawable/ic_code.xml
create mode 100644 src/android/app/src/main/res/drawable/ic_graphics.xml
create mode 100644 src/android/app/src/main/res/drawable/ic_system_settings.xml
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/RunnableSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/RunnableSetting.kt
index 522cc49df..425160024 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/RunnableSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/RunnableSetting.kt
@@ -3,10 +3,13 @@
package org.yuzu.yuzu_emu.features.settings.model.view
+import androidx.annotation.DrawableRes
+
class RunnableSetting(
titleId: Int,
descriptionId: Int,
val isRuntimeRunnable: Boolean,
+ @DrawableRes val iconId: Int = 0,
val runnable: () -> Unit
) : SettingsItem(emptySetting, titleId, descriptionId) {
override val type = TYPE_RUNNABLE
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SubmenuSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SubmenuSetting.kt
index b343e527e..94953b18a 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SubmenuSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SubmenuSetting.kt
@@ -3,11 +3,14 @@
package org.yuzu.yuzu_emu.features.settings.model.view
+import androidx.annotation.DrawableRes
+import androidx.annotation.StringRes
import org.yuzu.yuzu_emu.features.settings.model.Settings
class SubmenuSetting(
- titleId: Int,
- descriptionId: Int,
+ @StringRes titleId: Int,
+ @StringRes descriptionId: Int,
+ @DrawableRes val iconId: Int,
val menuKey: Settings.MenuTag
) : SettingsItem(emptySetting, titleId, descriptionId) {
override val type = TYPE_SUBMENU
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
index 70d8ec14b..2b85167a8 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
@@ -144,10 +144,9 @@ class SettingsFragment : Fragment() {
val leftInsets = barInsets.left + cutoutInsets.left
val rightInsets = barInsets.right + cutoutInsets.right
- val sideMargin = resources.getDimensionPixelSize(R.dimen.spacing_medlarge)
val mlpSettingsList = binding.listSettings.layoutParams as MarginLayoutParams
- mlpSettingsList.leftMargin = sideMargin + leftInsets
- mlpSettingsList.rightMargin = sideMargin + rightInsets
+ mlpSettingsList.leftMargin = leftInsets
+ mlpSettingsList.rightMargin = rightInsets
binding.listSettings.layoutParams = mlpSettingsList
binding.listSettings.updatePadding(
bottom = barInsets.bottom
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
index 4b8adc7a3..8b71e32f3 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
@@ -3,7 +3,6 @@
package org.yuzu.yuzu_emu.features.settings.ui
-import android.content.Context
import android.content.SharedPreferences
import android.os.Build
import android.widget.Toast
@@ -32,8 +31,6 @@ class SettingsFragmentPresenter(
private val preferences: SharedPreferences
get() = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
- private val context: Context get() = YuzuApplication.appContext
-
// Extension for populating settings list based on paired settings
fun ArrayList.add(key: String) {
val item = SettingsItem.settingsItems[key]!!
@@ -74,14 +71,45 @@ class SettingsFragmentPresenter(
private fun addConfigSettings(sl: ArrayList) {
sl.apply {
- add(SubmenuSetting(R.string.preferences_system, 0, Settings.MenuTag.SECTION_SYSTEM))
- add(SubmenuSetting(R.string.preferences_graphics, 0, Settings.MenuTag.SECTION_RENDERER))
- add(SubmenuSetting(R.string.preferences_audio, 0, Settings.MenuTag.SECTION_AUDIO))
- add(SubmenuSetting(R.string.preferences_debug, 0, Settings.MenuTag.SECTION_DEBUG))
add(
- RunnableSetting(R.string.reset_to_default, 0, false) {
- settingsViewModel.setShouldShowResetSettingsDialog(true)
- }
+ SubmenuSetting(
+ R.string.preferences_system,
+ R.string.preferences_system_description,
+ R.drawable.ic_system_settings,
+ Settings.MenuTag.SECTION_SYSTEM
+ )
+ )
+ add(
+ SubmenuSetting(
+ R.string.preferences_graphics,
+ R.string.preferences_graphics_description,
+ R.drawable.ic_graphics,
+ Settings.MenuTag.SECTION_RENDERER
+ )
+ )
+ add(
+ SubmenuSetting(
+ R.string.preferences_audio,
+ R.string.preferences_audio_description,
+ R.drawable.ic_audio,
+ Settings.MenuTag.SECTION_AUDIO
+ )
+ )
+ add(
+ SubmenuSetting(
+ R.string.preferences_debug,
+ R.string.preferences_debug_description,
+ R.drawable.ic_code,
+ Settings.MenuTag.SECTION_DEBUG
+ )
+ )
+ add(
+ RunnableSetting(
+ R.string.reset_to_default,
+ R.string.reset_to_default_description,
+ false,
+ R.drawable.ic_restore
+ ) { settingsViewModel.setShouldShowResetSettingsDialog(true) }
)
}
}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt
index 83a2e94f1..036195624 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt
@@ -4,6 +4,7 @@
package org.yuzu.yuzu_emu.features.settings.ui.viewholder
import android.view.View
+import androidx.core.content.res.ResourcesCompat
import org.yuzu.yuzu_emu.NativeLibrary
import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding
import org.yuzu.yuzu_emu.features.settings.model.view.RunnableSetting
@@ -16,6 +17,19 @@ class RunnableViewHolder(val binding: ListItemSettingBinding, adapter: SettingsA
override fun bind(item: SettingsItem) {
setting = item as RunnableSetting
+ if (item.iconId != 0) {
+ binding.icon.visibility = View.VISIBLE
+ binding.icon.setImageDrawable(
+ ResourcesCompat.getDrawable(
+ binding.icon.resources,
+ item.iconId,
+ binding.icon.context.theme
+ )
+ )
+ } else {
+ binding.icon.visibility = View.GONE
+ }
+
binding.textSettingName.setText(item.nameId)
if (item.descriptionId != 0) {
binding.textSettingDescription.setText(item.descriptionId)
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt
index 1cf581a9d..8100c65dd 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt
@@ -4,6 +4,7 @@
package org.yuzu.yuzu_emu.features.settings.ui.viewholder
import android.view.View
+import androidx.core.content.res.ResourcesCompat
import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding
import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem
import org.yuzu.yuzu_emu.features.settings.model.view.SubmenuSetting
@@ -15,6 +16,19 @@ class SubmenuViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAd
override fun bind(item: SettingsItem) {
this.item = item as SubmenuSetting
+ if (item.iconId != 0) {
+ binding.icon.visibility = View.VISIBLE
+ binding.icon.setImageDrawable(
+ ResourcesCompat.getDrawable(
+ binding.icon.resources,
+ item.iconId,
+ binding.icon.context.theme
+ )
+ )
+ } else {
+ binding.icon.visibility = View.GONE
+ }
+
binding.textSettingName.setText(item.nameId)
if (item.descriptionId != 0) {
binding.textSettingDescription.setText(item.descriptionId)
diff --git a/src/android/app/src/main/res/drawable/ic_audio.xml b/src/android/app/src/main/res/drawable/ic_audio.xml
new file mode 100644
index 000000000..e306c3b0c
--- /dev/null
+++ b/src/android/app/src/main/res/drawable/ic_audio.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/src/android/app/src/main/res/drawable/ic_code.xml b/src/android/app/src/main/res/drawable/ic_code.xml
new file mode 100644
index 000000000..26f83b39b
--- /dev/null
+++ b/src/android/app/src/main/res/drawable/ic_code.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/src/android/app/src/main/res/drawable/ic_graphics.xml b/src/android/app/src/main/res/drawable/ic_graphics.xml
new file mode 100644
index 000000000..2fdb5a4d6
--- /dev/null
+++ b/src/android/app/src/main/res/drawable/ic_graphics.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/src/android/app/src/main/res/drawable/ic_system_settings.xml b/src/android/app/src/main/res/drawable/ic_system_settings.xml
new file mode 100644
index 000000000..7701a2bab
--- /dev/null
+++ b/src/android/app/src/main/res/drawable/ic_system_settings.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/src/android/app/src/main/res/layout/list_item_setting.xml b/src/android/app/src/main/res/layout/list_item_setting.xml
index f1037a740..544280e75 100644
--- a/src/android/app/src/main/res/layout/list_item_setting.xml
+++ b/src/android/app/src/main/res/layout/list_item_setting.xml
@@ -10,41 +10,59 @@
android:focusable="true"
android:gravity="center_vertical"
android:minHeight="72dp"
- android:padding="@dimen/spacing_large">
+ android:padding="16dp">
+ android:orientation="horizontal">
-
-
-
+
-
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
diff --git a/src/android/app/src/main/res/layout/list_item_setting_switch.xml b/src/android/app/src/main/res/layout/list_item_setting_switch.xml
index a5767adee..a8f5aff78 100644
--- a/src/android/app/src/main/res/layout/list_item_setting_switch.xml
+++ b/src/android/app/src/main/res/layout/list_item_setting_switch.xml
@@ -8,9 +8,7 @@
android:clickable="true"
android:focusable="true"
android:minHeight="72dp"
- android:paddingVertical="@dimen/spacing_large"
- android:paddingStart="@dimen/spacing_large"
- android:paddingEnd="24dp">
+ android:padding="16dp">
@@ -35,7 +33,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
- android:textSize="16sp"
+ android:textSize="17sp"
app:lineHeight="28dp"
tools:text="@string/frame_limit_enable" />
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index c551a6106..98c3f20f8 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -240,6 +240,7 @@
Shutting down…Do you want to reset this setting back to its default value?Reset to default
+ Resets all advanced settingsReset all settings?All advanced settings will be reset to their default configuration. This can not be undone.Settings reset
@@ -271,10 +272,14 @@
SettingsGeneralSystem
+ Docked mode, region, languageGraphics
+ Accuracy level, resolution, shader cacheAudio
+ Output engine, volumeTheme and colorDebug
+ CPU/GPU debugging, graphics API, fastmemYour ROM is encrypted
--
cgit v1.2.3
From 470714e2d10f426d7d12b25cff5c2315d0fa10f5 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 19:12:49 -0500
Subject: android: Remove dividers between each setting
---
.../org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt | 7 -------
1 file changed, 7 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
index 2b85167a8..3c4aefbcb 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
@@ -20,7 +20,6 @@ import androidx.lifecycle.repeatOnLifecycle
import androidx.navigation.findNavController
import androidx.navigation.fragment.navArgs
import androidx.recyclerview.widget.LinearLayoutManager
-import com.google.android.material.divider.MaterialDividerItemDecoration
import com.google.android.material.transition.MaterialSharedAxis
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
@@ -68,15 +67,9 @@ class SettingsFragment : Fragment() {
)
binding.toolbarSettingsLayout.title = getString(args.menuTag.titleId)
- val dividerDecoration = MaterialDividerItemDecoration(
- requireContext(),
- LinearLayoutManager.VERTICAL
- )
- dividerDecoration.isLastItemDecorated = false
binding.listSettings.apply {
adapter = settingsAdapter
layoutManager = LinearLayoutManager(requireContext())
- addItemDecoration(dividerDecoration)
}
binding.toolbarSettings.setNavigationOnClickListener {
--
cgit v1.2.3
From 6c93cdffb18911d327092e0b6f8fe67d045102a2 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 19:14:13 -0500
Subject: android: Use more padding on top of each settings header
---
src/android/app/src/main/res/layout/list_item_settings_header.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/res/layout/list_item_settings_header.xml b/src/android/app/src/main/res/layout/list_item_settings_header.xml
index cf85bc0da..21276b19e 100644
--- a/src/android/app/src/main/res/layout/list_item_settings_header.xml
+++ b/src/android/app/src/main/res/layout/list_item_settings_header.xml
@@ -7,7 +7,8 @@
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:paddingHorizontal="@dimen/spacing_large"
- android:paddingVertical="16dp"
+ android:paddingTop="16dp"
+ android:paddingBottom="8dp"
android:textAlignment="viewStart"
android:textColor="?attr/colorPrimary"
android:textStyle="bold"
--
cgit v1.2.3
From 4aac9718646b0900fba4ca9b4ecede748a486bde Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 19:15:15 -0500
Subject: android: Use the same transition animation between every fragment in
settings
The animation that I used for entering search was prone to weird visual bugs and could appear visually jarring. This just makes things appear more consistent.
---
.../yuzu_emu/features/settings/ui/SettingsFragment.kt | 18 ------------------
.../yuzu/yuzu_emu/fragments/SettingsSearchFragment.kt | 7 ++++---
.../java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt | 7 -------
3 files changed, 4 insertions(+), 28 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
index 3c4aefbcb..769baf744 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt
@@ -87,17 +87,6 @@ class SettingsFragment : Fragment() {
}
}
}
- launch {
- settingsViewModel.isUsingSearch.collectLatest {
- if (it) {
- reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true)
- exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false)
- } else {
- reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, false)
- exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true)
- }
- }
- }
}
if (args.menuTag == Settings.MenuTag.SECTION_ROOT) {
@@ -105,8 +94,6 @@ class SettingsFragment : Fragment() {
binding.toolbarSettings.setOnMenuItemClickListener {
when (it.itemId) {
R.id.action_search -> {
- reenterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true)
- exitTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false)
view.findNavController()
.navigate(R.id.action_settingsFragment_to_settingsSearchFragment)
true
@@ -122,11 +109,6 @@ class SettingsFragment : Fragment() {
setInsets()
}
- override fun onResume() {
- super.onResume()
- settingsViewModel.setIsUsingSearch(false)
- }
-
private fun setInsets() {
ViewCompat.setOnApplyWindowInsetsListener(
binding.root
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SettingsSearchFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SettingsSearchFragment.kt
index 9d0594c6e..f95d545bf 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SettingsSearchFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SettingsSearchFragment.kt
@@ -40,8 +40,10 @@ class SettingsSearchFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- enterTransition = MaterialSharedAxis(MaterialSharedAxis.Z, false)
- returnTransition = MaterialSharedAxis(MaterialSharedAxis.Z, true)
+ enterTransition = MaterialSharedAxis(MaterialSharedAxis.X, true)
+ returnTransition = MaterialSharedAxis(MaterialSharedAxis.X, false)
+ reenterTransition = MaterialSharedAxis(MaterialSharedAxis.X, false)
+ exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true)
}
override fun onCreateView(
@@ -55,7 +57,6 @@ class SettingsSearchFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- settingsViewModel.setIsUsingSearch(true)
if (savedInstanceState != null) {
binding.searchText.setText(savedInstanceState.getString(SEARCH_TEXT))
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt
index 53fa7a8de..6f947674e 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt
@@ -29,9 +29,6 @@ class SettingsViewModel : ViewModel() {
val shouldReloadSettingsList: StateFlow get() = _shouldReloadSettingsList
private val _shouldReloadSettingsList = MutableStateFlow(false)
- val isUsingSearch: StateFlow get() = _isUsingSearch
- private val _isUsingSearch = MutableStateFlow(false)
-
val sliderProgress: StateFlow get() = _sliderProgress
private val _sliderProgress = MutableStateFlow(-1)
@@ -57,10 +54,6 @@ class SettingsViewModel : ViewModel() {
_shouldReloadSettingsList.value = value
}
- fun setIsUsingSearch(value: Boolean) {
- _isUsingSearch.value = value
- }
-
fun setSliderTextValue(value: Float, units: String) {
_sliderProgress.value = value.toInt()
_sliderTextValue.value = String.format(
--
cgit v1.2.3
From 4d0b7f84960172c6dfd4c2ea7503f4d442495698 Mon Sep 17 00:00:00 2001
From: t895
Date: Tue, 14 Nov 2023 10:57:00 -0500
Subject: android: Use suspend function for creating dynamic shortcuts
If the coil loader ever got stuck when creating a dynamic shortcut icon, the app would freeze. This would happen most notably when booting nca format games. This pushes that process to a separate coroutine that can be cancelled by the main activity's lifecycle.
---
.../java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt | 52 +++++++++++++---------
.../java/org/yuzu/yuzu_emu/utils/GameIconUtils.kt | 7 +--
2 files changed, 35 insertions(+), 24 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt
index 0c82cdba8..2ef638559 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt
@@ -22,12 +22,16 @@ import androidx.core.graphics.drawable.toBitmap
import androidx.core.graphics.drawable.toDrawable
import androidx.documentfile.provider.DocumentFile
import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
import androidx.navigation.findNavController
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.AsyncDifferConfig
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
import org.yuzu.yuzu_emu.HomeNavigationDirections
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.YuzuApplication
@@ -92,28 +96,34 @@ class GameAdapter(private val activity: AppCompatActivity) :
data = Uri.parse(holder.game.path)
}
- val layerDrawable = ResourcesCompat.getDrawable(
- YuzuApplication.appContext.resources,
- R.drawable.shortcut,
- null
- ) as LayerDrawable
- layerDrawable.setDrawableByLayerId(
- R.id.shortcut_foreground,
- GameIconUtils.getGameIcon(holder.game).toDrawable(YuzuApplication.appContext.resources)
- )
- val inset = YuzuApplication.appContext.resources
- .getDimensionPixelSize(R.dimen.icon_inset)
- layerDrawable.setLayerInset(1, inset, inset, inset, inset)
- val shortcut = ShortcutInfoCompat.Builder(YuzuApplication.appContext, holder.game.path)
- .setShortLabel(holder.game.title)
- .setIcon(
- IconCompat.createWithAdaptiveBitmap(
- layerDrawable.toBitmap(config = Bitmap.Config.ARGB_8888)
+ activity.lifecycleScope.launch {
+ withContext(Dispatchers.IO) {
+ val layerDrawable = ResourcesCompat.getDrawable(
+ YuzuApplication.appContext.resources,
+ R.drawable.shortcut,
+ null
+ ) as LayerDrawable
+ layerDrawable.setDrawableByLayerId(
+ R.id.shortcut_foreground,
+ GameIconUtils.getGameIcon(activity, holder.game)
+ .toDrawable(YuzuApplication.appContext.resources)
)
- )
- .setIntent(openIntent)
- .build()
- ShortcutManagerCompat.pushDynamicShortcut(YuzuApplication.appContext, shortcut)
+ val inset = YuzuApplication.appContext.resources
+ .getDimensionPixelSize(R.dimen.icon_inset)
+ layerDrawable.setLayerInset(1, inset, inset, inset, inset)
+ val shortcut =
+ ShortcutInfoCompat.Builder(YuzuApplication.appContext, holder.game.path)
+ .setShortLabel(holder.game.title)
+ .setIcon(
+ IconCompat.createWithAdaptiveBitmap(
+ layerDrawable.toBitmap(config = Bitmap.Config.ARGB_8888)
+ )
+ )
+ .setIntent(openIntent)
+ .build()
+ ShortcutManagerCompat.pushDynamicShortcut(YuzuApplication.appContext, shortcut)
+ }
+ }
val action = HomeNavigationDirections.actionGlobalEmulationActivity(holder.game)
view.findNavController().navigate(action)
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconUtils.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconUtils.kt
index 654d62f52..2e9b0beb8 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconUtils.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconUtils.kt
@@ -8,9 +8,9 @@ import android.graphics.BitmapFactory
import android.widget.ImageView
import androidx.core.graphics.drawable.toBitmap
import androidx.core.graphics.drawable.toDrawable
+import androidx.lifecycle.LifecycleOwner
import coil.ImageLoader
import coil.decode.DataSource
-import coil.executeBlocking
import coil.fetch.DrawableResult
import coil.fetch.FetchResult
import coil.fetch.Fetcher
@@ -76,12 +76,13 @@ object GameIconUtils {
imageLoader.enqueue(request)
}
- fun getGameIcon(game: Game): Bitmap {
+ suspend fun getGameIcon(lifecycleOwner: LifecycleOwner, game: Game): Bitmap {
val request = ImageRequest.Builder(YuzuApplication.appContext)
.data(game)
+ .lifecycle(lifecycleOwner)
.error(R.drawable.default_icon)
.build()
- return imageLoader.executeBlocking(request)
+ return imageLoader.execute(request)
.drawable!!.toBitmap(config = Bitmap.Config.ARGB_8888)
}
}
--
cgit v1.2.3
From 08296f151efacf6415e5aee7825b125df889b601 Mon Sep 17 00:00:00 2001
From: t895
Date: Tue, 14 Nov 2023 17:53:40 -0500
Subject: android: Add drop shadow to FPS counter
Also let the style control the text size
---
src/android/app/src/main/res/layout/fragment_emulation.xml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/res/layout/fragment_emulation.xml b/src/android/app/src/main/res/layout/fragment_emulation.xml
index cd6360b45..5252adf54 100644
--- a/src/android/app/src/main/res/layout/fragment_emulation.xml
+++ b/src/android/app/src/main/res/layout/fragment_emulation.xml
@@ -139,7 +139,7 @@
--
cgit v1.2.3
From fcd54c6479b15581ea01ba7d9dc4f25ac3265588 Mon Sep 17 00:00:00 2001
From: t895
Date: Tue, 14 Nov 2023 18:11:38 -0500
Subject: android: Don't enter PiP during startup or shutdown
---
.../src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
index 054e4b755..f41d7bdbf 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
@@ -373,8 +373,10 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
val pictureInPictureParamsBuilder = PictureInPictureParams.Builder()
.getPictureInPictureActionsBuilder().getPictureInPictureAspectBuilder()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+ val isEmulationActive = emulationViewModel.emulationStarted.value &&
+ !emulationViewModel.isEmulationStopping.value
pictureInPictureParamsBuilder.setAutoEnterEnabled(
- BooleanSetting.PICTURE_IN_PICTURE.boolean
+ BooleanSetting.PICTURE_IN_PICTURE.boolean && isEmulationActive
)
}
setPictureInPictureParams(pictureInPictureParamsBuilder.build())
--
cgit v1.2.3
From e2be1801368cdc474f97c9cdacd65942a5b85190 Mon Sep 17 00:00:00 2001
From: t895
Date: Wed, 15 Nov 2023 10:30:43 -0500
Subject: android: Disable PiP by default
---
src/android/app/src/main/jni/uisettings.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/jni/uisettings.h b/src/android/app/src/main/jni/uisettings.h
index 494654af7..37bc33918 100644
--- a/src/android/app/src/main/jni/uisettings.h
+++ b/src/android/app/src/main/jni/uisettings.h
@@ -13,7 +13,7 @@ struct Values {
Settings::Linkage linkage;
// Android
- Settings::Setting picture_in_picture{linkage, true, "picture_in_picture",
+ Settings::Setting picture_in_picture{linkage, false, "picture_in_picture",
Settings::Category::Android};
Settings::Setting screen_layout{linkage,
5,
--
cgit v1.2.3
From d3ed771f39a9e25283f3a23a996984901419428c Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 19 Nov 2023 15:36:25 -0500
Subject: android: Allow up to 400% for the limit speed percent setting
---
.../java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt
index b3b3fc209..6aba69dbe 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt
@@ -73,7 +73,7 @@ abstract class SettingsItem(
R.string.frame_limit_slider,
R.string.frame_limit_slider_description,
1,
- 200,
+ 400,
"%"
)
)
--
cgit v1.2.3
From 23c1f7c72f950c8b937576275b3aa10cb9a7e835 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 19 Nov 2023 15:57:05 -0500
Subject: android: Select recently played games by default in search tab
---
src/android/app/src/main/res/layout/fragment_search.xml | 1 +
1 file changed, 1 insertion(+)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/res/layout/fragment_search.xml b/src/android/app/src/main/res/layout/fragment_search.xml
index b8d54d947..efdfd7047 100644
--- a/src/android/app/src/main/res/layout/fragment_search.xml
+++ b/src/android/app/src/main/res/layout/fragment_search.xml
@@ -127,6 +127,7 @@
android:layout_height="wrap_content"
android:clipToPadding="false"
android:paddingVertical="4dp"
+ app:checkedChip="@id/chip_recently_played"
app:chipSpacingHorizontal="12dp"
app:singleLine="true"
app:singleSelection="true">
--
cgit v1.2.3
From 8e93a9a9ef2ffc6325060be5b5a977d7f93de531 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 19 Nov 2023 16:00:41 -0500
Subject: android: Use path instead of programId for recently added / played
key
---
src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt
index de84b2adb..2fa3ab31b 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt
@@ -18,8 +18,8 @@ class Game(
val version: String = "",
val isHomebrew: Boolean = false
) : Parcelable {
- val keyAddedToLibraryTime get() = "${programId}_AddedToLibraryTime"
- val keyLastPlayedTime get() = "${programId}_LastPlayed"
+ val keyAddedToLibraryTime get() = "${path}_AddedToLibraryTime"
+ val keyLastPlayedTime get() = "${path}_LastPlayed"
override fun equals(other: Any?): Boolean {
if (other !is Game) {
--
cgit v1.2.3
From 82a4a67f6bc65d1b3d85b4acdf0e059d095db6a5 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 19 Nov 2023 17:22:53 -0500
Subject: android: Use file picker intent for save exporter
---
.../yuzu/yuzu_emu/fragments/InstallableFragment.kt | 12 ++-
.../java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt | 91 +++++-----------------
src/android/app/src/main/res/values/strings.xml | 2 +
3 files changed, 33 insertions(+), 72 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt
index ec116ab62..6940fc757 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt
@@ -21,6 +21,8 @@ import org.yuzu.yuzu_emu.databinding.FragmentInstallablesBinding
import org.yuzu.yuzu_emu.model.HomeViewModel
import org.yuzu.yuzu_emu.model.Installable
import org.yuzu.yuzu_emu.ui.main.MainActivity
+import java.time.LocalDateTime
+import java.time.format.DateTimeFormatter
class InstallableFragment : Fragment() {
private var _binding: FragmentInstallablesBinding? = null
@@ -78,7 +80,15 @@ class InstallableFragment : Fragment() {
R.string.manage_save_data,
R.string.import_export_saves_description,
install = { mainActivity.importSaves.launch(arrayOf("application/zip")) },
- export = { mainActivity.exportSave() }
+ export = {
+ mainActivity.exportSaves.launch(
+ "yuzu saves - ${
+ LocalDateTime.now().format(
+ DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")
+ )
+ }.zip"
+ )
+ }
)
} else {
Installable(
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
index 211b7cf69..ace5dddea 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
@@ -6,7 +6,6 @@ package org.yuzu.yuzu_emu.ui.main
import android.content.Intent
import android.net.Uri
import android.os.Bundle
-import android.provider.DocumentsContract
import android.view.View
import android.view.ViewGroup.MarginLayoutParams
import android.view.WindowManager
@@ -20,7 +19,6 @@ import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
-import androidx.documentfile.provider.DocumentFile
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
@@ -41,7 +39,6 @@ import org.yuzu.yuzu_emu.NativeLibrary
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.activities.EmulationActivity
import org.yuzu.yuzu_emu.databinding.ActivityMainBinding
-import org.yuzu.yuzu_emu.features.DocumentProvider
import org.yuzu.yuzu_emu.features.settings.model.Settings
import org.yuzu.yuzu_emu.fragments.IndeterminateProgressDialogFragment
import org.yuzu.yuzu_emu.fragments.MessageDialogFragment
@@ -53,9 +50,6 @@ import org.yuzu.yuzu_emu.model.TaskViewModel
import org.yuzu.yuzu_emu.utils.*
import java.io.BufferedInputStream
import java.io.BufferedOutputStream
-import java.io.FileOutputStream
-import java.time.LocalDateTime
-import java.time.format.DateTimeFormatter
import java.util.zip.ZipEntry
import java.util.zip.ZipInputStream
@@ -73,7 +67,6 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
// Get first subfolder in saves folder (should be the user folder)
val savesFolderRoot get() = File(savesFolder).listFiles()?.firstOrNull()?.canonicalPath ?: ""
- private var lastZipCreated: File? = null
override fun onCreate(savedInstanceState: Bundle?) {
val splashScreen = installSplashScreen()
@@ -656,75 +649,31 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
}.show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)
}
- /**
- * Zips the save files located in the given folder path and creates a new zip file with the current date and time.
- * @return true if the zip file is successfully created, false otherwise.
- */
- private fun zipSave(): Boolean {
- try {
- val tempFolder = File(getPublicFilesDir().canonicalPath, "temp")
- tempFolder.mkdirs()
- val saveFolder = File(savesFolderRoot)
- val outputZipFile = File(
- tempFolder,
- "yuzu saves - ${
- LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))
- }.zip"
- )
- outputZipFile.createNewFile()
- val result = FileUtil.zipFromInternalStorage(
- saveFolder,
- savesFolderRoot,
- BufferedOutputStream(FileOutputStream(outputZipFile))
- )
- if (result == TaskState.Failed) {
- return false
- }
- lastZipCreated = outputZipFile
- } catch (e: Exception) {
- return false
- }
- return true
- }
-
/**
* Exports the save file located in the given folder path by creating a zip file and sharing it via intent.
*/
- fun exportSave() {
- CoroutineScope(Dispatchers.IO).launch {
- val wasZipCreated = zipSave()
- val lastZipFile = lastZipCreated
- if (!wasZipCreated || lastZipFile == null) {
- withContext(Dispatchers.Main) {
- Toast.makeText(
- this@MainActivity,
- getString(R.string.export_save_failed),
- Toast.LENGTH_LONG
- ).show()
- }
- return@launch
- }
+ val exportSaves = registerForActivityResult(
+ ActivityResultContracts.CreateDocument("application/zip")
+ ) { result ->
+ if (result == null) {
+ return@registerForActivityResult
+ }
- withContext(Dispatchers.Main) {
- val file = DocumentFile.fromSingleUri(
- this@MainActivity,
- DocumentsContract.buildDocumentUri(
- DocumentProvider.AUTHORITY,
- "${DocumentProvider.ROOT_ID}/temp/${lastZipFile.name}"
- )
- )!!
- val intent = Intent(Intent.ACTION_SEND)
- .setDataAndType(file.uri, "application/zip")
- .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
- .putExtra(Intent.EXTRA_STREAM, file.uri)
- startForResultExportSave.launch(
- Intent.createChooser(
- intent,
- getString(R.string.share_save_file)
- )
- )
+ IndeterminateProgressDialogFragment.newInstance(
+ this,
+ R.string.save_files_exporting,
+ false
+ ) {
+ val zipResult = FileUtil.zipFromInternalStorage(
+ File(savesFolderRoot),
+ savesFolderRoot,
+ BufferedOutputStream(contentResolver.openOutputStream(result))
+ )
+ return@newInstance when (zipResult) {
+ TaskState.Completed -> getString(R.string.export_success)
+ TaskState.Cancelled, TaskState.Failed -> getString(R.string.export_failed)
}
- }
+ }.show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)
}
private val startForResultExportSave =
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index 98c3f20f8..471af8795 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -91,6 +91,7 @@
Manage save dataSave data found. Please select an option below.Import or export save files
+ Exporting save files…Imported successfullyInvalid save directory structureThe first subfolder name must be the title ID of the game.
@@ -256,6 +257,7 @@
CancellingInstallDelete
+ Exported successfullySelect GPU driver
--
cgit v1.2.3
From da14c7b8e47fcd5456d88a033a1fb154a0dcfa39 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 02:03:01 -0500
Subject: config: Unify config handling under frontend_common
Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings.
As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable.
---
src/android/app/src/main/jni/CMakeLists.txt | 9 +-
src/android/app/src/main/jni/android_config.cpp | 70 +++
src/android/app/src/main/jni/android_config.h | 41 ++
src/android/app/src/main/jni/android_settings.cpp | 10 +
src/android/app/src/main/jni/android_settings.h | 29 ++
src/android/app/src/main/jni/config.cpp | 330 --------------
src/android/app/src/main/jni/config.h | 47 --
src/android/app/src/main/jni/default_ini.h | 511 ----------------------
src/android/app/src/main/jni/native.cpp | 15 +-
src/android/app/src/main/jni/native_config.cpp | 23 +-
src/android/app/src/main/jni/uisettings.cpp | 10 -
src/android/app/src/main/jni/uisettings.h | 29 --
12 files changed, 176 insertions(+), 948 deletions(-)
create mode 100644 src/android/app/src/main/jni/android_config.cpp
create mode 100644 src/android/app/src/main/jni/android_config.h
create mode 100644 src/android/app/src/main/jni/android_settings.cpp
create mode 100644 src/android/app/src/main/jni/android_settings.h
delete mode 100644 src/android/app/src/main/jni/config.cpp
delete mode 100644 src/android/app/src/main/jni/config.h
delete mode 100644 src/android/app/src/main/jni/default_ini.h
delete mode 100644 src/android/app/src/main/jni/uisettings.cpp
delete mode 100644 src/android/app/src/main/jni/uisettings.h
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/jni/CMakeLists.txt b/src/android/app/src/main/jni/CMakeLists.txt
index 88a570f68..49ad029aa 100644
--- a/src/android/app/src/main/jni/CMakeLists.txt
+++ b/src/android/app/src/main/jni/CMakeLists.txt
@@ -6,9 +6,6 @@ add_library(yuzu-android SHARED
android_common/android_common.h
applets/software_keyboard.cpp
applets/software_keyboard.h
- config.cpp
- config.h
- default_ini.h
emu_window/emu_window.cpp
emu_window/emu_window.h
id_cache.cpp
@@ -16,15 +13,17 @@ add_library(yuzu-android SHARED
native.cpp
native.h
native_config.cpp
- uisettings.cpp
+ android_settings.cpp
game_metadata.cpp
native_log.cpp
+ android_config.cpp
+ android_config.h
)
set_property(TARGET yuzu-android PROPERTY IMPORTED_LOCATION ${FFmpeg_LIBRARY_DIR})
-target_link_libraries(yuzu-android PRIVATE audio_core common core input_common)
target_link_libraries(yuzu-android PRIVATE android camera2ndk EGL glad inih jnigraphics log)
+target_link_libraries(yuzu-android PRIVATE audio_core common core input_common frontend_common)
if (ARCHITECTURE_arm64)
target_link_libraries(yuzu-android PRIVATE adrenotools)
endif()
diff --git a/src/android/app/src/main/jni/android_config.cpp b/src/android/app/src/main/jni/android_config.cpp
new file mode 100644
index 000000000..3041c25c9
--- /dev/null
+++ b/src/android/app/src/main/jni/android_config.cpp
@@ -0,0 +1,70 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "android_config.h"
+#include "android_settings.h"
+#include "common/settings_setting.h"
+
+AndroidConfig::AndroidConfig(const std::string& config_name, ConfigType config_type)
+ : Config(config_type) {
+ Initialize(config_name);
+ if (config_type != ConfigType::InputProfile) {
+ ReadAndroidValues();
+ SaveAndroidValues();
+ }
+}
+
+AndroidConfig::~AndroidConfig() {
+ if (global) {
+ AndroidConfig::SaveAllValues();
+ }
+}
+
+void AndroidConfig::ReloadAllValues() {
+ Reload();
+ ReadAndroidValues();
+ SaveAndroidValues();
+}
+
+void AndroidConfig::SaveAllValues() {
+ Save();
+ SaveAndroidValues();
+}
+
+void AndroidConfig::ReadAndroidValues() {
+ if (global) {
+ ReadAndroidUIValues();
+ }
+}
+
+void AndroidConfig::ReadAndroidUIValues() {
+ BeginGroup(Settings::TranslateCategory(Settings::Category::Android));
+
+ ReadCategory(Settings::Category::Android);
+
+ EndGroup();
+}
+
+void AndroidConfig::SaveAndroidValues() {
+ if (global) {
+ SaveAndroidUIValues();
+ }
+
+ WriteToIni();
+}
+
+void AndroidConfig::SaveAndroidUIValues() {
+ BeginGroup(Settings::TranslateCategory(Settings::Category::Android));
+
+ WriteCategory(Settings::Category::Android);
+
+ EndGroup();
+}
+
+std::vector& AndroidConfig::FindRelevantList(Settings::Category category) {
+ auto& map = Settings::values.linkage.by_category;
+ if (map.contains(category)) {
+ return Settings::values.linkage.by_category[category];
+ }
+ return AndroidSettings::values.linkage.by_category[category];
+}
diff --git a/src/android/app/src/main/jni/android_config.h b/src/android/app/src/main/jni/android_config.h
new file mode 100644
index 000000000..e679392fd
--- /dev/null
+++ b/src/android/app/src/main/jni/android_config.h
@@ -0,0 +1,41 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "frontend_common/config.h"
+
+class AndroidConfig final : public Config {
+public:
+ explicit AndroidConfig(const std::string& config_name = "config",
+ ConfigType config_type = ConfigType::GlobalConfig);
+ ~AndroidConfig() override;
+
+ void ReloadAllValues() override;
+ void SaveAllValues() override;
+
+protected:
+ void ReadAndroidValues();
+ void ReadAndroidUIValues();
+ void ReadHidbusValues() override {}
+ void ReadDebugControlValues() override {}
+ void ReadPathValues() override {}
+ void ReadShortcutValues() override {}
+ void ReadUIValues() override {}
+ void ReadUIGamelistValues() override {}
+ void ReadUILayoutValues() override {}
+ void ReadMultiplayerValues() override {}
+
+ void SaveAndroidValues();
+ void SaveAndroidUIValues();
+ void SaveHidbusValues() override {}
+ void SaveDebugControlValues() override {}
+ void SavePathValues() override {}
+ void SaveShortcutValues() override {}
+ void SaveUIValues() override {}
+ void SaveUIGamelistValues() override {}
+ void SaveUILayoutValues() override {}
+ void SaveMultiplayerValues() override {}
+
+ std::vector& FindRelevantList(Settings::Category category) override;
+};
diff --git a/src/android/app/src/main/jni/android_settings.cpp b/src/android/app/src/main/jni/android_settings.cpp
new file mode 100644
index 000000000..16023a6b0
--- /dev/null
+++ b/src/android/app/src/main/jni/android_settings.cpp
@@ -0,0 +1,10 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "android_settings.h"
+
+namespace AndroidSettings {
+
+Values values;
+
+} // namespace AndroidSettings
diff --git a/src/android/app/src/main/jni/android_settings.h b/src/android/app/src/main/jni/android_settings.h
new file mode 100644
index 000000000..37bc33918
--- /dev/null
+++ b/src/android/app/src/main/jni/android_settings.h
@@ -0,0 +1,29 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include
+#include "common/common_types.h"
+#include "common/settings_setting.h"
+
+namespace AndroidSettings {
+
+struct Values {
+ Settings::Linkage linkage;
+
+ // Android
+ Settings::Setting picture_in_picture{linkage, false, "picture_in_picture",
+ Settings::Category::Android};
+ Settings::Setting screen_layout{linkage,
+ 5,
+ "screen_layout",
+ Settings::Category::Android,
+ Settings::Specialization::Default,
+ true,
+ true};
+};
+
+extern Values values;
+
+} // namespace AndroidSettings
diff --git a/src/android/app/src/main/jni/config.cpp b/src/android/app/src/main/jni/config.cpp
deleted file mode 100644
index 81120ab0f..000000000
--- a/src/android/app/src/main/jni/config.cpp
+++ /dev/null
@@ -1,330 +0,0 @@
-// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include
-#include
-#include
-
-#include
-#include "common/fs/file.h"
-#include "common/fs/fs.h"
-#include "common/fs/path_util.h"
-#include "common/logging/log.h"
-#include "common/settings.h"
-#include "common/settings_enums.h"
-#include "core/hle/service/acc/profile_manager.h"
-#include "input_common/main.h"
-#include "jni/config.h"
-#include "jni/default_ini.h"
-#include "uisettings.h"
-
-namespace FS = Common::FS;
-
-Config::Config(const std::string& config_name, ConfigType config_type)
- : type(config_type), global{config_type == ConfigType::GlobalConfig} {
- Initialize(config_name);
-}
-
-Config::~Config() = default;
-
-bool Config::LoadINI(const std::string& default_contents, bool retry) {
- void(FS::CreateParentDir(config_loc));
- config = std::make_unique(FS::PathToUTF8String(config_loc));
- const auto config_loc_str = FS::PathToUTF8String(config_loc);
- if (config->ParseError() < 0) {
- if (retry) {
- LOG_WARNING(Config, "Failed to load {}. Creating file from defaults...",
- config_loc_str);
-
- void(FS::CreateParentDir(config_loc));
- void(FS::WriteStringToFile(config_loc, FS::FileType::TextFile, default_contents));
-
- config = std::make_unique(config_loc_str);
-
- return LoadINI(default_contents, false);
- }
- LOG_ERROR(Config, "Failed.");
- return false;
- }
- LOG_INFO(Config, "Successfully loaded {}", config_loc_str);
- return true;
-}
-
-template <>
-void Config::ReadSetting(const std::string& group, Settings::Setting& setting) {
- std::string setting_value = config->Get(group, setting.GetLabel(), setting.GetDefault());
- if (setting_value.empty()) {
- setting_value = setting.GetDefault();
- }
- setting = std::move(setting_value);
-}
-
-template <>
-void Config::ReadSetting(const std::string& group, Settings::Setting& setting) {
- setting = config->GetBoolean(group, setting.GetLabel(), setting.GetDefault());
-}
-
-template
-void Config::ReadSetting(const std::string& group, Settings::Setting& setting) {
- setting = static_cast(
- config->GetInteger(group, setting.GetLabel(), static_cast(setting.GetDefault())));
-}
-
-void Config::ReadValues() {
- ReadSetting("ControlsGeneral", Settings::values.mouse_enabled);
- ReadSetting("ControlsGeneral", Settings::values.touch_device);
- ReadSetting("ControlsGeneral", Settings::values.keyboard_enabled);
- ReadSetting("ControlsGeneral", Settings::values.debug_pad_enabled);
- ReadSetting("ControlsGeneral", Settings::values.vibration_enabled);
- ReadSetting("ControlsGeneral", Settings::values.enable_accurate_vibrations);
- ReadSetting("ControlsGeneral", Settings::values.motion_enabled);
- Settings::values.touchscreen.enabled =
- config->GetBoolean("ControlsGeneral", "touch_enabled", true);
- Settings::values.touchscreen.rotation_angle =
- config->GetInteger("ControlsGeneral", "touch_angle", 0);
- Settings::values.touchscreen.diameter_x =
- config->GetInteger("ControlsGeneral", "touch_diameter_x", 15);
- Settings::values.touchscreen.diameter_y =
- config->GetInteger("ControlsGeneral", "touch_diameter_y", 15);
-
- int num_touch_from_button_maps =
- config->GetInteger("ControlsGeneral", "touch_from_button_map", 0);
- if (num_touch_from_button_maps > 0) {
- for (int i = 0; i < num_touch_from_button_maps; ++i) {
- Settings::TouchFromButtonMap map;
- map.name = config->Get("ControlsGeneral",
- std::string("touch_from_button_maps_") + std::to_string(i) +
- std::string("_name"),
- "default");
- const int num_touch_maps = config->GetInteger(
- "ControlsGeneral",
- std::string("touch_from_button_maps_") + std::to_string(i) + std::string("_count"),
- 0);
- map.buttons.reserve(num_touch_maps);
-
- for (int j = 0; j < num_touch_maps; ++j) {
- std::string touch_mapping =
- config->Get("ControlsGeneral",
- std::string("touch_from_button_maps_") + std::to_string(i) +
- std::string("_bind_") + std::to_string(j),
- "");
- map.buttons.emplace_back(std::move(touch_mapping));
- }
-
- Settings::values.touch_from_button_maps.emplace_back(std::move(map));
- }
- } else {
- Settings::values.touch_from_button_maps.emplace_back(
- Settings::TouchFromButtonMap{"default", {}});
- num_touch_from_button_maps = 1;
- }
- Settings::values.touch_from_button_map_index = std::clamp(
- Settings::values.touch_from_button_map_index.GetValue(), 0, num_touch_from_button_maps - 1);
-
- ReadSetting("ControlsGeneral", Settings::values.udp_input_servers);
-
- // Data Storage
- ReadSetting("Data Storage", Settings::values.use_virtual_sd);
- FS::SetYuzuPath(FS::YuzuPath::NANDDir,
- config->Get("Data Storage", "nand_directory",
- FS::GetYuzuPathString(FS::YuzuPath::NANDDir)));
- FS::SetYuzuPath(FS::YuzuPath::SDMCDir,
- config->Get("Data Storage", "sdmc_directory",
- FS::GetYuzuPathString(FS::YuzuPath::SDMCDir)));
- FS::SetYuzuPath(FS::YuzuPath::LoadDir,
- config->Get("Data Storage", "load_directory",
- FS::GetYuzuPathString(FS::YuzuPath::LoadDir)));
- FS::SetYuzuPath(FS::YuzuPath::DumpDir,
- config->Get("Data Storage", "dump_directory",
- FS::GetYuzuPathString(FS::YuzuPath::DumpDir)));
- ReadSetting("Data Storage", Settings::values.gamecard_inserted);
- ReadSetting("Data Storage", Settings::values.gamecard_current_game);
- ReadSetting("Data Storage", Settings::values.gamecard_path);
-
- // System
- ReadSetting("System", Settings::values.current_user);
- Settings::values.current_user = std::clamp(Settings::values.current_user.GetValue(), 0,
- Service::Account::MAX_USERS - 1);
-
- // Disable docked mode by default on Android
- Settings::values.use_docked_mode.SetValue(config->GetBoolean("System", "use_docked_mode", false)
- ? Settings::ConsoleMode::Docked
- : Settings::ConsoleMode::Handheld);
-
- const auto rng_seed_enabled = config->GetBoolean("System", "rng_seed_enabled", false);
- if (rng_seed_enabled) {
- Settings::values.rng_seed.SetValue(config->GetInteger("System", "rng_seed", 0));
- } else {
- Settings::values.rng_seed.SetValue(0);
- }
- Settings::values.rng_seed_enabled.SetValue(rng_seed_enabled);
-
- const auto custom_rtc_enabled = config->GetBoolean("System", "custom_rtc_enabled", false);
- if (custom_rtc_enabled) {
- Settings::values.custom_rtc = config->GetInteger("System", "custom_rtc", 0);
- } else {
- Settings::values.custom_rtc = 0;
- }
- Settings::values.custom_rtc_enabled = custom_rtc_enabled;
-
- ReadSetting("System", Settings::values.language_index);
- ReadSetting("System", Settings::values.region_index);
- ReadSetting("System", Settings::values.time_zone_index);
- ReadSetting("System", Settings::values.sound_index);
-
- // Core
- ReadSetting("Core", Settings::values.use_multi_core);
- ReadSetting("Core", Settings::values.memory_layout_mode);
-
- // Cpu
- ReadSetting("Cpu", Settings::values.cpu_accuracy);
- ReadSetting("Cpu", Settings::values.cpu_debug_mode);
- ReadSetting("Cpu", Settings::values.cpuopt_page_tables);
- ReadSetting("Cpu", Settings::values.cpuopt_block_linking);
- ReadSetting("Cpu", Settings::values.cpuopt_return_stack_buffer);
- ReadSetting("Cpu", Settings::values.cpuopt_fast_dispatcher);
- ReadSetting("Cpu", Settings::values.cpuopt_context_elimination);
- ReadSetting("Cpu", Settings::values.cpuopt_const_prop);
- ReadSetting("Cpu", Settings::values.cpuopt_misc_ir);
- ReadSetting("Cpu", Settings::values.cpuopt_reduce_misalign_checks);
- ReadSetting("Cpu", Settings::values.cpuopt_fastmem);
- ReadSetting("Cpu", Settings::values.cpuopt_fastmem_exclusives);
- ReadSetting("Cpu", Settings::values.cpuopt_recompile_exclusives);
- ReadSetting("Cpu", Settings::values.cpuopt_ignore_memory_aborts);
- ReadSetting("Cpu", Settings::values.cpuopt_unsafe_unfuse_fma);
- ReadSetting("Cpu", Settings::values.cpuopt_unsafe_reduce_fp_error);
- ReadSetting("Cpu", Settings::values.cpuopt_unsafe_ignore_standard_fpcr);
- ReadSetting("Cpu", Settings::values.cpuopt_unsafe_inaccurate_nan);
- ReadSetting("Cpu", Settings::values.cpuopt_unsafe_fastmem_check);
- ReadSetting("Cpu", Settings::values.cpuopt_unsafe_ignore_global_monitor);
-
- // Renderer
- ReadSetting("Renderer", Settings::values.renderer_backend);
- ReadSetting("Renderer", Settings::values.renderer_debug);
- ReadSetting("Renderer", Settings::values.renderer_shader_feedback);
- ReadSetting("Renderer", Settings::values.enable_nsight_aftermath);
- ReadSetting("Renderer", Settings::values.disable_shader_loop_safety_checks);
- ReadSetting("Renderer", Settings::values.vulkan_device);
-
- ReadSetting("Renderer", Settings::values.resolution_setup);
- ReadSetting("Renderer", Settings::values.scaling_filter);
- ReadSetting("Renderer", Settings::values.fsr_sharpening_slider);
- ReadSetting("Renderer", Settings::values.anti_aliasing);
- ReadSetting("Renderer", Settings::values.fullscreen_mode);
- ReadSetting("Renderer", Settings::values.aspect_ratio);
- ReadSetting("Renderer", Settings::values.max_anisotropy);
- ReadSetting("Renderer", Settings::values.use_speed_limit);
- ReadSetting("Renderer", Settings::values.speed_limit);
- ReadSetting("Renderer", Settings::values.use_disk_shader_cache);
- ReadSetting("Renderer", Settings::values.use_asynchronous_gpu_emulation);
- ReadSetting("Renderer", Settings::values.vsync_mode);
- ReadSetting("Renderer", Settings::values.shader_backend);
- ReadSetting("Renderer", Settings::values.use_asynchronous_shaders);
- ReadSetting("Renderer", Settings::values.nvdec_emulation);
- ReadSetting("Renderer", Settings::values.use_fast_gpu_time);
- ReadSetting("Renderer", Settings::values.use_vulkan_driver_pipeline_cache);
-
- ReadSetting("Renderer", Settings::values.bg_red);
- ReadSetting("Renderer", Settings::values.bg_green);
- ReadSetting("Renderer", Settings::values.bg_blue);
-
- // Use GPU accuracy normal by default on Android
- Settings::values.gpu_accuracy = static_cast(config->GetInteger(
- "Renderer", "gpu_accuracy", static_cast(Settings::GpuAccuracy::Normal)));
-
- // Use GPU default anisotropic filtering on Android
- Settings::values.max_anisotropy =
- static_cast(config->GetInteger("Renderer", "max_anisotropy", 1));
-
- // Disable ASTC compute by default on Android
- Settings::values.accelerate_astc.SetValue(
- config->GetBoolean("Renderer", "accelerate_astc", false) ? Settings::AstcDecodeMode::Gpu
- : Settings::AstcDecodeMode::Cpu);
-
- // Enable asynchronous presentation by default on Android
- Settings::values.async_presentation =
- config->GetBoolean("Renderer", "async_presentation", true);
-
- // Disable force_max_clock by default on Android
- Settings::values.renderer_force_max_clock =
- config->GetBoolean("Renderer", "force_max_clock", false);
-
- // Disable use_reactive_flushing by default on Android
- Settings::values.use_reactive_flushing =
- config->GetBoolean("Renderer", "use_reactive_flushing", false);
-
- // Audio
- ReadSetting("Audio", Settings::values.sink_id);
- ReadSetting("Audio", Settings::values.audio_output_device_id);
- ReadSetting("Audio", Settings::values.volume);
-
- // Miscellaneous
- // log_filter has a different default here than from common
- Settings::values.log_filter = "*:Info";
- ReadSetting("Miscellaneous", Settings::values.use_dev_keys);
-
- // Debugging
- Settings::values.record_frame_times =
- config->GetBoolean("Debugging", "record_frame_times", false);
- ReadSetting("Debugging", Settings::values.dump_exefs);
- ReadSetting("Debugging", Settings::values.dump_nso);
- ReadSetting("Debugging", Settings::values.enable_fs_access_log);
- ReadSetting("Debugging", Settings::values.reporting_services);
- ReadSetting("Debugging", Settings::values.quest_flag);
- ReadSetting("Debugging", Settings::values.use_debug_asserts);
- ReadSetting("Debugging", Settings::values.use_auto_stub);
- ReadSetting("Debugging", Settings::values.disable_macro_jit);
- ReadSetting("Debugging", Settings::values.disable_macro_hle);
- ReadSetting("Debugging", Settings::values.use_gdbstub);
- ReadSetting("Debugging", Settings::values.gdbstub_port);
-
- const auto title_list = config->Get("AddOns", "title_ids", "");
- std::stringstream ss(title_list);
- std::string line;
- while (std::getline(ss, line, '|')) {
- const auto title_id = std::strtoul(line.c_str(), nullptr, 16);
- const auto disabled_list = config->Get("AddOns", "disabled_" + line, "");
-
- std::stringstream inner_ss(disabled_list);
- std::string inner_line;
- std::vector out;
- while (std::getline(inner_ss, inner_line, '|')) {
- out.push_back(inner_line);
- }
-
- Settings::values.disabled_addons.insert_or_assign(title_id, out);
- }
-
- // Web Service
- ReadSetting("WebService", Settings::values.enable_telemetry);
- ReadSetting("WebService", Settings::values.web_api_url);
- ReadSetting("WebService", Settings::values.yuzu_username);
- ReadSetting("WebService", Settings::values.yuzu_token);
-
- // Network
- ReadSetting("Network", Settings::values.network_interface);
-
- // Android
- ReadSetting("Android", AndroidSettings::values.picture_in_picture);
- ReadSetting("Android", AndroidSettings::values.screen_layout);
-}
-
-void Config::Initialize(const std::string& config_name) {
- const auto fs_config_loc = FS::GetYuzuPath(FS::YuzuPath::ConfigDir);
- const auto config_file = fmt::format("{}.ini", config_name);
-
- switch (type) {
- case ConfigType::GlobalConfig:
- config_loc = FS::PathToUTF8String(fs_config_loc / config_file);
- break;
- case ConfigType::PerGameConfig:
- config_loc = FS::PathToUTF8String(fs_config_loc / "custom" / FS::ToU8String(config_file));
- break;
- case ConfigType::InputProfile:
- config_loc = FS::PathToUTF8String(fs_config_loc / "input" / config_file);
- LoadINI(DefaultINI::android_config_file);
- return;
- }
- LoadINI(DefaultINI::android_config_file);
- ReadValues();
-}
diff --git a/src/android/app/src/main/jni/config.h b/src/android/app/src/main/jni/config.h
deleted file mode 100644
index e1e8f47ed..000000000
--- a/src/android/app/src/main/jni/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include
-#include
-#include
-#include
-
-#include "common/settings.h"
-
-class INIReader;
-
-class Config {
- bool LoadINI(const std::string& default_contents = "", bool retry = true);
-
-public:
- enum class ConfigType {
- GlobalConfig,
- PerGameConfig,
- InputProfile,
- };
-
- explicit Config(const std::string& config_name = "config",
- ConfigType config_type = ConfigType::GlobalConfig);
- ~Config();
-
- void Initialize(const std::string& config_name);
-
-private:
- /**
- * Applies a value read from the config to a Setting.
- *
- * @param group The name of the INI group
- * @param setting The yuzu setting to modify
- */
- template
- void ReadSetting(const std::string& group, Settings::Setting& setting);
-
- void ReadValues();
-
- const ConfigType type;
- std::unique_ptr config;
- std::string config_loc;
- const bool global;
-};
diff --git a/src/android/app/src/main/jni/default_ini.h b/src/android/app/src/main/jni/default_ini.h
deleted file mode 100644
index d81422a74..000000000
--- a/src/android/app/src/main/jni/default_ini.h
+++ /dev/null
@@ -1,511 +0,0 @@
-// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-namespace DefaultINI {
-
-const char* android_config_file = R"(
-
-[ControlsP0]
-# The input devices and parameters for each Switch native input
-# The config section determines the player number where the config will be applied on. For example "ControlsP0", "ControlsP1", ...
-# It should be in the format of "engine:[engine_name],[param1]:[value1],[param2]:[value2]..."
-# Escape characters $0 (for ':'), $1 (for ',') and $2 (for '$') can be used in values
-
-# Indicates if this player should be connected at boot
-connected=
-
-# for button input, the following devices are available:
-# - "keyboard" (default) for keyboard input. Required parameters:
-# - "code": the code of the key to bind
-# - "sdl" for joystick input using SDL. Required parameters:
-# - "guid": SDL identification GUID of the joystick
-# - "port": the index of the joystick to bind
-# - "button"(optional): the index of the button to bind
-# - "hat"(optional): the index of the hat to bind as direction buttons
-# - "axis"(optional): the index of the axis to bind
-# - "direction"(only used for hat): the direction name of the hat to bind. Can be "up", "down", "left" or "right"
-# - "threshold"(only used for axis): a float value in (-1.0, 1.0) which the button is
-# triggered if the axis value crosses
-# - "direction"(only used for axis): "+" means the button is triggered when the axis value
-# is greater than the threshold; "-" means the button is triggered when the axis value
-# is smaller than the threshold
-button_a=
-button_b=
-button_x=
-button_y=
-button_lstick=
-button_rstick=
-button_l=
-button_r=
-button_zl=
-button_zr=
-button_plus=
-button_minus=
-button_dleft=
-button_dup=
-button_dright=
-button_ddown=
-button_lstick_left=
-button_lstick_up=
-button_lstick_right=
-button_lstick_down=
-button_sl=
-button_sr=
-button_home=
-button_screenshot=
-
-# for analog input, the following devices are available:
-# - "analog_from_button" (default) for emulating analog input from direction buttons. Required parameters:
-# - "up", "down", "left", "right": sub-devices for each direction.
-# Should be in the format as a button input devices using escape characters, for example, "engine$0keyboard$1code$00"
-# - "modifier": sub-devices as a modifier.
-# - "modifier_scale": a float number representing the applied modifier scale to the analog input.
-# Must be in range of 0.0-1.0. Defaults to 0.5
-# - "sdl" for joystick input using SDL. Required parameters:
-# - "guid": SDL identification GUID of the joystick
-# - "port": the index of the joystick to bind
-# - "axis_x": the index of the axis to bind as x-axis (default to 0)
-# - "axis_y": the index of the axis to bind as y-axis (default to 1)
-lstick=
-rstick=
-
-# for motion input, the following devices are available:
-# - "keyboard" (default) for emulating random motion input from buttons. Required parameters:
-# - "code": the code of the key to bind
-# - "sdl" for motion input using SDL. Required parameters:
-# - "guid": SDL identification GUID of the joystick
-# - "port": the index of the joystick to bind
-# - "motion": the index of the motion sensor to bind
-# - "cemuhookudp" for motion input using Cemu Hook protocol. Required parameters:
-# - "guid": the IP address of the cemu hook server encoded to a hex string. for example 192.168.0.1 = "c0a80001"
-# - "port": the port of the cemu hook server
-# - "pad": the index of the joystick
-# - "motion": the index of the motion sensor of the joystick to bind
-motionleft=
-motionright=
-
-[ControlsGeneral]
-# To use the debug_pad, prepend `debug_pad_` before each button setting above.
-# i.e. debug_pad_button_a=
-
-# Enable debug pad inputs to the guest
-# 0 (default): Disabled, 1: Enabled
-debug_pad_enabled =
-
-# Whether to enable or disable vibration
-# 0: Disabled, 1 (default): Enabled
-vibration_enabled=
-
-# Whether to enable or disable accurate vibrations
-# 0 (default): Disabled, 1: Enabled
-enable_accurate_vibrations=
-
-# Enables controller motion inputs
-# 0: Disabled, 1 (default): Enabled
-motion_enabled =
-
-# Defines the udp device's touch screen coordinate system for cemuhookudp devices
-# - "min_x", "min_y", "max_x", "max_y"
-touch_device=
-
-# for mapping buttons to touch inputs.
-#touch_from_button_map=1
-#touch_from_button_maps_0_name=default
-#touch_from_button_maps_0_count=2
-#touch_from_button_maps_0_bind_0=foo
-#touch_from_button_maps_0_bind_1=bar
-# etc.
-
-# List of Cemuhook UDP servers, delimited by ','.
-# Default: 127.0.0.1:26760
-# Example: 127.0.0.1:26760,123.4.5.67:26761
-udp_input_servers =
-
-# Enable controlling an axis via a mouse input.
-# 0 (default): Off, 1: On
-mouse_panning =
-
-# Set mouse sensitivity.
-# Default: 1.0
-mouse_panning_sensitivity =
-
-# Emulate an analog control stick from keyboard inputs.
-# 0 (default): Disabled, 1: Enabled
-emulate_analog_keyboard =
-
-# Enable mouse inputs to the guest
-# 0 (default): Disabled, 1: Enabled
-mouse_enabled =
-
-# Enable keyboard inputs to the guest
-# 0 (default): Disabled, 1: Enabled
-keyboard_enabled =
-
-[Core]
-# Whether to use multi-core for CPU emulation
-# 0: Disabled, 1 (default): Enabled
-use_multi_core =
-
-# Enable unsafe extended guest system memory layout (8GB DRAM)
-# 0 (default): Disabled, 1: Enabled
-use_unsafe_extended_memory_layout =
-
-[Cpu]
-# Adjusts various optimizations.
-# Auto-select mode enables choice unsafe optimizations.
-# Accurate enables only safe optimizations.
-# Unsafe allows any unsafe optimizations.
-# 0 (default): Auto-select, 1: Accurate, 2: Enable unsafe optimizations
-cpu_accuracy =
-
-# Allow disabling safe optimizations.
-# 0 (default): Disabled, 1: Enabled
-cpu_debug_mode =
-
-# Enable inline page tables optimization (faster guest memory access)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_page_tables =
-
-# Enable block linking CPU optimization (reduce block dispatcher use during predictable jumps)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_block_linking =
-
-# Enable return stack buffer CPU optimization (reduce block dispatcher use during predictable returns)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_return_stack_buffer =
-
-# Enable fast dispatcher CPU optimization (use a two-tiered dispatcher architecture)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_fast_dispatcher =
-
-# Enable context elimination CPU Optimization (reduce host memory use for guest context)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_context_elimination =
-
-# Enable constant propagation CPU optimization (basic IR optimization)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_const_prop =
-
-# Enable miscellaneous CPU optimizations (basic IR optimization)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_misc_ir =
-
-# Enable reduction of memory misalignment checks (reduce memory fallbacks for misaligned access)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_reduce_misalign_checks =
-
-# Enable Host MMU Emulation (faster guest memory access)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_fastmem =
-
-# Enable Host MMU Emulation for exclusive memory instructions (faster guest memory access)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_fastmem_exclusives =
-
-# Enable fallback on failure of fastmem of exclusive memory instructions (faster guest memory access)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_recompile_exclusives =
-
-# Enable optimization to ignore invalid memory accesses (faster guest memory access)
-# 0: Disabled, 1 (default): Enabled
-cpuopt_ignore_memory_aborts =
-
-# Enable unfuse FMA (improve performance on CPUs without FMA)
-# Only enabled if cpu_accuracy is set to Unsafe. Automatically chosen with cpu_accuracy = Auto-select.
-# 0: Disabled, 1 (default): Enabled
-cpuopt_unsafe_unfuse_fma =
-
-# Enable faster FRSQRTE and FRECPE
-# Only enabled if cpu_accuracy is set to Unsafe.
-# 0: Disabled, 1 (default): Enabled
-cpuopt_unsafe_reduce_fp_error =
-
-# Enable faster ASIMD instructions (32 bits only)
-# Only enabled if cpu_accuracy is set to Unsafe. Automatically chosen with cpu_accuracy = Auto-select.
-# 0: Disabled, 1 (default): Enabled
-cpuopt_unsafe_ignore_standard_fpcr =
-
-# Enable inaccurate NaN handling
-# Only enabled if cpu_accuracy is set to Unsafe. Automatically chosen with cpu_accuracy = Auto-select.
-# 0: Disabled, 1 (default): Enabled
-cpuopt_unsafe_inaccurate_nan =
-
-# Disable address space checks (64 bits only)
-# Only enabled if cpu_accuracy is set to Unsafe. Automatically chosen with cpu_accuracy = Auto-select.
-# 0: Disabled, 1 (default): Enabled
-cpuopt_unsafe_fastmem_check =
-
-# Enable faster exclusive instructions
-# Only enabled if cpu_accuracy is set to Unsafe. Automatically chosen with cpu_accuracy = Auto-select.
-# 0: Disabled, 1 (default): Enabled
-cpuopt_unsafe_ignore_global_monitor =
-
-[Renderer]
-# Which backend API to use.
-# 0: OpenGL (unsupported), 1 (default): Vulkan, 2: Null
-backend =
-
-# Whether to enable asynchronous presentation (Vulkan only)
-# 0: Off, 1 (default): On
-async_presentation =
-
-# Forces the GPU to run at the maximum possible clocks (thermal constraints will still be applied).
-# 0 (default): Disabled, 1: Enabled
-force_max_clock =
-
-# Enable graphics API debugging mode.
-# 0 (default): Disabled, 1: Enabled
-debug =
-
-# Enable shader feedback.
-# 0 (default): Disabled, 1: Enabled
-renderer_shader_feedback =
-
-# Enable Nsight Aftermath crash dumps
-# 0 (default): Disabled, 1: Enabled
-nsight_aftermath =
-
-# Disable shader loop safety checks, executing the shader without loop logic changes
-# 0 (default): Disabled, 1: Enabled
-disable_shader_loop_safety_checks =
-
-# Which Vulkan physical device to use (defaults to 0)
-vulkan_device =
-
-# 0: 0.5x (360p/540p) [EXPERIMENTAL]
-# 1: 0.75x (540p/810p) [EXPERIMENTAL]
-# 2 (default): 1x (720p/1080p)
-# 3: 2x (1440p/2160p)
-# 4: 3x (2160p/3240p)
-# 5: 4x (2880p/4320p)
-# 6: 5x (3600p/5400p)
-# 7: 6x (4320p/6480p)
-resolution_setup =
-
-# Pixel filter to use when up- or down-sampling rendered frames.
-# 0: Nearest Neighbor
-# 1 (default): Bilinear
-# 2: Bicubic
-# 3: Gaussian
-# 4: ScaleForce
-# 5: AMD FidelityFX™️ Super Resolution [Vulkan Only]
-scaling_filter =
-
-# Anti-Aliasing (AA)
-# 0 (default): None, 1: FXAA
-anti_aliasing =
-
-# Whether to use fullscreen or borderless window mode
-# 0 (Windows default): Borderless window, 1 (All other default): Exclusive fullscreen
-fullscreen_mode =
-
-# Aspect ratio
-# 0: Default (16:9), 1: Force 4:3, 2: Force 21:9, 3: Force 16:10, 4: Stretch to Window
-aspect_ratio =
-
-# Anisotropic filtering
-# 0: Default, 1: 2x, 2: 4x, 3: 8x, 4: 16x
-max_anisotropy =
-
-# Whether to enable VSync or not.
-# OpenGL: Values other than 0 enable VSync
-# Vulkan: FIFO is selected if the requested mode is not supported by the driver.
-# FIFO (VSync) does not drop frames or exhibit tearing but is limited by the screen refresh rate.
-# FIFO Relaxed is similar to FIFO but allows tearing as it recovers from a slow down.
-# Mailbox can have lower latency than FIFO and does not tear but may drop frames.
-# Immediate (no synchronization) just presents whatever is available and can exhibit tearing.
-# 0: Immediate (Off), 1 (Default): Mailbox (On), 2: FIFO, 3: FIFO Relaxed
-use_vsync =
-
-# Selects the OpenGL shader backend. NV_gpu_program5 is required for GLASM. If NV_gpu_program5 is
-# not available and GLASM is selected, GLSL will be used.
-# 0: GLSL, 1 (default): GLASM, 2: SPIR-V
-shader_backend =
-
-# Whether to allow asynchronous shader building.
-# 0 (default): Off, 1: On
-use_asynchronous_shaders =
-
-# Uses reactive flushing instead of predictive flushing. Allowing a more accurate syncing of memory.
-# 0 (default): Off, 1: On
-use_reactive_flushing =
-
-# NVDEC emulation.
-# 0: Disabled, 1: CPU Decoding, 2 (default): GPU Decoding
-nvdec_emulation =
-
-# Accelerate ASTC texture decoding.
-# 0 (default): Off, 1: On
-accelerate_astc =
-
-# Turns on the speed limiter, which will limit the emulation speed to the desired speed limit value
-# 0: Off, 1: On (default)
-use_speed_limit =
-
-# Limits the speed of the game to run no faster than this value as a percentage of target speed
-# 1 - 9999: Speed limit as a percentage of target game speed. 100 (default)
-speed_limit =
-
-# Whether to use disk based shader cache
-# 0: Off, 1 (default): On
-use_disk_shader_cache =
-
-# Which gpu accuracy level to use
-# 0 (default): Normal, 1: High, 2: Extreme (Very slow)
-gpu_accuracy =
-
-# Whether to use asynchronous GPU emulation
-# 0 : Off (slow), 1 (default): On (fast)
-use_asynchronous_gpu_emulation =
-
-# Inform the guest that GPU operations completed more quickly than they did.
-# 0: Off, 1 (default): On
-use_fast_gpu_time =
-
-# Force unmodified buffers to be flushed, which can cost performance.
-# 0: Off (default), 1: On
-use_pessimistic_flushes =
-
-# Whether to use garbage collection or not for GPU caches.
-# 0 (default): Off, 1: On
-use_caches_gc =
-
-# The clear color for the renderer. What shows up on the sides of the bottom screen.
-# Must be in range of 0-255. Defaults to 0 for all.
-bg_red =
-bg_blue =
-bg_green =
-
-[Audio]
-# Which audio output engine to use.
-# auto (default): Auto-select
-# cubeb: Cubeb audio engine (if available)
-# sdl2: SDL2 audio engine (if available)
-# null: No audio output
-output_engine =
-
-# Which audio device to use.
-# auto (default): Auto-select
-output_device =
-
-# Output volume.
-# 100 (default): 100%, 0; mute
-volume =
-
-[Data Storage]
-# Whether to create a virtual SD card.
-# 1: Yes, 0 (default): No
-use_virtual_sd =
-
-# Whether or not to enable gamecard emulation
-# 1: Yes, 0 (default): No
-gamecard_inserted =
-
-# Whether or not the gamecard should be emulated as the current game
-# If 'gamecard_inserted' is 0 this setting is irrelevant
-# 1: Yes, 0 (default): No
-gamecard_current_game =
-
-# Path to an XCI file to use as the gamecard
-# If 'gamecard_inserted' is 0 this setting is irrelevant
-# If 'gamecard_current_game' is 1 this setting is irrelevant
-gamecard_path =
-
-[System]
-# Whether the system is docked
-# 1 (default): Yes, 0: No
-use_docked_mode =
-
-# Sets the seed for the RNG generator built into the switch
-# rng_seed will be ignored and randomly generated if rng_seed_enabled is false
-rng_seed_enabled =
-rng_seed =
-
-# Sets the current time (in seconds since 12:00 AM Jan 1, 1970) that will be used by the time service
-# This will auto-increment, with the time set being the time the game is started
-# This override will only occur if custom_rtc_enabled is true, otherwise the current time is used
-custom_rtc_enabled =
-custom_rtc =
-
-# Sets the systems language index
-# 0: Japanese, 1: English (default), 2: French, 3: German, 4: Italian, 5: Spanish, 6: Chinese,
-# 7: Korean, 8: Dutch, 9: Portuguese, 10: Russian, 11: Taiwanese, 12: British English, 13: Canadian French,
-# 14: Latin American Spanish, 15: Simplified Chinese, 16: Traditional Chinese, 17: Brazilian Portuguese
-language_index =
-
-# The system region that yuzu will use during emulation
-# -1: Auto-select (default), 0: Japan, 1: USA, 2: Europe, 3: Australia, 4: China, 5: Korea, 6: Taiwan
-region_index =
-
-# The system time zone that yuzu will use during emulation
-# 0: Auto-select (default), 1: Default (system archive value), Others: Index for specified time zone
-time_zone_index =
-
-# Sets the sound output mode.
-# 0: Mono, 1 (default): Stereo, 2: Surround
-sound_index =
-
-[Miscellaneous]
-# A filter which removes logs below a certain logging level.
-# Examples: *:Debug Kernel.SVC:Trace Service.*:Critical
-log_filter = *:Trace
-
-# Use developer keys
-# 0 (default): Disabled, 1: Enabled
-use_dev_keys =
-
-[Debugging]
-# Record frame time data, can be found in the log directory. Boolean value
-record_frame_times =
-# Determines whether or not yuzu will dump the ExeFS of all games it attempts to load while loading them
-dump_exefs=false
-# Determines whether or not yuzu will dump all NSOs it attempts to load while loading them
-dump_nso=false
-# Determines whether or not yuzu will save the filesystem access log.
-enable_fs_access_log=false
-# Enables verbose reporting services
-reporting_services =
-# Determines whether or not yuzu will report to the game that the emulated console is in Kiosk Mode
-# false: Retail/Normal Mode (default), true: Kiosk Mode
-quest_flag =
-# Determines whether debug asserts should be enabled, which will throw an exception on asserts.
-# false: Disabled (default), true: Enabled
-use_debug_asserts =
-# Determines whether unimplemented HLE service calls should be automatically stubbed.
-# false: Disabled (default), true: Enabled
-use_auto_stub =
-# Enables/Disables the macro JIT compiler
-disable_macro_jit=false
-# Determines whether to enable the GDB stub and wait for the debugger to attach before running.
-# false: Disabled (default), true: Enabled
-use_gdbstub=false
-# The port to use for the GDB server, if it is enabled.
-gdbstub_port=6543
-
-[WebService]
-# Whether or not to enable telemetry
-# 0: No, 1 (default): Yes
-enable_telemetry =
-# URL for Web API
-web_api_url = https://api.yuzu-emu.org
-# Username and token for yuzu Web Service
-# See https://profile.yuzu-emu.org/ for more info
-yuzu_username =
-yuzu_token =
-
-[Network]
-# Name of the network interface device to use with yuzu LAN play.
-# e.g. On *nix: 'enp7s0', 'wlp6s0u1u3u3', 'lo'
-# e.g. On Windows: 'Ethernet', 'Wi-Fi'
-network_interface =
-
-[AddOns]
-# Used to disable add-ons
-# List of title IDs of games that will have add-ons disabled (separated by '|'):
-title_ids =
-# For each title ID, have a key/value pair called `disabled_` equal to the names of the add-ons to disable (sep. by '|')
-# e.x. disabled_0100000000010000 = Update|DLC <- disables Updates and DLC on Super Mario Odyssey
-)";
-} // namespace DefaultINI
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp
index 64663b084..617288ae4 100644
--- a/src/android/app/src/main/jni/native.cpp
+++ b/src/android/app/src/main/jni/native.cpp
@@ -52,8 +52,8 @@
#include "core/hle/service/am/applets/applets.h"
#include "core/hle/service/filesystem/filesystem.h"
#include "core/loader/loader.h"
+#include "frontend_common/config.h"
#include "jni/android_common/android_common.h"
-#include "jni/config.h"
#include "jni/id_cache.h"
#include "jni/native.h"
#include "video_core/renderer_base.h"
@@ -664,8 +664,6 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchReleased(JNIEnv* env, jclass c
void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeSystem(JNIEnv* env, jclass clazz,
jboolean reload) {
- // Create the default config.ini.
- Config{};
// Initialize the emulated system.
if (!reload) {
EmulationSession::GetInstance().System().Initialize();
@@ -680,17 +678,6 @@ jint Java_org_yuzu_yuzu_1emu_NativeLibrary_defaultCPUCore(JNIEnv* env, jclass cl
void Java_org_yuzu_yuzu_1emu_NativeLibrary_run__Ljava_lang_String_2Ljava_lang_String_2Z(
JNIEnv* env, jclass clazz, jstring j_file, jstring j_savestate, jboolean j_delete_savestate) {}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_reloadSettings(JNIEnv* env, jclass clazz) {
- Config{};
-}
-
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_initGameIni(JNIEnv* env, jclass clazz,
- jstring j_game_id) {
- std::string_view game_id = env->GetStringUTFChars(j_game_id, 0);
-
- env->ReleaseStringUTFChars(j_game_id, game_id.data());
-}
-
jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats(JNIEnv* env, jclass clazz) {
jdoubleArray j_stats = env->NewDoubleArray(4);
diff --git a/src/android/app/src/main/jni/native_config.cpp b/src/android/app/src/main/jni/native_config.cpp
index 8a704960c..8e81816e5 100644
--- a/src/android/app/src/main/jni/native_config.cpp
+++ b/src/android/app/src/main/jni/native_config.cpp
@@ -5,11 +5,14 @@
#include
+#include "android_config.h"
+#include "android_settings.h"
#include "common/logging/log.h"
#include "common/settings.h"
+#include "frontend_common/config.h"
#include "jni/android_common/android_common.h"
-#include "jni/config.h"
-#include "uisettings.h"
+
+std::unique_ptr config;
template
Settings::Setting* getSetting(JNIEnv* env, jstring jkey) {
@@ -28,6 +31,22 @@ Settings::Setting* getSetting(JNIEnv* env, jstring jkey) {
extern "C" {
+void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_initializeConfig(JNIEnv* env, jobject obj) {
+ config = std::make_unique();
+}
+
+void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_unloadConfig(JNIEnv* env, jobject obj) {
+ config.reset();
+}
+
+void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_reloadSettings(JNIEnv* env, jobject obj) {
+ config->AndroidConfig::ReloadAllValues();
+}
+
+void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_saveSettings(JNIEnv* env, jobject obj) {
+ config->AndroidConfig::SaveAllValues();
+}
+
jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getBoolean(JNIEnv* env, jobject obj,
jstring jkey, jboolean getDefault) {
auto setting = getSetting(env, jkey);
diff --git a/src/android/app/src/main/jni/uisettings.cpp b/src/android/app/src/main/jni/uisettings.cpp
deleted file mode 100644
index f2f0bad50..000000000
--- a/src/android/app/src/main/jni/uisettings.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "uisettings.h"
-
-namespace AndroidSettings {
-
-Values values;
-
-} // namespace AndroidSettings
diff --git a/src/android/app/src/main/jni/uisettings.h b/src/android/app/src/main/jni/uisettings.h
deleted file mode 100644
index 37bc33918..000000000
--- a/src/android/app/src/main/jni/uisettings.h
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include
-#include "common/common_types.h"
-#include "common/settings_setting.h"
-
-namespace AndroidSettings {
-
-struct Values {
- Settings::Linkage linkage;
-
- // Android
- Settings::Setting picture_in_picture{linkage, false, "picture_in_picture",
- Settings::Category::Android};
- Settings::Setting screen_layout{linkage,
- 5,
- "screen_layout",
- Settings::Category::Android,
- Settings::Specialization::Default,
- true,
- true};
-};
-
-extern Values values;
-
-} // namespace AndroidSettings
--
cgit v1.2.3
From aa2031196938c43590e5bea736edc05776c609a2 Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 02:03:55 -0500
Subject: general: Remove inih
---
src/android/app/src/main/jni/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/jni/CMakeLists.txt b/src/android/app/src/main/jni/CMakeLists.txt
index 49ad029aa..2acc93da8 100644
--- a/src/android/app/src/main/jni/CMakeLists.txt
+++ b/src/android/app/src/main/jni/CMakeLists.txt
@@ -22,8 +22,8 @@ add_library(yuzu-android SHARED
set_property(TARGET yuzu-android PROPERTY IMPORTED_LOCATION ${FFmpeg_LIBRARY_DIR})
-target_link_libraries(yuzu-android PRIVATE android camera2ndk EGL glad inih jnigraphics log)
target_link_libraries(yuzu-android PRIVATE audio_core common core input_common frontend_common)
+target_link_libraries(yuzu-android PRIVATE android camera2ndk EGL glad jnigraphics log)
if (ARCHITECTURE_arm64)
target_link_libraries(yuzu-android PRIVATE adrenotools)
endif()
--
cgit v1.2.3
From e744c06f613d05762e3897a1df7709e8104ec03c Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 02:05:29 -0500
Subject: android: Remove ini4j
---
src/android/app/build.gradle.kts | 1 -
.../features/settings/utils/SettingsFile.kt | 42 ----------------------
2 files changed, 43 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts
index 021b070e0..5721327e7 100644
--- a/src/android/app/build.gradle.kts
+++ b/src/android/app/build.gradle.kts
@@ -219,7 +219,6 @@ dependencies {
implementation("io.coil-kt:coil:2.2.2")
implementation("androidx.core:core-splashscreen:1.0.1")
implementation("androidx.window:window:1.2.0-beta03")
- implementation("org.ini4j:ini4j:0.5.4")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
implementation("androidx.navigation:navigation-fragment-ktx:2.7.4")
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt
index 2b04d666a..3ae5b4653 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt
@@ -3,15 +3,8 @@
package org.yuzu.yuzu_emu.features.settings.utils
-import android.widget.Toast
import java.io.*
-import org.ini4j.Wini
-import org.yuzu.yuzu_emu.R
-import org.yuzu.yuzu_emu.YuzuApplication
-import org.yuzu.yuzu_emu.features.settings.model.*
import org.yuzu.yuzu_emu.utils.DirectoryInitialization
-import org.yuzu.yuzu_emu.utils.Log
-import org.yuzu.yuzu_emu.utils.NativeConfig
/**
* Contains static methods for interacting with .ini files in which settings are stored.
@@ -19,41 +12,6 @@ import org.yuzu.yuzu_emu.utils.NativeConfig
object SettingsFile {
const val FILE_NAME_CONFIG = "config"
- /**
- * Saves a Settings HashMap to a given .ini file on disk. If unsuccessful, outputs an error
- * telling why it failed.
- *
- * @param fileName The target filename without a path or extension.
- */
- fun saveFile(fileName: String) {
- val ini = getSettingsFile(fileName)
- try {
- val wini = Wini(ini)
- for (specificCategory in Settings.Category.values()) {
- val categoryHeader = NativeConfig.getConfigHeader(specificCategory.ordinal)
- for (setting in Settings.settingsList) {
- if (setting.key!!.isEmpty()) continue
-
- val settingCategoryHeader =
- NativeConfig.getConfigHeader(setting.category.ordinal)
- val iniSetting: String? = wini.get(categoryHeader, setting.key)
- if (iniSetting != null || settingCategoryHeader == categoryHeader) {
- wini.put(settingCategoryHeader, setting.key, setting.valueAsString)
- }
- }
- }
- wini.store()
- } catch (e: IOException) {
- Log.error("[SettingsFile] File not found: " + fileName + ".ini: " + e.message)
- val context = YuzuApplication.appContext
- Toast.makeText(
- context,
- context.getString(R.string.error_saving, fileName, e.message),
- Toast.LENGTH_SHORT
- ).show()
- }
- }
-
fun getSettingsFile(fileName: String): File =
File(DirectoryInitialization.userDirectory + "/config/" + fileName + ".ini")
}
--
cgit v1.2.3
From e637ec0c38aa29d75a34b281cd519e2166c94a7a Mon Sep 17 00:00:00 2001
From: t895
Date: Sun, 12 Nov 2023 02:08:43 -0500
Subject: android: Rework config lifecycle
Exposes options for initializing, unloading, reloading, and saving settings that let us update the config much more granularly based on what's happening in the UI.
---
.../main/java/org/yuzu/yuzu_emu/NativeLibrary.kt | 2 --
.../yuzu_emu/features/settings/model/Settings.kt | 4 ++--
.../features/settings/ui/SettingsActivity.kt | 4 ++--
.../java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt | 2 ++
.../yuzu/yuzu_emu/utils/DirectoryInitialization.kt | 1 +
.../java/org/yuzu/yuzu_emu/utils/NativeConfig.kt | 24 ++++++++++++++++++++++
6 files changed, 31 insertions(+), 6 deletions(-)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
index 9ebd6c732..f2ba2504c 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
@@ -230,8 +230,6 @@ object NativeLibrary {
*/
external fun onTouchReleased(finger_id: Int)
- external fun reloadSettings()
-
external fun initGameIni(gameID: String?)
external fun setAppDirectory(directory: String)
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt
index 2bf0e1b0d..d005c656e 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt
@@ -7,7 +7,7 @@ import android.text.TextUtils
import android.widget.Toast
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.YuzuApplication
-import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile
+import org.yuzu.yuzu_emu.utils.NativeConfig
object Settings {
private val context get() = YuzuApplication.appContext
@@ -19,7 +19,7 @@ object Settings {
context.getString(R.string.ini_saved),
Toast.LENGTH_SHORT
).show()
- SettingsFile.saveFile(SettingsFile.FILE_NAME_CONFIG)
+ NativeConfig.saveSettings()
} else {
// TODO: Save custom game settings
Toast.makeText(
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt
index c73edd50e..48bdbdd75 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt
@@ -21,7 +21,6 @@ import androidx.navigation.navArgs
import com.google.android.material.color.MaterialColors
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
-import org.yuzu.yuzu_emu.NativeLibrary
import java.io.IOException
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.databinding.ActivitySettingsBinding
@@ -165,11 +164,12 @@ class SettingsActivity : AppCompatActivity() {
settingsViewModel.shouldSave = false
// Delete settings file because the user may have changed values that do not exist in the UI
+ NativeConfig.unloadConfig()
val settingsFile = SettingsFile.getSettingsFile(SettingsFile.FILE_NAME_CONFIG)
if (!settingsFile.delete()) {
throw IOException("Failed to delete $settingsFile")
}
- NativeLibrary.reloadSettings()
+ NativeConfig.initializeConfig()
Toast.makeText(
applicationContext,
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
index ace5dddea..bd2f4cd25 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
@@ -625,6 +625,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
}
// Clear existing user data
+ NativeConfig.unloadConfig()
File(DirectoryInitialization.userDirectory!!).deleteRecursively()
// Copy archive to internal storage
@@ -643,6 +644,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
// Reinitialize relevant data
NativeLibrary.initializeSystem(true)
+ NativeConfig.initializeConfig()
gamesViewModel.reloadGames(false)
return@newInstance getString(R.string.user_data_import_success)
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
index 5e9a1176a..21270fc84 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
@@ -16,6 +16,7 @@ object DirectoryInitialization {
if (!areDirectoriesReady) {
initializeInternalStorage()
NativeLibrary.initializeSystem(false)
+ NativeConfig.initializeConfig()
areDirectoriesReady = true
}
}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt
index 9425f8b99..87e579fa7 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt
@@ -4,6 +4,30 @@
package org.yuzu.yuzu_emu.utils
object NativeConfig {
+ /**
+ * Creates a Config object and opens the emulation config.
+ */
+ @Synchronized
+ external fun initializeConfig()
+
+ /**
+ * Destroys the stored config object. This automatically saves the existing config.
+ */
+ @Synchronized
+ external fun unloadConfig()
+
+ /**
+ * Reads values saved to the config file and saves them.
+ */
+ @Synchronized
+ external fun reloadSettings()
+
+ /**
+ * Saves settings values in memory to disk.
+ */
+ @Synchronized
+ external fun saveSettings()
+
external fun getBoolean(key: String, getDefault: Boolean): Boolean
external fun setBoolean(key: String, value: Boolean)
--
cgit v1.2.3
From b5bde8451ca65161b9da43931dbf81d122630406 Mon Sep 17 00:00:00 2001
From: german77
Date: Sat, 25 Nov 2023 10:53:59 -0600
Subject: android: input: Flip abxy on redmagic controllers
---
.../main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
index 47bde5081..a38822c94 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
@@ -27,6 +27,7 @@ object InputHandler {
0x054C -> getInputDS5ButtonKey(event.keyCode)
0x057E -> getInputJoyconButtonKey(event.keyCode)
0x1532 -> getInputRazerButtonKey(event.keyCode)
+ 0x3537 -> getInputRedmagicButtonKey(event.keyCode)
else -> getInputGenericButtonKey(event.keyCode)
}
@@ -227,6 +228,24 @@ object InputHandler {
}
}
+ private fun getInputRedmagicButtonKey(key: Int): Int {
+ return when (key) {
+ KeyEvent.KEYCODE_BUTTON_A -> NativeLibrary.ButtonType.BUTTON_B
+ KeyEvent.KEYCODE_BUTTON_B -> NativeLibrary.ButtonType.BUTTON_A
+ KeyEvent.KEYCODE_BUTTON_X -> NativeLibrary.ButtonType.BUTTON_Y
+ KeyEvent.KEYCODE_BUTTON_Y -> NativeLibrary.ButtonType.BUTTON_X
+ KeyEvent.KEYCODE_BUTTON_L1 -> NativeLibrary.ButtonType.TRIGGER_L
+ KeyEvent.KEYCODE_BUTTON_R1 -> NativeLibrary.ButtonType.TRIGGER_R
+ KeyEvent.KEYCODE_BUTTON_L2 -> NativeLibrary.ButtonType.TRIGGER_ZL
+ KeyEvent.KEYCODE_BUTTON_R2 -> NativeLibrary.ButtonType.TRIGGER_ZR
+ KeyEvent.KEYCODE_BUTTON_THUMBL -> NativeLibrary.ButtonType.STICK_L
+ KeyEvent.KEYCODE_BUTTON_THUMBR -> NativeLibrary.ButtonType.STICK_R
+ KeyEvent.KEYCODE_BUTTON_START -> NativeLibrary.ButtonType.BUTTON_PLUS
+ KeyEvent.KEYCODE_BUTTON_SELECT -> NativeLibrary.ButtonType.BUTTON_MINUS
+ else -> -1
+ }
+ }
+
private fun getInputGenericButtonKey(key: Int): Int {
return when (key) {
KeyEvent.KEYCODE_BUTTON_A -> NativeLibrary.ButtonType.BUTTON_A
--
cgit v1.2.3
From de58618421fea6d8926bb4e8e4d66ddff0a6db9c Mon Sep 17 00:00:00 2001
From: german77
Date: Sat, 25 Nov 2023 18:22:03 -0600
Subject: android: input: Flip abxy on backbone labs controllers
---
.../main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
(limited to 'src/android/app')
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
index a38822c94..e63382e1d 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
@@ -28,6 +28,7 @@ object InputHandler {
0x057E -> getInputJoyconButtonKey(event.keyCode)
0x1532 -> getInputRazerButtonKey(event.keyCode)
0x3537 -> getInputRedmagicButtonKey(event.keyCode)
+ 0x358A -> getInputBackboneLabsButtonKey(event.keyCode)
else -> getInputGenericButtonKey(event.keyCode)
}
@@ -246,6 +247,24 @@ object InputHandler {
}
}
+ private fun getInputBackboneLabsButtonKey(key: Int): Int {
+ return when (key) {
+ KeyEvent.KEYCODE_BUTTON_A -> NativeLibrary.ButtonType.BUTTON_B
+ KeyEvent.KEYCODE_BUTTON_B -> NativeLibrary.ButtonType.BUTTON_A
+ KeyEvent.KEYCODE_BUTTON_X -> NativeLibrary.ButtonType.BUTTON_Y
+ KeyEvent.KEYCODE_BUTTON_Y -> NativeLibrary.ButtonType.BUTTON_X
+ KeyEvent.KEYCODE_BUTTON_L1 -> NativeLibrary.ButtonType.TRIGGER_L
+ KeyEvent.KEYCODE_BUTTON_R1 -> NativeLibrary.ButtonType.TRIGGER_R
+ KeyEvent.KEYCODE_BUTTON_L2 -> NativeLibrary.ButtonType.TRIGGER_ZL
+ KeyEvent.KEYCODE_BUTTON_R2 -> NativeLibrary.ButtonType.TRIGGER_ZR
+ KeyEvent.KEYCODE_BUTTON_THUMBL -> NativeLibrary.ButtonType.STICK_L
+ KeyEvent.KEYCODE_BUTTON_THUMBR -> NativeLibrary.ButtonType.STICK_R
+ KeyEvent.KEYCODE_BUTTON_START -> NativeLibrary.ButtonType.BUTTON_PLUS
+ KeyEvent.KEYCODE_BUTTON_SELECT -> NativeLibrary.ButtonType.BUTTON_MINUS
+ else -> -1
+ }
+ }
+
private fun getInputGenericButtonKey(key: Int): Int {
return when (key) {
KeyEvent.KEYCODE_BUTTON_A -> NativeLibrary.ButtonType.BUTTON_A
--
cgit v1.2.3