Nintendo 3DS“自定義固件”
Luma3ds補丁和重新實現系統軟件的重要部分,該組件的所有型號都在組件的所有型號上運行。它旨在極大地改善用戶體驗,並為遠遠超出其壽命的3DS支持。功能包括:
Luma3ds需要boot9strap運行。
安裝了Boot9Strap後,只需下載最新版本的存檔,然後將存檔提取到SD卡的根部“安裝”或與Homebrew菜單一起升級Luma3ds,並用它的CERTS BUNDLE BUNDELS。替換現有文件,並在必要時合併現有文件夾。
可以通過按下啟動時訪問主Luma3ds配置菜單。配置文件存儲在SD卡上的/luma/config.ini
中(如果從ctrnand分區啟動了luma3ds,則在ctrnand分區上存儲(or /rw/luma/config.ini
),當時會在SD卡丟失時發生這種情況)。
通過按下啟動或從“配置”菜單訪問鏈條菜單。有效載荷預計將以。 .firm
擴展為/luma/payloads
;如果只有一個這樣的有效載荷,則將跳過上述選擇菜單。 Hotkeys可以分配給有效負載,例如x_test.firm
將在啟動時按下X時鏈中負載。
覆蓋菜單Rosalina具有默認按鈕組合: L+Down+Select 。為了獲得更大的靈活性,大多數Rosalina菜單設置不會自動保存,因此“保存設置”選項。
啟用GDB端口時,普通端口為4000-4002
。支持和鼓勵使用“擴展記錄”模式的attach
以及info os processes
(用於反向工程,還可以查看monitor getmemregions
)。啟動突破性功能的端口為4003
而沒有“擴展記錄”。 devkitarm-patch的GDB和IDA Pro(無啟用“啟用腳步支持”)都得到了積極支持。
我們有一個Wiki,但是目前已經過時了。
Luma3ds由多個組件組成。儘管每個組件中的代碼樣式大多是一致的,但這些組件已經編寫了多年,並且可能無法反映維護者如何在新組件/項目中編寫新代碼:
Process9
代碼並註入所有其他自定義組件。這是2015年為該項目編寫的第一個組成部分NATIVE_FIRM
內核( Kernel11
)的代碼。它是通過掛接其啟動代碼,然後將自己掛接到其餘內核中的上述Baremetal Loader將其註入內核中的。它的功能包括掛鉤系統調用(SVC),引入新的SVC並掛接到Intercess Communications中,以繞過Nintendo的系統設計中的限制。例如,這是允許Rosalina在覆蓋菜單條目上暫停其他進程的組件。這是在我們沒有完全反向工程內核的時候寫的,最初是在2017年與Rosalina一起發行的。 2023年合併了“遊戲插件”支持的其他掛鉤err:f
(致命錯誤屏幕)重新進化等等。於2017年中引入,自那以後不斷發生變化,並獲得了許多外部貢獻loader
加載它們。重新實現允許在Rosalina中進行突破性的GDB功能,並以適當的方式提升FS訪問控制限制。於2019年推出LUMA3DS計劃還計劃了更多功能和合併!這是當前商店中的清單:
TwlBg
和AgbBg
的全面重新進化。這將使DS和GBA遊戲中的頂部屏幕(在Old 2DS上除外)中的頂部屏幕更好,更可以配置。目前,這是在C ++ 23(NO ETA)中私下發展的。雖然這是一項艱鉅的努力,因為這需要重寫半鍍金(沒有IPC的內核有限的內核),但這是Luma3ds擁有的最關鍵功能TWL_FIRM
和AGB_FIRM
的Process9
的重新實現,以允許在DS和GBA兼容模式中提供更多功能(需要文件訪問的功能)Kernel11
重新實現Kernel11
中有一個競賽條件,這與將新的KDebugThread
有關在線程創建上的KThread
以及另一個線程null-deerectrencing thread->debugThread
上都存在。這會導致作弊引擎崩潰,這些遊戲一直在創建和銷毀許多線程(例如神奇寶貝)。Kernel11
重新完成。要構建LUMA3DS,需要以下內容:
$PATH
dkp-pacman
(或者,對於已經提供PACMAN的發行版,請添加存儲庫):https://devkitpro.org/wiki/devkitpro_pacman3ds-dev
METAPACKAGE安裝包裝: sudo dkp-pacman -S 3ds-dev --needed
雖然Luma3ds發布與3ds-hbmenu
捆綁在一起,但Luma3ds實際上將其編譯為一個文件: boot.firm
。只需將其複製到SD卡的根部(FTPD是最簡單的方法),就完成了。
該軟件已根據GPLV3的條款許可。您可以在許可證文件中找到許可證的副本。
相反,GDB存根中的文件被三重許可為MIT或“ GPLV2或任何後期版本”,在這種情況下,它在文件標頭中指定。 PM,SM,PXI重新實現也在MIT下許可。
沒有許多人的貢獻和建設性反饋,Luma3ds就不會是什麼。我們要特別感謝: