fix config file for HEN
[iso2ps2.git] / iso2ps2
diff --git a/iso2ps2 b/iso2ps2
index 88000348fa98bb9a199de1b006c02ed017cd2aeb..e7a76998290f6d06a45975a89f033565a2b426ca 100755 (executable)
--- a/iso2ps2
+++ b/iso2ps2
@@ -11,11 +11,11 @@ CONFIGS=$PWD/CONFIGS
 KLICENSE="e4e54fd67c16c316f47829a30484d843"
 PS2CLASSIC=$PWD/ps2classic/ps2classic
 PSNPACKAGE=$PWD/psn_package_npdrm/psn_package_npdrm
-# FAT SLIM SUPER ULTRA
-MODEL="ULTRA"
+# HAN HEN
+MODEL="HEN"
 
 # formating functions
-function title () { echo -e "\033[0;1m$*\033[0;0m"; }
+function title () { echo -e "\033[0;1m=== $* ===\033[0;0m"; }
 function pass () { echo -e "\033[1;32m$*\033[0;0m"; }
 function warn () { echo -e "\033[1;33m$*\033[0;0m"; }
 function fail () { echo -e "\033[1;31m$*\033[0;0m"; exit 1; }
@@ -28,6 +28,8 @@ id=0
 
 # init
 file="$1"
+[ -f "$file" ] || fail "can't find file"
+[ "$(file $file | grep UDF)" ] || fail "file is not an UDF iso"
 
 # get serial
 serial=$(isoinfo -f -i "$file" | \
@@ -54,8 +56,8 @@ function getname () {
 }
 
 # 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)
+[ -f "$CACHE/PS2-GAMEID-TITLE-MASTER.csv" ] || ( cd "$CACHE"; wget https://raw.githubusercontent.com/VTSTech/PS2-OPL-CFG/master/test/PS2-GAMEID-TITLE-MASTER.csv )
+title=$(awk -F\; '"'$serial'" == $1 {print $2}' "$CACHE/PS2-GAMEID-TITLE-MASTER.csv")
 [ "$title" ] || title=$(basename "$file" | sed 's/ *(.*//')
 
 # create CID
@@ -74,8 +76,8 @@ echo "CID: $cid"
 # install skeleton
 title "install skeleton"
 mkdir $serial
-tar -C $serial -xzf skeleton.tgz
-[ -d $CACHE ] || mkdir $CACHE
+tar -C $serial -xzf $PWD/skeleton.tgz
+[ -d "$CACHE" ] || mkdir "$CACHE"
 
 # images:
 # - ICON0.PNG 320x176
@@ -84,8 +86,8 @@ tar -C $serial -xzf skeleton.tgz
 
 # get cover image
 title "get cover image"
-if [ -f $CACHE/$serial-ICON0.PNG ]; then
-    cp $CACHE/$serial-ICON0.PNG $serial/ICON0.PNG
+if [ -f "$CACHE/$serial-ICON0.PNG" ]; then
+    cp "$CACHE/$serial-ICON0.PNG" $serial/ICON0.PNG
 else
     wget https://psxdatacenter.com/psx2/images2/covers/$serial.jpg
     if [ -f $serial.jpg ]; then
@@ -94,7 +96,7 @@ else
         mogrify -background transparent -gravity center -extent 320x176 tmp.png
         mv tmp.png $serial/ICON0.PNG
         rm $serial.jpg
-        cp $serial/ICON0.PNG $CACHE/$serial-ICON0.PNG
+        cp $serial/ICON0.PNG "$CACHE/$serial-ICON0.PNG"
     else
         warn "can't find cover"
     fi
@@ -102,8 +104,8 @@ fi
 
 # get screenshot
 title "get screenshot"
-if [ $CACHE/$serial-PIC0.PNG ]; then
-    cp $CACHE/$serial-PIC0.PNG $serial/PIC0.PNG
+if [ -f "$CACHE/$serial-PIC0.PNG" ]; then
+    cp "$CACHE/$serial-PIC0.PNG" $serial/PIC0.PNG
 else
     touch .touch
     find $HOME/.config/PCSX2/snaps/ -type f | xargs rm .touch
@@ -114,7 +116,7 @@ else
         mogrify -scale 1000x560 tmp.png
         mogrify -background transparent -gravity center -extent 1000x560 tmp.png
         mv tmp.png $serial/PIC0.PNG
-        cp $serial/PIC0.PNG $CACHE/$serial-PIC0.PNG
+        cp $serial/PIC0.PNG "$CACHE/$serial-PIC0.PNG"
     else
         warn "can't find screenshot"
     fi
@@ -139,17 +141,23 @@ echo "00000000  $KLICENSE" | xxd -r - $serial/ps2.key
 
 # find config file
 title "find config file"
-confname=$(echo $serial.CONFIG | sed 's/-/_/;s/_\(...\)/_\1./')
-case "$MODEL" in
-  FAT)
-      config=$(cd $CONFIGS; find GX -name $confname | head -1)
-      ;;
-  SLIM|SUPER|ULTRA)
-      config=$(cd $CONFIGS; find CUSTOM SOFT NET -name $confname | head -1)
-      ;;
-esac
-[ -f "CONFIGS/$config" ] || fail "can't find config"
-cp $CONFIGS/$config $serial/$confname
+if [ ! -f "$CACHE/$serial.CONFIG" ]; then
+    confname=$(echo $serial | sed 's/-/_/;s/_\(...\)/_\1./')
+    case "$MODEL" in
+    HAN)
+        confname=$confname.CONFIG
+        config=$(cd $CONFIGS; find NET GX SOFTCUSTOM -name $confname | head -1)
+        ;;
+    HEN)
+        confname=$confname.ENC
+        config=$(cd $CONFIGS; find ENC -name $confname | head -1)
+        ;;
+    esac
+    if [ "$config" ]; then
+        cp $CONFIGS/$config "$CACHE/$serial.CONFIG"
+    fi
+fi
+[ -f "$CACHE/$serial.CONFIG" ] && cp "$CACHE/$serial.CONFIG" $serial/USRDIR/CONFIG || warn "can't find config"
 
 # create package config
 title "create package config"
@@ -163,16 +171,19 @@ EOF
 
 # prepare iso
 title "prepare iso"
-$PS2CLASSIC prepare "$file"
+$PS2CLASSIC prepare "$file" || fail "can't prepare iso"
 
 # convert iso
 title "convert iso"
-$PS2CLASSIC e cex $serial/ps2.key "$file" $serial/USRDIR/ISO.BIN.ENC ISO.BIN.ENC $cid
+$PS2CLASSIC e cex $serial/ps2.key "$file" $serial/USRDIR/ISO.BIN.ENC ISO.BIN.ENC $cid || fail "can't convert iso"
 
 # create package
 title "create package"
-( cd $serial; $PSNPACKAGE $confname package.conf . )
-mv $serial/$cid.pkg .
+$PSNPACKAGE $serial || fail "can't create package"
+
+# create rap file
+title "create rap file"
+cp $PWD/iso2ps2.rap $cid.rap
 
 # cleaning
 title "cleaning"