#!/bin/bash # default values PROGNAME=$(basename $0) KLICENSE="e4e54fd67c16c316f47829a30484d843" PS2CLASSIC=ps2classic/ps2classic PSNPACKAGE=psn_package_npdrm/psn_package_npdrm # defaut values id=0 # get last values [ -f .$PROGNAME ] && source .$PROGNAME # init file="$1" # get serial serial=$(isoinfo -f -i "$file" | \ grep "^/[A-Z][A-Z][A-Z][A-Z]_[0-9][0-9][0-9]\.[0-9][0-9];" | \ sed 's,[/.],,g;s,_,-,;s,;.*,,') [ "$serial" ] || { serial=$(printf "PS2U-1%04d" $id); let id++; } CID=${serial/-} # store last value echo > .$PROGNAME echo "id=$id" >> .$PROGNAME # get name function getname () { [ -f jlist2.html ] || wget https://psxdatacenter.com/psx2/jlist2.html [ -f plist2.html ] || wget https://psxdatacenter.com/psx2/plist2.html [ -f ulist2.html ] || wget https://psxdatacenter.com/psx2/ulist2.html awk '/>'$1'/, "") sub(/ /, " ") gsub(/^[ \t]*/, "") gsub(/[ \t]*$/, "") print }' [jpu]list2.html } # get game title [ -f PS2-GAMEID-TITLE-MASTER.csv ] || wget https://raw.githubusercontent.com/VTSTech/PS2-OPL-CFG/master/test/PS2-GAMEID-TITLE-MASTER.csv title=$(awk -F\; '"'$serial'" == $1 {print $2}' PS2-GAMEID-TITLE-MASTER.csv) [ "$title" ] || title=$(basename "$file" | sed 's/ *(.*//') # main process echo "File: '$file'" echo "Serial: $serial" echo "Title: '$title'" # skeleton mkdir $serial tar -C $serial -xzf skeleton.tgz # images: # - ICON0.PNG 320x176 # - PIC0.PNG 1000x560 # - PIC1.PNG 1920x1080 # cover wget https://psxdatacenter.com/psx2/images2/covers/$serial.jpg if [ -f $serial.jpg ]; then convert $serial.jpg tmp.png mogrify -resize 320x176 tmp.png mogrify -background transparent -gravity center -extent 320x176 tmp.png mv tmp.png $serial/ICON0.PNG rm $serial.jpg fi # screenshot touch .touch find $HOME/.config/PCSX2/snaps/ -type f | xargs rm .touch pcsx2 "$file" capture=$(find $HOME/.config/PCSX2/snaps/ -type f | sort) if [ "$capture" ]; then cp "$capture" tmp.png mogrify -scale 1000x560 tmp.png mogrify -background transparent -gravity center -extent 1000x560 tmp.png mv tmp.png $serial/PIC0.PNG fi # parameters # - file: PARAM.SFO # 0x108: title # 0x188: CID # - file: USRDIR/ISO.BIN.EDAT # 0x017: CID echo -n $title | xxd | xxd -r -s 0x108 - $serial/PARAM.SFO echo -n $CID | xxd | xxd -r -s 0x188 - $serial/PARAM.SFO echo -n $CID | xxd | xxd -r -s 0x17- $serial/USRDIR/ISO.BIN.EDAT # generate key dd bs=1 count=$(expr ${#KLICENSE} / 2) if=/dev/zero of=$serial/ps2.key echo "00000000 $KLICENSE" | xdd -r - > $serial/ps2.key # package config echo > $serial/package.conf << EOF Content-ID = $CID k_licensee = 0x$KLICENSE DRM_Type = Free Content_Type = Game_Data PackageVersion = 01.01 EOF # convert iso $PS2CLASSIC e cex $serial/ps2.key "$1" $serial/USRDIR/ISO.BIN.ENC ISO.BIN.ENC 2P0001-${CID}_00-0000111122223333 # create package $PSNPACKAGE $serial