[Released] PS Vita As A UVC Device By @xerpi – PS Vita

PS Vita As A UVC Device By @xerpi

View File


First an explanation from Wikipedia on what a UVC device is:

  Quote

The USB video device class (also USB video class or UVC) is a USB device class that describes devices capable of streaming video like webcams, digital camcorders, transcoders, analog video converters and still-image cameras.

Basically you will be able to screen record your PS Vita for the likes of YouTube game play videos in the future, thanks to the awesome and talented developer @xerpi, here is a quote from the source:

FKPilqm.jpg

Image thanks to Reddit use dic1911

  Quote

So this is a project I’ve had in mind for a few months already and finally I’ve decided to put some effort into it.

Let me explain: the Vita OS has a module (SceUdcd) that allows you to setup the Vita (fat and slim) bottom USB port as any USB device by setting custom USB descriptors.

In the past, I’ve already used SceUdcd to make the Vita act as an standard USB HID Gamepad (check this) so I asked myself: why don’t I take advantage of the power of that module and write a plugin that setups the Vita as an USB Video Class device (like a webcam or USB video capture card) and sends the screen data to the PC?

And here we are, it has taken me quite a bit of reverse engineering the Vita OS (specially the SceDisplay and SceUdcd modules) to be able to have a very alpha-stage proof of concept skprx working.

As I said it’s very PoC, so don’t expect it to go fast at all: the code is currently very inefficient and I’m not taking advantage of the Vita’s hardware colorspace converters and image encoders at all, it’s all done by CPU. Also, for now, this version will only capture the LiveArea footage.

Even though it isn’t very useful at its current stage, I’m releasing this so you can test it on different OSes and report back whether it’s working or not (I’m developing on Linux so that’s my testing platform).

To make it easier to load this plugin I’ve created a Plugin loader VPK that its job is to load any skprx placed in ux0:data/tai/kplugin.skprx. Here’s the download of plugin_loader.vpk.
And the plugin itself can be found here.
Hope it works (as much as it can for now) and I’m expecting your feedback!


Leave a Reply