他人の空似自作物置場

SWRSToys-Mod-Release.zip/SWRSToys.txt

SWRSToys Mod版 (for th123)

● 概要
SWRLoaderっぽいの。
以前と違ってバージョン違いで無効になる機能が付いています。
アルファ版なので、転んでも泣かない。

● インストール
1.非想天則フォルダにd3d9.dllとSWRSToys.iniとModuleフォルダを入れます。
2.おわりです

● アンインストール
1.非想天則フォルダからd3d9.dllとSWRSToys.iniとModuleフォルダを消します。
2.問題ありません

● SWRSToysの使い方(分からない人向け)
1."● 最初に付いているモジュール"で使いたいモジュールの名称を憶えます。
2.SWRSToys.iniをメモ帳で開きます。
3.「使いたいモジュールの名称 = 〜」の行の先頭にある「; 」を消します。
4.使いたいモジュールのtxtを熟読して設定します
使うのを止めるときは、当該行を削除するか、「; 」を付け直してください。

● SWRSToysの使い方(分かる人向け)
1.モジュールをModulesフォルダかどこかに置きます
2.SWRSToys.iniのModuleセクションに適当な名前のキーを追加します
3.キーの値にモジュールの相対パスを記述します
最初に付いているモジュールは例として載せてありますので、コメントアウトを
はずすだけで使えるようになるはずです。

● 最初に付いているモジュール
詳しい解説は各モジュールフォルダのtxtを見てください。
★ BGMChanger
BGMを差し替えます。
★ MemoryPatch
メモリパッチを行います。サンプルに、バックグラウンドでもパッドが
効くようになるパッチと、バックバッファの色深度を16ビットに落とす
パッチと、ネット対戦の観戦許可選択の既定値がいいえになるパッチと、
ネット対戦の対戦選択の既定値がいいえになるパッチが付いています。
パッチは既定で無効になっています。
★ NetBattleCounter
ネット対戦の連戦数を表示したり、音でお知らせします。
★ NetBellChanger
ネット対戦のサーバの接続受付ベル音を変えます
★ NetProfileView
観戦時にプロファイル名を表示します。
使うと公式のものは封印されます。
★ ReplayDnD
exeアイコンにリプレイファイルをドラッグ&ドロップすると自動で
リプレイ再生します
★ ReplayInputView
リプレイのキー入力が見られるようになります。
おまけとして低速・高速再生機能が付いています。
★ WindowResizer
ウィンドウをつまんでサイズ変更できるようになります。
位置を覚えたりもします。

● ライセンス
License.txt を参照してください
同梱されている各モジュールにもこのライセンスが適用されます

● 軌跡
20110927 Rev.6b(Mod版)
MemoriPatchのアドレスが一か所古いままだったのを修正(Thx http://jbbs.livedoor.jp/bbs/read.cgi/game/48698/1282026075/489 )
本物のd3d9.dllにある関数はすべてエクスポートするようにした。
  上記変更に伴い、必要なくなったMinimal*系のコードを削除。
winstlとatl使用個所を使用しない形に変更。

20110927 Rev.6a(Mod版)
1.10a対応
使われていないアドレスをコメントアウト。
BGMChangerの内部処理を一部変更。

20100209 Rev.6(NetProfile更新版)
NetProfileViewのバグ修正

20100124 Rev.6
1.10対応。

20090905 Rev.5
1.03対応。
iniの記述例がいい加減なのを直しました。

20090830 Rev.4
NetBellChanger, ReplayDnDを実装しました。
MemoryPatchに別バージョン無効化機能が付きました。
MemoryPatchのサンプルパッチが2つ増えました。
BGMChangerで一部曲目が変更出来ない不具合を修正しました。

20090825 Rev.3
BGMChangerを実装しました。
WindowResizerの設定が保存されない不具合を修正しました。
初期化に失敗する不具合を修正しました(?)。
環境依存の不具合(?)は据え置き……と言うより、調べようがないです。

20090824 Rev.2
落ちる不具合を修正しました(?)。
License.txtが無い不具合を修正しました。

20090823 Rev.1
1.02対応。
NetBattleCounter,NetProfileView,ReplayInputView,WindowResizerを実装しました。

???????? Rev.0
1.01対応。
MemoryPatchを実装しました。

● swrs.hが出来上がるまで
・仮想関数テーブル(for RTTI-enabled VC++ app.)
 1.ASCII文字列".?AV(適当なクラス名)"を検索。
 2.8バイト戻ると当該クラスのtype_infoデータの先頭に行き着く。
 3.仮想アドレスのオーダーを逆にしたバイト列で検索。
 4.12バイト戻ると当該クラスのRTTIの先頭に行き着く
   3.が複数掛かることもあるので、全部トライ。
   先頭は<0>.Lのはずなので、それを指標にすれば1つに絞り込めるはず。
 5.仮想アドレスのオーダーを逆にしたバイト列で検索。
 6.4バイト進むと当該クラスの仮想関数テーブルの先頭に行き着く。

・未知関数の機能やプロトタイプ・未知変数の役割や型
 ◆関係するAPI、内部関数、文字列、即値、変数から推測
 ◆逆コンパイラを使う、ハンド逆アセンブルする
 ◆逆アセンブルリストを読み下す
 ◆経験からエスパー

技術情報(それと関係ない話):
Mod版の名の通り、作者は元ソフトウェア作者とは別人です。
このライセンスを使って配布する物は初めて、著作人格権について、あの記述でいいのかは自信がない。
なぜかBGMチェンジャーで使われているorg/click3/utility.hは https://github.com/click3/org-click3 にて取得できます。
無駄にboostなんかも使ってるので入れてください。
元のSWRSToysで使用されていたstlsoftとATLは使用しない形になりました。
Minimal*系の処理がさっぱり理解できなかったうえ、これらを使用していると外部ライブラリの動作に支障が出たため、丸々書き換えています。
	元の処理ではなぜかDirect3DCreate9しかエクスポートしなくても動作するという謎動作(本来のd3d9.dllにはもっとたくさんのエクスポート関数が存在する)
	なんとなくエクスポートリストあたりを弄っているように見えるが、正直読む気力が……。
Rev.6aでMSVCR100が必要だったのもMinimal系のせいだったようだが理由は不明。
NetProfileViewは修正版の処理が入っていない為、問題が起こる可能性がある。
[EOF]