DS-Homebrew/TWiLightMenu

GitHub: DS-Homebrew/TWiLightMenu

一款适用于 Nintendo DS/DSi/3DS/2DS 的开源系统菜单替代软件,支持在统一界面下运行多种格式的游戏 ROM。

Stars: 4011 | Forks: 218


GBAtemp Thread Discord Server Build status on GitHub Actions Localized on Crowdin

**TW**i**L**ight Menu++ 是一款开源的 DSi Menu 升级/替代软件,适用于 Nintendo DSi、Nintendo 3DS 以及 Nintendo DS 烧录卡。 它可以运行 Nintendo DS、Nintendo DSi 和 GameBoy Advance 游戏,以及 DSTWO 插件(如果您使用的是 DSTWO)。 # 附加组件 **TW**i**L**ight Menu++ 可以添加更多额外功能。详情请参阅[此页面](https://wiki.ds-homebrew.com/twilightmenu/installing-addons)。 # 编译 ## 环境配置 编译此应用需要 devkitPro 的 devkitARM、libnds、grit 和 mmutil。这些可以通过 [devkitPro pacman](https://devkitpro.org/wiki/devkitPro_pacman) 使用以下命令进行安装: ``` sudo dkp-pacman -S nds-dev ``` (注意:具体命令会因操作系统而异,可能不需要 sudo,也可能只需使用 `pacman` 即可。) ## 克隆仓库 该仓库包含子模块,因此您需要递归克隆: ``` git clone --recursive https://github.com/DS-Homebrew/TWiLightMenu.git ``` 如果您在克隆时未拉取子模块,可以随后进行更新: ``` git submodule update --init --recursive ``` ## 构建 安装好 devkitPro 的工具链后,只需在仓库根目录下运行 `make package`,即可构建整个 TWiLight Menu++。如果您只想构建 TWiLight Menu++ 的特定部分,可以 `cd` 切换到该文件夹并运行 `make dist`。 构建完成后,输出文件将位于 `7zfile` 文件夹中,其目录结构与官方的 `TWiLightMenu.7z` 构建版本相同。 ## 使用 Docker 使用包含的 [Docker](https://docker.com) 镜像,您可以轻松编译 TWiLight Menu++,而无需通过提供的 PowerShell (`.ps1`) 脚本手动设置所需版本的 devkitARM。 该脚本也接受 `make` 参数。例如,`.\compile_docker.ps1 clean` 将清除所有已编译代码的目录。如果您想构建所有产物,请运行 `.\compile_docker.ps1 package`。 请注意,Docker 编译与 Windows 上的原生编译不兼容。在尝试使用 Docker 进行构建之前,您应该运行 `.\compile_docker.ps1 clean` 来清除已生成的产物。如果出现要求您共享驱动器的通知,您必须选择启用驱动器共享,Docker 才能在 Windows 上正常运行。 ## 手册页面 手册页面存储在单独的仓库中,并在构建 TWiLight Menu++ 时从发布版本中下载。有关更多信息,请参阅 [twilight-manual](https://github.com/DS-Homebrew/twilight-manual) 仓库。 ## 子文件夹 TWiLight Menu++ 由多个“子项目”组成,这些项目协同工作以创建 DSi Menu 的替代品。仓库中的大多数子文件夹都包含各自的代码,这些代码将编译生成一个 `xxx.nds` 文件,该文件通常会被复制到 `7z` 文件(或 `7zfile` 文件夹)内的 `/_nds/TWiLightMenu/xxx.srldr` 路径下。 - **3dssplash**:打开 3ds 和 cia 文件 (?) - 编译为 `/_nds/TWiLightMenu/3dssplash.srldr` - **booter**:主入口点,使用 SD 卡或 CFW 时主机加载的第一个文件 - 生成 `/BOOT.nds` 和 `/title/00030004/53524c41/content/00000000.app`(相同的文件)。 - **booter_fc**:烧录卡的主入口点 - 生成 `_DS_MENU.dat`、`dsedgei.dat`、`akmenu4.nds`、`_DSMENU.nds`、`SCFW.SC` 等。 - gbapatcher - **imageview**:类似于 DSi 相机的图像查看器(gif、png、bmp)(多媒体附加组件的一部分) - `/_nds/TWiLightMenu/imageview.srldr` - **manual**:TWiLight Menu++ 的使用说明手册 - 生成 `/_nds/TWiLightMenu/manual.srldr` - **quickmenu**:DS Lite 菜单,经典的旧版 UI - 生成 `/_nds/TWiLightMenu/mainmenu.srldr` - **romsel_aktheme**:Wood UI 菜单 - 生成 `/_nds/TWiLightMenu/akmenu.srldr` - **romsel_dsimenutheme**:“Nintendo DSi”、“Nintendo 3DS”、“SEGA Saturn”和“Homebrew Launcher” UI 的菜单 - 生成 `/_nds/TWiLightMenu/dsimenu.srldr` - **romsel_r4theme**:“R4 Original”和“Gameboy Color” UI 的菜单 - 生成 `/_nds/TWiLightMenu/r4menu.srldr` - **settings**:设置菜单 - 生成 `/_nds/TWiLightMenu/settings.srldr` - **slot1launch**: - 生成 `/_nds/TWiLightMenu/slot1launch.srldr` - **title**:开机启动画面(默认为 Nintendo logo) - 生成 `/_nds/TWiLightMenu/main.srldr` # 翻译 您可以在 [Crowdin 项目](https://crowdin.com/project/TwilightMenu)上协助翻译 TWiLight Menu++。如果您希望添加对新语言的支持,请在 [Discord 服务器](https://ds-homebrew.com/discord)上提出申请。 ## 其他 - [ahezard](https://github.com/ahezard):来自 nds-bootstrap 的 NDMA 代码 - Another World & Yellow Wood Goblin:原始的 akMenu/Wood UI - [Rocket Robz](https://github.com/RocketRobz):使用部分移植的原始代码重新开发了 Wood UI - [Arisotura](https://github.com/Arisotura):来自 melonDS 的 ROM 列表,以及来自 [dsibiosdumper](https://github.com/Arisotura/dsibiosdumper) 的 BIOS dumper 代码 - [Dartz150](https://github.com/Dartz150):提供了对 GBA 游戏*Iridion II* & *Top Gun: Combat Zones* 的修复 - [devkitPro](https://github.com/devkitPro):在 nds-hb-menu 中使用的代码,以及 bootloader、devkitARM、libnds 和 libfat 的使用 - [edo9300](https://github.com/edo9300):DS Phat 检测代码 - [Gericom](https://github.com/Gericom):来自 [FastVideoDSPlayer](https://github.com/Gericom/FastVideoDSPlayer) 的帧率调整代码,用于 TWLMenu++ 启动画面 - [Gericom](https://github.com/Gericom)、TrolleyDave 和 FAST6191:GBA SRAM 补丁代码,用于 gbapatcher([GBAtemp 上的 SRAM 补丁讨论帖](https://gbatemp.net/threads/reverse-engineering-gba-patching.60168/)) - [Gericom](https://github.com/Gericom) & [profi200](https://github.com/profi200):GBA 颜色校正代码,用于 [GBARunner3](https://github.com/Gericom/GBARunner3) - Nikokaro:找到了《WarioWare: Twisted!》和《Yoshi Topsy-Turvy》的无重力感应补丁。([GBAtemp 讨论帖](https://gbatemp.net/threads/gba-no-tilt-patches-for-ds-users.584128/)) - [Lorenzooone](https://github.com/Lorenzooone):改进了 Slot-1 启动器,并添加了在 DSi 模式下启动 DSi-Enhanced/Exclusive 游戏卡带的支持 - [profi200](https://github.com/profi200):来自 fastboot3DS 的改进版 SD 代码 - RadDude McCoolguy、fintogive、KazoWAR、Vague Rant、[gamemasterplc](https://github.com/gamemasterplc)、[Rocket Robz](https://github.com/RocketRobz)、[ChampionLeake](https://github.com/ChampionLeake)、[DeadSkullzJr](https://github.com/DeadSkullzJr)、[spellboundtriangle](https://github.com/spellboundtriangle)、[LedyBacer](https://github.com/LedyBacer):宽屏作弊码 - [SNBeast](https://github.com/SNBeast):Unlaunch 补丁 - Taiju Yamada:用于绕过 R4i-SDHC 启动文件保护的代码 ## 译者 - 阿拉伯语:[Ken Brown](https://crowdin.com/profile/kenkenkenneth)、[SLG3](https://crowdin.com/profile/slg3) - 保加利亚语:[Peter0x44](https://github.com/Peter0x44)、[Tescu](https://crowdin.com/profile/tescu48) - 加泰罗尼亚语: - 简体中文:[cai_miao](https://crowdin.com/profile/cai_miao)、[Chris](https://crowdin.com/profile/z0287yyy)、[Forbidden](https://crowdin.com/profile/Origami)、[James-Makoto](https://crowdin.com/profile/VCMOD55)、[R-YaTian](https://github.com/R-YaTian)、[Yukino Song](https://crowdin.com/profile/ClassicOldSong)、[曾国立](https://crowdin.com/profile/notthingtosay)、[天天地地人人](https://crowdin.com/profile/realworld)、[百地 希留耶](https://crowdin.com/profile/FIve201) - 繁体中文:[cai_miao](https://crowdin.com/profile/cai_miao)、[ccccchoho](https://crowdin.com/profile/ccccchoho)、[James-Makoto](https://crowdin.com/profile/VCMOD55)、[Rintim](https://crowdin.com/profile/Rintim)、[奇诺比奥](https://crowdin.com/profile/Counta6_233) - 捷克语:[Štěpán Dolský](https://crowdin.com/profile/dolskystepa) - 丹麦语:[jonata](https://github.com/Jonatan6)、[Michael Millet](https://crowdin.com/profile/duroluro)、[Nadia Pedersen](https://crowdin.com/profile/nadiaholmquist) - 荷兰语:[Arthur](https://crowdin.com/profile/arthurr2014.tl)、[guusbuk](https://crowdin.com/profile/guusbuk)、[Mikosu](https://crowdin.com/profile/miko303)、[Minionguyjpro](https://crowdin.com/profile/minionguyjpro)、[Xtremegamer007](https://crowdin.com/profile/xtremegamer007) - 法语:[Arcky](https://github.com/ArckyTV)、[cooolgamer](https://crowdin.com/profile/cooolgamer)、[Dhalian](https://crowdin.com/profile/DHALiaN3630)、[maximesharp](https://crowdin.com/profile/maximesharp)、[Ghost0159](https://crowdin.com/profile/Ghost0159)、[Léo](https://crowdin.com/profile/leeo97one)、[LinuxCat](https://github.com/LinUwUxCat)、[Martinez](https://github.com/flutterbrony)、[NightScript](https://github.com/NightScript370)、[SLG3](https://crowdin.com/profile/slg3)、[SombrAbsol](https://crowdin.com/profile/sombrabsol)、[TM-47](https://crowdin.com/profile/-tm-)、[Yolopix](https://crowdin.com/profile/yolopix) - 德语:[ariebe9115](https://crowdin.com/profile/ariebe9115)、[Blurry Knight](https://crowdin.com/profile/blurryknight)、[Christian Schuhmann](https://github.com/c-schuhmann)、[Dubsenbert Reaches](https://crowdin.com/profile/Bierjunge)、[Fırat Tay](https://crowdin.com/profile/paradox-)、[hehe](https://crowdin.com/profile/znime)、[İlke Hür Eyiol](https://crowdin.com/profile/ilkecan51)、[Julian](https://crowdin.com/profile/nailujx86)、[Kazuto](https://crowdin.com/profile/Marcmario)、[malekairmaroc7](https://github.com/malekairmaroc7)、[Michael Brey](https://crowdin.com/profile/xxmichibxx)、[Oleh Hatsenko](https://github.com/IRONKAGE)、[SkilLP](https://github.com/SkilLP)、[SuperSaiyajinStackZ](https://github.com/SuperSaiyajinStackZ)、[Tcm0](https://github.com/Tcm0)、[TheDude](https://crowdin.com/profile/the6771)、[TM-47](https://crowdin.com/profile/-tm-)、[Uriki](https://github.com/Uriki) - 希腊语:[Anestis1403](https://crowdin.com/profile/anestis1403) - 希伯来语:[Barawer](https://crowdin.com/profile/barawer)、[Yaniv Levin](https://crowdin.com/profile/y4niv) - 匈牙利语:[Viktor Varga](http://github.com/vargaviktor)、[ハトヴィング -- ハット](https://crowdin.com/profile/hatoving) - 印尼语:[Cyruz Wings](https://crowdin.com/profile/cyruzwings)、[Farid Irwan](https://crowdin.com/profile/farid1991)、[heydootdoot](https://crowdin.com/profile/heydootdoot)、[Shiori](https://crowdin.com/profile/egoistamamono) - 意大利语:[Alessandro Tavolieri](https://crowdin.com/profile/ale2197)、[Leonardo Ledda](https://github.com/LeddaZ)、[Mattia](https://crowdin.com/profile/mattiau59)、[TM-47](https://crowdin.com/profile/-tm-)、[Vendicatorealato](https://crowdin.com/profile/vendicatorealato)、[xavimel](https://github.com/xavimel) - 日语:[Chromaryu](https://crowdin.com/profile/knight-ryu12)、[inucat](https://crowdin.com/profile/inucat)、[Pk11](https://github.com/Epicpkmn11)、[kuragehime](https://crowdin.com/profile/kuragehimekurara1)、[rinrinrin2002](https://crowdin.com/profile/rinrinrin2002)、[Rintim](https://crowdin.com/profile/Rintim)、[Ronny Chan](https://github.com/chyyran)、[Uriki](https://github.com/Uriki) - 韩语:[DDinghoya](https://crowdin.com/profile/ddinghoya)、[lifehackerhol](https://github.com/lifehackerhansol)、[I'm Not Cry](https://crowdin.com/profile/cryental)、[Myebyeol_NOTE](https://crowdin.com/profile/groovy-mint)、[Oleh Hatsenko](https://github.com/IRONKAGE)、[그그기그](https://crowdin.com/profile/gigueguegue0803) - 挪威语:[Nullified Block](https://crowdin.com/profile/elasderas123) - 波兰语:[Avginike](https://crowdin.com/profile/avginike)、[gierkowiec tv](https://crowdin.com/profile/krystianbederz)、[Kipi000](https://crowdin.com/profile/kipi000)、[Konrad Borowski](https://crowdin.com/profile/xfix)、[MaksCROWDIN0](https://crowdin.com/profile/makscrowdin0)、[Mateusz Tobiasz](https://crowdin.com/profile/tobiaszmateusz)、[Michał Słonina](https://crowdin.com/profile/badis_)、[RedstonekPL](https://crowdin.com/profile/redstonekpl)、[TheCasachii](https://crowdin.com/profile/thecasachii) - 葡萄牙语(巴西):[César Memère](https://crowdin.com/profile/blueo110)、[Jeff Sousa](https://crowdin.com/profile/lordeilluminati)、[themasterf](https://crowdin.com/profile/themasterf)、[Victor Coronado](https://crowdin.com/profile/raulcoronado) - 葡萄牙语(葡萄牙):[bruwyvn](https://crowdin.com/profile/bruwyvn)、[Christopher Rodrigues](https://crowdin.com/profile/chrismr197)、[Gabz Almeida](https://crowdin.com/profile/connwcted)、[jim](https://crowdin.com/profile/hnrwx)、[joyrv](https://crowdin.com/profile/joyrv)、[leteka 1234](https://crowdin.com/profile/Leaqua21)、[Rodrigo Tavares](https://crowdin.com/profile/rodrigodst)、[Tiago Silva](https://crowdin.com/profile/TheGameratorT)、[Wodson de Andrade](https://crowdin.com/profile/CaptainCheep)、[Wodson de Andrade](https://crowdin.com/profile/WodsonKun)、[Zak](https://github.com/zekroman) - 罗马尼亚语:[Tescu](https://crowdin.com/profile/tescu48) - 俄语:[Alexey Barsukov](https://crowdin.com/profile/lps)、[Ckau](https://crowdin.com/profile/Ckau)、[manwithnoface](https://github.com/1upus)、[mbhz](https://github.com/mbhz)、[MMR Marler](https://crowdin.com/profile/bessmertnyi_mikhail)、[Nikita](https://crowdin.com/profile/bacer)、[Молодая Кукуруза](https://crowdin.com/profile/bessmertnyi_mikhail) - 琉球语:[kuragehime](https://crowdin.com/profile/kuragehimekurara1) - 西班牙语:[Adrin Ramen](https://crowdin.com/profile/adiiramen)、[Adrian Rodriguez](https://crowdin.com/profile/ar9555997)、[Allinxter](https://crowdin.com/profile/allinxter)、[beta215](https://crowdin.com/profile/beta215)、[ccccmark](https://github.com/ccccmark)、[dimateos](https://crowdin.com/profile/dimateos)、[Kaede159](https://crowdin.com/profile/daemo159)、[KplyAsteroid](https://crowdin.com/profile/KplyAsteroid)、[mschifino](https://crowdin.com/profile/mschifino)、[Nicolás Herrera Concha](https://crowdin.com/profile/noname141203)、[Nintendo R](https://crowdin.com/profile/nintendor)、[nuxa17](https://twitter.com/TimeLordJean)、[Radriant](https://crowdin.com/profile/radriant)、[SofyUchiha](https://crowdin.com/profile/sofyuchiha)、[TM-47](https://crowdin.com/profile/-tm-)、[Uriki](https://github.com/Uriki)、[XxPhoenix1996xX](https://github.com/XxPhoenix1996xX) - 瑞典语:[Max Hambraeus](https://github.com/maxhambraeus)、[Nullified Block](https://crowdin.com/profile/elasderas123)、[TM-47](https://crowdin.com/profile/-tm-)、[Victor Ahlin](https://crowdin.com/profile/VSwede)、[Walter Lindell](https://crowdin.com/profile/walter.lindell) - 土耳其语:[Alp](https://crowdin.com/profile/alpcinar)、[Egehan.TWL](https://crowdin.com/profile/egehan.twl)、[Emir](https://crowdin.com/profile/dirt3009)、[GlideGuy06](https://crowdin.com/profile/glideguy06)、[Grandmaquil](https://crowdin.com/profile/grandmaquil)、[imbeegboi22](https://crowdin.com/profile/imbeegboi22)、[İlke Hür Eyiol](https://crowdin.com/profile/ilkecan51)、[rewix32](https://crowdin.com/profile/rewix32)、[rewold20](https://crowdin.com/profile/rewold20)、[Yağmur Celep](https://crowdin.com/profile/FixingCarp) - 乌克兰语:[Oleh Hatsenko](https://github.com/IRONKAGE)、[Mykola Pukhalskyi](https://crowdin.com/profile/sensetivity)、[TM-47](https://crowdin.com/profile/-tm-)、[вухаста гітара](https://crowdin.com/profile/earedguitr) - 瓦伦西亚语:[tsolo](https://crowdin.com/profile/tsolo) - 越南语:[Chử Tiến Bình](https://crowdin.com/profile/okabe_zero-link)、[daicahuyoi](https://crowdin.com/profile/daicahuyoi) [Đỗ Minh Hiếu](https://crowdin.com/profile/hieu2097)、[hotungkhanh](https://crowdin.com/profile/hotungkhanh)、[Trương Hồng Sơn](https://crowdin.com/profile/truonghongson2005)
标签:AI合规, C/C++, DS/3DS, UML, 事务性I/O, 任天堂, 掌机, 烧录卡, 系统菜单, 自制软件, 请求拦截