Skip to content

cylin577/3DSC2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3DSC2

3DS Capture and Control

Capture AND Control your 3DS — no expensive AF hardware

Why?

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.

How to use

Here’s all you need to get started:

  • A working Python environment (using uv is 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.

  1. Clone the repo

    git clone https://github.com/cylin577/3DSC2
    cd 3DSC2
  2. Run the application

    uv run 3dsc2.py

    Note: uv will automatically handle all dependencies including OpenCV, PyQt6, and Pygame.

  3. Setup & Calibration

    • Enter your 3DS IP Address.
    • Select your camera from the dropdown and click Start Camera.
    • Auto Calibration (Recommended):
      1. Run the 3dsc2_calib homebrew app on your 3DS.
      2. Click Auto Calibrate in the PC app.
      3. Follow the instructions: Show AprilTag 0 on the Top Screen, then press A on the 3DS to show AprilTag 1 on the Bottom Screen.
      4. The app will automatically detect and lock the ROIs.
    • 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.
  4. 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 !

TODOs

  1. Super-Resolution support? (But nothing can't be solved using a 4K camera)
  2. Stabilized tracking? (Captured screen won't shift around when you play rhythm games)
  3. Improve AI Agent training efficiency.

Contribute

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.

About

A universal 3DS screen capture and control software

Topics

Resources

License

Stars

Watchers

Forks

Contributors