PS Vita As A UVC Device By @xerpi

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!

View The Thread Here

Leave a Reply