From GameBrew - a wiki dedicated to Video Game Homebrew.
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.
- Launch DS, DS, and DS Ware ROMs from the SD card and/or flashcard, via nds-bootstrap (comes included with the app).
- For flashcards, the flashcard kernel/firmware can optionally be used to boot the games, but only for regular DS games, and DS⁽ⁱ⁾-Enhanced games in DS mode.
- Automatic on-the-fly AP-patching! Drag and drop your ROMs onto the SD card, and play, without any additional steps.
- The included AP-patches are loaded for a specific game, by nds-bootstrap, and the patching is done in RAM, leaving your original ROM untouched.
- Bring the DSi Menu to your DS Phat/lite, by putting TWLMenu++ on a flashcard.
- First DS flashcard UI to show animated icons from DS-Enhanced, DS-Exclusive, and DS Ware games.
- Set the language to your preference.
- 10 save slots for DS games.
- For DSi/3DS/2DS users: Overclock your DS games to 133mhz, faster than normal DS clock speed of 67mhz.
- For DSi/3DS/2DS users: Change sound frequency from 32kHz to 48kHz for higher sound quality.
- Directly access the flashcard's microSD card, and switch to and from there anytime (Only applies to compatible flashcards).
- Run the last played ROM on TWiLight Menu++ startup.
- Play retro games from these consoles:
- Atari XEGS, via XEGS-DS (.xex and .atr).
- Atari 2600, via StellaDS (.a26 only).
- Atari 5200, via A5200DS (.a52 only).
- Atari 7800, via A7800DS (.a78 only).
- NES/Famicom, via nesDS.
- (Super) GameBoy (Color), via GameYob.
- Sega Master System/Game Gear, via S8DS.
- Sega MegaDrive/Genesis, via jEnesisDS (or PicoDriveTWL, if ROM is above 3MB) (.gen only).
- Super Nintendo/Famicom, via SNEmulDS.
- PC-Engine/TurboGrafx-16, via NitroGrafx.
- GameBoy Advance, via GBARunner2 or the DS' native GBA mode, which the latter requires one of these Slot-2 flashcards:
- SuperCard SD/MiniSD/MicroSD.
- EZ-Flash (before Omega) (Saving does not work).
- Play videos:
- 3DS/2DS users: Play DS games in 16:10 widescreen! Not all games will work with this feature.
Installing on Flashcard (DS/DSi)
Extract TWiLightMenu-Flashcard.7z and copy the _nds folder to your flashcard’s microSD card root.
Copy the BOOT.NDS file and the roms folder to your flashcard’s microSD card root.
If you already have save data, move your .sav files, which are in your DS ROM location, to a new folder called saves, which also goes in the DS ROM location.
- For DS Phat/Lite - If booting BOOT.NDS causes a white screen lock-up, insert a DS Memory Expansion Pak, and try again.
- For DSi/3DS - Run TWLMenu++ on the console’s SD card, and turn on SCFG access in Slot-1 and Slot-1: TWL touch mode.
This will let you use TWL clock speed and/or VRAM boost on your flashcard games, as well as both accessing the console’s SD card, and running DSi-Enhanced/DSi-Exclusive/DSiWare games in DSi mode from your flashcard.
Run games with your flashcard firmware (Flashcard):
Extract what’s in Flashcart Loader/(your flashcard) to the root of the flashcard’s microSD card.
If you done so, continue to step 3. If not, follow the steps below the flashcard list below.
For these flashcards:
R4i SDHC Upgrade Revolution
R4 SDHC Revolution
R4i Gold (v1.4.1) (3DS)
Install YSMenu following the tutorial.
Make sure you have YSMenu.nds (renamed from TTMenu.dat if there isn’t one) and the TTMenu folder on the flashcard microSD root.
Set Use nds-bootstrap to No, so the flashcard firmware will be used instead of nds-bootstrap.
Autobooting TWiLight Menu++:
Extract the content(s) of Autoboot/(your flashcard) to the root of the flashcard’s microSD card. Skip this, if you don’t see your flashcard.
- For DS Phat/DS Lite - Go to settings in the DS menu, and turn on auto-start, so your flashcard will start on boot.
- For DSi/3DS - Run TWLMenu++ on the console’s SD card, and turn on Auto-start Slot-1.
Installing on DSi
Download the latest TWiLightMenu-DSi.7z from the releases page.
Extract TWiLightMenu-DSi.7z and copy the _nds folder to your SD card root.
Copy the BOOT.NDS file and the roms folder to your SD card root.
- For hiyaCFW users - Copy the title folder to your SD card root.
Autobooting with Unlaunch. Turn on your DSi while holding A and B.
In the Unlaunch menu, go to OPTIONS> set NO BUTTON or a button of your choice to the TWiLight Menu++ that says BOOT.NDS on the bottom screen.
DS game compatibility list can be found here: List of games that work from SD Card.
Q. How do I fix getting a white screen when booting TWiLight Menu++?
First, try putting the console in sleep mode (e.g. closing the console’s lid, or pressing the sleep button on the O2DS), then wake up the console from it.
If that doesn’t work, format your SD card to FAT32 with 32 KB cluster/allocation size. If that also doesn’t work, try a different SD card.
Q. Where is the Acekard/Wood UI theme?
The acekard (also called Wood UI) theme was removed due to its buggy behaviour and causing SD Card corruption. Please wait for a fix.
Progress for the return of this theme can be found in this PR.
Q. How do I fix TWiLight Menu++ restarting or giving a Guru Meditation Error when launching a game?
Go into TWLMenu++ Settings, and disable Update recently played list.
Q. Why do I get a white screen when trying to load a game from SD card?
First, check the nds-bootstrap compatibility list and make sure your game is compatible.
Try with all cheats disabled for that game as some cheats are not compatible with nds-bootstrap at the moment, you can use L to disable all cheats for a game.
If it worked before, delete the fatTable and patchOffsetCache folders in sd:/_nds/nds-bootstrap/
Q. How do I use cheats?
You need to have a cheat DB in the form of a usrcheat.dat file in the sd:/_nds/TWiLightMenu/extras/ folder. The most updated cheat database is DeadSkullzJr’s.
On the 3DS, this database is available in the Universal-Updater app as NDS Cheat Databases. This will automatically install it to the required location.
Alternatively, you can use r4cce to create your own cheat DB.
Q. How do I show a custom picture on the top screen of the DSi theme?
A random .png image in sd:/_nds/TWiLightMenu/dsimenu/photos/ will be shown each time the menu is loaded.
The images(s) must be no bigger than 208x156.
If you have errors, it’s most likely an error with the image size. Please use tinypng to reduce the size.
Q. How do I get games?
You can download homebrew games from Universal-DB and GameBrew. To get dumps of your retail games:
- On DS you can use GodMode9i to dump your GBA games and, if you have a Slot-2 flashcard, DS games.
- On DSi you can use GodMode9i to dump your DS games and DSiWare.
- On 3DS you can use GodMode9 to dump your DS games, DSiWare, and Virtual Console titles.
Q. Can I get the save files from my game cards onto my SD card or vice versa?
Yes, you can use GodMode9i on DSi and 3DS or Checkpoint on 3DS.
Q. How do I change TWiLight Menu++’s language?
Open TWiLight Menu++ settings, you can do this by holding SELECT while loading TWiLight Menu++.
Press L or Y once (on flashcard/3DS) or twice (on DSi). Change the first option until you see the language you want, then exit settings.
You may also want to change the next two options as they control the language of DS games and their titles in TWiLight Menu++.
Q. Is this a DS(i) emulator?
No, this is not an emulator. The menu and DS games (loaded via nds-bootstrap) are ran natively in the console’s DS/DSi mode.
The only consoles emulated are the past consoles, but partially for GBA (as some or all parts like graphics are ran natively).
Q. What systems does TWiLight Menu++ support?
|Atari XEGS||XEGS-DS||.xex, .atr|
|DS||nds-bootstrap, flashcard kernel, native||.nds, .dsi, .ids, .srl, .app||saves/[rom name].sav|
|DSiWare||Unlaunch, nds-bootstrap||.nds, .dsi, .ids, .srl, .app||[rom name].pub, [rom name].prv|
|Game Boy (Color)||GameYob||.gb, .sgb, .gbc||[rom name].sav|
|Game Boy Advance||GBARunner2, native||.agb, .gba, .mb||[rom name].sav|
|Game Gear||S8DS||.gg||[rom name].gg.sav|
|Genesis / Mega Drive||jEnesisDS, PicoDriveTWL||.gen||[rom name].srm|
|Master System||S8DS||.sms||[rom name].sms.sav|
|MPEG4 Video||MPEG4 Player||.mp4|
|NES / Famicom||nesDS||.nes, .fds||[rom name].sav|
|PC Engine / TurboGrafx-16||NitroGrafx||.pce|
|RVID Video||Rocket Video Player||.rvid|
|SNES||SNEmulDS||.smc, .sfc||[rom name].srm|
Q. Why isn’t touch input working on sudokuhax?
Depending on the save file of sudokuhax, the touch screen inputs may not work.
Q. Can The Biggest Loser boot TWiLight Menu++?
No. As The Biggest Loser is a Slot-1 game, and not a DSiWare game, SD access is disabled when running Slot-1 cards.
DSi, 3DS Menu, SEGA Saturn, and Homebrew Launcher themes:
Left/Right - Select a game/app
A/Start - Launch game/app
L/R or Select+Left/Reight - Switch pages
Select+Up/Down & release Select - Switch between the SD card and flashcard
Y - Per-game settings
Y+X - Cheat menu
X - Delete/hide game
Select - Seelect menu or DS Classic Menu (Where system menu, TWLMenu++ Settings, and GBA Mode can be accessed)
Up/Down - Select a game/app
A - Launch game/app
L - Switch between the SD card and flashcard
Y - Per-game settings
Y+X - Cheat menu
With CFW: DS ROMs (on SD)/carts:
L+R+Down+B (hold 2 seconds) - Return to TWiLight Menu++ (If using an O3DS, then it does not work on all models)
Note: In this video, loading speed is slower than the current nds-bootstrap version.
- 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).
Graphics & Themes:
- 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.