mirror of
https://github.com/open-goal/jak-project
synced 2026-09-08 03:46:51 -04:00
decomp: resolve first batch of trivial files (#4266)
This commit is contained in:
+81
-64
@@ -5,79 +5,96 @@ import subprocess
|
||||
jak1_files = None
|
||||
jak2_files = None
|
||||
jak3_files = None
|
||||
jakx_files = None
|
||||
|
||||
with open("./goal_src/jak1/build/all_objs.json", "r") as f:
|
||||
jak1_files = json.load(f)
|
||||
with open("./goal_src/jak2/build/all_objs.json", "r") as f:
|
||||
jak2_files = json.load(f)
|
||||
with open("./goal_src/jak3/build/all_objs.json", "r") as f:
|
||||
jak3_files = json.load(f)
|
||||
with open("./goal_src/jakx/build/all_objs.json", "r") as f:
|
||||
jakx_files = json.load(f)
|
||||
|
||||
with open('./goal_src/jak1/build/all_objs.json', 'r') as f:
|
||||
jak1_files = json.load(f)
|
||||
with open('./goal_src/jak2/build/all_objs.json', 'r') as f:
|
||||
jak2_files = json.load(f)
|
||||
with open('./goal_src/jak3/build/all_objs.json', 'r') as f:
|
||||
jak3_files = json.load(f)
|
||||
|
||||
def get_file_list(game_name):
|
||||
match game_name:
|
||||
case "jak1":
|
||||
return jak1_files
|
||||
case "jak2":
|
||||
return jak2_files
|
||||
case "jak3":
|
||||
return jak3_files
|
||||
match game_name:
|
||||
case "jak1":
|
||||
return jak1_files
|
||||
case "jak2":
|
||||
return jak2_files
|
||||
case "jak3":
|
||||
return jak3_files
|
||||
case "jakx":
|
||||
return jakx_files
|
||||
|
||||
|
||||
def is_file_in_game(game_name, file_name):
|
||||
file_list = get_file_list(game_name)
|
||||
for f in file_list:
|
||||
if f[2] != 3 and f[2] != 5:
|
||||
continue
|
||||
if f[0] == file_name:
|
||||
return True
|
||||
return False
|
||||
file_list = get_file_list(game_name)
|
||||
for f in file_list:
|
||||
if f[2] != 3 and f[2] != 5:
|
||||
continue
|
||||
if f[0] == file_name:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def get_gsrc_path_from_filename(game_name, file_name):
|
||||
file_list = get_file_list(game_name)
|
||||
src_path = ""
|
||||
for f in file_list:
|
||||
if f[2] != 3 and f[2] != 5:
|
||||
continue
|
||||
if f[0] == file_name:
|
||||
src_path = f[4]
|
||||
break
|
||||
path = "./goal_src/{}/{}/{}.gc".format(game_name, src_path, file_name)
|
||||
if not os.path.exists(path):
|
||||
print("couldn't find {} in /goal_src/{}!".format(file_name, game_name))
|
||||
exit(1)
|
||||
return path
|
||||
file_list = get_file_list(game_name)
|
||||
src_path = ""
|
||||
for f in file_list:
|
||||
if f[2] != 3 and f[2] != 5:
|
||||
continue
|
||||
if f[0] == file_name:
|
||||
src_path = f[4]
|
||||
break
|
||||
path = "./goal_src/{}/{}/{}.gc".format(game_name, src_path, file_name)
|
||||
if not os.path.exists(path):
|
||||
print("couldn't find {} in /goal_src/{}!".format(file_name, game_name))
|
||||
exit(1)
|
||||
return path
|
||||
|
||||
|
||||
def get_alltypes_path_from_game(game_name):
|
||||
return "./decompiler/config/{}/all-types.gc".format(game_name)
|
||||
return "./decompiler/config/{}/all-types.gc".format(game_name)
|
||||
|
||||
|
||||
def get_ref_path_from_filename(game_name, file_name, ref_folder):
|
||||
file_list = get_file_list(game_name)
|
||||
src_path = ""
|
||||
for f in file_list:
|
||||
if f[2] != 3 and f[2] != 5:
|
||||
continue
|
||||
if f[0] == file_name:
|
||||
src_path = f[4]
|
||||
break
|
||||
if src_path == "":
|
||||
print("couldn't determine ref path for {}:{}!".format(game_name, file_name))
|
||||
exit(1)
|
||||
path = os.path.join(ref_folder, game_name, src_path, "{}_REF.gc".format(file_name))
|
||||
return path
|
||||
file_list = get_file_list(game_name)
|
||||
src_path = ""
|
||||
for f in file_list:
|
||||
if f[2] != 3 and f[2] != 5:
|
||||
continue
|
||||
if f[0] == file_name:
|
||||
src_path = f[4]
|
||||
break
|
||||
if src_path == "":
|
||||
print("couldn't determine ref path for {}:{}!".format(game_name, file_name))
|
||||
exit(1)
|
||||
path = os.path.join(ref_folder, game_name, src_path, "{}_REF.gc".format(file_name))
|
||||
return path
|
||||
|
||||
def decompile_file(decompiler_path, decompiler_config, game_version, file_names, omit_var_casts=False):
|
||||
decompiler_args = '{{"levels_extract": false, "process_art_groups": false, "decompile_code": true, "allowed_objects": {}}}'.format(file_names)
|
||||
if omit_var_casts:
|
||||
decompiler_args = '{{"levels_extract": false, "process_art_groups": false, "decompile_code": true, "ignore_var_name_casts": true, "allowed_objects": {}}}'.format(file_names)
|
||||
subprocess.run(
|
||||
[
|
||||
decompiler_path,
|
||||
"./decompiler/config/{}".format(decompiler_config),
|
||||
"./iso_data",
|
||||
"./decompiler_out",
|
||||
"--version",
|
||||
game_version,
|
||||
"--config-override",
|
||||
decompiler_args,
|
||||
],
|
||||
stdout = subprocess.DEVNULL
|
||||
)
|
||||
|
||||
def decompile_file(
|
||||
decompiler_path, decompiler_config, game_version, file_names, omit_var_casts=False
|
||||
):
|
||||
decompiler_args = '{{"levels_extract": false, "process_art_groups": false, "decompile_code": true, "allowed_objects": {}}}'.format(
|
||||
file_names
|
||||
)
|
||||
if omit_var_casts:
|
||||
decompiler_args = '{{"levels_extract": false, "process_art_groups": false, "decompile_code": true, "ignore_var_name_casts": true, "allowed_objects": {}}}'.format(
|
||||
file_names
|
||||
)
|
||||
subprocess.run(
|
||||
[
|
||||
decompiler_path,
|
||||
"./decompiler/config/{}".format(decompiler_config),
|
||||
"./iso_data",
|
||||
"./decompiler_out",
|
||||
"--version",
|
||||
game_version,
|
||||
"--config-override",
|
||||
decompiler_args,
|
||||
],
|
||||
stdout=subprocess.DEVNULL,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user