decode.py (459B)
1 2mem = bytes() 3for i in range(4): 4 mem += open(f"build/memory{i+1}.bin", "rb").read() 5 6offset = 0x80 7lsfr = mem[0xff] 8while True: 9 bits = [int(v) for v in bin(lsfr)[2:].zfill(8)] 10 bits = bits[7:] + bits[0:7] 11 bits[0] ^= bits[7-2] 12 bits[0] ^= bits[7-5] 13 lsfr = sum([2**(7-i) if v else 0 for i,v in enumerate(bits)]) 14 b = mem[offset + (lsfr & (0xff >> 3))] 15 fb = b ^ lsfr 16 print(chr(fb), end="") 17 if fb == 0: 18 break 19print()