Merge branch 'master' of https://github.com/water111/jak-project into w/type-pass-2

This commit is contained in:
water
2021-06-19 14:26:18 -04:00
39 changed files with 2132 additions and 271 deletions
@@ -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"