2020-08-22 23:30:17 -04:00
|
|
|
|
|
|
|
|
|
|
|
{
|
2020-10-15 20:59:30 -04:00
|
|
|
"game_version":1,
|
|
|
|
// the order here matters. KERNEL and GAME should go first
|
2020-10-25 12:07:10 -04:00
|
|
|
"dgo_names":["CGO/KERNEL.CGO","CGO/GAME.CGO",
|
|
|
|
"CGO/ENGINE.CGO"
|
2020-10-15 20:59:30 -04:00
|
|
|
, "CGO/ART.CGO", "DGO/BEA.DGO", "DGO/CIT.DGO", "CGO/COMMON.CGO", "DGO/DAR.DGO", "DGO/DEM.DGO",
|
|
|
|
"DGO/FIN.DGO", "DGO/INT.DGO", "DGO/JUB.DGO", "DGO/JUN.DGO", "CGO/JUNGLE.CGO", "CGO/L1.CGO", "DGO/FIC.DGO",
|
|
|
|
"DGO/LAV.DGO", "DGO/MAI.DGO", "CGO/MAINCAVE.CGO", "DGO/MIS.DGO", "DGO/OGR.DGO", "CGO/RACERP.CGO", "DGO/ROB.DGO", "DGO/ROL.DGO",
|
|
|
|
"DGO/SNO.DGO", "DGO/SUB.DGO", "DGO/SUN.DGO", "CGO/SUNKEN.CGO", "DGO/SWA.DGO", "DGO/TIT.DGO", "DGO/TRA.DGO", "DGO/VI1.DGO",
|
|
|
|
"DGO/VI2.DGO", "DGO/VI3.DGO", "CGO/VILLAGEP.CGO", "CGO/WATER-AN.CGO"
|
2020-10-25 12:07:10 -04:00
|
|
|
],
|
2020-10-15 20:59:30 -04:00
|
|
|
|
|
|
|
"write_disassembly":true,
|
|
|
|
"write_hex_near_instructions":false,
|
|
|
|
// if false, skips disassembling object files without functions, as these are usually large and not interesting yet.
|
|
|
|
"disassemble_objects_without_functions":false,
|
|
|
|
|
|
|
|
// to write out data of each object file
|
|
|
|
"write_hexdump":false,
|
|
|
|
// to write out hexdump on the v3 only, to avoid the huge level data files
|
|
|
|
"write_hexdump_on_v3_only":true,
|
|
|
|
|
2020-10-24 14:27:50 -04:00
|
|
|
// to write out "scripts", which are currently just all the linked lists found. mostly a jak 2/3 thing
|
|
|
|
"write_scripts":false,
|
|
|
|
|
|
|
|
// optional: a predetermined object file name map from a file. Useful if you want to run only on some DGOs but have consistent names
|
|
|
|
"obj_file_name_map_file":"goal_src/build/all_objs.txt",
|
2020-10-15 20:59:30 -04:00
|
|
|
|
|
|
|
// Experimental Stuff
|
|
|
|
"find_basic_blocks":true,
|
|
|
|
|
2020-10-24 22:51:40 -04:00
|
|
|
"types_with_bad_inspect_methods":[
|
|
|
|
"engine",
|
|
|
|
"bsp-header",
|
2020-10-25 12:07:10 -04:00
|
|
|
"joint-anim-matrix",
|
|
|
|
"part-tracker"
|
2020-10-24 22:51:40 -04:00
|
|
|
],
|
|
|
|
|
2020-10-24 14:27:50 -04:00
|
|
|
"asm_functions_by_name":[
|
|
|
|
// gcommon
|
|
|
|
"quad-copy!",
|
|
|
|
|
|
|
|
// gkernel
|
|
|
|
"(method 11 cpu-thread)",
|
|
|
|
|
|
|
|
// pskernel
|
|
|
|
"return-from-exception", // F: eret
|
|
|
|
"kernel-read-function", // F: delay slot tricks
|
|
|
|
"kernel-write-function", // F: delay slot tricks
|
|
|
|
"kernel-copy-function",
|
|
|
|
|
|
|
|
// math
|
|
|
|
"rand-uint31-gen",
|
|
|
|
|
|
|
|
// bounding box
|
|
|
|
"(method 9 bounding-box)", // F: asm branching
|
|
|
|
"(method 14 bounding-box)",
|
|
|
|
|
|
|
|
// matrix
|
|
|
|
"(method 9 matrix)", // F: asm branching
|
|
|
|
"matrix-axis-sin-cos!", // F: asm branching
|
|
|
|
"matrix-axis-sin-cos-vu!",
|
|
|
|
|
|
|
|
// geometry
|
|
|
|
"curve-evaluate!", // BUG: cfg fails, suspected weird gotos
|
|
|
|
"circle-circle-xz-intersect", // F: asm branching
|
|
|
|
"closest-pt-in-triangle", // F: asm branching
|
|
|
|
"find-knot-span", // ??
|
|
|
|
"vector-segment-distance-point!",
|
|
|
|
|
|
|
|
// trigonometry
|
|
|
|
"exp", // BUG: cfg is wrong.
|
|
|
|
"atan0", // P: manual use of stack
|
|
|
|
"sincos!", // P: manual use of stack
|
|
|
|
"sincos-rad!",
|
|
|
|
|
|
|
|
// dma-h
|
|
|
|
"dma-count-until-done", // F: asm branching
|
|
|
|
"dma-sync-with-count", // F: asm branching
|
|
|
|
"dma-send-no-scratch", // F: asm branching
|
|
|
|
"dma-sync-fast",
|
|
|
|
|
|
|
|
// dma
|
|
|
|
"symlink3", // F: asm branching
|
|
|
|
"symlink2", // F: asm branching
|
|
|
|
"dma-sync-hang",
|
|
|
|
|
|
|
|
// dma-disasm (BUG)
|
|
|
|
"disasm-dma-list",
|
|
|
|
|
|
|
|
// display
|
|
|
|
"vblank-handler", // F: weird asm for interrupt handler
|
|
|
|
"vif1-handler", // F: weird asm for interrupt handler
|
|
|
|
"vif1-handler-debug",
|
|
|
|
|
|
|
|
// texture
|
|
|
|
"adgif-shader<-texture-with-update!", // F: asm branching
|
|
|
|
"(method 9 texture-page-dir)",
|
|
|
|
|
|
|
|
// collide-mesh-h
|
|
|
|
"(method 11 collide-mesh-cache)",
|
|
|
|
|
|
|
|
// actor-link-h (BUG)
|
|
|
|
"(method 21 actor-link-info)", // BUG: sc cfg / cfg-ir bug
|
|
|
|
"(method 20 actor-link-info)",
|
|
|
|
|
|
|
|
// collide-func
|
|
|
|
"moving-sphere-triangle-intersect", // P: weird branching
|
|
|
|
"collide-do-primitives", // P: asm branching
|
|
|
|
"ray-triangle-intersect", // F: asm branching
|
|
|
|
"ray-cylinder-intersect", // F: asm branching
|
|
|
|
"raw-ray-sphere-intersect",
|
|
|
|
|
|
|
|
// joint
|
|
|
|
"calc-animation-from-spr", // F: asm branching
|
|
|
|
"decompress-frame-data-pair-to-accumulator", // P: asm calling
|
|
|
|
"decompress-frame-data-to-accumulator", // P: asm calling
|
|
|
|
"decompress-fixed-data-to-accumulator", // P: asm calling
|
|
|
|
"normalize-frame-quaternions", // F: asm branching, return
|
|
|
|
"clear-frame-accumulator", // F: asm branching
|
|
|
|
"cspace<-parented-transformq-joint!",
|
|
|
|
|
|
|
|
// bsp
|
|
|
|
"level-remap-texture", // BUG: probably missing branch case?
|
|
|
|
"bsp-camera-asm", // F: asm branching
|
|
|
|
"sprite-draw-distorters",
|
|
|
|
|
|
|
|
// merc-blend-shape
|
|
|
|
"setup-blerc-chains-for-one-fragment", // F: asm branching
|
|
|
|
"blerc-execute", // F: asm branching
|
|
|
|
"merc-dma-chain-to-spr", // F: asm branching
|
|
|
|
"blerc-a-fragment",
|
|
|
|
|
|
|
|
// ripple
|
|
|
|
"ripple-matrix-scale",
|
|
|
|
"ripple-apply-wave-table",
|
|
|
|
"ripple-create-wave-table",
|
|
|
|
"ripple-execute-init",
|
|
|
|
|
|
|
|
// bones
|
|
|
|
"draw-bones-hud",
|
|
|
|
"draw-bones",
|
|
|
|
"draw-bones-check-longest-edge-asm",
|
|
|
|
"draw-bones-merc",
|
|
|
|
"bones-mtx-calc-execute",
|
|
|
|
"bones-mtx-calc",
|
|
|
|
"texscroll-execute",
|
|
|
|
|
|
|
|
// generic-effect
|
|
|
|
"generic-debug-light-proc",
|
|
|
|
"generic-none-dma-wait",
|
|
|
|
"generic-copy-vtx-dclr-dtex",
|
|
|
|
"generic-light",
|
|
|
|
"generic-envmap-only-proc",
|
|
|
|
"generic-no-light",
|
|
|
|
"generic-no-light+envmap",
|
|
|
|
"generic-no-light-dproc",
|
|
|
|
"generic-no-light-dproc-only",
|
|
|
|
"generic-no-light-proc",
|
|
|
|
"generic-interp-dproc",
|
|
|
|
"generic-envmap-dproc",
|
|
|
|
"generic-prepare-dma-single",
|
|
|
|
"generic-prepare-dma-double",
|
|
|
|
"generic-envmap-proc",
|
|
|
|
"generic-light-proc",
|
|
|
|
"generic-dma-from-spr",
|
|
|
|
"upload-vu0-program",
|
|
|
|
|
|
|
|
// generic-merc
|
|
|
|
"generic-merc-execute-all",
|
|
|
|
"generic-merc-execute-asm",
|
|
|
|
"high-speed-reject",
|
|
|
|
"mercneric-convert",
|
|
|
|
"mercneric-bittable-asm",
|
|
|
|
"mercneric-shader-asm",
|
|
|
|
"mercneric-matrix-asm",
|
|
|
|
"generic-merc-init-asm",
|
|
|
|
|
|
|
|
// generic-tie
|
|
|
|
"generic-tie-convert",
|
|
|
|
"generic-tie-convert-proc",
|
|
|
|
"generic-tie-upload-next",
|
|
|
|
"generic-tie-decompress",
|
|
|
|
"generic-tie-dma-to-spad-sync",
|
|
|
|
|
|
|
|
// shadow-cpu
|
|
|
|
"shadow-execute",
|
|
|
|
"shadow-add-double-edges",
|
|
|
|
"shadow-add-double-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-scissor-top",
|
|
|
|
"shadow-scissor-edges",
|
|
|
|
"shadow-calc-dual-verts",
|
|
|
|
|
|
|
|
// font
|
|
|
|
"get-string-length",
|
|
|
|
"draw-string",
|
|
|
|
|
|
|
|
// decomp
|
|
|
|
"(method 16 level)", // BUG: cfg fails
|
|
|
|
"unpack-comp-huf",
|
|
|
|
"unpack-comp-rle",
|
|
|
|
|
|
|
|
// background
|
|
|
|
"upload-vis-bits",
|
|
|
|
"background-upload-vu0",
|
|
|
|
|
|
|
|
// draw-node
|
|
|
|
"draw-node-cull",
|
|
|
|
|
|
|
|
// shrubbery
|
|
|
|
"test-func",
|
|
|
|
"draw-inline-array-instance-shrub",
|
|
|
|
|
|
|
|
// tfrag
|
|
|
|
"stats-tfrag-asm",
|
|
|
|
"draw-inline-array-tfrag-near",
|
|
|
|
"draw-inline-array-tfrag",
|
|
|
|
|
|
|
|
// tie-methods
|
|
|
|
"draw-inline-array-prototype-tie-near-asm",
|
|
|
|
"draw-inline-array-prototype-tie-asm",
|
|
|
|
"draw-inline-array-prototype-tie-generic-asm",
|
|
|
|
"draw-inline-array-instance-tie",
|
|
|
|
|
|
|
|
// sparticle-launcher
|
|
|
|
"(method 11 sparticle-launch-control)", // BUG: cfg ir
|
|
|
|
"sp-launch-particles-var",
|
|
|
|
"particle-adgif",
|
|
|
|
"sp-init-fields!",
|
|
|
|
|
|
|
|
// sparticle
|
|
|
|
"memcpy",
|
|
|
|
"sp-process-block-3d",
|
|
|
|
"sp-process-block-2d",
|
|
|
|
|
|
|
|
// loader BUG
|
|
|
|
"(method 10 external-art-buffer)",
|
|
|
|
|
|
|
|
// game-info BUG
|
|
|
|
"(method 11 fact-info-target)",
|
|
|
|
|
|
|
|
// game-save BUG
|
|
|
|
"(anon-function 5 game-save)", // BUG:
|
|
|
|
"(anon-function 6 game-save)", // BUG:
|
|
|
|
"(anon-function 7 game-save)", // BUG:
|
|
|
|
"(anon-function 8 game-save)", // BUG:
|
|
|
|
"(anon-function 9 game-save)", // BUG:
|
|
|
|
"(anon-function 10 game-save)",
|
|
|
|
|
|
|
|
// mood BUG
|
|
|
|
"update-mood-lava", // BUG:
|
|
|
|
"update-mood-lightning",
|
|
|
|
|
|
|
|
// time-of-day
|
|
|
|
"time-of-day-interp-colors-scratch",
|
|
|
|
"time-of-day-interp-colors",
|
|
|
|
|
|
|
|
// sky-tng
|
|
|
|
"clip-polygon-against-negative-hyperplane",
|
|
|
|
"clip-polygon-against-positive-hyperplane",
|
|
|
|
"draw-large-polygon",
|
|
|
|
|
|
|
|
// load-boundary
|
|
|
|
"render-boundary-tri",
|
|
|
|
"render-boundary-quad",
|
|
|
|
"draw-boundary-polygon",
|
|
|
|
|
|
|
|
// level BUG
|
|
|
|
"level-update-after-load",
|
|
|
|
|
|
|
|
// text BUG
|
|
|
|
"load-game-text-info",
|
|
|
|
|
|
|
|
// collide-probe
|
|
|
|
"collide-probe-instance-tie",
|
|
|
|
"collide-probe-node",
|
|
|
|
|
|
|
|
// collide-mesh
|
|
|
|
"(method 10 collide-mesh)",
|
|
|
|
"(method 13 collide-mesh)",
|
|
|
|
"(method 9 collide-mesh-cache)",
|
|
|
|
"(method 15 collide-mesh)",
|
|
|
|
"(method 14 collide-mesh)",
|
|
|
|
"(method 11 collide-mesh)",
|
|
|
|
"(method 12 collide-mesh)",
|
|
|
|
|
|
|
|
// collide-edge-grab
|
|
|
|
"(method 13 collide-edge-work)",
|
|
|
|
"(method 17 collide-edge-work)",
|
|
|
|
"(method 15 collide-edge-work)",
|
|
|
|
"(method 16 collide-edge-work)",
|
|
|
|
"(method 9 edge-grab-info)", // maybe bug
|
|
|
|
"(method 18 collide-edge-work)",
|
|
|
|
"(method 10 collide-edge-hold-list)",
|
|
|
|
|
|
|
|
// collide-shape
|
|
|
|
"(method 15 collide-shape-prim-mesh)", // BUG:
|
|
|
|
"(method 15 collide-shape-prim-sphere)", // BUG:
|
|
|
|
"(method 16 collide-shape-prim)",
|
|
|
|
"(method 15 collide-shape-prim-group)",
|
|
|
|
"(method 40 collide-shape)",
|
|
|
|
"(method 45 collide-shape)",
|
|
|
|
"(method 28 collide-shape-prim-mesh)", // BUG:
|
|
|
|
"(method 29 collide-shape-prim-group)",
|
|
|
|
"(method 20 collide-shape-prim-group)",
|
|
|
|
"(method 19 collide-shape-prim-sphere)",
|
|
|
|
"(method 18 collide-shape-prim-sphere)",
|
|
|
|
"(method 23 collide-shape-prim-sphere)",
|
|
|
|
"(method 23 collide-shape-prim-mesh)", // BUG: maybe
|
|
|
|
"(method 24 collide-shape-prim)",
|
|
|
|
"(method 23 collide-shape-prim-group)",
|
|
|
|
"(method 42 collide-shape)",
|
|
|
|
|
|
|
|
// collide-shape-rider
|
|
|
|
"(method 35 collide-shape)",
|
|
|
|
|
|
|
|
// cam-master BUG
|
|
|
|
"master-is-hopeful-better?",
|
|
|
|
|
|
|
|
// cam-layout BUG
|
|
|
|
"cam-layout-save-cam-trans",
|
|
|
|
|
|
|
|
// process-drawable BUG
|
|
|
|
"cspace-inspect-tree", // BUG:
|
|
|
|
"process-drawable-birth-fuel-cell", // BUG:
|
|
|
|
"(method 19 process-drawable)",
|
|
|
|
|
|
|
|
// ambient
|
|
|
|
"ambient-inspect",
|
|
|
|
|
|
|
|
// generic-obs BUG
|
|
|
|
"camera-change-to",
|
|
|
|
|
|
|
|
// target BUG
|
|
|
|
"target-falling-anim-trans",
|
|
|
|
|
|
|
|
// target2 BUG
|
|
|
|
"(anon-function 33 target2)", // BUG:
|
|
|
|
"(anon-function 67 target2)", // BUG:
|
|
|
|
"look-for-points-of-interest",
|
|
|
|
|
|
|
|
// menu BUG
|
|
|
|
"debug-menu-item-var-render",
|
|
|
|
|
|
|
|
// drawable-tree
|
|
|
|
"(method 16 drawable-tree)",
|
|
|
|
|
|
|
|
// collide-cache
|
|
|
|
"(method 10 collide-puss-work)",
|
|
|
|
"(method 9 collide-puss-work)",
|
|
|
|
"(method 19 collide-cache)",
|
|
|
|
"(method 10 collide-cache-prim)",
|
|
|
|
"(method 9 collide-cache-prim)",
|
|
|
|
"(method 30 collide-cache)",
|
|
|
|
"(method 13 collide-shape-prim-group)",
|
|
|
|
"(method 13 collide-shape-prim-sphere)",
|
|
|
|
"(method 13 collide-shape-prim-mesh)",
|
|
|
|
"(method 14 collide-shape-prim-group)",
|
|
|
|
"(method 14 collide-shape-prim-sphere)",
|
|
|
|
"(method 14 collide-shape-prim-mesh)",
|
|
|
|
"(method 12 collide-shape-prim-group)", // BUG: maybe
|
|
|
|
"(method 12 collide-shape-prim-sphere)",
|
|
|
|
"(method 12 collide-shape-prim-mesh)",
|
|
|
|
"(method 29 collide-cache)",
|
|
|
|
"(method 27 collide-cache)",
|
|
|
|
"(method 14 collide-cache)",
|
|
|
|
"(method 28 collide-cache)",
|
|
|
|
"(method 26 collide-cache)",
|
|
|
|
"(method 21 collide-cache)",
|
|
|
|
"(method 32 collide-cache)",
|
|
|
|
|
|
|
|
// memory-usage BUG
|
|
|
|
"(method 14 level)",
|
|
|
|
|
|
|
|
// navigate BUG
|
|
|
|
"(method 32 nav-control)",
|
|
|
|
|
|
|
|
// collectables BUG
|
|
|
|
"birth-pickup-at-point",
|
|
|
|
"add-blue-motion",
|
|
|
|
|
|
|
|
// ocean
|
|
|
|
"draw-large-polygon-ocean",
|
|
|
|
|
|
|
|
// ocean-vu0
|
|
|
|
"ocean-generate-verts",
|
|
|
|
"ocean-interp-wave",
|
|
|
|
|
|
|
|
// anim-tester BUG
|
|
|
|
"anim-tester-add-newobj",
|
|
|
|
|
|
|
|
// nav-enemy BUG
|
|
|
|
"(anon-function 28 nav-enemy)",
|
|
|
|
|
|
|
|
// orb-cache BUG
|
|
|
|
"(method 27 orb-cache-top)",
|
|
|
|
|
|
|
|
// ropebridge BUG
|
|
|
|
"(method 27 ropebridge)",
|
|
|
|
|
|
|
|
// all unchecked.and in level DGO code
|
|
|
|
"(anon-function 11 robotboss)",
|
|
|
|
"(anon-function 18 robotboss)",
|
|
|
|
"(anon-function 49 robotboss)",
|
|
|
|
"(anon-function 21 plant-boss)",
|
|
|
|
"(anon-function 10 ice-cube)",
|
|
|
|
"(anon-function 15 ice-cube)",
|
|
|
|
"(anon-function 45 lavatube-energy)",
|
|
|
|
"(anon-function 5 game-save)",
|
|
|
|
"(anon-function 6 game-save)",
|
|
|
|
"(anon-function 7 game-save)",
|
|
|
|
"(anon-function 8 game-save)",
|
|
|
|
"(anon-function 9 game-save)",
|
|
|
|
"(anon-function 10 game-save)",
|
|
|
|
"(anon-function 28 nav-enemy)",
|
|
|
|
"mistycannon-find-best-solution",
|
|
|
|
"target-flut-falling-anim-trans",
|
|
|
|
"kermit-check-to-hit-player?",
|
|
|
|
"(anon-function 6 title-obs)",
|
|
|
|
"(anon-function 36 mistycannon)",
|
|
|
|
"(anon-function 5 battlecontroller)",
|
|
|
|
"(anon-function 43 maincave-obs)",
|
|
|
|
"(anon-function 2 target-tube)",
|
|
|
|
"(anon-function 5 orbit-plat)",
|
|
|
|
"(anon-function 2 ogreboss)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
]
|
2020-10-15 20:59:30 -04:00
|
|
|
}
|