mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
01abde35d8
* decomp: format jak1 cast files * decomp: finish `mood-tables` and `mood-tables2` * jak2: stop disasm'ing * jak2: format jak2 cast files, start working on the rest of the `mood` files * scripts: fix running pcsx2 watcher * d/jak2: finish `vol-h` * d/jak2: address feedback
245 lines
7.4 KiB
Plaintext
245 lines
7.4 KiB
Plaintext
{
|
|
////////////////////////////
|
|
// HACKS and ASM FUNCTIONS
|
|
////////////////////////////
|
|
|
|
"types_with_bad_inspect_methods": [
|
|
"game-task-event",
|
|
"game-task-control",
|
|
"predator-edge",
|
|
"manipy"
|
|
],
|
|
|
|
"no_type_analysis_functions_by_name": [],
|
|
|
|
// this limits the number of cases in a cond. The first argument is the name of the function.
|
|
// the second argument is the name of the first condition in the cond. Use print_cfg to find it out.
|
|
// The third argument is the number of cases. If you set it too small it may fail to build the CFG.
|
|
"cond_with_else_max_lengths": [
|
|
["(method 20 res-lump)", "b0", 2],
|
|
["(method 11 res-lump)", "b0", 1],
|
|
["(method 12 res-lump)", "b0", 1]
|
|
],
|
|
|
|
// if a cond with an else case is being used a value in a place where it looks wrong
|
|
// you can add the function name to this list and it will more aggressively reject this rewrite.
|
|
"aggressively_reject_cond_to_value_rewrite": [
|
|
"(method 10 res-lump)",
|
|
"(method 11 res-lump)",
|
|
"(method 12 res-lump)"
|
|
],
|
|
|
|
// this provides a hint to the decompiler that these functions will have a lot of inline assembly.
|
|
// currently it just leaves pcpyld as an asm op.
|
|
"hint_inline_assembly_functions": [],
|
|
|
|
"asm_functions_by_name": [
|
|
// checking boxed type is different now - these make the cfg stuff sad
|
|
"name=",
|
|
"joint-control-remap!",
|
|
"(method 21 game-info)",
|
|
"(anon-function 2 cam-combiner)",
|
|
"cspace-inspect-tree",
|
|
"command-get-process",
|
|
"command-get-trans",
|
|
"(method 10 script-context)",
|
|
"(method 11 script-context)",
|
|
"(method 9 script-context)",
|
|
"(anon-function 64 script)",
|
|
"(anon-function 61 script)",
|
|
"(anon-function 60 script)",
|
|
"(anon-function 54 script)",
|
|
"(anon-function 52 script)",
|
|
"(anon-function 49 script)",
|
|
"(anon-function 33 script)",
|
|
"debug-menu-func-decode",
|
|
"scene-player-init",
|
|
"(method 77 spyder)",
|
|
"(method 77 flamer)",
|
|
"(method 77 grenadier)",
|
|
"(method 224 bot)",
|
|
"(method 77 rapid-gunner)",
|
|
// until loop without nop:
|
|
"(method 9 history)",
|
|
"history-print",
|
|
"history-draw",
|
|
"(method 9 sparticle-launcher)",
|
|
"(method 18 tracking-spline)",
|
|
"cam-string-find-position-rel!",
|
|
"cam-layout-entity-volume-info-create",
|
|
"process-drawable-shock-skel-effect",
|
|
"target-history-print",
|
|
"display-list-control",
|
|
"anim-test-anim-list-handler",
|
|
"anim-test-sequence-list-handler",
|
|
"anim-tester-get-playing-item",
|
|
"(method 9 mysql-nav-graph)",
|
|
"(method 58 nav-graph-editor)",
|
|
"(method 120 enemy)",
|
|
"start-pilot-recorder",
|
|
"(anon-function 10 pilot-recorder)",
|
|
"(method 0 hover-nav-control)",
|
|
"(method 24 nav-network)",
|
|
"(method 11 predator-manager)",
|
|
"(method 9 bot-speech-list)",
|
|
"(method 9 bot-speech-list-shuffle)",
|
|
"(anon-function 10 sig-recorder)",
|
|
"(method 14 trail-graph)",
|
|
"(method 12 trail-graph)",
|
|
"(method 11 trail-graph)",
|
|
// actual asm
|
|
"quad-copy!",
|
|
"return-from-thread",
|
|
"return-from-thread-dead",
|
|
"reset-and-call",
|
|
"(method 10 cpu-thread)",
|
|
"(method 11 cpu-thread)",
|
|
"(method 0 catch-frame)",
|
|
"throw-dispatch",
|
|
"throw",
|
|
"run-function-in-process",
|
|
"set-to-run-bootstrap",
|
|
"return-from-exception",
|
|
"exp",
|
|
"(method 17 bounding-box)",
|
|
"(method 9 bounding-box)",
|
|
"(method 9 matrix)",
|
|
"quaternion->matrix-2",
|
|
"sin-rad",
|
|
"cos-rad",
|
|
"atan-series-rad",
|
|
"sign-float",
|
|
"dma-count-until-done",
|
|
"(method 11 collide-mesh-cache)",
|
|
|
|
"symlink2",
|
|
"blerc-a-fragment",
|
|
"blerc-execute",
|
|
"foreground-check-longest-edge-asm",
|
|
"generic-light-proc",
|
|
"shadow-add-single-edges",
|
|
"shadow-add-facing-single-tris",
|
|
"shadow-add-double-tris",
|
|
"shadow-add-double-edges",
|
|
"(method 12 collide-mesh)",
|
|
"(method 17 collide-edge-work)",
|
|
"(method 42 collide-shape)",
|
|
"(method 12 collide-shape-prim-sphere)",
|
|
"(method 12 collide-shape-prim-mesh)",
|
|
"(method 18 collide-shape-prim-mesh)",
|
|
"(method 10 collide-cache-prim)",
|
|
"(method 17 collide-cache)",
|
|
"(method 16 ocean)",
|
|
|
|
// unknown bug
|
|
"joint-mod-polar-look-at-guts",
|
|
"(method 13 external-art-control)",
|
|
"update-mood-copy-ctywide",
|
|
"update-mood-copy-stadium",
|
|
"update-mood-drillb",
|
|
"reset-target-tracking",
|
|
"(anon-function 1 target)",
|
|
"find-nearest-entity",
|
|
"target-land-effect",
|
|
"(method 12 effect-control)",
|
|
"(method 11 effect-control)",
|
|
"(method 10 effect-control)",
|
|
"(anon-function 2 scene)",
|
|
"progress-trans",
|
|
"(method 10 bigmap)",
|
|
"(method 9 editable-region)",
|
|
"(method 57 enemy)",
|
|
"(anon-function 10 meet-brutter)",
|
|
"(method 154 vehicle-racer)",
|
|
"(method 188 predator)",
|
|
"(anon-function 13 sig0-course)",
|
|
"(method 228 hal-sewer)",
|
|
"(method 154 vehicle-city-racer)",
|
|
"(method 53 squid)",
|
|
"(anon-function 11 fort-floor-spike)",
|
|
"(method 29 gun-dummy)",
|
|
"vehicle-explode-post",
|
|
"(method 158 vehicle-guard)",
|
|
"(method 207 metalhead-predator)",
|
|
"(anon-function 4 gun-states)",
|
|
"(anon-function 28 grenadier)",
|
|
"(anon-function 24 grenadier)"
|
|
],
|
|
|
|
// these functions use pairs and the decompiler
|
|
// will be less picky about types related to pairs.
|
|
"pair_functions_by_name": [
|
|
"ref",
|
|
"(method 4 pair)",
|
|
"last",
|
|
"member",
|
|
"nmember",
|
|
"assoc",
|
|
"assoce",
|
|
"nassoc",
|
|
"nassoce",
|
|
"append!",
|
|
"delete!",
|
|
"delete-car!",
|
|
"insert-cons!",
|
|
"sort",
|
|
"unload-package",
|
|
"display-loop-main",
|
|
"lookup-level-info",
|
|
"(method 24 level-group)",
|
|
"(method 19 level-group)"
|
|
],
|
|
|
|
// If format is used with the wrong number of arguments,
|
|
// it will often mess up the decompilation, as the decompiler assumes
|
|
// that they used the correct number. This will override the decompiler's
|
|
// automatic detection.
|
|
"bad_format_strings": {
|
|
"~170h~5d~220h~5d~280h~5,,2f": 3,
|
|
"~338h~5d~388h~5d~448h~5,,2f": 3,
|
|
"~1k~%": 0,
|
|
"~30Htf: ~8D~134Hpr: ~8D~252Hsh: ~8D~370Hhd: ~8D~%": 4,
|
|
"~30Hal: ~8D~131Hwa: ~8D~252Hsp: ~8D~370Hwp: ~8D~%": 4,
|
|
"~0Kload ~16S ~5S ~5DK ~5,,2fs ~5,,2fs~1K ~5,,0f k/s~%": 6
|
|
},
|
|
|
|
"blocks_ending_in_asm_branch": {
|
|
"closest-pt-in-triangle": [17],
|
|
// this one is all asm branches
|
|
"circle-circle-xz-intersect": [
|
|
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
|
|
],
|
|
|
|
"find-knot-span": [0, 1, 2, 3, 5, 6, 7, 8, 9],
|
|
|
|
"curve-evaluate!": [0, 2, 5, 6, 7, 8, 9],
|
|
|
|
"display-loop-main": [127, 130, 133, 136],
|
|
|
|
"real-main-draw-hook": [114, 115, 116, 118],
|
|
|
|
"(method 12 perf-stat)": [0],
|
|
"(method 11 perf-stat)": [0]
|
|
},
|
|
|
|
// Sometimes the game might use format strings that are fetched dynamically,
|
|
// for example using the game text lookup method
|
|
// Add information about those format instructions here.
|
|
// e.g. "function-name":[[op, argc], [op, argc], ...]
|
|
// where "op" is the op number for the call to format.
|
|
"dynamic_format_arg_counts": {},
|
|
|
|
"mips2c_functions_by_name": [],
|
|
|
|
"mips2c_jump_table_functions": {},
|
|
|
|
// there are some missing textures. I don't know what the game actually does here.
|
|
// the format for entries is [level, tpage, index]
|
|
"missing_textures": [],
|
|
|
|
// some object files have garbage pad data at the end which makes the decompiler
|
|
// assume they must be different files, such as the art group for orb-cache-top.
|
|
// this just suppresses a message.
|
|
"expected_merged_objs": []
|
|
}
|