touhouSE_old.zip/Readme.txt
プログラム名:TouhouSuperExtracter
用途:緋想天・萃夢想・地霊殿・星蓮船・東方幻想麻雀・テンドーブレードで使われているアーカイブファイルから直に一般形式へ変換する
使い方:
展開したいアーカイブ(.datファイルなど)をtouhouSE.exeにドラッグ&ドロップで使えます。
一応コマンドライン経由でも
ファイル解説:
touhouSE.exe プログラム本体
pal_extract.exe 緋想天用サブプログラム
anm2png.exe 地霊殿用サブプログラム
src/ プログラムのソース、ウイルスを疑う人用
src/mt.c 利用させてもらっている他人様のコード、きちんとライセンスされているので再利用の際はソース冒頭を読むべし
Readme.txt 今読んでいるこれ
History.txt 更新履歴
免責事項:
これに同梱されたプログラムその他が原因で発生したいかなる損害も当方は一切関知しません。
また、全てのプログラムがウイルスではないという証明も、ウイルスに感染していないという証明もありません。
自己責任でお使いください。
Q&A:
Q:なんか一瞬だけ黒窓出て終了するんだけど
A:ダブルクリックでは使えません、コマンドラインから使うか展開したいアーカイブをドラッグ&ドロップしてください
Q:黒窓の表示おかしくない?
A:パスが長すぎて1行80字を超えると酷く表示が崩れます、出力内容には影響ないので無視してください。
Q:上に載っている以外のアーカイブは?
A:中の人が知っているdatフォーマットしか展開できません、気が向いたら解析進めているかも。
Q:PNGなのにファイルサイズでかくね?
A:技術力不足につき無圧縮pngになっております。
Q:まだ一般形式にされず残ってるファイルがあるんだけど?
A:該当する一般形式ファイルが存在しないファイルは未変換です。
もしくは中の人の技術不足により変換できていません。
Q:残り時間表示いい加減だね
A:全力で手抜きです、目安以上でも以下でもありません。
場合によってはマイナス表示になるぐらい当てになりません。
なので、くれぐれも信用しないように。
Q:ASSERT ERRORって表示されたんだけど、なにこれ
A:バグです、もしくは不正なファイルです。
その前後で表示されている内容と、どういう状況でおきたかをセットで作者に伝えると
もしかしたら直せるかもしれません。
Q:これだけはしちゃいけないって禁止事項は?
A:処理中に対象ファイルの編集、もしくは占有。
Q:重すぎ
A:仕様です
Q:ウィンドウ出ないと使いづらいんだけど
A:GUI実装してくれる人募集中です。
Q:dat展開も一般形式変換も既にあったような
A:直に一般形式になるあたりが新しいと自負しています。
メールアドレス:bnryxx332a(あっと)mail.goo.ne.jp
ライセンス:
・本ライセンスにおいて、全ての条項は「変更の有無を問わず、明示暗示を問わず、商業慈善を問わず、個人法人を問わず、保持使用を問わず、有料無料を問わず」と装飾されている物として扱う。
・著作権者は本ソフトウェアに関する一切の保障義務をもたない。
・上記条項唯一の例外として、本ライセンスに違反した場合を除いて著作権者から本ソフトウェアに関する一切の法的措置を受ける事が無い事のみ保証される。
・著作権者やその他保持者がこのライセンスの範囲で行う活動に支障が無い範囲であれば何を行っても構わない。
・上記条項の”何を行っても構わない”には本ソフトウェアの製作者を偽っての再配布も含まれる。
・全ての権利の行使において、著作権者への連絡、著作権者やライセンス条項の記載、適用ライセンスなどの制限は一切存在しない。
著作権者名:sweetie
面倒な人向けライセンス解説:
作者やライセンスの記載義務すらありません。
再配布や改造など申告なし記述なしで好きにできます。
技術情報(と、どうでもいい話):
th105_SEを元に2形式追加したもの、新形式入れるたびに他のもので無理が出てくるというジリ貧仕様。
残り時間更新がファイル展開ごとなので、萃のような1ファイルがでかいdatだと更新がとろい……
略称をSuperEXとtouhouSEのどちらにするか悩んだ時間>th105_SEとth075_SEの合体に掛かった時間。
なぜかC言語縛りあり、C++なら2/3ぐらいになるんじゃなかろうか。
tgaのフォーマットが場所によってまるで違うことを書いていて非常に苦労した。
最終的には一番正しそうだったGIMPさんの挙動をみて実装、なんだこれ。
関係ないけど、手元のGIMPさんに横幅偶数ピクセルの画像を左右反転させると中央2ピクセルが反転されないバグがあった。
でも、最新版でのチェックとか、厳密な意味での仕様ではどうなっているのか調べるのが面倒なので放置。
patファイルのデコーダーは手元にあるが、なぜか組み込まれていない、理由は自分でもよくわからない。
試験導入してみたASSERTマクロは意外と便利、きちんとしたものを使わなくても意外と何とかなるようだ。
コンパイル環境はコマンドライン版VC++14.00.50727.762、CodeGear付属のBCC32でも動作することを確認しています。
ソースファイル構成:
main.c
メインコード、分岐処理とかグローバル変数とか
tnb.c
テンドーブレードのアーカイブファイル展開処理一式
「ゲームプログラマになる前に覚えておきたい技術」なる本のライブラリを使っているそうなので
もしかしたらそのライブラリの展開ツールになっているのかもしれない。
実は修正パッチと動作確認版だけでしか試しておらず、製品版の動作確認が取れていないので動かない可能性がある。
tgaファイルの変換はフル実装ではなく、動作確認版/パッチに含まれていた形式と、そのほか一般的にありえそうな範囲のみの実装。
thmj.c
東方幻想麻雀のアーカイブファイル展開処理一式
AIMSというゲームエンジン用の汎用アーカイブらしいので東方幻想麻雀以外にも通用するかも
そもそも公式で展開に必要なアプリやソースが公開されているため必要性は大して無い。
th12.c
暗号化用のキーが変わっているだけで基本的に違いはない
なのでほぼth11.cの関数を使用している。
anmとmsgでth11にはなかった機能が一部含まれているようだが、とりあえず無視。
th11.c
地霊殿のdat展開処理一式
黄昏シリーズに比べて大分本格的な暗号化が掛かっている、入出力時間が問題になりにくいからだろうか?
th105.c
緋想天のdat展開処理一式
cv2は画像ファイル
1画像←→1ファイル、8bitカラーはパレットを別ファイルとして持つ(.pal)
24bitはαチャンネルなしフルカラー、32bitはαチャンネルありフルカラー、どちらも4バイト=1ドット
16bitは確認できなかったが、.palのフォーマットが16bit形式(B5,G5,R5,透過フラグ1の16bit)
backgroundのファイルはcv2フォーマット上の限界から区切られた物?
欠番の部分を全透過としてあつかい、順番にくっつけていくことで作中で使われている画像になる。
cv0/cv1はテキストファイル、内容からcv1は拡張子をcsvにしている。
cv3は音声波形データ。 ファイル末尾の情報の用途が不明、念のためファイルの最後にそのまま出力してある。
patはパターン定義ファイル、アニメーションのパターンから攻撃・当たり判定等が定義されている。
datファイルはその他バイナリ情報? 詳細不明。
th075.c
萃夢想のdat展開処理一式
dat拡張子は差別化がされていないため、パスから形式を識別しないといけない。
cardlist.dat、musicroom.dat、及び.sceファイルはテキストファイル
waveフォルダ以下のdatは音声波形データ。
それ以外のdatは画像データ。
画像データは複数個格納したアーカイブになっており、ファイル名などは特に記載されていない。
なので、datファイル名のフォルダを生成しそこに0からの連番で出力している。
パレットはdat冒頭に2つ、フォーマット的には255個まで入れられると思われる。
patは恐らくはパターン定義ファイルだと思われるが詳細不明。
png.c
png出力の処理一式
いい加減自作にこだわるのやめてlibpng使うべきだとは思う。
けど、ライセンスその他が面倒くさいのであった。
lib.c
上記のどれにも当てはまらない物