jak-project/decompiler/config/jak3/jak3_config.jsonc

157 lines
5.6 KiB
Plaintext
Raw Permalink Normal View History

2020-08-22 23:30:17 -04:00
{
"game_version": 3,
"text_version": 30,
2020-08-22 23:30:17 -04:00
"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,
decomp3: more engine stuff, detect non-virtual state inheritance (#3377) - `speech` - `ambient` - `water-h` - `vol-h` - `generic-obs` - `carry-h` - `pilot-h` - `board-h` - `gun-h` - `flut-h` - `indax-h` - `lightjak-h` - `darkjak-h` - `target-util` - `history` - `collide-reaction-target` - `logic-target` - `sidekick` - `projectile` - `voicebox` - `ragdoll-edit` - most of `ragdoll` (not added to gsrc yet) - `curves` - `find-nearest` - `lightjak-wings` - `target-handler` - `target-anim` - `target` - `target2` - `target-swim` - `target-lightjak` - `target-invisible` - `target-death` - `target-gun` - `gun-util` - `board-util` - `target-board` - `board-states` - `mech-h` - `vol` - `vent` - `viewer` - `gem-pool` - `collectables` - `crates` - `secrets-menu` Additionally: - Detection of non-virtual state inheritance - Added a config file that allows overriding the process stack size set by `stack-size-set!` calls - Fix for integer multiplication with `r0` - Fixed detection for the following macros: - `static-attack-info` - `defpart` and `defpartgroup` (probably still needs adjustments, uses Jak 2 implementation at the moment) - `sound-play` (Jak 3 seems to always call `sound-play-by-name` with a `sound-group` of 0, so the macro has been temporarily defaulted to use that) One somewhat significant change made here that should be noted is that the return type of `process::init-from-entity!` was changed to `object`. I've been thinking about this for a while, since it looks a bit nicer without the `(none)` at the end and I have recently encountered init methods that early return `0`.
2024-03-03 15:15:27 -05:00
// 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
///////////////////////////
2020-08-22 23:30:17 -04:00
// 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",
decomp3: more engine stuff, detect non-virtual state inheritance (#3377) - `speech` - `ambient` - `water-h` - `vol-h` - `generic-obs` - `carry-h` - `pilot-h` - `board-h` - `gun-h` - `flut-h` - `indax-h` - `lightjak-h` - `darkjak-h` - `target-util` - `history` - `collide-reaction-target` - `logic-target` - `sidekick` - `projectile` - `voicebox` - `ragdoll-edit` - most of `ragdoll` (not added to gsrc yet) - `curves` - `find-nearest` - `lightjak-wings` - `target-handler` - `target-anim` - `target` - `target2` - `target-swim` - `target-lightjak` - `target-invisible` - `target-death` - `target-gun` - `gun-util` - `board-util` - `target-board` - `board-states` - `mech-h` - `vol` - `vent` - `viewer` - `gem-pool` - `collectables` - `crates` - `secrets-menu` Additionally: - Detection of non-virtual state inheritance - Added a config file that allows overriding the process stack size set by `stack-size-set!` calls - Fix for integer multiplication with `r0` - Fixed detection for the following macros: - `static-attack-info` - `defpart` and `defpartgroup` (probably still needs adjustments, uses Jak 2 implementation at the moment) - `sound-play` (Jak 3 seems to always call `sound-play-by-name` with a `sound-group` of 0, so the macro has been temporarily defaulted to use that) One somewhat significant change made here that should be noted is that the return type of `process::init-from-entity!` was changed to `object`. I've been thinking about this for a while, since it looks a bit nicer without the `(none)` at the end and I have recently encountered init methods that early return `0`.
2024-03-03 15:15:27 -05:00
"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": {}
}
}
}