DSi Menu replacement for DS/DSi/3DS/2DS
| Files | Last commit | Last update |
|---|---|---|
| 3 months ago | ||
| 3 years ago | ||
| 1 year ago | ||
| 3 months ago | ||
| 1 year ago | ||
| 12 days ago | ||
| 12 days ago | ||
| 16 days ago | ||
| 12 days ago | ||
| 12 days ago | ||
| 10 days ago | ||
| 10 months ago | ||
| 10 days ago | ||
| 10 days ago | ||
| 10 days ago | ||
| 12 days ago | ||
| 12 days ago | ||
| 10 days ago | ||
| 6 days ago | ||
| 5 months ago | ||
| 1 year ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 3 months ago | ||
| 1 year ago | ||
| 6 years ago | ||
| 1 year ago | ||
| 12 days ago | ||
| 4 years ago | ||
| 4 years ago | ||
| 6 years ago | ||
| 6 years ago | ||
| 6 years ago | ||
| 4 years ago | ||
| 6 years ago | ||
| 9 months ago | ||
| 1 year ago | ||
| 1 year ago | ||
| 1 year ago | ||
| 3 years ago |
TWiLight Menu++ 是一款面向任天堂 DSi、任天堂 3DS 和任天堂 DS 烧录卡的开源 DSi 菜单升级/替换方案。 它可运行任天堂 DS、任天堂 DSi 和 GameBoy Advance 游戏,并支持 DSTWO 插件(如果你使用 DSTWO)。
附加组件
可额外为 TWiLight Menu++ 添加更多功能。详细信息请参见此页面。
编译
环境配置
编译此应用需要 devkitPro 的 devkitARM、libnds、grit 和 mmutil。这些工具可通过 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
Building
安装好 devkitPro 工具链后,只需在仓库根目录运行 make package,即可构建整个 TWiLight Menu++。如果你只想构建 TWiLight Menu++ 的特定部分,可以 cd 到对应文件夹并运行 make dist。
构建完成后,输出文件会位于 7zfile 文件夹中,其目录结构与官方 TWiLightMenu.7z 构建保持一致。
Using Docker
使用自带的 Docker 镜像,你可以轻松编译 TWiLight Menu++,无需手动配置所需的 devkitARM 版本,直接使用提供的 PowerShell(.ps1)脚本即可。
该脚本也接受 make 参数。例如,.\compile_docker.ps1 clean 会清理所有已编译代码的目录。如果你想构建所有产物,请运行 .\compile_docker.ps1 package。
请注意,Docker 编译与 Windows 上的原生编译不兼容。在尝试使用 Docker 构建之前,应运行 .\compile_docker.ps1 clean 清理构建产物。如果系统提示你共享驱动器,必须选择启用驱动器共享,Docker 才能在 Windows 上正常工作。
Manual Pages
手册页面存储在一个独立仓库中,并在构建 TWiLight Menu++ 时从发布版本中下载。更多信息,请参阅 twilight-manual 仓库。
Subfolders
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:启动画面(默认为任天堂标志)
- 生成
/_nds/TWiLightMenu/main.srldr
- 生成
翻译
欢迎在 Crowdin 项目 中协助翻译 TWiLight Menu++。若希望新增一种语言,请在 Discord 服务器 上提出请求。
致谢
主要开发者
- Rocket Robz:首席开发者
- chyyran:在重构之前,将 akMenu/Wood UI 移植至 TWiLight Menu++,并为 DSi/3DS UI 增加从 SD 卡加载主题的功能
- Pk11:为原版 R4 UI 增加从 SD 卡加载自定义主题的功能,引入排序功能,并让说明书使用 PNG 格式,优化字体渲染,为 Unlaunch 提供自定义背景,负责翻译管理,以及修复多项缺陷
次要开发者
- DieGo:新增对自定义 ROM/文件夹图标的支持,并优化自定义主题
- lifehackerhansol:改进对烧录卡自启动和内核加载的支持
- Deletecat:包含 flashcard-bootstrap 二进制的原版 R4SDHC 自启动文件
- NightScript:清理代码、制定代码规范,为 Wood UI(重构之前)新增烧录卡功能,并制作说明页面
- asiekierka:来自 nds-miniboot 的 Stargate 3DS 自启动文件
应用启动器
- ahezard、shutterbug2000 和 Rocket Robz:nds-bootstrap(用于从 SD 卡启动 Nintendo DS(i) ROM)
- Alekmaul 与 wavemotion:StellaDS、A5200DS、A7800DS、A8DS(用于启动 Atari 2600/5200/7800/XEGS ROM),以及 ColecoDS(用于启动 ColecoVision、MSX、Sord M5 和 Sega SG-1000/SC-3000 ROM)
- archiede:SNEmulDS(用于启动 SNES ROM)
- chishm:tuna-viDS(用于播放 Xvid 视频)
- Stewmath:GameYob(用于启动 Gameboy ROM)
- FluBBaOfWard:S8DS(用于启动 Sega Master System、Game Gear、SG-1000/SG-3000 和 ColecoVision ROM)、NitroGrafx(用于启动 PC Engine/TurboGrafx-16 ROM)、NitroSwan(用于启动 WonderSwan ROM),以及 NGPDS(用于启动 Neo Geo Pocket ROM)
- FluBBaOfWard、Coto 和 Loopy:nesDS(用于启动 NES ROM)
- Apache Thunder:nesDS 的 TWL Edition
- Gericom:FastVideoDSPlayer(用于启动 FastVideoDS 视频)与 GBARunner2(用于在 DS Phat/Lite 的 GBA 模式之外启动 GameBoy Advance ROM)
- therealteamplayer:为 DSi/3DS 收录的 GBARunner2 Hicode+DSP 合并构建版本
- unresolvedsymbol:为在烧录卡上运行 Pokémon: Emerald Version 而收录的 GBARunner2 rom3M+master "DSL-Enhanced" 构建版本
- Lordus:jEnesisDS(用于启动 Sega Mega Drive/Genesis ROM)
- Rocket Robz:Rocket Video Player(用于启动 RocketVideoDS 视频)
- Ryan FB、Rocket Robz 和 xonn83:PicoDriveTWL(用于启动大型 Sega Mega Drive/Genesis ROM)
- wavemotion:Nintellivision/NINTV-DS(用于启动 Intellivision ROM)与 SugarDS(用于启动 Amstrad CPC ROM)
图形与主题
- Absent-Reality: Intellivision 图标
- davi: GBC UI 边框(最初用于 GameYob)
- fail0verflow, Fluto 和 Arkhandar: 自制频道/启动器图形
- FlameKat53: DSi UI 的
SELECT菜单手册图标 - Mr. Start: 超级任天堂 DS 启动画面
- PW5190: 星之卡比主题与宝可梦日 TWLMenu++ 启动画面
- spinal_cord: DSi4DS 与 DSision2 图形
- StarvingArtist: 游戏主机图标
音乐
- BlastoiseVeteran: Nintendo DSi Shop 音乐重制版
- IkaMusumeYiyaRoxie: 通用 N64 MIDI Soundfont,用于旧版标题启动画面号角
- TeciorFILM: 用于更优质 DSi Menu 音乐附加组件的视频(10 Minutes of Nintendo DSi Menu Music (Authentic))
音效
- dbry: 来自 adpcm-xq 的 Xtreme Quality IMA-ADPCM 解码器代码。
- Firexploit: 3DS UI 音效,其中部分也用于 DSi UI。
其他
- ahezard: 来自 nds-bootstrap 的 NDMA 代码
- Another World 与 Yellow Wood Goblin: 原版 akMenu/Wood UI
- Rocket Robz: 重新开发了 Wood UI,并移植了部分原始代码
- Arisotura: 来自 melonDS 的 ROM 列表,以及来自 dsibiosdumper 的 BIOS 转储代码
- Dartz150: 提供了针对 Iridion II 与 Top Gun: Combat Zones GBA 游戏的修复
- devkitPro: 用于 nds-hb-menu 的代码,以及对 bootloader、devkitARM、libnds 和 libfat 的使用
- edo9300: DS Phat 检测代码
- Gericom, TrolleyDave 和 FAST6191: GBA SRAM 补丁代码,用于 gbapatcher(GBAtemp 上的 SRAM 补丁讨论帖)
- Gericom 与 profi200: GBA 色彩校正代码,用于 GBARunner3
- Nikokaro: 发现了 WarioWare: Twisted! 和 Yoshi Topsy-Turvy 的无倾斜补丁。(GBAtemp 讨论帖)
- Lorenzooone: 改进了 Slot-1 启动器,并新增了在 DSi 模式下启动 DSi 增强/独占游戏卡带的支持
- profi200: 来自 fastboot3DS 的改进版 SD 代码
- RadDude McCoolguy, fintogive, KazoWAR, Vague Rant, gamemasterplc, Rocket Robz, ChampionLeake, DeadSkullzJr, spellboundtriangle, LedyBacer: 宽屏金手指
- SNBeast: Unlaunch 补丁
- Taiju Yamada: 用于绕过 R4i-SDHC 启动文件保护的代码
翻译者
- 阿拉伯语: Ken Brown, SLG3
- 保加利亚语: Peter0x44, Tescu
- 加泰罗尼亚语:
- 简体中文: cai_miao, Chris, Forbidden, James-Makoto, R-YaTian, Yukino Song, 曾国立, 天天地地人人, 百地 希留耶
- 繁体中文: cai_miao, ccccchoho, James-Makoto, Rintim, 奇诺比奥
- 捷克语: Štěpán Dolský
- 丹麦语: jonata, Michael Millet, Nadia Pedersen
- 荷兰语: Arthur, guusbuk, Mikosu, Minionguyjpro, Xtremegamer007
- 法语: Arcky, cooolgamer, Dhalian, maximesharp, Ghost0159, Léo, LinuxCat, Martinez, NightScript, SLG3, SombrAbsol, TM-47, Yolopix
- 德语: ariebe9115, Blurry Knight, Christian Schuhmann, Dubsenbert Reaches, Fırat Tay, hehe, İlke Hür Eyiol, Julian, Kazuto, malekairmaroc7, Michael Brey, Oleh Hatsenko, SkilLP, SuperSaiyajinStackZ, Tcm0, TheDude, TM-47, Uriki
- 希腊语: Anestis1403
- 希伯来语: Barawer, Yaniv Levin
- 匈牙利语: Viktor Varga, ハトヴィング -- ハット
- 印度尼西亚语: Cyruz Wings, Farid Irwan, heydootdoot, Shiori
- 意大利语: Alessandro Tavolieri, Leonardo Ledda, Mattia, TM-47, Vendicatorealato, xavimel
- 日语: Chromaryu, inucat, Pk11, kuragehime, rinrinrin2002, Rintim, Ronny Chan, Uriki
- 韩语: DDinghoya, lifehackerhansol, I'm Not Cry, Myebyeol_NOTE, Oleh Hatsenko, 그그기그
- 挪威语: Nullified Block
- 波兰语: Avginike, gierkowiec tv, Kipi000, Konrad Borowski, MaksCROWDIN0, Mateusz Tobiasz, Michał Słonina, RedstonekPL, TheCasachii
- 葡萄牙语(巴西): César Memère, Jeff Sousa, themasterf, Victor Coronado
- 葡萄牙语(葡萄牙): bruwyvn, Christopher Rodrigues, Gabz Almeida, jim, joyrv, leteka 1234, Rodrigo Tavares, Tiago Silva, Wodson de Andrade, Wodson de Andrade, Zak
- 罗马尼亚语: Tescu
- 俄语: Alexey Barsukov, Ckau, manwithnoface, mbhz, MMR Marler, Nikita, Молодая Кукуруза
- 琉球语: kuragehime
- 西班牙语: Adrin Ramen, Adrian Rodriguez, Allinxter, beta215, ccccmark, dimateos, Kaede159, KplyAsteroid, mschifino, Nicolás Herrera Concha, Nintendo R, nuxa17, Radriant, SofyUchiha, TM-47, Uriki, XxPhoenix1996xX
- 瑞典语: Max Hambraeus, Nullified Block, TM-47, Victor Ahlin, Walter Lindell
- 土耳其语: Alp, Egehan.TWL, Emir, GlideGuy06, Grandmaquil, imbeegboi22, İlke Hür Eyiol, rewix32, rewold20, Yağmur Celep
- 乌克兰语: Oleh Hatsenko, Mykola Pukhalskyi, TM-47, вухаста гітара
- 瓦伦西亚语: tsolo
- 越南语: Chử Tiến Bình, daicahuyoi Đỗ Minh Hiếu, hotungkhanh, Trương Hồng Sơn
