いうソフトウェアやサービスの実現を目指します。Blogテーマ更新中!Twitterを木目背景にしたついでに、サイトのほうも木目調ベースで新規構築しました。改修中ですので、ちょこちょこと修正していきます。背景画像が読み込まれる前に、背景が白くなってしまう問題を修正。その1iGaruTalk(仮称)を一部の身内に公開してから、9ヶ月くらいが立ちました。ベータ版故に不安定な部分があり、まだ一般公開はしていません。iGaruTalkは、インストール不要のオンラインコミニュケーションツールとして2011年頃から開発を始め、2012年頭に、ベータプレビューテストを行っていました。いっても、身内や一部知人のみにひっそりと公開していた状態でした。●アバター(プロフィール画像)●ショートメッセージと、一般的なインスタントメッセンジャーの機能がありました。現在はFlashにたよりきった実装をしているため、Flash衰退思考の強まったこのご時勢にマッチしていませんでした。WebRTCはまだまだ仕様が定まっておらず、Flashを完全に利用しないでの実装は困難です。そこでiGaruTalk2では、次のような方式として設計しております。比較的通信量の多いボイスチャットや、ビデオチャット、ファイル転送に関してはとりあえずRTMFPで作成するが、今後WebRTCへ置換していくこれで、WebRTCが普及したらすぐにFlashから乗り換えが可能になります。*アバター(プロフィール画像)等の軽量な画像は、データURLスキームとしてテキストとして扱うかもしれません。ちなみに、現時点でのiGaruTalk2は、基本的かつ骨組み的なUIが大体出来上がり、テキスト通信部分が可能となっています。現在は最も基本的なテキスト通信部分を、さまざまなプラットフォーム(x64,x86,Chrome,Firefox,IE+ChoromeFrame)でテストを行っている段階です。今日は、Join時のニックネーム・グループ名設定画面を作成しました。開発が進んだら、各機能の紹介もおこないたいと思っております。BlogメインPCメンテナンス暑い日も残り少なくなってきた・・と願いたい今日この頃ですが、みなさんは夏バテ等はしてないでしょうか。最近、私のメインPCの動作が、だんだんもっさりしてきたことに微妙にストレスがたまり気味です。1年半前に買ったPCなので、買い替えるには早すぎると思ったので、今回は、PC増強+SSDの導入をしてみたいと思いました。3万円くらいの出費ですね。すごく面倒くさいです。今週末くらいにはパーツ届く予定ですので、週末はこの作業に追われそうです。SSDの利用は今回初めてですが、どの程度か期待しております。Blog[JAVAアセンブリ][Modding]IndustrialCraft2のマターレシピの無効化Forgeを用いて作られたMODをデコンパイルして改編後、再度リコンパイルしようとすると、うまくコンパイルができなかったりしますよね。(やり方が悪いだけかもしれませんがそこで、今回は、逆アセンブルを用いた方法で、IC2のマターのレシピを無効化してみたいと思います。用意するものは、JDKと、JD-GUIです。テキストエディタや、バイナリエディダもあるとよいでしょう。JDKは、MOD開発者なら当然持っていることでしょう。JD-GUIも有名なJAVAデコンパイラですね。今回は、JAVA等の環境パスは通ってる前提で進めます。最初に、対象クラスを、取り出しましょう。今回は、mod_IC2.class内の、レシピ情報を書き換えたいので、mod_IC2.classを取り出します。その取り出したmod_IC2.classをJD-GUIを用いて、改変箇所を確認します。今回は、registerCraftingRecipes()内の、マターを用いたレシピ追加情報消去します。matterで検索を行います。846行目あたりから、マターのレシピが大量に追加されていることが確認できます。877行目のiridiumOreのレシピだけは残して、クァンタムの作成だけは許容するようにしてみます。878行目~890行目までを無効化すればいいと分かりましたね。今度は、これを逆アセンブルしましょう。mod_IC2.classを保存した場所に移動します。実行し、逆アセンブルを行います。すると、カレントディレクトリに、逆アセンブルされたmod_IC2.asmが生成されます。今度は、逆アセンブルされたクラスを見るために、mod_IC2.asmをTerapadやメモ帳などのお好きなテキストエディタで開いて確認します。4967行目に対象を発見しました。ーーっとアセンブル情報が記述されています。長時間みていると、一部のマニアを除いて嫌気がさしてくるので、がっつり眺めてはいけません。-lオプションをつけて、逆アセンブルしているため、メソッドの終了後に、デコンパイラとの行数の対応表が付与されています。下へスクロールし、15507行目あたりでやっと、オフセット対応表が出現しました。と先程調査しましたので、それに対応するメソッド内オフセットを調査します。対象開始となる846行目は、メソッド内オフセット4170番目から始まることがわかります。対象終了である、876行目は、メソッド内オフセットの5991番目まで続いてることが分かります。この際、5937番目ではないことに注意してください。メソッド内オフセット値となります。このオフセットはあくまで、メソッド内オフセットですので、このままでは実オフセットがわかりません。メソッド内オフセット0が、実オフセットのいくつに対応するのか調査を行います。registerCraftingRecipesの前のメソッド(takenFromCrafting)は、分かりやすい構成となっているので、それを目印として探してみましょう。各々の命令(aload_1など)の前の数字は、メソッド内オフセットを表しています。invokestaticのオフセットが3なのにたいして、returnのオフセットが6なので、invokestaticは、3バイト有していることが分かります。それをもとに、ニーモニック変換を行います。ニーモニック変換は、wikiの表を参考にしながら頑張ります。Stirlingなどのバイナリエディダを用いて、mod_IC2.classの対象個所を探してみましょう。大体、0xC6DA付近に対象がみつかりましたね。条件にぴったりマッチしていることが確認できますね。メソッドが終わった後、すぐに次のメソッドのコードが書かれるわけではないので、registerCraftingRecipes側の先頭部分についても同様に探してみましょう。くるところを探してみます。0xC73Bに発見できました。よって、オフセットは0xC73Bであることがわかりました。6046~6400に足します。10進表記と16進表記がまじっててわかりにくいので、16進数表記で統一します。179E~1900これに、オフセットC73Bを加えると、D785-DEA2DED9-E03Bであることが分かりました。これでほとんどの工程は完了です。この範囲をNOPで埋めます。NOPは何もしないことを指します。NOPコードは0なので、D785-DEA2とDED9-E03Bの範囲をそれぞれ指定して、0うめをします。範囲をががーっと選択して、選択範囲を0で初期化します。同様に、DED9-E03Bも初期化します。あとは保存して、jar内にclassを上書きして戻してやれば、作業は完了!不安であれば、一応編集後のclassを再度、JD-GUI等でデコンパイルしてみて、正常に変更ができたか確認してにまにましてくださいませ。実際にゲーム内で試してみることもお忘れなく。Blogポート開放支援ツール:UPnPPortOpener2の公開1年前に公開しました、ポート開放支援ツールUPnPPortOpenerですが、NICの選択など、分かりにくい設定項目が残っていました。基本的にこれだけで利用することが可能になりました。ついでではありますが、外部からのTCPポートの通信チェックサービスも始めました。これも、是非ご利用ください。実用のことを考慮すると、LAMPで作ったほうがいいよなぁーってことで、VMWareを利用して、仮想端末にLinuxを構築することにしました。OSは今まではUbuntuがメインでしたけれど、今回はCentOSを利用して作成しようと思います。いうのもVPSのOSが今はCentOSを使っていますので、それに合わせて勉強がてらですね。CentOSの構築は初めてなので勉強になりますね。PCが1台ほしくなりました。現在私は、稼働可能な3台のPCを持っています。ノートPC、メインPC、そして、以前メインだったPCです。実験・研究用として自宅サーバーとしてサーバー機を構築していました。サーバ機では、Webサーバや、TeamSpeakサーバ、ゲームサーバ等を稼働させたりしていました。サーバ機として、常用していると、気軽に再起動や、実験等が行えなかったりするのです。自分が提供しているサービスを利用している方も結構いるからです。現状のサーバ機を使って実験・研究をしていこうかなーと思う今日この頃です。VPSに移管するからといって、ドメイン等は変わらないので、URL等は変化しないのですが、DNSが浸透するまでのしばらくの間は、旧サーバから、新サーバ(VPS)へ接続を転送してあげる必要があります。stoneの出番です。stoneは、いわゆるパケットリピーターで、様々な通信を中継させることができます。Blogちょっとしたゲームでも作りたい。夏バテ気味のガルゥルです。した3Dゲームでも作ってみようかと、様々な方法を検討し続けていました。今回検討したグラフィック/ゲームライブラリは次の通りです。