mod 圧縮

http://pc8.2ch.net/test/read.cgi/tech/1137502541/680

※追記:現在はここにあります
http://brew.s214.xrea.com/pukiwiki/?%B0%B5%BD%CCmod%A5%ED%A1%BC%A5%C0

このプログラムのミソは、圧縮 mod を実行しているところもそうなのだけれど、それよりモジュールがインターフェースクラスだから、たった4つの関数をルーティングするだけで完全に Proxy としての役割を果たすことが出来ることにある。


例えばこれを応用すれば、複数の mod を別々に作っておいて、そこから一つのアプレットを選択して起動するローダを作成することが可能になる。
まあ、そこで問題となるのが、ISHELL_Close() などの、シェル関数なんだけれども。
これを呼び出すとアプレットは速攻で終了してしまって、アプレットの選択画面に戻ることが出来なくなる。
しかし、IShell もインターフェースなので、自前で IShell を実装したクラスを作っておいてそれを起動時に渡せば、ISHELL_Close() を使っても自分の起動している mod だけを終了させることが出来る。
IShell は関数の数が多いからめんどうだけれども、これさえちゃんと作れば、単体でも起動可能な mod を、自前のローダで起動することが可能になる。


さらに応用して、現在自分のアプレットからロードしている mod 全員に、IApplet のメッセージをdispatch する機能とか、IDisplay の表示を自前で実装して2分割したりすれば、(BREW 上から見れば)1つのアプレットなのに、複数の全く別のアプレットを同時起動することも可能になる。
IUnzipAStream は端末によって妙に遅いのがあるから、自前で実装して速度向上を図るってのもおもしろいかもしれない。


あとはネットワーク上から mod をダウンロードしていろんなゲームが遊べるアプリや、同じくダウンロードして定期的にバージョンアップを行うアプリなんてのも考えられる。


BREW の設計がショボイとかそういう話を 2ch で聞くけれども、こんなおもしろいことが出来るように設計されているのにどこがショボイんだか、って気がする。
やっぱりネックになるのは KDDI の検証だよなぁ……。
というか何でも出来る BREW に対して端末のセキュリティが甘すぎる点かも。