Following the recent PSVGameSD and NoNpDrm Plugin releases, PlayStation Vita developer s1cp made available the initial v0.1 release of a NoNPDRM Key RIF Extractor for PS Vita including both a Python script and build for Windows users.
Download: rif-extractor.zip / rif-extractor.pyw / GIT / NoNpDrm.v1.2.Unofficial-LMAN.rar / NoNpDrm.v1.3.Unofficial-LMAN.rar / NoNpDrm.v1.4.Unofficial-LMAN.rar by Leecherman
From rif-extractor.pyw, to quote:
Update: Also below is PSVitaStuff to manage your PSVita NoNpDRM stuff by @Rudi Rastelli, with details from the ReadMe File below to quote:
Download: PSVitaStuff v1.3.rar (1.48 MB)
In related PS Vita scene news, blastrock (Philippe Daouadi) forked PKGi from mmozeiko (Martins Mozeiko) with the following changes and updates from the README.md to quote: pkgj
Download: pkgj.elf / pkgj.vpk / GIT
pkgj allows to install original pkg files on your Vita.
This homebrew allows to download & unpack pkg file directly on Vita together with your NoNpDrm fake license.
Features
Get latest version as vpk file here.
Setup instructions
Setup games databases URLs in ux0:pkgi/config.txt. The file format is the following:
Then start the application and you are ready to go.
To avoid downloading pkg file over network, you can place it in ux0:pkgi folder. Keep the name of file same as in http url, or rename it with same name as contentid. pkgj will first check if pkg file can be read locally, and only if it is missing then pkgj will download it from http url.
Usage
Using application is pretty straight forward. Select item you want to install and press X. To sort/filter/search press triangle. It will open context menu. Press triangle again to confirm choice(s) you make in menu. Or press O to cancel any changes you did.
Press left or right button to move page up or down.
Q&A
To install PSP games as EBOOT files, just add the following line to your config:
If you want to switch back to the other mode, simply remove the line. Writing 0 is not sufficient.
The default value is ux0:
Building
You need to have Vita SDK with libvita2d installed.
Run cmake . to create debug build, or cmake -DCMAKE_BUILD_TYPE=Release . to create optimized release build.
After than run make to create vpk file. You can set environment variable PSVITAIP (before running cmake) to IP address of Vita, that will allow to use make send for sending eboot.bin file directly to ux0:app/PKGI00000 folder.
To enable debugging logging pass -DPKGI_ENABLE_LOGGING=ON argument to cmake. Then application will send debug messages to UDP multicast address 239.255.0.100:30000. To receive them you can use socat on your PC:
License
This software is released under the 2-clause BSD license.
puff.h and puff.c files are under zlib license.
Cheers to @raedoob for the news tip on his Twitter feed earlier tonight!
Download: rif-extractor.zip / rif-extractor.pyw / GIT / NoNpDrm.v1.2.Unofficial-LMAN.rar / NoNpDrm.v1.3.Unofficial-LMAN.rar / NoNpDrm.v1.4.Unofficial-LMAN.rar by Leecherman
From rif-extractor.pyw, to quote:
Code:
import tkinter as tk
from tkinter import filedialog, messagebox, Label, Button
from pathlib import Path
class MainGUI:
def __init__(self, master):
self.master = master
master.title("Vita RIF Tools")
self.label = Label(master, text="Choose an option")
self.label.pack()
self.extract_button = Button(master, text="Extract", command=self.extract)
self.extract_button.pack()
self.recreate_button = Button(master, text="Recreate", command=self.recreate)
self.recreate_button.pack()
def extract(self):
self.filename = filedialog.askopenfilename(initialdir = "/",title = "Select license file",filetypes = (("bin files","*.bin"),("rif files","*.rif"),("all files","*.*")))
abs_path = Path(self.filename)
parent_dir = Path(abs_path).parent
out_dir = parent_dir.joinpath('out')
out_dir.mkdir(exist_ok = True, parents = True)
contentid = ''
titleid = ''
JP = ['G','C']
US = ['A', 'E']
EU = ['F', 'B']
KO = ['H']
with open(abs_path, "rb") as f:
f.seek(16)
# Get Content ID and Title ID
for i in range(0,36):
text = f.read(1).decode('ascii')
contentid = contentid + text
# Get Title ID
if i in range(7,16):
titleid = titleid + text
i = i+1
# Get key
f.seek(80)
key = f.read(16)
# Determine region
if titleid[3] in JP:
region = "JP"
elif titleid[3] in US:
region = "US"
elif titleid[3] in EU:
region = "EU"
elif titleid[3] in US:
region = "EU"
pkg_info = ("Content ID: {}\nTitle ID: {}\nRegion: {}\nLicense Key: {}".format(contentid, titleid, region, key.hex().upper()))
messagebox.showinfo("Info", pkg_info)
# Save key.bin
with open(out_dir.joinpath('key.bin'), "wb") as keybin:
keybin.write(key)
# Save info.txt
out_dir.joinpath('info.txt').write_text(pkg_info)
# Save [contentid].txt with key
out_dir.joinpath("{}.txt".format(contentid)).write_text(key.hex().upper())
messagebox.showinfo("Info", "Exported files successfully!\n\nOutput folder: {}".format(out_dir))
def recreate(self):
messagebox.showinfo("Info", "In development")
root = tk.Tk()
maingui = MainGUI(root)
root.mainloop()
Download: PSVitaStuff v1.3.rar (1.48 MB)
Code:
####################
# PSVitaStuff V1.3 #
# by Rudi Rastelli #
####################
**************************************************************************
* PLEASE USE THIS TOOL ONLY FOR YOUR LEGALY PURCHASED CONTENT *
* IT IS INTENDED THAT YOU ONLY USE IT FOR BACKUP PURPOSES *
* (So you don't have to re-download your stuff whenever this is needed) *
**************************************************************************
ABOUT
*****
Download, extract and manage PSVita-NoNpDRM-, PSX- and PSP-Titles on PC.
Can also search, download and extract PSVita-game-patches.
REQUIREMENTS
************
1. Search internet for 'pkg_dec.exe' (tools for extracting PSVita-PKGs) and place it in 'Tools'-folder
2a. Edit the 'My*.tsv'-files and add data of your games/apps/DLCs/PSMs/themes (see also section 'EDIT TSV-FILES' below)
and/or
2b. In case you like to host your 'My*.tsv'-files edit 'PSVitaStuff.cfg' and add the URLs for your '*.tsv'-files.
HOW-TO
******
1. Start 'PSVitaStuff' and select a 'Base-Folder'm where everything will be stored (eg 'F:\PSVitaTitles')
Note: If you don't select a folder a 'PSVitaTitles'-folder will be created in programs directory.
But this is not recommended ! See TIPS-section for details.
2. On 1st use read all of the tooltips (hoover mouse pointer over elements of the GUI)
3. Titles will be marked
- ORANGE, if *.pkg was not completly downloaded (can be resumed)
- YELLOW, if *.pkg was only downloaded and not extracted
- GREEN, if *.pkg was downloaded and extracted
SETTINGS
********
- [Rebuild Local Database]
Rebuild Database('PSVitaStuff.db'), which contais some additional information compared to the 'My*.tsv'-files
- [Set Download/Extract Folder]
Change the 'Base-Folder', you've select at first start
- [Delete PKGs After Extraction]
Deletes PKG-file after extraction to free up some space
- [Extract DLC To 'addcont']
Checked : Extracts DLC(s) to 'addcont\[TitleID]\[The last 16 chars of ContentID]\'
Unchecked : Extracts DLC(s) to 'bgdl\t\0000000x\[TitleID]\'
- [Get Patches With Title]
Searches for patches when downloading Games/Apps and downloads them if available
- [Hide 3.61+ Titles]
Do not show titles requiering a FW greater 3.60 in title lists
- [Drop 3.61+ Patches]
Patches requiering a FW greater 3.60 will not be downloaded
- [Get Size For All Titles]
If activated for the 1st time please select [Rebuild Local Database] in order to get the size of all titles.
It will take some time, but only for the 1st run
EDIT TSV-FILES
**************
The 1st line of the 'My*.tsv'-files defines the structure of the following data(starting at line 2) and MUST always be present.
It can for example look like this:
"Title ID[TAB]Region[TAB]Type[TAB]Name[TAB]PKG direct link[TAB]zRIF[TAB]Content ID[TAB]Last Modification Date[TAB]PKG size[TAB]Required FW"
Enries in 1st line are key words to PSVitaStuff and must be written exactly as given here :
Title ID = ID of the title (9 characters)... (MUST always be 1st... arange the rest however you like)
Region = Region of the title (2 characters). Possible values: EU, US, AS, JP, ANY (optional if 'PKG direct link' is a Sony-Server-URL)
Name = Name of the title
Type = Possible values: Vita GAME, Vita DLC, Vita PSM, Vita THEME, PSX GAME, PSP GAME, PSP DLC, PSP THEME, PSP MINIS, PSP NEOGEO, PSP PCE (partialy optional... see Notes)
PKG direct link = PKG-URL (if not specified the title will not make it to the local database)
zRIF = Can be a zRIF-Key(recommended), Hex-Key(Klicensee) or "NOT REQUIRED" (only needed for PSVita-Titles)
Content ID = ID of the title (36 characters) (optional)
Last Modification Date = Date and time of the last modification to the current entry. Format: "YYYY-MM-DD hh:mm:ss" (optional)
PKG size = Download-size of the PKG (optional)
Required FW = Needed firmware version (only needed for PSVita-Titles)
Notes:
- The values must be seperated by a [TAB]-character and the number of [TAB]-characters in each line must be the same as in 1st line.
- If an optional value is not specified a [TAB]-character is still requiered
(Example: '...[TAB]KO5ifR1...[TAB][TAB]2017-01-01 12:24:17[TAB][TAB][TAB]' has no 'Content ID', 'PKG size' and 'Required FW' values)
- 'Type' is only needed for PSP because it has some sub types like PSP MINIS, PSP NEOGEO and PSP PCE
- If 'PKG direct link' is a Sony-Server-URL you can fake the 'Title ID' as long as it has 9 characters.
- Use PSDLE to find PKG Link for your games or host them yourself
- Use 'NoNpDRM'-plugin to create a fake license. Then use 'Tools -> Make zRIF Key' to convert the fake license to a valid zRIF-Key.
Example for a complete entry:
PCSB00975 EU Vita GAME Adventures Of Mana http://zeus.dl.playstation.net/... KO5ifR1dQ+e7Bg... EP0082-PCSB00975_00-ADVENTURESOFMANA 2017-12-24 01:02:03 1234567890 3.61+
OUTPUT-PATHS
************
Vita-Game : [Base-Folder]\[Region]\Vita GAME\[Game-Name]\app\[TitleID]\
Vita-Patch : [Base-Folder]\[Region]\Vita GAME\[Game-Name]\Vita UPDATE [Version][FW-Version]\patch\[TitleID]\
Vita-DLC : [Base-Folder]\[Region]\Vita GAME\[Game-Name]\Vita DLC\[DLC-Name]\addcont\[TitleID]\[The last 16 chars of ContentID]\
+
[Base-Folder]\[Region]\Vita GAME\[Game-Name]\Vita DLC\[DLC-Name]\license\addcont\[TitleID]\[The last 16 chars of ContentID]\
OR (depends on setting "[Extract DLC To 'bgdl\t']")
[Base-Folder]\[Region]\Vita GAME\[Game-Name]\Vita DLC\[DLC-Name]\bgdl\t\0000000x\[TitleID]\
Vita-PSM : [Base-Folder]\[Region]\Vita PSM\[PSM-Name]\psm\[TitleID]\
Vita-Theme : [Base-Folder]\[Region]\Vita THEME\[Theme-Name]\theme\[TitleID]\
PSX-Game : [Base-Folder]\[Region]\PSX GAME\[Game-Name]\pspemu\PSP\GAME\[TitleID]\[Title-ID].iso
PSP-Game : [Base-Folder]\[Region]\PSP GAME\[Game-Name]\pspemu\ISO\[Title-ID].iso
PSP-DLC : [Base-Folder]\[Region]\PSP GAME\[Game-Name]\PSP DLC\[DLC-Name]\pspemu\PSP\GAME\[TitleID]\ (contains pbdata und Param.PBP)
PSP-Theme : [Base-Folder]\[Region]\PSP THEME\[Theme-Name]\pspemu\ISO\[Title-ID].iso
PSP-Minis : [Base-Folder]\[Region]\PSP MINIS\[Game-Name]\pspemu\ISO\[Title-ID].iso
PSP-NeoGeo : [Base-Folder]\[Region]\PSP NEOGEO\[Game-Name]\pspemu\ISO\[Title-ID].iso
PSP-PCE : [Base-Folder]\[Region]\PSP PCE\[Game-Name]\pspemu\ISO\[Title-ID].iso
+
[Base-Folder]\[Region]\PSP PCE\[Game-Name]\pspemu\PSP/GAME/[TitleID]/ (contains CONTENT.DAT + PSP-KEY.EDAT)
Note : At PSP-PCE you'll see the game, but you'll also see "Corrupt Content". Currently this is necessary to start the game.
TIPS:
*****
- Because of the max path length of windows (260 Chars) you may run into trouble. It's recommended to not put your base folder to deep into the filesystem.
To avoid problems select a path like 'X:\PSVitaTitles'
- You can change the download speed while a download is running (Check tooltip to see which inputs are accepted).
Do this by entering a speed value then press the "Set DL-Speed"-button.
- Check title lists context-menu for some useful funktions
- Under Windows 7 PSVitaStuff uses a no-so-nice 'Copy Title(s) To SD Card'-function, which seems to hang on big files (but in fact it doesn't).
Until now i could not determinate why the nicer funktion, which works well on other tested Windows-Versions, leads to a crash of PSVitaStuff.
Credits: St4rk, TheRadziu, weaknespase, @tpunix, -SiD-, Jones, SChihir0_, MrSandmann
############################################################################################
Download: pkgj.elf / pkgj.vpk / GIT
pkgj allows to install original pkg files on your Vita.
This homebrew allows to download & unpack pkg file directly on Vita together with your NoNpDrm fake license.
Features
- easy way to see list of available downloads, including searching, filter & sorting.
- standalone, no PC required, everything happens directly on Vita.
- automatic download and unpack, just choose an item, and it will be installed, including bubble in live area.
- queues multiple downloads.
- supports the TSV file format.
- installs game updates, DLCs, PSP and PSX games.
- no support for PSM.
- no background downloads - if application is closed or Vita is put in sleep then download will stop.
Get latest version as vpk file here.
Setup instructions
Setup games databases URLs in ux0:pkgi/config.txt. The file format is the following:
Code:
url_games http://thesite/games.tsv
url_updates http://thesite/updates.tsv
url_dlcs http://thesite/dlcs.tsv
url_psx_games http://thesite/psxgames.tsv
url_psp_games http://thesite/pspgames.tsv
To avoid downloading pkg file over network, you can place it in ux0:pkgi folder. Keep the name of file same as in http url, or rename it with same name as contentid. pkgj will first check if pkg file can be read locally, and only if it is missing then pkgj will download it from http url.
Usage
Using application is pretty straight forward. Select item you want to install and press X. To sort/filter/search press triangle. It will open context menu. Press triangle again to confirm choice(s) you make in menu. Or press O to cancel any changes you did.
Press left or right button to move page up or down.
Q&A
- Where to get zRIF string?
- Where to get pkg URL?
- Where to remove interrupted/failed downloads to free up the space?
- Download speed is too slow!
- I want to install PSP games as EBOOT file.
To install PSP games as EBOOT files, just add the following line to your config:
Code:
install_psp_as_pbp 1
- I can't play PSP games, it says "The game could not be started (80010087)".
- I want to install PSP and PSX games on another partition.
Code:
install_psp_psx_location uma0:
Building
You need to have Vita SDK with libvita2d installed.
Run cmake . to create debug build, or cmake -DCMAKE_BUILD_TYPE=Release . to create optimized release build.
After than run make to create vpk file. You can set environment variable PSVITAIP (before running cmake) to IP address of Vita, that will allow to use make send for sending eboot.bin file directly to ux0:app/PKGI00000 folder.
To enable debugging logging pass -DPKGI_ENABLE_LOGGING=ON argument to cmake. Then application will send debug messages to UDP multicast address 239.255.0.100:30000. To receive them you can use socat on your PC:
Code:
$ socat udp4-recv:30000,ip-add-membership=239.255.0.100:0.0.0.0 -
This software is released under the 2-clause BSD license.
puff.h and puff.c files are under zlib license.
Cheers to @raedoob for the news tip on his Twitter feed earlier tonight!