forked from ReScrap/ScrapHacks
Daniel Seiller
7e044f0114
- Update NOTES with new findings - Add Cutter link to README - Add ASMJIT, ASMTK and Zydis to CMake - Make DX8 setting cofigurable via ScrapHacks REPL - Add scaffolding for build hook trampolines using asmjit - Add on the fly assembling of code to REPL - Clean up command structure - Add memory RWX to REPL - Add stack dumping to REPL - Add Gamevar dumping to REPL - Add hook check to overlay commands (don't work if DX8 not hooked) - Allow nested command definitions for cleaner REPL - AllocConsole() as early as possible - shuffle some code around for cleanup - Add GameVar, PakEntry and HashIndex structures
21 lines
634 B
Python
21 lines
634 B
Python
import sys
|
|
from construct import *
|
|
from pprint import pprint
|
|
|
|
ScrapSaveVar = Struct(
|
|
"name" / PascalString(Int32ul, encoding="utf-8"),
|
|
"data" / PascalString(Int32ul, encoding="utf-8"),
|
|
)
|
|
ScrapSave = "ScarpSaveGame" / Struct(
|
|
"title" / PascalString(Int32ul, encoding="utf-8"),
|
|
"id" / PascalString(Int32ul, encoding="utf-8"),
|
|
"data" / PrefixedArray(Int32ul, ScrapSaveVar),
|
|
Terminated,
|
|
)
|
|
with open(sys.argv[1], "rb") as sav_file:
|
|
save = ScrapSave.parse_stream(sav_file)
|
|
print("ID:", save.id)
|
|
print("Title:", save.title)
|
|
for var in save.data:
|
|
print(" {}: {}".format(var.name, var.data))
|
|
|