2025-08-22
I've been working on an open-source client for Nintendo 3DS capture cards.
Loopy has a great 3DS board that allows outputting video and audio from the Nintendo 3DS.
The main limitation is that it can't be connected directly to a TV. It outputs data over USB, and requires translation by a Windows client. If you want to play a 3DS on your TV or monitor, you need to connect the device like this:
Nintendo 3DS ---> USB Micro Cable ---> Windows client ---> HDMI Cable --> TV
I prefer playing games on TV, and I don't want to run a bunch of cables between our game room and my office Windows PC. What I'd like to create is an open source client that runs silently on a small *nix device so that I can connect directly to my TV. There are some open source solutions out there, but none that really fit what I'm looking for. One doesn't support audio. The two others that allow audio transmission over USB have performance issues that result (in my experience) in either the audio or video cutting out. What I ultimately want is to run this on a Raspberry Pi to get an experience like this, where I just plug the 3DS into an adapter to my TV.
Nintendo 3DS --> Linux Box/Connector --> TV
The main requirements for the project are:
Language options for the project, based on what I've used before, are TypeScript, Python, Go, or Rust. Go or Rust are more feasible here because they'll give me better low-level performance. Since I've been trying to find some more opportunities outside of work, I've gone with Rust here.
To assure ourselves that we have enough basic libraries to get the job done, we'll need: