13 lines
1.1 KiB
Python
13 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
import argparse,hashlib,subprocess
|
|
from pathlib import Path
|
|
H="3bacf56a21602a1298752023a4c5b0c305954ddf6cdbce1464476fc9da9d9093"
|
|
def main():
|
|
p=argparse.ArgumentParser();p.add_argument("--root",type=Path,required=True);r=p.parse_args().root.resolve();sdk=r/"work/toolchains/ps5-payload-sdk-v0.41";raw=(sdk/"target/lib/main.script").read_bytes()
|
|
if hashlib.sha256(raw).hexdigest()!=H:raise SystemExit("SDK identity")
|
|
out=r/"build/phase10dw";out.mkdir(parents=True,exist_ok=True);script=out/"wx.script";script.write_text(raw.decode().replace("ph_text PT_LOAD FLAGS (0x7);","ph_text PT_LOAD FLAGS (0x5);"),newline="\n");src=r.parent/"chimera-retroarch/pkg/ps5/chimera_ps5_fake00000_package_readback.c";elf=out/"chimera_fake00000_package_readback.elf"
|
|
def w(p):return "/mnt/c/"+p.as_posix().split(":/",1)[1]
|
|
subprocess.run(["wsl.exe","bash","-lc",f"set -e; '{w(sdk)}/bin/prospero-clang' -std=c11 -Wall -Wextra -Werror -O2 -Wl,-T,'{w(script)}' -o '{w(elf)}' '{w(src)}'"],check=True)
|
|
if __name__=="__main__":main()
|