Miyako Susie 32bit Plug-in Library Ver 0.01 (Sample Code Edition) Document by kana Date: 1999/01/05(Tue) *ご利用においてはドキュメントに一通り目を通してからお使いください。 1. このソフトウェアについて。 CherrySoftのゲームソフト永遠の都のアーカイブファイル(*.dat)を分割す るためのSusie Plug-inです。既に同様のPlug-inが2つ程ありますが公開目的 が異なるのでご容赦ください。 このプログラムは無保証です。バグ報告、動作報告、感想をくださると 有り難いです。連絡先はA項を参照してください。 2. 動作環境 Susie32が動作する環境 3. インストール Susieがインストールされているディレクトリにコピーして下さい。特に 設定するような項目はありません。 4. 制限事項 (1)コールバックを実装していないのでキャンセルできません。 (2)対象のファイル以外を入力した時の動作についてはあまりチェックして いません。 (3)GetFileについてはディスティネーションをファイルにした場合の動作は 未実装となっています(使っているPlug-in対応アプリも少ないでしょうし)。 実装途中のソースもありますがデバッグに使えるアプリに困りそうだったので 止めました。 5. ソースファイルについて このPlug-inはAM Plug-inのサンプルソースとしての提供が主な目的です。 ただしAM Plug-inとしての実装としての妥当性はわかりません。とりあえず動 作はするという程度しか言えません。またサンプル提供が目的の割には対象ファ イルがかなり限定されますが、これは手元に手頃な題材がなかったためです。 ご容赦ください。 5.1 ソースの利用について このソースを元に他のPlug-inを作成する際には以下の点にご留意ください。 1) バグがないとはいえません。 特にソースマネージャは使われていないコードを含んでいます。 2) 破壊的行為が目的のプログラムへの利用は禁止します。 3) 改変したソースを公開することは構いません。この場合はオリジナル のソースの入手場所を記述してください。 A. 連絡先 バグの報告/感想/要望は以下のメールアドレスにお願いします。 Internet E-Mail: mailto:inokuchi@mvg.biglobe.ne.jp NiftyServe: PXB13767 Plug-inの最新版は以下のURLから入手できます。 http://www2f.biglobe.ne.jp/~kana/ 連絡がつかないようでしたらNiftyServeの方にお願いします。 その他に、各種Plug-inの作者様のご協力を得て「Susie関連リンク集」とい うものも上記のURLからたどれるページで公開しています。実際のURLは URL: http://www2f.biglobe.ne.jp/~kana/link.html ですが、かわっていたらトップページからたどって下さい。 B. 配布について 以下の条件に基づいて配布することは制限しません。 (1)個人的な手渡し、転載などに関してはアーカイブを変更しない限りに は制限しません。 転載の際は事後でよいので連絡をください。配布範囲を把握しておき たいだけですので、連絡の文面はどこに転載しましたぐらいで結構です。 (連絡は強制ではなくお願いですので報告の義務はありません) (2)雑誌などへの収録はご遠慮ください。 お約束ですが、本ソフトウェアは無保証です。このプログラムの使用に起因 するいかなる事態も責任を負いかねます。利用者の責任においてお使いくださ い。 C. 注意事項 このソフト及びこのソフトによって得た画像データなどは個人での趣味の範 囲でご利用ください。またこのソフトについてCherrySoftに問い合わせたりは しないでください。 D. 謝辞 最後に、Susieという素晴らしいツールを作られた「たけちん」さんに感謝い たします。また永遠の都をリリースしてくださったCherrySoftさん、ありがと うございました。 E. ひとりごと またdefファイルをプロジェクトに追加するのを忘れてはまった・・・。こ れで3回目のような気がする(;_;)。自分のFAQ見て気がつくなんて間抜けだ。 永遠の都の私的お薦め度は「いますぐやってみなさい」です。ただしMWAVE MIDIでは一部音色が異なり興醒めしますので、VSC-88やS-YG20などのソフトシ ンセかSCP-55のようなMIDIカードを入れましょう(<-私のことです)。 Z. 履歴: 99/01/05: Ver 0.01 実家で暇なので少し整理。 MTオプションなしで動作する筈なのでコンパイルオプションを調整。 98/12/23: Ver 0.00 (未公開) AXTEEN.SPIを適当に修正。 前回よりは少しソースを整理(ほんのちょっとだけね)。 ------------------------------------------------------------------ ソースについての補足: 今回は少しソース中のコメントを増やしておきました。またソースマネージャの I/Fについても少し(ほんの少しだけね)触れています。 ファイルのフォーマットについてはaxmiyako.cの先頭に記述してある構造体の コメントを参考にしてください。基本的にはファイルヘッダとファイルエント リで画像データをサンドイッチした構造になっています。 SusieからGetArchiveInfoやGetFileInfoされたデータをあとからGetFileする 時のためにfileinfo構造体のpositionの値は該当するデータがある位置ではな くてファイルエントリがある位置を返却するようにしています。 GetFileでGetArchiveInfo時のfileinfoが渡されるのであればこんなことしな くてもよいような気がしますが、そうではないようです。普通はどうするのか はちょっと想像できませんが。 GetFileでコールバックを呼び出していないのでキャンセルできません。まぁ ファイルからの読み込みとかを分割すれば実装できるのですが面倒なのでやっ てません。やる必要もあまり無いでしょう。 それからGetFileInfoは使われてなさそうにI/F上見えますが実際にはGetFile する時には毎回呼び出されます。GetFileInfoの処理はアーカイブ内の情報と してはファイル名しか渡されないのでGetArchiveInfoと同様の処理をして一致 するファイル名を検索しています。 Susieの関数エントリと実際に処理している関数エントリが異なるのは単に関 数の呼出し規約で悩みたくないだけで他の意図は余り有りません。 ConfigurationDlgは今回は実装していません。設定する事もないですしね。こ ちらの実装サンプルは・・・ありゃ公開してませんね。 GetArchiveInfo->GetFileInfo->GetFileという呼び出しシーケンスにおいて毎回 アーカイブファイル内を走査しています。動作速度の改善のために対象ファイル が限られることを念頭に置くならばファイルの内容をキャッシュすることも可能 でしょうが、やっていません。思わぬ動作をする可能性が大きいのでやらないほ うがよいと思います。 AXTEEN.SPIのソースからの主な変更点: ・flag周りの整理(ただし不正なパラメータには弱いです) ・src_mng.*でmallocを使っていたのを止めました。 これでマルチスレッドライブラリが必要な箇所がなくなったのでシングルス レッドライブラリでコンパイルできるようになりました。 axmiyakoを元に修正する時は利用しているライブラリ関数に応じてマルチス レッドライブラリかシングルスレッドライブラリかを選択してください。