aboutsummaryrefslogtreecommitdiff
path: root/scripts/edit-recording.py
blob: 5f98a7e91ea4f7a6142ab1674e4a0df340ce7925 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import sys

file = open(sys.argv[1], "rb")
output_file = open(sys.argv[2], "wb")

last_cycle_update = 0
offset = 0
while True:
    next_cycle_update_buf = file.read(16)
    if len(next_cycle_update_buf) < 16:
        break
    inputs = file.read(2)

    next_cycle_update = int.from_bytes(next_cycle_update_buf, byteorder="little", signed=False)
    print("CYCLES: %d, input1: %08x, input2: %08x" % (next_cycle_update, inputs[0], inputs[1]))


    next_cycle_update -= offset

    if last_cycle_update != 0:
        if next_cycle_update - last_cycle_update > 70224 * 256 * 8:
            new_offset = (next_cycle_update - last_cycle_update) - ((next_cycle_update - last_cycle_update) % (70224 * 256)) - (70224 * 256)
            print(new_offset)
            next_cycle_update -= new_offset
            offset += new_offset


    last_cycle_update = next_cycle_update
    output_file.write(next_cycle_update.to_bytes(16, byteorder="little", signed=False))
    output_file.write(inputs)