BioShock 2

BLUS30420.savepatch

1. Decompress MAINSAVE.BSG (Required)

Target File: BLUS30420-*\MAINSAVE.BSG

import uzlib
zip_offset = uzlib.offzip(savedata, 15)
zip_id = 0
unzip_data = uzlib.decompress(savedata[zip_offset[zip_id][0]:], 15)
print("Zip offset: 0x{:08X}".format(zip_offset[zip_id][0]))
print("Compressed size:", zip_offset[zip_id][1])
print("Decompressed size:", zip_offset[zip_id][2])

2. Max Money

Target File: BLUS30420-*\MAINSAVE.BSG

import apollo
sw_code = """
80010008 03000000
00220000 00000000
18000008 000003E7
80010008 02000000
00220000 00000000
18000008 000003E7
"""
apollo.apply_savewizard(unzip_data, sw_code)

3. Max ADAM

Target File: BLUS30420-*\MAINSAVE.BSG

import apollo
sw_code = """
80010008 03000000
00220000 00000000
18000012 0000270F
80010008 02000000
00220000 00000000
18000012 0000270F
"""
apollo.apply_savewizard(unzip_data, sw_code)

4. Compress MAINSAVE.BSG (Required)

Target File: MAINSAVE.BSG

import uzlib
print("Compressing bytes:", len(unzip_data))
print("Compress offset: 0x{:08X}".format(zip_offset[zip_id][0]))
print("Old compressed size:", zip_offset[zip_id][1])
savedata = uzlib.packzip(savedata, zip_offset[zip_id], unzip_data)
print("New compressed size:", zip_offset[zip_id][1])