他人の空似自作物置場
東方憑依華と東方深秘録と東方心綺楼をTHxxBGMで読み込めるようにします。
プログラム名:THxxBGM Th155Patch 用途: 東方心綺楼と東方深秘録と東方憑依華をTHxxBGMで読み込めるようにします。 使い方: ・winmm.dllをTHxxBGM.exeと同じディレクトリに置く ・THxxBGM.exeを起動する ・あとはTHxxBGM.exeの通常通りに使うだけ ファイル解説: winmm.dll プログラム本体 Readme.txt 今読んでいるこれ History.txt 更新履歴 Th135Only 心綺楼のみ版 Th145Only 深秘録のみ版 Th155Only 憑依華のみ版 thxxbgmTh155Patch.sln コンパイル用ソリューションファイル src ソースコード 免責事項: これに同梱されたプログラムその他が原因で発生したいかなる損害も当方は一切関知しません。 また、全てのプログラムがウイルスではないという証明も、ウイルスに感染していないという証明もありません。 自己責任でお使いください。 Q&A: Q:心綺楼の曲開けないんだけど A:製品版、かつv1.34bまでパッチが当たっている必要があります。 それより古くても開けるとは思いますが、ループ位置がずれるなど問題が発生する可能性があります。 Q:深秘録の曲開けないんだけど A:東方深秘録製品版にのみ対応しています。 コミケ体験版やWeb体験版対応は紛らわしいので撤去されました。 Q:憑依華の曲開けないんだけど A:東方憑依華製品版にのみ対応しています。 Steam版と物理ディスク版のどちらでも動くことは確認していますが コミケ体験版やWeb体験版は非対応です。 Q:曲名はどこから持ってきたの? A:基本的に内部の定義から引っ張ってきています。 ただし、人気爆発の曲はキャラ曲と同名だったため(大神神話伝など) サウンドトラックに合わせて「人気爆発/#{キャラ名}」という名前にしてあります。 Q:ループ情報はどこから持ってきたの? A:同じく内部データから持ってきています。 ただ、THxxBGMはディレクトリパス指定前にループ情報の読み込みが終わってしまうため、 対象の心綺楼のバージョンによりループ情報を変えることができず、 v1.34b決め打ちの定義になってしまっています。 深秘録もパッチがリリースされるに従い同じ問題が発生する可能性があります。 Q:その他バグをみつけた or 動作しない or 要望がある A:確認次第対応可能であれば対応します。 公開しても問題が無いメールアドレスにて 下部に記載されたアドレスまでメールをどうぞ。 メールアドレス:sweetie(あっと)click3.org ライセンス: 本プログラムはBSDライセンスされたプログラムOggVorbisを使用しています。 {{{ Copyright (c) 2002-2008 Xiph.org Foundation Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the Xiph.org Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. }}} 自作部分のライセンス: ・本ライセンスにおいて、全ての条項は「変更の有無を問わず、明示暗示を問わず、商業慈善を問わず、 個人法人を問わず、保持使用を問わず、有料無料を問わず、全体一部を問わず、コピー派生を問わず 実行ファイルソースファイルを問わず、故意錯誤を問わず」と装飾されている物として扱う。 ・著作権者は本ソフトウェアに関する一切の保障義務をもたない。 ・上記条項唯一の例外として、本ライセンスに違反した場合を除いて著作権者から 本ソフトウェアに関する一切の法的措置を受ける事が無い事のみ保証される。 ・著作権者やその他保持者がこのライセンスの範囲で行う活動に支障が無い範囲であれば何を行っても構わない。 ・上記条項の”何を行っても構わない”には本ソフトウェアの製作者を偽っての再配布も含まれる。 ・全ての権利の行使において、著作権者への連絡、著作権者やライセンス条項の記載、 適用ライセンスなどの制限は一切存在しない。 著作権者名:sweetie 面倒な人向けライセンス解説: OggVorbisのライセンスをどこかに書いておけば再配布出来ます。 自作部分のライセンスについては記載義務すらありません。 上記だけ説明書に放り込んでおくといいでしょう。 技術情報(と、どうでもいい話): 仕組みとしては、ImportAddressTableを書き換えていくつかのWin32APIを自前の関数に向けるように書き換え、 THxxBGMに元から備わっているlistディレクトリに.txtを置くと読み込んでくれる機能を使って曲定義を追加。 さらにreadFileなどの読み込み指示も同様に自前関数に向け、.pakから読むようにして再生させている。 実際に書き換えているWin32APIは以下の通り。 * FindFirstFileW * FindNextFileW * FindClose * CreateFileW * CloseHandle * ReadFile * SetFilePointer * WriteFile * GetFileType * PathFileExistsW IAT書き換えのみで、機械語へのパッチは一切当てていない、なのでTHxxBGMが更新されようとも動くはず。 .oggをそのまま突っ込んでも読んでくれなかったので自前でデコードして突っ込んでいる。 .pakの読み込みは速度を出すためにチューニングはしているが、ほぼtouhouSEそのまんま。
2018/02/25 ver3.00 東方憑依華製品版に対応 2015/05/24 ver2.01c 誤って関係のないファイルを含んでいたので撤去 2015/05/24 ver2.01b 華狭間のバトルフィールドのループ位置が正しくなかったのを修正 2015/05/22 ver2.01a readme.txtに正しくない記述があったのを修正 2015/05/22 ver2.01 深秘録の曲読み込みを若干高速化 2015/05/21 ver2.00 東方深秘録製品版に対応 上記に伴い東方深秘録コミケ体験版対応を撤去 心綺楼のみ版も撤去 2015/01/28 ver1.00b 心綺楼無効版を追加 2015/01/28 ver1.00 初版リリース
- History.txt
- Readme.txt
Th135Only/winmm.dll
Th145Only/winmm.dll
Th155Only/winmm.dll
- src/main.cpp
- src/main.h
- src/stdafx.cpp
- src/stdafx.h
- src/th135.cpp
- src/th135.h
- src/th145.cpp
- src/th145.h
- src/th145pak.h
- src/th155.cpp
- src/th155.h
- src/thxxbgmTh155Patch.vcxproj
- src/thxxbgmTh155Patch.vcxproj.filters
- src/winmm.cpp
- src/winmm.def
- thxxbgmTh155Patch.sln
winmm.dll
ver3.00
ver2.01c
ver2.01b
ver2.01a
ver2.01
ver2.00
ver1.00b
ver1.00