AGAL逆コンパイラ

1728 ワード

ソースコード:http://files.cnblogs.com/flash3d/Disassembler.rar
AGALは、グラフィックスカードのためにサイコロプログラムを書くためのアセンブリ言語であり、Molehillプログラムを手動で書くために必要な技術です.ASにおいては、彼は文字列として存在し、公式に提供されたAGALM inAsmberrクラスを通じてバイト配列にコンパイルされる.その後、それをPrograam 3 Dに包装し、Contect3 Dを通じてグラフィックスにアップロードして実行します.
先日はMolehill技術を使ったプログラムを圧縮しました.中には一つの技術があります.実際には、着色器プログラムはAGALM iniAssemberから完全に逸脱できます.あらかじめAGALプログラムをコンパイルしてバイト配列を生成し、文字列で保存することができます.この文字列は既にコンパイルされたプログラムであり、実行時にAGALM inAsmberrでコンパイルする必要はない.AGALM iniAsmberクラスを省略すると、プログラム10 Kの体積が節約できます.もともと何Kもないプログラムを大幅にダイエットしました.
この技術は海外で流行していますので、人のプログラムを外す時には、そのカラーバリエーションはよく分からない「文字化け」です.そこで、海外では他のいいことをする人がAGAL逆コンパイルプログラムを作りました.
私は逆コンパイルプログラムをUIに包装して彼の効果を実証しました.
左はソースボックスです.右はバイトコードボックスです.左下はプログラムタイプです.プログラムを探して遊んでみてもいいです.
頂点の色をテストするプログラム:
m44 op, va0, vc0          

mov v0, va1

dp3 vt0,vc4,va2

add vt0.x,vc5.x,vt0.x

div v1,vt0.x,vc5.y
テストセグメントのカラーライタープログラム:
tex ft1, v0, fs0 <2d,linear,nomip>     

mul ft1,ft1,v1.x

mov oc, ft1
最近Molehillの研究を始めました.やはり抽象的です.みんなで一緒に進歩しましょう.