mirror of
https://github.com/elliotnunn/tbxi.git
synced 2024-06-14 02:29:33 +00:00
Hacky Pippin ROM support
The Pippin ROM has lower checksums than expected, by about 4%. Without recovering the missing data, this probably cannot be replicated, so we just detect it and live with it.
This commit is contained in:
parent
47b0cb1c38
commit
b5af802944
|
@ -119,10 +119,19 @@ def find_configinfo(binary):
|
||||||
allsums = b''.join(x.to_bytes(4, byteorder='big') for x in sum32)
|
allsums = b''.join(x.to_bytes(4, byteorder='big') for x in sum32)
|
||||||
allsums += sum64.to_bytes(8, byteorder='big')
|
allsums += sum64.to_bytes(8, byteorder='big')
|
||||||
|
|
||||||
|
# if i == 0x30d000: # for figuring out pippin in future
|
||||||
|
# print(*['%02X' % x for x in allsums])
|
||||||
|
# print(*['%02X' % x for x in binary[i:i+len(allsums)]])
|
||||||
|
|
||||||
if binary[i:i+len(allsums)] == allsums:
|
if binary[i:i+len(allsums)] == allsums:
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
return
|
# Hack for Pippin ROM, which has bad checksum
|
||||||
|
for i in range(0x300000, len(binary), 0x100):
|
||||||
|
if binary[i+0x64:].startswith(b'Boot '):
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
return # failed!
|
||||||
|
|
||||||
# Which structs share the BootstrapVersion signature?
|
# Which structs share the BootstrapVersion signature?
|
||||||
for j in range(0, len(binary), 0x100):
|
for j in range(0, len(binary), 0x100):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user