# krkr2 **Repository Path**: weimingtom/krkr2 ## Basic Information - **Project Name**: krkr2 - **Description**: 吉里吉里2, kirikiri2, Imported from https://github.com/krkrz/krkr2.git - **Primary Language**: C++ - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: https://github.com/krkrz/krkr2 - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-06-24 - **Last Updated**: 2021-10-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 吉里吉里2 読み取り専用(Readonly)リポジトリ 過去ログにアクセスして原因究明等する場合に利用するためにバックアップしてあるリポジトリ。   基本的に吉里吉里Z で不具合に出くわした際に変更履歴を追う可能性があるので置いている。   また、プラグインでauthorへ連絡が取れず吉里吉里Zへ移行できていないもののソースコードもあるので、吉里吉里2ライセンスとなっているプラグインを修正する場合などに必要となる可能性もある。   cloneすると1.2GB程度の容量なるため注意が必要。   ## 移行したもの 吉里吉里2リポジトリはsvnで運用されており、吉里吉里3などのソースコードも同居していたためそのままでは移行できなかった。   このリポジトリへは出来るだけ吉里吉里2のみを残すことを優先に他のソースコードは省いている。   vendorは、他のOSSライブラリであるが、このフォルダから吉里吉里2側へコピーするなどの履歴が存在するため、一部はそのまま置かれている。   ## Tags tagを全て移行すると容量がかさむため全て削除する予定であったが、tags内のtagの一部からtrunkへのコピーを行う履歴があったため、一部については削除しきれず残っている。   残っていたtagはGitHubのタグをそのまま割り当てている。 ## branches stableリリースの最新のもの以外は削除した。   他のブランチは全て残している。   ブランチはGitHubのブランチにも割り当ててあるので、そちらでもアクセス可能。   kirikiri2/brancesフォルダ内にも同じものがそのままある。 ## 吉里吉里2 の readme.txt 以下に吉里吉里2のreadme.txtをそのまま記載する。 吉里吉里2のソースです。 現時点でのソースは残念ながら それほど移植性が高い物とは言えません。他の方の意 見を聞きながら 徐々になおしていきたいと思っています。 他のプラットフォームへの移植を考えていらっしゃる方、また、移植に協力してもよい よ、という方など、ぜひぜひ IRC チャンネル #kirikiriirc にいらしてください。 ライセンスの関係上、C++ Builder 5 Professionalを持っている方限定ということにな りますが、こちらのビルド環境をそのままお渡しできます。必要な方はご連絡ください。 ■ ソース関連TODO ------------------------------------------------------------  いい加減 ・この汚いクラス構造だとかファイル構造だとかをどうにかしたいのだが ・Borland C++ Builder と VCL を捨てたいのだが ・gccでコンパイルできるようにしたいのだが →しかし時間がない ■ Subversion リポジトリ -----------------------------------------------------  Subversion リポジトリは以下の場所にあります。コミットしている時間帯については ツッコミ不可。 https://sv.kikyou.info/svn/kirikiri2/  コミットなどにはユーザ名とパスワードが必要です。どうしても俺はコミットしたい んじゃ!という方はご連絡ください。 ■ STL のバグ ---------------------------------------------------------------- Rogue Wave の memory.stl にはバグを持っている物があります。 このパッチを当ててください。さもないと TJS2 の Array.sort で安定ソートを行おうと したときにメモリリークが発生します。 diff -Naur old/memory.stl new/memory.stl --- old/memory.stl 2004-11-01 16:35:43.764744500 +0900 +++ new/memory.stl 2004-11-01 16:35:50.733672900 +0900 @@ -196,8 +196,8 @@ template _RWSTD_TRICKY_INLINE void __destroy (ForwardIterator first, ForwardIterator last) { - while (first != last) - ++first; + for ( ; first != last; ++first) + __destroy(&*first); } #if defined(_RWSTD_NO_DESTROY_BUILTIN) || defined(_RWSTD_NO_DESTROY_NONBUILTIN) // ■ ライセンスについて --------------------------------------------------------  添付の license.txt をご覧ください。 ■ ソースについて ------------------------------------------------------------  汚いってのは言い飽きましたが汚いです。コメントの文法がしばしば間違ってるのは 勘弁してください。 ■ 他に必要な物 --------------------------------------------------------------  Win32 版ではとりあえず Borland C++ Builder 5 が必要です。VCL に依存している 部分がまだいくつかありますが、書き直そうとおもえば SDK only で書けないことも なさそうですが、作者に時間がないです。  依存ライブラリについてはドキュメントの「謝辞」を参照してください。 ■ TJS2 ----------------------------------------------------------------------  TJS2 は VCL 等に依存していないので、Borland Commandline Tools (無償で公開さ れている) でコンパイルできます。VC++ でコンパイルできるかは知りません。  Solaris/gcc 2.95.2 でコンパイルできたのを確認しています。wstring 関連でヘッ ダファイルの修正が必要になります。どこだったか。 ■ バイナリ ------------------------------------------------------------------  入ってません。 ■ 簡単な動作の流れ ----------------------------------------------------------  Win32 版のエントリポイントは kirikiri2/src/core/environ/win32/tvpwin32.cpp に あります。  そこでコマンドラインパラメータと、最初に実行すべきスクリプトをチェックをしま す。  最初に実行すべきスクリプトが見あたらない場合は krdevui.dll をリンクしてユーザ に最初に実行すべきスクリプトを選ばせるためのダイアログを表示します。  そのあと、TVPSystemInit() による基本的な初期化を終えるとコントロールウィンド ウを生成してメッセージループに入ります。  で、最初に実行すべきスクリプトを実行します。スクリプトが実行されたらあとは それに従います。初回のスクリプト実行でウィンドウが何も生成されなかったときは プログラムはそのまま終了します。  最初に実行すべきスクリプトがやっぱり見つからないとか、最初の選択ダイアログで 「選択しない」ボタンを押した場合は、コントロールウィンドウを表示し、ユーザの指 示を待ちます。  ……一番複雑なのはイベント関連です、そのうちドキュメントを整備せにゃならん。 ■ プラグインソース ----------------------------------------------------------  吉里吉里用プラグインを作りたい人向けのサンプルプログラムがいくつかあります。 kirikiri2/src/plugins/win32 がプラグイン関連(Win32)の置いてあるディレクトリで す。 ・kirikiri2/src/plugins/win32/basetest 吉里吉里で使用可能な関数を増やすサンプル ・kirikiri2/src/plugins/win32/extrans 拡張トランジションプラグインのソース ( トランジションプラグインを作りたい人向け ) ・kirikiri2/src/plugins/win32/fftgraph fftgraph (スペアナ) プラグインです。再生中のバッファから PCM データを取得する 方法や、レイヤへの画像の書き込みの方法など。 あと、kirikiri2/src/plugins/win32/ にある wu で始まるディレクトリに入っているの は PCM 形式を拡張するためのプラグインです。吉里吉里で再生可能な PCM 形式を増や すプラグインを書きたい人向けです。この形式のプラグインは吉里吉里1と共通のもので す。 ちなみに、PCM 形式のプラグインを除いては、プラグインの仕様は固まっていません。 ■ 連絡先 -------------------------------------------------------------------- W.Dee