That e-2 bit was probably Nintendo trying to encourage good program design. The JR instructions occupy 2 bytes in machine code. When performing the JR instruction, the PC is actually pointing to the instruction right after JR. If e is specified as -1, the PC would technically be the the address of JR's immediate, which would then become an opcode the next cycle, which could lead to some wacky code execution. It's probably perfectly legal to do what I described above, but Nintendo probably didn't want to have games messing up, so they opted to keep programmers safe to begin with.



So what I think they meant to explain was that the signed immediate (e) should always be calculated as the value you want to jump first, then subtract 2. So if you wanted to jump the PC to one byte before the JR instruction, you would not use -1 (that jumps the PC into JR's immediate) but -3. This concept is poorly communicated in Nintendo docs though, and it took me some head-scratching to figure out what they meant.