Long story short: my bad. Both AO and Makaron will produce misaligned reads, it's just I take advantage of Intel CPUs being able to read any memory location for any data size. That means the LSB is always correct, whether you read as-is or align and rotate - and this is what counts for ARM programs. And RBOD will not rotate twice, because it masks address bits before it calls arm7_read_32, so the IF in there is always false.

The problem was, I was trying to be smart and since arm7_read_32 does rotation I thought I could kick RBOD out. Bad move. There was a bug in arm7_read_32, it was rotating all right but was not masking the adddress for the read... Didn't notice it at all.

Anyway, RBOD is back and stays, arm7_read_32 is fixed just in case. Everything seems to work again. I'll send you new sources via mail because the diff would be bigger then the file itself. Keep a copy though, somehow I no longer feel so confident about this stuff smile