FC2ブログ
2012/01/26

JPCPS CWC間違い

SVN
} else if ((comm >>> 28) == 0x8) { // 8-bit and 16-bit patch code.//comはintなんで符号
int addr = MemoryMap.START_USERSPACE + (comm - 0x40000000comm & 0x0FFFFFFF);//nazeka0x4のへっだとばしになってる
int data = (int)Long.parseLong(codes[i + 1].split(" ")[0].substring(2), 16);
int dataAdd = (int)Long.parseLong(codes[i + 1].split(" ")[1].substring(2), 16);

int maxAddr = (arg >>> 16) & 0xFFFF;
int stepAddr = (arg & 0xFFFF) * 4;

if ((data >>> 16) >= 0x1000) {
stepAddr += stepAddr;
}


for (int a = 0; a < maxAddr; a++) {
if (Memory.isAddressGood(addr)) {
if ((data >>> 16) == 0x1000) {
mem.write16(addr, (short) (data & 0xFFFF));
} else {
mem.write8(addr, (byte) (data & 0xFF));
}
}
addr += stepAddr;
data += dataAdd;
}
}

よくみるとまだあったk、0x8は処理がぜんぜん違うような(0x8なのに0x4のおふせっと4倍になってる)。しりある分解(sanik's convertor)でぐぐってくる人が多いのはこれか?(int)Long.parseLongもよくわからんが,parseintで>>を>>>でいいようなきがす。

スポンサーサイト



17:33 | JPCPSCOMMENT(0)TRACKBACK(0)  TOP

コメント

コメントの投稿



秘密にする