mirror of
https://github.com/open-goal/jak-project
synced 2026-05-24 07:11:15 -04:00
[decomp] jak2: debug, debug-sphere (#1846)
I wasn't able to 100% complete `debug` due to a bunch of level boundary debug stuff I couldn't figure out. But, I added a ref test and documented/copied over everything else into goal_src. Most of the functions that existed in Jak 1 are identical, others got an extra param or 2 and some now make copies of arguments instead of modifying them. There's a bunch of new functions, including all of the debug functions that used to be in `level-boundary` are now in `debug`. At the very end of `debug` there's also some weird asm functions checking for some EE memory controller bug (not sure what's up with that)?
This commit is contained in:
@@ -1096,8 +1096,8 @@
|
||||
)
|
||||
|
||||
(deftype vector4w-2 (structure)
|
||||
((data int32 8 :offset-assert 0)
|
||||
(quad uint128 2 :offset 0)
|
||||
((data int32 8 :offset-assert 0 :score -2)
|
||||
(quad uint128 2 :offset 0 :score -1)
|
||||
(vector vector4w 2 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
@@ -1106,8 +1106,8 @@
|
||||
)
|
||||
|
||||
(deftype vector4w-3 (structure)
|
||||
((data int32 12 :offset-assert 0)
|
||||
(quad uint128 3 :offset 0)
|
||||
((data int32 12 :offset-assert 0 :score -2)
|
||||
(quad uint128 3 :offset 0 :score -1)
|
||||
(vector vector4w 3 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
@@ -7452,7 +7452,7 @@
|
||||
(define-extern *shader-list* pair)
|
||||
(define-extern *edit-shader* texture-id)
|
||||
;; (define-extern link-texture-by-id function) ;; (function texture-id adgif-shader texture-page-dir-entry)
|
||||
(define-extern adgif-shader<-texture! (function adgif-shader texture adgif-shader)) ;;
|
||||
(define-extern adgif-shader<-texture! (function adgif-shader texture adgif-shader))
|
||||
(define-extern adgif-shader-update! (function adgif-shader texture none))
|
||||
;; (define-extern adgif-shader<-texture-with-update! function) ;; (function adgif-shader texture adgif-shader)
|
||||
;; (define-extern hack-texture function)
|
||||
@@ -7460,7 +7460,7 @@
|
||||
(define-extern adgif-shader-login-no-remap (function adgif-shader texture))
|
||||
;; (define-extern adgif-shader-login-fast function) ;; (function adgif-shader texture)
|
||||
;; (define-extern adgif-shader-login-no-remap-fast function) ;; (function adgif-shader texture)
|
||||
(define-extern adgif-shader<-texture-simple! (function adgif-shader texture adgif-shader)) ;;
|
||||
(define-extern adgif-shader<-texture-simple! (function adgif-shader texture adgif-shader))
|
||||
(define-extern set-dirty-mask!
|
||||
"First arg is the level name off the [[*level*]]'s `default-level`"
|
||||
(function string int int int none))
|
||||
@@ -21572,46 +21572,41 @@
|
||||
;; debug-sphere ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; (define-extern make-debug-sphere-table function) ;; (function debug-sphere-table none)
|
||||
;; (define-extern *debug-sphere-table* object) ;; debug-sphere-table
|
||||
;; (define-extern add-debug-sphere-from-table function) ;; (function bucket-id vector float rgba none)
|
||||
(define-extern make-debug-sphere-table (function vector-array float float vector-array))
|
||||
(define-extern *debug-sphere-table* (array vector-array))
|
||||
(define-extern add-debug-sphere-from-table (function bucket-id vector meters rgba int none))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; debug ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
#|
|
||||
(deftype debug-line (structure)
|
||||
((flags int32 :offset-assert 0)
|
||||
(bucket int32 :offset-assert 4) ;; bucket-id
|
||||
(bucket bucket-id :offset-assert 4)
|
||||
(v1 vector :inline :offset-assert 16)
|
||||
(v2 vector :inline :offset-assert 32)
|
||||
(color rgba :offset-assert 48) ;; guessed by decompiler
|
||||
(mode symbol :offset-assert 52) ;; guessed by decompiler
|
||||
(color2 rgba :offset-assert 56) ;; guessed by decompiler
|
||||
(color rgba :offset-assert 48)
|
||||
(mode symbol :offset-assert 52)
|
||||
(color2 rgba :offset-assert 56)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x3c
|
||||
:flag-assert #x90000003c
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype debug-text-3d (structure)
|
||||
((flags int32 :offset-assert 0)
|
||||
(bucket int32 :offset-assert 4) ;; bucket-id
|
||||
(bucket bucket-id :offset-assert 4)
|
||||
(pos vector :inline :offset-assert 16)
|
||||
(color font-color :offset-assert 32) ;; guessed by decompiler
|
||||
(color font-color :offset-assert 32)
|
||||
(offset vector2h :inline :offset-assert 36)
|
||||
(str string :offset-assert 40) ;; guessed by decompiler
|
||||
(str string :offset-assert 40)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x2c
|
||||
:flag-assert #x90000002c
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype debug-tracking-thang (basic)
|
||||
((length int32 :offset-assert 4)
|
||||
(allocated-length int32 :offset-assert 8)
|
||||
@@ -21620,78 +21615,67 @@
|
||||
:size-assert #xc
|
||||
:flag-assert #x90000000c
|
||||
)
|
||||
|#
|
||||
|
||||
#|
|
||||
(deftype debug-vertex-stats (basic)
|
||||
()
|
||||
:method-count-assert 9
|
||||
:size-assert #x4b10
|
||||
:flag-assert #x900004b10
|
||||
;; Failed to read fields.
|
||||
)
|
||||
|#
|
||||
|
||||
(define-extern transform-float-point (function vector vector4w vector4w))
|
||||
;; (define-extern add-debug-point function) ;; (function symbol bucket-id vector symbol)
|
||||
;; (define-extern debug-line-clip? function)
|
||||
;; (define-extern internal-draw-debug-line function) ;; (function bucket-id vector vector rgba symbol rgba pointer)
|
||||
;; (define-extern internal-draw-debug-text-3d function) ;; (function bucket-id string vector font-color vector2h pointer)
|
||||
;; (define-extern add-debug-outline-triangle function) ;; (function symbol bucket-id vector vector vector rgba symbol)
|
||||
;; (define-extern add-debug-triangle-normal function) ;; (function symbol bucket-id vector vector vector rgba symbol)
|
||||
(define-extern add-debug-flat-triangle (function symbol bucket-id vector vector vector rgba symbol)) ;;
|
||||
;; (define-extern *debug-lines* object) ;; (inline-array debug-line)
|
||||
;; (define-extern *debug-lines-trk* object) ;; debug-tracking-thang
|
||||
;; (define-extern *debug-text-3ds* object) ;; (inline-array debug-text-3d)
|
||||
;; (define-extern *debug-text-3d-trk* object) ;; debug-tracking-thang
|
||||
;; (define-extern get-debug-line function) ;; (function debug-line)
|
||||
;; (define-extern get-debug-text-3d function) ;; (function debug-text-3d)
|
||||
(define-extern add-debug-point (function symbol bucket-id vector symbol))
|
||||
(define-extern debug-line-clip? (function vector vector vector vector symbol))
|
||||
(define-extern internal-draw-debug-line (function bucket-id vector vector rgba symbol rgba pointer))
|
||||
(define-extern internal-draw-debug-text-3d (function bucket-id string vector font-color vector2h pointer))
|
||||
(define-extern add-debug-outline-triangle (function symbol bucket-id vector vector vector rgba symbol))
|
||||
(define-extern add-debug-triangle-normal (function symbol bucket-id vector vector vector rgba symbol))
|
||||
(define-extern add-debug-flat-triangle (function symbol bucket-id vector vector vector rgba symbol))
|
||||
(define-extern *debug-lines* (inline-array debug-line))
|
||||
(define-extern *debug-lines-trk* debug-tracking-thang)
|
||||
(define-extern *debug-text-3ds* (inline-array debug-text-3d))
|
||||
(define-extern *debug-text-3d-trk* debug-tracking-thang)
|
||||
(define-extern get-debug-line (function debug-line))
|
||||
(define-extern get-debug-text-3d (function debug-text-3d))
|
||||
(define-extern debug-reset-buffers (function symbol))
|
||||
(define-extern debug-draw-buffers (function symbol))
|
||||
(define-extern add-debug-line (function symbol bucket-id vector vector rgba symbol rgba symbol))
|
||||
(define-extern add-debug-line2d (function symbol bucket-id vector vector vector symbol))
|
||||
;; (define-extern add-debug-box function) ;; (function symbol bucket-id vector vector rgba symbol)
|
||||
;; (define-extern add-debug-box-with-transform function)
|
||||
(define-extern add-debug-box (function symbol bucket-id vector vector rgba symbol))
|
||||
(define-extern add-debug-box-with-transform (function symbol bucket-id bounding-box matrix rgba symbol)) ;; unsure if arg2 is bounding-box
|
||||
(define-extern add-debug-x (function symbol bucket-id vector rgba symbol))
|
||||
;; (define-extern add-debug-cross function)
|
||||
(define-extern add-debug-cross (function symbol bucket-id vector float symbol))
|
||||
(define-extern add-debug-text-3d (function symbol bucket-id string vector font-color vector2h symbol))
|
||||
;; (define-extern add-debug-sphere-with-transform function) ;; (function symbol bucket-id vector meters matrix rgba symbol)
|
||||
(define-extern add-debug-sphere (function symbol bucket-id vector float rgba symbol))
|
||||
(define-extern add-debug-text-sphere (function symbol bucket-id vector float string rgba symbol))
|
||||
;; (define-extern add-debug-spheres function) ;; (function symbol bucket-id (inline-array vector) int rgba symbol)
|
||||
;; (define-extern add-debug-line-sphere function)
|
||||
;; (define-extern add-debug-circle function) ;; (function symbol bucket-id vector float rgba matrix symbol)
|
||||
(define-extern add-debug-sphere-with-transform (function symbol bucket-id vector meters matrix rgba symbol))
|
||||
(define-extern add-debug-sphere (function symbol bucket-id vector meters rgba symbol))
|
||||
(define-extern add-debug-text-sphere (function symbol bucket-id vector meters string rgba symbol))
|
||||
(define-extern add-debug-spheres (function symbol bucket-id (inline-array vector) int rgba symbol))
|
||||
(define-extern add-debug-line-sphere (function symbol bucket-id vector vector float rgba none))
|
||||
(define-extern add-debug-circle (function symbol bucket-id vector float rgba matrix symbol))
|
||||
(define-extern add-debug-vector (function symbol bucket-id vector vector meters rgba symbol))
|
||||
(define-extern add-debug-matrix (function symbol bucket-id matrix float matrix))
|
||||
;; (define-extern add-debug-rot-matrix function) ;; (function symbol bucket-id matrix vector matrix)
|
||||
;; (define-extern add-debug-quaternion function)
|
||||
;; (define-extern add-debug-cspace function)
|
||||
;; (define-extern add-debug-yrot-vector function) ;; (function symbol bucket-id vector float float rgba symbol)
|
||||
;; (define-extern add-debug-arc function) ;; (function symbol bucket-id vector float float float rgba matrix symbol)
|
||||
;; (define-extern add-debug-curve function) ;; (function symbol bucket-id (inline-array vector) int (pointer float) int rgba symbol)
|
||||
;; (define-extern add-debug-curve2 function) ;; (function symbol bucket-id curve rgba symbol symbol)
|
||||
;; (define-extern add-debug-points function) ;; (function symbol bucket-id (inline-array vector) int rgba float int symbol)
|
||||
;; (define-extern debug-percent-bar function) ;; (function symbol bucket-id int int float rgba symbol)
|
||||
;; (define-extern debug-pad-display function) ;; (function cpad-info symbol)
|
||||
;; (define-extern add-debug-light function) ;; (function symbol bucket-id light vector string symbol)
|
||||
;; (define-extern add-debug-lights function) ;; (function symbol bucket-id (inline-array light) vector symbol)
|
||||
;; (define-extern drawable-frag-count function) ;; (function drawable int)
|
||||
;; (define-extern history-init function) ;; (function pos-history int pos-history)
|
||||
;; (define-extern history-draw-and-update function) ;; (function pos-history int vector symbol)
|
||||
;; (define-extern dma-timeout-cam function) ;; (function vector)
|
||||
(define-extern add-debug-matrix (function symbol bucket-id matrix meters matrix))
|
||||
(define-extern add-debug-rot-matrix (function symbol bucket-id matrix vector matrix))
|
||||
(define-extern add-debug-quaternion (function symbol bucket-id vector quaternion none))
|
||||
(define-extern add-debug-cspace (function symbol bucket-id cspace cspace))
|
||||
(define-extern add-debug-yrot-vector (function symbol bucket-id vector float float rgba symbol))
|
||||
(define-extern add-debug-arc (function symbol bucket-id vector float float float rgba matrix symbol))
|
||||
(define-extern add-debug-curve (function symbol bucket-id (inline-array vector) int (pointer float) int rgba symbol))
|
||||
(define-extern add-debug-curve2 (function symbol bucket-id curve rgba symbol symbol))
|
||||
(define-extern add-debug-points (function symbol bucket-id (inline-array vector) int rgba float int symbol))
|
||||
(define-extern debug-percent-bar (function symbol bucket-id int int float rgba int int symbol))
|
||||
(define-extern debug-pad-display (function cpad-info symbol))
|
||||
(define-extern add-debug-light (function symbol bucket-id light vector string symbol))
|
||||
(define-extern add-debug-lights (function symbol bucket-id (inline-array light) vector symbol))
|
||||
(define-extern drawable-frag-count (function drawable int))
|
||||
(define-extern history-init (function pos-history int pos-history))
|
||||
(define-extern history-draw-and-update (function pos-history symbol vector symbol))
|
||||
(define-extern dma-timeout-cam (function vector))
|
||||
(define-extern display-file-info (function int))
|
||||
(define-extern add-debug-cursor (function symbol bucket-id int int int none))
|
||||
;; (define-extern *boundary-polygon* object) ;; (inline-array lbvtx)
|
||||
;; (define-extern init-boundary-regs function) ;; (function none)
|
||||
;; (define-extern add-boundary-shader function) ;; (function texture-id dma-buffer none)
|
||||
(define-extern *boundary-polygon* none) ;; (inline-array lbvtx) ;; TODO: figure out what this actually is
|
||||
(define-extern init-boundary-regs (function none))
|
||||
(define-extern add-boundary-shader (function texture-id dma-buffer none))
|
||||
;; (define-extern draw-boundary-polygon function) ;; function
|
||||
;; (define-extern render-boundary-quad function) ;; (function lbvtx dma-buffer none)
|
||||
;; (define-extern render-boundary-tri function) ;; (function lbvtx dma-buffer none)
|
||||
;; (define-extern add-debug-bound-internal function)
|
||||
;; (define-extern add-debug-bound function)
|
||||
;; (define-extern cpu-delay function)
|
||||
;; (define-extern qword-read-time function)
|
||||
;; (define-extern bugfix? function)
|
||||
(define-extern cpu-delay (function int none))
|
||||
(define-extern qword-read-time (function (array uint128) int int))
|
||||
(define-extern bugfix? (function symbol))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; history ;;
|
||||
|
||||
@@ -103,6 +103,8 @@
|
||||
"sign-float",
|
||||
"dma-count-until-done",
|
||||
"(method 11 collide-mesh-cache)",
|
||||
"cpu-delay",
|
||||
"qword-read-time",
|
||||
|
||||
"symlink2",
|
||||
"blerc-a-fragment",
|
||||
@@ -123,6 +125,11 @@
|
||||
"(method 17 collide-cache)",
|
||||
"(method 16 ocean)",
|
||||
|
||||
// unknown instructions
|
||||
"debug-line-clip?",
|
||||
// logand with #f arg
|
||||
"bugfix?",
|
||||
|
||||
// "reset-target-tracking",
|
||||
"(anon-function 1 target)",
|
||||
"find-nearest-entity",
|
||||
@@ -219,6 +226,9 @@
|
||||
|
||||
"sprite-draw-distorters": [4, 5],
|
||||
|
||||
"add-debug-box-with-transform": [0, 3],
|
||||
"add-debug-line-sphere": [0],
|
||||
|
||||
"(method 12 perf-stat)": [0],
|
||||
"(method 11 perf-stat)": [0],
|
||||
"(method 22 gui-control)": [117, 121, 127, 128, 129, 139],
|
||||
@@ -237,7 +247,8 @@
|
||||
"collide-do-primitives",
|
||||
"moving-sphere-triangle-intersect",
|
||||
"calc-animation-from-spr",
|
||||
"draw-string-asm", "draw-string", "get-string-length"
|
||||
"draw-string-asm", "draw-string", "get-string-length",
|
||||
"init-boundary-regs"
|
||||
],
|
||||
|
||||
"mips2c_jump_table_functions": {},
|
||||
|
||||
@@ -65,6 +65,16 @@
|
||||
"sprite": [["L51", "vu-function"]],
|
||||
"sprite-distort": [["L27", "vu-function"]],
|
||||
"sprite-glow": [["L29", "vu-function"]],
|
||||
"debug": [
|
||||
["L250", "(inline-array vector)", 32],
|
||||
["L254", "(inline-array vector)", 3],
|
||||
["L253", "(inline-array vector)", 3],
|
||||
["L255", "vector2h"],
|
||||
["L256", "vector"],
|
||||
["L257", "vector"],
|
||||
["L258", "vector"],
|
||||
["L259", "vector"]
|
||||
],
|
||||
"mood-funcs": [
|
||||
["L231", "vector"],
|
||||
["L358", "(pointer uint64)", 1],
|
||||
|
||||
@@ -174,6 +174,122 @@
|
||||
[368, "matrix"],
|
||||
[432, "vector"]
|
||||
],
|
||||
// debug
|
||||
"add-debug-point": [
|
||||
[16, "vector4w-2"],
|
||||
[48, "vector"]
|
||||
],
|
||||
"internal-draw-debug-line": [
|
||||
[16, "vector4w-2"],
|
||||
[48, "vector4w-2"],
|
||||
[80, "vector"],
|
||||
[96, "vector"]
|
||||
],
|
||||
"internal-draw-debug-text-3d": [
|
||||
[16, "vector4w"],
|
||||
[32, "font-context"]
|
||||
],
|
||||
"add-debug-triangle-normal": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"add-debug-flat-triangle": [
|
||||
[16, "vector4w-3"],
|
||||
[64, "vector4w-3"],
|
||||
[112, "vector"],
|
||||
[128, "vector"],
|
||||
[144, "vector"]
|
||||
],
|
||||
"add-debug-line2d": [
|
||||
[16, "vector4w"],
|
||||
[32, "vector4w"]
|
||||
],
|
||||
"add-debug-box": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"add-debug-box-with-transform": [
|
||||
[16, ["inline-array", "vector", 8]],
|
||||
[144, ["inline-array", "vector", 2]],
|
||||
[176, "vector"]
|
||||
],
|
||||
"add-debug-x": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"add-debug-cross": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"],
|
||||
[80, "vector"],
|
||||
[96, "vector"],
|
||||
[112, "vector"],
|
||||
[128, "vector"]
|
||||
],
|
||||
"add-debug-sphere-with-transform": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-line-sphere": [
|
||||
[48, "matrix"],
|
||||
[112, "matrix"],
|
||||
[128, "vector"],
|
||||
[144, "vector"],
|
||||
[160, "vector"],
|
||||
[176, "vector"],
|
||||
[208, "vector"],
|
||||
[192, "vector"]
|
||||
],
|
||||
"add-debug-circle": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"add-debug-vector": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-quaternion": [
|
||||
[16, "matrix"]
|
||||
],
|
||||
"add-debug-yrot-vector": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-arc": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"add-debug-curve": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"add-debug-points": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-light": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-cursor": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"dma-timeout-cam": [
|
||||
[16, "vector"],
|
||||
[32, "matrix"]
|
||||
],
|
||||
// debug-sphere
|
||||
"make-debug-sphere-table": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"],
|
||||
[80, "vector"],
|
||||
[96, "vector"],
|
||||
[112, "vector"]
|
||||
],
|
||||
"add-debug-sphere-from-table": [
|
||||
[16, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"]
|
||||
],
|
||||
|
||||
"matrix-3x3-triple-transpose-product": [[16, ["inline-array", "matrix", 3]]],
|
||||
"(method 14 rigid-body)": [[16, "quaternion"]],
|
||||
"(method 19 rigid-body)": [
|
||||
|
||||
@@ -898,7 +898,10 @@
|
||||
[20, "s0", "fact-info-enemy"],
|
||||
[12, "s2", "process-drawable"]
|
||||
],
|
||||
"joint-mod-look-at-handler": [[[2, 406], "gp", "joint-mod"]],
|
||||
"joint-mod-look-at-handler": [
|
||||
[[2, 406], "gp", "joint-mod"],
|
||||
[409, "a3", "float"]
|
||||
],
|
||||
"real-joint-mod-gun-look-at-handler": [
|
||||
[1, "v1", "joint-mod"],
|
||||
[2, "v1", "joint-mod"]
|
||||
@@ -913,15 +916,22 @@
|
||||
"joint-mod-polar-look-at-guts": [
|
||||
[1, "gp", "joint-mod"],
|
||||
[[1, 334], "gp", "joint-mod"],
|
||||
[334, "gp", "joint-mod"]
|
||||
[334, "gp", "joint-mod"],
|
||||
[338, "a3", "float"]
|
||||
],
|
||||
"joint-mod-world-look-at-handler": [
|
||||
[[0, 217], "gp", "joint-mod"],
|
||||
[220, "a3", "float"]
|
||||
],
|
||||
"joint-mod-world-look-at-handler": [[[0, 217], "gp", "joint-mod"]],
|
||||
"joint-mod-rotate-handler": [[[2, 114], "s5", "joint-mod"]],
|
||||
"joint-mod-scale-handler": [[[1, 14], "s5", "joint-mod"]],
|
||||
"joint-mod-joint-set-handler": [[[2, 23], "s4", "joint-mod"]],
|
||||
"joint-mod-joint-set-world-handler": [[[6, 197], "s5", "joint-mod"]],
|
||||
"joint-mod-joint-set*-handler": [[[2, 39], "s5", "joint-mod"]],
|
||||
"joint-mod-joint-set*-world-handler": [[[4, 53], "s5", "joint-mod"]],
|
||||
"joint-mod-debug-draw": [
|
||||
[8, "a3", "float"]
|
||||
],
|
||||
"glst-find-node-by-name": [
|
||||
[6, "s5", "glst-named-node"],
|
||||
[7, "v1", "glst-named-node"]
|
||||
@@ -1406,6 +1416,7 @@
|
||||
"(method 10 sparticle-launcher)": [[41, "gp", "(array float)"]],
|
||||
"birth-func-texture-group": [[3, "s5", "(pointer int32)"]],
|
||||
"(method 9 sparticle-launch-control)": [[22, "a2", "process-drawable"]],
|
||||
"(method 10 sparticle-launch-control)": [[42, "a3", "float"]],
|
||||
"execute-part-engine": [
|
||||
[11, "v1", "connection"],
|
||||
[137, "a3", "vector"]
|
||||
@@ -1426,6 +1437,82 @@
|
||||
[35, "s3", "pointer"]
|
||||
],
|
||||
"sp-process-particle-system": [[14, "a1", "vector"]],
|
||||
|
||||
// debug
|
||||
"add-debug-point": [
|
||||
[[35, 39], "a3", "dma-packet"],
|
||||
[[45, 48], "a3", "gs-gif-tag"],
|
||||
[[65, 69], "a3", "vector4w-2"],
|
||||
[[85, 89], "a3", "vector4w-2"],
|
||||
[[102, 106], "a3", "vector4w-2"],
|
||||
[[122, 126], "a1", "vector4w-2"],
|
||||
[[129, 148], "a0", "(pointer uint64)"],
|
||||
[[151, 154], "a0", "dma-packet"]
|
||||
],
|
||||
"internal-draw-debug-line": [
|
||||
[[5, 224], "s5", "rgba"],
|
||||
[[27, 29], "v1", "rgba"],
|
||||
[[109, 115], "a3", "dma-packet"],
|
||||
[[118, 124], "a3", "gs-gif-tag"],
|
||||
[[232, 245], "a1", "(inline-array vector4w-2)"],
|
||||
[[107, 267], "a0", "(pointer uint64)"],
|
||||
[[268, 273], "a0", "dma-packet"]
|
||||
],
|
||||
"internal-draw-debug-text-3d": [
|
||||
[[53, 56], "v1", "dma-packet"]
|
||||
],
|
||||
"add-debug-flat-triangle": [
|
||||
[[70, 76], "a3", "dma-packet"],
|
||||
[[79, 85], "a3", "gs-gif-tag"],
|
||||
[[108, 127], "a3", "(inline-array vector)"],
|
||||
[[68, 149], "a0", "(pointer uint64)"],
|
||||
[[150, 155], "a0", "dma-packet"]
|
||||
],
|
||||
"add-debug-line2d": [
|
||||
[[60, 64], "a2", "dma-packet"],
|
||||
[[70, 73], "a2", "gs-gif-tag"],
|
||||
[[78, 81], "a2", "vector4w-2"],
|
||||
[[86, 89], "a2", "vector4w-2"],
|
||||
[[97, 111], "a0", "(pointer uint64)"],
|
||||
[[114, 117], "v1", "dma-packet"]
|
||||
],
|
||||
"add-debug-rot-matrix": [
|
||||
[[9, 12], "t0", "float"],
|
||||
[[17, 20], "t0", "float"],
|
||||
[[22, 29], "t0", "float"]
|
||||
],
|
||||
"add-debug-cspace": [
|
||||
[[4, 6], "a3", "float"]
|
||||
],
|
||||
"add-debug-points": [
|
||||
[[52, 57], "a3", "rgba"]
|
||||
],
|
||||
"debug-percent-bar": [
|
||||
[[44, 49], "v1", "dma-packet"]
|
||||
],
|
||||
"debug-pad-display": [
|
||||
[[72, 77], "v1", "dma-packet"]
|
||||
],
|
||||
"add-debug-light": [
|
||||
[[17, 20], "t0", "float"]
|
||||
],
|
||||
"drawable-frag-count": [
|
||||
[[14, 20], "s5", "drawable-group"]
|
||||
],
|
||||
"add-debug-cursor": [
|
||||
[[35, 40], "v1", "dma-packet"]
|
||||
],
|
||||
"add-boundary-shader": [
|
||||
[[6, 12], "a0", "gs-gif-tag"],
|
||||
[[14, 31], "s5", "adgif-shader"]
|
||||
],
|
||||
|
||||
// debug-sphere
|
||||
"add-debug-sphere-from-table": [
|
||||
[[38, 41], "v1", "vector"],
|
||||
[[55, 59], "s0", "(inline-array vector)"]
|
||||
],
|
||||
|
||||
"drawable-load": [[[25, 28], "s5", "drawable"]],
|
||||
"art-load": [[[13, 16], "s5", "art"]],
|
||||
"art-group-load-check": [[[43, 53], "s3", "art-group"]],
|
||||
|
||||
@@ -272,6 +272,340 @@
|
||||
"args": ["search", "fallback"]
|
||||
},
|
||||
|
||||
// debug
|
||||
"transform-float-point": {
|
||||
"args": ["in", "out"]
|
||||
},
|
||||
"add-debug-point": {
|
||||
"args": ["enable-draw", "bucket", "pt"],
|
||||
"vars": {
|
||||
"a1-2": "pt-copy",
|
||||
"v1-11": "buf",
|
||||
"a2-1": "tag-start",
|
||||
"a3-20": "tag-end",
|
||||
"a3-0": ["a3-0", "dma-packet"],
|
||||
"a3-2": ["a3-2", "gs-gif-tag"],
|
||||
"a3-4": ["a3-4", "vector4w-2"],
|
||||
"a3-6": ["a3-6", "vector4w-2"],
|
||||
"a3-8": ["a3-8", "vector4w-2"],
|
||||
"a1-30": ["a1-30", "vector4w-2"],
|
||||
"a0-6": ["a0-6", "dma-packet"],
|
||||
"a0-5": ["a0-5", "(pointer uint64)"]
|
||||
}
|
||||
},
|
||||
"internal-draw-debug-line": {
|
||||
"args": ["bucket", "start", "end", "start-color", "mode", "end-color"],
|
||||
"vars": {
|
||||
"a0-2": "buf",
|
||||
"s1-0": "var-start-color",
|
||||
"s2-0": "var-mode",
|
||||
"s5-0": "var-end-color",
|
||||
"sv-112": "var-end",
|
||||
"v1-37": "buf2",
|
||||
"a2-2": "tag-start",
|
||||
"a3-17": "tag-end",
|
||||
"a3-2": ["pkt1", "dma-packet"],
|
||||
"a3-4": ["giftag", "gs-gif-tag"],
|
||||
"a1-50": ["a1-50", "(inline-array vector4w-2)"],
|
||||
"a0-29": ["pkt2", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"internal-draw-debug-text-3d": {
|
||||
"args": ["bucket", "text", "position", "color", "screen-offset"],
|
||||
"vars": {
|
||||
"v1-12": ["pkt", "dma-packet"],
|
||||
"s5-0": "tag-start",
|
||||
"a3-4": "tag-end",
|
||||
"s2-0": "screen-pos",
|
||||
"s3-0": "buf",
|
||||
"a2-2": "font-ctx"
|
||||
}
|
||||
},
|
||||
"add-debug-outline-triangle": {
|
||||
"args": ["enable", "bucket", "p0", "p1", "p2", "color"]
|
||||
},
|
||||
"add-debug-triangle-normal": {
|
||||
"args": ["enable", "bucket", "p0", "p1", "p2", "color"]
|
||||
},
|
||||
"add-debug-flat-triangle": {
|
||||
"args": ["enable", "bucket", "p0", "p1", "p2", "color"],
|
||||
"vars": {
|
||||
"v1-16": "buf",
|
||||
"a2-1": "tag-start",
|
||||
"a3-7": "tag-end",
|
||||
"a3-1": ["pkt1", "dma-packet"],
|
||||
"a3-3": ["giftag", "gs-gif-tag"],
|
||||
"a3-5": ["a3-5", "(inline-array vector)"],
|
||||
"a0-13": ["pkt2", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"debug-draw-buffers": {
|
||||
"vars": {
|
||||
"gp-0": "i",
|
||||
"gp-1": "j",
|
||||
"v1-1": "line",
|
||||
"v1-8": "text-3d"
|
||||
}
|
||||
},
|
||||
"add-debug-line": {
|
||||
"args": ["enable", "bucket", "start", "end", "start-color", "mode", "end-color"],
|
||||
"vars": {
|
||||
"v1-2": "line"
|
||||
}
|
||||
},
|
||||
"add-debug-line2d": {
|
||||
"args": ["enable", "bucket", "start", "end", "color"],
|
||||
"vars": {
|
||||
"a2-3": ["a2-3", "dma-packet"],
|
||||
"a2-5": ["giftag", "gs-gif-tag"],
|
||||
"a2-7": ["v0", "vector4w-2"],
|
||||
"a2-9": ["v1", "vector4w-2"],
|
||||
"a0-18": ["a0-18", "(pointer uint64)"],
|
||||
"s5-0": "tag-start",
|
||||
"a3-11": "tag-end",
|
||||
"v1-12": ["v1-12", "dma-packet"],
|
||||
"s2-0": "p0",
|
||||
"v1-9": "p1",
|
||||
"s4-0": "buf"
|
||||
}
|
||||
},
|
||||
"add-debug-box": {
|
||||
"args": ["enable", "bucket", "c1", "c2", "color"],
|
||||
"vars": {
|
||||
"s5-0": "p0",
|
||||
"s1-0": "p1"
|
||||
}
|
||||
},
|
||||
"add-debug-box-with-transform": {
|
||||
"args": ["enable", "bucket", "box", "trans", "color"],
|
||||
"vars": {
|
||||
"s4-0": "points",
|
||||
"s2-0": "corners",
|
||||
"s1-0": "point",
|
||||
"s0-0": "i"
|
||||
}
|
||||
},
|
||||
"add-debug-x": {
|
||||
"args": ["enable", "bucket", "position", "color"],
|
||||
"vars": {
|
||||
"s3-0": "p0",
|
||||
"s2-0": "p1"
|
||||
}
|
||||
},
|
||||
"add-debug-cross": {
|
||||
"args": ["enable", "bucket", "position", "radius"],
|
||||
"vars": {
|
||||
"s4-0": "p0",
|
||||
"s3-0": "p1"
|
||||
}
|
||||
},
|
||||
"add-debug-sphere-with-transform": {
|
||||
"args": ["enable", "bucket", "position", "radius", "trans", "color"],
|
||||
"vars": {
|
||||
"a2-1": "position-transformed"
|
||||
}
|
||||
},
|
||||
"add-debug-sphere": {
|
||||
"args": ["enable", "bucket", "position", "radius", "color"]
|
||||
},
|
||||
"add-debug-text-sphere": {
|
||||
"args": ["enable", "bucket", "position", "radius", "text", "color"]
|
||||
},
|
||||
"add-debug-text-3d": {
|
||||
"args": ["enable", "bucket", "text", "position", "color", "screen-offset"]
|
||||
},
|
||||
"add-debug-spheres": {
|
||||
"args": ["enable", "bucket", "origins", "count", "color"],
|
||||
"vars": {
|
||||
"s3-0": "i",
|
||||
"s4-0": "origin"
|
||||
}
|
||||
},
|
||||
"add-debug-line-sphere": {
|
||||
"args": ["enable", "bucket", "position", "forward", "arg4", "color"],
|
||||
"vars": {
|
||||
"sv-16": "var-bucket",
|
||||
"sv-24": "var-position",
|
||||
"sv-28": "var-forward",
|
||||
"sv-32": "var-arg4",
|
||||
"sv-36": "var-color",
|
||||
"gp-0": "mat-forward",
|
||||
"s5-0": "mat-down",
|
||||
"sv-112": "mat",
|
||||
"sv-116": "forward-length",
|
||||
"s0-0": "i"
|
||||
}
|
||||
},
|
||||
"add-debug-circle": {
|
||||
"args": ["enable", "bucket", "position", "radius", "color", "orientation"],
|
||||
"vars": {
|
||||
"s1-0": "line-start",
|
||||
"s0-0": "line-end",
|
||||
"sv-48": "i",
|
||||
"f30-0": "angle"
|
||||
}
|
||||
},
|
||||
"add-debug-vector": {
|
||||
"args": ["enable", "bucket", "position", "direction", "length", "color"],
|
||||
"vars": {
|
||||
"v1-2": "line-end"
|
||||
}
|
||||
},
|
||||
"add-debug-matrix": {
|
||||
"args": ["enable", "bucket", "mat", "line-length"]
|
||||
},
|
||||
"add-debug-rot-matrix": {
|
||||
"args": ["enable", "bucket", "mat", "position"]
|
||||
},
|
||||
"add-debug-quaternion": {
|
||||
"args": ["enable", "bucket", "position", "quat"],
|
||||
"vars": {
|
||||
"a2-1": "mat"
|
||||
}
|
||||
},
|
||||
"add-debug-cspace": {
|
||||
"args": ["enable", "bucket", "csp"]
|
||||
},
|
||||
"add-debug-yrot-vector": {
|
||||
"args": ["enable", "bucket", "position", "angle", "line-length", "color"],
|
||||
"vars": {
|
||||
"sv-32": "var-angle",
|
||||
"s0-0": "var-line-length",
|
||||
"s3-0": "var-color",
|
||||
"s1-0": "line-start"
|
||||
}
|
||||
},
|
||||
"add-debug-arc": {
|
||||
"args": ["enable", "bucket", "position", "start-angle", "end-angle", "radius", "color", "orientation"],
|
||||
"vars": {
|
||||
"f30-0": "angle",
|
||||
"sv-80": "i",
|
||||
"sv-48": "line-start",
|
||||
"sv-64": "line-end"
|
||||
}
|
||||
},
|
||||
"add-debug-curve": {
|
||||
"args": ["enable", "bucket", "cverts", "num-cverts", "knots", "num-knots", "color"],
|
||||
"vars": {
|
||||
"sv-80": "i",
|
||||
"s0-0": "p0",
|
||||
"sv-48": "p1",
|
||||
"sv-64": "iterations"
|
||||
}
|
||||
},
|
||||
"add-debug-curve2": {
|
||||
"args": ["enable", "bucket", "curve", "color", "arg4"]
|
||||
},
|
||||
"add-debug-points": {
|
||||
"args": ["enable", "bucket", "points", "num-points", "color", "y-override", "highlight"],
|
||||
"vars": {
|
||||
"s0-0": "i",
|
||||
"sv-96": "position"
|
||||
}
|
||||
},
|
||||
"debug-percent-bar": {
|
||||
"args": ["enable", "bucket", "x", "y", "percentage", "color", "width", "height"],
|
||||
"vars": {
|
||||
"s0-0": "buf",
|
||||
"s5-0": "tag-start",
|
||||
"a3-3": "tag-end",
|
||||
"v1-9": ["pkt", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"debug-pad-display": {
|
||||
"args": ["pad"],
|
||||
"vars": {
|
||||
"gp-0": "stick-history",
|
||||
"v1-0": "i",
|
||||
"s5-1": "j",
|
||||
"s3-0": "buf",
|
||||
"s4-0": "tag-start",
|
||||
"a3-1": "tag-end",
|
||||
"v1-16": ["pkt", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"add-debug-light": {
|
||||
"args": ["enable", "bucket", "light", "position", "text"],
|
||||
"vars": {
|
||||
"s1-1": "color-rgba",
|
||||
"s2-0": "sphere-pos"
|
||||
}
|
||||
},
|
||||
"add-debug-lights": {
|
||||
"args": ["enable", "bucket", "lights", "position"]
|
||||
},
|
||||
"drawable-frag-count": {
|
||||
"args": ["drbl"],
|
||||
"vars": {
|
||||
"gp-0": "count",
|
||||
"s4-0": "i"
|
||||
}
|
||||
},
|
||||
"history-init": {
|
||||
"args": ["history", "num-points"]
|
||||
},
|
||||
"history-draw-and-update": {
|
||||
"args": ["history", "draw", "pos"],
|
||||
"vars": {
|
||||
"s5-1": "i"
|
||||
}
|
||||
},
|
||||
"dma-timeout-cam": {
|
||||
"vars": {
|
||||
"a0-0": "pos",
|
||||
"a1-0": "rot"
|
||||
}
|
||||
},
|
||||
"display-file-info": {
|
||||
"vars": {
|
||||
"gp-0": "i",
|
||||
"v1-7": "level",
|
||||
"s5-0": "bsp"
|
||||
}
|
||||
},
|
||||
"add-debug-cursor": {
|
||||
"args": ["enable", "bucket", "x", "y", "arg4"],
|
||||
"vars": {
|
||||
"s4-0": "buf",
|
||||
"s5-0": "tag-start",
|
||||
"a3-2": "tag-end",
|
||||
"v1-9": ["pkt", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"add-boundary-shader": {
|
||||
"args": ["tex-id", "buf"],
|
||||
"vars": {
|
||||
"a1-1": "tex",
|
||||
"a0-1": ["giftag", "gs-gif-tag"],
|
||||
"s5-0": ["shader", "adgif-shader"]
|
||||
}
|
||||
},
|
||||
|
||||
// debug-sphere
|
||||
"make-debug-sphere-table": {
|
||||
"args": ["points", "h-lines", "v-lines"],
|
||||
"vars": {
|
||||
"s1-0": "v-line",
|
||||
"sv-112": "h-line",
|
||||
"s5-0": "num-points",
|
||||
"f30-0": "scale",
|
||||
"s2-0": "offset",
|
||||
"s0-0": "current",
|
||||
"sv-80": "next-hz",
|
||||
"sv-96": "next-vt"
|
||||
}
|
||||
},
|
||||
"add-debug-sphere-from-table": {
|
||||
"args": ["bucket", "position", "radius", "color", "table-idx"],
|
||||
"vars": {
|
||||
"sv-32": "sphere-points",
|
||||
"s0-0": ["points", "(inline-array vector)"],
|
||||
"s2-1": "point-1",
|
||||
"s1-1": "point-2",
|
||||
"sv-36": "point-3"
|
||||
}
|
||||
},
|
||||
|
||||
"(method 10 cam-setting-data)": {
|
||||
"vars": {
|
||||
"v1-5": ["v1-5", "handle"],
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
|
||||
|
||||
(defun-debug joint-mod-debug-draw ((arg0 joint-mod))
|
||||
(add-debug-matrix #t (bucket-id bucket-318) (-> arg0 joint bone transform) 8192.0)
|
||||
(add-debug-matrix #t (bucket-id bucket-318) (-> arg0 joint bone transform) (meters 2.0))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -968,7 +968,7 @@
|
||||
*display-target-marks*
|
||||
(bucket-id bucket-318)
|
||||
(-> gp-0 target)
|
||||
819.2
|
||||
(meters 0.2)
|
||||
"look"
|
||||
(new 'static 'rgba :r #xff :g #xff :a #x80)
|
||||
)
|
||||
@@ -1092,7 +1092,7 @@
|
||||
*display-target-marks*
|
||||
(bucket-id bucket-318)
|
||||
(-> gp-0 target)
|
||||
819.2
|
||||
(meters 0.2)
|
||||
"look"
|
||||
(new 'static 'rgba :r #xff :g #xff :a #x80)
|
||||
)
|
||||
@@ -1204,7 +1204,7 @@
|
||||
*display-target-marks*
|
||||
(bucket-id bucket-318)
|
||||
(-> gp-0 target)
|
||||
819.2
|
||||
(meters 0.2)
|
||||
"look"
|
||||
(new 'static 'rgba :r #xff :g #xff :a #x80)
|
||||
)
|
||||
|
||||
@@ -11,13 +11,12 @@
|
||||
(define-extern transform-float-point (function vector vector4w vector4w))
|
||||
(define-extern add-debug-line (function symbol bucket-id vector vector rgba symbol rgba symbol))
|
||||
;; NOTE - for sparticle-launcher
|
||||
(define-extern add-debug-sphere (function symbol bucket-id vector float rgba symbol))
|
||||
(define-extern add-debug-sphere (function symbol bucket-id vector meters rgba symbol))
|
||||
|
||||
|
||||
(define-extern add-debug-line2d (function symbol bucket-id vector vector vector symbol))
|
||||
(define-extern add-debug-sphere (function symbol bucket-id vector float rgba symbol))
|
||||
(define-extern add-debug-text-3d (function symbol bucket-id string vector font-color vector2h symbol))
|
||||
(define-extern add-debug-text-sphere (function symbol bucket-id vector float string rgba symbol))
|
||||
(define-extern add-debug-text-sphere (function symbol bucket-id vector meters string rgba symbol))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
@@ -77,4 +76,4 @@
|
||||
(define *color-dark-yellow* (new 'static 'rgba :r #x80 :g #x80 :a #x80))
|
||||
(define *color-orange* (new 'static 'rgba :r #xff :g #x80 :a #x80))
|
||||
|
||||
(define-extern add-debug-matrix (function symbol bucket-id matrix float matrix))
|
||||
(define-extern add-debug-matrix (function symbol bucket-id matrix meters matrix))
|
||||
|
||||
@@ -5,5 +5,108 @@
|
||||
;; name in dgo: debug-sphere
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
;; Functions for drawing wireframe spheres made up of debug lines.
|
||||
;; Do not call these functions unless *debug-segment* is set.
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defun make-debug-sphere-table ((points vector-array) (h-lines float) (v-lines float))
|
||||
"Fills points with positions that make a wireframe sphere made of the given number of horizontal and vertical lines.
|
||||
The points array is expected to have a capacity of at least (h-lines * v-lines * 3).
|
||||
Both h-lines and v-lines should be whole numbers."
|
||||
(local-vars (next-hz vector) (next-vt vector) (h-line int))
|
||||
(let ((offset (new-stack-vector0))
|
||||
(scale 1.0)
|
||||
(num-points 0)
|
||||
)
|
||||
(set-vector! offset 0.0 0.0 0.0 1.0)
|
||||
(dotimes (v-line (the int v-lines))
|
||||
(let ((f28-0 (* scale (sin (* (the float v-line) (/ 32768.0 v-lines)))))
|
||||
(f26-0 (* scale (sin (* (the float (+ v-line 1)) (/ 32768.0 v-lines)))))
|
||||
(current (new-stack-vector0))
|
||||
)
|
||||
(set! next-hz (new 'stack-no-clear 'vector))
|
||||
(set! (-> next-hz quad) (the-as uint128 0))
|
||||
(set! next-vt (new 'stack-no-clear 'vector))
|
||||
(set! (-> next-vt quad) (the-as uint128 0))
|
||||
(set! (-> current y) (+ (-> offset y) (* (cos (* (the float v-line) (/ 32768.0 v-lines))) scale)))
|
||||
(set! (-> next-hz y) (-> current y))
|
||||
(set! (-> next-vt y) (+ (-> offset y) (* (cos (* (the float (+ v-line 1)) (/ 32768.0 v-lines))) scale)))
|
||||
(set! h-line 0)
|
||||
(while (< h-line (the int h-lines))
|
||||
(set! (-> current x) (+ (-> offset x) (* (cos (* (the float h-line) (/ 65536.0 h-lines))) f28-0)))
|
||||
(set! (-> current z) (+ (-> offset z) (* (sin (* (the float h-line) (/ 65536.0 h-lines))) f28-0)))
|
||||
(set! (-> next-hz x) (+ (-> offset x) (* (cos (* (the float (+ h-line 1)) (/ 65536.0 h-lines))) f28-0)))
|
||||
(set! (-> next-hz z) (+ (-> offset z) (* (sin (* (the float (+ h-line 1)) (/ 65536.0 h-lines))) f28-0)))
|
||||
(set! (-> next-vt x) (+ (-> offset x) (* (cos (* (the float h-line) (/ 65536.0 h-lines))) f26-0)))
|
||||
(set! (-> next-vt z) (+ (-> offset z) (* (sin (* (the float h-line) (/ 65536.0 h-lines))) f26-0)))
|
||||
(set! (-> points data num-points quad) (-> current quad))
|
||||
(set! (-> points data (+ num-points 1) quad) (-> next-hz quad))
|
||||
(set! (-> points data (+ num-points 2) quad) (-> next-vt quad))
|
||||
(+! num-points 3)
|
||||
(set! h-line (+ h-line 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> points length) num-points)
|
||||
)
|
||||
points
|
||||
)
|
||||
|
||||
(when *debug-segment*
|
||||
;; A table of 10 debug spheres whose vertical/horizontal line counts range from 0-9 depending on the index.
|
||||
;; For example, the fifth element is a debug sphere whose v-lines and h-lines were set to 4.
|
||||
;;
|
||||
;; Each element is populated on demand from calling add-debug-sphere-from-table and as such this table
|
||||
;; shouldn't be used directly.
|
||||
(define *debug-sphere-table* (the-as (array vector-array) (new 'debug 'boxed-array vector-array 10)))
|
||||
)
|
||||
|
||||
(defun add-debug-sphere-from-table ((bucket bucket-id) (position vector) (radius meters) (color rgba) (table-idx int))
|
||||
"Adds a debug sphere to a bucket.
|
||||
The table-idx specifies the resolution of the sphere and must be >= 0 and <= 9, where 9 would specify
|
||||
the highest resolution available and 0 would draw nothing."
|
||||
(local-vars (sphere-points vector-array) (point-3 vector))
|
||||
(rlet ((vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
(vf3 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
)
|
||||
(if (zero? (-> *debug-sphere-table* table-idx))
|
||||
(set! (-> *debug-sphere-table* table-idx) (make-debug-sphere-table
|
||||
(new 'debug 'vector-array (* (* 3 table-idx) table-idx))
|
||||
(the float table-idx)
|
||||
(the float table-idx)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sphere-points (-> *debug-sphere-table* table-idx))
|
||||
(set! point-3 (the-as vector (new-stack-vector0)))
|
||||
(let ((point-1 (new-stack-vector0))
|
||||
(point-2 (new-stack-vector0))
|
||||
(points (-> sphere-points data))
|
||||
)
|
||||
(.lvf vf1 (&-> position quad))
|
||||
(.mov vf2 radius)
|
||||
(countdown (s4-1 (/ (-> sphere-points length) 3))
|
||||
(.lvf vf3 (&-> points 0 quad))
|
||||
(.lvf vf4 (&-> points 1 quad))
|
||||
(.lvf vf5 (&-> points 2 quad))
|
||||
(set! points (the-as (inline-array vector) (-> points 3)))
|
||||
(.mul.x.vf vf3 vf3 vf2)
|
||||
(.mul.x.vf vf4 vf4 vf2)
|
||||
(.mul.x.vf vf5 vf5 vf2)
|
||||
(.add.vf vf3 vf3 vf1)
|
||||
(.add.vf vf4 vf4 vf1)
|
||||
(.add.vf vf5 vf5 vf1)
|
||||
(.svf (&-> point-1 quad) vf3)
|
||||
(.svf (&-> point-2 quad) vf4)
|
||||
(.svf (&-> point-3 quad) vf5)
|
||||
(add-debug-line #t bucket point-1 point-2 color #f (the-as rgba -1))
|
||||
(add-debug-line #t bucket point-1 point-3 color #f (the-as rgba -1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -712,7 +712,7 @@
|
||||
(-> s5-1 w)
|
||||
(new 'static 'rgba :g #xff :a #x80)
|
||||
)
|
||||
(add-debug-matrix *display-sprite-marks* (bucket-id bucket-324) (-> obj origin) 8192.0)
|
||||
(add-debug-matrix *display-sprite-marks* (bucket-id bucket-324) (-> obj origin) (meters 2.0))
|
||||
)
|
||||
(sphere-in-view-frustum? (the-as sphere s5-1))
|
||||
)
|
||||
|
||||
+1
-1
@@ -156,7 +156,7 @@
|
||||
;; definition (debug) for function joint-mod-debug-draw
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun-debug joint-mod-debug-draw ((arg0 joint-mod))
|
||||
(add-debug-matrix #t (bucket-id bucket-318) (-> arg0 joint bone transform) 8192.0)
|
||||
(add-debug-matrix #t (bucket-id bucket-318) (-> arg0 joint bone transform) (meters 2.0))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
+3
-3
@@ -1006,7 +1006,7 @@
|
||||
*display-target-marks*
|
||||
(bucket-id bucket-318)
|
||||
(-> gp-0 target)
|
||||
819.2
|
||||
(meters 0.2)
|
||||
"look"
|
||||
(new 'static 'rgba :r #xff :g #xff :a #x80)
|
||||
)
|
||||
@@ -1133,7 +1133,7 @@
|
||||
*display-target-marks*
|
||||
(bucket-id bucket-318)
|
||||
(-> gp-0 target)
|
||||
819.2
|
||||
(meters 0.2)
|
||||
"look"
|
||||
(new 'static 'rgba :r #xff :g #xff :a #x80)
|
||||
)
|
||||
@@ -1250,7 +1250,7 @@
|
||||
*display-target-marks*
|
||||
(bucket-id bucket-318)
|
||||
(-> gp-0 target)
|
||||
819.2
|
||||
(meters 0.2)
|
||||
"look"
|
||||
(new 'static 'rgba :r #xff :g #xff :a #x80)
|
||||
)
|
||||
|
||||
+1
@@ -67,6 +67,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 3 of type debug-vertex-stats
|
||||
;; INFO: this function exists in multiple non-identical object files
|
||||
(defmethod inspect debug-vertex-stats ((obj debug-vertex-stats))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for function make-debug-sphere-table
|
||||
;; INFO: Used lq/sq
|
||||
(defun make-debug-sphere-table ((points vector-array) (h-lines float) (v-lines float))
|
||||
(local-vars (next-hz vector) (next-vt vector) (h-line int))
|
||||
(let ((offset (new-stack-vector0))
|
||||
(scale 1.0)
|
||||
(num-points 0)
|
||||
)
|
||||
(set-vector! offset 0.0 0.0 0.0 1.0)
|
||||
(dotimes (v-line (the int v-lines))
|
||||
(let ((f28-0 (* scale (sin (* (the float v-line) (/ 32768.0 v-lines)))))
|
||||
(f26-0 (* scale (sin (* (the float (+ v-line 1)) (/ 32768.0 v-lines)))))
|
||||
(current (new-stack-vector0))
|
||||
)
|
||||
(set! next-hz (new 'stack-no-clear 'vector))
|
||||
(set! (-> next-hz quad) (the-as uint128 0))
|
||||
(set! next-vt (new 'stack-no-clear 'vector))
|
||||
(set! (-> next-vt quad) (the-as uint128 0))
|
||||
(set! (-> current y) (+ (-> offset y) (* (cos (* (the float v-line) (/ 32768.0 v-lines))) scale)))
|
||||
(set! (-> next-hz y) (-> current y))
|
||||
(set! (-> next-vt y) (+ (-> offset y) (* (cos (* (the float (+ v-line 1)) (/ 32768.0 v-lines))) scale)))
|
||||
(set! h-line 0)
|
||||
(while (< h-line (the int h-lines))
|
||||
(set! (-> current x) (+ (-> offset x) (* (cos (* (the float h-line) (/ 65536.0 h-lines))) f28-0)))
|
||||
(set! (-> current z) (+ (-> offset z) (* (sin (* (the float h-line) (/ 65536.0 h-lines))) f28-0)))
|
||||
(set! (-> next-hz x) (+ (-> offset x) (* (cos (* (the float (+ h-line 1)) (/ 65536.0 h-lines))) f28-0)))
|
||||
(set! (-> next-hz z) (+ (-> offset z) (* (sin (* (the float (+ h-line 1)) (/ 65536.0 h-lines))) f28-0)))
|
||||
(set! (-> next-vt x) (+ (-> offset x) (* (cos (* (the float h-line) (/ 65536.0 h-lines))) f26-0)))
|
||||
(set! (-> next-vt z) (+ (-> offset z) (* (sin (* (the float h-line) (/ 65536.0 h-lines))) f26-0)))
|
||||
(set! (-> points data num-points quad) (-> current quad))
|
||||
(set! (-> points data (+ num-points 1) quad) (-> next-hz quad))
|
||||
(set! (-> points data (+ num-points 2) quad) (-> next-vt quad))
|
||||
(+! num-points 3)
|
||||
(set! h-line (+ h-line 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> points length) num-points)
|
||||
)
|
||||
points
|
||||
)
|
||||
|
||||
;; this part is debug only
|
||||
(when *debug-segment*
|
||||
;; definition for symbol *debug-sphere-table*, type (array vector-array)
|
||||
(define *debug-sphere-table* (the-as (array vector-array) (new 'debug 'boxed-array vector-array 10)))
|
||||
|
||||
)
|
||||
;; definition for function add-debug-sphere-from-table
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun add-debug-sphere-from-table ((bucket bucket-id) (position vector) (radius meters) (color rgba) (table-idx int))
|
||||
(local-vars (sphere-points vector-array) (point-3 vector))
|
||||
(rlet ((vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
(vf3 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
)
|
||||
(if (zero? (-> *debug-sphere-table* table-idx))
|
||||
(set! (-> *debug-sphere-table* table-idx) (make-debug-sphere-table
|
||||
(new 'debug 'vector-array (* (* 3 table-idx) table-idx))
|
||||
(the float table-idx)
|
||||
(the float table-idx)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sphere-points (-> *debug-sphere-table* table-idx))
|
||||
(set! point-3 (the-as vector (new-stack-vector0)))
|
||||
(let ((point-1 (new-stack-vector0))
|
||||
(point-2 (new-stack-vector0))
|
||||
(points (-> sphere-points data))
|
||||
)
|
||||
(.lvf vf1 (&-> position quad))
|
||||
(.mov vf2 radius)
|
||||
(countdown (s4-1 (/ (-> sphere-points length) 3))
|
||||
(.lvf vf3 (&-> points 0 quad))
|
||||
(.lvf vf4 (&-> points 1 quad))
|
||||
(.lvf vf5 (&-> points 2 quad))
|
||||
(set! points (the-as (inline-array vector) (-> points 3)))
|
||||
(.mul.x.vf vf3 vf3 vf2)
|
||||
(.mul.x.vf vf4 vf4 vf2)
|
||||
(.mul.x.vf vf5 vf5 vf2)
|
||||
(.add.vf vf3 vf3 vf1)
|
||||
(.add.vf vf4 vf4 vf1)
|
||||
(.add.vf vf5 vf5 vf1)
|
||||
(.svf (&-> point-1 quad) vf3)
|
||||
(.svf (&-> point-2 quad) vf4)
|
||||
(.svf (&-> point-3 quad) vf5)
|
||||
(add-debug-line #t bucket point-1 point-2 color #f (the-as rgba -1))
|
||||
(add-debug-line #t bucket point-1 point-3 color #f (the-as rgba -1))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+1994
File diff suppressed because it is too large
Load Diff
Generated
Vendored
+1
-1
@@ -1283,7 +1283,7 @@
|
||||
(-> s5-1 w)
|
||||
(new 'static 'rgba :g #xff :a #x80)
|
||||
)
|
||||
(add-debug-matrix *display-sprite-marks* (bucket-id bucket-324) (-> obj origin) 8192.0)
|
||||
(add-debug-matrix *display-sprite-marks* (bucket-id bucket-324) (-> obj origin) (meters 2.0))
|
||||
)
|
||||
(sphere-in-view-frustum? (the-as sphere s5-1))
|
||||
)
|
||||
|
||||
+6
-6
@@ -530,9 +530,9 @@
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" obj 'vector4w-2)
|
||||
(format #t "~1Tdata[8] @ #x~X~%" (-> obj data))
|
||||
(format #t "~1Tquad[2] @ #x~X~%" (-> obj data))
|
||||
(format #t "~1Tvector[2] @ #x~X~%" (-> obj data))
|
||||
(format #t "~1Tdata[8] @ #x~X~%" (-> obj vector))
|
||||
(format #t "~1Tquad[2] @ #x~X~%" (-> obj vector))
|
||||
(format #t "~1Tvector[2] @ #x~X~%" (-> obj vector))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
@@ -555,9 +555,9 @@
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" obj 'vector4w-3)
|
||||
(format #t "~1Tdata[12] @ #x~X~%" (-> obj data))
|
||||
(format #t "~1Tquad[3] @ #x~X~%" (-> obj data))
|
||||
(format #t "~1Tvector[3] @ #x~X~%" (-> obj data))
|
||||
(format #t "~1Tdata[12] @ #x~X~%" (-> obj vector))
|
||||
(format #t "~1Tquad[3] @ #x~X~%" (-> obj vector))
|
||||
(format #t "~1Tvector[3] @ #x~X~%" (-> obj vector))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
@@ -41,6 +41,8 @@
|
||||
"(method 3 sprite-aux-list)",
|
||||
// sprite-distort
|
||||
"sprite-draw-distorters", // uses clipping flag.
|
||||
// debug
|
||||
"(method 3 debug-vertex-stats)", // multiple defined
|
||||
// asm, weird vector dot
|
||||
"(method 17 trsqv)",
|
||||
// history - rgba issues
|
||||
|
||||
Reference in New Issue
Block a user