Nintendo 3DS "البرامج الثابتة المخصصة"
تصحيحات LUMA3DS وإعادة تنفيذ أجزاء مهمة من برنامج النظام تعمل على جميع طرز عائلة Nintendo 3DS من لوحات المفاتيح. ويهدف إلى تحسين تجربة المستخدم بشكل كبير ودعم 3DS إلى ما هو أبعد من نهاية العمر. تشمل الميزات:
يتطلب LUMA3DS BOOT9STRAP لتشغيله.
بمجرد تثبيت Boot9Strap ، ما عليك سوى تنزيل أحدث أرشيف الإصدار واستخراج الأرشيف على جذر بطاقة SD الخاصة بك إلى "تثبيت" أو لترقية Luma3ds إلى جانب القائمة الرئيسية وشحن حزمة Certs معها. استبدل الملفات الموجودة ودمج المجلدات الموجودة إذا لزم الأمر.
يمكن الوصول إلى قائمة تكوين LUMA3DS الرئيسية عن طريق الضغط على SELECT AT BOOT. يتم تخزين ملف التكوين في /luma/config.ini
على بطاقة SD (أو /rw/luma/config.ini
على قسم Ctrnand إذا تم إطلاق Luma3DS من قسم Ctrnand ، والذي يحدث عندما تكون بطاقة SD مفقودة).
يتم الوصول إلى قائمة Sainloader عن طريق الضغط على START في التمهيد ، أو من قائمة التكوين. من المتوقع أن تكون الحمولة في /luma/payloads
مع ملحق .firm
؛ إذا لم يكن هناك سوى حمولة واحدة من هذا القبيل ، فسيتم تخطي قائمة الاختيار المذكورة أعلاه. يمكن تعيين مفاتيح hotkeys إلى الحمولة ، على سبيل المثال x_test.firm
سيتم تحميلها عند الضغط على X عند التمهيد.
قائمة التراكب ، Rosalina ، لديها مزيج زر افتراضي: L+Down+SELECT . للحصول على قدر أكبر من المرونة ، لا يتم حفظ معظم إعدادات قائمة Rosalina تلقائيًا ، وبالتالي خيار "حفظ الإعدادات".
منافذ GDB ، عند تمكينها ، هي 4000-4002
للمنافذ العادية. استخدام attach
في وضع "Remote" ، إلى جانب info os processes
يتم دعمها وتشجيعها (من أجل الهندسة العكسية ، تحقق أيضًا من monitor getmemregions
). ميناء ميزة Break-On-Start هو 4003
بدون "Remote الموسعة". يتم دعم كل من GDB و IDA Pro المحصور Devkitarm (دون دعم "STEPPING" الممكّن) بشكل نشط.
لدينا ويكي ، ومع ذلك فهي قديمة للغاية حاليًا.
يتكون LUMA3DS من مكونات متعددة. على الرغم من أن نمط الكود داخل كل مكون متسق في الغالب ، فقد تمت كتابة هذه المكونات على مدار سنوات عديدة وقد لا تعكس كيفية كتابة المشرفين عن رمز جديد في مكونات/مشاريع جديدة:
Process9
ولضخ جميع المكونات المخصصة الأخرى. كان هذا أول مكون مكتوب على الإطلاق لهذا المشروع ، في عام 2015NATIVE_FIRM
kernel ( Kernel11
). يتم حقنه بواسطة اللودر الباريمي المذكور أعلاه في kernel عن طريق تثبيت رمز بدء التشغيل الخاص به ، ثم يربط نفسه في بقية النواة. تشمل ميزاتها ربط مكالمات النظام (SVCs) ، وتقديم SVCs جديدة والتواصل في اتصالات Interprocess ، لتجاوز القيود في تصميم نظام Nintendo. هذا هو المكون الذي يسمح لـ Rosalina بإيقاف عمليات أخرى على إدخال قائمة التراكب ، على سبيل المثال. تمت كتابة هذا في وقت لم نقم فيه بتصنيع kernel ، وتم إصداره في الأصل في عام 2017 إلى جانب Rosalina. تم دمج المزيد من السنانير لدعم "البرنامج المساعد" في عام 2023err:f
(شاشة الخطأ المميتة) إعادة تنفيذ ، وأكثر من ذلك بكثير. تم تقديمه في منتصف عام 2017 ، وقد خضع بشكل مستمر لتغييرات وتلقى العديد من المساهمات الخارجية منذ ذلك الحينloader
لتحميلها. يتيح إعادة تخصيص ميزة GDB عملية التشغيل في Rosalina ، بالإضافة إلى رفع قيود التحكم في الوصول إلى FS بالطريقة المناسبة. تم تقديمه في عام 2019 لا يزال هناك الكثير من الميزات والتوحيد المخطط له ل LUMA3DS! فيما يلي قائمة بما هو موجود حاليًا:
TwlBg
و AgbBg
. سيتيح ذلك زيادة أفضل بكثير وأكثر قابلية للتكوين ، في ألعاب DS و GBA (باستثناء 2DS القديمة). يتم تطوير هذا حاليًا بشكل خاص في C ++ 23 (لا ETA). على الرغم من أن هذا مسعى صعب للغاية لأن هذا يتطلب إعادة كتابة مكدس السائق بأكمله في شبه معدن (kernel محدودة بدون IPC) ، فإن هذه هي الميزة الأكثر أهمية لـ LUMA3DS التي تجعلها تثيرًا لتثبيط نظام التشغيل ، وسوف تجعل سائق Sysmodule Trivial TrivialProcess9
لـ TWL_FIRM
و AGB_FIRM
للسماح بمزيد من الميزات في وضع توافق DS و GBA (تلك التي تتطلب الوصول إلى الملف)Kernel11
الكاملة Kernel11
من Nintendo المتعلقة بتوصيل KDebugThread
جديد إلى KThread
على إنشاء مؤشر الترابط ، وخيط آخر خيط خالي من thread->debugThread
. يؤدي هذا إلى تعطل محرك الغش في الألعاب التي تخلق وتدمير العديد من الخيوط طوال الوقت (مثل بوكيمون).Kernel11
.لبناء luma3ds ، ما يلي مطلوب:
$PATH
dkp-pacman
(أو ، لتوزيعات توفر بالفعل Pacman ، إضافة مستودعات): https://devkitpro.org/wiki/DevKitpro_pacman3ds-dev
: sudo dkp-pacman -S 3ds-dev --needed
بينما يتم تجميع إصدارات LUMA3DS مع 3ds-hbmenu
، فإن LUMA3DS يجمع فعليًا في ملف واحد: boot.firm
. ما عليك سوى نسخه إلى جذر بطاقة SD الخاصة بك (FTPD هي أسهل طريقة للقيام بذلك) ، وقد انتهيت.
هذا البرنامج مرخص بموجب شروط GPLV3. يمكنك العثور على نسخة من الترخيص في ملف الترخيص.
يتم تخصيص الملفات الموجودة في كعب GDB بدلاً من معهد MIT أو "GPLv2 أو أي إصدار لاحق" ، وفي هذه الحالة يتم تحديدها في رأس الملف. PM ، SM ، تعويضات PXI مرخصة أيضًا بموجب معهد ماساتشوستس للتكنولوجيا.
لن يكون LUMA3DS ما هو عليه بدون مساهمات وردود فعل بناء للكثيرين. نود أن نشكر على وجه الخصوص: