summaryrefslogtreecommitdiffstats
path: root/src/decode.py
blob: 9b8499740e0288d117aeb2762353d4a33c717bef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mem = bytes()
for i in range(4):
    mem += open(f"build/memory{i+1}.bin", "rb").read()

offset = 0x80
lsfr = mem[0xff]
while True:
    bits = [int(v) for v in bin(lsfr)[2:].zfill(8)]
    bits = bits[7:] + bits[0:7]
    bits[0] ^= bits[7-2]
    bits[0] ^= bits[7-5]
    lsfr = sum([2**(7-i) if v else 0 for i,v in enumerate(bits)])
    b = mem[offset + (lsfr & (0xff >> 3))]
    fb = b ^ lsfr
    print(chr(fb), end="")
    if fb == 0:
        break
print()