mikan's technical note

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

MENU

【PSC】ナムコバージョン完成

秘蔵のナムココレクション
全部吸い出すのに1日かかりました・・・
PS吸い出すのは約20年ぶり
f:id:myerss555:20190109220751j:plain

プレイステーションクラシックの中身を一旦全部消して
激選したゲームをインストール
ナムコバージョンの出来上がり♪
初代リッジレーサーが一番好きかも
f:id:myerss555:20190109220804j:plain
f:id:myerss555:20190109220813j:plain
f:id:myerss555:20190109220821j:plain
f:id:myerss555:20190109220833j:plain
f:id:myerss555:20190109220847j:plain

【PSC】本体へセーブデータをコピーするシェル

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

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


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

### ========== RECOVERY SAVEDATA (USB -> PSC) =================

#echo "RECOVERY SAVEDATA 1 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/1/.pcsx /data/AppData/sony/pcsx/1/.pcsx
#echo "RECOVERY SAVEDATA 2 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/2/.pcsx /data/AppData/sony/pcsx/2/.pcsx
#echo "RECOVERY SAVEDATA 3 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/3/.pcsx /data/AppData/sony/pcsx/3/.pcsx
#echo "RECOVERY SAVEDATA 4 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/4/.pcsx /data/AppData/sony/pcsx/4/.pcsx
#echo "RECOVERY SAVEDATA 5 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/5/.pcsx /data/AppData/sony/pcsx/5/.pcsx
#echo "RECOVERY SAVEDATA 6 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/6/.pcsx /data/AppData/sony/pcsx/6/.pcsx
#echo "RECOVERY SAVEDATA 7 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/7/.pcsx /data/AppData/sony/pcsx/7/.pcsx
#echo "RECOVERY SAVEDATA 8 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/8/.pcsx /data/AppData/sony/pcsx/8/.pcsx
#echo "RECOVERY SAVEDATA 9 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/9/.pcsx /data/AppData/sony/pcsx/9/.pcsx
#echo "RECOVERY SAVEDATA 10 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/10/.pcsx /data/AppData/sony/pcsx/10/.pcsx
#echo "RECOVERY SAVEDATA 11 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/11/.pcsx /data/AppData/sony/pcsx/11/.pcsx
#echo "RECOVERY SAVEDATA 12 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/12/.pcsx /data/AppData/sony/pcsx/12/.pcsx
#echo "RECOVERY SAVEDATA 13 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/13/.pcsx /data/AppData/sony/pcsx/13/.pcsx
#echo "RECOVERY SAVEDATA 14 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/14/.pcsx /data/AppData/sony/pcsx/14/.pcsx
#echo "RECOVERY SAVEDATA 15 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/15/.pcsx /data/AppData/sony/pcsx/15/.pcsx
#echo "RECOVERY SAVEDATA 16 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/16/.pcsx /data/AppData/sony/pcsx/16/.pcsx
#echo "RECOVERY SAVEDATA 17 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/17/.pcsx /data/AppData/sony/pcsx/17/.pcsx
#echo "RECOVERY SAVEDATA 18 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/18/.pcsx /data/AppData/sony/pcsx/18/.pcsx
#echo "RECOVERY SAVEDATA 19 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/19/.pcsx /data/AppData/sony/pcsx/19/.pcsx
#echo "RECOVERY SAVEDATA 20 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/20/.pcsx /data/AppData/sony/pcsx/20/.pcsx
#echo "RECOVERY SAVEDATA 21 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/21/.pcsx /data/AppData/sony/pcsx/21/.pcsx
#echo "RECOVERY SAVEDATA 22 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/22/.pcsx /data/AppData/sony/pcsx/22/.pcsx
#echo "RECOVERY SAVEDATA 23 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/23/.pcsx /data/AppData/sony/pcsx/23/.pcsx
#echo "RECOVERY SAVEDATA 24 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/24/.pcsx /data/AppData/sony/pcsx/24/.pcsx
#echo "RECOVERY SAVEDATA 25 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/25/.pcsx /data/AppData/sony/pcsx/25/.pcsx
#echo "RECOVERY SAVEDATA 26 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/26/.pcsx /data/AppData/sony/pcsx/26/.pcsx
#echo "RECOVERY SAVEDATA 27 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/27/.pcsx /data/AppData/sony/pcsx/27/.pcsx
#echo "RECOVERY SAVEDATA 28 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/28/.pcsx /data/AppData/sony/pcsx/28/.pcsx
#echo "RECOVERY SAVEDATA 29 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/29/.pcsx /data/AppData/sony/pcsx/29/.pcsx
#echo "RECOVERY SAVEDATA 30 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/30/.pcsx /data/AppData/sony/pcsx/30/.pcsx
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


削除したいファイル番号のコメントを外してください
例)22番をコピー(リカバリ)する場合

echo "RECOVERY SAVEDATA 22 (USB -> PSC)" >> /media/messages.txt;cp -pr $BACKUPDIR/data/AppData/sony/pcsx/22/.pcsx /data/AppData/sony/pcsx/22/


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