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, SNES, NES, GameBoy (Color), GameBoy Advance, Sega GameGear/Master System & Mega Drive/Genesis ROMs, as well as DSTWO plugins (if you use a DSTWO) and videos.
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)
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 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.
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.
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.
- RocketRobz: Lead Developer, implementing the auto-reset power button function used in NTR-mode.
- 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 sub-themes off the SD card for the R4 theme, implemented sorting & made manuals use PNG, improved font rendering, providing a custom background for Unlaunch, and various bug fixes.
- ahezard & shutterbug2000: nds-bootstrap (used to launch Nintendo DS ROMs off the SD card), and NDMA SD read code.
- Drenn: GameYob (used to launch Gameboy ROMs)
- Coto: Working on SNEmulDS with acheid/Loopy (used to launch SNES ROMs) & nesDS (TWL Edition by Apache Thunder) (used to launch NES ROMs).
- Lordus: jEnesisDS (used to launch Sega Mega Drive/Genesis ROMs)
- Ryan FB & xonn83: PicoDriveDS (used to launch large Sega Mega Drive/Genesis ROMs)
- Gericom: GBARunner2 (used to launch GameBoy Advance ROMs outside of the DS Phat/lite's GBA mode)
- FluBBa: S8DS (used to launch Sega Master System/Game Gear ROMs)
- Alekmaul & wavemotion: StellaDS, A5200DS, A7800DS, and XEGS-DS (used to launch Atari 2600/5200/7800/XEGS ROMs)
- spinal_cord: DSi4DS and DSision2 graphics.
- StarvingArtist: Game Console icons.
- FlameKat53: Manual icon for DSi theme's
SELECT
menu. - fail0verflow, Fluto, and Arkhandar: Homebrew Channel/Launcher graphics.
- davi: Border for GBC theme (originally for GameYob).
- NightScript: Reworked Manual pages.
- IkaMusumeYiyaRoxie: General N64 MIDI Soundfont, used for the title splash fanfare
- profi200: Improved SD code from fastboot3DS.
- ahezard: NDMA code from nds-bootstrap.
- Gericom, TrolleyDave, and FAST6191: GBA SRAM-patching code, used in gbapatcher (SRAM patching thread at GBATemp)
- Nikokaro: Found no-tilt patches for WarioWare: Twisted!, and Yoshi Topsy-Turvy. (GBATemp thread)
- devkitPro: Code used in nds-hb-menu, and the use of the bootloader, devkitARM, libnds, and libfat.
- Another World & Yellow Wood Goblin: The original akMenu/Wood UI.
- NightScript: Code cleanup, added functionality for Acekard theme in regards to flashcarts.
- SNBeast: Unlaunch patches.
- retrogamefan & Rudolph: Included AP-patches for nds-bootstrap.
- fintogive, RadDude McCoolguy, KazoWAR, Vague Rant, gamemasterplc, RocketRobz & ChampionLeake: Widescreen Cheats.
- Chinese Simplified: Forbidden, James-Makoto, R-YaTian, Yukino Song, 百地 希留耶
- Chinese Traditional: ccccchoho, James-Makoto, Rintim, 奇诺比奥
- Danish: jonata, Nadia Pedersen
- French: Arcky, cooolgamer, Dhalian., maximesharp, Ghost0159, Léo, LinuxCat, Martinez, NightScript, TM-47
- German: ariebe9115, Christian Schuhmann, Dubsenbert Reaches, İlke Hür Eyiol, Julian, Kazuto, malekairmaroc7, Oleh Hatsenko, SkilLP, SuperSaiyajinStackZ, Tcm0, TM-47, Uriki
- Hebrew: Barawer, Yaniv
- Hungarian: Viktor Varga, ハトヴィング -- ハット
- Italian: Leonardo Ledda, TM-47, xavimel
- Japanese: Chromaryu, Pk11, rinrinrin2002, Rintim, Ronny Chan, Uriki
- Korean: I'm Not Cry, Myebyeol_NOTE, Oleh Hatsenko, 그그기그
- Norwegian: Nullified Block
- Polish: Mateusz Tobiasz, RedstonekPL
- Portuguese: bruwyvn, Christopher Rodrigues, Gabz Almeida, jim, joyrv, leteka 1234, Rodrigo Tavares, Tiago Silva, Wodson de Andrade, Wodson de Andrade, Zak
- Russian: Alexey Barsukov, Ckau, manwithnoface, mbhz
- Spanish: Adrin Ramen, Adrian Rodriguez, Allinxter, ccccmark, dimateos, KplyAsteroid, mschifino, Nicolás Herrera Concha, nuxa17, SofyUchiha, TM-47, Uriki, XxPhoenix1996xX
- Swedish: Max Hambraeus, Nullified Block, TM-47, Victor Ahlin, Walter Lindell
- Turkish: İlke Hür Eyiol, Yağmur Celep
- Ukrainian: Oleh Hatsenko, TM-47