Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from struct import *
- import sys
- print("BS-X SRAM Checksum Fixer v0.3")
- print("By LuigiBlood")
- if (len(sys.argv) > 1):
- if (sys.argv[1] == "-f" and sys.argv[2] != ""):
- FILE = sys.argv[2]
- FIXflag = 1
- else:
- FILE = sys.argv[1]
- FIXflag = 0
- SRAMfile = open(FILE,"r+b")
- CHK1 = 0
- CHK2 = 0
- SRAMfile.seek(0)
- DATA = SRAMfile.read(0x3000)
- print("Checksum: " + hex(DATA[4] + (DATA[5] * 0x100)))
- print("Reverse Checksum: " + hex(DATA[2] + (DATA[3] * 0x100)))
- for i in range(0,0x3000):
- CHK2 += DATA[i]
- for i in range(2,6):
- CHK2 -= DATA[i]
- CHK2 += 0xFF
- CHK2 += 0xFF
- CHK2 &= 0xFFFF
- CHK1 = CHK2 ^ 0xFFFF
- print("Calculated Checksum: " + hex(CHK2))
- print("Calculated Reverse Checksum: " + hex(CHK1))
- if (FIXflag == 1):
- SRAMfile.seek(2)
- SRAMfile.write(pack("2H", CHK1, CHK2))
- print("Checksum Fixed!")
- else:
- print("Usage: " + sys.argv[0] + " [-f] <SRAM File Path>")
- print(" -f : Fix Checksum (Optional)")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement