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就不会是什么。我们要特别感谢: