Skip to content
This repository

Userland Vita Loader for loading unsigned executables on your Vita

branch: master
Octocat-spinner-32 .gitignore Added linker script and binary output. September 05, 2012
Octocat-spinner-32 Doxyfile Added doxygen makefile September 14, 2012
Octocat-spinner-32 LICENSE Added license information and readme. September 12, 2012
Octocat-spinner-32 Makefile Function stubs are now ARM code (properly). September 07, 2012
Octocat-spinner-32 README.md Fixed typos September 12, 2012
Octocat-spinner-32 cleanup.c Changed license text to not show up in docs. September 14, 2012
Octocat-spinner-32 cleanup.h Fixed linking errors September 04, 2012
Octocat-spinner-32 config.h Changed license text to not show up in docs. September 14, 2012
Octocat-spinner-32 linker.x Added linker script and binary output. September 05, 2012
Octocat-spinner-32 load.c Changed license text to not show up in docs. September 14, 2012
Octocat-spinner-32 load.h Minor fixes September 13, 2012
Octocat-spinner-32 resolve.c Minor bug fix for error return during warning. Renamed log fd variabl… November 22, 2012
Octocat-spinner-32 resolve.h Changed license text to not show up in docs. September 14, 2012
Octocat-spinner-32 scefuncs.c Changed license text to not show up in docs. September 14, 2012
Octocat-spinner-32 scefuncs.h Loader now does not required hard coded function addresses. September 14, 2012
Octocat-spinner-32 types.h Cleanup September 12, 2012
Octocat-spinner-32 utils.c Fixed minor bug with function not working when unlocked. November 29, 2012
Octocat-spinner-32 utils.h Moved many log entries to verbose, less log in debug mode. September 12, 2012
Octocat-spinner-32 uvloader.c Changed license text to not show up in docs. September 14, 2012
Octocat-spinner-32 uvloader.h Loader now does not required hard coded function addresses. September 14, 2012
README.md

Userland Vita Loader

What is this?

In short, this is a loader that allows running homebrew games on the Vita using save-file exploits or similar methods where there is no access to the system loader functions (which are found in the kernel). UVL does this by hooking on to functions and API calls imported by the running game and passing them to the homebrew being loader. This is not a way to run backups or pirated games as that is not only wrong to do, but also because UVL does not and can not decrypt content nor can it do dynamic linking or other sophisticated things that the system loader does.

How do I run it?

UVL is designed to work with any userland exploit with little configuration. However, you should check with the developer of the exploit who ported UVL to see how to use it. UVL cannot do anything by itself, it is simply a payload that is executed by an exploit to run homebrews unmodified.

How do I port UVL?

If you have an exploit for the Vita (not the PSP emulator as UVL does not work on that), then you should be able to port the exploit by finding a couple of memory addresses for some API calls and passing them to the config file. More information will be available when the time comes...

How do I compile UVL?

First of all, be aware that it is impossible to use UVL without an exploit, but once you have that and need a payload, all you need to do is modify the Makefile to point to your ARM toolchain and run "make". The toolchain that is tested with is http://www.yagarto.de/.

Who's responsible for this?

This project is based heavily off of Half Byte Loader for the PSP. Some code is ripped from the Bionic libc project. The project is started by Yifan Lu with thanks to the following people for their contribution. (Apologies for those forgotten.)

Thanks To

  • Davee for many ideas and help
  • naehrwert for some code snippets and programming help
  • roxfan for finding structures
  • anyone in #vitadev who answered my stupid questions
Something went wrong with that request. Please try again.