{
  "game_version": 3,
  "text_version": 30,

  "game_name": "jak3",
  "expected_elf_name": "SCUS_973.30",

  // 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": true,

  "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,
  // write goal imports for tpages and textures
  "write_tpage_imports": false,
  // unpack game text to assets folder
  "process_game_text": true,
  // unpack game count to assets folder
  "process_game_count": false,
  // write goal imports for art groups
  "process_art_groups": false,
  // write out a json file containing the art info mapping, run this with all objects allowed
  "dump_art_group_info": false,
  // write out a json file containing the joint node mapping, run this with all objects allowed
  "dump_joint_geo_info": false,
  // write out a json file containing tpage and texture mappings, run with all objects allowed
  "dump_tex_info": false,

  // set to false to skip adding .STR files to the decompiler database
  "read_spools": true,
  // write out spool subtitle text, implies read_spools
  "process_subtitle_text": false,
  // write out spool subtitle images, implies read_spools
  "process_subtitle_images": 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,

  // generate the all-types file
  "generate_all_types": false,

  // debug option for instruction decoder
  "write_hex_near_instructions": false,

  // to write out "scripts", which are currently just all the linked lists found. mostly a jak 2/3 thing
  "write_scripts": true,

  // 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,

  "old_all_types_file": "decompiler/config/jak2/all-types.gc",

  ////////////////////////////
  // CONFIG FILES
  ////////////////////////////

  "type_casts_file": "decompiler/config/jak3/ntsc_v1/type_casts.jsonc",
  "anonymous_function_types_file": "decompiler/config/jak3/ntsc_v1/anonymous_function_types.jsonc",
  "var_names_file": "decompiler/config/jak3/ntsc_v1/var_names.jsonc",
  "label_types_file": "decompiler/config/jak3/ntsc_v1/label_types.jsonc",
  "stack_structures_file": "decompiler/config/jak3/ntsc_v1/stack_structures.jsonc",
  "hacks_file": "decompiler/config/jak3/ntsc_v1/hacks.jsonc",
  "inputs_file": "decompiler/config/jak3/ntsc_v1/inputs.jsonc",
  "art_info_file": "decompiler/config/jak3/ntsc_v1/art_info.jsonc",
  "import_deps_file": "decompiler/config/jak3/ntsc_v1/import_deps.jsonc",
  "all_types_file": "decompiler/config/jak3/all-types.gc",
  "art_group_dump_file": "decompiler/config/jak3/ntsc_v1/art-group-info.min.json",
  "joint_node_dump_file": "decompiler/config/jak3/ntsc_v1/joint-node-info.min.json",
  "tex_dump_file": "decompiler/config/jak3/ntsc_v1/tex-info.min.json",
  "process_stack_size_file": "decompiler/config/jak3/ntsc_v1/process_stack_size_overrides.jsonc",

  // 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/jak3/build/all_objs.json",

  ////////////////////////////
  // LEVEL EXTRACTION
  ////////////////////////////

  // turn this on to extract level background graphics data as .fr3 files in out/<game>/fr3
  "levels_extract": false,
  // turn this on if you want extracted levels to be saved out as .glb files in glb_out/<game>
  "rip_levels": false,
  // should we also extract collision meshes to the .fr3 files?
  // these can be displayed in-game with the OpenGOAL collision renderer
  "extract_collision": true,
  // turn this on if you want extracted level collision to be saved as .obj files in debug_out/<game>
  "rip_collision": false,
  // save game textures as .png files to decompiler_out/<game>/textures
  "save_texture_pngs": false,

  // whether or not to dump out streamed audio files to decompiler_out/<game>/audio
  "rip_streamed_audio": false,

  ////////////////////////////
  // 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": {
  },
  "version_overrides": {
    "ntsc_v1": {},
    "pal": {
      "game_name": "jak3_pal",
      "expected_elf_name": "SCES_524.60",
      "is_pal": true,
      "object_patches": {}
    }
  }
}
