Homebrew I'm trying to build a Native-res capture program that streams 1080p 60hz video to any PC through USB. This is my progress so far

  • Thread starter Thread starter Papux200
  • Start date Start date
  • Views Views 2,340
  • Replies Replies 22
  • Likes Likes 4
Update: 1080p60 works over USB.

With ReverseNX-RT set to docked in handheld, MK8 now streams native 1920x1080 at 59.5-59.9 fps (the game runs ~59.2), 0 lost frames, ~90 Mbps over plain USB 2. Latency is about 34 ms on the console + 25 ms on the PC.

What fixed it: the capture always grabbed the newest frame the game queued, but at 1080p MK8 queues one ahead of the GPU, so ~20% of frames got skipped. Now it takes the newest frame the GPU has actually finished. Skips dropped to 1.6%.

For now it wants the CPU at 1785 MHz. Testing stock clocks next.

@shadetheart that's your Lite + ReverseNX case, though I haven't tried a Lite.
@bonkmaykr thanks!

Repo with logs: https://github.com/TomasUribe/switch-frame-tap
 
  • Like
Reactions: bonkmaykr
Advice for your future UVC part :

at some point you will need to advertise the sysmodule USB identity to the OS : don't borrow existing UVC_VENDOR_ID & UVC_PRODUCT_ID.

I did at first (borrowing Logitech webcam VID/PID) so the sysmodule could be seen as a simple USB camera. It worked well on Windows & Linux.

On macOS this broke functionality, because the OS merges vendor-wide overrides from UVCMatching.plist, and the consequences was that it hid the H.264 format overall (the VID/PID pair was in the OS plist file).

Since you are using H.264 too, don't make the same mistake I did initially !
 
  • Like
Reactions: Papux200
Thanks! I'll take it into consideration
Post automatically merged:

First release is out: https://github.com/TomasUribe/switch-frame-tap/releases

Unzip it to the root of the SD and install the viewer (Linux for now, Windows is next).

What's in it:
- 720p60 in handheld and native 1080p60 with ReverseNX-RT, over a plain USB cable
- A homebrew menu app for the settings and a screenshot gallery
- An overlay to turn the stream on/off and switch handheld/docked
- Native res screenshots on L3+R3 (PNG, up to 1080p)
- Homebrew forwarders stream too (v0.1.1)

Only tested on my Mariko on 22.5.0 / AMS 1.11.2, so reports from other setups are welcome. The log is in /config/switch-frame-tap/ if something breaks.
Post automatically merged:

v0.2.0 is out with a Windows viewer: https://github.com/TomasUribe/switch-frame-tap/releases

Unzip it and double-click SwitchFrameTap.exe. Windows needs the WinUSB driver once: run Zadig, pick "Switch Frame Tap" (1209 5F1E) and install WinUSB, same as SysDVR.

The viewer is also smoother now on both Windows and Linux: USB, decoding and drawing run on separate threads and frames are shown in sync with the screen.

The Switch side is the same as v0.1.1.
Post automatically merged:

v0.3.0 adds game audio: https://github.com/TomasUribe/switch-frame-tap/releases

The sound comes from the console's own recorder (same source SysDVR uses), 48 kHz stereo, and the viewer plays it in sync with the picture. M mutes it, and there's an on/off switch in the manager app.

Update both the Switch zip and the viewer. Games that disable video capture won't have sound.
Post automatically merged:

v0.4.0 is out: webcam mode. Set USB mode to Webcam in the manager app and restart, and the Switch shows up as a regular USB camera, so OBS can grab it with no viewer and no driver. 1080p or 720p at 60 fps.

No sound in this mode (the Switch's USB can't act as a mic), latency in OBS is higher than with the viewer, and the Windows Camera app won't open it. For playing, the viewer is still the better option.

Thanks @Insektaure, the camera part is based on your SysDVR-UVC-Capture. And thanks for the tip about the USB ID: it uses its own (1209:5F1F), not a borrowed webcam one.

https://github.com/TomasUribe/switch-frame-tap/releases/tag/v0.4.0
 
Last edited by Papux200,
  • Like
Reactions: Insektaure

Site & Scene News

New Hot Discussed User Submitted