git404hub

what is switch-nds fr?

gabriel-chevallier/switch-nds — explained in plain English

Analysis updated 2026-05-18

11JavaScriptAudience · vibe coderComplexity · 4/5Setup · hard

tl;dr

A browser based Nintendo DS emulator that runs on a Nintendo Switch using a quirk in its built in web browser.

vibe map

mindmap
  root((switch-nds))
    What it does
      Emulates Nintendo DS
      Runs in Switch browser
      Uses iframe B button trick
    Tech stack
      JavaScript
      Python
      DeSmuME
    Use cases
      Play DS games on Switch
      Study browser quirks
      Host local emulator server
    Audience
      Hobbyists
      Vibe coders
    Status
      Experimental
      Audio in progress
      WiFi planned

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

what do people make with this?

VIBE 1

Play Nintendo DS games on a Nintendo Switch without installing custom firmware.

VIBE 2

Study how the Switch's browser and iframe navigation quirks can be exploited for unofficial apps.

VIBE 3

Set up a local server to host and stream emulated DS games to a Switch over the network.

what's the stack?

JavaScriptPythonDeSmuME

how it stacks up fr

gabriel-chevallier/switch-nds100/tab-organizeraddyosmani/devtools-snippets
Stars111111
LanguageJavaScriptJavaScriptJavaScript
Last pushed2021-03-012013-09-22
MaintenanceDormantDormant
Setup difficultyhardeasyeasy
Complexity4/51/51/5
Audiencevibe codergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

how do i run it?

Difficulty · hard time til it works · 1h+

Requires a separate PC running a local server plus a DNS redirect trick to reach it from the Switch browser.

in plain english

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.

prompts (copy fr)

prompt 1
Walk me through setting up the Linux server for this Nintendo DS emulator step by step.
prompt 2
Explain how the iframe and B button trick this project uses actually works.
prompt 3
Help me troubleshoot connecting my Nintendo Switch browser to this local emulator server.
prompt 4
What features does this emulator still need to finish, based on the README?

Frequently asked questions

what is switch-nds fr?

A browser based Nintendo DS emulator that runs on a Nintendo Switch using a quirk in its built in web browser.

What language is switch-nds written in?

Mainly JavaScript. The stack also includes JavaScript, Python, DeSmuME.

How hard is switch-nds to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is switch-nds for?

Mainly vibe coder.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.