BioShock Infinite
BLUS30629.savepatch
1. Decompress PAYLOAD (Required)
Target File: PAYLOAD
import uzlib
zip_offset = uzlib.offzip(savedata, 15)
unzip_data = uzlib.decompress(savedata[zip_offset[0][0]:], 15)
print("Zip offset: 0x{:08X}".format(zip_offset[0][0]))
print("Compressed size:", zip_offset[0][1])
print("Decompressed size:", zip_offset[0][2])
2. Money $9999
Target File: PAYLOAD
import apollo
sw_code = """
80010004 C12581B2
28000004 0000270F
"""
apollo.apply_savewizard(unzip_data, sw_code)
3. Lockpicks 30
Target File: PAYLOAD
import apollo
sw_code = """
80010004 C12581B2
18000022 0000001E
"""
apollo.apply_savewizard(unzip_data, sw_code)
4. CHEATS BELOW MAY STOP STORY TROPHIES
5. Money 90000
Target File: PAYLOAD
import apollo
sw_code = """
80010004 C12581B2
28000004 00015F90
"""
apollo.apply_savewizard(unzip_data, sw_code)
6. Lockpicks 900
Target File: PAYLOAD
import apollo
sw_code = """
80010004 C12581B2
18000022 00000384
"""
apollo.apply_savewizard(unzip_data, sw_code)
7. Silver Eagle 99999
Target File: PAYLOAD
import apollo
sw_code = """
80010004 C12581B2
28000004 0001869F
"""
apollo.apply_savewizard(unzip_data, sw_code)
8. Lockpick 999
Target File: PAYLOAD
import apollo
sw_code = """
80010004 C12581B2
28000034 000003E7
"""
apollo.apply_savewizard(unzip_data, sw_code)
9. Infinity Health (Normal Mode)
Target File: PAYLOAD
import apollo
sw_code = """
80010004 C12581B2
A8000097 00000008
7FFFFFFF 7FFFFFFF
"""
apollo.apply_savewizard(unzip_data, sw_code)
10. Compress PAYLOAD (Required)
Target File: PAYLOAD
import uzlib
import ustruct as struct
print("Compressing bytes:", len(unzip_data))
print("Compress offset: 0x{:08X}".format(zip_offset[0][0]))
print("Old compressed size:", zip_offset[0][1])
savedata[:] = uzlib.packzip(savedata, zip_offset[0], unzip_data)
print("New compressed size:", zip_offset[0][1])
struct.pack_into(">I", savedata, zip_offset[0][0] - 0x08, zip_offset[0][1])
struct.pack_into(">I", savedata, zip_offset[0][0] - 0x10, zip_offset[0][1])