mirror of
https://github.com/open-goal/jak-project
synced 2026-05-26 15:46:14 -04:00
d6c5d32cd3
Unsure what hacks or type casts might eventually be needed for the PAL version, but these changes are enough to get things to extract and run the game (though the extract phase requires iso_data to be in a jak2_pal folder, but the build still looks for jak2 in iso_data and decompiler_out).
85 lines
2.3 KiB
Python
85 lines
2.3 KiB
Python
import argparse
|
|
import os
|
|
import pprint
|
|
import sys
|
|
|
|
parser = argparse.ArgumentParser("update-env")
|
|
parser.add_argument("--game", help="The name of the game", type=str)
|
|
parser.add_argument("--decomp_config", help="The decompiler config file", type=str)
|
|
parser.add_argument("--info", help="Just print out current settings", action='store_true')
|
|
args = parser.parse_args()
|
|
|
|
# TODO - read from defaults
|
|
file = {
|
|
"GAME": "jak1",
|
|
"DECOMP_CONFIG": "jak1/jak1_config.jsonc",
|
|
"DECOMP_CONFIG_VERSION": "ntsc_v1"
|
|
}
|
|
|
|
env_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), ".env")
|
|
|
|
if not os.path.exists(env_path):
|
|
with open(env_path, 'w') as env_file:
|
|
for item in file.items():
|
|
env_file.write("{}={}\n".format(item[0], item[1]))
|
|
|
|
with open(env_path, 'r') as env_file:
|
|
flags = env_file.readlines()
|
|
for flag in flags:
|
|
tokens = flag.split("=")
|
|
if tokens[0] in file:
|
|
file[tokens[0]] = tokens[1].strip()
|
|
|
|
if args.info:
|
|
print(file)
|
|
sys.exit(0)
|
|
|
|
valid_games = ["jak1", "jak2"]
|
|
|
|
decomp_config_map = {
|
|
"jak1": "jak1/jak1_config.jsonc",
|
|
"jak2": "jak2/jak2_config.jsonc",
|
|
}
|
|
|
|
decomp_config_version_map = {
|
|
"jak1": {
|
|
"ntscv1": "ntsc_v1",
|
|
"ntscv2": "ntsc_v2",
|
|
"pal": "pal",
|
|
"ntscjp": "jp"
|
|
},
|
|
"jak2": {
|
|
"ntscv1": "ntsc_v1",
|
|
"pal": "pal"
|
|
}
|
|
}
|
|
|
|
default_config_version_map = {
|
|
"jak1": "ntsc_v1",
|
|
"jak2": "ntsc_v1"
|
|
}
|
|
|
|
if args.game:
|
|
if args.game not in valid_games:
|
|
print("Unsupported game '{}'".format(args.game))
|
|
sys.exit(1)
|
|
curr = file["GAME"]
|
|
file["GAME"] = args.game
|
|
if (curr != file["GAME"]) or file["DECOMP_CONFIG_VERSION"] not in decomp_config_version_map[file["GAME"]]:
|
|
file["DECOMP_CONFIG"] = decomp_config_map[file["GAME"]]
|
|
file["DECOMP_CONFIG_VERSION"] = default_config_version_map[file["GAME"]]
|
|
if args.decomp_config:
|
|
if args.decomp_config not in decomp_config_version_map[file["GAME"]]:
|
|
print("Unsupported decomp config '{}' for game '{}'".format(args.decomp_config, file["GAME"]))
|
|
sys.exit(1)
|
|
file["DECOMP_CONFIG"] = decomp_config_map[file["GAME"]]
|
|
file["DECOMP_CONFIG_VERSION"] = decomp_config_version_map[file["GAME"]][args.decomp_config]
|
|
|
|
with open(env_path, 'w') as env_file:
|
|
for item in file.items():
|
|
env_file.write("{}={}\n".format(item[0], item[1]))
|
|
|
|
print("Task settings updated")
|
|
pp = pprint.PrettyPrinter(indent=2)
|
|
pp.pprint(file)
|