ugnagブログ

たいした内容はありません。思いつきで書いているだけ。
開発日記がメインかな。

<< フォーマッター(続き) | main | GC暗号化スクリプト >>

まいったな

PAR3の暗号化をJavaScriptで作ろうかと思った。
しかし、PAR3の場合は複雑なので、とりあえずGCで試してみることにした。
GCの方が、PS2より少しはシンプルだからだ。

幸い、GPCでGCの暗号化モジュールはJAVAにしてあるので、JAVAからJavaScriptへ移植すればいい。
(これも結構大変な作業だが、C言語からの移植よりはましだ)

一応、ロジックの移植は終わり、とりあえず試してみる。

全然ダメだ。
結果がマイナス値になったりしている。

原因を調べていくと、JavaScriptの変数そのものに問題があることがわかった。

つまり、
・変数がバリアント型だということ
・符号無し32ビット整数がない

なんか、内部的に符号付き32ビット整数になったり、64ビット浮動小数点になったりしているような感じがする。

例えば、

b = 0x0FFFFFFF;  //7桁
b = b & 0x080808080;
document.write(b.toString(16));

とすると、

808080

と表示される。





b = 0xFFFFFFFF;  //8桁
b = b & 0x080808080;
document.write(b.toString(16));

とすると、

-7f7f7f80

となってしまう。

当然、80808080を期待しているわけだが。。。


PARの暗号化にはビット演算が必須なのだが、これでは正しい計算はできない。

さて、どうしたものか。。。
プログラム・開発(その他ゲームツール) | comments (1) | -

Comments

ugnag | 2006/07/04 10:43 PM
なんとかなりそうだ。
というか、一応できてしまった。

もう少し、いろいろと試してみる必要はあるが、今のところ大丈夫。

どうしたかというと、
・1バイトなら、論理計算はうまくいく
・ビットシフトは四則演算で代用すれば大丈夫

ということを利用したサブルーチンにした。

Comment Form

本文に書いて下さい
本文にh抜きで書いて下さい