gabriel-chevallier/switch-nds — explained in plain English
Analysis updated 2026-05-18
Play Nintendo DS games on a Nintendo Switch without installing custom firmware.
Study how the Switch's browser and iframe navigation quirks can be exploited for unofficial apps.
Set up a local server to host and stream emulated DS games to a Switch over the network.
| gabriel-chevallier/switch-nds | 100/tab-organizer | addyosmani/devtools-snippets | |
|---|---|---|---|
| Stars | 11 | 11 | 11 |
| Language | JavaScript | JavaScript | JavaScript |
| Last pushed | — | 2021-03-01 | 2013-09-22 |
| Maintenance | — | Dormant | Dormant |
| Setup difficulty | hard | easy | easy |
| Complexity | 4/5 | 1/5 | 1/5 |
| Audience | vibe coder | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires a separate PC running a local server plus a DNS redirect trick to reach it from the Switch browser.
This project lets a Nintendo Switch play old Nintendo DS games, and it does this through a clever trick rather than a normal installed app. It runs entirely inside the Switch's built in web browser, the same browser the console normally uses for things like signing into a WiFi network through a captive portal page. The README explains that the Switch browser handles the B button in an unusual way when a web page contains an embedded frame within it: pressing B first moves backward inside that inner frame before it affects the main page. The project uses this quirk, along with a browser messaging technique, to build a working game emulator interface entirely out of web pages, without needing to install any real software on the console itself. Under the hood the actual emulation is handled by DeSmuME, an existing Nintendo DS emulator, adapted from a similar earlier project that did the same trick for Game Boy Advance games using a different emulator. Right now the project can load and run Nintendo DS game files stored locally, but it is described as an experimental work in progress. Audio, touchscreen controls, some button mappings, and microphone support are still being built, and WiFi support is only a future plan. To use it, a person needs a separate computer to act as the server. On Windows, this means downloading a release and running an executable. On Linux, it means installing Python 3.10, cloning the code, installing its dependencies, and running a setup script. Once that server is running, the Nintendo Switch connects to it over the local network through its browser, using the same kind of DNS redirect trick that services like Switchbru rely on to access non official pages on the console.
A browser based Nintendo DS emulator that runs on a Nintendo Switch using a quirk in its built in web browser.
Mainly JavaScript. The stack also includes JavaScript, Python, DeSmuME.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly vibe coder.
This repo across BitVibe Labs
Verify against the repo before relying on details.