SimpleROHook : RCXの跡地
SimpleROHook
Labで公開している技術のデモ、実装例としてのアプリケーションです。
技術は公開しているので、皆さんも他者に押し付けずに自分で作ってみましょう。SimpleROHookのソースコードはGitHubで公開しています。このサイトで公開している実行ファイルはGitHubに公開されている最新に近いソースコードをビルドした物です。
ソースコード
sekishi1259/SimpleROHook
https://github.com/sekishi1259/SimpleROHook
ソースコードにはGPL v3を適応していますが、これは公開されている実行ファイルの安全を担保するための物です。少なくとも筆者が公開しているものに関しては安全を保障します。今後、野良ビルドが出てきた際に、ソースコードの開示がない物には疑いの目を向けて下さい。
ダウンロード
パスワードはGitHubのコミット識別番号(英数字の羅列)です。
SimpleROHook build github master cf160e2
GitまたはGitHubの使い方に関する記事
- Tips : SourceTree で複数のCommitを Reset でまとめる
- GitHub で Pull Request を受理する
- GitHub のリポジトリをForkする ② Pull Request 編
- SourceTree のインストールからSSHの設定まで
- GitHub のリポジトリをForkする ①追跡編
- Visual Studio 2013の Git を使う② GitHubからCloneする
- Visual Studio 2013の Git を使う① GitHubへPushするまで
- Git ホスティング選定からサインアップまで
ROツール作成テクニカル記事
- 完全保存版 Ragexe.exe を読む:解析編
- 完全保存版 Ragexe.exe を読む:準備編
- SimpleROHook : クライアントの構造体定義の修正を少々
- SimpleROHook jRO 2015.02.03のパッチについて
- RCX の非公式配布について
- SimpleROHook がpatchで動かなくなった場合の対処法
- SimpleROHook トラブルシューティング集(随時追記)
- SimpleROHook ビルドガイド (2014.07.10加筆修正)
- SimpleROHook のビルドメモ vol.1
- SimpleROHook Source Code Overview
Windows開発環境記事
- PDB ファイルから C++ のクラスヘッダを作成するソフト
- PDBからCのヘッダを作成するソフト
- Visual Studio 2013 のビルドツールセットを拡充する プロフェッショナル編
- VS2005、VS2008、VS2010のビルドツールセットの入手
- Visual Studio 2013 のビルドツールセットを拡充する フリー編
- Visual Studio Community 2013 をインストールする
- VC++開発環境を整える事を考えてみる(2014.11.12 更新)
- Visual Studio 2013 の プラットフォーム ツールセット を拡充する
- Windows 8.1 で作る 無料の VC++ 開発環境
- WTL 9.0 日本語差分を用意しました
APIフックに関する記事
- アプリケーションに依存しないAPIフック | Planetleaf.com Lab.
- hotpatchによるDirectDraw/Inputのプロキシコード挿入、実践コード | Planetleaf.com Lab.
RCXのダウンロードはこちらから
そもそも、こういった物はリスク管理が出来る人が使うべきと考えますが、ウィルス入りの配布に対する抑止力として残しておきます。
RCX の非公式配布について | Planetleaf.com Lab.
https://lab.planetleaf.com/on-informal-distribution-of-rcx.html
SimpleROHook 解説
実行するとタスクトレイに常駐し、ROが起動するとクライアントに機能を組み込みます。トレイアイコンから機能の制御を行うことが出来ます。実行ファイルの存在するディレクトリにconfig.xmlを保存します。レジストリは使用しません。M2Eのカラーコーディネートをconfig.iniから読み込みます。
APIフックのホストアプリをC#化した事により Microsoft .NET Framework 4 Client Profile が必要になりました。
マイクロソフト公式ダウンロード センターから Microsoft .NET Framework 4 Client Profile (Web インストーラー) をダウンロード
SimpleROHook を実行するには VC++ 2010 のランタイムライブラリが必要です。
Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update
- Windows アプリ のタスクバーアイコンから右クリックでメニューが出せます。各設定のオンオフが出来るので適当に弄りましょう。
- FreeMouse (on boot)
フリーマウスの機能をオンオフできます。 - Show M2E
言わずと知れたアレです。
パケットを読まず、RCXとは違い、ROのメモリ情報のみで処理しています。その為、RCXの様な気の利いた演出などはありません。 - Show Object Information
SimpleROHookのコードのチュートリアル的機能で実装したインフォメーション。見てみればわかります。 - Show Fps
フレームレートを表示します。右側に表示されている数値は Fix WindowMode VSyncWait を使用した際に還元される1フレーム中の内部負荷の数値を大体 n/60 で表したものです。 - Fix WindowMode VSyncWait
新たな技術によるWindowモードのVSync Waitの最適化。
DirectX7以前のソフトに有効な技術で、垂直同期の検出中に可能な限りOSにCPUリソースを解放します。処理に余裕のない環境ではフレームレートの低下を引き起こしますが、パワーの有り余っている環境ではROの負荷が大幅に減少します。
※Window モードにおけるVSync待機は、ハードウェアの割り込みが使えず、CPUがフル回転します。この仕様のおかげで、いくらCPUが早期にゲーム内の処理が 終了しても、残りのVBlanking発生までの時間をCPUが全力でハードウェアを監視し、結果としてゲーム中はCPUリソースを占有します。この技術 はこれを回避するためのものです。 - 44kHz Audio Mode
Ragnarok OnlineにおけるDirectSoundの初期化、及びサウンドレート、そして高音質化へ | Planetleaf.com Lab.で紹介した技術です。
ROの内部サウンドレートを2倍にし44kHzで再生します。 - PlayMusic on ClientStreamPlayer
ROの内部ストリームプレイヤーで任意のファイルを好きな時に変更して再生する機能。ファイルをクリックするだけでRO内部のサウンドプレイヤーの曲が切り替わります。内 部のBGMプレイヤーのため、ループも機能します。カスタマイズされたファイル選択ウインドウがジュークボックスの役目を果たします。mp3、wavが再生可能ですが、ライブラリが古いため当時再生可能とされたファイルしか再生できません。 - CPU Cooler
RCXと同等のCPUクラーです。Level3で最大効果を発揮します。
前述のFix WindowMode VSyncWaitの機能と組み合わせると、OSに対する負荷を極限まで縮小化できます。 - フリーマウス
ウインドウモードにおいてマウスをウインドウの外に出せるようにします。カーソルの移動速度などはOSに委ねられます。 - パケットレングス出力
Labの記事に書いた、古今東西のクライアントでpacketLenMapを取得する技術のデモです。Tiny Consoleにデータを出力します。