Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Phroneris/ef687cd795224a325fc91602fcd86510 to your computer and use it in GitHub Desktop.
Save Phroneris/ef687cd795224a325fc91602fcd86510 to your computer and use it in GitHub Desktop.

東方錦上京体験版内部データ抽出Bashスクリプト v0.0.1

実行に必要なもの

  • ExtractTH20tr.bash(ここで配布)
  • ErrTrap.bash(ここで配布)
  • 東方錦上京体験版の th20tr.dat
  • Windows
  • Bash
    • Git for Windows v2.49.0 (64-bit) のGit Bash (GNU bash v5.3.47) を特に想定している
    • その他色々な外部コマンドやPerlのモジュール等も必要だが、Git for Windowsなら一通り入っているはず
  • nkf (Network Kanji Filter) https://github.com/kkato233/nkf/releases/tag/v2.1.5.1
    • 実は公式URLではないが、現状最もマトモに入手できる最新版がこれ
    • Zipの中の nkf.exe/usr/bin/ (C:\Program Files\Git\usr\bin\) 等に配置
      • もしくは、PC内の好きな所に nkf.exe を配置してから良い感じにパスを通す
  • thtk (Touhou Toolkit) https://thtk.thpatch.net/
    • 東方錦上京に対応しているバージョンが必要
      • 現状ではリリースビルドではなくナイトリービルドしか対応していない
    • PC内の好きな所にZipを展開して、展開物に thdat.exe thtk.dll 等があることを確認

実行方法

  1. 錦上京データ抽出先ディレクトリを、PC内の好きな所に好きな名前で新規作成
  2. その直下に ExtractTH20tr.bash スクリプトの保存用ディレクトリを、好きな名前で新規作成
  3. スクリプト用ディレクトリに ExtractTH20tr.bashErrTrap.bash を保存
    • エンコーディングはUTF-8(BOM無し)、改行コードはLFとすること
  4. 保存した ExtractTH20tr.bash の中の ##### ↓次の2行を編集↓ ##### が指す2行を、自分の環境におけるthtkのディレクトリのパスと th20tr.dat のパスになるようにそれぞれ編集
    • パスの書き方(特にフルパス)は次のどれか:
      • C:\my\path: ドライブは C:、パス区切り文字は \
      • C:/my/path: ドライブは C:、パス区切り文字は /
      • /c/my/path: ドライブは /c、パス区切り文字は /
  5. ExtractTH20tr.bash を実行
    • ダブルクリックで実行すると軽微な既知の不具合が出るので、可能ならBashターミナルからの実行を推奨
      • Git for Windowsでは、エクスプローラーでスクリプト用ディレクトリを右クリック→ "Open Git Bash here" で開かれたBashターミナルから、次のように実行することを特に推奨:
        ./ExtractTH20tr.bash
      • あるいは ExtractTH20tr.bash のフルパスを用いて次のように実行することもできるが、パスにスペースや ! $ ' ` が含まれる場合の面倒事には要注意
        "C:/東方錦上京体験版 データ抽出/,,script/ExtractTH20tr.bash"

得られるもの

  • データ抽出先ディレクトリ下:
    • 東方錦上京体験版の内部データを色々展開したり変換したりしたもの
  • スクリプト用ディレクトリ下:
    • log1.log: 正常なログ出力
    • log2-error.log: エラーログ出力

実際に私が実行した結果の log1.log log2-error.log や、実行前後のファイル一覧 files1-before.txt files2-after.txt も置いておくので、適宜参考にされたし。

備考

  • 再実行する場合、抽出先ディレクトリ直下はスクリプト用ディレクトリ以外何も無い状態に戻しておくこと
  • スクリプトの保存・編集にはNotepad++やVS Code等のちゃんとしたエディターを推奨
    • 標準のメモ帳では改行コードを指定できないため
    • 構文ハイライトが利くと、変な編集をしちゃった場合に異変に気付きやすいため
    • 特にVS Codeでは、変更したい文字を選択してからCtrl+Dを押すと同じ文字の他の出現箇所を次々に同時選択できて変更が捗るため
  • thanm によって自動生成されるディレクトリと区別するために、ExtractTH20tr.bash で独自生成するディレクトリ名は全てカンマで始まるようになっている
    • 気に食わなければ Dir=', で検索して一括置換すると良い
    • この延長線上として、個人的にはスクリプト用ディレクトリの名前は ,,script としている

既知の不具合

  • *.std ファイルは "Segmentation fault" エラーにより変換不能
  • ダブルクリックで実行すると、上記エラーがターミナルやログに出力されない
#!/usr/bin/env bash
### 推奨する設定: set -eEuo pipefail と shopt -s inherit_errexit の両方
### set -e: エラー時に停止
### -E: 関数やサブシェルの中でもtrap
### -u: 未定義変数でエラー
### -o pipefail: パイプ全体の終了ステータスを最後のエラーのものにする
### shopt -s inherit_errexit: サブシェルにも set -e を正しく継承(Bash 4.4~)
## 重複読み込みの防止
## ただ、現状このスクリプトを読み込む分には重複しても影響は多分無い
## (ファイルオープンとかをここでやるようになると危ない)
[[ ${__MYERRTRAP_LOADED:-} ]] && return
__MYERRTRAP_LOADED=1
### 本体
catch () {
exitCode=$?
__MYERRTRAP_FINALPAUSE_INTERACTIVE=1
echo 1>&2
echo 'エラーが発生しました。' 1>&2
echo "スクリプト: ${BASH_SOURCE[-1]}" 1>&2
stSize="${#FUNCNAME[@]}"
if ((stSize == 2)); then
echo "コマンド(${BASH_LINENO[0]} 行目): ${BASH_COMMAND}" 1>&2
echo "終了コード: ${exitCode}" 1>&2
else
echo "コマンド: ${BASH_COMMAND}" 1>&2
echo "終了コード: ${exitCode}" 1>&2
echo 'スタックトレース:' 1>&2
for ((i = 0; i < stSize - 1; i++)); do
echo " \"${BASH_SOURCE[i + 1]}\" ${BASH_LINENO[i]} 行目: ${FUNCNAME[i]}()" 1>&2
done
fi
echo "作業ディレクトリ: ${PWD}" 1>&2
}
finally () { # ダブルクリック実行の場合、フラグに反応して待機
if [[ ${__MYERRTRAP_FINALPAUSE_ALWAYS:-} || $- == *i* && ${__MYERRTRAP_FINALPAUSE_INTERACTIVE:-} ]]; then
echo 1>&2
read -rsp '何かキーを押すと終了します。' -n 1
fi
}
trap catch ERR
trap finally EXIT
### ユーティリティ
abort () {
## ハイフンで始まるオプションと紛らわしい文字列でも、必ずただの文字として出力する
printf -- '%s\n' "${@}" 1>&2
return 1
}
#!/usr/bin/env bash
# 東方錦上京体験版内部データ展開Bashスクリプト v0.0.1
set -eEuo pipefail
shopt -s inherit_errexit
. ErrTrap.bash
__MYERRTRAP_FINALPAUSE_INTERACTIVE=1
shopt -s nullglob dotglob extglob # failglob
## あらゆるパスに対応するため、エスケープ一切不要のヒアドキュメントでパスを指定
{
read -r thtkDirPath
read -r datPath
} << 'thtkのディレクトリのパスとth20tr.datのパス' ##### ↓次の2行を編集↓ #####
D:/Games/東方Project/いじり/TouhouToolkit - データ全般抜き出し/thtk-win32-x64_20250506-97dc32fかも
D:/Games/東方Project/原作関連/,trial/th20tr_例大祭/th20tr.dat
thtkのディレクトリのパスとth20tr.datのパス
scriptPath=$(cygpath --unix -- "$(realpath -- "${0}")")
scriptDirPath=$(dirname -- "${scriptPath}")
logFile="${scriptDirPath}/log1.log" # 自身のディレクトリにcdする前なのでフルパスで指定
logErrFile="${scriptDirPath}/log2-error.log"
: > "$logFile" # truncateでも良いが、ログ取り前なのでなるべく安全に
: > "$logErrFile"
exec 1> >(tee -a -- "$logFile")
exec 2> >(tee -a -- "$logErrFile" 1>&2)
gameVer=20
echo "実行日時: $(date)"
echo "thtkディレクトリ: \"${thtkDirPath}\""
echo "原作バージョン: ${gameVer}"
echo
echo
cd "${scriptDirPath}"
echo '作業ディレクトリを抽出先ディレクトリに移動中...'
cd ..
scriptDirName=$(basename -- "${scriptDirPath}")
echo
badFiles="!(${scriptDirName}|desktop.ini|Thumbs.db)"
if compgen -G "${badFiles}" > /dev/null; then
# shellcheck disable=SC2206 # 変数由来のglobの結果を配列に入れたいのでチェック無効化
badFiles=($badFiles)
abort "作業ディレクトリ(抽出先ディレクトリ)に \"${scriptDirName}\" 以外のファイルまたはディレクトリがあります:" \
"$(printf -- '- "%s"\n' "${badFiles[@]}")" \
'' \
'これらを削除するか、スクリプトを別の適切なディレクトリに保存して実行して下さい。'
fi
echo
echo "\"${datPath}\" を展開中..."
echo
"${thtkDirPath}/thdat" "-x${gameVer}" -- "${datPath}" | nkf -x -S -w -Lu
echo
echo
wantsAnmSpec=
if [[ $wantsAnmSpec ]]; then
specLog="${scriptDirPath}/anmSpec.log"
echo "\"${specLog}\" を準備中..."
truncate --size=0 -- "${specLog}"
echo
fi
echo '全ての *.anm ファイルを展開&移動中...'
echo
for anm in *.anm; do
echo "\"${anm}\" を展開中..."
"${thtkDirPath}/thanm" "-x${gameVer}" -uu -- "${anm}" | nkf -x -S -w -Lu # -uu で表情差分を自動切り抜き
if [[ $wantsAnmSpec ]]; then
echo "\"${anm}\" の展開情報を \"${specLog}\" に書き足し中..."
else
echo "\"${anm}\" の展開情報を取得中..."
fi
spec=$("${thtkDirPath}/thanm" "-l${gameVer}" -u -- "${anm}" | nkf -x -S -w -Lu) # -u と -uu は -l においては恐らく同じ
[[ $wantsAnmSpec ]] && echo -e "===== \"${anm}\" =====\n\n${spec}\n\n" >> "${specLog}"
## 情報の最初に現れたnameのパス(@始まりでない)のディレクトリにファイルを移動
# firstName=$(perl -ne 'print $1 and last if /^ +name: "([^@].*)",?$/' <<< "${spec}")
# if [[ $firstName ]]; then
# firstDir=$(dirname "${firstName}")
# if [[ ! $firstDir == . ]]; then
# echo "展開情報に基づいて \"${anm}\" を \"${firstDir}\" に移動中..."
# mv --verbose "${anm}" "${firstDir}/"
# fi
# fi
## 情報にある全てのnameのパス(@始まりでない)のディレクトリにファイルを移動orコピー
mapfile -d '' -t dirs < <(perl -mFile::Basename=dirname -ne '
push @names, $1 if /^ +name: "([^@].*)",?$/;
END { # dirname→重複削除(順番保持)→ヌル文字区切り出力
print join "\0", (grep { ! $seen{$_}++; } map { dirname $_; } @names), "";
}
' <<< "${spec}")
isCopied=
for dir in "${dirs[@]}"; do
if [[ $dir != . ]]; then
if ((${#dirs[@]} == 1)); then
echo "展開情報に基づいて \"${anm}\" を移動中..."
mv --verbose -- "${anm}" "${dir}/"
else
[[ $isCopied ]] || echo "展開情報に基づいて \"${anm}\" をコピー中..."
cp --verbose -- "${anm}" "${dir}/"
isCopied=1
fi
fi
done
if [[ $isCopied ]]; then
echo "複数コピー元の \"${anm}\" を削除中..."
rm --verbose -- "${anm}"
fi
echo
done
echo
echo '全ての *.ecl ファイルを移動&ダンプ出力中...'
echo
eclDir=',ecl'
mkdir --verbose -- "${eclDir}"
echo
for ecl in *.ecl; do
echo "\"${ecl}\" を \"${eclDir}\" に移動中..."
mv --verbose -- "${ecl}" "${eclDir}/"
ecl="${eclDir}/${ecl}"
output="${ecl}.txt"
echo "\"${ecl}\" を \"${output}\" にダンプ出力中..."
"${thtkDirPath}/thecl" "-d${gameVer}" -- "${ecl}" "${output}" # ダンプ系に標準出力は無い
echo
done
echo
echo '全ての *.std ファイルを移動&ダンプ出力中...'
echo '(ただし現状全てエラー)'
echo
stdDir=',std'
mkdir --verbose -- "${stdDir}"
echo
for std in *.std; do
echo "\"${std}\" を \"${stdDir}\" に移動中..."
mv --verbose -- "${std}" "${stdDir}/"
std="${stdDir}/${std}"
output="${std}.txt"
echo "\"${std}\" を \"${output}\" にダンプ出力中..."
"${thtkDirPath}/thstd" "-d${gameVer}" -- "${std}" "${output}" || true
echo
done
echo
echo '全ての *.msg ファイルを移動&ダンプ出力中...'
echo
msgDir=',msg'
mkdir --verbose -- "${msgDir}"
echo
for msg in *.msg; do
echo "\"${msg}\" を \"${msgDir}\" に移動中..."
mv --verbose -- "${msg}" "${msgDir}/"
msg="${msgDir}/${msg}"
output="${msg}.txt"
echo "\"${msg}\" を \"${output}\" にダンプ出力中..."
if [[ $(basename -- "${msg}") =~ ^(end[0-9]+|staff) ]]; then # ED/スタッフロール系ファイルは体験版には無いけど…
option="-ed${gameVer}"
else
option="-d${gameVer}"
fi
"${thtkDirPath}/thmsg" "${option}" -- "${msg}" "${output}"
echo
done
echo
echo 'その他ファイル整理中...'
echo
musicDir=',music'
mkdir --verbose -- "${musicDir}"
mv --verbose -- musiccmt_tr.txt thbgm_tr.fmt "${musicDir}/"
echo
seDir=',se'
mkdir --verbose -- "${seDir}"
mv --verbose -- se_*.wav "${seDir}/"
echo
mv --verbose -- help_*.png help/
mv --verbose -- notice_*.png help/notice/
mv --verbose -- trophy_tr.txt help/trophy/
echo
for pl in pl00 pl01; do
mv --verbose -- "${pl}.sht" "player/${pl}/"
done
echo
mv --verbose -- stonetext.txt stone/
echo
echo
echo '全て完了!'
./
,,script/
ErrTrap.bash
ExtractTH20tr.bash
./
,,script/
ErrTrap.bash
ExtractTH20tr.bash
log1.log
log2-error.log
,ecl/
common.ecl
common.ecl.txt
default.ecl
default.ecl.txt
st01.ecl
st01.ecl.txt
st01bs.ecl
st01bs.ecl.txt
st01mbs.ecl
st01mbs.ecl.txt
st02.ecl
st02.ecl.txt
st02bs.ecl
st02bs.ecl.txt
st02mbs.ecl
st02mbs.ecl.txt
st03.ecl
st03.ecl.txt
st03bs.ecl
st03bs.ecl.txt
,msg/
st01m0.msg
st01m0.msg.txt
st01m1.msg
st01m1.msg.txt
st01m2.msg
st01m2.msg.txt
st01m3.msg
st01m3.msg.txt
st01r0.msg
st01r0.msg.txt
st01r1.msg
st01r1.msg.txt
st01r2.msg
st01r2.msg.txt
st01r3.msg
st01r3.msg.txt
st02m0.msg
st02m0.msg.txt
st02m1.msg
st02m1.msg.txt
st02m2.msg
st02m2.msg.txt
st02m3.msg
st02m3.msg.txt
st02r0.msg
st02r0.msg.txt
st02r1.msg
st02r1.msg.txt
st02r2.msg
st02r2.msg.txt
st02r3.msg
st02r3.msg.txt
st03m0.msg
st03m0.msg.txt
st03m1.msg
st03m1.msg.txt
st03m2.msg
st03m2.msg.txt
st03m3.msg
st03m3.msg.txt
st03r0.msg
st03r0.msg.txt
st03r1.msg
st03r1.msg.txt
st03r2.msg
st03r2.msg.txt
st03r3.msg
st03r3.msg.txt
,music/
musiccmt_tr.txt
thbgm_tr.fmt
,se/
se_big.wav
se_bonus.wav
se_bonus2.wav
se_bonus4.wav
se_boon00.wav
se_boon01.wav
se_cancel00.wav
se_cardget.wav
se_cat00.wav
se_ch00.wav
se_ch01.wav
se_ch02.wav
se_ch03.wav
se_changeitem.wav
se_damage00.wav
se_damage01.wav
se_don00.wav
se_enep00.wav
se_enep01.wav
se_enep02.wav
se_etbreak.wav
se_extend.wav
se_extend2.wav
se_fault.wav
se_graze.wav
se_gun00.wav
se_heal.wav
se_invalid.wav
se_item00.wav
se_item01.wav
se_kira00.wav
se_kira01.wav
se_kira02.wav
se_lazer00.wav
se_lazer01.wav
se_lazer02.wav
se_lgods1.wav
se_lgods2.wav
se_lgods3.wav
se_lgods4.wav
se_lgodsget.wav
se_msl.wav
se_msl2.wav
se_msl3.wav
se_nep00.wav
se_nodamage.wav
se_noise.wav
se_notice.wav
se_ok00.wav
se_pause.wav
se_pin00.wav
se_pin01.wav
se_pldead00.wav
se_pldead01.wav
se_plst00.wav
se_power0.wav
se_power1.wav
se_powerup.wav
se_release.wav
se_select00.wav
se_slash.wav
se_tan00.wav
se_tan01.wav
se_tan02.wav
se_tan03.wav
se_timeout.wav
se_timeout2.wav
se_trophy.wav
se_warpl.wav
se_warpr.wav
se_wolf.wav
,std/
st01.std
st01.std.txt
st02.std
st02.std.txt
st03.std
st03.std.txt
ascii/
ascii.anm
ascii1280.anm
ascii@[email protected]
ascii_1280@[email protected]
ascii_960.anm
ascii_960@[email protected]
ascii_big2@[email protected]
ascii_big2@[email protected]
ascii_big2@[email protected]
ascii_big2f@[email protected]
ascii_big2f@[email protected]
ascii_big2f@[email protected]
ascii_big@[email protected]
ascii_big@[email protected]
ascii_big@[email protected]
ascii_bigf@[email protected]
ascii_bigf@[email protected]
ascii_bigf@[email protected]
ascii_norm2@[email protected]
ascii_norm2@[email protected]
ascii_norm2@[email protected]
ascii_norm2f@[email protected]
ascii_norm2f@[email protected]
ascii_norm2f@[email protected]
fronttr.anm
loading@[email protected]
loading@[email protected]
loading@[email protected]
pause@[email protected]
pause_back@[email protected]
pause_title@[email protected]
background/
stage01/
A007@[email protected]
st01a@[email protected]
st01b@[email protected]
st01c@[email protected]
st01wl.anm
stage02/
st02a@[email protected]
st02b00@[email protected]
st02c00@[email protected]
st02wl.anm
stage03/
st03a00@[email protected]
st03b00@[email protected]
st03c00@[email protected]
st03d00@[email protected]
st03wl.anm
bullet/
aura.anm
aura@[email protected]
bullet.anm
bullet1@[email protected]
bullet2@[email protected]
bullet3@[email protected]
bullet4@[email protected]
bullet5@[email protected]
bullet6@[email protected]
item@[email protected]
laser1@[email protected]
laser2@[email protected]
effect/
bullet.anm
eff_aura@[email protected]
eff_base@[email protected]
eff_breakwave2@[email protected]
eff_breakwave3@[email protected]
eff_charge@[email protected]
eff_deadcircle@[email protected]
eff_line@[email protected]
eff_magicsquare@[email protected]
eff_maple@[email protected]
eff_sloweffect@[email protected]
eff_splash@[email protected]
eff_switch@[email protected]
eff_switch@[email protected]
eff_switchbg@[email protected]
effect.anm
efflinegoast@[email protected]
etbreak@[email protected]
screenswitch.anm
enemy/
enemy.anm
enemy2@[email protected]
enemy2@[email protected]
enemy5@[email protected]
enemy@[email protected]
enemy_aura@[email protected]
enemy_g@[email protected]
enemy_ll2@[email protected]
enemy_ll@[email protected]
enemy_stone@[email protected]
ghost.anm
face/
enemy1/
ename01@[email protected]
face01an@[email protected]
face01anl@[email protected]
face01bs@[email protected]
face01bsl@[email protected]
face01ct@[email protected]
face01dp@[email protected]
face01dpl@[email protected]
face01hp@[email protected]
face01hpl@[email protected]
face01lo@[email protected]
face01lol@[email protected]
face01n2@[email protected]
face01n2l@[email protected]
face01no@[email protected]
face01nol@[email protected]
face01pr@[email protected]
face01prl@[email protected]
face01sp@[email protected]
face01spl@[email protected]
face01sw@[email protected]
face01swl@[email protected]
st01enm.anm
enemy2/
ename01@[email protected]
face01an@[email protected]
face01anl@[email protected]
face01bs@[email protected]
face01bsl@[email protected]
face01ct@[email protected]
face01dp@[email protected]
face01dpl@[email protected]
face01hp@[email protected]
face01hpl@[email protected]
face01lo@[email protected]
face01lol@[email protected]
face01n2@[email protected]
face01n2l@[email protected]
face01no@[email protected]
face01nol@[email protected]
face01pr@[email protected]
face01prl@[email protected]
face01sp@[email protected]
face01spl@[email protected]
face01sw@[email protected]
face01swl@[email protected]
st02enm.anm
enemy3/
ename01@[email protected]
face01an@[email protected]
face01anl@[email protected]
face01bs@[email protected]
face01bsl@[email protected]
face01ct@[email protected]
face01dp@[email protected]
face01dpl@[email protected]
face01hp@[email protected]
face01hpl@[email protected]
face01lo@[email protected]
face01lol@[email protected]
face01n2@[email protected]
face01n2l@[email protected]
face01no@[email protected]
face01nol@[email protected]
face01pr@[email protected]
face01prl@[email protected]
face01sp@[email protected]
face01spl@[email protected]
face01sw@[email protected]
face01swl@[email protected]
st03enm.anm
pl00/
face_pl00an@[email protected]
face_pl00bsb@[email protected]
face_pl00bsg@[email protected]
face_pl00bsr@[email protected]
face_pl00bsy@[email protected]
face_pl00dp@[email protected]
face_pl00hp@[email protected]
face_pl00lo@[email protected]
face_pl00n2@[email protected]
face_pl00no@[email protected]
face_pl00pr@[email protected]
face_pl00sp@[email protected]
face_pl00sw@[email protected]
pl00.anm
pl01/
face_pl01an@[email protected]
face_pl01bsb@[email protected]
face_pl01bsg@[email protected]
face_pl01bsr@[email protected]
face_pl01bsy@[email protected]
face_pl01dp@[email protected]
face_pl01hp@[email protected]
face_pl01lo@[email protected]
face_pl01n2@[email protected]
face_pl01no@[email protected]
face_pl01pr@[email protected]
face_pl01sp@[email protected]
face_pl01sw@[email protected]
pl01.anm
balloon_1024@[email protected]
balloon_1024@[email protected]
balloon_1024@[email protected]
balloon_1024@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
dummy@[email protected]
fronttr.anm
pl00.anm
pl01.anm
front/
logo/
st01logo.anm
st01logo@[email protected]
st01logo@[email protected]
st02logo.anm
st02logo@[email protected]
st02logo@[email protected]
st03logo.anm
st03logo@[email protected]
st03logo@[email protected]
ename_tr@[email protected]
front00@[email protected]
front01@[email protected]
fronttr.anm
lifebar@[email protected]
stone.anm
stonegauge@[email protected]
help/
notice/
notice.anm
notice_01.png
notice_bk@[email protected]
trophy/
trophy.anm
trophy@[email protected]
trophy_tr.txt
help.anm
help_01.png
help_02.png
help_03.png
help_04.png
help_05.png
help_06.png
help_07.png
help_08.png
help_09.png
helpmenu@[email protected]
loading/
sig.anm
sig1280@[email protected]
player/
pl00/
pl00.anm
pl00.sht
pl00@[email protected]
pl00b@[email protected]
pl00s@[email protected]
pl01/
pl01.anm
pl01.sht
pl01@[email protected]
pl01b2@[email protected]
pl01b@[email protected]
pl01g@[email protected]
pl01s@[email protected]
stgenm/
stage01/
cardbg0@[email protected]
cardbg1@[email protected]
enm1@[email protected]
st01enm.anm
stage02/
cdbg02a00@[email protected]
cdbg02b@[email protected]
enm2@[email protected]
st02enm.anm
stage03/
cdbg03a00@[email protected]
cdbg03b@[email protected]
enm3@[email protected]
st03enm.anm
stone/
button@[email protected]
stone.anm
stone_blue2@[email protected]
stone_blue2_80@[email protected]
stone_blue@[email protected]
stone_blue_80@[email protected]
stone_common@[email protected]
stone_common_80@[email protected]
stone_green2@[email protected]
stone_green2_80@[email protected]
stone_green@[email protected]
stone_green_80@[email protected]
stone_min@[email protected]
stone_red2@[email protected]
stone_red2_80@[email protected]
stone_red@[email protected]
stone_red_80@[email protected]
stone_yellow2@[email protected]
stone_yellow2_80@[email protected]
stone_yellow@[email protected]
stone_yellow_80@[email protected]
stonetext.txt
text@[email protected]
title/
selecttitle/
sl_manual@[email protected]
sl_music@[email protected]
sl_player@[email protected]
sl_playerdata@[email protected]
sl_playerdataselect@[email protected]
sl_rank@[email protected]
sl_regist@[email protected]
sl_replay@[email protected]
sl_savereplay@[email protected]
sl_spell@[email protected]
sl_stage@[email protected]
sl_trophy@[email protected]
sl_weapon@[email protected]
titletr.anm
demoplay@[email protected]
fronttr.anm
pldata_select@[email protected]
rank00@[email protected]
result00@[email protected]
spell@[email protected]
title_bk00@[email protected]
title_ch00@[email protected]
title_copy@[email protected]
title_logo@[email protected]
title_pl00b@[email protected]
title_pl00bG@[email protected]
title_pl00bb@[email protected]
title_pl00br@[email protected]
title_pl00by@[email protected]
title_pl00c2@[email protected]
title_pl00c@[email protected]
title_pl01b@[email protected]
title_pl01bG@[email protected]
title_pl01bb@[email protected]
title_pl01br@[email protected]
title_pl01by@[email protected]
title_pl01c2@[email protected]
title_pl01c@[email protected]
title_v_tr.anm
title_ver_tr@[email protected]
titletr.anm
text.anm
th20_0001a.ver
実行日時: 2025年 5月 31日 土曜日 14:18:51
thtkディレクトリ: "D:/Games/東方Project/いじり/TouhouToolkit - データ全般抜き出し/thtk-win32-x64_20250506-97dc32fかも"
原作バージョン: 20
作業ディレクトリを抽出先ディレクトリに移動中...
"D:/Games/東方Project/原作関連/,trial/th20tr_例大祭/th20tr.dat" を展開中...
ascii1280.anm
effect.anm
screenswitch.anm
enemy.anm
fronttr.anm
ascii.anm
pl00.anm
help.anm
ascii_960.anm
pl01.anm
stone.anm
sig.anm
st01enm.anm
st01wl.anm
st02enm.anm
bullet.anm
st02wl.anm
st03enm.anm
st01logo.anm
st03logo.anm
st02logo.anm
trophy.anm
st03wl.anm
text.anm
notice.anm
aura.anm
ghost.anm
title_v_tr.anm
default.ecl
musiccmt_tr.txt
trophy_tr.txt
titletr.anm
pl00.sht
stonetext.txt
pl01.sht
st01mbs.ecl
st01bs.ecl
st01.ecl
common.ecl
st02bs.ecl
st02.ecl
st02mbs.ecl
st01r0.msg
st01r1.msg
st03.ecl
st03bs.ecl
st01r2.msg
st01r3.msg
st01m1.msg
st01m2.msg
st01m0.msg
st01m3.msg
st02r1.msg
st02r0.msg
st02r2.msg
st02r3.msg
st02m0.msg
st02m1.msg
st02m2.msg
st02m3.msg
st03r0.msg
st03r1.msg
st03r2.msg
st03r3.msg
st03m0.msg
st03m1.msg
st03m2.msg
st01.std
st02.std
st03m3.msg
st03.std
help_01.png
help_02.png
help_04.png
help_06.png
help_07.png
help_09.png
help_08.png
notice_01.png
se_plst00.wav
help_03.png
se_enep00.wav
se_pldead00.wav
se_power0.wav
se_tan00.wav
se_tan01.wav
se_power1.wav
se_tan02.wav
se_select00.wav
se_ok00.wav
se_cancel00.wav
se_cat00.wav
se_lazer00.wav
se_lazer01.wav
se_damage00.wav
se_item00.wav
se_kira00.wav
se_kira01.wav
se_kira02.wav
se_timeout.wav
se_graze.wav
se_powerup.wav
se_pause.wav
se_cardget.wav
se_gun00.wav
se_damage01.wav
se_timeout2.wav
se_invalid.wav
se_slash.wav
se_ch00.wav
se_ch01.wav
se_cardget.wav
se_nep00.wav
se_bonus.wav
se_bonus2.wav
se_enep02.wav
se_lazer02.wav
se_extend.wav
se_nodamage.wav
se_boon00.wav
se_don00.wav
se_boon01.wav
se_ch02.wav
se_ch03.wav
se_pin00.wav
se_extend2.wav
se_pin01.wav
se_lgods1.wav
se_lgods2.wav
se_lgods3.wav
se_lgods4.wav
se_lgodsget.wav
se_msl.wav
se_msl2.wav
se_pldead01.wav
se_heal.wav
se_msl3.wav
se_enep01.wav
se_noise.wav
help_05.png
se_fault.wav
se_etbreak.wav
se_wolf.wav
se_bonus4.wav
se_big.wav
se_release.wav
se_changeitem.wav
se_warpl.wav
se_warpr.wav
se_item01.wav
se_notice.wav
thbgm_tr.fmt
th20_0001a.ver
se_trophy.wav
se_tan03.wav
全ての *.anm ファイルを展開&移動中...
"ascii.anm" を展開中...
"ascii.anm" の展開情報を取得中...
展開情報に基づいて "ascii.anm" を移動中...
renamed 'ascii.anm' -> 'ascii/ascii.anm'
"ascii_960.anm" を展開中...
"ascii_960.anm" の展開情報を取得中...
展開情報に基づいて "ascii_960.anm" を移動中...
renamed 'ascii_960.anm' -> 'ascii/ascii_960.anm'
"ascii1280.anm" を展開中...
"ascii1280.anm" の展開情報を取得中...
展開情報に基づいて "ascii1280.anm" を移動中...
renamed 'ascii1280.anm' -> 'ascii/ascii1280.anm'
"aura.anm" を展開中...
"aura.anm" の展開情報を取得中...
展開情報に基づいて "aura.anm" を移動中...
renamed 'aura.anm' -> 'bullet/aura.anm'
"bullet.anm" を展開中...
"bullet.anm" の展開情報を取得中...
展開情報に基づいて "bullet.anm" をコピー中...
'bullet.anm' -> 'bullet/bullet.anm'
'bullet.anm' -> 'effect/bullet.anm'
複数コピー元の "bullet.anm" を削除中...
removed 'bullet.anm'
"effect.anm" を展開中...
"effect.anm" の展開情報を取得中...
展開情報に基づいて "effect.anm" を移動中...
renamed 'effect.anm' -> 'effect/effect.anm'
"enemy.anm" を展開中...
"enemy.anm" の展開情報を取得中...
展開情報に基づいて "enemy.anm" を移動中...
renamed 'enemy.anm' -> 'enemy/enemy.anm'
"fronttr.anm" を展開中...
"fronttr.anm" の展開情報を取得中...
展開情報に基づいて "fronttr.anm" をコピー中...
'fronttr.anm' -> 'front/fronttr.anm'
'fronttr.anm' -> 'title/fronttr.anm'
'fronttr.anm' -> 'ascii/fronttr.anm'
'fronttr.anm' -> 'face/fronttr.anm'
複数コピー元の "fronttr.anm" を削除中...
removed 'fronttr.anm'
"ghost.anm" を展開中...
"ghost.anm" の展開情報を取得中...
展開情報に基づいて "ghost.anm" を移動中...
renamed 'ghost.anm' -> 'enemy/ghost.anm'
"help.anm" を展開中...
"help.anm" の展開情報を取得中...
展開情報に基づいて "help.anm" を移動中...
renamed 'help.anm' -> 'help/help.anm'
"notice.anm" を展開中...
"notice.anm" の展開情報を取得中...
展開情報に基づいて "notice.anm" を移動中...
renamed 'notice.anm' -> 'help/notice/notice.anm'
"pl00.anm" を展開中...
"pl00.anm" の展開情報を取得中...
展開情報に基づいて "pl00.anm" をコピー中...
'pl00.anm' -> 'player/pl00/pl00.anm'
'pl00.anm' -> 'face/pl00/pl00.anm'
'pl00.anm' -> 'face/pl00.anm'
複数コピー元の "pl00.anm" を削除中...
removed 'pl00.anm'
"pl01.anm" を展開中...
"pl01.anm" の展開情報を取得中...
展開情報に基づいて "pl01.anm" をコピー中...
'pl01.anm' -> 'player/pl01/pl01.anm'
'pl01.anm' -> 'face/pl01/pl01.anm'
'pl01.anm' -> 'face/pl01.anm'
複数コピー元の "pl01.anm" を削除中...
removed 'pl01.anm'
"screenswitch.anm" を展開中...
"screenswitch.anm" の展開情報を取得中...
展開情報に基づいて "screenswitch.anm" を移動中...
renamed 'screenswitch.anm' -> 'effect/screenswitch.anm'
"sig.anm" を展開中...
"sig.anm" の展開情報を取得中...
展開情報に基づいて "sig.anm" を移動中...
renamed 'sig.anm' -> 'loading/sig.anm'
"st01enm.anm" を展開中...
"st01enm.anm" の展開情報を取得中...
展開情報に基づいて "st01enm.anm" をコピー中...
'st01enm.anm' -> 'stgenm/stage01/st01enm.anm'
'st01enm.anm' -> 'face/enemy1/st01enm.anm'
複数コピー元の "st01enm.anm" を削除中...
removed 'st01enm.anm'
"st01logo.anm" を展開中...
"st01logo.anm" の展開情報を取得中...
展開情報に基づいて "st01logo.anm" を移動中...
renamed 'st01logo.anm' -> 'front/logo/st01logo.anm'
"st01wl.anm" を展開中...
"st01wl.anm" の展開情報を取得中...
展開情報に基づいて "st01wl.anm" を移動中...
renamed 'st01wl.anm' -> 'background/stage01/st01wl.anm'
"st02enm.anm" を展開中...
"st02enm.anm" の展開情報を取得中...
展開情報に基づいて "st02enm.anm" をコピー中...
'st02enm.anm' -> 'stgenm/stage02/st02enm.anm'
'st02enm.anm' -> 'face/enemy2/st02enm.anm'
複数コピー元の "st02enm.anm" を削除中...
removed 'st02enm.anm'
"st02logo.anm" を展開中...
"st02logo.anm" の展開情報を取得中...
展開情報に基づいて "st02logo.anm" を移動中...
renamed 'st02logo.anm' -> 'front/logo/st02logo.anm'
"st02wl.anm" を展開中...
"st02wl.anm" の展開情報を取得中...
展開情報に基づいて "st02wl.anm" を移動中...
renamed 'st02wl.anm' -> 'background/stage02/st02wl.anm'
"st03enm.anm" を展開中...
"st03enm.anm" の展開情報を取得中...
展開情報に基づいて "st03enm.anm" をコピー中...
'st03enm.anm' -> 'stgenm/stage03/st03enm.anm'
'st03enm.anm' -> 'face/enemy3/st03enm.anm'
複数コピー元の "st03enm.anm" を削除中...
removed 'st03enm.anm'
"st03logo.anm" を展開中...
"st03logo.anm" の展開情報を取得中...
展開情報に基づいて "st03logo.anm" を移動中...
renamed 'st03logo.anm' -> 'front/logo/st03logo.anm'
"st03wl.anm" を展開中...
"st03wl.anm" の展開情報を取得中...
展開情報に基づいて "st03wl.anm" を移動中...
renamed 'st03wl.anm' -> 'background/stage03/st03wl.anm'
"stone.anm" を展開中...
"stone.anm" の展開情報を取得中...
展開情報に基づいて "stone.anm" をコピー中...
'stone.anm' -> 'stone/stone.anm'
'stone.anm' -> 'front/stone.anm'
複数コピー元の "stone.anm" を削除中...
removed 'stone.anm'
"text.anm" を展開中...
"text.anm" の展開情報を取得中...
"title_v_tr.anm" を展開中...
"title_v_tr.anm" の展開情報を取得中...
展開情報に基づいて "title_v_tr.anm" を移動中...
renamed 'title_v_tr.anm' -> 'title/title_v_tr.anm'
"titletr.anm" を展開中...
"titletr.anm" の展開情報を取得中...
展開情報に基づいて "titletr.anm" をコピー中...
'titletr.anm' -> 'title/titletr.anm'
'titletr.anm' -> 'title/selecttitle/titletr.anm'
複数コピー元の "titletr.anm" を削除中...
removed 'titletr.anm'
"trophy.anm" を展開中...
"trophy.anm" の展開情報を取得中...
展開情報に基づいて "trophy.anm" を移動中...
renamed 'trophy.anm' -> 'help/trophy/trophy.anm'
全ての *.ecl ファイルを移動&ダンプ出力中...
mkdir: created directory ',ecl'
"common.ecl" を ",ecl" に移動中...
renamed 'common.ecl' -> ',ecl/common.ecl'
",ecl/common.ecl" を ",ecl/common.ecl.txt" にダンプ出力中...
"default.ecl" を ",ecl" に移動中...
renamed 'default.ecl' -> ',ecl/default.ecl'
",ecl/default.ecl" を ",ecl/default.ecl.txt" にダンプ出力中...
"st01.ecl" を ",ecl" に移動中...
renamed 'st01.ecl' -> ',ecl/st01.ecl'
",ecl/st01.ecl" を ",ecl/st01.ecl.txt" にダンプ出力中...
"st01bs.ecl" を ",ecl" に移動中...
renamed 'st01bs.ecl' -> ',ecl/st01bs.ecl'
",ecl/st01bs.ecl" を ",ecl/st01bs.ecl.txt" にダンプ出力中...
"st01mbs.ecl" を ",ecl" に移動中...
renamed 'st01mbs.ecl' -> ',ecl/st01mbs.ecl'
",ecl/st01mbs.ecl" を ",ecl/st01mbs.ecl.txt" にダンプ出力中...
"st02.ecl" を ",ecl" に移動中...
renamed 'st02.ecl' -> ',ecl/st02.ecl'
",ecl/st02.ecl" を ",ecl/st02.ecl.txt" にダンプ出力中...
"st02bs.ecl" を ",ecl" に移動中...
renamed 'st02bs.ecl' -> ',ecl/st02bs.ecl'
",ecl/st02bs.ecl" を ",ecl/st02bs.ecl.txt" にダンプ出力中...
"st02mbs.ecl" を ",ecl" に移動中...
renamed 'st02mbs.ecl' -> ',ecl/st02mbs.ecl'
",ecl/st02mbs.ecl" を ",ecl/st02mbs.ecl.txt" にダンプ出力中...
"st03.ecl" を ",ecl" に移動中...
renamed 'st03.ecl' -> ',ecl/st03.ecl'
",ecl/st03.ecl" を ",ecl/st03.ecl.txt" にダンプ出力中...
"st03bs.ecl" を ",ecl" に移動中...
renamed 'st03bs.ecl' -> ',ecl/st03bs.ecl'
",ecl/st03bs.ecl" を ",ecl/st03bs.ecl.txt" にダンプ出力中...
全ての *.std ファイルを移動&ダンプ出力中...
(ただし現状全てエラー)
mkdir: created directory ',std'
"st01.std" を ",std" に移動中...
renamed 'st01.std' -> ',std/st01.std'
",std/st01.std" を ",std/st01.std.txt" にダンプ出力中...
"st02.std" を ",std" に移動中...
renamed 'st02.std' -> ',std/st02.std'
",std/st02.std" を ",std/st02.std.txt" にダンプ出力中...
"st03.std" を ",std" に移動中...
renamed 'st03.std' -> ',std/st03.std'
",std/st03.std" を ",std/st03.std.txt" にダンプ出力中...
全ての *.msg ファイルを移動&ダンプ出力中...
mkdir: created directory ',msg'
"st01m0.msg" を ",msg" に移動中...
renamed 'st01m0.msg' -> ',msg/st01m0.msg'
",msg/st01m0.msg" を ",msg/st01m0.msg.txt" にダンプ出力中...
"st01m1.msg" を ",msg" に移動中...
renamed 'st01m1.msg' -> ',msg/st01m1.msg'
",msg/st01m1.msg" を ",msg/st01m1.msg.txt" にダンプ出力中...
"st01m2.msg" を ",msg" に移動中...
renamed 'st01m2.msg' -> ',msg/st01m2.msg'
",msg/st01m2.msg" を ",msg/st01m2.msg.txt" にダンプ出力中...
"st01m3.msg" を ",msg" に移動中...
renamed 'st01m3.msg' -> ',msg/st01m3.msg'
",msg/st01m3.msg" を ",msg/st01m3.msg.txt" にダンプ出力中...
"st01r0.msg" を ",msg" に移動中...
renamed 'st01r0.msg' -> ',msg/st01r0.msg'
",msg/st01r0.msg" を ",msg/st01r0.msg.txt" にダンプ出力中...
"st01r1.msg" を ",msg" に移動中...
renamed 'st01r1.msg' -> ',msg/st01r1.msg'
",msg/st01r1.msg" を ",msg/st01r1.msg.txt" にダンプ出力中...
"st01r2.msg" を ",msg" に移動中...
renamed 'st01r2.msg' -> ',msg/st01r2.msg'
",msg/st01r2.msg" を ",msg/st01r2.msg.txt" にダンプ出力中...
"st01r3.msg" を ",msg" に移動中...
renamed 'st01r3.msg' -> ',msg/st01r3.msg'
",msg/st01r3.msg" を ",msg/st01r3.msg.txt" にダンプ出力中...
"st02m0.msg" を ",msg" に移動中...
renamed 'st02m0.msg' -> ',msg/st02m0.msg'
",msg/st02m0.msg" を ",msg/st02m0.msg.txt" にダンプ出力中...
"st02m1.msg" を ",msg" に移動中...
renamed 'st02m1.msg' -> ',msg/st02m1.msg'
",msg/st02m1.msg" を ",msg/st02m1.msg.txt" にダンプ出力中...
"st02m2.msg" を ",msg" に移動中...
renamed 'st02m2.msg' -> ',msg/st02m2.msg'
",msg/st02m2.msg" を ",msg/st02m2.msg.txt" にダンプ出力中...
"st02m3.msg" を ",msg" に移動中...
renamed 'st02m3.msg' -> ',msg/st02m3.msg'
",msg/st02m3.msg" を ",msg/st02m3.msg.txt" にダンプ出力中...
"st02r0.msg" を ",msg" に移動中...
renamed 'st02r0.msg' -> ',msg/st02r0.msg'
",msg/st02r0.msg" を ",msg/st02r0.msg.txt" にダンプ出力中...
"st02r1.msg" を ",msg" に移動中...
renamed 'st02r1.msg' -> ',msg/st02r1.msg'
",msg/st02r1.msg" を ",msg/st02r1.msg.txt" にダンプ出力中...
"st02r2.msg" を ",msg" に移動中...
renamed 'st02r2.msg' -> ',msg/st02r2.msg'
",msg/st02r2.msg" を ",msg/st02r2.msg.txt" にダンプ出力中...
"st02r3.msg" を ",msg" に移動中...
renamed 'st02r3.msg' -> ',msg/st02r3.msg'
",msg/st02r3.msg" を ",msg/st02r3.msg.txt" にダンプ出力中...
"st03m0.msg" を ",msg" に移動中...
renamed 'st03m0.msg' -> ',msg/st03m0.msg'
",msg/st03m0.msg" を ",msg/st03m0.msg.txt" にダンプ出力中...
"st03m1.msg" を ",msg" に移動中...
renamed 'st03m1.msg' -> ',msg/st03m1.msg'
",msg/st03m1.msg" を ",msg/st03m1.msg.txt" にダンプ出力中...
"st03m2.msg" を ",msg" に移動中...
renamed 'st03m2.msg' -> ',msg/st03m2.msg'
",msg/st03m2.msg" を ",msg/st03m2.msg.txt" にダンプ出力中...
"st03m3.msg" を ",msg" に移動中...
renamed 'st03m3.msg' -> ',msg/st03m3.msg'
",msg/st03m3.msg" を ",msg/st03m3.msg.txt" にダンプ出力中...
"st03r0.msg" を ",msg" に移動中...
renamed 'st03r0.msg' -> ',msg/st03r0.msg'
",msg/st03r0.msg" を ",msg/st03r0.msg.txt" にダンプ出力中...
"st03r1.msg" を ",msg" に移動中...
renamed 'st03r1.msg' -> ',msg/st03r1.msg'
",msg/st03r1.msg" を ",msg/st03r1.msg.txt" にダンプ出力中...
"st03r2.msg" を ",msg" に移動中...
renamed 'st03r2.msg' -> ',msg/st03r2.msg'
",msg/st03r2.msg" を ",msg/st03r2.msg.txt" にダンプ出力中...
"st03r3.msg" を ",msg" に移動中...
renamed 'st03r3.msg' -> ',msg/st03r3.msg'
",msg/st03r3.msg" を ",msg/st03r3.msg.txt" にダンプ出力中...
その他ファイル整理中...
mkdir: created directory ',music'
renamed 'musiccmt_tr.txt' -> ',music/musiccmt_tr.txt'
renamed 'thbgm_tr.fmt' -> ',music/thbgm_tr.fmt'
mkdir: created directory ',se'
renamed 'se_big.wav' -> ',se/se_big.wav'
renamed 'se_bonus.wav' -> ',se/se_bonus.wav'
renamed 'se_bonus2.wav' -> ',se/se_bonus2.wav'
renamed 'se_bonus4.wav' -> ',se/se_bonus4.wav'
renamed 'se_boon00.wav' -> ',se/se_boon00.wav'
renamed 'se_boon01.wav' -> ',se/se_boon01.wav'
renamed 'se_cancel00.wav' -> ',se/se_cancel00.wav'
renamed 'se_cardget.wav' -> ',se/se_cardget.wav'
renamed 'se_cat00.wav' -> ',se/se_cat00.wav'
renamed 'se_ch00.wav' -> ',se/se_ch00.wav'
renamed 'se_ch01.wav' -> ',se/se_ch01.wav'
renamed 'se_ch02.wav' -> ',se/se_ch02.wav'
renamed 'se_ch03.wav' -> ',se/se_ch03.wav'
renamed 'se_changeitem.wav' -> ',se/se_changeitem.wav'
renamed 'se_damage00.wav' -> ',se/se_damage00.wav'
renamed 'se_damage01.wav' -> ',se/se_damage01.wav'
renamed 'se_don00.wav' -> ',se/se_don00.wav'
renamed 'se_enep00.wav' -> ',se/se_enep00.wav'
renamed 'se_enep01.wav' -> ',se/se_enep01.wav'
renamed 'se_enep02.wav' -> ',se/se_enep02.wav'
renamed 'se_etbreak.wav' -> ',se/se_etbreak.wav'
renamed 'se_extend.wav' -> ',se/se_extend.wav'
renamed 'se_extend2.wav' -> ',se/se_extend2.wav'
renamed 'se_fault.wav' -> ',se/se_fault.wav'
renamed 'se_graze.wav' -> ',se/se_graze.wav'
renamed 'se_gun00.wav' -> ',se/se_gun00.wav'
renamed 'se_heal.wav' -> ',se/se_heal.wav'
renamed 'se_invalid.wav' -> ',se/se_invalid.wav'
renamed 'se_item00.wav' -> ',se/se_item00.wav'
renamed 'se_item01.wav' -> ',se/se_item01.wav'
renamed 'se_kira00.wav' -> ',se/se_kira00.wav'
renamed 'se_kira01.wav' -> ',se/se_kira01.wav'
renamed 'se_kira02.wav' -> ',se/se_kira02.wav'
renamed 'se_lazer00.wav' -> ',se/se_lazer00.wav'
renamed 'se_lazer01.wav' -> ',se/se_lazer01.wav'
renamed 'se_lazer02.wav' -> ',se/se_lazer02.wav'
renamed 'se_lgods1.wav' -> ',se/se_lgods1.wav'
renamed 'se_lgods2.wav' -> ',se/se_lgods2.wav'
renamed 'se_lgods3.wav' -> ',se/se_lgods3.wav'
renamed 'se_lgods4.wav' -> ',se/se_lgods4.wav'
renamed 'se_lgodsget.wav' -> ',se/se_lgodsget.wav'
renamed 'se_msl.wav' -> ',se/se_msl.wav'
renamed 'se_msl2.wav' -> ',se/se_msl2.wav'
renamed 'se_msl3.wav' -> ',se/se_msl3.wav'
renamed 'se_nep00.wav' -> ',se/se_nep00.wav'
renamed 'se_nodamage.wav' -> ',se/se_nodamage.wav'
renamed 'se_noise.wav' -> ',se/se_noise.wav'
renamed 'se_notice.wav' -> ',se/se_notice.wav'
renamed 'se_ok00.wav' -> ',se/se_ok00.wav'
renamed 'se_pause.wav' -> ',se/se_pause.wav'
renamed 'se_pin00.wav' -> ',se/se_pin00.wav'
renamed 'se_pin01.wav' -> ',se/se_pin01.wav'
renamed 'se_pldead00.wav' -> ',se/se_pldead00.wav'
renamed 'se_pldead01.wav' -> ',se/se_pldead01.wav'
renamed 'se_plst00.wav' -> ',se/se_plst00.wav'
renamed 'se_power0.wav' -> ',se/se_power0.wav'
renamed 'se_power1.wav' -> ',se/se_power1.wav'
renamed 'se_powerup.wav' -> ',se/se_powerup.wav'
renamed 'se_release.wav' -> ',se/se_release.wav'
renamed 'se_select00.wav' -> ',se/se_select00.wav'
renamed 'se_slash.wav' -> ',se/se_slash.wav'
renamed 'se_tan00.wav' -> ',se/se_tan00.wav'
renamed 'se_tan01.wav' -> ',se/se_tan01.wav'
renamed 'se_tan02.wav' -> ',se/se_tan02.wav'
renamed 'se_tan03.wav' -> ',se/se_tan03.wav'
renamed 'se_timeout.wav' -> ',se/se_timeout.wav'
renamed 'se_timeout2.wav' -> ',se/se_timeout2.wav'
renamed 'se_trophy.wav' -> ',se/se_trophy.wav'
renamed 'se_warpl.wav' -> ',se/se_warpl.wav'
renamed 'se_warpr.wav' -> ',se/se_warpr.wav'
renamed 'se_wolf.wav' -> ',se/se_wolf.wav'
renamed 'help_01.png' -> 'help/help_01.png'
renamed 'help_02.png' -> 'help/help_02.png'
renamed 'help_03.png' -> 'help/help_03.png'
renamed 'help_04.png' -> 'help/help_04.png'
renamed 'help_05.png' -> 'help/help_05.png'
renamed 'help_06.png' -> 'help/help_06.png'
renamed 'help_07.png' -> 'help/help_07.png'
renamed 'help_08.png' -> 'help/help_08.png'
renamed 'help_09.png' -> 'help/help_09.png'
renamed 'notice_01.png' -> 'help/notice/notice_01.png'
renamed 'trophy_tr.txt' -> 'help/trophy/trophy_tr.txt'
renamed 'pl00.sht' -> 'player/pl00/pl00.sht'
renamed 'pl01.sht' -> 'player/pl01/pl01.sht'
renamed 'stonetext.txt' -> 'stone/stonetext.txt'
全て完了!
./ExtractTH20tr.bash: line 141: 2093 Segmentation fault "${thtkDirPath}/thstd" "-d${gameVer}" -- "${std}" "${output}"
./ExtractTH20tr.bash: line 141: 2095 Segmentation fault "${thtkDirPath}/thstd" "-d${gameVer}" -- "${std}" "${output}"
./ExtractTH20tr.bash: line 141: 2097 Segmentation fault "${thtkDirPath}/thstd" "-d${gameVer}" -- "${std}" "${output}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment