WinMUGEN's Exponentiation Operator Bug

Instead of computing 2**n correctly, WinMUGEN misinterprets the binary representation of n by reading its least significant bits in reverse order. This causes it to apply the exponentiation as if the bit order of the exponent were flipped, resulting in values being misrouted to unexpected positions. This was fixed on MUGEN 1.0 RC2 onwards. Let's see their results with this table.

Expression Expected Output MUGEN Output Status
2 ** 0 0b00000000000000000000000000000001
1
0b00000000000000000000000000000001
1
✔
Match
2 ** 1 0b00000000000000000000000000000010
2
0b00000000000000000000000000000010
2
✔
Match
2 ** 2 0b00000000000000000000000000000100
4
0b00000000000000000000000000000100
4
✔
Match
2 ** 3 0b00000000000000000000000000001000
8
0b00000000000000000000000000001000
8
✔
Match
2 ** 4 0b00000000000000000000000000010000
16
0b00000000000000000000000000010000
16
✔
Match
2 ** 5 0b00000000000000000000000000100000
32
0b00000000000000000000000001000000
64
✘ Mismatch
2 ** 6 0b00000000000000000000000001000000
64
0b00000000000000000000000000100000
32
✘ Mismatch
2 ** 7 0b00000000000000000000000010000000
128
0b00000000000000000000000010000000
128
✔
Match
2 ** 8 0b00000000000000000000000100000000
256
0b00000000000000000000000100000000
256
✔
Match
2 ** 9 0b00000000000000000000001000000000
512
0b00000000000000000001000000000000
4096
✘ Mismatch
2 ** 10 0b00000000000000000000010000000000
1024
0b00000000000000000000010000000000
1024
✔
Match
2 ** 11 0b00000000000000000000100000000000
2048
0b00000000000000000100000000000000
16384
✘ Mismatch
2 ** 12 0b00000000000000000001000000000000
4096
0b00000000000000000000001000000000
512
✘ Mismatch
2 ** 13 0b00000000000000000010000000000000
8192
0b00000000000000000010000000000000
8192
✔
Match
2 ** 14 0b00000000000000000100000000000000
16384
0b00000000000000000000100000000000
2048
✘ Mismatch
2 ** 15 0b00000000000000001000000000000000
32768
0b00000000000000001000000000000000
32768
✔
Match
2 ** 16 0b00000000000000010000000000000000
65536
0b00000000000000010000000000000000
65536
✔
Match
2 ** 17 0b00000000000000100000000000000000
131072
0b00000001000000000000000000000000
16777216
✘ Mismatch
2 ** 18 0b00000000000001000000000000000000
262144
0b00000000000100000000000000000000
1048576
✘ Mismatch
2 ** 19 0b00000000000010000000000000000000
524288
0b00010000000000000000000000000000
268435456
✘ Mismatch
2 ** 20 0b00000000000100000000000000000000
1048576
0b00000000000001000000000000000000
262144
✘ Mismatch
2 ** 21 0b00000000001000000000000000000000
2097152
0b00000100000000000000000000000000
67108864
✘ Mismatch
2 ** 22 0b00000000010000000000000000000000
4194304
0b00000000010000000000000000000000
4194304
✔
Match
2 ** 23 0b00000000100000000000000000000000
8388608
0b01000000000000000000000000000000
1073741824
✘ Mismatch
2 ** 24 0b00000001000000000000000000000000
16777216
0b00000000000000100000000000000000
131072
✘ Mismatch
2 ** 25 0b00000010000000000000000000000000
33554432
0b00000010000000000000000000000000
33554432
✔
Match
2 ** 26 0b00000100000000000000000000000000
67108864
0b00000000001000000000000000000000
2097152
✘ Mismatch
2 ** 27 0b00001000000000000000000000000000
134217728
0b00100000000000000000000000000000
536870912
✘ Mismatch
2 ** 28 0b00010000000000000000000000000000
268435456
0b00000000000010000000000000000000
524288
✘ Mismatch
2 ** 29 0b00100000000000000000000000000000
536870912
0b00001000000000000000000000000000
134217728
✘ Mismatch
2 ** 30 0b01000000000000000000000000000000
1073741824
0b00000000100000000000000000000000
8388608
✘ Mismatch
2 ** 31 0b10000000000000000000000000000000
-2147483648
0b10000000000000000000000000000000
-2147483648
✔
Match