Nintendo 3DS "Firmware Kustom"
LUMA3DS menambal dan mengimplementasikan kembali bagian -bagian penting dari perangkat lunak sistem yang berjalan pada semua model keluarga konsol Nintendo 3DS. Ini bertujuan untuk sangat meningkatkan pengalaman pengguna dan mendukung 3DS jauh melampaui kehidupannya. Fitur meliputi:
LUMA3DS membutuhkan boot9strap untuk dijalankan.
Setelah boot9strap telah diinstal, cukup unduh arsip rilis terbaru dan ekstrak arsip ke akar kartu SD Anda untuk "menginstal" atau untuk meningkatkan luma3ds di samping menu homebrew dan bundel sertifikat dikirim dengannya. Ganti file yang ada dan gabungkan folder yang ada jika perlu.
Menu konfigurasi LUMA3DS utama dapat diakses dengan menekan SELECT saat boot. File konfigurasi disimpan di /luma/config.ini
pada kartu SD (atau /rw/luma/config.ini
pada partisi Ctrnand jika Luma3DS telah diluncurkan dari partisi CTRNAND, yang terjadi ketika kartu SD hilang).
Menu ChainLoader diakses dengan menekan start saat boot, atau dari menu konfigurasi. Payload diharapkan berlokasi di /luma/payloads
dengan ekstensi .firm
; Jika hanya ada satu muatan seperti itu, menu pilihan di atas akan dilewati. Hotkeys dapat ditugaskan ke muatan, misalnya x_test.firm
akan dianek ketika x ditekan saat boot.
Menu overlay, Rosalina , memiliki kombinasi tombol default: L+Down+SELECT . Untuk flexbility yang lebih besar, sebagian besar pengaturan menu Rosalina tidak disimpan secara otomatis, maka opsi "Simpan Pengaturan".
Port GDB , saat diaktifkan, adalah 4000-4002
untuk port normal. Penggunaan attach
dalam Mode "Extended-Remote", di samping info os processes
didukung dan didorong (untuk rekayasa balik, juga periksa monitor getmemregions
). Port untuk fitur Break-on-Start adalah 4003
tanpa "Extended-Remote". Kedua GDB dan IDA Pro yang ditampilkan devkyararm (tanpa "dukungan loncatan" diaktifkan) didukung secara aktif.
Kami memiliki wiki, namun saat ini sangat usang.
LUMA3DS terdiri dari beberapa komponen. Sementara gaya kode dalam setiap komponen sebagian besar konsisten, komponen -komponen ini telah ditulis selama bertahun -tahun dan mungkin tidak mencerminkan bagaimana pemelihara akan menulis kode baru dalam komponen/proyek baru:
Process9
dan untuk menyuntikkan semua komponen khusus lainnya. Ini adalah komponen pertama yang pernah ditulis untuk proyek ini, pada tahun 2015NATIVE_FIRM
( Kernel11
). Ini disuntikkan oleh loader baremetal yang disebutkan di atas ke dalam kernel dengan mengaitkan kode startupnya, kemudian mengaitkan dirinya ke seluruh kernel. Fitur -fiturnya termasuk Hooking System Calls (SVCS), memperkenalkan SVC baru dan mengaitkan ke dalam komunikasi interproses, untuk memotong keterbatasan dalam desain sistem Nintendo. Ini adalah komponen yang memungkinkan Rosalina untuk menjeda proses lain pada entri menu overlay, misalnya. Ini ditulis pada saat kami tidak sepenuhnya merekayasa kernel, dan awalnya dirilis pada 2017 bersama Rosalina. Pengait lebih lanjut untuk dukungan "plugin game" telah digabungkan pada tahun 2023err:f
(Layar Kesalahan Fatal) Implementasi, dan banyak lagi. Diperkenalkan pada pertengahan 2017, dan terus mengalami perubahan dan menerima banyak kontribusi eksternal sejak ituloader
untuk memuatnya. Reimplemen ini memungkinkan fitur GDB break-on-start di Rosalina, serta mengangkat pembatasan kontrol akses FS dengan cara yang tepat. Diperkenalkan pada 2019 Masih ada lebih banyak fitur dan konsolidasi yang direncanakan untuk luma3DS! Berikut adalah daftar apa yang saat ini ada di toko:
TwlBg
dan AgbBg
. Ini akan memungkinkan jauh lebih baik, dan lebih dapat dikonfigurasi, naik untuk layar atas di game DS dan GBA (kecuali pada 2DS lama). Ini saat ini sedang dikembangkan secara pribadi di C ++ 23 (tidak ada ETA). Meskipun ini merupakan upaya yang cukup sulit karena ini membutuhkan penulisan ulang seluruh tumpukan pengemudi di semi-bar (kernel terbatas tanpa IPC), ini adalah fitur paling kritis untuk dimiliki Luma3DS dan akan membuat pengunduran diri Sysmodule pengemudi ulang sepele driverProcess9
untuk TWL_FIRM
DAN AGB_FIRM
untuk memungkinkan lebih banyak fitur dalam mode kompatibilitas DS dan GBA (yang memerlukan akses file)Kernel11
lengkap Kernel11
Nintendo yang berkaitan dengan melampirkan KDebugThread
baru ke KThread
pada penciptaan utas, dan utas lain yang merosotkan thread->debugThread
. Ini menyebabkan mesin cheat crash crash yang membuat dan menghancurkan banyak utas sepanjang waktu (seperti Pokémon).Kernel11
disimpulkan.Untuk membangun luma3ds, berikut ini diperlukan:
$PATH
dkp-pacman
(atau, untuk distribusi yang sudah menyediakan Pacman, tambahkan repositori): https://devkitpro.org/wiki/devkitpro_pacman3ds-dev
Metapackage: sudo dkp-pacman -S 3ds-dev --needed
Sementara rilis LUMA3DS dibundel dengan 3ds-hbmenu
, LUMA3DS sebenarnya dikompilasi menjadi satu file tunggal: boot.firm
. Cukup salin ke akar kartu SD Anda (FTPD adalah cara termudah untuk melakukannya), dan Anda selesai.
Perangkat lunak ini dilisensikan berdasarkan ketentuan GPLV3. Anda dapat menemukan salinan lisensi di file lisensi.txt.
File dalam rintisan GDB sebaliknya dilisensikan triple sebagai MIT atau "GPLV2 atau versi selanjutnya", dalam hal ini ditentukan dalam header file. PM, SM, reimplementasi PXI juga dilisensikan di bawah MIT.
LUMA3DS tidak akan menjadi apa adanya tanpa kontribusi dan umpan balik konstruktif banyak orang. Kami ingin berterima kasih khususnya: