summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/dump_decompress.py2
-rw-r--r--tools/xor_compress.py13
2 files changed, 8 insertions, 7 deletions
diff --git a/tools/dump_decompress.py b/tools/dump_decompress.py
index 2776c2b..0fcc897 100644
--- a/tools/dump_decompress.py
+++ b/tools/dump_decompress.py
@@ -10,7 +10,7 @@ bank_addr = argv[1].split(':')
bank = int(bank_addr[0], 16)
addr = int(bank_addr[1], 16)
length = int(argv[2], 16)
-offset = bank * 0x4000 + addr - (0x4000 if bank else 0)
+offset = bank * 0x4000 + (addr & 0x3fff)
output = []
i = offset
diff --git a/tools/xor_compress.py b/tools/xor_compress.py
index 5b3e6a2..6deb2aa 100644
--- a/tools/xor_compress.py
+++ b/tools/xor_compress.py
@@ -1,14 +1,16 @@
#!/usr/bin/env python3
-# Usage: ./xor_compress.py [source.bin] [dest.bin.xor]
+# Usage: ./xor_compress.py sources.bin... > dest.bin.xor
import sys
-with (open(sys.argv[1], 'rb') if len(sys.argv) > 1 else sys.stdin) as f:
- data = f.read()
+data = bytearray()
+for filename in sys.argv[1:]:
+ with open(filename, 'rb') as f:
+ data.extend(f.read())
n = len(data)
-output = []
+output = bytearray()
v = 0x00
i = 0
@@ -42,5 +44,4 @@ while i < n:
output.append(len(buffer) - 1)
output.extend(buffer)
-with (open(sys.argv[2], 'wb') if len(sys.argv) > 2 else sys.stdout) as f:
- f.write(bytes(output))
+sys.stdout.buffer.write(output)