TWiLightMenu
DSi Menu replacement for DS/DSi/3DS/2DS
Install / Use
/learn @DS-Homebrew/TWiLightMenuREADME
TWiLight Menu++ is an open-source DSi Menu upgrade/replacement for the Nintendo DSi, the Nintendo 3DS, and Nintendo DS flashcards. It can launch games for the Nintendo DS, Nintendo DSi, and GameBoy Advance, as well as DSTWO plugins (if you use a DSTWO).
Add-ons
Additional features can be added on to TWiLight Menu++. See this page for more information.
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
- Compiled to
- booter: main entrypoint, the first file loaded by the console if using SD-card or CFW
- Creates
/BOOT.ndsand/title/00030004/53524c41/content/00000000.app(same file).
- Creates
- booter_fc: main entrypoint for flashcards
- Creates
_DS_MENU.dat,dsedgei.dat,akmenu4.nds,_DSMENU.nds,SCFW.SCand others.
- Creates
- gbapatcher
- imageview: image viewer similar to DSi camera (gif, png, bmp) (Part of the Multimedia add-on)
/_nds/TWiLightMenu/imageview.srldr
- manual: instruction manual for TWiLight Menu++
- Creates
/_nds/TWiLightMenu/manual.srldr
- Creates
- quickmenu: DS Lite menu, the old classic UI
- Creates
/_nds/TWiLightMenu/mainmenu.srldr
- Creates
- romsel_aktheme: menu for the Wood UI
- Creates
/_nds/TWiLightMenu/akmenu.srldr
- Creates
- romsel_dsimenutheme: menu for the "Nintendo DSi", "Nintendo 3DS", "SEGA Saturn", and "Homebrew Launcher" UIs
- Creates
/_nds/TWiLightMenu/dsimenu.srldr
- Creates
- romsel_r4theme: menu for the "R4 Original" and "Gameboy Color" UIs
- Creates
/_nds/TWiLightMenu/r4menu.srldr
- Creates
- settings: settings menu
- Creates
/_nds/TWiLightMenu/settings.srldr
- Creates
- slot1launch:
- Creates
/_nds/TWiLightMenu/slot1launch.srldr
- Creates
- title: boot splash screen (Nintendo logo by default)
- Creates
/_nds/TWiLightMenu/main.srldr
- Creates
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++ (before re-development) & adding the ability to load themes off the SD card for DSi/3DS UIs
- Pk11: Adding the ability to load custom themes off the SD card for the original R4 UI, 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 themes
- lifehackerhansol: Improving support for flashcard autobooting and kernel loading
- Deletecat: Original R4SDHC autoboot file containing a flashcard-bootstrap binary
- NightScript: Code cleanup, defining code standards, added flashcard functionality for Wood UI (before re-development), manual pages
- asiekierka: Stargate 3DS autoboot file from nds-miniboot
App Launchers
- ahezard, shutterbug2000 and Rocket Robz: nds-bootstrap (used for launching Nintendo DS(i) ROMs off the SD card)
- Alekmaul & wavemotion: StellaDS, A5200DS, A7800DS, A8DS (used for launching Atari 2600/5200/7800/XEGS ROMs), and ColecoDS (used for launching ColecoVision, MSX, Sord M5, and Sega SG-1000/SC-3000 ROMs)
- archiede: SNEmulDS (used for launching SNES ROMs)
- chishm: tuna-viDS (used for playing Xvid videos)
- Stewmath: GameYob (used for launching Gameboy ROMs)
- FluBBaOfWard: S8DS (used for launching Sega Master System, Game Gear, SG-1000/SG-3000, and ColecoVision ROMs), NitroGrafx (used for launching PC Engine/TurboGrafx-16 ROMs), NitroSwan (used for launching WonderSwan ROMs), and NGPDS (used for launching Neo Geo Pocket ROMs)
- FluBBaOfWard, Coto, and Loopy: nesDS (used for launching NES ROMs)
- Apache Thunder: TWL Edition of nesDS
- Gericom: FastVideoDSPlayer (used for launching FastVideoDS videos) & GBARunner2 (used for launching GameBoy Advance ROMs outside of the DS Phat/Lite's GBA mode)
- therealteamplayer: Hicode+DSP merged builds of GBARunner2 included for DSi/3DS
- unresolvedsymbol: rom3M+master "DSL-Enhanced" builds of GBARunner2 included for playing Pokémon: Emerald Version on flashcards
- Lordus: jEnesisDS (used for launching Sega Mega Drive/Genesis ROMs)
- Rocket Robz: Rocket Video Player (used for launching RocketVideoDS videos)
- Ryan FB, Rocket Robz, and xonn83: PicoDriveTWL (used for launching large Sega Mega Drive/Gene
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
