Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import datetime
- with open("dk64.z64","rb") as fh: # Change filename to correspond to the ROM
- file_size = len(fh.read())
- dates = {}
- names = []
- for x in range(file_size):
- fh.seek(x)
- data = int.from_bytes(fh.read(3), "big")
- header = int.from_bytes(fh.read(1), "big")
- if data == 0x1F8B08:
- # GZIP File
- fh.seek(x + 4)
- timestamp = int.from_bytes(fh.read(4), "little")
- if timestamp != 0:
- date_time = datetime.datetime.fromtimestamp(timestamp)
- date = str(date_time).split(" ")[0]
- fh.seek(x + 10)
- if header & 8:
- filename = ""
- filename_ended = False
- while not filename_ended:
- val = int.from_bytes(fh.read(1), "big")
- if val == 0:
- filename_ended = True
- else:
- filename += bytearray([val]).decode("ascii")
- # filename += hex(val)[2:] # JP
- if filename not in names:
- names.append(filename)
- if date in dates:
- dates[date]["count"] += 1
- dates[date]["files"].append(hex(x))
- else:
- dates[date] = {
- "count": 1,
- "files": [hex(x)]
- }
- print(dates)
- print(names)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement