jak-project/decompiler/config/jak1/jak1_config.jsonc
Tyler Wilding 6d99f1bfc1
d/config: re-organize decompiler/config and eliminate most of the duplication (#2185)
Reasons for doing so include:
1. This should stop the confusion around editing the wrong config file's
flags -- when for example, extracting a level. Common settings can be in
one central place, with bespoke overrides being provided for each
version
2. Less verbose way of supporting multiple game versions. You don't have
to duplicate the entire `type_casts` file for example, just add or
override the json objects required.
3. Makes the folder structure consistent, Jak 1's `all-types` is now in
a `jak1` folder, etc.
2023-03-08 20:07:26 -05:00

188 lines
6.5 KiB
Plaintext

{
"game_version": 1,
"text_version": 11, // patched to 11
"game_name": "jak1",
"expected_elf_name": "SCUS_971.24",
// if you want to filter to only some object names.
// it will make the decompiler much faster.
"allowed_objects": [],
"banned_objects": [],
////////////////////////////
// CODE ANALYSIS OPTIONS
////////////////////////////
// set to true to generate plain .asm files with MIPS disassembly, with no fancy decompilation.
// this is fast and should succeed 100% of the time.
"disassemble_code": false,
// Run the decompiler
"decompile_code": false,
// run the first pass of the decompiler
"find_functions": true,
////////////////////////////
// DATA ANALYSIS OPTIONS
////////////////////////////
// set to true to generate plain .asm files for data files.
// this will display most data as hex, but will add labels/references/type pointers/strings
// this generates a huge amount of output if you run it on the entire game.
"disassemble_data": false,
// unpack textures to assets folder
"process_tpages": true,
// unpack game text to assets folder
"process_game_text": true,
// unpack game count to assets folder
"process_game_count": true,
// write goal imports for art groups
"process_art_groups": true,
// write out a json file containing the art info mapping, run this with all objects allowed
"dump_art_group_info": false,
///////////////////////////
// WEIRD OPTIONS
///////////////////////////
// these options are used rarely and should usually be left at false
// generate the symbol_map.json file.
// this is a guess at where each symbol is first defined/used.
"generate_symbol_definition_map": false,
// genreate the all-types file
"generate_all_types" : false,
// debug option for instruction decoder
"write_hex_near_instructions": false,
// experimental tool to extract linked lists used for region scripting in Jak 2 and Jak 3.
"write_scripts": false,
// hex dump of code/data files.
"hexdump_code": false,
"hexdump_data": false,
// dump raw obj files
"dump_objs": true,
// print control flow graph
"print_cfgs": false,
// set to true for PAL versions. this will forcefully skip files that have some data missing at the end.
"is_pal": false,
////////////////////////////
// CONFIG FILES
////////////////////////////
"type_casts_file": "decompiler/config/jak1/ntsc_v1/type_casts.jsonc",
"anonymous_function_types_file": "decompiler/config/jak1/ntsc_v1/anonymous_function_types.jsonc",
"var_names_file": "decompiler/config/jak1/ntsc_v1/var_names.jsonc",
"label_types_file": "decompiler/config/jak1/ntsc_v1/label_types.jsonc",
"stack_structures_file": "decompiler/config/jak1/ntsc_v1/stack_structures.jsonc",
"hacks_file": "decompiler/config/jak1/ntsc_v1/hacks.jsonc",
"inputs_file": "decompiler/config/jak1/ntsc_v1/inputs.jsonc",
"art_info_file": "decompiler/config/jak1/ntsc_v1/art_info.jsonc",
"import_deps_file": "decompiler/config/jak1/ntsc_v1/import_deps.jsonc",
"all_types_file": "decompiler/config/jak1/all-types.gc",
"art_group_dump_file": "decompiler/config/jak1/ntsc_v1/art-group-info.min.json",
// optional: a predetermined object file name map from a file.
// this will make decompilation naming consistent even if you only run on some objects.
"obj_file_name_map_file": "goal_src/jak1/build/all_objs.json",
////////////////////////////
// LEVEL EXTRACTION
////////////////////////////
// turn this on to extract level background graphics data
"levels_extract": true,
// turn this on if you want extracted levels to be saved out as .obj files
"rip_levels": false,
// should we extract collision meshes?
// these can be displayed in game, but makes the .fr3 files slightly larger
"extract_collision": true,
////////////////////////////
// PATCHING OPTIONS
////////////////////////////
// these are options related to xdelta3 patches on specific objects
// this allows us to get a more consistent input
// set to true to write new patch files
"write_patches": false,
// set to true to apply patch files
"apply_patches": true,
// what to patch an object to and what the patch file is
"object_patches": {
"0COMMON": {
"crc32": "DD2CD7E2",
"in": "decompiler_out/jak1_pal/raw_obj/0COMMON.go",
"out": "game/assets/jak1/patches/0common.xd3"
},
"1COMMON": {
"crc32": "2B9C79F9",
"in": "decompiler_out/jak1_pal/raw_obj/1COMMON.go",
"out": "game/assets/jak1/patches/1common.xd3"
},
"2COMMON": {
"crc32": "DA35C5F3",
"in": "decompiler_out/jak1_pal/raw_obj/2COMMON.go",
"out": "game/assets/jak1/patches/2common.xd3"
},
"3COMMON": {
"crc32": "50C4A6A0",
"in": "decompiler_out/jak1_pal/raw_obj/3COMMON.go",
"out": "game/assets/jak1/patches/3common.xd3"
},
"4COMMON": {
"crc32": "C475F525",
"in": "decompiler_out/jak1_pal/raw_obj/4COMMON.go",
"out": "game/assets/jak1/patches/4common.xd3"
},
"5COMMON": {
"crc32": "92D44110",
"in": "decompiler_out/jak1_pal/raw_obj/5COMMON.go",
"out": "game/assets/jak1/patches/5common.xd3"
},
"6COMMON": {
"crc32": "85B23FEE",
"in": "decompiler_out/jak1_pal/raw_obj/6COMMON.go",
"out": "game/assets/jak1/patches/6common.xd3"
}
},
"version_overrides": {
"ntsc_v1": {},
"ntsc_v2": {
"game_name": "jak1_us2",
"type_casts_merge_file": "decompiler/config/jak1/pal/type_casts.jsonc",
"label_types_merge_file": "decompiler/config/jak1/jp/label_types.jsonc",
"hacks_merge_file": "decompiler/config/jak1/pal/hacks.jsonc",
"obj_file_name_map_file": "goal_src/jak1/build/all_objs_jak1_jp.json",
"object_patches": {}
},
"jp": {
"game_name": "jak1_jp",
"expected_elf_name": "SCPS_150.21",
"type_casts_merge_file": "decompiler/config/jak1/pal/type_casts.jsonc",
"label_types_merge_file": "decompiler/config/jak1/jp/label_types.jsonc",
"hacks_merge_file": "decompiler/config/jak1/pal/hacks.jsonc",
"obj_file_name_map_file": "goal_src/jak1/build/all_objs_jak1_jp.json",
"object_patches": {}
},
"pal": {
"game_name": "jak1_pal",
"expected_elf_name": "SCES_503.61",
"is_pal": true,
"type_casts_merge_file": "decompiler/config/jak1/pal/type_casts.jsonc",
"label_types_merge_file": "decompiler/config/jak1/pal/label_types.jsonc",
"hacks_merge_file": "decompiler/config/jak1/pal/hacks.jsonc",
"obj_file_name_map_file": "goal_src/jak1/build/all_objs_jak1_pal.json",
"object_patches": {}
}
}
}