BES - Battle Encoder Shirase
for Windows 2000/XP

Changelog

Changelog

1.0 beta5での主な変更点 - 2005年6月10日

1.0 beta4での主な変更点 - 2005年6月7日

1.0 beta3での主な変更点 - 2005年6月6日

1.0 beta2での主な変更点 - 2005年6月2日

1.0 beta1での主な変更点 - 2005年6月1日

0.9.9.9での主な変更点 - 2005年6月1日

0.9.9.8aでの主な変更点 - 2005年5月31日

0.9.9.8での主な変更点 - 2005年5月31日

0.9.9.7での主な変更点 - 2005年5月30日

0.9.9.6での主な変更点 - 2005年5月30日

0.9.9.5での主な変更点 - 2005年5月29日

0.9.9.4での主な変更点 - 2005年5月28日

0.9.9.3での主な変更点 - 2005年5月27日

0.9.9.2での主な変更点 - 2005年5月26日

0.9.9.1での主な変更点 - 2005年5月26日

0.9.9での主な変更点 - 2005年5月25日

0.9.8bでの主な変更点 - 2005年5月25日

0.9.8aでの主な変更点 - 2005年5月24日

0.9.8での主な変更点 - 2005年5月24日

0.9.7b(実験テスト版)での主な変更点 - 2005年5月23日

0.9.6b(安定系)での主な変更点 - 2005年5月23日

Watchが使えない以外0.9.7bと同じ。

0.9.7a(実験テスト版)での主な変更点 - 2005年5月22日

0.9.6a(安定系)での主な変更点 - 2005年5月22日

0.9.6aは安定志向のバージョンで、 「Watch」「Windowsテキストを取得しないで少し高速化」の2機能を無効にしてあります。 それ以外は0.9.7と全く同じソースです。

0.9.7(実験テスト版)での主な変更点 - 2005年5月21日

0.9.6(安定系)での主な変更点 - 2005年5月21日

0.9.6は安定志向のバージョンで、 「Watch」「Windowsテキストを取得しないで少し高速化」の2機能を無効にしてあります。 それ以外は0.9.7と全く同じソースです。

0.9.5dでの主な変更点 - 2005年5月21日

0.9.5cでの主な変更点 - 2005年5月20日

0.9.5bでの主な変更点 - 2005年5月19日

Watch機能の細部は依然手を付けていない。

0.9.5aでの主な変更点 - 2005年5月18日

0.9.5での主な変更点 - 2005年5月18日

0.9.4aでの主な変更点 - 2005年5月17日

0.9.4での主な変更点 - 2005年5月17日

0.9.3での主な変更点 - 2005年5月16日

0.9.2での主な変更点 - 2005年5月15日

0.9.1での主な変更点 - 2005年5月14日

0.9.0での主な変更点 - 2005年5月13日

Real-time modeでは、BESはOSに対して最優先のプライオリティで自分を実行させるように要求します。 これはCPU負荷が100%に達している状態でBESを起動した場合でも、BESが状況を制御しやすくなる、ということを想定しています。 さらに、このモードでは、ターゲットのプロセスのプライオリティを強制的に最低にします。 Real-time modeを無効にすると、これらの処理は行われません。 デフォルトではReal-time modeが有効です。

0.8.9のアーカイブには非ユニコード版を同梱するのを忘れていました。

0.8.9での主な変更点 - 2005年5月12日

0.8.8での主な変更点 - 2005年5月11日

0.8.7での既知の問題 2004年11月27日

BES 0.8.7: Windows 2000 だと、Unicode版は、 一部のメッセージなどが文字化け(というか文字なし→□□□)になります。 機能上は問題ないですが、ANSI版ならたぶん大丈夫かと。0.8.8で直します。

0.8.7での主な変更点 2004年11月16日

ちょっといじったので、おかしなところができたかも。

タイムスライスのコントロール率(スライダー)の設定が終了時に保存され、次回に引き継がれるようにした。

アクセス権の関係でスレッドのオープンに繰り返し失敗するケースでは、適当にあきらめて停止するようにした。

これまでボタンがディスエイブルになってた IFF関係 をとりあえず実装した。リストのダイアログで項目を選択して [Friend] を指定すると、 そのプロセスは以降「CPUを過熱させることはない」とみなされ、ターゲット選択リストから省略される。 [Enemy] を指定すると、そのプロセスはCPUを過熱させるCPUにとっての敵性プロセスと認識され、 ターゲット選択リストの先頭に来るようになる。 どちらの指定もされていないプロセスは中立的に扱われる。 これらは一度指定すると次回起動時にも引き継がれる。 制御対象と関係ないプロセスを一度 [Friend] 登録しておけば、もうリストに出てこないので、すっきりする。 [Reset IFF] を選択すると、上記のすべての設定はクリアされる。ただし、 VD, VDM, AviUtl, ERMP の4つはデフォルトで ENEMY とされ、それは解除できない。

0.8.6での主な変更点 2004年11月15日

OpenThreadが失敗したとき「Couldn't Open Thread(s)」と表示して処理を中止していたのを改め、 全スレッドのオープンに失敗しない限り、再スナップ、再試行を行うようにした。 これでスレッドの変化が激しいプロセスでも、一応追尾できるようになった。 他方、セキュリティ等の理由によりオープンできないスレッドが対象プロセスに含まれていると、 延々と再スナップを繰り返してしまう(既知の問題)。

前触れなく生成される高負荷スレッドへの対応を早くするため、自動再スナップの間隔を、 従来の約40秒から約10秒にした。高負荷スレッドが急に増えた場合でも、約10秒以内に過熱抑止対応ができる。 ターゲット内のスレッドが減った場合、サスペンドまたはレジュームがフェイルするので0.1秒オーダーで検出され即座に再スナップで自動追尾するが、 スレッドが増えた場合、増えたことをアクティブに検出する方法を思いつけない。 定期的に再スナップで確認するしかない。

自らをリアルタイムのプライオリティにする一方、 処理中にはターゲットのプロセスのプライオリティをアイドルに落とすようにした(処理停止で元に戻す)。 言うほどの実効性はないが、制御側と制御される側の優先順位を明確にすることで、安定性が増すことが期待される。

0.8.5での主な変更点 2004年11月11日

最大3プロセスを独立して制御できるようにした。

0.8.4での主な変更点 2004年11月10日

タイムスライス・コントロールにターゲット情報が表示されていなかったバグを修正。 ステータス表示を簡略にした。 複数のプロセスを制御する準備をした。 他、細かい修正。

0.8.3での主な変更点 2004年11月8日

潜在的にクラッシュの原因になるバグを直した。(十分な配列長を確保していなかった。)

0.8.2での主な変更点 2004年11月8日

「実行ファイルのPath」でターゲットを識別すると、 同じプログラムのインスタンスが複数あるときにあいまいになるので、 プロセスIDで識別するようにしました。 他にも不完全な点が多いですが、とりあえず気になる場所を直しました。

0.8.1での主な変更点 2004年11月8日

v0.8 で完全Unicode対応したら、Windows me で動作できなくなったため (掲示板での報告 #1838)、 Unicode版と、非Unicode版の両方をビルドしてみました。 他にもやること多いですが、まずはそれを直しました。 0.8を起動できなかった me ユーザは、 0.8.1 の Release 版なら起動できる可能性があります(手元に me ないので動作確認できてません)。 Release 版は、メッセージが日本語で出せません。 Windows 2000/XP以降では、Release Unicode 版を使えば、一部のメッセージが日本語化されます。

Unicode、非Unicodeの切り替えに微妙な部分があるため、 文字化けするかもしれません。フィードバックは掲示板までお願いします。

0.8での主な変更点 2004年11月5日

バッチ処理で捕捉できなくなる問題に対応

BESは、CPU負荷が高いプロセスから強制的に一定割合のタイムスライスを横取りし、 処理速度を遅くする代わりに、CPUの過熱を防ぐソフトCPUクーラーです。 どのプロセスを「ハッキング」するのか、またどの程度の割合のタイムスライスを横取りするのかは、設定でき、 任意のタイミングで開始、終了できます。横取り率はリアルタイムで随時変更可能。 負荷の高い動画エンコードで使うことを念頭に置いていますが、他の応用も可能です。

従来の v0.73 は安定して動作しますが、 複数の動画を連続してバッチ処理するとき、バッチ処理の変わり目で「CPUの負荷を減らす」効き目がなくなってしまう問題がありました。 正確には、バッチ処理でなくても、プロセスの中でスレッドの環境が変化すると、効果が下がっていました。 掲示板でも改善要望いただき、手元でも不便に思っていました。

今回のバージョンアップでは、多くの改善、機能追加が行われていますが、大幅に変えたのでいろいろと細かい不具合もあります。 自分で使う用の動けばいい的な0.73より、まじめにやっていますが、 このプログラムが正統的でない「奇手」「ハッキング」であることには変わりありません。

更新内容

「自動追尾」ターゲットのプロセスのスレッドの数やIDが変化しても、すべて追いかけて、ハッキングを続ける。 具体的に、スレッドが消えて「逃げられた」場合、プロセスのスナップを撮り直して再度ロックオンする。 また、スレッドが消えない場合でも、知らないうちに増えている場合もありうることから、 一定時間ごとに自動的にスナップを撮り直す。

Windowを持たないツールもハッキング対象にできる。 flac.exe のようなコマンドラインツールのスレッドにも干渉できるようになりました。

ユニコード対応: メッセージが日本語で出せるようになった。日本語、韓国語、中国語など、あらゆるファイル名を処理できる。 Windows 98では無理だが、もともと98には対応していない。 2000/XPでは基本的に動く。MEで動くかは分からない。Windows 2000では Arial Unicode MS が存在しないと、ユニコード文字は表示できない場合がある。

タイムスライス制御の向上。0%から99%まで1%刻みで「横取り率」を設定できる。 設定変更はスライドバーを動かすとすぐその場で反映される。

同時に複数のプロセスに干渉したい、との要望もあったので、横取り率設定ダイアログはスライダーが3つあって、3種類設定できるかっこうになってます。 これはまだ実装されてません。

コマンドライン。
"BES.exe" "C:\path\AviUtl.exe"
のようにすると(引用符は必須)引数のプロセスをターゲットとして起動する。 温度上昇をトリガーとしてコマンドラインを起動できる他のソフトと連携して使う用。

既知の問題。たくさんある。設定が保存されず、常に初期状態は横取り率33%とか。

付記

このソフトは「BEY バトル・エンコーダ・ユキカゼ」というネタを書いた次の日に、ネタでおもしろがって作ってみたものです。

mion <mion@faireal.net>

[ index ]