mikan's technical note

仕事&趣味で実験した小技の備忘録です(Linux,windows,DOS等)

MENU

【PSC】本体へファイルをコピーするシェル

※※※ 取扱注意!!! ※※※

※※※ 使用方法によっては文鎮化の危険性あり ※※※
※※※ 事前に必ずバックアップをとってください ※※※
※※※ 使用にあたっては利用者の自己責任でお願いします ※※※

USBメモリ
/games 配下に1〜nの番号フォルダを作成し、ファイルを置いてください
例)
/games/1/pcsx.cfg
/games/1/SLPS-00107.cue
/games/1/SLPS-00107.iso
/games/1/SLPS-00107.lic
/games/1/SLPS-00107.png
/games/21/pcsx.cfg
/games/21/SLPS-01010.cue
/games/21/SLPS-01010.iso
/games/21/SLPS-01010.lic
/games/21/SLPS-01010.png


USBメモリのファイルを、PSC本体へコピーするシェルです
※別途 gpghax が必要です

PSC電源オフ、電源ケーブルを抜いていることを確認
USBメモリを挿す
電源ケーブルを挿し、PSC電源オン
起動直後にブラックアウトします
処理が終わると画面が表示されるので電源を切り電源ケーブルを抜いてUSBメモリを抜いてください

lolhack.sh

#!/bin/bash

### define
DB=regional_custom.db
BACKUPDIR=/media/backup
GAMEDIR=/media/games
LOGDIR=/media/log

### get log number
LOGCOUNT=1
LOGCOUNT_MAX=999
while [ $LOGCOUNT -le $LOGCOUNT_MAX ]
do
    LOGCOUNTNAME=$(printf %03d $LOGCOUNT)
    if [ -e $LOGDIR/${LOGCOUNTNAME}_before_ls.txt ]; then
        LOGCOUNT=`expr $LOGCOUNT + 1`
    else
        break
    fi
done
LOGCOUNTNAME=$(printf %03d $LOGCOUNT)

### UI Stop
sleep 8
echo "UI Stop" >> /media/messages.txt 
killall ui_menu
sleep 5

### log(before)
COUNT=1
COUNT_MAX=30
while [ $COUNT -le $COUNT_MAX ]
do
    if [ -e /gaadata/$COUNT ]; then
        echo "/gaadata/$COUNT" >> $LOGDIR/${LOGCOUNTNAME}_before_ls.txt 
        ls -l /gaadata/$COUNT >> $LOGDIR/${LOGCOUNTNAME}_before_ls.txt
    fi
    COUNT=`expr $COUNT + 1`
done
cd /
df -h > $LOGDIR/${LOGCOUNTNAME}_before_df.txt
sync

### ========== INSTALL GAMES !!! (USB -> PSC) ==================
mount -o rw,remount /gaadata
#echo "INSTALL gaadata/1(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/1 /gaadata/
#echo "INSTALL gaadata/2(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/2 /gaadata/
#echo "INSTALL gaadata/3(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/3 /gaadata/
#echo "INSTALL gaadata/4(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/4 /gaadata/
#echo "INSTALL gaadata/5(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/5 /gaadata/
#echo "INSTALL gaadata/6(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/6 /gaadata/
#echo "INSTALL gaadata/7(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/7 /gaadata/
#echo "INSTALL gaadata/8(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/8 /gaadata/
#echo "INSTALL gaadata/9(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/9 /gaadata/
#echo "INSTALL gaadata/10(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/10 /gaadata/
#echo "INSTALL gaadata/11(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/11 /gaadata/
#echo "INSTALL gaadata/12(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/12 /gaadata/
#echo "INSTALL gaadata/13(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/13 /gaadata/
#echo "INSTALL gaadata/14(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/14 /gaadata/
#echo "INSTALL gaadata/15(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/15 /gaadata/
#echo "INSTALL gaadata/16(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/16 /gaadata/
#echo "INSTALL gaadata/17(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/17 /gaadata/
#echo "INSTALL gaadata/18(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/18 /gaadata/
#echo "INSTALL gaadata/19(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/19 /gaadata/
#echo "INSTALL gaadata/20(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/20 /gaadata/
#echo "INSTALL gaadata/21(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/21 /gaadata/
#echo "INSTALL gaadata/22(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/22 /gaadata/
#echo "INSTALL gaadata/23(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/23 /gaadata/
#echo "INSTALL gaadata/24(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/24 /gaadata/
#echo "INSTALL gaadata/25(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/25 /gaadata/
#echo "INSTALL gaadata/26(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/26 /gaadata/
#echo "INSTALL gaadata/27(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/27 /gaadata/
#echo "INSTALL gaadata/28(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/28 /gaadata/
#echo "INSTALL gaadata/29(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/29 /gaadata/
#echo "INSTALL gaadata/30(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/30 /gaadata/
sync
### ============================================================

### log(after)
COUNT=1
COUNT_MAX=30
while [ $COUNT -le $COUNT_MAX ]
do
    if [ -e /gaadata/$COUNT ]; then
        echo "/gaadata/$COUNT" >> $LOGDIR/${LOGCOUNTNAME}_after_ls.txt 
        ls -l /gaadata/$COUNT >> $LOGDIR/${LOGCOUNTNAME}_after_ls.txt
    fi
    COUNT=`expr $COUNT + 1`
done
cd /
find . | sort > $LOGDIR/${LOGCOUNTNAME}_after_find.txt
df -h > $LOGDIR/${LOGCOUNTNAME}_after_df.txt
sync

#UI Start
echo "UI Start" >> /media/messages.txt 
cd /data/AppData/sony/pcsx
/usr/sony/bin/ui_menu --power-off-enable
echo "cp /data/sony/ui/error.log" >> /media/messages.txt 
cp -pr /data/sony/ui/error.log /media/error.log
sync


コピーしたいファイル番号のコメントを外してください
例)1番をコピーする場合

echo "INSTALL gaadata/1(USB -> PSC)" >> /media/messages.txt;cp -pr $GAMEDIR/1 /gaadata/


実行後、USBメモリの以下のファイルの中を見て、ファイルがコピーされていることを確認してください
/log/xxx_after_df.txt … PSC本体の空き領域
/log/xxx_after_ls.txt … PSC本体 /gaadata 配下のファイル一覧
/log/xxx_after_find.txt … PSC本体 全ファイル一覧(参考)
/messages.txt … 実行ログ