Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

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

Select an option

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@ascii@0.png
ascii_1280@ascii1280@0.png
ascii_960.anm
ascii_960@ascii_960@0.png
ascii_big2@ascii1280@3.png
ascii_big2@ascii@3.png
ascii_big2@ascii_960@3.png
ascii_big2f@ascii1280@4.png
ascii_big2f@ascii@4.png
ascii_big2f@ascii_960@4.png
ascii_big@ascii1280@1.png
ascii_big@ascii@1.png
ascii_big@ascii_960@1.png
ascii_bigf@ascii1280@2.png
ascii_bigf@ascii@2.png
ascii_bigf@ascii_960@2.png
ascii_norm2@ascii1280@5.png
ascii_norm2@ascii@5.png
ascii_norm2@ascii_960@5.png
ascii_norm2f@ascii1280@6.png
ascii_norm2f@ascii@6.png
ascii_norm2f@ascii_960@6.png
fronttr.anm
loading@ascii1280@7.png
loading@ascii@7.png
loading@ascii_960@7.png
pause@fronttr@3.png
pause_back@fronttr@5.png
pause_title@fronttr@4.png
background/
stage01/
A007@st01wl@2.png
st01a@st01wl@0.png
st01b@st01wl@1.png
st01c@st01wl@3.png
st01wl.anm
stage02/
st02a@st02wl@0.png
st02b00@st02wl@1.png
st02c00@st02wl@2.png
st02wl.anm
stage03/
st03a00@st03wl@0.png
st03b00@st03wl@1.png
st03c00@st03wl@2.png
st03d00@st03wl@3.png
st03wl.anm
bullet/
aura.anm
aura@aura@0.png
bullet.anm
bullet1@bullet@0.png
bullet2@bullet@1.png
bullet3@bullet@2.png
bullet4@bullet@6.png
bullet5@bullet@7.png
bullet6@bullet@9.png
item@bullet@3.png
laser1@bullet@4.png
laser2@bullet@8.png
effect/
bullet.anm
eff_aura@effect@7.png
eff_base@effect@2.png
eff_breakwave2@effect@9.png
eff_breakwave3@effect@10.png
eff_charge@effect@12.png
eff_deadcircle@effect@4.png
eff_line@effect@1.png
eff_magicsquare@effect@6.png
eff_maple@effect@5.png
eff_sloweffect@effect@3.png
eff_splash@effect@11.png
eff_switch@effect@0.png
eff_switch@screenswitch@0.png
eff_switchbg@screenswitch@1.png
effect.anm
efflinegoast@effect@8.png
etbreak@bullet@5.png
screenswitch.anm
enemy/
enemy.anm
enemy2@enemy@1.png
enemy2@ghost@0.png
enemy5@enemy@3.png
enemy@enemy@0.png
enemy_aura@enemy@2.png
enemy_g@enemy@4.png
enemy_ll2@enemy@6.png
enemy_ll@enemy@5.png
enemy_stone@enemy@7.png
ghost.anm
face/
enemy1/
ename01@st01enm@23.png
face01an@st01enm@4.png
face01anl@st01enm@13.png
face01bs@st01enm@20.png
face01bsl@st01enm@19.png
face01ct@st01enm@24.png
face01dp@st01enm@6.png
face01dpl@st01enm@15.png
face01hp@st01enm@3.png
face01hpl@st01enm@12.png
face01lo@st01enm@9.png
face01lol@st01enm@18.png
face01n2@st01enm@2.png
face01n2l@st01enm@11.png
face01no@st01enm@1.png
face01nol@st01enm@10.png
face01pr@st01enm@7.png
face01prl@st01enm@16.png
face01sp@st01enm@8.png
face01spl@st01enm@17.png
face01sw@st01enm@5.png
face01swl@st01enm@14.png
st01enm.anm
enemy2/
ename01@st02enm@23.png
face01an@st02enm@4.png
face01anl@st02enm@13.png
face01bs@st02enm@20.png
face01bsl@st02enm@19.png
face01ct@st02enm@24.png
face01dp@st02enm@6.png
face01dpl@st02enm@15.png
face01hp@st02enm@3.png
face01hpl@st02enm@12.png
face01lo@st02enm@9.png
face01lol@st02enm@18.png
face01n2@st02enm@2.png
face01n2l@st02enm@11.png
face01no@st02enm@1.png
face01nol@st02enm@10.png
face01pr@st02enm@7.png
face01prl@st02enm@16.png
face01sp@st02enm@8.png
face01spl@st02enm@17.png
face01sw@st02enm@5.png
face01swl@st02enm@14.png
st02enm.anm
enemy3/
ename01@st03enm@23.png
face01an@st03enm@4.png
face01anl@st03enm@13.png
face01bs@st03enm@20.png
face01bsl@st03enm@19.png
face01ct@st03enm@24.png
face01dp@st03enm@6.png
face01dpl@st03enm@15.png
face01hp@st03enm@3.png
face01hpl@st03enm@12.png
face01lo@st03enm@9.png
face01lol@st03enm@18.png
face01n2@st03enm@2.png
face01n2l@st03enm@11.png
face01no@st03enm@1.png
face01nol@st03enm@10.png
face01pr@st03enm@7.png
face01prl@st03enm@16.png
face01sp@st03enm@8.png
face01spl@st03enm@17.png
face01sw@st03enm@5.png
face01swl@st03enm@14.png
st03enm.anm
pl00/
face_pl00an@pl00@6.png
face_pl00bsb@pl00@22.png
face_pl00bsg@pl00@24.png
face_pl00bsr@pl00@21.png
face_pl00bsy@pl00@23.png
face_pl00dp@pl00@8.png
face_pl00hp@pl00@5.png
face_pl00lo@pl00@11.png
face_pl00n2@pl00@4.png
face_pl00no@pl00@3.png
face_pl00pr@pl00@9.png
face_pl00sp@pl00@10.png
face_pl00sw@pl00@7.png
pl00.anm
pl01/
face_pl01an@pl01@8.png
face_pl01bsb@pl01@24.png
face_pl01bsg@pl01@26.png
face_pl01bsr@pl01@23.png
face_pl01bsy@pl01@25.png
face_pl01dp@pl01@10.png
face_pl01hp@pl01@7.png
face_pl01lo@pl01@13.png
face_pl01n2@pl01@6.png
face_pl01no@pl01@5.png
face_pl01pr@pl01@11.png
face_pl01sp@pl01@12.png
face_pl01sw@pl01@9.png
pl01.anm
balloon_1024@fronttr@10.png
balloon_1024@fronttr@7.png
balloon_1024@fronttr@8.png
balloon_1024@fronttr@9.png
dummy@pl00@12.png
dummy@pl00@13.png
dummy@pl00@14.png
dummy@pl00@15.png
dummy@pl00@16.png
dummy@pl00@17.png
dummy@pl00@18.png
dummy@pl00@19.png
dummy@pl00@20.png
dummy@pl01@14.png
dummy@pl01@15.png
dummy@pl01@16.png
dummy@pl01@17.png
dummy@pl01@18.png
dummy@pl01@19.png
dummy@pl01@20.png
dummy@pl01@21.png
dummy@pl01@22.png
fronttr.anm
pl00.anm
pl01.anm
front/
logo/
st01logo.anm
st01logo@st01logo@0.png
st01logo@st01logo@1.png
st02logo.anm
st02logo@st02logo@0.png
st02logo@st02logo@1.png
st03logo.anm
st03logo@st03logo@0.png
st03logo@st03logo@1.png
ename_tr@fronttr@6.png
front00@fronttr@0.png
front01@fronttr@2.png
fronttr.anm
lifebar@fronttr@11.png
stone.anm
stonegauge@stone@20.png
help/
notice/
notice.anm
notice_01.png
notice_bk@notice@0.png
trophy/
trophy.anm
trophy@trophy@0.png
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@help@0.png
loading/
sig.anm
sig1280@sig@0.png
player/
pl00/
pl00.anm
pl00.sht
pl00@pl00@0.png
pl00b@pl00@2.png
pl00s@pl00@1.png
pl01/
pl01.anm
pl01.sht
pl01@pl01@0.png
pl01b2@pl01@3.png
pl01b@pl01@2.png
pl01g@pl01@4.png
pl01s@pl01@1.png
stgenm/
stage01/
cardbg0@st01enm@21.png
cardbg1@st01enm@22.png
enm1@st01enm@0.png
st01enm.anm
stage02/
cdbg02a00@st02enm@21.png
cdbg02b@st02enm@22.png
enm2@st02enm@0.png
st02enm.anm
stage03/
cdbg03a00@st03enm@21.png
cdbg03b@st03enm@22.png
enm3@st03enm@0.png
st03enm.anm
stone/
button@stone@18.png
stone.anm
stone_blue2@stone@3.png
stone_blue2_80@stone@12.png
stone_blue@stone@2.png
stone_blue_80@stone@11.png
stone_common@stone@8.png
stone_common_80@stone@17.png
stone_green2@stone@7.png
stone_green2_80@stone@16.png
stone_green@stone@6.png
stone_green_80@stone@15.png
stone_min@stone@21.png
stone_red2@stone@1.png
stone_red2_80@stone@10.png
stone_red@stone@0.png
stone_red_80@stone@9.png
stone_yellow2@stone@5.png
stone_yellow2_80@stone@14.png
stone_yellow@stone@4.png
stone_yellow_80@stone@13.png
stonetext.txt
text@stone@19.png
title/
selecttitle/
sl_manual@titletr@12.png
sl_music@titletr@11.png
sl_player@titletr@5.png
sl_playerdata@titletr@10.png
sl_playerdataselect@titletr@15.png
sl_rank@titletr@4.png
sl_regist@titletr@14.png
sl_replay@titletr@9.png
sl_savereplay@titletr@13.png
sl_spell@titletr@8.png
sl_stage@titletr@7.png
sl_trophy@titletr@16.png
sl_weapon@titletr@6.png
titletr.anm
demoplay@fronttr@1.png
fronttr.anm
pldata_select@titletr@33.png
rank00@titletr@17.png
result00@titletr@32.png
spell@titletr@34.png
title_bk00@titletr@0.png
title_ch00@titletr@1.png
title_copy@titletr@3.png
title_logo@titletr@2.png
title_pl00b@titletr@18.png
title_pl00bG@titletr@22.png
title_pl00bb@titletr@20.png
title_pl00br@titletr@19.png
title_pl00by@titletr@21.png
title_pl00c2@titletr@30.png
title_pl00c@titletr@28.png
title_pl01b@titletr@23.png
title_pl01bG@titletr@27.png
title_pl01bb@titletr@25.png
title_pl01br@titletr@24.png
title_pl01by@titletr@26.png
title_pl01c2@titletr@31.png
title_pl01c@titletr@29.png
title_v_tr.anm
title_ver_tr@title_v_tr@0.png
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