TWiLight Menu++

DSi 替代 DS/DSi/3DS/2DS 的菜单。「DSi Menu replacement for DS/DSi/3DS/2DS」

Github星跟蹤圖

TWiLight Menu++

TWiLight Menu++ 是 Nintendo DSi、Nintendo 3DS 和 Nintendo DS flashcards 的开源 DSi Menu 升级/替换。它可以启动 Nintendo DS、SNES、NES、GameBoy(彩色)、GameBoy Advance、Sega GameGear/Master System 和 Mega Drive/Genesis ROM,以及 DSTWO 插件(如果使用 DSTWO)和使用 RocketVideo 技术的 .rvid 视频。

编译

编译该应用程序需要带有 devkitARM 和 libnds 的 devkitPRO。确保已安装了 grit 和 mmutil。

使用 Docker

使用随附的 Docker 映像,您可以轻松编译 TWiLight Menu++,而无需使用提供的 PowerShell(.ps1)脚本手动设置必需版本的 devkitARM。

该脚本也接受 make 参数。例如,.\compile_docker.ps1 clean 将清除所有已编译代码的目录。如果要构建所有工件,请运行 .\compile_docker.ps1 package。

请注意,Docker 编译与 Windows 上的本机编译不兼容。在尝试使用 Docker 进行构建之前,应运行 .\compile_docker.ps1 clean 来清除工件。如果出现通知要求您共享驱动器的通知,则必须选择启用驱动器共享以使 Docker 在 Windows 上运行。

致谢

主要开发人员

  • RocketRobz:首席开发人员,实现了 NTR 模式下使用的自动重置电源按钮功能。
  • chyyran:将 akMenu/Wood UI 移植到 TWiLight Menu++,并添加了将子主题从 SD 卡加载到 DSi/3DS 主题的功能。
  • Pk11:增加了从 R4 主题的 SD 卡中加载子主题的功能,实现了排序和手册使用 PNG。

应用启动器

图形与主题

其他

  • profi200:来自 fastboot3DS 的改进的 SD 代码。
  • devkitPro:nds-hb-menu 中使用的代码,以及引导加载程序、devkitARM、libnds 和 libfat 的使用。
  • 另一个世界和黄色木妖:原始的 akMenu/Wood UI。
  • NightScript:代码清理,增加了有关 Flashcarts 的 Acekard 主题的功能。
  • retrogamefan 和 Rudolph:包括 nds-bootstrap 的 AP 补丁。
  • fintogive,RadDude McCoolguy,KazoWAR,Vague Rant,gamemasterplc,RocketRobz 和 ChampionLeake:宽屏秘籍


(The first version translated by vz on 2020.07.19)

主要指標

概覽
名稱與所有者DS-Homebrew/TWiLightMenu
主編程語言C++
編程語言Makefile (語言數: 11)
平台BSD, Docker, Linux, Mac, Unix-like, Windows
許可證GNU General Public License v3.0
所有者活动
創建於2017-05-06 05:28:36
推送於2025-04-22 05:23:13
最后一次提交2025-04-21 23:23:10
發布數294
最新版本名稱v27.13.2 (發布於 )
第一版名稱v0.0.1 (發布於 )
用户参与
星數3.5k
關注者數106
派生數206
提交數6.2k
已啟用問題?
問題數1525
打開的問題數203
拉請求數671
打開的拉請求數3
關閉的拉請求數34
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

TWiLight Menu++ is an open-source DSi Menu upgrade/replacement for the Nintendo DSi, the Nintendo 3DS, and Nintendo DS flashcards.
It can launch Nintendo DS(i), SNES, NES, GameBoy (Color), GameBoy Advance, Sega GameGear/Master System, SG-1000/SC-3000 & Mega Drive/Genesis, Atari 2600/5200/7800/XEGS, MSX, Intellivision, Neo Geo Pocket, Sord M5, PC Engine/TurboGrafx-16, WonderSwan, and ColecoVision ROMs, as well as DSTWO plugins (if you use a DSTWO).

Compiling

Setting up

Compiling this app requires devkitPro's devkitARM, libnds, grit, and mmutil. These can be installed using devkitPro pacman with the following command:

sudo dkp-pacman -S nds-dev

(Note: Command will vary by OS, sudo may not be needed and it may be just pacman instead.)

Cloning

The repository contains submodules, so you need to clone recursively:

git clone --recursive https://github.com/DS-Homebrew/TWiLightMenu.git

If you cloned without pulling the submodules, you may update them afterwards:

git submodule update --init --recursive

Building

Once you have devkitPro's toolchains installed you can build the entirety of TWiLight Menu++ by simply running make package in the root of the repository. If you only want to build a specific part of TWiLight Menu++ you can cd to that folder and run make dist.

Once it finishes building, the output files will be in the 7zfile folder following the same directory structure as the official TWiLightMenu.7z builds.

Using Docker

Using the included Docker image, you can easily compile TWiLight Menu++ without having to manually set up the required version of devkitARM using the provided PowerShell (.ps1) scripts.

The script accepts make arguments as well. For example, .\compile_docker.ps1 clean will clean the directories of all the compiled code. If you would like to build all artifacts, run .\compile_docker.ps1 package.

Please note that Docker compilation is not compatible with native compilation on Windows. You should run .\compile_docker.ps1 clean to clean the artifacts before attempting to build with Docker. If a notification appears asking you to share your drive, you must choose to enable drive sharing for Docker to work on Windows.

Manual Pages

The manual pages are stored in a separate repository and downloaded from a release when building TWiLight Menu++. For more information, see the twilight-manual repository.

Subfolders

TWiLight Menu++ is composed of multiple "sub-projects" which all work together to create the DSi Menu replacement. Most subfolders in the repository contain their own code which will compile a xxx.nds file, which is generally copied to /_nds/TWiLightMenu/xxx.srldr inside the 7z file (or 7zfile folder).

  • 3dssplash: opens 3ds and cia files (?)
    • Compiled to /_nds/TWiLightMenu/3dssplash.srldr
  • booter: main entrypoint, the first file loaded by the console if using SD-card or CFW
    • Creates /BOOT.nds and /title/00030004/53524c41/content/00000000.app (same file).
  • booter_fc: main entrypoint for flashcards
    • Creates _DS_MENU.dat, dsedgei.dat, akmenu4.nds, _DSMENU.nds, SCFW.SC and others.
  • gbapatcher
  • imageview: image viewer similar to DSi camera (gif, png, bmp)
    • /_nds/TWiLightMenu/imageview.srldr
  • manual: instruction manual for TWiLight Menu++
    • Creates /_nds/TWiLightMenu/manual.srldr
  • quickmenu: DS Lite menu, the old classic ui
    • Creates /_nds/TWiLightMenu/mainmenu.srldr
  • resources: merges the antipiracy and widescreen patches into a package file
    • /_nds/TWiLightMenu/extras/apfix.pck and /_nds/TWiLightMenu/extras/widescreen.pck
  • romsel_aktheme: unused, not included in package
  • romsel_dsimenutheme: menu for the DSi theme used by "Nintendo DSi", "Nintendo 3DS", "SEGA Saturn", and "Homebrew Launcher"
    • Creates /_nds/TWiLightMenu/dsimenu.srldr
  • romsel_r4theme: menu for the R4 theme used by "R4 Original" and "Gameboy Color"
    • Creates /_nds/TWiLightMenu/r4menu.srldr
  • rungame: unused, not included in package
  • settings: settings menu
    • Creates /_nds/TWiLightMenu/settings.srldr
  • slot1launch:
    • Creates /_nds/TWiLightMenu/slot1launch.srldr
  • title: boot splash screen (Nintendo logo by default)
    • Creates /_nds/TWiLightMenu/main.srldr

Translating

You can help translate TWiLight Menu++ on the Crowdin project. If you'd like to request a new language be added then please ask on the Discord server.

Credits

Main Developers

  • Rocket Robz: Lead Developer
  • chyyran: Porting the akMenu/Wood UI to TWiLight Menu++ & adding the ability to load sub-themes off the SD card for DSi/3DS themes
  • Pk11: Adding the ability to load skins off the SD card for the R4 theme, implemented sorting & made manuals use PNG, improved font rendering, providing a custom background for Unlaunch, managing translations, and various bug fixes

Secondary Developers

  • DieGo: Adding support for custom ROM/folder icons and improvements for custom skins
  • lifehackerhansol: Improving support for flashcard autobooting and kernel loading
  • NightScript: Code cleanup, defining code standards, added flashcard functionality for Wood UI theme, manual pages

App Launchers

Graphics & Themes

Music

  • BlastoiseVeteran: Remastered version of Nintendo DSi Shop music
  • IkaMusumeYiyaRoxie: General N64 MIDI Soundfont, used for the title splash fanfare on old versions

Sound

  • dbry: Xtreme Quality IMA-ADPCM decoder code from adpcm-xq.
  • Firexploit: 3DS UI sounds for the 3DS theme, which some are also used in the DSi theme.

Others

  • ahezard: NDMA code from nds-bootstrap
  • Another World & Yellow Wood Goblin: The original akMenu/Wood UI
  • Arisotura: ROM list from melonDS, and BIOS dumper code from dsibiosdumper
  • Dartz150: Provided fix for Iridion II & Top Gun: Combat Zones GBA games
  • devkitPro: Code used in nds-hb-menu, and the use of the bootloader, devkitARM, libnds, and libfat
  • edo9300: DS Phat check code
  • Gericom, TrolleyDave, and FAST6191: GBA SRAM-patching code, used in gbapatcher (SRAM patching thread at GBAtemp)
  • Gericom & profi200: GBA color correction code, used in GBARunner3
  • Nikokaro: Found no-tilt patches for WarioWare: Twisted!, and Yoshi Topsy-Turvy. (GBAtemp thread)
  • profi200: Improved SD code from fastboot3DS
  • RadDude McCoolguy, fintogive, KazoWAR, Vague Rant, gamemasterplc, Rocket Robz, ChampionLeake, DeadSkullzJr, spellboundtriangle, LedyBacer: Widescreen cheats
  • retrogamefan & Rudolph: Included AP-patches for nds-bootstrap
    • enler: Fixing AP-patch for Pokemon Black 2 (Japan) for DS⁽ⁱ⁾ mode compatibility
    • Rocket Robz: Fixing some DS⁽ⁱ⁾-Enhanced game AP-patches for DS⁽ⁱ⁾ mode compatibility
  • SNBeast: Unlaunch patches
  • Taiju Yamada: Code used to bypass R4i-SDHC boot file protection

Translators