summaryrefslogtreecommitdiff
path: root/scripts/scriptchecksum.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/scriptchecksum.py')
-rw-r--r--scripts/scriptchecksum.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/scriptchecksum.py b/scripts/scriptchecksum.py
new file mode 100644
index 0000000..d40a12d
--- /dev/null
+++ b/scripts/scriptchecksum.py
@@ -0,0 +1,28 @@
+import struct
+import sys
+
+out = open(sys.argv[2], 'w')
+sum = 0x1121
+len = 0
+with open(sys.argv[1], 'rb') as f:
+ while True:
+ byte = f.read(1)
+ if not byte:
+ break
+
+ sum ^= ord(byte)
+ for i in range(8):
+ if(sum & 1):
+ sum = (sum >> 1) ^ 0x8408
+ else:
+ sum >>= 1
+ len += 1
+ sum = ~sum & 0xFFFF
+f.closed
+
+out.write(struct.pack('<I', sum))
+out.write(struct.pack('<I', 0x0200001E))
+out.write(struct.pack('<I', 0x0200001E + len))
+with open(sys.argv[1], 'rb') as f:
+ out.write(f.read())
+f.closed \ No newline at end of file