3DS Capture and Control
Capture AND Control your 3DS — no expensive AF hardware
I’ve got an O3DS LL, and I wanted to stream its screens to my computer —
but that’s something only Apple the New 3DS can do.
So I made this!
3DSC2 lets you stream and control any 3DS, using just a camera.
No capture card, no soldering.
Here’s all you need to get started:
- A working Python environment (using
uvis recommended) - A webcam or camera
- A computer or Raspberry Pi
- A 3DS with InputRedirection enabled (Only requried when using the control feature)
- A brain (optional)
This project uses uv for seamless dependency management.
-
Clone the repo
git clone https://github.com/cylin577/3DSC2 cd 3DSC2 -
Run the application
uv run 3dsc2.py
Note:
uvwill automatically handle all dependencies including OpenCV, PyQt6, and Pygame. -
Setup & Calibration
- Enter your 3DS IP Address.
- Select your camera from the dropdown and click Start Camera.
- Auto Calibration (Recommended):
- Run the
3dsc2_calibhomebrew app on your 3DS. - Click Auto Calibrate in the PC app.
- Follow the instructions: Show AprilTag 0 on the Top Screen, then press
Aon the 3DS to show AprilTag 1 on the Bottom Screen. - The app will automatically detect and lock the ROIs.
- Run the
- Manual Calibration: If auto-calibration fails, click 4 corners of your Top Screen, followed by 4 corners of your Bottom Screen in the "ROI Selector" window. Click Lock ROIs once finished.
- The Top and Bottom screens will appear in separate (or combined) resizable windows.
-
Interaction & TAS
- Touch Control: Click or drag directly on the Bottom Screen (or combined) window to control the 3DS touch screen.
- Gamepad: Connect a controller to use physical buttons/sticks. Use Button Config to map your controller by recording presses.
- Event Replay: Use the Record, Play, and Save/Load Event buttons to automate or replay your gameplay with 20Hz precision.
That’s it !
- Super-Resolution support? (But nothing can't be solved using a 4K camera)
- Stabilized tracking? (Captured screen won't shift around when you play rhythm games)
- Improve AI Agent training efficiency.
If you found this project useful, please star this repo! If you can code, feel free to help with the TODOs or suggest new features via Pull Requests.