mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04:00
parent
387a394be9
commit
46b83bda2a
|
@ -2,6 +2,7 @@
|
|||
#include "decompiler/ObjectFile/LinkedObjectFile.h"
|
||||
#include "common/log/log.h"
|
||||
#include "AtomicOp.h"
|
||||
#include "decompiler/util/TP_Type.h"
|
||||
#include "decompiler/util/DecompilerTypeSystem.h"
|
||||
#include "decompiler/IR2/bitfields.h"
|
||||
|
||||
|
|
|
@ -495,7 +495,7 @@
|
|||
)
|
||||
|
||||
(defenum bucket-id
|
||||
:type uint32
|
||||
:type int32
|
||||
:bitfield #f
|
||||
|
||||
(tfrag-tex0 5)
|
||||
|
@ -529,8 +529,10 @@
|
|||
(water-tex1 60)
|
||||
;; merc1 61
|
||||
;; generic1 62
|
||||
;; debug spheres? 67
|
||||
(debug-draw0 67)
|
||||
;; debug text 68
|
||||
(debug-draw 68)
|
||||
(debug-draw1 68)
|
||||
)
|
||||
|
||||
(define-extern sinteger type)
|
||||
|
@ -1267,7 +1269,7 @@
|
|||
)
|
||||
|
||||
(deftype vector2h (structure)
|
||||
((data int16 2 :offset-assert 0)
|
||||
((data int16 2 :score -9999 :offset-assert 0)
|
||||
(x int16 :offset 0)
|
||||
(y int16 :offset 2)
|
||||
)
|
||||
|
@ -1290,7 +1292,7 @@
|
|||
)
|
||||
|
||||
(deftype vector3h (structure)
|
||||
((data int16 2 :offset-assert 0) ;; probably a bug, should be 3.
|
||||
((data int16 2 :score -9999 :offset-assert 0) ;; probably a bug, should be 3.
|
||||
(x int16 :offset 0)
|
||||
(y int16 :offset 2)
|
||||
(z int16 :offset-assert 4)
|
||||
|
@ -1301,7 +1303,7 @@
|
|||
)
|
||||
|
||||
(deftype vector2w (structure)
|
||||
((data int32 2 :offset-assert 0)
|
||||
((data int32 2 :score -9999 :offset-assert 0)
|
||||
(x int32 :offset 0)
|
||||
(y int32 :offset 4)
|
||||
)
|
||||
|
@ -1312,7 +1314,7 @@
|
|||
)
|
||||
|
||||
(deftype vector3w (structure)
|
||||
((data int32 3 :do-not-decompile :offset-assert 0)
|
||||
((data int32 3 :score -9999 :offset-assert 0)
|
||||
(x int32 :offset 0)
|
||||
(y int32 :offset 4)
|
||||
(z int32 :offset 8)
|
||||
|
@ -1324,7 +1326,7 @@
|
|||
)
|
||||
|
||||
(deftype vector4w (structure)
|
||||
((data int32 4 :do-not-decompile :offset-assert 0)
|
||||
((data int32 4 :score -9999 :offset-assert 0)
|
||||
(x int32 :offset 0)
|
||||
(y int32 :offset 4)
|
||||
(z int32 :offset 8)
|
||||
|
@ -1338,9 +1340,9 @@
|
|||
)
|
||||
|
||||
(deftype vector4w-2 (structure)
|
||||
((data int32 8 :offset-assert 0)
|
||||
((data int32 8 :score -9999 :offset-assert 0)
|
||||
(quad uint128 2 :offset 0)
|
||||
(vector vector4w 2 :offset 0)
|
||||
(vector vector4w 2 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x20
|
||||
|
@ -1348,9 +1350,9 @@
|
|||
)
|
||||
|
||||
(deftype vector4w-3 (structure)
|
||||
((data int32 12 :offset-assert 0)
|
||||
((data int32 12 :score -9999 :offset-assert 0)
|
||||
(quad uint128 3 :offset 0)
|
||||
(vector vector4w 3 :offset 0)
|
||||
(vector vector4w 3 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x30
|
||||
|
@ -1358,9 +1360,9 @@
|
|||
)
|
||||
|
||||
(deftype vector4w-4 (structure)
|
||||
((data int32 16 :offset-assert 0)
|
||||
((data int32 16 :score -9999 :offset-assert 0)
|
||||
(quad uint128 4 :offset 0)
|
||||
(vector vector4w 4 :offset 0)
|
||||
(vector vector4w 4 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x40
|
||||
|
@ -1400,8 +1402,7 @@
|
|||
)
|
||||
|
||||
(deftype vector (structure)
|
||||
(
|
||||
(data float 4 :do-not-decompile :offset-assert 0)
|
||||
((data float 4 :do-not-decompile :score -9999 :offset-assert 0)
|
||||
(x float :offset 0)
|
||||
(y float :offset 4)
|
||||
(z float :offset 8)
|
||||
|
@ -1695,7 +1696,7 @@
|
|||
(y float :offset-assert 4)
|
||||
(z float :offset-assert 8)
|
||||
(w float :offset-assert 12)
|
||||
(data float 4 :do-not-decompile :offset 0)
|
||||
(data float 4 :score -9999 :offset 0)
|
||||
(vec vector :inline :offset 0)
|
||||
(quad uint128 :offset 0)
|
||||
)
|
||||
|
@ -2057,7 +2058,7 @@
|
|||
(define-extern curve-length function)
|
||||
(define-extern curve-get-pos! function)
|
||||
(define-extern vector-vector-distance-squared (function vector vector float))
|
||||
(define-extern curve-evaluate! function)
|
||||
(define-extern curve-evaluate! (function vector float int int vector int int))
|
||||
(define-extern vector-vector-distance (function vector vector float))
|
||||
(define-extern circle-circle-xz-intersect (function vector vector vector vector int))
|
||||
(define-extern vector-normalize-copy! (function vector vector float vector))
|
||||
|
@ -2093,7 +2094,7 @@
|
|||
(define-extern vector-deg-slerp (function vector vector vector float vector))
|
||||
(define-extern vector-vector-deg-slerp! function) ;; stack spills!
|
||||
(define-extern normal-of-plane (function vector vector vector vector vector))
|
||||
(define-extern vector-3pt-cross! (function vector vector vector vector))
|
||||
(define-extern vector-3pt-cross! (function vector vector vector vector vector))
|
||||
(define-extern closest-pt-in-triangle function) ;; asm branches
|
||||
(define-extern point-in-triangle-cross (function vector vector vector vector vector symbol))
|
||||
(define-extern point-in-plane-<-point+normal! (function vector vector vector vector))
|
||||
|
@ -2944,8 +2945,7 @@
|
|||
|
||||
;; - Symbols
|
||||
|
||||
(define-extern *video-parms* video-parms) ;; unknown type
|
||||
;; unknown type
|
||||
(define-extern *video-parms* video-parms)
|
||||
|
||||
|
||||
;; ----------------------
|
||||
|
@ -5509,7 +5509,9 @@
|
|||
;; - Types
|
||||
|
||||
(deftype drawable-group (drawable)
|
||||
((pad uint8 4))
|
||||
((length int16 :offset 6)
|
||||
(data drawable 1 :offset-assert 32)
|
||||
)
|
||||
:flag-assert #x1200000024
|
||||
)
|
||||
|
||||
|
@ -9989,7 +9991,7 @@
|
|||
;; - Types
|
||||
|
||||
(deftype pos-history (structure)
|
||||
((points uint32 :offset-assert 0)
|
||||
((points (inline-array vector) :offset-assert 0)
|
||||
(num-points int32 :offset-assert 4)
|
||||
(h-first int32 :offset-assert 8)
|
||||
(h-last int32 :offset-assert 12)
|
||||
|
@ -10018,7 +10020,6 @@
|
|||
:method-count-assert 9
|
||||
:size-assert #x4b10
|
||||
:flag-assert #x900004b10
|
||||
;; inspect method is overriden in debug.gc
|
||||
)
|
||||
|
||||
|
||||
|
@ -10158,13 +10159,13 @@
|
|||
(define-extern joint-mod-set-local-callback (function cspace transformq none))
|
||||
(define-extern joint-mod-wheel-callback (function cspace transformq none))
|
||||
(define-extern vector<-cspace! (function vector cspace vector))
|
||||
(define-extern add-debug-text-sphere (function symbol bucket-id vector float string rgba none))
|
||||
(define-extern add-debug-text-sphere (function symbol bucket-id vector float string rgba symbol))
|
||||
(define-extern joint-mod-look-at-handler (function cspace transformq none))
|
||||
(define-extern joint-mod-world-look-at-handler (function cspace transformq none))
|
||||
(define-extern joint-mod-rotate-handler (function cspace transformq none))
|
||||
(define-extern joint-mod-joint-set-handler (function cspace transformq none))
|
||||
(define-extern joint-mod-joint-set*-handler (function cspace transformq none))
|
||||
(define-extern add-debug-matrix (function symbol bucket-id matrix none))
|
||||
(define-extern add-debug-matrix (function symbol bucket-id matrix matrix))
|
||||
(define-extern joint-mod-debug-draw (function joint-mod none))
|
||||
|
||||
;; - Symbols
|
||||
|
@ -11944,8 +11945,7 @@
|
|||
)
|
||||
|
||||
(deftype drawable-tree-instance-tie (drawable-tree)
|
||||
((length int16 :offset 6)
|
||||
(prototypes basic :offset 8)
|
||||
((prototypes basic :offset 8)
|
||||
)
|
||||
:method-count-assert 18
|
||||
:size-assert #x24
|
||||
|
@ -14843,9 +14843,9 @@
|
|||
|
||||
;; - Functions
|
||||
|
||||
(define-extern add-debug-line (function symbol int vector vector rgba symbol int int))
|
||||
(define-extern add-debug-line (function symbol bucket-id vector vector rgba symbol rgba symbol))
|
||||
(define-extern make-debug-sphere-table (function debug-sphere-table none))
|
||||
(define-extern add-debug-sphere-from-table (function int vector vector rgba none))
|
||||
(define-extern add-debug-sphere-from-table (function bucket-id vector float rgba none))
|
||||
|
||||
;; - Symbols
|
||||
|
||||
|
@ -14862,12 +14862,12 @@
|
|||
|
||||
(deftype debug-line (structure)
|
||||
((flags int32 :offset-assert 0)
|
||||
(bucket int32 :offset-assert 4)
|
||||
(bucket bucket-id :offset-assert 4)
|
||||
(v1 vector :inline :offset-assert 16)
|
||||
(v2 vector :inline :offset-assert 32)
|
||||
(color uint32 :offset-assert 48)
|
||||
(mode basic :offset-assert 52)
|
||||
(color2 uint32 :offset-assert 56)
|
||||
(color rgba :offset-assert 48)
|
||||
(mode symbol :offset-assert 52)
|
||||
(color2 rgba :offset-assert 56)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x3c
|
||||
|
@ -14876,11 +14876,11 @@
|
|||
|
||||
(deftype debug-text-3d (structure)
|
||||
((flags int32 :offset-assert 0)
|
||||
(bucket int32 :offset-assert 4)
|
||||
(bucket bucket-id :offset-assert 4)
|
||||
(pos vector :inline :offset-assert 16)
|
||||
(color uint64 :offset-assert 32)
|
||||
(offset vector2h :inline :offset-assert 40)
|
||||
(str basic :offset-assert 44)
|
||||
(str string :offset-assert 44)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x30
|
||||
|
@ -14898,50 +14898,50 @@
|
|||
|
||||
;; - Functions
|
||||
|
||||
(define-extern debug-set-camera-pos-rot! function)
|
||||
(define-extern drawable-frag-count function)
|
||||
(define-extern add-debug-light function)
|
||||
(define-extern add-debug-text-3d function)
|
||||
(define-extern add-debug-x function)
|
||||
(define-extern add-debug-curve function)
|
||||
(define-extern add-debug-sphere (function symbol int vector float int int))
|
||||
(define-extern get-debug-text-3d function)
|
||||
(define-extern internal-draw-debug-text-3d function)
|
||||
(define-extern get-debug-line function)
|
||||
(define-extern internal-draw-debug-line function)
|
||||
(define-extern draw-string function)
|
||||
(define-extern transform-float-point function)
|
||||
(define-extern add-debug-point function)
|
||||
(define-extern add-debug-outline-triangle function)
|
||||
(define-extern add-debug-triangle-normal function)
|
||||
(define-extern add-debug-flat-triangle function)
|
||||
(define-extern debug-reset-buffers function)
|
||||
(define-extern debug-draw-buffers function)
|
||||
(define-extern add-debug-line2d function)
|
||||
(define-extern add-debug-box function)
|
||||
(define-extern add-debug-sphere-with-transform function)
|
||||
(define-extern add-debug-spheres function)
|
||||
(define-extern add-debug-circle function)
|
||||
(define-extern add-debug-rot-matrix function)
|
||||
(define-extern add-debug-yrot-vector function)
|
||||
(define-extern add-debug-arc function)
|
||||
(define-extern add-debug-curve2 function)
|
||||
(define-extern add-debug-points function)
|
||||
(define-extern debug-percent-bar function)
|
||||
(define-extern debug-pad-display function)
|
||||
(define-extern add-debug-lights function)
|
||||
(define-extern history-init function)
|
||||
(define-extern history-draw-and-update function)
|
||||
(define-extern dma-timeout-cam function)
|
||||
(define-extern display-file-info function)
|
||||
(define-extern debug-set-camera-pos-rot! (function vector matrix int))
|
||||
(define-extern drawable-frag-count (function drawable int))
|
||||
(define-extern add-debug-light (function symbol bucket-id light vector string symbol))
|
||||
(define-extern add-debug-text-3d (function symbol bucket-id string vector rgba vector2h symbol))
|
||||
(define-extern add-debug-x (function symbol bucket-id vector rgba symbol))
|
||||
(define-extern add-debug-curve (function symbol bucket-id pointer int vector int rgba symbol))
|
||||
(define-extern add-debug-sphere (function symbol bucket-id vector float rgba symbol))
|
||||
(define-extern get-debug-text-3d (function debug-text-3d))
|
||||
(define-extern internal-draw-debug-text-3d (function bucket-id string vector rgba vector2h pointer))
|
||||
(define-extern get-debug-line (function debug-line))
|
||||
(define-extern internal-draw-debug-line (function bucket-id vector vector rgba symbol rgba object))
|
||||
(define-extern draw-string (function string dma-buffer int))
|
||||
(define-extern transform-float-point (function vector vector vector))
|
||||
(define-extern add-debug-point (function symbol bucket-id vector symbol)) ;; unused
|
||||
(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-reset-buffers (function symbol))
|
||||
(define-extern debug-draw-buffers (function symbol))
|
||||
(define-extern add-debug-line2d (function symbol bucket-id vector vector vector symbol))
|
||||
(define-extern add-debug-box (function symbol bucket-id vector vector rgba symbol))
|
||||
(define-extern add-debug-sphere-with-transform (function symbol bucket-id vector float matrix rgba symbol))
|
||||
(define-extern add-debug-spheres (function symbol bucket-id (pointer float) int rgba symbol))
|
||||
(define-extern add-debug-circle (function symbol bucket-id vector float rgba matrix symbol))
|
||||
(define-extern add-debug-rot-matrix (function symbol bucket-id matrix vector matrix))
|
||||
(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-curve2 (function symbol bucket-id curve rgba symbol))
|
||||
(define-extern add-debug-points (function symbol bucket-id (inline-array vector) int rgba float int symbol)) ;; unused
|
||||
(define-extern debug-percent-bar (function symbol bucket-id int int float rgba symbol))
|
||||
(define-extern debug-pad-display (function cpad-info symbol)) ;; unused
|
||||
(define-extern add-debug-lights (function symbol bucket-id (inline-array light) vector symbol))
|
||||
(define-extern history-init (function pos-history int pos-history))
|
||||
(define-extern history-draw-and-update (function pos-history int vector symbol))
|
||||
(define-extern dma-timeout-cam (function int))
|
||||
(define-extern display-file-info (function int))
|
||||
|
||||
;; - Unknowns
|
||||
|
||||
;;(define-extern add-debug-vector (function symbol int trajectory ? float float))
|
||||
;;(define-extern *debug-lines* object) ;; unknown type
|
||||
;;(define-extern *debug-lines-trk* object) ;; unknown type
|
||||
;;(define-extern *debug-text-3ds* object) ;; unknown type
|
||||
;;(define-extern *debug-text-3d-trk* object) ;; unknown type
|
||||
(define-extern add-debug-vector (function symbol bucket-id vector vector float 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)
|
||||
|
||||
|
||||
;; ----------------------
|
||||
|
|
|
@ -560,5 +560,26 @@
|
|||
|
||||
"navigate-h": [
|
||||
["L20", "float", true]
|
||||
],
|
||||
|
||||
"debug": [
|
||||
["L221", "float", true],
|
||||
["L217", "float", true],
|
||||
["L179", "vector2h", true],
|
||||
["L210", "float", true],
|
||||
["L209", "float", true],
|
||||
["L176", "(inline-array vector)", true, 8],
|
||||
["L180", "vector", true],
|
||||
["L181", "vector", true],
|
||||
["L182", "vector", true],
|
||||
["L183", "vector", true],
|
||||
["L223", "rgba", true],
|
||||
["L225", "rgba", true],
|
||||
["L224", "rgba", true],
|
||||
["L222", "rgba", true],
|
||||
["L226", "rgba", true],
|
||||
["L227", "uint64", true],
|
||||
["L228", "uint64", true],
|
||||
["L229", "uint64", true]
|
||||
]
|
||||
}
|
||||
|
|
|
@ -356,7 +356,25 @@
|
|||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 24 actor-link-info)": [
|
||||
"(method 24 actor-link-info)": [
|
||||
[16, "event-message-block"]
|
||||
]
|
||||
],
|
||||
|
||||
"internal-draw-debug-line": [[16, "vector4w-2"], [48, "vector4w-2"]],
|
||||
"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"]],
|
||||
"add-debug-point": [[16, "vector4w-2"]],
|
||||
"add-debug-line2d": [[16, "vector4w"], [32, "vector4w"]],
|
||||
"add-debug-box": [[16, "vector"], [32, "vector"]],
|
||||
"add-debug-x": [[16, "vector"], [32, "vector"]],
|
||||
"add-debug-sphere-with-transform": [[16, "vector"]],
|
||||
"add-debug-circle": [[16, "vector"], [32, "vector"]],
|
||||
"add-debug-vector": [[16, "vector"]],
|
||||
"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"]],
|
||||
"dma-timeout-cam": [[16, "vector"], [32, "matrix"]]
|
||||
}
|
||||
|
|
|
@ -635,5 +635,56 @@
|
|||
|
||||
"(method 0 nav-control)": [
|
||||
[17, "t9", "(function string none)"]
|
||||
],
|
||||
|
||||
"add-debug-point": [
|
||||
[125, "a3", "pointer"],
|
||||
[[27, 144], "a0", "(pointer uint64)"],
|
||||
[[147, 150], "a0", "dma-packet"],
|
||||
[[31, 35], "a3", "dma-packet"],
|
||||
[[41, 44], "a3", "gs-gif-tag"],
|
||||
[[61, 65], "a3", "vector4w-2"],
|
||||
[[81, 85], "a3", "vector4w-2"],
|
||||
[[98, 102], "a3", "vector4w-2"],
|
||||
[[118, 122], "a1", "vector4w-2"]
|
||||
],
|
||||
"internal-draw-debug-line": [
|
||||
[[95, 101], "a3", "dma-packet"],
|
||||
[[104, 110], "a3", "gs-gif-tag"],
|
||||
[[212, 225], "a1", "(inline-array vector4w-2)"],
|
||||
[228, "a3", "pointer"],
|
||||
[[93, 246], "a0", "(pointer uint64)"],
|
||||
[[250, 253], "a0", "dma-packet"],
|
||||
[[3, 158], "s2", "rgba"],
|
||||
[[5, 204], "s5", "rgba"]
|
||||
],
|
||||
"add-debug-flat-triangle": [
|
||||
[[55, 61], "a3", "dma-packet"],
|
||||
[[64, 70], "a3", "gs-gif-tag"],
|
||||
[[93, 112], "a3", "(inline-array vector4w-3)"],
|
||||
[[53, 133], "a0", "(pointer uint64)"],
|
||||
[115, "a1", "pointer"],
|
||||
[[135, 140], "a0", "dma-packet"]
|
||||
],
|
||||
"add-debug-line2d": [
|
||||
[[58, 64], "a2", "dma-packet"],
|
||||
[[67, 73], "a2", "gs-gif-tag"],
|
||||
[[76, 81], "a2", "(inline-array vector4w)"],
|
||||
[[84, 89], "a2", "(inline-array vector4w)"],
|
||||
[[56, 110], "a0", "(pointer uint64)"],
|
||||
[92, "a1", "pointer"],
|
||||
[[112, 117], "v1", "dma-packet"]
|
||||
],
|
||||
"debug-percent-bar": [
|
||||
[[32, 43], "v1", "dma-packet"]
|
||||
],
|
||||
"debug-pad-display": [
|
||||
[[70, 75], "v1", "dma-packet"]
|
||||
],
|
||||
"internal-draw-debug-text-3d": [
|
||||
[[54, 59], "v1", "dma-packet"]
|
||||
],
|
||||
"drawable-frag-count": [
|
||||
[[14, 20], "s5", "drawable-group"]
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1974,7 +1974,66 @@
|
|||
"(method 0 nav-control)": {
|
||||
"args":["allocation", "type-to-make", "shape", "sphere-count", "nearest-y-threshold-default"],
|
||||
"vars": {"s5-0":["obj", "nav-control"], "a0-3":"ent"}
|
||||
}
|
||||
},
|
||||
|
||||
"add-debug-point": {
|
||||
"vars": {
|
||||
"a0-6":["a0-6", "(pointer uint64)"],
|
||||
"a0-7":["a0-7", "dma-packet"],
|
||||
"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"]
|
||||
}
|
||||
},
|
||||
"internal-draw-debug-line": {
|
||||
"vars": {
|
||||
"s2-0":["s2-0", "rgba"],
|
||||
"s5-0":["s5-0", "rgba"],
|
||||
"a3-1":["a3-1", "dma-packet"],
|
||||
"a3-3":["a3-3", "gs-gif-tag"],
|
||||
"a1-43":["a1-43", "(inline-array vector4w-2)"],
|
||||
"a0-31":["a0-31", "(pointer uint64)"],
|
||||
"a0-32":["a0-32", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"add-debug-flat-triangle": {
|
||||
"vars": {
|
||||
"a3-1":["a3-1", "dma-packet"],
|
||||
"a3-3":["a3-3", "gs-gif-tag"],
|
||||
"a3-5":["a3-5", "(inline-array vector4w-3)"],
|
||||
"a0-9":["a0-9", "(pointer uint64)"],
|
||||
"a0-10":["a0-10", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"add-debug-line2d": {
|
||||
"vars": {
|
||||
"a2-3":["a2-3", "dma-packet"],
|
||||
"a2-5":["a2-5", "gs-gif-tag"],
|
||||
"a2-7":["a2-7", "(inline-array vector4w)"],
|
||||
"a2-9":["a2-9", "(inline-array vector4w)"],
|
||||
"a0-20":["a0-20", "(pointer uint64)"],
|
||||
"v1-10":["v1-10", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"debug-percent-bar": {
|
||||
"vars": {
|
||||
"v1-5":["v1-5", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"debug-pad-display": {
|
||||
"vars": {
|
||||
"v1-12":["v1-12", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"internal-draw-debug-text-3d": {
|
||||
"vars": {
|
||||
"v1-11":["v1-11", "dma-packet"]
|
||||
}
|
||||
},
|
||||
"add-debug-light": { "vars": { "s1-0":["s1-0", "rgba"]} }
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -73,7 +73,8 @@ goos::Object decompile_at_label_with_hint(const LabelType& hint,
|
|||
}
|
||||
|
||||
throw std::runtime_error(
|
||||
fmt::format("Type {} is not yet supported by the data decompiler.", hint.type_name));
|
||||
fmt::format("Type `{}` with length {} is not yet supported by the data decompiler.",
|
||||
hint.type_name, *hint.array_size));
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
|
@ -98,4 +98,5 @@
|
|||
|
||||
(define-perm *cam-layout* symbol #f)
|
||||
|
||||
(defun-extern debug-set-camera-pos-rot! vector matrix int)
|
||||
)
|
||||
|
|
|
@ -508,29 +508,6 @@
|
|||
)
|
||||
)
|
||||
|
||||
;; In the original game, init-for-transform stashed a bunch of stuff in registers, to be used by other functions.
|
||||
;; In OpenGOAL, this seems risky so we're going to back up this manually:
|
||||
|
||||
(deftype transform-regs (structure)
|
||||
((vf1 uint128)
|
||||
(vf2 uint128)
|
||||
(vf3 uint128)
|
||||
(vf4 uint128)
|
||||
(vf17 uint128)
|
||||
(vf18 uint128)
|
||||
(vf19 uint128)
|
||||
(vf23 uint128)
|
||||
(vf24 uint128)
|
||||
(vf25 uint128)
|
||||
(vf26 uint128)
|
||||
(vf27 uint128)
|
||||
(vf28 uint128)
|
||||
(vf29 uint128)
|
||||
)
|
||||
)
|
||||
|
||||
(define *transform-regs* (new 'static 'transform-regs))
|
||||
|
||||
(defun init-for-transform ((arg0 matrix))
|
||||
(rlet ((vf1 :class vf)
|
||||
(vf17 :class vf)
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
|
||||
(deftype pos-history (structure)
|
||||
((points uint32 :offset-assert 0)
|
||||
((points (inline-array vector) :offset-assert 0)
|
||||
(num-points int32 :offset-assert 4)
|
||||
(h-first int32 :offset-assert 8)
|
||||
(h-last int32 :offset-assert 12)
|
||||
|
@ -28,7 +28,6 @@
|
|||
:flag-assert #x900000020
|
||||
)
|
||||
|
||||
|
||||
(deftype debug-vertex-stats (basic)
|
||||
((length int32 :offset-assert 4)
|
||||
(pos-count int32 :offset-assert 8)
|
||||
|
@ -37,11 +36,12 @@
|
|||
:method-count-assert 9
|
||||
:size-assert #x4b10
|
||||
:flag-assert #x900004b10
|
||||
;; inspect method is overriden in debug.gc
|
||||
)
|
||||
|
||||
|
||||
(define-extern add-debug-matrix (function symbol bucket-id matrix none))
|
||||
(define-extern add-debug-text-sphere (function symbol bucket-id vector float string rgba none))
|
||||
(define-extern add-debug-matrix (function symbol bucket-id matrix matrix))
|
||||
(define-extern add-debug-text-sphere (function symbol bucket-id vector float string rgba symbol))
|
||||
;; TODO - for trajectory.gc
|
||||
(define-extern add-debug-line (function symbol int vector vector rgba symbol int int))
|
||||
(define-extern add-debug-line (function symbol bucket-id vector vector rgba symbol rgba symbol))
|
||||
|
||||
(defun-extern add-debug-sphere symbol bucket-id vector float rgba symbol)
|
|
@ -96,7 +96,7 @@
|
|||
;; Used lq/sq
|
||||
(defun
|
||||
add-debug-sphere-from-table
|
||||
((arg0 int) (arg1 vector) (arg2 vector) (arg3 rgba))
|
||||
((arg0 bucket-id) (arg1 vector) (arg2 float) (arg3 rgba))
|
||||
(rlet ((vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
(vf3 :class vf)
|
||||
|
@ -124,8 +124,8 @@
|
|||
(.svf (&-> s4-0 quad) vf3)
|
||||
(.svf (&-> s3-0 quad) vf4)
|
||||
(.svf (&-> s2-0 quad) vf5)
|
||||
(add-debug-line #t arg0 s4-0 s3-0 arg3 #f -1)
|
||||
(add-debug-line #t arg0 s4-0 s2-0 arg3 #f -1)
|
||||
(add-debug-line #t arg0 s4-0 s3-0 arg3 #f (the rgba -1))
|
||||
(add-debug-line #t arg0 s4-0 s2-0 arg3 #f (the rgba -1))
|
||||
)
|
||||
)
|
||||
(let ((v0-2 0))
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -199,6 +199,48 @@
|
|||
:flag-assert #x900000008
|
||||
)
|
||||
|
||||
|
||||
(defenum bucket-id
|
||||
:type int32
|
||||
:bitfield #f
|
||||
|
||||
(tfrag-tex0 5)
|
||||
;; merc0 10
|
||||
;; generic0 11
|
||||
|
||||
(tfrag-tex1 12)
|
||||
;; merc1 17
|
||||
;; generic1 18
|
||||
|
||||
(shrub-tex0 19)
|
||||
|
||||
(shrub-tex1 25)
|
||||
|
||||
(alpha-tex0 31)
|
||||
|
||||
(alpha-tex1 38)
|
||||
|
||||
(pris-tex0 48)
|
||||
;; merc0 49
|
||||
;; generic0 50
|
||||
|
||||
(pris-tex1 51)
|
||||
;; merc1 52
|
||||
;; generic1 53
|
||||
|
||||
(water-tex0 57)
|
||||
;; merc0 58 (+ default)
|
||||
;; generic0 59 (+ default)
|
||||
|
||||
(water-tex1 60)
|
||||
;; merc1 61
|
||||
;; generic1 62
|
||||
;; debug spheres? 67
|
||||
(debug-draw0 67)
|
||||
;; debug text 68
|
||||
(debug-draw1 68)
|
||||
)
|
||||
|
||||
;; A DMA bucket is a way of organizing data within a dma buffer.
|
||||
;; The buckets themselves live inside in the dma buffer.
|
||||
;; the addr field of their tag should point to the next bucket.
|
||||
|
|
|
@ -7,7 +7,9 @@
|
|||
|
||||
|
||||
(deftype drawable-group (drawable)
|
||||
((pad uint8 4)) ;; todo - what's here?
|
||||
((length int16 :offset 6)
|
||||
(data drawable 1 :offset-assert 32)
|
||||
)
|
||||
:flag-assert #x1200000024
|
||||
)
|
||||
|
||||
|
|
|
@ -11,3 +11,7 @@
|
|||
(define-extern forward-up-nopitch->quaternion (function quaternion vector vector quaternion))
|
||||
(define-extern forward-up->quaternion (function quaternion vector vector quaternion))
|
||||
(define-extern vector-flatten! (function vector vector vector vector))
|
||||
|
||||
;; TODO
|
||||
(define-extern vector-3pt-cross! (function vector vector vector vector vector))
|
||||
(define-extern curve-evaluate! (function vector float int int vector int int))
|
|
@ -663,3 +663,5 @@
|
|||
)
|
||||
|
||||
|
||||
(defun-extern draw-string string dma-buffer int)
|
||||
|
||||
|
|
|
@ -48,9 +48,7 @@
|
|||
)
|
||||
|
||||
(deftype drawable-tree-instance-tie (drawable-tree)
|
||||
((length int16 :offset 6)
|
||||
(prototypes basic :offset 8)
|
||||
;; todo - maybe another data field
|
||||
((prototypes basic :offset 8)
|
||||
)
|
||||
:method-count-assert 18
|
||||
:size-assert #x24
|
||||
|
|
|
@ -5,44 +5,6 @@
|
|||
;; name in dgo: level-h
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
(defenum bucket-id
|
||||
:type uint32
|
||||
:bitfield #f
|
||||
|
||||
(tfrag-tex0 5)
|
||||
;; merc0 10
|
||||
;; generic0 11
|
||||
|
||||
(tfrag-tex1 12)
|
||||
;; merc1 17
|
||||
;; generic1 18
|
||||
|
||||
(shrub-tex0 19)
|
||||
|
||||
(shrub-tex1 25)
|
||||
|
||||
(alpha-tex0 31)
|
||||
|
||||
(alpha-tex1 38)
|
||||
|
||||
(pris-tex0 48)
|
||||
;; merc0 49
|
||||
;; generic0 50
|
||||
|
||||
(pris-tex1 51)
|
||||
;; merc1 52
|
||||
;; generic1 53
|
||||
|
||||
(water-tex0 57)
|
||||
;; merc0 58 (+ default)
|
||||
;; generic0 59 (+ default)
|
||||
|
||||
(water-tex1 60)
|
||||
;; merc1 61
|
||||
;; generic1 62
|
||||
;; debug text 68
|
||||
(debug-draw 68)
|
||||
)
|
||||
|
||||
;; Information related to visibility data for a level.
|
||||
;; Unclear why there are 8 of these per level.
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
(y float :offset-assert 4)
|
||||
(z float :offset-assert 8)
|
||||
(w float :offset-assert 12)
|
||||
(data float 4 :do-not-decompile :offset 0)
|
||||
(data float 4 :score -9999 :offset 0)
|
||||
(vec vector :inline :offset 0)
|
||||
(quad uint128 :offset 0)
|
||||
)
|
||||
|
|
|
@ -186,7 +186,7 @@
|
|||
|
||||
;; Vector of 3 signed words
|
||||
(deftype vector3w (structure)
|
||||
((data int32 3 :do-not-decompile :offset-assert 0)
|
||||
((data int32 3 :score -9999 :offset-assert 0)
|
||||
(x int32 :offset 0)
|
||||
(y int32 :offset 4)
|
||||
(z int32 :offset 8)
|
||||
|
@ -199,7 +199,7 @@
|
|||
|
||||
;; Vector of 4 signed words
|
||||
(deftype vector4w (structure)
|
||||
((data int32 4 :do-not-decompile :offset-assert 0)
|
||||
((data int32 4 :score -9999 :offset-assert 0)
|
||||
(x int32 :offset 0)
|
||||
(y int32 :offset 4)
|
||||
(z int32 :offset 8)
|
||||
|
@ -226,7 +226,7 @@
|
|||
(deftype vector4w-2 (structure)
|
||||
((data int32 8 :offset-assert 0)
|
||||
(quad uint128 2 :offset 0)
|
||||
(vector vector4w 2 :offset 0)
|
||||
(vector vector4w 2 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x20
|
||||
|
@ -237,7 +237,7 @@
|
|||
(deftype vector4w-3 (structure)
|
||||
((data int32 12 :offset-assert 0)
|
||||
(quad uint128 3 :offset 0)
|
||||
(vector vector4w 3 :offset 0)
|
||||
(vector vector4w 3 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x30
|
||||
|
@ -248,7 +248,7 @@
|
|||
(deftype vector4w-4 (structure)
|
||||
((data int32 16 :offset-assert 0)
|
||||
(quad uint128 4 :offset 0)
|
||||
(vector vector4w 4 :offset 0)
|
||||
(vector vector4w 4 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x40
|
||||
|
@ -296,7 +296,7 @@
|
|||
|
||||
;; Vector of 4 floats. Shortened to "vector" because it is commonly used.
|
||||
(deftype vector (structure)
|
||||
((data float 4 :do-not-decompile :offset-assert 0)
|
||||
((data float 4 :do-not-decompile :score -9999 :offset-assert 0)
|
||||
(x float :offset 0)
|
||||
(y float :offset 4)
|
||||
(z float :offset 8)
|
||||
|
@ -498,11 +498,6 @@
|
|||
(set! (-> vec w) ,wv)))
|
||||
)
|
||||
|
||||
(defmacro init-vf0-vector ()
|
||||
"Initializes the VF0 vector which is a constant vector in the VU set to <0,0,0,1>"
|
||||
`(.lvf vf0 (new 'static 'vector :x 0.0 :y 0.0 :z 0.0 :w 1.0))
|
||||
)
|
||||
|
||||
(defun vector-dot ((a vector) (b vector))
|
||||
"Take the dot product of two vectors.
|
||||
Only does the x, y, z compoments.
|
||||
|
|
|
@ -148,7 +148,7 @@
|
|||
((f0-1 (* (-> obj time) (/ (+ 1.0 (the float s2-0)) (the float s3-0)))))
|
||||
((method-of-type trajectory TODO-RENAME-9) obj f0-1 s4-0)
|
||||
)
|
||||
(add-debug-line #t 68 s5-0 s4-0 (new 'static 'rgba :r #xff :a #x80) #f -1)
|
||||
(add-debug-line #t (the bucket-id 68) s5-0 s4-0 (new 'static 'rgba :r #xff :a #x80) #f (the rgba -1))
|
||||
)
|
||||
)
|
||||
(let ((v0-2 0))
|
||||
|
|
|
@ -61,3 +61,103 @@
|
|||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; In the original game, init-for-transform stashed a bunch of stuff in registers, to be used by other functions.
|
||||
;; In OpenGOAL, this seems risky so we're going to back up this manually.
|
||||
;; This does mean this file now has code, but it's not a big deal:
|
||||
(deftype transform-regs (structure)
|
||||
;; Eventually we might want to actually name some of these fields to be more comprehensible?
|
||||
(;; vf0 not included!
|
||||
(vf1 uint128)
|
||||
(vf2 uint128)
|
||||
(vf3 uint128)
|
||||
(vf4 uint128)
|
||||
(vf5 uint128)
|
||||
(vf6 uint128)
|
||||
(vf7 uint128)
|
||||
(vf8 uint128)
|
||||
(vf9 uint128)
|
||||
(vf10 uint128)
|
||||
(vf11 uint128)
|
||||
(vf12 uint128)
|
||||
(vf13 uint128)
|
||||
(vf14 uint128)
|
||||
(vf15 uint128)
|
||||
(vf16 uint128)
|
||||
(vf17 uint128)
|
||||
(vf18 uint128)
|
||||
(vf19 uint128)
|
||||
(vf20 uint128)
|
||||
(vf21 uint128)
|
||||
(vf22 uint128)
|
||||
(vf23 uint128)
|
||||
(vf24 uint128)
|
||||
(vf25 uint128)
|
||||
(vf26 uint128)
|
||||
(vf27 uint128)
|
||||
(vf28 uint128)
|
||||
(vf29 uint128)
|
||||
(vf30 uint128)
|
||||
(vf31 uint128)
|
||||
)
|
||||
)
|
||||
|
||||
(define *transform-regs* (new 'static 'transform-regs))
|
||||
|
||||
(defmacro init-vf0-vector ()
|
||||
"Initializes the VF0 vector which is a constant vector in the VU set to <0,0,0,1>"
|
||||
`(.lvf vf0 (new 'static 'vector :x 0.0 :y 0.0 :z 0.0 :w 1.0))
|
||||
)
|
||||
|
||||
(defmacro with-vf0 (&rest body)
|
||||
"Macro for using the ps2-style vf0 register."
|
||||
|
||||
`(rlet ((vf0 :class vf))
|
||||
(init-vf0-vector)
|
||||
,@body
|
||||
)
|
||||
)
|
||||
|
||||
(defmacro load-vf (reg)
|
||||
"Load a vf from the preserved vf registers"
|
||||
`(.lvf ,reg (&-> *transform-regs* ,reg))
|
||||
)
|
||||
|
||||
(defmacro save-vf (reg)
|
||||
"Save a vf to the preserved vf registers"
|
||||
`(.svf (&-> *transform-regs* ,reg) ,reg)
|
||||
)
|
||||
|
||||
(defmacro with-vf (regs &key (rw 'read) &rest body)
|
||||
"Macro for using the specified ps2-style vf registers. These are preserved in *transform-regs*
|
||||
Each register name in regs must be a valid vf register name. vf0 CANNOT be used! Use with-vf0 for that instead.
|
||||
rw specifies the read/write mode:
|
||||
'read means the registers will be read from the preserved registers. This is the default
|
||||
'write means the registers will be written to the preserved registers at the end
|
||||
'readwrite (or 'rw) means both
|
||||
#f means neither, turning this into a fancy macro around rlet."
|
||||
|
||||
`(rlet (,@(apply (lambda (x) `(,x :class vf)) regs))
|
||||
|
||||
,@(if (or (eq? rw ''read) (eq? rw ''readwrite) (eq? rw ''rw))
|
||||
(apply (lambda (y)
|
||||
`(load-vf ,y)
|
||||
) regs)
|
||||
'()
|
||||
)
|
||||
|
||||
,@body
|
||||
|
||||
;; this will mess up the return value!
|
||||
,@(if (or (eq? rw ''write) (eq? rw ''readwrite) (eq? rw ''rw))
|
||||
(apply (lambda (y)
|
||||
`(save-vf ,y)
|
||||
) regs)
|
||||
'()
|
||||
)
|
||||
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
(defun-debug joint-mod-debug-draw ((mod joint-mod))
|
||||
"Draw a frame at the bone."
|
||||
;; I believe this draws a set of coordinate axes that represent the transformation matrix.
|
||||
(add-debug-matrix #t (bucket-id debug-draw) (-> mod joint bone transform))
|
||||
(add-debug-matrix #t (bucket-id debug-draw1) (-> mod joint bone transform))
|
||||
(none)
|
||||
)
|
||||
|
||||
|
@ -460,7 +460,7 @@
|
|||
(if (and (= (-> gp-0 process type) target) (!= (-> gp-0 blend) 0.0))
|
||||
(add-debug-text-sphere
|
||||
*display-target-marks*
|
||||
(bucket-id debug-draw)
|
||||
(bucket-id debug-draw1)
|
||||
(-> gp-0 target)
|
||||
819.2
|
||||
"look"
|
||||
|
@ -589,7 +589,7 @@
|
|||
(if (and (= (-> gp-0 process type) target) (!= (-> gp-0 blend) 0.0))
|
||||
(add-debug-text-sphere
|
||||
*display-target-marks*
|
||||
(bucket-id debug-draw)
|
||||
(bucket-id debug-draw1)
|
||||
(-> gp-0 target)
|
||||
819.2
|
||||
"look"
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
;; ENUMS
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; bitfield enum to indicate proprties about a process-tree
|
||||
;; bitfield enum to indicate properties about a process-tree
|
||||
(defenum process-mask
|
||||
:bitfield #t :type uint32
|
||||
(execute 0) ;; 1
|
||||
|
|
|
@ -50,7 +50,7 @@ Val* Compiler::compile_seval(const goos::Object& form, const goos::Object& rest,
|
|||
m_goos.eval_with_rewind(o, m_goos.global_environment.as_env());
|
||||
});
|
||||
} catch (std::runtime_error& e) {
|
||||
throw_compiler_error(form, "Error while evaluating GOOS: ", e.what());
|
||||
throw_compiler_error(form, "Error while evaluating GOOS: {}", e.what());
|
||||
}
|
||||
return get_none();
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@echo off
|
||||
cd ..\..
|
||||
out\build\Release\bin\offline-test --dump-mode iso_data\jak1\
|
||||
out\build\Release\bin\offline-test iso_data\jak1\
|
||||
pause
|
|
@ -592,6 +592,47 @@
|
|||
`(.lvf vf0 (new 'static 'vector :x 0.0 :y 0.0 :z 0.0 :w 1.0))
|
||||
)
|
||||
|
||||
(defenum bucket-id
|
||||
:type int32
|
||||
:bitfield #f
|
||||
|
||||
(tfrag-tex0 5)
|
||||
;; merc0 10
|
||||
;; generic0 11
|
||||
|
||||
(tfrag-tex1 12)
|
||||
;; merc1 17
|
||||
;; generic1 18
|
||||
|
||||
(shrub-tex0 19)
|
||||
|
||||
(shrub-tex1 25)
|
||||
|
||||
(alpha-tex0 31)
|
||||
|
||||
(alpha-tex1 38)
|
||||
|
||||
(pris-tex0 48)
|
||||
;; merc0 49
|
||||
;; generic0 50
|
||||
|
||||
(pris-tex1 51)
|
||||
;; merc1 52
|
||||
;; generic1 53
|
||||
|
||||
(water-tex0 57)
|
||||
;; merc0 58 (+ default)
|
||||
;; generic0 59 (+ default)
|
||||
|
||||
(water-tex1 60)
|
||||
;; merc1 61
|
||||
;; generic1 62
|
||||
;; debug spheres? 67
|
||||
(debug-draw0 67)
|
||||
;; debug text 68
|
||||
(debug-draw1 68)
|
||||
)
|
||||
|
||||
;; TODO - for trajectory.gc
|
||||
(declare-type trajectory structure)
|
||||
(deftype rgba (uint32)
|
||||
|
@ -602,7 +643,7 @@
|
|||
)
|
||||
:flag-assert #x900000004
|
||||
)
|
||||
(define-extern add-debug-line (function symbol int vector vector rgba symbol int int))
|
||||
(define-extern add-debug-line (function symbol bucket-id vector vector rgba symbol rgba symbol))
|
||||
|
||||
;; early declarations for draw-control
|
||||
(declare-type ripple-control basic)
|
||||
|
@ -613,7 +654,7 @@
|
|||
(declare-type merc-ctrl basic)
|
||||
|
||||
;; TODO - for ripple
|
||||
(define-extern add-debug-sphere (function symbol int vector float int int))
|
||||
(define-extern add-debug-sphere (function symbol bucket-id vector float rgba symbol))
|
||||
|
||||
(defconstant SYM_TO_STRING_OFFSET #xff38)
|
||||
(defmacro symbol->string (sym)
|
||||
|
@ -758,50 +799,11 @@
|
|||
(reset 7) ;; 128
|
||||
)
|
||||
|
||||
(defenum bucket-id
|
||||
:type uint32
|
||||
:bitfield #f
|
||||
|
||||
(tfrag-tex0 5)
|
||||
;; merc0 10
|
||||
;; generic0 11
|
||||
|
||||
(tfrag-tex1 12)
|
||||
;; merc1 17
|
||||
;; generic1 18
|
||||
|
||||
(shrub-tex0 19)
|
||||
|
||||
(shrub-tex1 25)
|
||||
|
||||
(alpha-tex0 31)
|
||||
|
||||
(alpha-tex1 38)
|
||||
|
||||
(pris-tex0 48)
|
||||
;; merc0 49
|
||||
;; generic0 50
|
||||
|
||||
(pris-tex1 51)
|
||||
;; merc1 52
|
||||
;; generic1 53
|
||||
|
||||
(water-tex0 57)
|
||||
;; merc0 58 (+ default)
|
||||
;; generic0 59 (+ default)
|
||||
|
||||
(water-tex1 60)
|
||||
;; merc1 61
|
||||
;; generic1 62
|
||||
;; debug text 68
|
||||
(debug-draw 68)
|
||||
)
|
||||
|
||||
(define-extern cspace<-parented-transformq-joint! (function cspace transformq none))
|
||||
(define-extern cspace<-transformq! (function cspace transformq matrix))
|
||||
(define-extern vector<-cspace! (function vector cspace vector))
|
||||
(define-extern add-debug-text-sphere (function symbol bucket-id vector float string rgba none))
|
||||
(define-extern add-debug-matrix (function symbol bucket-id matrix none))
|
||||
(define-extern add-debug-text-sphere (function symbol bucket-id vector float string rgba symbol))
|
||||
(define-extern add-debug-matrix (function symbol bucket-id matrix matrix))
|
||||
|
||||
(define-extern vector-flatten! (function vector vector vector vector))
|
||||
|
||||
|
|
|
@ -4465,7 +4465,3 @@
|
|||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *citadel-mood* num-stars) 0.0)
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
|
||||
;; definition of type pos-history
|
||||
(deftype pos-history (structure)
|
||||
((points uint32 :offset-assert 0)
|
||||
(num-points int32 :offset-assert 4)
|
||||
(h-first int32 :offset-assert 8)
|
||||
(h-last int32 :offset-assert 12)
|
||||
((points (inline-array vector) :offset-assert 0)
|
||||
(num-points int32 :offset-assert 4)
|
||||
(h-first int32 :offset-assert 8)
|
||||
(h-last int32 :offset-assert 12)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
;; Used lq/sq
|
||||
(defun
|
||||
add-debug-sphere-from-table
|
||||
((arg0 int) (arg1 vector) (arg2 vector) (arg3 rgba))
|
||||
((arg0 bucket-id) (arg1 vector) (arg2 float) (arg3 rgba))
|
||||
(rlet ((vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
(vf3 :class vf)
|
||||
|
@ -127,8 +127,8 @@
|
|||
(.svf (&-> s4-0 quad) vf3)
|
||||
(.svf (&-> s3-0 quad) vf4)
|
||||
(.svf (&-> s2-0 quad) vf5)
|
||||
(add-debug-line #t arg0 s4-0 s3-0 arg3 #f -1)
|
||||
(add-debug-line #t arg0 s4-0 s2-0 arg3 #f -1)
|
||||
(add-debug-line #t arg0 s4-0 s3-0 arg3 #f (the-as rgba -1))
|
||||
(add-debug-line #t arg0 s4-0 s2-0 arg3 #f (the-as rgba -1))
|
||||
)
|
||||
)
|
||||
(let ((v0-2 0))
|
||||
|
@ -136,7 +136,3 @@
|
|||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
|
||||
;; definition of type drawable-group
|
||||
(deftype drawable-group (drawable)
|
||||
((pad uint8 4 :offset-assert 32)
|
||||
((length int16 :offset 6)
|
||||
(data drawable 1 :offset-assert 32)
|
||||
)
|
||||
:method-count-assert 18
|
||||
:size-assert #x24
|
||||
|
@ -16,7 +17,3 @@
|
|||
;; failed to figure out what this is:
|
||||
(let ((v0-1 0))
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -396,7 +396,8 @@
|
|||
(new 'static 'vector :z 1.0)
|
||||
)
|
||||
)
|
||||
:color-shadow (new 'static 'vector4w :w #x80)
|
||||
:color-shadow
|
||||
(new 'static 'vector4w :data (new 'static 'array int32 4 0 0 0 #x80))
|
||||
:color-table
|
||||
(new 'static 'inline-array char-color 64
|
||||
(new 'static 'char-color
|
||||
|
|
|
@ -136,7 +136,7 @@
|
|||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
;; definition (debug) for function ripple-add-debug-sphere
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
;; INFO: Return type mismatch symbol vs none.
|
||||
;; Used lq/sq
|
||||
(defun-debug
|
||||
ripple-add-debug-sphere
|
||||
|
@ -169,7 +169,13 @@
|
|||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.svf (&-> a0-6 quad) vf6)
|
||||
)
|
||||
(add-debug-sphere #t 67 s5-0 2048.0 (the-as int #x8000ffff))
|
||||
(add-debug-sphere
|
||||
#t
|
||||
(bucket-id debug-draw0)
|
||||
s5-0
|
||||
2048.0
|
||||
(new 'static 'rgba :r #xff :g #xff :a #x80)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
|
|
@ -86,8 +86,7 @@
|
|||
|
||||
;; definition of type drawable-tree-instance-tie
|
||||
(deftype drawable-tree-instance-tie (drawable-tree)
|
||||
((length int16 :offset 6)
|
||||
(prototypes basic :offset 8)
|
||||
((prototypes basic :offset 8)
|
||||
)
|
||||
:method-count-assert 18
|
||||
:size-assert #x24
|
||||
|
@ -100,7 +99,7 @@
|
|||
(format #t "~Tid: ~D~%" (-> obj id))
|
||||
(format #t "~Tbsphere: ~`vector`P~%" (-> obj bsphere))
|
||||
(format #t "~Tlength: ~D~%" (-> obj length))
|
||||
(format #t "~Tdata[1] @ #x~X~%" (-> obj pad))
|
||||
(format #t "~Tdata[1] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tprototypes: ~A~%" (-> obj prototypes))
|
||||
obj
|
||||
)
|
||||
|
|
|
@ -337,9 +337,9 @@
|
|||
)
|
||||
|
||||
;; definition for function matrix-4x4-inverse!
|
||||
;; WARN: Bad vector register dependency: vf5
|
||||
;; WARN: Bad vector register dependency: vf3
|
||||
;; WARN: Bad vector register dependency: vf4
|
||||
;; WARN: Bad vector register dependency: vf5
|
||||
(defun matrix-4x4-inverse! ((dst matrix) (src matrix))
|
||||
(rlet ((acc :class vf)
|
||||
(Q :class vf)
|
||||
|
|
|
@ -525,10 +525,7 @@
|
|||
)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> (the-as (pointer float) (+ (* a2-0 4) (the-as int arg0))))
|
||||
(* 0.5 f0-12)
|
||||
)
|
||||
(set! (-> arg0 data a2-0) (* 0.5 f0-12))
|
||||
(if (!= f0-12 0.0)
|
||||
(set! f0-12 (/ 0.5 f0-12))
|
||||
)
|
||||
|
@ -553,7 +550,7 @@
|
|||
)
|
||||
)
|
||||
(set!
|
||||
(-> (the-as (pointer float) (+ (* a3-0 4) (the-as int arg0))))
|
||||
(-> arg0 data a3-0)
|
||||
(*
|
||||
(+
|
||||
(->
|
||||
|
@ -573,7 +570,7 @@
|
|||
)
|
||||
)
|
||||
(set!
|
||||
(-> (the-as (pointer float) (+ (* v1-1 4) (the-as int arg0))))
|
||||
(-> arg0 data v1-1)
|
||||
(*
|
||||
(+
|
||||
(->
|
||||
|
|
|
@ -172,7 +172,7 @@
|
|||
;; definition for method 3 of type vector2h
|
||||
(defmethod inspect vector2h ((obj vector2h))
|
||||
(format #t "[~8x] ~A~%" obj 'vector2h)
|
||||
(format #t "~Tdata[2] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tdata[2] @ #x~X~%" (&-> obj x))
|
||||
(format #t "~Tx: ~D~%" (-> obj x))
|
||||
(format #t "~Ty: ~D~%" (-> obj y))
|
||||
obj
|
||||
|
@ -216,7 +216,7 @@
|
|||
;; definition for method 3 of type vector3h
|
||||
(defmethod inspect vector3h ((obj vector3h))
|
||||
(format #t "[~8x] ~A~%" obj 'vector3h)
|
||||
(format #t "~Tdata[2] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tdata[2] @ #x~X~%" (&-> obj x))
|
||||
(format #t "~Tx: ~D~%" (-> obj x))
|
||||
(format #t "~Ty: ~D~%" (-> obj y))
|
||||
(format #t "~Tz: ~D~%" (-> obj z))
|
||||
|
@ -238,7 +238,7 @@
|
|||
;; definition for method 3 of type vector2w
|
||||
(defmethod inspect vector2w ((obj vector2w))
|
||||
(format #t "[~8x] ~A~%" obj 'vector2w)
|
||||
(format #t "~Tdata[2] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tdata[2] @ #x~X~%" (&-> obj x))
|
||||
(format #t "~Tx: ~D~%" (-> obj x))
|
||||
(format #t "~Ty: ~D~%" (-> obj y))
|
||||
obj
|
||||
|
@ -311,9 +311,9 @@
|
|||
|
||||
;; definition of type vector4w-2
|
||||
(deftype vector4w-2 (structure)
|
||||
((data int32 8 :offset-assert 0)
|
||||
((data int32 8 :offset-assert 0)
|
||||
(quad uint128 2 :offset 0)
|
||||
(vector vector4w 2 :offset 0)
|
||||
(vector vector4w 2 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x20
|
||||
|
@ -323,17 +323,17 @@
|
|||
;; definition for method 3 of type vector4w-2
|
||||
(defmethod inspect vector4w-2 ((obj vector4w-2))
|
||||
(format #t "[~8x] ~A~%" obj 'vector4w-2)
|
||||
(format #t "~Tdata[8] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tquad[2] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tvector[2] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tdata[8] @ #x~X~%" (-> obj quad))
|
||||
(format #t "~Tquad[2] @ #x~X~%" (-> obj quad))
|
||||
(format #t "~Tvector[2] @ #x~X~%" (-> obj quad))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type vector4w-3
|
||||
(deftype vector4w-3 (structure)
|
||||
((data int32 12 :offset-assert 0)
|
||||
((data int32 12 :offset-assert 0)
|
||||
(quad uint128 3 :offset 0)
|
||||
(vector vector4w 3 :offset 0)
|
||||
(vector vector4w 3 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x30
|
||||
|
@ -343,17 +343,17 @@
|
|||
;; definition for method 3 of type vector4w-3
|
||||
(defmethod inspect vector4w-3 ((obj vector4w-3))
|
||||
(format #t "[~8x] ~A~%" obj 'vector4w-3)
|
||||
(format #t "~Tdata[12] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tquad[3] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tvector[3] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tdata[12] @ #x~X~%" (-> obj quad))
|
||||
(format #t "~Tquad[3] @ #x~X~%" (-> obj quad))
|
||||
(format #t "~Tvector[3] @ #x~X~%" (-> obj quad))
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type vector4w-4
|
||||
(deftype vector4w-4 (structure)
|
||||
((data int32 16 :offset-assert 0)
|
||||
((data int32 16 :offset-assert 0)
|
||||
(quad uint128 4 :offset 0)
|
||||
(vector vector4w 4 :offset 0)
|
||||
(vector vector4w 4 :inline :offset 0)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x40
|
||||
|
@ -363,9 +363,9 @@
|
|||
;; definition for method 3 of type vector4w-4
|
||||
(defmethod inspect vector4w-4 ((obj vector4w-4))
|
||||
(format #t "[~8x] ~A~%" obj 'vector4w-4)
|
||||
(format #t "~Tdata[16] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tquad[4] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tvector[4] @ #x~X~%" (-> obj data))
|
||||
(format #t "~Tdata[16] @ #x~X~%" (-> obj quad))
|
||||
(format #t "~Tquad[4] @ #x~X~%" (-> obj quad))
|
||||
(format #t "~Tvector[4] @ #x~X~%" (-> obj quad))
|
||||
obj
|
||||
)
|
||||
|
||||
|
|
|
@ -134,7 +134,15 @@
|
|||
((f0-1 (* (-> obj time) (/ (+ 1.0 (the float s2-0)) (the float s3-0)))))
|
||||
(TODO-RENAME-9 obj f0-1 s4-0)
|
||||
)
|
||||
(add-debug-line #t 68 s5-0 s4-0 (new 'static 'rgba :r #xff :a #x80) #f -1)
|
||||
(add-debug-line
|
||||
#t
|
||||
(bucket-id debug-draw1)
|
||||
s5-0
|
||||
s4-0
|
||||
(new 'static 'rgba :r #xff :a #x80)
|
||||
#f
|
||||
(the-as rgba -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v0-2 0))
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
;; definition (debug) for function joint-mod-debug-draw
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun-debug joint-mod-debug-draw ((mod joint-mod))
|
||||
(add-debug-matrix #t (bucket-id debug-draw) (-> mod joint bone transform))
|
||||
(add-debug-matrix #t (bucket-id debug-draw1) (-> mod joint bone transform))
|
||||
(let ((v0-1 0))
|
||||
)
|
||||
(none)
|
||||
|
@ -540,7 +540,7 @@
|
|||
(if (and (= (-> gp-0 process type) target) (!= (-> gp-0 blend) 0.0))
|
||||
(add-debug-text-sphere
|
||||
*display-target-marks*
|
||||
(bucket-id debug-draw)
|
||||
(bucket-id debug-draw1)
|
||||
(-> gp-0 target)
|
||||
819.2
|
||||
"look"
|
||||
|
@ -701,7 +701,7 @@
|
|||
(if (and (= (-> gp-0 process type) target) (!= (-> gp-0 blend) 0.0))
|
||||
(add-debug-text-sphere
|
||||
*display-target-marks*
|
||||
(bucket-id debug-draw)
|
||||
(bucket-id debug-draw1)
|
||||
(-> gp-0 target)
|
||||
819.2
|
||||
"look"
|
||||
|
|
Loading…
Reference in a new issue