mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
781 lines
23 KiB
Plaintext
781 lines
23 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=",
|
|
"(method 77 grenadier)",
|
|
// until loop without nop:
|
|
"target-history-print",
|
|
"display-list-control",
|
|
"anim-test-anim-list-handler",
|
|
"anim-test-sequence-list-handler",
|
|
"anim-tester-get-playing-item",
|
|
"start-pilot-recorder",
|
|
"(anon-function 10 pilot-recorder)",
|
|
"(anon-function 10 sig-recorder)",
|
|
// 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)",
|
|
"cpu-delay",
|
|
"qword-read-time",
|
|
"dma-test-func",
|
|
"move-test-func",
|
|
|
|
"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 17 collide-edge-work)",
|
|
"(method 10 collide-cache-prim)",
|
|
"(method 17 collide-cache)",
|
|
"(method 16 ocean)",
|
|
|
|
// unknown instructions
|
|
"debug-line-clip?",
|
|
// logand with #f arg
|
|
"bugfix?",
|
|
// CFG failed
|
|
"draw-inline-array-instance-shrub",
|
|
|
|
"test-to-from-spr",
|
|
"test-from-spr",
|
|
"test-to-spr",
|
|
"test-seq-read",
|
|
"test-worst-read",
|
|
"test-seq-write",
|
|
"test-worst-write",
|
|
// texture
|
|
"adgif-shader<-texture!"
|
|
],
|
|
|
|
// 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)",
|
|
// script
|
|
"command-get-time",
|
|
"command-get-param",
|
|
"command-get-quoted-param",
|
|
"command-get-entity",
|
|
"(method 9 script-context)",
|
|
"(anon-function 6 script)",
|
|
"(anon-function 49 script)",
|
|
"(anon-function 52 script)",
|
|
"(anon-function 72 script)",
|
|
"(anon-function 73 script)",
|
|
"(anon-function 74 script)",
|
|
"(anon-function 75 script)",
|
|
"(anon-function 76 script)",
|
|
"(anon-function 80 script)",
|
|
"(method 11 script-context)",
|
|
"(method 10 script-context)",
|
|
"command-get-trans",
|
|
"key-assoc",
|
|
"(anon-function 0 script)",
|
|
// default-menu
|
|
"dm-scene-load-pick-func",
|
|
"debug-menu-make-continue-sub-menu",
|
|
"debug-menu-make-from-template",
|
|
"debug-menu-context-make-default-menus",
|
|
"debug-menu-make-task-menu",
|
|
"(method 19 gui-control)",
|
|
// menu
|
|
"debug-menu-rebuild",
|
|
"debug-menu-find-from-template",
|
|
"debug-menu-render",
|
|
"debug-menu-context-select-next-or-prev-item",
|
|
"debug-menu-context-select-new-item",
|
|
"debug-menu-send-msg",
|
|
// airlock
|
|
"(method 24 com-airlock)",
|
|
"(method 19 gui-control)",
|
|
"(method 28 editable)",
|
|
"execute-select",
|
|
"(method 29 editable)",
|
|
"(method 25 editable)",
|
|
// game-info
|
|
"(method 20 game-info)",
|
|
"print-continues",
|
|
// task-control
|
|
"(anon-function 55 task-control)",
|
|
"(method 17 load-state)",
|
|
"(method 12 level)",
|
|
"bg",
|
|
"update-sound-banks",
|
|
"entity-remap-names",
|
|
"(method 8 process-tree)",
|
|
"(post play-anim scene-player)",
|
|
"(method 25 scene-player)",
|
|
"(method 25 scene-player)",
|
|
"scene-player-init",
|
|
"next-continue",
|
|
"(method 25 warp-gate)",
|
|
"(code use warp-gate)",
|
|
"cspace-inspect-tree",
|
|
"(method 11 mtn-step-plat-rocks-a)",
|
|
"(method 11 mtn-step-plat-rocks-b)",
|
|
"(method 11 mtn-step-plat-rocks-c)",
|
|
"(method 22 fort-floor-spike-b)",
|
|
"prototypes-game-visible-set!",
|
|
"(method 22 fort-floor-spike-a)",
|
|
"(method 22 fort-floor-spike-b)",
|
|
"(method 22 fort-floor-spike-c)",
|
|
"(method 11 sew-catwalk)",
|
|
"(method 11 mtn-aval-rocks)",
|
|
"(method 11 gar-curtain)"
|
|
],
|
|
|
|
// 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,
|
|
"~30Htf: ~8D~134Hpr: ~8D~252Hsh: ~8D~370Hhd: ~8D~%": 4,
|
|
"~30Hal: ~8D~131Hwa: ~8D~252Hsp: ~8D~370Hwp: ~8D~%": 4,
|
|
"ERROR: <asg> ~A in spool anim loop for ~A ~D, but not loaded.~": 3,
|
|
// TODO - these should be automatic
|
|
" tfrag ~192H~5DK ~280Htfragment~456H~5DK~%": 2,
|
|
" tie-proto ~192H~5DK ~280Hsky~456H~5DK~%": 2,
|
|
" tie-instance ~192H~5DK ~280Htie-fragment~456H~5DK~%": 2,
|
|
" shrub-proto ~192H~5DK ~280Htie-scissor~456H~5DK~%": 2,
|
|
" shrub-instance ~192H~5DK ~280Hshrubbery~456H~5DK~%": 2,
|
|
" collision ~192H~5DK ~280Htie-generic~456H~5DK~%": 2,
|
|
" pris-anim ~192H~5DK ~280Hpris-generic~456H~5DK~%": 2,
|
|
" textures ~192H~5DK ~280Htextures~456H~5DK~%": 2,
|
|
" misc ~192H~5DK ~280Hsprite~456H~5DK~%": 2,
|
|
" entity ~192H~5DK~%": 1,
|
|
" pris-geo ~192H~5DK ~280Hpris-fragment~456H~5DK~%": 2,
|
|
"~33L~S~32L ~S": 2,
|
|
"~32L~S ~33L~S~1L": 2,
|
|
"~35L~S~33L ~S": 2,
|
|
"~1L~S~35L ~S": 2,
|
|
"~35L~S ~1L~S~1L": 2,
|
|
"~33L~S~35L ~S": 2,
|
|
"~33L~C~34L~S~33L~C": 3,
|
|
"~35L~S ~33L~S~1L": 2,
|
|
"~33L~S ~35L~S~1L": 2,
|
|
"~33L~C": 1
|
|
},
|
|
|
|
"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
|
|
],
|
|
"load-game-text-info": [15, 16, 17, 19, 20, 21],
|
|
|
|
"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],
|
|
|
|
"sprite-draw-distorters": [4, 5],
|
|
"draw-drawable-tree-instance-shrub": [5, 7, 9, 11],
|
|
|
|
"add-debug-box-with-transform": [0, 3],
|
|
"add-debug-line-sphere": [0],
|
|
|
|
"(method 12 perf-stat)": [0],
|
|
"(method 11 perf-stat)": [0],
|
|
"bsp-camera-asm": [1, 2, 3, 4, 6, 7],
|
|
"(method 9 texture-page-dir)": [5, 6],
|
|
"level-remap-texture": [2, 3, 4, 5, 6],
|
|
|
|
"(method 27 nav-mesh)": [1, 2],
|
|
"(method 31 nav-mesh)": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
|
|
"(method 46 nav-mesh)": [2, 3],
|
|
"(method 32 nav-mesh)": [1, 2],
|
|
"(method 33 nav-mesh)": [1, 2],
|
|
"(method 42 nav-mesh)": [1, 2, 3, 7],
|
|
"point-poly-distance-min": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
|
|
"(method 34 nav-mesh)": [1, 2, 3, 7],
|
|
"(method 35 nav-mesh)": [2, 4],
|
|
"draw-actor-marks": [8],
|
|
"find-nearest-entity": [7, 9, 10, 11, 12, 13, 14],
|
|
"start-perf-stat-collection": [26],
|
|
"end-perf-stat-collection": [0],
|
|
"upload-vis-bits": [2, 6, 3, 0],
|
|
"set-background-regs!": [4, 3],
|
|
"draw-drawable-tree-instance-tie": [21, 23, 31, 33],
|
|
"command-get-process": [43],
|
|
"unpack-comp-rle": [1, 3, 5, 6],
|
|
"(method 16 level)": [0, 1, 5, 13, 14, 15],
|
|
"unpack-comp-huf": [2, 4, 5, 6, 7, 8, 9],
|
|
"unpack-comp-lzo": [
|
|
0,
|
|
1,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
15,
|
|
16,
|
|
17,
|
|
18,
|
|
19,
|
|
20,
|
|
21,
|
|
22,
|
|
23,
|
|
24,
|
|
25,
|
|
26,
|
|
27,
|
|
28,
|
|
29,
|
|
30,
|
|
31,
|
|
32,
|
|
33,
|
|
34,
|
|
35, // branch fwd 39
|
|
39, // branch fwd no delay
|
|
43, // goto 18
|
|
45 // goto 6
|
|
],
|
|
"(method 27 conveyor)": [5, 14, 22],
|
|
"(method 44 nav-graph)": [
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 14, 15, 16, 17, 18, 22, 24, 25, 26, 27, 30, 31,
|
|
32, 33, 34, 35, 36
|
|
],
|
|
"(method 11 sparticle-launch-control)": [
|
|
18, 24, 25, 28, 29, 32, 33, 34, 36, 41, 55, 58, 93, 95
|
|
],
|
|
|
|
"(method 22 gui-control)": [
|
|
10, // goto L63 (B39)
|
|
16, // goto L58 (B27)
|
|
26, // goto L62 (B)
|
|
27, // goto L62
|
|
28, // goto L61
|
|
35, // goto L62
|
|
36, // goto L62
|
|
38, // goto L99
|
|
42, // goto L89
|
|
50, // goto L84
|
|
108, // goto L86
|
|
110, // goto L86
|
|
116, // goto L99
|
|
117, // goto L91
|
|
120
|
|
],
|
|
|
|
"(anon-function 11 game-save)": [0, 3, 4, 5],
|
|
"update-actor-hash": [0, 2, 4],
|
|
"(code target-death)": [111, 140],
|
|
"(method 13 collide-cache)": [7, 9],
|
|
"(method 11 collide-mesh)": [2, 4],
|
|
"(method 12 collide-mesh-cache)": [0, 1, 2, 3, 4, 5],
|
|
"(method 10 collide-mesh)": [2],
|
|
"(method 42 collide-shape)": [0, 1, 2, 3, 4, 7],
|
|
"(method 18 collide-shape-prim-mesh)": [2, 3, 4, 5, 6, 7],
|
|
"(method 18 collide-shape-prim-sphere)": [2, 3, 4],
|
|
"(method 15 collide-shape-prim-sphere)": [1, 2, 3, 4, 5, 6],
|
|
"(method 16 collide-shape-prim-sphere)": [0, 1, 2, 3, 4],
|
|
"(method 36 collide-shape)": [8, 9],
|
|
"(method 45 collide-shape)": [33],
|
|
"(method 40 collide-shape)": [
|
|
0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
|
|
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32
|
|
],
|
|
"(method 12 collide-shape-prim-group)": [1, 2, 3, 4, 5, 6],
|
|
"(method 13 collide-shape-prim)": [1, 2, 3, 4, 5, 6],
|
|
"(method 12 collide-shape-prim-sphere)": [
|
|
1, 2, 3, 4, 5, 8, 10, 11, 13, 14, 15
|
|
],
|
|
"(method 12 collide-shape-prim-mesh)": [
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16
|
|
],
|
|
"(method 24 grid-hash)": [39, 35, 22, 15],
|
|
"(method 12 flow-control)": [11, 12, 13, 14, 15, 18, 20, 22, 29],
|
|
"(method 19 process-drawable)": [0, 2, 3, 7, 10, 11, 30],
|
|
"find-offending-process-focusable": [16, 19],
|
|
|
|
"target-standard-event-handler": [
|
|
5, // fwd L31/7
|
|
6, // to 152
|
|
7, // fwd L38
|
|
20, // to 152
|
|
21, // fwd L39
|
|
22, // to 152
|
|
23, // to L40
|
|
24, // to 152
|
|
25, // to L45
|
|
43, // to l152
|
|
44, // to 46
|
|
45, // to l152
|
|
|
|
46, // to l114
|
|
|
|
190, // to l152
|
|
191, // to 121
|
|
210,
|
|
211,
|
|
212,
|
|
213,
|
|
214,
|
|
|
|
224,
|
|
225,
|
|
226,
|
|
227,
|
|
232,
|
|
233,
|
|
234,
|
|
235,
|
|
236,
|
|
237,
|
|
238,
|
|
239,
|
|
240,
|
|
241,
|
|
242,
|
|
|
|
255,
|
|
256,
|
|
|
|
269,
|
|
270,
|
|
285,
|
|
286,
|
|
287,
|
|
288,
|
|
289,
|
|
290
|
|
],
|
|
"bones-mtx-calc-execute": [19, 7],
|
|
"foreground-draw": [0, 1, 126],
|
|
"dma-add-process-drawable": [0, 136],
|
|
"(anon-function 3 ruins-obs)": [14, 22],
|
|
"(anon-function 0 target-death)": [
|
|
50, // goto 52
|
|
51, // goto L65
|
|
63, // goto L47
|
|
73, // goto L25
|
|
78, // goto L46
|
|
84, // goto L42
|
|
95, // goto next
|
|
96, // goto L36
|
|
115, // goto L55
|
|
121,
|
|
131
|
|
],
|
|
"(anon-function 4 gun-states)": [94, 96, 98],
|
|
"target-board-handler": [13, 14, 18],
|
|
"find-closest-circle-ray-intersection": [0, 4, 15, 16, 17, 18],
|
|
"(method 18 nav-control)": [
|
|
11, // L283
|
|
12, // L300
|
|
19, // L295
|
|
20, // L293
|
|
31, // weird jump back
|
|
34 // weird jump no delay slot
|
|
],
|
|
|
|
"(method 19 nav-control)": [9, 10],
|
|
"(method 19 nav-mesh)": [7],
|
|
"(method 18 nav-mesh)": [9],
|
|
"(method 40 nav-state)": [1, 2],
|
|
"(method 45 nav-mesh)": [5, 6],
|
|
"(method 43 nav-mesh)": [0, 1, 2, 12, 13, 14, 15, 16, 17, 18, 19, 20],
|
|
"(anon-function 45 gungame-obs)": [0, 1, 6, 9, 14, 18, 21, 22, 30], // TODO - probably not the best
|
|
"(method 142 grenadier)": [0, 1, 3],
|
|
"(anon-function 34 predator)": [24],
|
|
"(anon-function 57 crimson-guard-level)": [22],
|
|
"(method 48 rigid-body-object)": [0, 1, 2, 3, 4, 5],
|
|
"(method 15 rigid-body)": [0, 1, 2, 5],
|
|
"(method 63 collide-shape-moving)": [
|
|
0, 1, 2, 3, 4, 5, 6, 10, 12, 13, 14, 28, 38, 39, 40, 44
|
|
],
|
|
"string-word-wrap": [1, 2, 6],
|
|
"(method 37 vehicle)": [0, 1, 10, 11, 12, 13, 15, 16],
|
|
"(method 123 vehicle)": [
|
|
0, 1, 2, 3, 4, 7, 8, 9, 10, 17, 19, 20, 23, 26, 30, 31, 32, 33, 34
|
|
],
|
|
"(method 122 vehicle)": [0, 1, 10, 11, 17, 18, 19, 20, 21, 22, 24, 25],
|
|
"(method 48 vehicle)": [
|
|
0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 16, 17, 23, 24, 29, 30, 31
|
|
],
|
|
"(method 11 vehicle-hud-requests)": [0, 6, 7, 10, 11, 12],
|
|
"(method 17 traffic-manager)": [
|
|
0, 4, 7, 17, 23, 25, 26, 27, 28, 39, 42, 43, 44
|
|
],
|
|
"(anon-function 12 vehicle-states)": [0, 1, 2, 3],
|
|
"(method 45 traffic-engine)": [5, 8],
|
|
"(method 15 city-level-info)": [0, 1, 2, 6, 7, 9, 11, 13],
|
|
"(method 59 traffic-engine)": [5, 6, 7, 8, 9, 10],
|
|
"(method 10 traffic-suppressor)": [0, 1, 2, 4],
|
|
"(method 18 traffic-tracker)": [2, 3, 5, 6, 7, 8],
|
|
"(method 181 gator)": [
|
|
2, 3, 7, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 30
|
|
],
|
|
"(method 10 simple-sprite-system)": [0],
|
|
"target-pilot-post": [0, 2, 4, 13, 16, 22, 27, 41],
|
|
"(anon-function 0 ruins-obs)": [
|
|
0, 5, 7, 12, 13, 15, 17, 23, 24, 33, 42, 45, 46, 53, 58
|
|
],
|
|
"(anon-function 1 ruins-obs)": [
|
|
1, 2, 4, 6, 7, 14, 17, 19, 22, 24, 26, 27, 29, 31, 33, 35
|
|
],
|
|
"(anon-function 2 ruins-obs)": [7, 28, 37, 50, 51, 61, 62, 71],
|
|
"(anon-function 62 sig0-course)": [0, 1, 5, 6],
|
|
"(method 67 collide-shape-moving)": [0, 1, 2, 3, 11, 12, 13],
|
|
"(anon-function 12 juicer)": [29, 30],
|
|
"(anon-function 0 atoll-obs)": [11, 19, 20],
|
|
"(method 74 spydroid)": [12], // stack spill delay slot
|
|
"(anon-function 16 kid-states)": [4, 5],
|
|
"(anon-function 23 kid-states)": [4, 5],
|
|
"(anon-function 16 kor-states)": [4, 5],
|
|
"(anon-function 23 kor-states)": [4, 5],
|
|
"(method 18 mysql-nav-graph)": [0, 1, 2, 3, 4, 7, 8, 9, 14, 16],
|
|
"(anon-function 2 rigid-body-queue)": [0, 1, 2, 3],
|
|
"(method 15 rigid-body-queue)": [5, 6, 7, 8, 9, 10, 11],
|
|
"(method 13 rigid-body-queue)": [5, 6, 7, 8, 9, 10, 11],
|
|
"(method 11 rigid-body-queue)": [0, 5, 6, 7, 8, 9, 10, 11, 17, 18, 25],
|
|
"(method 10 rigid-body-queue)": [0, 9, 10, 16, 24, 25, 26, 35, 36, 48],
|
|
"(method 18 vehicle-controller)": [0, 1, 74, 75],
|
|
"(method 15 vehicle-controller)": [0, 3, 5, 6, 7, 10],
|
|
"(anon-function 41 guard)": [9],
|
|
"(anon-function 10 metalhead-predator)": [24, 25],
|
|
"(anon-function 10 errol-chal)": [6],
|
|
"choose-next-branch-no-exit-level": [0, 6, 8, 12, 13, 16, 18, 26],
|
|
"(anon-function 39 kidesc-states)": [4, 5],
|
|
"(anon-function 56 hal2-course)": [4, 5],
|
|
"(anon-function 58 hal2-course)": [74],
|
|
"(method 142 gun-buoy)": [0, 2],
|
|
"generic-merc-execute-all": [7, 15],
|
|
"(method 9 editable-region)": [
|
|
1, 2, 3, 4, 5, 10, 11, 15, 16, 17, 18, 21, 24, 25, 30, 31, 35, 36, 37, 38,
|
|
39, 41, 42, 44, 45, 47, 48, 49, 51, 52, 53, 54
|
|
]
|
|
},
|
|
|
|
// 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": {
|
|
"(method 10 menu-loading-option)": [[118, 1]],
|
|
"(method 10 menu-insufficient-space-option)": [
|
|
[63, 1],
|
|
[103, 1]
|
|
],
|
|
"(method 10 menu-secrets-insufficient-space-option)": [[55, 1]],
|
|
"(method 10 menu-card-removed-option)": [[48, 1]],
|
|
"(method 10 menu-format-card-option)": [[49, 1]],
|
|
"(method 10 menu-create-game-option)": [[49, 1]],
|
|
"(method 10 menu-error-auto-saving-option)": [[72, 1]],
|
|
"(method 10 menu-error-loading-option)": [
|
|
[64, 1],
|
|
[99, 1]
|
|
],
|
|
"(method 10 menu-insert-card-option)": [[48, 1]],
|
|
"(method 16 fail-mission)": [
|
|
[68, 1],
|
|
[101, 1],
|
|
[130, 1]
|
|
],
|
|
"auto-save-post": [[158, 1]],
|
|
"(method 30 training-manager)": [[53, 0]],
|
|
"(trans course training-manager)": [
|
|
[54, 0],
|
|
[89, 0],
|
|
[124, 0],
|
|
[155, 0],
|
|
[195, 0],
|
|
[230, 0],
|
|
[261, 0],
|
|
[307, 0],
|
|
[338, 0],
|
|
[374, 0],
|
|
[409, 0],
|
|
[444, 0],
|
|
[479, 0],
|
|
[510, 0]
|
|
],
|
|
"(method 17 hud-goal)": [[71, 0]],
|
|
"(method 15 hud-miss)": [[44, 0]],
|
|
"(method 28 hoverboard-training-manager)": [[53, 0]],
|
|
"(method 29 hoverboard-training-manager)": [
|
|
[48, 0],
|
|
[83, 0],
|
|
[118, 0],
|
|
[153, 0],
|
|
[184, 0],
|
|
[224, 0],
|
|
[259, 0],
|
|
[294, 0],
|
|
[325, 0],
|
|
[365, 0],
|
|
[400, 0],
|
|
[431, 0],
|
|
[477, 0],
|
|
[508, 0]
|
|
],
|
|
"(trans menu burning-bush)": [
|
|
[294, 0],
|
|
[378, 0],
|
|
[406, 0],
|
|
[434, 0],
|
|
[462, 0],
|
|
[490, 0],
|
|
[518, 0],
|
|
[350, 0]
|
|
],
|
|
"(trans idle burning-bush)": [[171, 0]],
|
|
"(anon-function 11 oracle-training)": [[79, 0]],
|
|
"(anon-function 4 oracle-training)": [[79, 0]],
|
|
"(anon-function 0 oracle-training)": [[79, 0]],
|
|
"(anon-function 7 oracle-training)": [[79, 0]],
|
|
"(method 27 sig-recorder)": [[93, 0]],
|
|
"(method 15 hud-race-final-stats)": [[158, 1]],
|
|
"(method 24 race-manager)": [[67, 1]],
|
|
"(method 25 race-manager)": [
|
|
[67, 1],
|
|
[96, 1]
|
|
]
|
|
},
|
|
|
|
"mips2c_functions_by_name": [
|
|
"collide-do-primitives",
|
|
"moving-sphere-triangle-intersect",
|
|
"calc-animation-from-spr",
|
|
"draw-string-asm",
|
|
"draw-string",
|
|
"get-string-length",
|
|
"adgif-shader<-texture-with-update!",
|
|
"init-boundary-regs",
|
|
"draw-boundary-polygon",
|
|
"render-boundary-quad",
|
|
"render-boundary-tri",
|
|
"clip-polygon-against-negative-hyperplane",
|
|
"clip-polygon-against-positive-hyperplane",
|
|
"sp-init-fields!",
|
|
"particle-adgif",
|
|
"sp-launch-particles-var",
|
|
"sparticle-motion-blur",
|
|
"sp-process-block-2d",
|
|
"sp-process-block-3d",
|
|
"set-tex-offset",
|
|
"draw-large-polygon",
|
|
"render-sky-quad",
|
|
"render-sky-tri",
|
|
"(method 16 sky-work)",
|
|
"(method 17 sky-work)",
|
|
"(method 32 sky-work)",
|
|
"(method 33 sky-work)",
|
|
"(method 28 sky-work)",
|
|
"(method 29 sky-work)",
|
|
"(method 30 sky-work)",
|
|
"(method 11 collide-hash)",
|
|
"(method 12 collide-hash)",
|
|
"fill-bg-using-box-new",
|
|
"fill-bg-using-line-sphere-new",
|
|
"(method 12 collide-mesh)",
|
|
"(method 11 collide-mesh)",
|
|
"(method 14 collide-mesh)",
|
|
"(method 15 collide-mesh)",
|
|
"(method 10 collide-edge-hold-list)",
|
|
"(method 19 collide-edge-work)",
|
|
"(method 9 edge-grab-info)",
|
|
"(method 16 collide-edge-work)",
|
|
"(method 17 collide-edge-work)",
|
|
"(method 18 collide-edge-work)",
|
|
"draw-large-polygon-ocean",
|
|
"render-ocean-quad",
|
|
"init-ocean-far-regs",
|
|
"(method 14 ocean)",
|
|
"(method 15 ocean)",
|
|
"(method 16 ocean)",
|
|
"(method 18 grid-hash)",
|
|
"(method 19 grid-hash)",
|
|
"(method 20 grid-hash)",
|
|
"(method 22 grid-hash)",
|
|
"(method 28 sphere-hash)",
|
|
"(method 33 sphere-hash)",
|
|
"(method 29 sphere-hash)",
|
|
"(method 30 sphere-hash)",
|
|
"(method 31 sphere-hash)",
|
|
"(method 32 sphere-hash)",
|
|
"(method 33 spatial-hash)",
|
|
"(method 39 spatial-hash)",
|
|
"(method 36 spatial-hash)",
|
|
"(method 37 spatial-hash)",
|
|
"(method 35 spatial-hash)",
|
|
"(method 10 collide-shape-prim-mesh)",
|
|
"(method 10 collide-shape-prim-sphere)",
|
|
"(method 10 collide-shape-prim-group)",
|
|
"(method 11 collide-shape-prim-mesh)",
|
|
"(method 11 collide-shape-prim-sphere)",
|
|
"(method 11 collide-shape-prim-group)",
|
|
"(method 9 collide-cache-prim)",
|
|
"(method 10 collide-cache-prim)",
|
|
"(method 17 collide-cache)",
|
|
"(method 9 collide-puss-work)",
|
|
"(method 10 collide-puss-work)",
|
|
"bones-mtx-calc",
|
|
"foreground-check-longest-edge-asm",
|
|
"foreground-merc",
|
|
"add-light-sphere-to-light-group",
|
|
"light-hash-add-items",
|
|
"light-hash-count-items",
|
|
"light-hash-get-bucket-index",
|
|
// nav-mesh / nav-control related
|
|
// TODO - it would be nice to eventually figure out the asm blocks for the majority of these
|
|
"nav-state-patch-pointers",
|
|
"(method 20 nav-engine)",
|
|
// "find-closest-circle-ray-intersection",
|
|
// "(method 18 nav-control)",
|
|
"nav-dma-send-to-spr-no-flush",
|
|
"nav-dma-send-from-spr-no-flush",
|
|
"(method 17 nav-engine)",
|
|
"(method 18 nav-engine)",
|
|
"(method 21 nav-engine)",
|
|
"(method 39 nav-state)",
|
|
"setup-blerc-chains-for-one-fragment",
|
|
"blerc-execute",
|
|
"ripple-create-wave-table",
|
|
"ripple-execute-init",
|
|
"ripple-apply-wave-table",
|
|
"ripple-matrix-scale",
|
|
"(method 53 squid)",
|
|
"init-vortex-regs",
|
|
"render-vortex-quad",
|
|
"draw-large-polygon-vortex",
|
|
"foreground-generic-merc",
|
|
"generic-merc-init-asm",
|
|
"mercneric-convert",
|
|
"high-speed-reject",
|
|
"generic-translucent",
|
|
"generic-merc-query",
|
|
"generic-merc-death",
|
|
"generic-merc-execute-asm",
|
|
"generic-merc-do-chain",
|
|
"generic-light-proc",
|
|
"generic-envmap-proc",
|
|
"generic-prepare-dma-double",
|
|
"generic-prepare-dma-single",
|
|
"generic-warp-source-proc",
|
|
"generic-warp-dest-proc",
|
|
"generic-warp-dest",
|
|
"generic-warp-envmap-dest",
|
|
"generic-no-light-proc",
|
|
"foreground-draw-hud",
|
|
// shadow
|
|
"shadow-execute",
|
|
"shadow-add-double-edges",
|
|
"shadow-add-double-tris",
|
|
"shadow-add-single-tris",
|
|
"shadow-add-single-edges",
|
|
"shadow-add-facing-single-tris",
|
|
"shadow-add-verts",
|
|
"shadow-find-double-edges",
|
|
"shadow-find-facing-double-tris",
|
|
"shadow-find-single-edges",
|
|
"shadow-find-facing-single-tris",
|
|
"shadow-init-vars",
|
|
"shadow-scissor-top",
|
|
"shadow-scissor-edges",
|
|
"shadow-calc-dual-verts",
|
|
"shadow-xform-verts"
|
|
],
|
|
|
|
"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": [
|
|
["vinroom", 0, 0],
|
|
["ctyfence", 0, 0]
|
|
],
|
|
|
|
// 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": []
|
|
}
|