mirror of
https://github.com/open-goal/jak-project
synced 2026-07-10 15:14:15 -04:00
Decompile tfrag, tie, prim (#3429)
These still need to be ported to PC.
This commit is contained in:
+5
-5
@@ -32,7 +32,7 @@ some special effect code, then sent to the prim renderer to be drawn."
|
||||
"Base class for prim-strip."
|
||||
()
|
||||
(:methods
|
||||
(prim-base-method-9 () none)
|
||||
(generate-dma! (_type_ matrix) none)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -71,7 +71,7 @@ These are owned by the thing submitting to prim, not the prim renderer itself."
|
||||
)
|
||||
(:methods
|
||||
(new (symbol type int texture-id string) _type_)
|
||||
(prim-strip-method-10 (_type_ draw-control) none)
|
||||
(setup-dma-and-tex (_type_ draw-control) none)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -112,7 +112,7 @@ These are owned by the thing submitting to prim, not the prim renderer itself."
|
||||
(go process-drawable-art-error "prim-strip")
|
||||
)
|
||||
(add-connection *prim-engine* pp #f pp s5-0 #f)
|
||||
(set! (-> s5-0 flags) (prim-flags pf0 pf1))
|
||||
(set! (-> s5-0 flags) (prim-flags alpha-blend-enable texture-enable))
|
||||
(set! (-> s5-0 num-verts) (the-as uint num-vertices))
|
||||
(set! (-> s5-0 allocated-num-verts) (the-as uint num-vertices))
|
||||
(set! (-> s5-0 data0) (new 'static 'gs-test))
|
||||
@@ -198,11 +198,11 @@ These are owned by the thing submitting to prim, not the prim renderer itself."
|
||||
(mask vector4w :inline)
|
||||
(in-verts int32)
|
||||
(num-verts int32)
|
||||
(vert-ptr prim-vertex)
|
||||
(vert-ptr (inline-array prim-vertex))
|
||||
(sinks prim-sink 68 :inline)
|
||||
)
|
||||
(:methods
|
||||
(prim-work-method-9 () none)
|
||||
(reset! (_type_) none)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol *prim-work*, type prim-work
|
||||
(define *prim-work*
|
||||
(new 'static 'prim-work
|
||||
:vertex-tmpl (new 'static 'inline-array dma-packet 3
|
||||
(new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id cnt))
|
||||
:vif1 (new 'static 'vif-tag :imm #x9 :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
(new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id cnt))
|
||||
:vif1 (new 'static 'vif-tag :imm #x120 :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
(new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id cnt))
|
||||
:vif1 (new 'static 'vif-tag :imm #x237 :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
)
|
||||
:control-tmpl (new 'static 'inline-array dma-packet 2
|
||||
(new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :qwc #xc :id (dma-tag-id cnt))
|
||||
:vif1 (new 'static 'vif-tag :imm #x345 :num #xc :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
(new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :qwc #xc :id (dma-tag-id cnt))
|
||||
:vif1 (new 'static 'vif-tag :imm #x363 :num #xc :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
)
|
||||
:giftag (new 'static 'generic-gif-tag
|
||||
:fan-prim (new 'static 'gif-tag-prim
|
||||
:pre #x1
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :tme #x1 :fge #x1 :abe #x1)
|
||||
:nreg #x3
|
||||
)
|
||||
:str-prim (new 'static 'gif-tag-prim
|
||||
:pre #x1
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :tme #x1 :fge #x1 :abe #x1)
|
||||
:nreg #x3
|
||||
)
|
||||
:regs (new 'static 'gif-tag-regs-32 :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2))
|
||||
:num-strips #x1
|
||||
)
|
||||
:call-scissor (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id cnt))
|
||||
:vif0 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd mscalf) :msk #x1)
|
||||
)
|
||||
:call-noclip (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id cnt))
|
||||
:vif0 (new 'static 'vif-tag :imm #x8 :cmd (vif-cmd mscalf) :msk #x1)
|
||||
)
|
||||
:mask (new 'static 'vector4w :x -2 :y -1 :z -1)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 9 of type prim-work
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod reset! ((this prim-work))
|
||||
"Reset all pending vertex/control data."
|
||||
(dotimes (v1-0 68)
|
||||
(let ((a1-2 (-> this sinks v1-0)))
|
||||
(set! (-> a1-2 vertex-count) (the-as uint 0))
|
||||
(set! (-> a1-2 control-count) (the-as uint 0))
|
||||
)
|
||||
0
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 9 of type prim-strip
|
||||
;; INFO: function output is handled by mips2c
|
||||
(defmethod-mips2c "(method 9 prim-strip)" 9 prim-strip)
|
||||
|
||||
;; definition for method 10 of type prim-strip
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod setup-dma-and-tex ((this prim-strip) (arg0 draw-control))
|
||||
"Set up the bucket, prim sink, and texture."
|
||||
(let ((s5-0 (-> *level* level (-> arg0 level-index))))
|
||||
(let ((s2-0 (-> s5-0 draw-index))
|
||||
(s4-0 (-> arg0 default-texture-page))
|
||||
)
|
||||
(let ((s3-0 (vu1-bucket-map s2-0 (the-as int s4-0) (merc-mode mercneric2)))
|
||||
(v1-3 (vu1-bucket-map s2-0 (the-as int s4-0) (merc-mode mm5)))
|
||||
)
|
||||
(set! (-> this bucket) s3-0)
|
||||
(set! (-> this sink) (the-as uint v1-3))
|
||||
)
|
||||
(set! (-> this level) s5-0)
|
||||
(set! (-> this texture-index) s4-0)
|
||||
)
|
||||
(when (not (logtest? (-> this flags) (prim-flags no-texture-name)))
|
||||
(set! (-> this tex-id)
|
||||
(lookup-level-texture-id-by-name (the-as string (-> this tex-name)) s5-0 (the-as int (-> this texture-index)))
|
||||
)
|
||||
(logior! (-> this flags) (prim-flags no-texture-name))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function prim-engine-execute
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun prim-engine-execute ()
|
||||
"Generate all prim DMA."
|
||||
(when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask generic))
|
||||
(when (not (get-menu-mode *blit-displays-work*))
|
||||
(let* ((gp-0 *prim-engine*)
|
||||
(s5-0 (-> *math-camera* camera-temp))
|
||||
(v1-9 (-> gp-0 alive-list next0))
|
||||
(s4-0 (-> (the-as connection v1-9) next0))
|
||||
)
|
||||
(while (!= v1-9 (-> gp-0 alive-list-end))
|
||||
(-> (the-as connection v1-9) param1)
|
||||
(generate-dma! (the-as prim-strip (-> (the-as connection v1-9) param2)) s5-0)
|
||||
(set! v1-9 s4-0)
|
||||
(set! s4-0 (-> s4-0 next0))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
Generated
Vendored
+1
-4
@@ -75,6 +75,7 @@
|
||||
(dma-base uint32 :overlay-at (-> dma-chain 1))
|
||||
(dma-level-1 uint32 :overlay-at (-> dma-chain 2))
|
||||
(dma-qwc uint8 4 :offset 44)
|
||||
(dma-qwc-word uint32 :overlay-at (-> dma-qwc 0))
|
||||
(shader (inline-array adgif-shader) :offset 48)
|
||||
(num-shaders uint8 :offset 52)
|
||||
(num-base-colors uint8 :offset 53)
|
||||
@@ -451,7 +452,3 @@
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
+898
@@ -0,0 +1,898 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for function edge-debug-lines
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defun edge-debug-lines ((arg0 (array vector-array)))
|
||||
"Draw tfrag debug lines. These debug-lines are not stored in retail copies."
|
||||
(when (nonzero? arg0)
|
||||
(dotimes (s5-0 (-> arg0 length))
|
||||
(when (logtest? *display-strip-lines* (ash 1 s5-0))
|
||||
(let ((s4-0 (-> arg0 s5-0)))
|
||||
(dotimes (s3-0 (/ (-> s4-0 length) 2))
|
||||
(add-debug-line
|
||||
#t
|
||||
(bucket-id debug-no-zbuf1)
|
||||
(-> s4-0 data (* s3-0 2))
|
||||
(-> s4-0 data (+ (* s3-0 2) 1))
|
||||
(new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
|
||||
#f
|
||||
(the-as rgba -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function draw-drawable-tree-tfrag
|
||||
;; WARN: Return type mismatch drawable-tree-tfrag vs none.
|
||||
(defun draw-drawable-tree-tfrag ((arg0 drawable-tree-tfrag))
|
||||
"Top-level function to generate DMA for tfrag."
|
||||
(local-vars (sv-16 int))
|
||||
(when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask tfrag))
|
||||
(let ((s5-0 (+ (-> arg0 length) -1)))
|
||||
(when (nonzero? s5-0)
|
||||
(dotimes (s4-0 s5-0)
|
||||
(let* ((v1-8 (-> arg0 arrays s4-0))
|
||||
(a0-4 (-> arg0 arrays (+ s4-0 1)))
|
||||
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-8) data 0 id) 8))
|
||||
(a0-6 (/ (-> (the-as drawable-inline-array-node a0-4) data 0 id) 8))
|
||||
(a1-3 (+ a1-1 #x3800 #x70000000))
|
||||
(a0-8 (+ a0-6 #x3800 #x70000000))
|
||||
)
|
||||
(draw-node-cull
|
||||
(the-as pointer a0-8)
|
||||
(the-as pointer a1-3)
|
||||
(the-as (inline-array draw-node) (&+ v1-8 32))
|
||||
(-> v1-8 length)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((v1-14 (-> arg0 arrays s5-0))
|
||||
(s4-1 (&+ v1-14 32))
|
||||
(s3-0 (-> v1-14 length))
|
||||
)
|
||||
(set! sv-16 (+ (/ (-> s4-1 id) 8) #x3800 #x70000000))
|
||||
(let ((s5-1 (-> *display* frames (-> *display* on-screen) global-buf base)))
|
||||
(with-dma-buffer-add-bucket ((s1-0 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(-> (new 'static 'array bucket-id 10
|
||||
(bucket-id tfrag-l0-tfrag)
|
||||
(bucket-id tfrag-l1-tfrag)
|
||||
(bucket-id tfrag-l2-tfrag)
|
||||
(bucket-id tfrag-l3-tfrag)
|
||||
(bucket-id tfrag-l4-tfrag)
|
||||
(bucket-id tfrag-l5-tfrag)
|
||||
(bucket-id tfrag-l6-tfrag)
|
||||
(bucket-id tfrag-l7-tfrag)
|
||||
(bucket-id tfrag-l8-tfrag)
|
||||
(bucket-id tfrag-l9-tfrag)
|
||||
)
|
||||
*draw-index*
|
||||
)
|
||||
)
|
||||
(set! (-> *tfrag-work* wait-to-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* wait-from-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* texture-dists) (the-as uint (-> *level* draw-level *draw-index* bsp tfrag-closest)))
|
||||
(set! (-> *tfrag-work* last-call) (the-as uint 0))
|
||||
(draw-inline-array-tfrag (the-as pointer sv-16) s4-1 s3-0 s1-0)
|
||||
(set! (-> *level* draw-level *draw-index* tfrag-last-calls 0) (-> *tfrag-work* last-call))
|
||||
(update-wait-stats
|
||||
(-> *perf-stats* data 42)
|
||||
(the-as uint 0)
|
||||
(-> *tfrag-work* wait-to-spr)
|
||||
(-> *tfrag-work* wait-from-spr)
|
||||
)
|
||||
)
|
||||
(with-dma-buffer-add-bucket ((s1-1 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(-> (new 'static 'array bucket-id 10
|
||||
(bucket-id tfrag-scissor-l0-tfrag)
|
||||
(bucket-id tfrag-scissor-l1-tfrag)
|
||||
(bucket-id tfrag-scissor-l2-tfrag)
|
||||
(bucket-id tfrag-scissor-l3-tfrag)
|
||||
(bucket-id tfrag-scissor-l4-tfrag)
|
||||
(bucket-id tfrag-scissor-l5-tfrag)
|
||||
(bucket-id tfrag-scissor-l6-tfrag)
|
||||
(bucket-id tfrag-scissor-l7-tfrag)
|
||||
(bucket-id tfrag-scissor-l8-tfrag)
|
||||
(bucket-id tfrag-scissor-l9-tfrag)
|
||||
)
|
||||
*draw-index*
|
||||
)
|
||||
)
|
||||
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* last-call) (the-as uint 0))
|
||||
(draw-inline-array-tfrag-scissor (the-as pointer sv-16) s4-1 s3-0 s1-1)
|
||||
(set! (-> *level* draw-level *draw-index* tfrag-last-calls 1) (-> *tfrag-work* last-call))
|
||||
(update-wait-stats
|
||||
(-> *perf-stats* data 43)
|
||||
(the-as uint 0)
|
||||
(-> *tfrag-work* near-wait-to-spr)
|
||||
(-> *tfrag-work* near-wait-from-spr)
|
||||
)
|
||||
)
|
||||
(let ((a0-33 *dma-mem-usage*))
|
||||
(when (nonzero? a0-33)
|
||||
(set! (-> a0-33 length) (max 2 (-> a0-33 length)))
|
||||
(set! (-> a0-33 data 1 name) "tfragment")
|
||||
(+! (-> a0-33 data 1 count) 1)
|
||||
(+! (-> a0-33 data 1 used)
|
||||
(&- (-> *display* frames (-> *display* on-screen) global-buf base) (the-as uint s5-1))
|
||||
)
|
||||
(set! (-> a0-33 data 1 total) (-> a0-33 data 1 used))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function draw-drawable-tree-tfrag-trans
|
||||
;; WARN: Return type mismatch drawable-tree-tfrag vs none.
|
||||
(defun draw-drawable-tree-tfrag-trans ((arg0 drawable-tree-tfrag))
|
||||
"Top-level function to generate DMA for tfrag."
|
||||
(local-vars (sv-16 int))
|
||||
(when (logtest? (vu1-renderer-mask tfrag-trans) (-> *display* vu1-enable-user))
|
||||
(let ((s5-0 (+ (-> arg0 length) -1)))
|
||||
(when (nonzero? s5-0)
|
||||
(dotimes (s4-0 s5-0)
|
||||
(let* ((v1-7 (-> arg0 arrays s4-0))
|
||||
(a0-6 (-> arg0 arrays (+ s4-0 1)))
|
||||
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-7) data 0 id) 8))
|
||||
(a0-8 (/ (-> (the-as drawable-inline-array-node a0-6) data 0 id) 8))
|
||||
(a1-3 (+ a1-1 #x3800 #x70000000))
|
||||
(a0-10 (+ a0-8 #x3800 #x70000000))
|
||||
)
|
||||
(draw-node-cull
|
||||
(the-as pointer a0-10)
|
||||
(the-as pointer a1-3)
|
||||
(the-as (inline-array draw-node) (&+ v1-7 32))
|
||||
(-> v1-7 length)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((v1-13 (-> arg0 arrays s5-0))
|
||||
(s5-1 (&+ v1-13 32))
|
||||
(s4-1 (-> v1-13 length))
|
||||
)
|
||||
(set! sv-16 (+ (/ (-> s5-1 id) 8) #x3800 #x70000000))
|
||||
(with-dma-buffer-add-bucket ((s2-0 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(-> (new 'static 'array bucket-id 12
|
||||
(bucket-id tfrag-l0-alpha)
|
||||
(bucket-id tfrag-l1-alpha)
|
||||
(bucket-id tfrag-l2-alpha)
|
||||
(bucket-id tfrag-l3-alpha)
|
||||
(bucket-id tfrag-l4-alpha)
|
||||
(bucket-id tfrag-l5-alpha)
|
||||
(bucket-id tfrag-l6-alpha)
|
||||
(bucket-id tfrag-l7-alpha)
|
||||
(bucket-id tfrag-l8-alpha)
|
||||
(bucket-id tfrag-l9-alpha)
|
||||
(bucket-id bucket0)
|
||||
(bucket-id bucket0)
|
||||
)
|
||||
*draw-index*
|
||||
)
|
||||
)
|
||||
(set! (-> *tfrag-work* wait-to-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* wait-from-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* texture-dists) (the-as uint (-> *level* draw-level *draw-index* bsp alpha-closest)))
|
||||
(set! (-> *tfrag-work* last-call) (the-as uint 0))
|
||||
(draw-inline-array-tfrag (the-as pointer sv-16) s5-1 s4-1 s2-0)
|
||||
(set! (-> *level* draw-level *draw-index* tfrag-last-calls 2) (-> *tfrag-work* last-call))
|
||||
(update-wait-stats
|
||||
(-> *perf-stats* data 42)
|
||||
(the-as uint 0)
|
||||
(-> *tfrag-work* wait-to-spr)
|
||||
(-> *tfrag-work* wait-from-spr)
|
||||
)
|
||||
)
|
||||
(with-dma-buffer-add-bucket ((s2-1 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(-> (new 'static 'array bucket-id 12
|
||||
(bucket-id tfrag-scissor-l0-alpha)
|
||||
(bucket-id tfrag-scissor-l1-alpha)
|
||||
(bucket-id tfrag-scissor-l2-alpha)
|
||||
(bucket-id tfrag-scissor-l3-alpha)
|
||||
(bucket-id tfrag-scissor-l4-alpha)
|
||||
(bucket-id tfrag-scissor-l5-alpha)
|
||||
(bucket-id tfrag-scissor-l6-alpha)
|
||||
(bucket-id tfrag-scissor-l7-alpha)
|
||||
(bucket-id tfrag-scissor-l8-alpha)
|
||||
(bucket-id tfrag-scissor-l9-alpha)
|
||||
(bucket-id bucket0)
|
||||
(bucket-id bucket0)
|
||||
)
|
||||
*draw-index*
|
||||
)
|
||||
)
|
||||
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* last-call) (the-as uint 0))
|
||||
(draw-inline-array-tfrag-scissor (the-as pointer sv-16) s5-1 s4-1 s2-1)
|
||||
(set! (-> *level* draw-level *draw-index* tfrag-last-calls 3) (-> *tfrag-work* last-call))
|
||||
(update-wait-stats
|
||||
(-> *perf-stats* data 43)
|
||||
(the-as uint 0)
|
||||
(-> *tfrag-work* near-wait-to-spr)
|
||||
(-> *tfrag-work* near-wait-from-spr)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function draw-drawable-tree-tfrag-water
|
||||
;; WARN: Return type mismatch drawable-tree-tfrag vs none.
|
||||
(defun draw-drawable-tree-tfrag-water ((arg0 drawable-tree-tfrag))
|
||||
"Top-level function to generate DMA for tfrag."
|
||||
(local-vars (sv-16 int))
|
||||
(when (logtest? (vu1-renderer-mask tfrag-water) (-> *display* vu1-enable-user))
|
||||
(let ((s5-0 (+ (-> arg0 length) -1)))
|
||||
(when (nonzero? s5-0)
|
||||
(dotimes (s4-0 s5-0)
|
||||
(let* ((v1-7 (-> arg0 arrays s4-0))
|
||||
(a0-6 (-> arg0 arrays (+ s4-0 1)))
|
||||
(a1-1 (/ (-> (the-as drawable-inline-array-node v1-7) data 0 id) 8))
|
||||
(a0-8 (/ (-> (the-as drawable-inline-array-node a0-6) data 0 id) 8))
|
||||
(a1-3 (+ a1-1 #x3800 #x70000000))
|
||||
(a0-10 (+ a0-8 #x3800 #x70000000))
|
||||
)
|
||||
(draw-node-cull
|
||||
(the-as pointer a0-10)
|
||||
(the-as pointer a1-3)
|
||||
(the-as (inline-array draw-node) (&+ v1-7 32))
|
||||
(-> v1-7 length)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((v1-13 (-> arg0 arrays s5-0))
|
||||
(s5-1 (&+ v1-13 32))
|
||||
(s4-1 (-> v1-13 length))
|
||||
)
|
||||
(set! sv-16 (+ (/ (-> s5-1 id) 8) #x3800 #x70000000))
|
||||
(with-dma-buffer-add-bucket ((s2-0 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(-> (new 'static 'array bucket-id 12
|
||||
(bucket-id tfrag-l0-water)
|
||||
(bucket-id tfrag-l1-water)
|
||||
(bucket-id tfrag-l2-water)
|
||||
(bucket-id tfrag-l3-water)
|
||||
(bucket-id tfrag-l4-water)
|
||||
(bucket-id tfrag-l5-water)
|
||||
(bucket-id tfrag-l6-water)
|
||||
(bucket-id tfrag-l7-water)
|
||||
(bucket-id tfrag-l8-water)
|
||||
(bucket-id tfrag-l9-water)
|
||||
(bucket-id bucket0)
|
||||
(bucket-id bucket0)
|
||||
)
|
||||
*draw-index*
|
||||
)
|
||||
)
|
||||
(set! (-> *tfrag-work* wait-to-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* wait-from-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* texture-dists) (the-as uint (-> *level* draw-level *draw-index* bsp water-closest)))
|
||||
(set! (-> *tfrag-work* last-call) (the-as uint 0))
|
||||
(draw-inline-array-tfrag (the-as pointer sv-16) s5-1 s4-1 s2-0)
|
||||
(set! (-> *level* draw-level *draw-index* tfrag-last-calls 4) (-> *tfrag-work* last-call))
|
||||
(update-wait-stats
|
||||
(-> *perf-stats* data 42)
|
||||
(the-as uint 0)
|
||||
(-> *tfrag-work* wait-to-spr)
|
||||
(-> *tfrag-work* wait-from-spr)
|
||||
)
|
||||
)
|
||||
(with-dma-buffer-add-bucket ((s2-1 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(-> (new 'static 'array bucket-id 12
|
||||
(bucket-id tfrag-scissor-l0-water)
|
||||
(bucket-id tfrag-scissor-l1-water)
|
||||
(bucket-id tfrag-scissor-l2-water)
|
||||
(bucket-id tfrag-scissor-l3-water)
|
||||
(bucket-id tfrag-scissor-l4-water)
|
||||
(bucket-id tfrag-scissor-l5-water)
|
||||
(bucket-id tfrag-scissor-l6-water)
|
||||
(bucket-id tfrag-scissor-l7-water)
|
||||
(bucket-id tfrag-scissor-l8-water)
|
||||
(bucket-id tfrag-scissor-l9-water)
|
||||
(bucket-id bucket0)
|
||||
(bucket-id bucket0)
|
||||
)
|
||||
*draw-index*
|
||||
)
|
||||
)
|
||||
(set! (-> *tfrag-work* near-wait-to-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* near-wait-from-spr) (the-as uint 0))
|
||||
(set! (-> *tfrag-work* last-call) (the-as uint 0))
|
||||
(draw-inline-array-tfrag-scissor (the-as pointer sv-16) s5-1 s4-1 s2-1)
|
||||
(set! (-> *level* draw-level *draw-index* tfrag-last-calls 5) (-> *tfrag-work* last-call))
|
||||
(update-wait-stats
|
||||
(-> *perf-stats* data 43)
|
||||
(the-as uint 0)
|
||||
(-> *tfrag-work* near-wait-to-spr)
|
||||
(-> *tfrag-work* near-wait-from-spr)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function tfrag-vu1-init-buf
|
||||
;; WARN: Return type mismatch pointer vs none.
|
||||
(defun tfrag-vu1-init-buf ((arg0 bucket-id) (arg1 gs-test) (arg2 int) (arg3 uint) (arg4 symbol))
|
||||
"Do all tfrag buffer setup for a single bucket."
|
||||
(let ((v1-0 *display*)
|
||||
(a0-1 32)
|
||||
)
|
||||
(+! (-> v1-0 mem-reserve-size) a0-1)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let ((t1-0 (-> v1-0 frames (-> v1-0 on-screen) global-buf)))
|
||||
(if (< (-> t1-0 real-buffer-end) (the-as int (&+ (-> t1-0 base) a0-1)))
|
||||
(set! (-> v1-0 dma-buffer-overflow) #t)
|
||||
)
|
||||
)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let ((s4-0 (-> *display* frames (-> *display* on-screen) bucket-group arg0)))
|
||||
(when (!= s4-0 (-> s4-0 last))
|
||||
(let* ((s3-0 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(s2-1 (-> s3-0 base))
|
||||
)
|
||||
(tfrag-init-buffer s3-0 arg1 arg2 arg4)
|
||||
(let ((v1-14 (the-as object (-> s3-0 base))))
|
||||
(set! (-> (the-as dma-packet v1-14) dma) (new 'static 'dma-tag :id (dma-tag-id next) :addr (-> s4-0 next)))
|
||||
(set! (-> (the-as dma-packet v1-14) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-14) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s3-0 base) (the-as pointer (&+ (the-as dma-packet v1-14) 16)))
|
||||
)
|
||||
(set! (-> s4-0 next) (the-as uint s2-1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s5-1 (-> *display* frames (-> *display* on-screen) bucket-group arg0)))
|
||||
(when (!= s5-1 (-> s5-1 last))
|
||||
(let* ((s3-1 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(s4-1 (-> s3-1 base))
|
||||
)
|
||||
(tfrag-end-buffer s3-1 (the-as int arg3))
|
||||
(let ((v0-5 (-> s3-1 base)))
|
||||
(let ((v1-28 (the-as object (-> s3-1 base))))
|
||||
(set! (-> (the-as dma-packet v1-28) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-28) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-28) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s3-1 base) (&+ (the-as pointer v1-28) 16))
|
||||
)
|
||||
(set! (-> (the-as (pointer int32) (-> s5-1 last)) 1) (the-as int s4-1))
|
||||
(set! (-> s5-1 last) (the-as (pointer dma-tag) v0-5))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function tfrag-scissor-vu1-init-buf
|
||||
;; WARN: Return type mismatch pointer vs none.
|
||||
;; ERROR: Failed store: (s.w! (+ v1-14 8) 0) at op 52
|
||||
;; ERROR: Failed store: (s.w! (+ v1-14 12) 0) at op 53
|
||||
;; ERROR: Failed store: (s.w! (+ v1-28 8) 0) at op 84
|
||||
;; ERROR: Failed store: (s.w! (+ v1-28 12) 0) at op 85
|
||||
;; ERROR: Failed store: (s.w! (+ v1-30 4) s4-1) at op 89
|
||||
(defun tfrag-scissor-vu1-init-buf ((arg0 bucket-id) (arg1 gs-test) (arg2 int) (arg3 uint) (arg4 symbol))
|
||||
(let ((v1-0 *display*)
|
||||
(a0-1 32)
|
||||
)
|
||||
(+! (-> v1-0 mem-reserve-size) a0-1)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let ((t1-0 (-> v1-0 frames (-> v1-0 on-screen) global-buf)))
|
||||
(if (< (-> t1-0 real-buffer-end) (the-as int (&+ (-> t1-0 base) a0-1)))
|
||||
(set! (-> v1-0 dma-buffer-overflow) #t)
|
||||
)
|
||||
)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let ((s4-0 (-> *display* frames (-> *display* on-screen) bucket-group arg0)))
|
||||
(when (!= s4-0 (-> s4-0 last))
|
||||
(let* ((s3-0 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(s2-1 (-> s3-0 base))
|
||||
)
|
||||
(tfrag-scissor-init-buffer s3-0 arg1 arg2 arg4)
|
||||
(let ((v1-14 (-> s3-0 base)))
|
||||
(set! (-> (the-as (pointer uint64) v1-14)) (logior #x20000000 (shr (shl (-> s4-0 next) 33) 1)))
|
||||
(s.w! (+ v1-14 8) 0)
|
||||
(s.w! (+ v1-14 12) 0)
|
||||
(set! (-> s3-0 base) (&+ v1-14 16))
|
||||
)
|
||||
(set! (-> s4-0 next) (the-as uint s2-1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s5-1 (-> *display* frames (-> *display* on-screen) bucket-group arg0)))
|
||||
(when (!= s5-1 (-> s5-1 last))
|
||||
(let* ((s3-1 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(s4-1 (-> s3-1 base))
|
||||
)
|
||||
(tfrag-scissor-end-buffer s3-1 arg3)
|
||||
(let ((v0-5 (-> s3-1 base)))
|
||||
(let ((v1-28 (-> s3-1 base)))
|
||||
(set! (-> (the-as (pointer int64) v1-28)) #x20000000)
|
||||
(s.w! (+ v1-28 8) 0)
|
||||
(s.w! (+ v1-28 12) 0)
|
||||
(set! (-> s3-1 base) (&+ v1-28 16))
|
||||
)
|
||||
(let ((v1-30 (-> s5-1 last)))
|
||||
(s.w! (+ v1-30 4) s4-1)
|
||||
)
|
||||
(set! (-> s5-1 last) (the-as (pointer dma-tag) v0-5))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type tfrag-init-data
|
||||
(deftype tfrag-init-data (structure)
|
||||
((tfrag-bucket bucket-id)
|
||||
(tfrag-scissor-bucket bucket-id)
|
||||
(tfrag-trans-bucket bucket-id)
|
||||
(tfrag-scissor-trans-bucket bucket-id)
|
||||
(tfrag-water-bucket bucket-id)
|
||||
(tfrag-water-scissor-bucket bucket-id)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type tfrag-init-data
|
||||
(defmethod inspect ((this tfrag-init-data))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'tfrag-init-data)
|
||||
(format #t "~1Ttfrag-bucket: ~D~%" (-> this tfrag-bucket))
|
||||
(format #t "~1Ttfrag-scissor-bucket: ~D~%" (-> this tfrag-scissor-bucket))
|
||||
(format #t "~1Ttfrag-trans-bucket: ~D~%" (-> this tfrag-trans-bucket))
|
||||
(format #t "~1Ttfrag-scissor-trans-bucket: ~D~%" (-> this tfrag-scissor-trans-bucket))
|
||||
(format #t "~1Ttfrag-water-bucket: ~D~%" (-> this tfrag-water-bucket))
|
||||
(format #t "~1Ttfrag-water-scissor-bucket: ~D~%" (-> this tfrag-water-scissor-bucket))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for symbol *tfrag-init-table*, type (inline-array tfrag-init-data)
|
||||
(define *tfrag-init-table* (new 'static 'inline-array tfrag-init-data 10
|
||||
(new 'static 'tfrag-init-data
|
||||
:tfrag-bucket (bucket-id tfrag-l0-tfrag)
|
||||
:tfrag-scissor-bucket (bucket-id tfrag-scissor-l0-tfrag)
|
||||
:tfrag-trans-bucket (bucket-id tfrag-l0-alpha)
|
||||
:tfrag-scissor-trans-bucket (bucket-id tfrag-scissor-l0-alpha)
|
||||
:tfrag-water-bucket (bucket-id tfrag-l0-water)
|
||||
:tfrag-water-scissor-bucket (bucket-id tfrag-scissor-l0-water)
|
||||
)
|
||||
(new 'static 'tfrag-init-data
|
||||
:tfrag-bucket (bucket-id tfrag-l1-tfrag)
|
||||
:tfrag-scissor-bucket (bucket-id tfrag-scissor-l1-tfrag)
|
||||
:tfrag-trans-bucket (bucket-id tfrag-l1-alpha)
|
||||
:tfrag-scissor-trans-bucket (bucket-id tfrag-scissor-l1-alpha)
|
||||
:tfrag-water-bucket (bucket-id tfrag-l1-water)
|
||||
:tfrag-water-scissor-bucket (bucket-id tfrag-scissor-l1-water)
|
||||
)
|
||||
(new 'static 'tfrag-init-data
|
||||
:tfrag-bucket (bucket-id tfrag-l2-tfrag)
|
||||
:tfrag-scissor-bucket (bucket-id tfrag-scissor-l2-tfrag)
|
||||
:tfrag-trans-bucket (bucket-id tfrag-l2-alpha)
|
||||
:tfrag-scissor-trans-bucket (bucket-id tfrag-scissor-l2-alpha)
|
||||
:tfrag-water-bucket (bucket-id tfrag-l2-water)
|
||||
:tfrag-water-scissor-bucket (bucket-id tfrag-scissor-l2-water)
|
||||
)
|
||||
(new 'static 'tfrag-init-data
|
||||
:tfrag-bucket (bucket-id tfrag-l3-tfrag)
|
||||
:tfrag-scissor-bucket (bucket-id tfrag-scissor-l3-tfrag)
|
||||
:tfrag-trans-bucket (bucket-id tfrag-l3-alpha)
|
||||
:tfrag-scissor-trans-bucket (bucket-id tfrag-scissor-l3-alpha)
|
||||
:tfrag-water-bucket (bucket-id tfrag-l3-water)
|
||||
:tfrag-water-scissor-bucket (bucket-id tfrag-scissor-l3-water)
|
||||
)
|
||||
(new 'static 'tfrag-init-data
|
||||
:tfrag-bucket (bucket-id tfrag-l4-tfrag)
|
||||
:tfrag-scissor-bucket (bucket-id tfrag-scissor-l4-tfrag)
|
||||
:tfrag-trans-bucket (bucket-id tfrag-l4-alpha)
|
||||
:tfrag-scissor-trans-bucket (bucket-id tfrag-scissor-l4-alpha)
|
||||
:tfrag-water-bucket (bucket-id tfrag-l4-water)
|
||||
:tfrag-water-scissor-bucket (bucket-id tfrag-scissor-l4-water)
|
||||
)
|
||||
(new 'static 'tfrag-init-data
|
||||
:tfrag-bucket (bucket-id tfrag-l5-tfrag)
|
||||
:tfrag-scissor-bucket (bucket-id tfrag-scissor-l5-tfrag)
|
||||
:tfrag-trans-bucket (bucket-id tfrag-l5-alpha)
|
||||
:tfrag-scissor-trans-bucket (bucket-id tfrag-scissor-l5-alpha)
|
||||
:tfrag-water-bucket (bucket-id tfrag-l5-water)
|
||||
:tfrag-water-scissor-bucket (bucket-id tfrag-scissor-l5-water)
|
||||
)
|
||||
(new 'static 'tfrag-init-data
|
||||
:tfrag-bucket (bucket-id tfrag-l6-tfrag)
|
||||
:tfrag-scissor-bucket (bucket-id tfrag-scissor-l6-tfrag)
|
||||
:tfrag-trans-bucket (bucket-id tfrag-l6-alpha)
|
||||
:tfrag-scissor-trans-bucket (bucket-id tfrag-scissor-l6-alpha)
|
||||
:tfrag-water-bucket (bucket-id tfrag-l6-water)
|
||||
:tfrag-water-scissor-bucket (bucket-id tfrag-scissor-l6-water)
|
||||
)
|
||||
(new 'static 'tfrag-init-data
|
||||
:tfrag-bucket (bucket-id tfrag-l7-tfrag)
|
||||
:tfrag-scissor-bucket (bucket-id tfrag-scissor-l7-tfrag)
|
||||
:tfrag-trans-bucket (bucket-id tfrag-l7-alpha)
|
||||
:tfrag-scissor-trans-bucket (bucket-id tfrag-scissor-l7-alpha)
|
||||
:tfrag-water-bucket (bucket-id tfrag-l7-water)
|
||||
:tfrag-water-scissor-bucket (bucket-id tfrag-scissor-l7-water)
|
||||
)
|
||||
(new 'static 'tfrag-init-data
|
||||
:tfrag-bucket (bucket-id tfrag-l8-tfrag)
|
||||
:tfrag-scissor-bucket (bucket-id tfrag-scissor-l8-tfrag)
|
||||
:tfrag-trans-bucket (bucket-id tfrag-l8-alpha)
|
||||
:tfrag-scissor-trans-bucket (bucket-id tfrag-scissor-l8-alpha)
|
||||
:tfrag-water-bucket (bucket-id tfrag-l8-water)
|
||||
:tfrag-water-scissor-bucket (bucket-id tfrag-scissor-l8-water)
|
||||
)
|
||||
(new 'static 'tfrag-init-data
|
||||
:tfrag-bucket (bucket-id tfrag-l9-tfrag)
|
||||
:tfrag-scissor-bucket (bucket-id tfrag-scissor-l9-tfrag)
|
||||
:tfrag-trans-bucket (bucket-id tfrag-l9-alpha)
|
||||
:tfrag-scissor-trans-bucket (bucket-id tfrag-scissor-l9-alpha)
|
||||
:tfrag-water-bucket (bucket-id tfrag-l9-water)
|
||||
:tfrag-water-scissor-bucket (bucket-id tfrag-scissor-l9-water)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function tfrag-vu1-init-buffers
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defun tfrag-vu1-init-buffers ()
|
||||
"Initialize all tfrag buckets."
|
||||
(dotimes (gp-0 10)
|
||||
(let ((s5-0 (-> *level* draw-level gp-0))
|
||||
(s4-0 (-> *tfrag-init-table* gp-0))
|
||||
)
|
||||
(when s5-0
|
||||
(set-subdivide-settings! s5-0)
|
||||
(let ((s3-0 (-> s5-0 tfrag-gs-test)))
|
||||
(tfrag-vu1-init-buf
|
||||
(-> s4-0 tfrag-bucket)
|
||||
s3-0
|
||||
0
|
||||
(-> s5-0 tfrag-last-calls 0)
|
||||
(logtest? (-> s5-0 info level-flags) (level-flags use-camera-other))
|
||||
)
|
||||
(tfrag-scissor-vu1-init-buf
|
||||
(-> s4-0 tfrag-scissor-bucket)
|
||||
s3-0
|
||||
0
|
||||
(-> s5-0 tfrag-last-calls 1)
|
||||
(logtest? (-> s5-0 info level-flags) (level-flags use-camera-other))
|
||||
)
|
||||
)
|
||||
(tfrag-vu1-init-buf
|
||||
(-> s4-0 tfrag-trans-bucket)
|
||||
(new 'static 'gs-test
|
||||
:ate #x1
|
||||
:atst (gs-atest greater-equal)
|
||||
:aref #x26
|
||||
:afail #x1
|
||||
:zte #x1
|
||||
:ztst (gs-ztest greater-equal)
|
||||
)
|
||||
1
|
||||
(-> s5-0 tfrag-last-calls 2)
|
||||
(logtest? (-> s5-0 info level-flags) (level-flags use-camera-other))
|
||||
)
|
||||
(tfrag-scissor-vu1-init-buf
|
||||
(-> s4-0 tfrag-scissor-trans-bucket)
|
||||
(new 'static 'gs-test
|
||||
:ate #x1
|
||||
:atst (gs-atest greater-equal)
|
||||
:aref #x26
|
||||
:afail #x1
|
||||
:zte #x1
|
||||
:ztst (gs-ztest greater-equal)
|
||||
)
|
||||
1
|
||||
(-> s5-0 tfrag-last-calls 3)
|
||||
(logtest? (-> s5-0 info level-flags) (level-flags use-camera-other))
|
||||
)
|
||||
(tfrag-vu1-init-buf
|
||||
(-> s4-0 tfrag-water-bucket)
|
||||
(new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest greater-equal))
|
||||
1
|
||||
(-> s5-0 tfrag-last-calls 4)
|
||||
(logtest? (-> s5-0 info level-flags) (level-flags use-camera-other))
|
||||
)
|
||||
(tfrag-scissor-vu1-init-buf
|
||||
(-> s4-0 tfrag-water-scissor-bucket)
|
||||
(new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest greater-equal))
|
||||
1
|
||||
(-> s5-0 tfrag-last-calls 5)
|
||||
(logtest? (-> s5-0 info level-flags) (level-flags use-camera-other))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type drawable-tree-tfrag
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod draw ((this drawable-tree-tfrag))
|
||||
"Draw the drawable, and typically its children.
|
||||
This usually means adding stuff to a list to be drawn later, rather than expensive drawing here."
|
||||
(let ((v1-1 (-> *background-work* tfrag-tree-count))
|
||||
(a1-3 (-> *level* draw-level *draw-index*))
|
||||
)
|
||||
(set! (-> *background-work* tfrag-trees v1-1) this)
|
||||
(set! (-> *background-work* tfrag-levels v1-1) a1-3)
|
||||
)
|
||||
(+! (-> *background-work* tfrag-tree-count) 1)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type drawable-tree-tfrag-trans
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod draw ((this drawable-tree-tfrag-trans))
|
||||
"Draw the drawable, and typically its children.
|
||||
This usually means adding stuff to a list to be drawn later, rather than expensive drawing here."
|
||||
(let ((v1-1 (-> *background-work* tfrag-trans-tree-count))
|
||||
(a1-3 (-> *level* draw-level *draw-index*))
|
||||
)
|
||||
(set! (-> *background-work* tfrag-trans-trees v1-1) this)
|
||||
(set! (-> *background-work* tfrag-trans-levels v1-1) a1-3)
|
||||
)
|
||||
(+! (-> *background-work* tfrag-trans-tree-count) 1)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type drawable-tree-tfrag-water
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod draw ((this drawable-tree-tfrag-water))
|
||||
"Draw the drawable, and typically its children.
|
||||
This usually means adding stuff to a list to be drawn later, rather than expensive drawing here."
|
||||
(let ((v1-1 (-> *background-work* tfrag-water-tree-count))
|
||||
(a1-3 (-> *level* draw-level *draw-index*))
|
||||
)
|
||||
(set! (-> *background-work* tfrag-water-trees v1-1) this)
|
||||
(set! (-> *background-work* tfrag-water-levels v1-1) a1-3)
|
||||
)
|
||||
(+! (-> *background-work* tfrag-water-tree-count) 1)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type tfragment
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod collect-stats ((this tfragment))
|
||||
"Collect triangle/perf statistics for rendering.
|
||||
This is only called when viewing stats.
|
||||
The vis-bits and culling registers are loaded during this time."
|
||||
(stats-tfrag-asm this)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type drawable-tree-tfrag
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod collect-stats ((this drawable-tree-tfrag))
|
||||
"Collect triangle/perf statistics for rendering.
|
||||
This is only called when viewing stats.
|
||||
The vis-bits and culling registers are loaded during this time."
|
||||
(when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask tfrag))
|
||||
(set! (-> *tfrag-work* vu1-enable-tfrag)
|
||||
(the-as int (logand (-> *display* vu1-enable-user) (vu1-renderer-mask tfrag)))
|
||||
)
|
||||
(set! (-> *tfrag-work* vu1-enable-tfrag-scissor)
|
||||
(the-as int (logand (-> *display* vu1-enable-user) (vu1-renderer-mask tfrag)))
|
||||
)
|
||||
(set! (-> *tfrag-work* tr-stat-tfrag) (-> *terrain-stats* tfrag))
|
||||
(set! (-> *tfrag-work* tr-stat-tfrag-scissor) (-> *terrain-stats* tfrag-scissor))
|
||||
(let ((v1-15 (-> *tfrag-work* frag-dists quad)))
|
||||
(set! (-> *tfrag-work* frag-dists quad) v1-15)
|
||||
)
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(collect-stats (-> this arrays s5-0))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type drawable-tree-tfrag-trans
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod collect-stats ((this drawable-tree-tfrag-trans))
|
||||
"Collect triangle/perf statistics for rendering.
|
||||
This is only called when viewing stats.
|
||||
The vis-bits and culling registers are loaded during this time."
|
||||
(when (logtest? (vu1-renderer-mask tfrag-trans) (-> *display* vu1-enable-user))
|
||||
(set! (-> *tfrag-work* vu1-enable-tfrag)
|
||||
(the-as int (logand (vu1-renderer-mask tfrag-trans) (-> *display* vu1-enable-user)))
|
||||
)
|
||||
(set! (-> *tfrag-work* vu1-enable-tfrag-scissor)
|
||||
(the-as int (logand (vu1-renderer-mask tfrag-trans) (-> *display* vu1-enable-user)))
|
||||
)
|
||||
(set! (-> *tfrag-work* tr-stat-tfrag) (-> *terrain-stats* tfrag-trans))
|
||||
(set! (-> *tfrag-work* tr-stat-tfrag-scissor) (-> *terrain-stats* tfrag-scissor-trans))
|
||||
(let ((v1-12 (-> *tfrag-work* frag-dists quad)))
|
||||
(set! (-> *tfrag-work* frag-dists quad) v1-12)
|
||||
)
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(collect-stats (-> this arrays s5-0))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type drawable-tree-tfrag-water
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod collect-stats ((this drawable-tree-tfrag-water))
|
||||
"Collect triangle/perf statistics for rendering.
|
||||
This is only called when viewing stats.
|
||||
The vis-bits and culling registers are loaded during this time."
|
||||
(when (logtest? (vu1-renderer-mask tfrag-water) (-> *display* vu1-enable-user))
|
||||
(set! (-> *tfrag-work* vu1-enable-tfrag)
|
||||
(the-as int (logand (vu1-renderer-mask tfrag-water) (-> *display* vu1-enable-user)))
|
||||
)
|
||||
(set! (-> *tfrag-work* vu1-enable-tfrag-scissor)
|
||||
(the-as int (logand (vu1-renderer-mask tfrag-water) (-> *display* vu1-enable-user)))
|
||||
)
|
||||
(set! (-> *tfrag-work* tr-stat-tfrag) (-> *terrain-stats* tfrag-water))
|
||||
(set! (-> *tfrag-work* tr-stat-tfrag-scissor) (-> *terrain-stats* tfrag-scissor-water))
|
||||
(let ((v1-12 (-> *tfrag-work* frag-dists quad)))
|
||||
(set! (-> *tfrag-work* frag-dists quad) v1-12)
|
||||
)
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(collect-stats (-> this arrays s5-0))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type drawable-inline-array-tfrag
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod collect-stats ((this drawable-inline-array-tfrag))
|
||||
"Collect triangle/perf statistics for rendering.
|
||||
This is only called when viewing stats.
|
||||
The vis-bits and culling registers are loaded during this time."
|
||||
(when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask tfrag))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(let ((s4-0 (-> this data s5-0)))
|
||||
(if (vis-cull (-> s4-0 id))
|
||||
(collect-stats s4-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type drawable-inline-array-tfrag-trans
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod collect-stats ((this drawable-inline-array-tfrag-trans))
|
||||
"Collect triangle/perf statistics for rendering.
|
||||
This is only called when viewing stats.
|
||||
The vis-bits and culling registers are loaded during this time."
|
||||
(when (logtest? (vu1-renderer-mask tfrag-trans) (-> *display* vu1-enable-user))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(let ((s4-0 (-> this data s5-0)))
|
||||
(if (vis-cull (-> s4-0 id))
|
||||
(collect-stats s4-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type drawable-inline-array-tfrag-water
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod collect-stats ((this drawable-inline-array-tfrag-water))
|
||||
"Collect triangle/perf statistics for rendering.
|
||||
This is only called when viewing stats.
|
||||
The vis-bits and culling registers are loaded during this time."
|
||||
(when (logtest? (vu1-renderer-mask tfrag-water) (-> *display* vu1-enable-user))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(let ((s4-0 (-> this data s5-0)))
|
||||
(if (vis-cull (-> s4-0 id))
|
||||
(collect-stats s4-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 14 of type drawable-tree-tfrag
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod debug-draw ((this drawable-tree-tfrag))
|
||||
"Debug-draw a drawable and its children. Typically uses the debug-draw functions."
|
||||
(when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask tfrag))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(debug-draw (-> this arrays s5-0))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 14 of type drawable-tree-tfrag-trans
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod debug-draw ((this drawable-tree-tfrag-trans))
|
||||
"Debug-draw a drawable and its children. Typically uses the debug-draw functions."
|
||||
(when (logtest? (vu1-renderer-mask tfrag-trans) (-> *display* vu1-enable-user))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(debug-draw (-> this arrays s5-0))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 14 of type drawable-tree-tfrag-water
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod debug-draw ((this drawable-tree-tfrag-water))
|
||||
"Debug-draw a drawable and its children. Typically uses the debug-draw functions."
|
||||
(when (logtest? (vu1-renderer-mask tfrag-water) (-> *display* vu1-enable-user))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(debug-draw (-> this arrays s5-0))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 14 of type drawable-inline-array-tfrag
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod debug-draw ((this drawable-inline-array-tfrag))
|
||||
"Debug-draw a drawable and its children. Typically uses the debug-draw functions."
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(let ((s4-0 (-> this data s5-0)))
|
||||
(if (vis-cull (-> s4-0 id))
|
||||
(debug-draw s4-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 14 of type tfragment
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod debug-draw ((this tfragment))
|
||||
"Debug-draw a drawable and its children. Typically uses the debug-draw functions."
|
||||
(-> *display* frames (-> *display* on-screen) global-buf)
|
||||
(edge-debug-lines (-> this debug-data debug-lines))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol tnear-vu1-block, type vu-function
|
||||
(define tnear-vu1-block (new 'static 'vu-function :length #x38b :qlength #x1c6))
|
||||
|
||||
;; definition (debug) for function tfrag-details
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defun-debug tfrag-details ((arg0 tfragment))
|
||||
(format 0 "id = ~d~%" (-> arg0 id))
|
||||
(format 0 "common:~%")
|
||||
(let ((s5-0 (-> arg0 dma-qwc 0))
|
||||
(s4-0 (-> arg0 dma-common))
|
||||
)
|
||||
(format 0 "qwc = ~d, ref = ~x~%" s5-0 s4-0)
|
||||
(disasm-vif-tag (the-as (pointer vif-tag) s4-0) (the-as int (* s5-0 4)) (the-as symbol 0) #t)
|
||||
)
|
||||
(format 0 "base:~%")
|
||||
(let ((s5-1 (-> arg0 dma-qwc 1))
|
||||
(s4-1 (-> arg0 dma-base))
|
||||
)
|
||||
(format 0 "qwc = ~d, ref = ~x~%" s5-1 s4-1)
|
||||
(disasm-vif-tag (the-as (pointer vif-tag) s4-1) (the-as int (* s5-1 4)) (the-as symbol 0) #t)
|
||||
)
|
||||
(format 0 "level-0:~%")
|
||||
(let ((s5-2 (-> arg0 dma-qwc 3))
|
||||
(s4-2 (-> arg0 dma-qwc-word))
|
||||
)
|
||||
(format 0 "qwc = ~d, ref = ~x~%" s5-2 s4-2)
|
||||
(disasm-vif-tag (the-as (pointer vif-tag) s4-2) (the-as int (* s5-2 4)) (the-as symbol 0) #t)
|
||||
)
|
||||
(format 0 "level-1:~%")
|
||||
(let ((s5-3 (-> arg0 dma-qwc 2))
|
||||
(gp-1 (-> arg0 dma-level-1))
|
||||
)
|
||||
(format 0 "qwc = ~d, ref = ~x~%" s5-3 gp-1)
|
||||
(disasm-vif-tag (the-as (pointer vif-tag) gp-1) (the-as int (* s5-3 4)) (the-as symbol 0) #t)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition (debug) for function clip-restore
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch vector vs none.
|
||||
(defun-debug clip-restore ()
|
||||
(let ((a0-0 (new-stack-vector0))
|
||||
(a1-0 (new 'stack-no-clear 'matrix))
|
||||
)
|
||||
(set! (-> a1-0 rvec quad) (the-as uint128 0))
|
||||
(set! (-> a1-0 uvec quad) (the-as uint128 0))
|
||||
(set! (-> a1-0 fvec quad) (the-as uint128 0))
|
||||
(set! (-> a1-0 trans quad) (the-as uint128 0))
|
||||
(set! (-> a0-0 x) 92648.22)
|
||||
(set! (-> a0-0 y) 238025.03)
|
||||
(set! (-> a0-0 z) 199836.31)
|
||||
(set! (-> a0-0 w) 1.0)
|
||||
(set! (-> a1-0 rvec x) -0.9283)
|
||||
(set! (-> a1-0 rvec y) 0.0)
|
||||
(set! (-> a1-0 rvec z) 0.3716)
|
||||
(set! (-> a1-0 rvec w) 0.0)
|
||||
(set! (-> a1-0 uvec x) -0.2257)
|
||||
(set! (-> a1-0 uvec y) 0.7945)
|
||||
(set! (-> a1-0 uvec z) -0.5637)
|
||||
(set! (-> a1-0 uvec w) 0.0)
|
||||
(set! (-> a1-0 fvec x) -0.2952)
|
||||
(set! (-> a1-0 fvec y) -0.6072)
|
||||
(set! (-> a1-0 fvec z) -0.7375)
|
||||
(set! (-> a1-0 fvec w) 0.0)
|
||||
(set! (-> a1-0 trans x) 0.0)
|
||||
(set! (-> a1-0 trans y) 0.0)
|
||||
(set! (-> a1-0 trans z) 0.0)
|
||||
(set! (-> a1-0 trans w) 1.0)
|
||||
(debug-set-camera-pos-rot! a0-0 a1-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol *tfrag-work*, type tfrag-work
|
||||
(define *tfrag-work* (new 'static 'tfrag-work
|
||||
:base-tmpl (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
|
||||
)
|
||||
:level-0-tmpl (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
|
||||
)
|
||||
:common-tmpl (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
|
||||
)
|
||||
:level-1-tmpl (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
|
||||
)
|
||||
:color-tmpl (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id cnt))
|
||||
:vif0 (new 'static 'vif-tag :imm #x102 :cmd (vif-cmd stcycl))
|
||||
:vif1 (new 'static 'vif-tag :imm #xc000 :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:max-fragment #xffff
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *tfrag-work* color-ptr x) (+ 6144 #x70000000))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *tfrag-work* color-ptr y) (+ 6144 #x70000000))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *tfrag-work* color-ptr z) (+ 6144 #x70000000))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *tfrag-work* color-ptr w) (+ 6144 #x70000000))
|
||||
|
||||
|
||||
|
||||
|
||||
+618
@@ -0,0 +1,618 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for method 9 of type tfragment
|
||||
(defmethod login ((this tfragment))
|
||||
"Initialize the object after it is loaded."
|
||||
(when (nonzero? *texture-masks-array*)
|
||||
(dotimes (s5-0 (the-as int (-> this num-shaders)))
|
||||
(let ((v1-3 (adgif-shader-login-no-remap (-> this shader s5-0)))
|
||||
(a0-7 (-> *texture-masks-array* data (-> this texture-masks-index)))
|
||||
)
|
||||
(when v1-3
|
||||
(dotimes (a1-3 3)
|
||||
(dotimes (a2-0 3)
|
||||
(set! (-> (the-as (pointer int32) (+ (+ (* a1-3 16) (* a2-0 4)) (the-as int a0-7))))
|
||||
(logior (-> (the-as (pointer int32) (+ (* a2-0 4) (the-as int a0-7) (* a1-3 16))) 0)
|
||||
(-> (the-as texture (+ (* a2-0 4) (the-as int v1-3) (* a1-3 16))) masks data 0 mask x)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-7 data a1-3 dist) (fmax (-> a0-7 data a1-3 dist) (-> v1-3 masks data a1-3 dist)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 8 of type tfragment
|
||||
(defmethod mem-usage ((this tfragment) (usage memory-usage-block) (flags int))
|
||||
(when (logtest? flags 2)
|
||||
(+! (-> usage data 19 count) 1)
|
||||
(let ((v1-6 (+ (-> this num-base-colors) (-> this num-level0-colors) (-> this num-level1-colors))))
|
||||
(+! (-> usage data 19 used) v1-6)
|
||||
(+! (-> usage data 19 total) (logand -4 (+ v1-6 3)))
|
||||
)
|
||||
(set! this this)
|
||||
(goto cfg-16)
|
||||
)
|
||||
(let ((s4-0 1))
|
||||
(set! (-> usage length) (max (-> usage length) (+ s4-0 8)))
|
||||
(set! (-> usage data s4-0 name) "tfragment")
|
||||
(+! (-> usage data s4-0 count) 1)
|
||||
(let ((v1-20 (asize-of this)))
|
||||
(+! (-> usage data s4-0 used) v1-20)
|
||||
(+! (-> usage data s4-0 total) (logand -16 (+ v1-20 15)))
|
||||
)
|
||||
(set! (-> usage data (+ s4-0 1) name) "tfragment-base")
|
||||
(+! (-> usage data (+ s4-0 1) count) 1)
|
||||
(let ((v1-31 (* (-> this dma-qwc 0) 16)))
|
||||
(+! (-> usage data (+ s4-0 1) used) v1-31)
|
||||
(+! (-> usage data (+ s4-0 1) total) v1-31)
|
||||
)
|
||||
(set! (-> usage data (+ s4-0 2) name) "tfragment-common")
|
||||
(+! (-> usage data (+ s4-0 2) count) 1)
|
||||
(let ((v1-41 (* (- (-> this dma-qwc 1) (-> this dma-qwc 0)) 16)))
|
||||
(+! (-> usage data (+ s4-0 2) used) v1-41)
|
||||
(+! (-> usage data (+ s4-0 2) total) v1-41)
|
||||
)
|
||||
(set! (-> usage data (+ s4-0 3) name) "tfragment-level0")
|
||||
(when (nonzero? (-> this num-level0-colors))
|
||||
(+! (-> usage data (+ s4-0 3) count) 1)
|
||||
(let ((v1-53 (* (- (-> this dma-qwc 2) (-> this dma-qwc 0)) 16)))
|
||||
(+! (-> usage data (+ s4-0 3) used) v1-53)
|
||||
(+! (-> usage data (+ s4-0 3) total) v1-53)
|
||||
)
|
||||
)
|
||||
(set! (-> usage data (+ s4-0 4) name) "tfragment-level1")
|
||||
(when (not (or (= (-> this dma-level-1) (-> this dma-common))
|
||||
(= (-> this dma-level-1) (-> this dma-base))
|
||||
(zero? (-> this num-level1-colors))
|
||||
)
|
||||
)
|
||||
(+! (-> usage data (+ s4-0 4) count) 1)
|
||||
(let ((v1-68 (* (- (-> this dma-qwc 3)
|
||||
(- (/ (the-as int (- (-> this dma-level-1) (-> this dma-common))) 16) (-> this dma-qwc 0))
|
||||
)
|
||||
16
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! (-> usage data (+ s4-0 4) used) v1-68)
|
||||
(+! (-> usage data (+ s4-0 4) total) v1-68)
|
||||
)
|
||||
)
|
||||
(set! (-> usage data (+ s4-0 5) name) "tfragment-color")
|
||||
(+! (-> usage data (+ s4-0 5) count) 1)
|
||||
(let ((v1-77
|
||||
(if (logtest? flags 1)
|
||||
0
|
||||
(the-as int (* (+ (-> this num-base-colors) (-> this num-level0-colors) (-> this num-level1-colors)) 2))
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! (-> usage data (+ s4-0 5) used) v1-77)
|
||||
(+! (-> usage data (+ s4-0 5) total) (logand -16 (+ v1-77 15)))
|
||||
)
|
||||
(set! (-> usage data (+ s4-0 6) name) "tfragment-debug")
|
||||
)
|
||||
(label cfg-16)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 3 of type drawable-inline-array-tfrag
|
||||
(defmethod inspect ((this drawable-inline-array-tfrag))
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~Tlength: ~D~%" (-> this length))
|
||||
(format #t "~Tdata[~D]: @ #x~X~%" (-> this length) (-> this data))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(format #t "~T [~D] ~A~%" s5-0 (-> this data s5-0))
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 9 of type drawable-inline-array-tfrag
|
||||
(defmethod login ((this drawable-inline-array-tfrag))
|
||||
"Initialize the object after it is loaded."
|
||||
(set! *texture-masks-array* (-> *level* level *level-index* bsp tfrag-masks))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(login (-> this data s5-0))
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 9 of type drawable-inline-array-tfrag-trans
|
||||
(defmethod login ((this drawable-inline-array-tfrag-trans))
|
||||
"Initialize the object after it is loaded."
|
||||
(set! *texture-masks-array* (-> *level* level *level-index* bsp alpha-masks))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(login (-> this data s5-0))
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 9 of type drawable-inline-array-tfrag-water
|
||||
(defmethod login ((this drawable-inline-array-tfrag-water))
|
||||
"Initialize the object after it is loaded."
|
||||
(set! *texture-masks-array* (-> *level* level *level-index* bsp water-masks))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(login (-> this data s5-0))
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 8 of type drawable-inline-array-tfrag
|
||||
(defmethod mem-usage ((this drawable-inline-array-tfrag) (usage memory-usage-block) (flags int))
|
||||
(set! (-> usage length) (max 1 (-> usage length)))
|
||||
(set! (-> usage data 0 name) "drawable-group")
|
||||
(+! (-> usage data 0 count) 1)
|
||||
(let ((v1-5 32))
|
||||
(+! (-> usage data 0 used) v1-5)
|
||||
(+! (-> usage data 0 total) (logand -16 (+ v1-5 15)))
|
||||
)
|
||||
(dotimes (s3-0 (-> this length))
|
||||
(mem-usage (-> this data s3-0) usage flags)
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 8 of type drawable-tree-tfrag
|
||||
(defmethod mem-usage ((this drawable-tree-tfrag) (usage memory-usage-block) (flags int))
|
||||
(set! (-> usage length) (max 1 (-> usage length)))
|
||||
(set! (-> usage data 0 name) "drawable-group")
|
||||
(+! (-> usage data 0 count) 1)
|
||||
(let ((v1-6 (asize-of this)))
|
||||
(+! (-> usage data 0 used) v1-6)
|
||||
(+! (-> usage data 0 total) (logand -16 (+ v1-6 15)))
|
||||
)
|
||||
(when (nonzero? (-> this time-of-day-pal))
|
||||
(set! (-> usage length) (max 9 (-> usage length)))
|
||||
(set! (-> usage data 8 name) "tfragment-pal")
|
||||
(+! (-> usage data 8 count) 1)
|
||||
(let ((v1-18 (asize-of (-> this time-of-day-pal))))
|
||||
(+! (-> usage data 8 used) v1-18)
|
||||
(+! (-> usage data 8 total) (logand -16 (+ v1-18 15)))
|
||||
)
|
||||
)
|
||||
(dotimes (s3-0 (-> this length))
|
||||
(mem-usage (-> this arrays s3-0) usage flags)
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 5 of type drawable-inline-array-tfrag
|
||||
;; WARN: Return type mismatch uint vs int.
|
||||
(defmethod asize-of ((this drawable-inline-array-tfrag))
|
||||
(the-as int (+ (-> drawable-inline-array-tfrag size) (* (+ (-> this length) -1) 64)))
|
||||
)
|
||||
|
||||
;; definition for symbol *tfrag-display-stats*, type symbol
|
||||
(define *tfrag-display-stats* #f)
|
||||
|
||||
;; definition for symbol tfrag-vu1-block, type vu-function
|
||||
(define tfrag-vu1-block (new 'static 'vu-function :length #x74b :qlength #x3a6))
|
||||
|
||||
;; definition for function tfrag-data-setup
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch tfrag-data vs none.
|
||||
(defun tfrag-data-setup ((arg0 tfrag-data) (arg1 int) (arg2 int))
|
||||
"Set up VU1 constants"
|
||||
(let ((v1-0 *math-camera*))
|
||||
(let ((a0-1 (-> arg0 data)))
|
||||
(set! (-> a0-1 0) (the-as uint (-> v1-0 pfog0)))
|
||||
(set! (-> a0-1 1) (the-as uint (-> v1-0 fog-min)))
|
||||
(set! (-> a0-1 2) (the-as uint (-> v1-0 fog-max)))
|
||||
(set! (-> a0-1 3) (the-as uint 3072.0))
|
||||
)
|
||||
(set-vector! (-> arg0 val) 0.5 1.0 2048.0 0.0)
|
||||
(set-vector! (-> arg0 ambient) 1.0 1.0 1.0 1.0)
|
||||
(let ((a0-4 arg2))
|
||||
(cond
|
||||
((zero? a0-4)
|
||||
(set! (-> arg0 strgif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :tme #x1 :fge #x1 :abe arg1)
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 fangif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :tme #x1 :fge #x1 :abe arg1)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= a0-4 1)
|
||||
(set! (-> arg0 strgif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type line-strip) :iip #x1 :tme #x1 :fge #x1 :abe arg1)
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 fangif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type line-strip) :iip #x1 :tme #x1 :fge #x1 :abe arg1)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= a0-4 2)
|
||||
(set! (-> arg0 strgif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :fge #x1 :abe arg1)
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 fangif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :fge #x1 :abe arg1)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= a0-4 3)
|
||||
(set! (-> arg0 strgif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type line-strip) :iip #x1 :tme #x1 :fge #x1 :abe arg1)
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 fangif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :tme #x1 :fge #x1 :abe arg1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 strgif regs)
|
||||
(new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2))
|
||||
)
|
||||
(set! (-> arg0 fangif regs)
|
||||
(new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2))
|
||||
)
|
||||
(set! (-> arg0 adgif tag) (new 'static 'gif-tag64 :nloop #x5 :nreg #x1))
|
||||
(set! (-> arg0 adgif regs) (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d)))
|
||||
(set! (-> arg0 hvdf-offset quad) (-> v1-0 hvdf-off quad))
|
||||
(set! (-> arg0 hmge-scale quad) (-> v1-0 hmge-scale quad))
|
||||
(set! (-> arg0 invh-scale quad) (-> v1-0 inv-hmge-scale quad))
|
||||
(set! (-> arg0 guard quad) (-> v1-0 guard quad))
|
||||
)
|
||||
(set-tfrag-dists! (-> arg0 dists))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function add-tfrag-mtx-0
|
||||
;; WARN: Return type mismatch pointer vs none.
|
||||
(defun add-tfrag-mtx-0 ((arg0 dma-buffer) (arg1 symbol))
|
||||
"Add DMA for transferring matrix0 (same as matrix1)"
|
||||
(let* ((a2-0 4)
|
||||
(v1-0 arg0)
|
||||
(a0-1 (the-as dma-packet (-> v1-0 base)))
|
||||
)
|
||||
(set! (-> a0-1 dma) (new 'static 'dma-tag :id (dma-tag-id cnt) :qwc a2-0))
|
||||
(set! (-> a0-1 vif0) (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)))
|
||||
(set! (-> a0-1 vif1) (new 'static 'vif-tag :imm #x5 :cmd (vif-cmd unpack-v4-32) :num a2-0))
|
||||
(set! (-> v1-0 base) (the-as pointer (&+ a0-1 16)))
|
||||
)
|
||||
(if arg1
|
||||
(column-scale-matrix!
|
||||
(the-as matrix (-> arg0 base))
|
||||
(new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
|
||||
(-> *math-camera* camera-temp-other)
|
||||
)
|
||||
(column-scale-matrix!
|
||||
(the-as matrix (-> arg0 base))
|
||||
(new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
|
||||
(-> *math-camera* camera-temp)
|
||||
)
|
||||
)
|
||||
(&+! (-> arg0 base) 64)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function add-tfrag-mtx-1
|
||||
;; WARN: Return type mismatch pointer vs none.
|
||||
(defun add-tfrag-mtx-1 ((arg0 dma-buffer) (arg1 symbol))
|
||||
"Add DMA for transferring matrix1 (same as matrix0)"
|
||||
(let* ((a2-0 4)
|
||||
(v1-0 arg0)
|
||||
(a0-1 (the-as dma-packet (-> v1-0 base)))
|
||||
)
|
||||
(set! (-> a0-1 dma) (new 'static 'dma-tag :id (dma-tag-id cnt) :qwc a2-0))
|
||||
(set! (-> a0-1 vif0) (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)))
|
||||
(set! (-> a0-1 vif1) (new 'static 'vif-tag :imm #x14d :cmd (vif-cmd unpack-v4-32) :num a2-0))
|
||||
(set! (-> v1-0 base) (the-as pointer (&+ a0-1 16)))
|
||||
)
|
||||
(if arg1
|
||||
(column-scale-matrix!
|
||||
(the-as matrix (-> arg0 base))
|
||||
(new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
|
||||
(-> *math-camera* camera-temp-other)
|
||||
)
|
||||
(column-scale-matrix!
|
||||
(the-as matrix (-> arg0 base))
|
||||
(new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0)
|
||||
(-> *math-camera* camera-temp)
|
||||
)
|
||||
)
|
||||
(&+! (-> arg0 base) 64)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function add-tfrag-data
|
||||
;; WARN: Return type mismatch dma-packet vs none.
|
||||
(defun add-tfrag-data ((arg0 dma-buffer) (arg1 int) (arg2 int))
|
||||
"Add DMA for tfrag constants."
|
||||
(let* ((a3-0 14)
|
||||
(v1-0 arg0)
|
||||
(a0-1 (the-as dma-packet (-> v1-0 base)))
|
||||
)
|
||||
(set! (-> a0-1 dma) (new 'static 'dma-tag :id (dma-tag-id cnt) :qwc a3-0))
|
||||
(set! (-> a0-1 vif0) (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)))
|
||||
(set! (-> a0-1 vif1) (new 'static 'vif-tag :imm #x290 :cmd (vif-cmd unpack-v4-32) :num a3-0))
|
||||
(set! (-> v1-0 base) (the-as pointer (&+ a0-1 16)))
|
||||
)
|
||||
(tfrag-data-setup (the-as tfrag-data (-> arg0 base)) arg1 arg2)
|
||||
(&+! (-> arg0 base) 224)
|
||||
(let ((v1-3 (the-as dma-packet (-> arg0 base))))
|
||||
(set! (-> v1-3 dma) (new 'static 'dma-tag :id (dma-tag-id cnt)))
|
||||
(set! (-> v1-3 vif0) (new 'static 'vif-tag))
|
||||
(set! (-> v1-3 vif1) (new 'static 'vif-tag :cmd (vif-cmd mscal) :msk #x1))
|
||||
(set! (-> arg0 base) (the-as pointer (&+ v1-3 16)))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for symbol t-stat, type tfrag-stats
|
||||
(define t-stat (new 'global 'tfrag-stats))
|
||||
|
||||
;; definition for function tfrag-print-stats
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defun tfrag-print-stats ((arg0 symbol))
|
||||
"Print out accumulated tfrag stats."
|
||||
(when (and *tfrag-display-stats* (!= *master-mode* 'menu))
|
||||
(format arg0 "~%")
|
||||
(format arg0 "tris: ~8d~%" (-> t-stat tris))
|
||||
(format arg0 "verts: ~8d~%" (+ (-> t-stat base-verts) (-> t-stat level0-verts) (-> t-stat level1-verts)))
|
||||
(format arg0 " base: ~8d~%" (-> t-stat base-verts))
|
||||
(format arg0 " lev0: ~8d~%" (-> t-stat level0-verts))
|
||||
(format arg0 " lev1: ~8d~%" (-> t-stat level1-verts))
|
||||
(format arg0 "tfaces: ~8d~%" (-> t-stat tfaces))
|
||||
(format arg0 "tfrags: ~8d~%" (-> t-stat tfrags))
|
||||
(format arg0 "dtris: ~8d~%" (-> t-stat dtris))
|
||||
(format arg0 "dps: ~8d~%" (-> t-stat drawpoints))
|
||||
(format arg0 "strips: ~8d~%" (-> t-stat strips))
|
||||
(format arg0 "shaders:~8d~%" (-> t-stat dma-tex))
|
||||
(format arg0 "tri/str:~8f~%" (/ (the float (-> t-stat dtris)) (the float (-> t-stat strips))))
|
||||
(format arg0 "dma-cnt:~8d (~8d)~%" (-> t-stat dma-cnt) (* (-> t-stat dma-cnt) 32))
|
||||
(format arg0 "dma-dta:~8d (~8d)~%" (-> t-stat dma-dta) (/ (* 33 (-> t-stat dma-dta)) 10))
|
||||
(let ((f0-4 (* 32.0 (the float (-> t-stat dma-cnt))))
|
||||
(f1-5 (* 3.3 (the float (-> t-stat dma-dta))))
|
||||
(f2-3 (* 30.0 (the float (-> t-stat tfrags))))
|
||||
)
|
||||
(+ f0-4 f1-5 f2-3)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> t-stat from) 0)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> t-stat to) 0)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> t-stat cnt) 0)
|
||||
|
||||
;; definition for function tfrag-init-buffer
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defun tfrag-init-buffer ((arg0 dma-buffer) (arg1 gs-test) (arg2 int) (arg3 symbol))
|
||||
"Initialize DMA bucket for Tfrag rendering."
|
||||
(let ((v1-0 *display*)
|
||||
(a0-6 (+ (* (+ (/ (-> tfrag-vu1-block qlength) 127) 1) 16) 480))
|
||||
)
|
||||
(+! (-> v1-0 mem-reserve-size) a0-6)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let ((a2-1 (-> v1-0 frames (-> v1-0 on-screen) global-buf)))
|
||||
(if (< (-> a2-1 real-buffer-end) (the-as int (&+ (-> a2-1 base) a0-6)))
|
||||
(set! (-> v1-0 dma-buffer-overflow) #t)
|
||||
)
|
||||
)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(dma-buffer-add-vu-function arg0 tfrag-vu1-block 1)
|
||||
(dma-buffer-add-gs-set arg0 (test-1 arg1))
|
||||
(add-tfrag-mtx-0 arg0 arg3)
|
||||
(add-tfrag-mtx-1 arg0 arg3)
|
||||
(add-tfrag-data arg0 arg2 (the-as int *subdivide-draw-mode*))
|
||||
(let ((v1-5 (the-as dma-packet (-> arg0 base))))
|
||||
(set! (-> v1-5 dma) (new 'static 'dma-tag :id (dma-tag-id cnt)))
|
||||
(set! (-> v1-5 vif0) (new 'static 'vif-tag :cmd (vif-cmd base)))
|
||||
(set! (-> v1-5 vif1) (new 'static 'vif-tag :imm #x148 :cmd (vif-cmd offset)))
|
||||
(set! (-> arg0 base) (the-as pointer (&+ v1-5 16)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function tfrag-end-buffer
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defun tfrag-end-buffer ((arg0 dma-buffer) (arg1 int))
|
||||
"Finalize DMA bucket for tfrag rendering."
|
||||
(let ((v1-0 *display*)
|
||||
(a2-0 64)
|
||||
)
|
||||
(+! (-> v1-0 mem-reserve-size) a2-0)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let ((t0-0 (-> v1-0 frames (-> v1-0 on-screen) global-buf)))
|
||||
(if (< (-> t0-0 real-buffer-end) (the-as int (&+ (-> t0-0 base) a2-0)))
|
||||
(set! (-> v1-0 dma-buffer-overflow) #t)
|
||||
)
|
||||
)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let* ((v1-2 arg0)
|
||||
(a2-4 (the-as dma-packet (-> v1-2 base)))
|
||||
)
|
||||
(set! (-> a2-4 dma) (new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt)))
|
||||
(set! (-> a2-4 vif0) (new 'static 'vif-tag :cmd (vif-cmd stmask)))
|
||||
(set! (-> a2-4 vif1) (new 'static 'vif-tag))
|
||||
(set! (-> v1-2 base) (the-as pointer (&+ a2-4 16)))
|
||||
)
|
||||
(let* ((v1-3 arg0)
|
||||
(a0-1 (-> v1-3 base))
|
||||
)
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 0) (the-as vif-tag arg1))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 1) (new 'static 'vif-tag :cmd (vif-cmd flusha) :msk #x1))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 2) (new 'static 'vif-tag :cmd (vif-cmd stmod)))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 3) (new 'static 'vif-tag :cmd (vif-cmd strow) :msk #x1))
|
||||
(set! (-> (the-as (pointer int32) a0-1) 4) 0)
|
||||
(set! (-> (the-as (pointer int32) a0-1) 5) 0)
|
||||
(set! (-> (the-as (pointer int32) a0-1) 6) 0)
|
||||
(set! (-> (the-as (pointer int32) a0-1) 7) 0)
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 8) (new 'static 'vif-tag :cmd (vif-cmd base)))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 9) (new 'static 'vif-tag :cmd (vif-cmd offset)))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 10) (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 11) (new 'static 'vif-tag))
|
||||
(set! (-> v1-3 base) (&+ a0-1 48))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function draw-inline-array-tfrag
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
;; definition for function tfrag-scissor-init-buffer
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
;; ERROR: Failed store: (s.w! (+ v1-5 8) a0-21) at op 77
|
||||
;; ERROR: Failed store: (s.w! (+ v1-5 12) a0-22) at op 79
|
||||
(defun tfrag-scissor-init-buffer ((arg0 dma-buffer) (arg1 gs-test) (arg2 int) (arg3 symbol))
|
||||
(let ((v1-0 *display*)
|
||||
(a0-6 (+ (* (+ (/ (-> tnear-vu1-block qlength) 127) 1) 16) 496))
|
||||
)
|
||||
(+! (-> v1-0 mem-reserve-size) a0-6)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let ((a2-1 (-> v1-0 frames (-> v1-0 on-screen) global-buf)))
|
||||
(if (< (-> a2-1 real-buffer-end) (the-as int (&+ (-> a2-1 base) a0-6)))
|
||||
(set! (-> v1-0 dma-buffer-overflow) #t)
|
||||
)
|
||||
)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(dma-buffer-add-vu-function arg0 tnear-vu1-block 1)
|
||||
(dma-buffer-add-gs-set arg0 (test-1 arg1))
|
||||
(add-tfrag-mtx-0 arg0 arg3)
|
||||
(add-tfrag-mtx-1 arg0 arg3)
|
||||
(add-tfrag-data arg0 arg2 (the-as int *subdivide-scissor-draw-mode*))
|
||||
(let ((v1-5 (-> arg0 base)))
|
||||
(set! (-> (the-as (pointer int64) v1-5)) #x10000000)
|
||||
(let ((a0-21 #x3000000))
|
||||
(s.w! (+ v1-5 8) a0-21)
|
||||
)
|
||||
(let ((a0-22 #x2000148))
|
||||
(s.w! (+ v1-5 12) a0-22)
|
||||
)
|
||||
(set! (-> arg0 base) (&+ v1-5 16))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function tfrag-scissor-end-buffer
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
;; ERROR: Failed store: (s.w! (+ a2-4 8) a3-11) at op 25
|
||||
;; ERROR: Failed store: (s.w! (+ a2-4 12) 0) at op 26
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 4) a1-1) at op 33
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 8) a1-2) at op 35
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 12) a1-3) at op 37
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 16) 0) at op 38
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 20) 0) at op 39
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 24) 0) at op 40
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 28) 0) at op 41
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 32) a1-4) at op 43
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 36) a1-5) at op 45
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 40) a1-6) at op 47
|
||||
;; ERROR: Failed store: (s.w! (+ a0-1 44) 0) at op 48
|
||||
(defun tfrag-scissor-end-buffer ((arg0 dma-buffer) (arg1 uint))
|
||||
(let ((v1-0 *display*)
|
||||
(a2-0 64)
|
||||
)
|
||||
(+! (-> v1-0 mem-reserve-size) a2-0)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let ((t0-0 (-> v1-0 frames (-> v1-0 on-screen) global-buf)))
|
||||
(if (< (-> t0-0 real-buffer-end) (the-as int (&+ (-> t0-0 base) a2-0)))
|
||||
(set! (-> v1-0 dma-buffer-overflow) #t)
|
||||
)
|
||||
)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let* ((v1-2 arg0)
|
||||
(a2-4 (-> v1-2 base))
|
||||
)
|
||||
(set! (-> (the-as (pointer int64) a2-4)) #x10000003)
|
||||
(let ((a3-11 #x20000000))
|
||||
(s.w! (+ a2-4 8) a3-11)
|
||||
)
|
||||
(s.w! (+ a2-4 12) 0)
|
||||
(set! (-> v1-2 base) (&+ a2-4 16))
|
||||
)
|
||||
(let* ((v1-3 arg0)
|
||||
(a0-1 (-> v1-3 base))
|
||||
)
|
||||
(set! (-> (the-as (pointer uint32) a0-1)) arg1)
|
||||
(let ((a1-1 #x13000000))
|
||||
(s.w! (+ a0-1 4) a1-1)
|
||||
)
|
||||
(let ((a1-2 #x5000000))
|
||||
(s.w! (+ a0-1 8) a1-2)
|
||||
)
|
||||
(let ((a1-3 #x30000000))
|
||||
(s.w! (+ a0-1 12) a1-3)
|
||||
)
|
||||
(s.w! (+ a0-1 16) 0)
|
||||
(s.w! (+ a0-1 20) 0)
|
||||
(s.w! (+ a0-1 24) 0)
|
||||
(s.w! (+ a0-1 28) 0)
|
||||
(let ((a1-4 #x3000000))
|
||||
(s.w! (+ a0-1 32) a1-4)
|
||||
)
|
||||
(let ((a1-5 #x2000000))
|
||||
(s.w! (+ a0-1 36) a1-5)
|
||||
)
|
||||
(let ((a1-6 #x1000404))
|
||||
(s.w! (+ a0-1 40) a1-6)
|
||||
)
|
||||
(s.w! (+ a0-1 44) 0)
|
||||
(set! (-> v1-3 base) (&+ a0-1 48))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function draw-inline-array-tfrag-scissor
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
;; definition for function stats-tfrag-asm
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
|
||||
|
||||
|
||||
Generated
Vendored
Generated
Vendored
+2317
File diff suppressed because it is too large
Load Diff
+176
@@ -0,0 +1,176 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol *instance-tie-work*, type instance-tie-work
|
||||
(define *instance-tie-work* (new 'static 'instance-tie-work
|
||||
:wind-const (new 'static 'vector :x 0.5 :y 100.0 :z 0.0166 :w -1.0)
|
||||
:constant (new 'static 'vector :x 4096.0 :y 128.0)
|
||||
:far-morph (new 'static 'vector :x 1.0 :w 256.0)
|
||||
:upload-color-0 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id ref))
|
||||
:vif1 (new 'static 'vif-tag :imm #x80c6 :num #x6 :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
:upload-color-1 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :cmd (vif-cmd stmod))
|
||||
:vif1 (new 'static 'vif-tag :imm #xc0cc :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:upload-color-2 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id next))
|
||||
:vif0 (new 'static 'vif-tag :cmd (vif-cmd stmod))
|
||||
)
|
||||
:upload-color-ret (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ret))
|
||||
:vif0 (new 'static 'vif-tag :cmd (vif-cmd stmod))
|
||||
)
|
||||
:generic-color-0 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #x3)
|
||||
)
|
||||
:generic-color-1 (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id ref)))
|
||||
:generic-color-end (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id end)))
|
||||
:envmap-color-0 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :qwc #x8 :id (dma-tag-id ref))
|
||||
:vif1 (new 'static 'vif-tag :imm #x8000 :num #x8 :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
:envmap-color-1 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :cmd (vif-cmd stmod))
|
||||
:vif1 (new 'static 'vif-tag :imm #xc008 :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:refl-fade-fac -0.000625
|
||||
:refl-fade-end 409600.0
|
||||
:use-etie #t
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *instance-tie-work* upload-color-2 vif1) (new 'static 'vif-tag :cmd (vif-cmd mscal) :msk #x1))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *instance-tie-work* upload-color-ret vif1) (new 'static 'vif-tag :cmd (vif-cmd mscal) :msk #x1))
|
||||
|
||||
;; definition for symbol *prototype-tie-work*, type prototype-tie-work
|
||||
(define *prototype-tie-work* (new 'static 'prototype-tie-work
|
||||
:upload-flushe (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id cnt))
|
||||
:vif0 (new 'static 'vif-tag :cmd (vif-cmd flushe) :msk #x1)
|
||||
)
|
||||
:upload-palette (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :qwc #x20 :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #x1 :cmd (vif-cmd stmod))
|
||||
:vif1 (new 'static 'vif-tag :imm #x4346 :num #x80 :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:upload-model-0 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :cmd (vif-cmd stmod))
|
||||
:vif1 (new 'static 'vif-tag :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
:upload-model-1 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif1 (new 'static 'vif-tag :imm #x4000 :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:upload-model-2 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif1 (new 'static 'vif-tag :imm #x32 :cmd (vif-cmd unpack-v4-16))
|
||||
)
|
||||
:upload-model-3 (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id call)))
|
||||
:upload-model-near-0 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :cmd (vif-cmd stmod))
|
||||
:vif1 (new 'static 'vif-tag :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
:upload-model-near-1 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif1 (new 'static 'vif-tag :imm #x4000 :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:upload-model-near-2 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif1 (new 'static 'vif-tag :imm #x1e :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:upload-model-near-3 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif1 (new 'static 'vif-tag :imm #x32 :cmd (vif-cmd unpack-v4-16))
|
||||
)
|
||||
:upload-model-near-4 (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id call)))
|
||||
:envmap-palette (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :qwc #x20 :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #x1 :cmd (vif-cmd stmod))
|
||||
:vif1 (new 'static 'vif-tag :imm #x4302 :num #x80 :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:envmap-shader (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :qwc #x5 :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :cmd (vif-cmd stmod))
|
||||
:vif1 (new 'static 'vif-tag :imm #x387 :num #x5 :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
:upload-envmap-0 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #xb8 :cmd (vif-cmd base))
|
||||
:vif1 (new 'static 'vif-tag :cmd (vif-cmd unpack-v4-32))
|
||||
)
|
||||
:upload-envmap-1 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #x20 :cmd (vif-cmd offset))
|
||||
:vif1 (new 'static 'vif-tag :imm #x4000 :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:upload-envmap-2 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif1 (new 'static 'vif-tag :imm #x20 :cmd (vif-cmd unpack-v4-16))
|
||||
)
|
||||
:upload-envmap-3 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif1 (new 'static 'vif-tag :imm #x84 :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:upload-envmap-4 (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id call)))
|
||||
:upload-envmap-scissor-4 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif1 (new 'static 'vif-tag :imm #xac :cmd (vif-cmd unpack-v4-8))
|
||||
)
|
||||
:generic-palette (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :qwc #x20 :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #x1)
|
||||
)
|
||||
:generic-model-0 (new 'static 'dma-packet
|
||||
:dma (new 'static 'dma-tag :id (dma-tag-id ref))
|
||||
:vif0 (new 'static 'vif-tag :imm #x2)
|
||||
)
|
||||
:generic-model-1 (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id ref)))
|
||||
:generic-model-2 (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id ref)))
|
||||
:model-next (new 'static 'dma-packet :dma (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
:clamp #x8000ff00ff00ff
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *prototype-tie-work* upload-model-1 vif0)
|
||||
(new 'static 'vif-tag :imm #x4 :cmd (vif-cmd mscal) :msk #x1)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *prototype-tie-work* upload-model-3 vif0)
|
||||
(new 'static 'vif-tag :imm #x6 :cmd (vif-cmd mscal) :msk #x1)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *prototype-tie-work* upload-model-near-1 vif0)
|
||||
(new 'static 'vif-tag :imm #x4 :cmd (vif-cmd mscal) :msk #x1)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *prototype-tie-work* upload-model-near-4 vif0)
|
||||
(new 'static 'vif-tag :imm #x6 :cmd (vif-cmd mscal) :msk #x1)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *prototype-tie-work* upload-envmap-2 vif0)
|
||||
(new 'static 'vif-tag :imm #x6 :cmd (vif-cmd mscalf) :msk #x1)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *prototype-tie-work* upload-envmap-4 vif1)
|
||||
(new 'static 'vif-tag :imm #xa :cmd (vif-cmd mscal) :msk #x1)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+728
@@ -0,0 +1,728 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for method 9 of type tie-fragment
|
||||
(defmethod login ((this tie-fragment))
|
||||
"Initialize the object after it is loaded."
|
||||
(let ((s5-0 (the-as adgif-shader (-> this gif-ref)))
|
||||
(s4-0 (/ (-> this tex-count) (the-as uint 5)))
|
||||
)
|
||||
(dotimes (s3-0 (the-as int s4-0))
|
||||
(let ((v1-1 (adgif-shader-login-no-remap s5-0)))
|
||||
(when v1-1
|
||||
(dotimes (a0-4 3)
|
||||
(dotimes (a1-0 3)
|
||||
(set! (-> (the-as (pointer int32) (+ (+ (* a0-4 16) (* a1-0 4)) (the-as int *texture-masks*))))
|
||||
(logior (-> (the-as (pointer int32) (+ (* a1-0 4) (the-as int *texture-masks*) (* a0-4 16))) 0)
|
||||
(-> (the-as (pointer int32) (+ (* a1-0 4) (the-as int v1-1) (* a0-4 16))) 15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> *texture-masks* data a0-4 dist)
|
||||
(fmax (-> *texture-masks* data a0-4 dist) (-> v1-1 masks data a0-4 dist))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (= (-> s5-0 reg-4) 66)
|
||||
(set! (-> s5-0 reg-4) (the-as uint 127))
|
||||
(set! (-> s5-0 alpha) (new 'static 'gs-alpha))
|
||||
0
|
||||
)
|
||||
(&+! s5-0 80)
|
||||
)
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 3 of type drawable-inline-array-instance-tie
|
||||
(defmethod inspect ((this drawable-inline-array-instance-tie))
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~Tlength: ~D~%" (-> this length))
|
||||
(format #t "~Tdata[~D]: @ #x~X~%" (-> this length) (-> this data))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(format #t "~T [~D] ~A~%" s5-0 (-> this data s5-0))
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 5 of type drawable-inline-array-instance-tie
|
||||
;; WARN: Return type mismatch uint vs int.
|
||||
(defmethod asize-of ((this drawable-inline-array-instance-tie))
|
||||
(the-as int (+ (-> drawable-inline-array-instance-tie size) (* (+ (-> this length) -1) 64)))
|
||||
)
|
||||
|
||||
;; definition for method 9 of type drawable-tree-instance-tie
|
||||
;; INFO: this function exists in multiple non-identical object files
|
||||
(defmethod login ((this drawable-tree-instance-tie))
|
||||
"Initialize the object after it is loaded."
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 9 of type drawable-tree-instance-tie
|
||||
;; INFO: this function exists in multiple non-identical object files
|
||||
(defmethod login ((this drawable-tree-instance-tie))
|
||||
"Initialize the object after it is loaded."
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(login (-> this data s5-0))
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 3 of type prototype-tie
|
||||
(defmethod inspect ((this prototype-tie))
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~Tlength: ~D~%" (-> this length))
|
||||
(format #t "~Tdata[~D]: @ #x~X~%" (-> this length) (-> this data))
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(format #t "~T [~D] ~A~%" s5-0 (-> this data s5-0))
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 9 of type prototype-tie
|
||||
(defmethod login ((this prototype-tie))
|
||||
"Initialize the object after it is loaded."
|
||||
(dotimes (s5-0 (-> this length))
|
||||
(login (-> this data s5-0))
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 8 of type drawable-tree-instance-tie
|
||||
(defmethod mem-usage ((this drawable-tree-instance-tie) (usage memory-usage-block) (flags int))
|
||||
(set! (-> usage length) (max 1 (-> usage length)))
|
||||
(set! (-> usage data 0 name) "drawable-group")
|
||||
(+! (-> usage data 0 count) 1)
|
||||
(let ((v1-5 32))
|
||||
(+! (-> usage data 0 used) v1-5)
|
||||
(+! (-> usage data 0 total) (logand -16 (+ v1-5 15)))
|
||||
)
|
||||
(dotimes (s3-0 (-> this length))
|
||||
(mem-usage (-> this data s3-0) usage flags)
|
||||
)
|
||||
(mem-usage (-> this prototypes prototype-array-tie) usage (logior flags 1))
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 8 of type tie-fragment
|
||||
(defmethod mem-usage ((this tie-fragment) (usage memory-usage-block) (flags int))
|
||||
(when (logtest? flags 2)
|
||||
(let ((v1-3 (* (-> this color-count) 4))
|
||||
(a0-2 (cond
|
||||
((logtest? flags 4)
|
||||
20
|
||||
)
|
||||
((logtest? flags 8)
|
||||
21
|
||||
)
|
||||
(else
|
||||
22
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! (-> usage data a0-2 count) 1)
|
||||
(+! (-> usage data a0-2 used) v1-3)
|
||||
(+! (-> usage data a0-2 total) (logand -4 (+ v1-3 3)))
|
||||
)
|
||||
(set! (-> usage length) (max 23 (-> usage length)))
|
||||
(set! this this)
|
||||
(goto cfg-13)
|
||||
)
|
||||
(set! (-> usage length) (max 18 (-> usage length)))
|
||||
(set! (-> usage data 9 name) "tie-fragment")
|
||||
(set! (-> usage data 10 name) "tie-gif")
|
||||
(set! (-> usage data 11 name) "tie-points")
|
||||
(set! (-> usage data 12 name) "tie-colors")
|
||||
(set! (-> usage data 14 name) "tie-debug")
|
||||
(set! (-> usage data 13 name) "tie-draw-points")
|
||||
(set! (-> usage data 17 name) "tie-generic")
|
||||
(+! (-> usage data 9 count) 1)
|
||||
(let ((v1-21 (asize-of this)))
|
||||
(+! (-> usage data 9 used) v1-21)
|
||||
(+! (-> usage data 9 total) (logand -16 (+ v1-21 15)))
|
||||
)
|
||||
(let ((v1-26 (* (-> this gif-count) 16)))
|
||||
(+! (-> usage data 10 count) (-> this tex-count))
|
||||
(+! (-> usage data 10 used) v1-26)
|
||||
(+! (-> usage data 10 total) (logand -16 (+ v1-26 15)))
|
||||
)
|
||||
(let ((v1-31 (* (-> this vertex-count) 16)))
|
||||
(+! (-> usage data 11 count) (-> this vertex-count))
|
||||
(+! (-> usage data 11 used) v1-31)
|
||||
(+! (-> usage data 11 total) (logand -16 (+ v1-31 15)))
|
||||
)
|
||||
(let ((v1-36 (* (-> this dp-qwc) 16)))
|
||||
(+! (-> usage data 13 count) (* (-> this dp-qwc) 16))
|
||||
(+! (-> usage data 13 used) v1-36)
|
||||
(+! (-> usage data 13 total) (logand -16 (+ v1-36 15)))
|
||||
)
|
||||
(let ((v1-41 (* (-> this generic-count) 16)))
|
||||
(+! (-> usage data 17 count) 1)
|
||||
(+! (-> usage data 17 used) v1-41)
|
||||
(+! (-> usage data 17 total) (logand -16 (+ v1-41 15)))
|
||||
)
|
||||
(let ((s4-0 (-> this debug debug-lines)))
|
||||
(when (nonzero? s4-0)
|
||||
(dotimes (s3-0 (-> s4-0 length))
|
||||
(+! (-> usage data 14 count) (-> s4-0 s3-0 length))
|
||||
(let ((v1-52 (asize-of (-> s4-0 s3-0))))
|
||||
(+! (-> usage data 12 used) v1-52)
|
||||
(+! (-> usage data 12 total) (logand -16 (+ v1-52 15)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-13)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 8 of type instance-tie
|
||||
(defmethod mem-usage ((this instance-tie) (usage memory-usage-block) (flags int))
|
||||
(set! (-> usage length) (max 19 (-> usage length)))
|
||||
(set! (-> usage data 18 name) "instance-tie")
|
||||
(+! (-> usage data 18 count) 1)
|
||||
(let ((v1-6 (asize-of this)))
|
||||
(+! (-> usage data 18 used) v1-6)
|
||||
(+! (-> usage data 18 total) (logand -16 (+ v1-6 15)))
|
||||
)
|
||||
(when (nonzero? (-> this color-indices))
|
||||
(set! (-> usage length) (max 24 (-> usage length)))
|
||||
(set! (-> usage data 23 name) "instance-tie-colors*")
|
||||
(set! (-> usage data 19 name) "instance-tie-colors0")
|
||||
(set! (-> usage data 20 name) "instance-tie-colors1")
|
||||
(set! (-> usage data 21 name) "instance-tie-colors2")
|
||||
(set! (-> usage data 22 name) "instance-tie-colors3")
|
||||
(+! (-> usage data 23 count) 1)
|
||||
(let ((s3-0 (-> this bucket-ptr)))
|
||||
(+ (-> usage data 19 used) (-> usage data 20 used) (-> usage data 21 used) (-> usage data 22 used))
|
||||
(dotimes (s2-0 4)
|
||||
(let ((a0-10 (-> s3-0 tie-geom s2-0)))
|
||||
(when (nonzero? a0-10)
|
||||
(let ((t9-1 (method-of-object a0-10 mem-usage))
|
||||
(a1-2 usage)
|
||||
(v1-29 s2-0)
|
||||
)
|
||||
(t9-1 a0-10 a1-2 (logior (logior (cond
|
||||
((= v1-29 1)
|
||||
4
|
||||
)
|
||||
((= v1-29 2)
|
||||
8
|
||||
)
|
||||
((= v1-29 3)
|
||||
16
|
||||
)
|
||||
(else
|
||||
0
|
||||
)
|
||||
)
|
||||
2
|
||||
)
|
||||
flags
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 8 of type drawable-inline-array-instance-tie
|
||||
(defmethod mem-usage ((this drawable-inline-array-instance-tie) (usage memory-usage-block) (flags int))
|
||||
(set! (-> usage length) (max 1 (-> usage length)))
|
||||
(set! (-> usage data 0 name) "drawable-group")
|
||||
(+! (-> usage data 0 count) 1)
|
||||
(let ((v1-5 32))
|
||||
(+! (-> usage data 0 used) v1-5)
|
||||
(+! (-> usage data 0 total) (logand -16 (+ v1-5 15)))
|
||||
)
|
||||
(dotimes (s3-0 (-> this length))
|
||||
(mem-usage (-> this data s3-0) usage flags)
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 8 of type prototype-tie
|
||||
(defmethod mem-usage ((this prototype-tie) (usage memory-usage-block) (flags int))
|
||||
(set! (-> usage length) (max 1 (-> usage length)))
|
||||
(set! (-> usage data 0 name) "drawable-group")
|
||||
(+! (-> usage data 0 count) 1)
|
||||
(let ((v1-5 32))
|
||||
(+! (-> usage data 0 used) v1-5)
|
||||
(+! (-> usage data 0 total) (logand -16 (+ v1-5 15)))
|
||||
)
|
||||
(dotimes (s3-0 (-> this length))
|
||||
(mem-usage (-> this data s3-0) usage flags)
|
||||
)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 5 of type prototype-tie
|
||||
;; WARN: Return type mismatch uint vs int.
|
||||
(defmethod asize-of ((this prototype-tie))
|
||||
(the-as int (+ (-> prototype-tie size) (* (+ (-> this length) -1) 64)))
|
||||
)
|
||||
|
||||
;; definition of type tie-consts
|
||||
(deftype tie-consts (structure)
|
||||
((data uint32 40)
|
||||
(vector vector 10 :inline :overlay-at (-> data 0))
|
||||
(quads uint128 10 :overlay-at (-> data 0))
|
||||
(adgif gs-gif-tag :inline :overlay-at (-> data 0))
|
||||
(strgif gs-gif-tag :inline :overlay-at (-> data 4))
|
||||
(extra vector :inline :overlay-at (-> data 8))
|
||||
(gifbufs vector :inline :overlay-at (-> data 12))
|
||||
(clrbufs qword :inline :overlay-at (-> data 16))
|
||||
(misc qword :inline :overlay-at (-> data 20))
|
||||
(atestgif gs-gif-tag :inline :overlay-at (-> data 24))
|
||||
(alpha gs-adcmd :inline :overlay-at (-> data 28))
|
||||
(atest gs-adcmd 2 :inline :overlay-at (-> data 32))
|
||||
(atest-tra gs-adcmd :inline :overlay-at (-> data 32))
|
||||
(atest-def gs-adcmd :inline :overlay-at (-> data 36))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type tie-consts
|
||||
(defmethod inspect ((this tie-consts))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'tie-consts)
|
||||
(format #t "~1Tdata[40] @ #x~X~%" (-> this data))
|
||||
(format #t "~1Tvector[10] @ #x~X~%" (-> this data))
|
||||
(format #t "~1Tquads[10] @ #x~X~%" (-> this data))
|
||||
(format #t "~1Tadgif: #<qword @ #x~X>~%" (-> this data))
|
||||
(format #t "~1Tstrgif: #<qword @ #x~X>~%" (-> this strgif))
|
||||
(format #t "~1Textra: #<qword @ #x~X>~%" (-> this extra))
|
||||
(format #t "~1Tgifbufs: #<qword @ #x~X>~%" (-> this gifbufs))
|
||||
(format #t "~1Tclrbufs: #<qword @ #x~X>~%" (-> this clrbufs))
|
||||
(format #t "~1Tmisc: #<qword @ #x~X>~%" (-> this misc))
|
||||
(format #t "~1Tatestgif: #<qword @ #x~X>~%" (-> this atestgif))
|
||||
(format #t "~1Talpha: #<qword @ #x~X>~%" (-> this alpha))
|
||||
(format #t "~1Tatest[2] @ #x~X~%" (-> this atest-tra))
|
||||
(format #t "~1Tatest-tra: #<gs-adcmd @ #x~X>~%" (-> this atest-tra))
|
||||
(format #t "~1Tatest-def: #<gs-adcmd @ #x~X>~%" (-> this atest-def))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for symbol tie-vu1-block, type vu-function
|
||||
(define tie-vu1-block (new 'static 'vu-function :length #x3e7 :qlength #x1f4))
|
||||
|
||||
;; definition for function tie-init-consts
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun tie-init-consts ((arg0 tie-consts) (arg1 gs-alpha) (arg2 gs-test) (arg3 gs-test))
|
||||
"Set up tie-consts for VU1"
|
||||
(set! (-> arg0 adgif tag) (new 'static 'gif-tag64 :nloop #x5 :nreg #x1))
|
||||
(set! (-> arg0 adgif regs) (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d)))
|
||||
(case *subdivide-draw-mode*
|
||||
(((subdivide-setting textured))
|
||||
(set! (-> arg0 strgif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :tme #x1 :fge #x1 :abe #x1)
|
||||
:nreg #x3
|
||||
)
|
||||
)
|
||||
)
|
||||
(((subdivide-setting outline))
|
||||
(set! (-> arg0 strgif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type line-strip) :iip #x1 :tme #x1 :fge #x1 :abe #x1)
|
||||
:nreg #x3
|
||||
)
|
||||
)
|
||||
)
|
||||
(((subdivide-setting gouraud))
|
||||
(set! (-> arg0 strgif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :fge #x1 :abe #x1)
|
||||
:nreg #x3
|
||||
)
|
||||
)
|
||||
)
|
||||
(((subdivide-setting hack))
|
||||
(set! (-> arg0 strgif tag)
|
||||
(new 'static 'gif-tag64
|
||||
:pre #x1
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type line-strip) :iip #x1 :tme #x1 :fge #x1 :abe #x1)
|
||||
:nreg #x3
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 strgif regs)
|
||||
(new 'static 'gif-tag-regs :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2))
|
||||
)
|
||||
(let ((f0-0 8388894.0)
|
||||
(f1-0 8389078.0)
|
||||
(f2-0 8389262.0)
|
||||
)
|
||||
(set! (-> arg0 gifbufs x) f2-0)
|
||||
(set! (-> arg0 gifbufs y) f1-0)
|
||||
(set! (-> arg0 gifbufs z) f2-0)
|
||||
(set! (-> arg0 gifbufs w) f1-0)
|
||||
(set! (-> arg0 extra x) (+ f0-0 f1-0 f2-0))
|
||||
(set! (-> arg0 extra y) 0.0)
|
||||
(set! (-> arg0 extra z) (+ f0-0 f1-0 f2-0))
|
||||
)
|
||||
(set! (-> arg0 clrbufs vector4w x) 198)
|
||||
(set! (-> arg0 clrbufs vector4w y) 242)
|
||||
(set! (-> arg0 clrbufs vector4w z) 198)
|
||||
(set! (-> arg0 clrbufs vector4w w) 242)
|
||||
(set! (-> arg0 atestgif tag) (new 'static 'gif-tag64 :nloop #x2 :eop #x1 :nreg #x1))
|
||||
(set! (-> arg0 atestgif regs) (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d)))
|
||||
(set! (-> arg0 alpha data) (the-as uint arg1))
|
||||
(set! (-> arg0 alpha cmds) (gs-reg64 alpha-1))
|
||||
(set! (-> arg0 atest-tra cmds) (gs-reg64 test-1))
|
||||
(set! (-> arg0 atest-tra data) (the-as uint arg2))
|
||||
(set! (-> arg0 atest-def cmds) (gs-reg64 test-1))
|
||||
(set! (-> arg0 atest-def data) (the-as uint arg3))
|
||||
(set! (-> arg0 misc vector4w x) 0)
|
||||
(set! (-> arg0 misc vector4w y) -1)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function tie-init-engine
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun tie-init-engine ((arg0 dma-buffer) (arg1 gs-alpha) (arg2 gs-test) (arg3 gs-test))
|
||||
"Set up DMA to initialize TIE vu1."
|
||||
(let ((v1-0 *display*)
|
||||
(a0-6 (+ (* (+ (/ (-> tie-vu1-block qlength) 127) 1) 16) 240))
|
||||
)
|
||||
(+! (-> v1-0 mem-reserve-size) a0-6)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let ((a2-1 (-> v1-0 frames (-> v1-0 on-screen) global-buf)))
|
||||
(if (< (-> a2-1 real-buffer-end) (the-as int (&+ (-> a2-1 base) a0-6)))
|
||||
(set! (-> v1-0 dma-buffer-overflow) #t)
|
||||
)
|
||||
)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(dma-buffer-add-vu-function arg0 tie-vu1-block 1)
|
||||
(let ((s2-0 10))
|
||||
(let* ((v1-2 arg0)
|
||||
(a0-11 (the-as dma-packet (-> v1-2 base)))
|
||||
)
|
||||
(set! (-> a0-11 dma) (new 'static 'dma-tag :id (dma-tag-id cnt) :qwc s2-0))
|
||||
(set! (-> a0-11 vif0) (new 'static 'vif-tag :cmd (vif-cmd stmod)))
|
||||
(set! (-> a0-11 vif1) (new 'static 'vif-tag :imm #x3c6 :cmd (vif-cmd unpack-v4-32) :num s2-0))
|
||||
(set! (-> v1-2 base) (the-as pointer (&+ a0-11 16)))
|
||||
)
|
||||
(tie-init-consts (the-as tie-consts (-> arg0 base)) arg1 arg2 arg3)
|
||||
(&+! (-> arg0 base) (* s2-0 16))
|
||||
)
|
||||
(let* ((v1-5 arg0)
|
||||
(a0-15 (the-as dma-packet (-> v1-5 base)))
|
||||
)
|
||||
(set! (-> a0-15 dma) (new 'static 'dma-tag :id (dma-tag-id cnt)))
|
||||
(set! (-> a0-15 vif0) (new 'static 'vif-tag :imm #x8 :cmd (vif-cmd mscalf) :msk #x1))
|
||||
(set! (-> a0-15 vif1) (new 'static 'vif-tag :cmd (vif-cmd flusha) :msk #x1))
|
||||
(set! (-> v1-5 base) (the-as pointer (&+ a0-15 16)))
|
||||
)
|
||||
(let* ((v1-6 arg0)
|
||||
(a0-17 (the-as dma-packet (-> v1-6 base)))
|
||||
)
|
||||
(set! (-> a0-17 dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt)))
|
||||
(set! (-> a0-17 vif0) (new 'static 'vif-tag))
|
||||
(set! (-> a0-17 vif1) (new 'static 'vif-tag :cmd (vif-cmd strow) :msk #x1))
|
||||
(set! (-> v1-6 base) (the-as pointer (&+ a0-17 16)))
|
||||
)
|
||||
(let ((v1-7 (the-as object (-> arg0 base))))
|
||||
(set! (-> (the-as vector v1-7) x) 8388608.0)
|
||||
(set! (-> (the-as vector v1-7) y) 8388608.0)
|
||||
(set! (-> (the-as vector v1-7) z) 8388608.0)
|
||||
(set! (-> (the-as vector v1-7) w) 8388608.0)
|
||||
(set! (-> (the-as (pointer vif-tag) v1-7) 4) (new 'static 'vif-tag :cmd (vif-cmd base)))
|
||||
(set! (-> (the-as (pointer vif-tag) v1-7) 5) (new 'static 'vif-tag :imm #x2c :cmd (vif-cmd offset)))
|
||||
(set! (-> (the-as (pointer vif-tag) v1-7) 6) (new 'static 'vif-tag :cmd (vif-cmd stmod)))
|
||||
(set! (-> (the-as (pointer vif-tag) v1-7) 7) (new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl)))
|
||||
(set! (-> arg0 base) (&+ (the-as pointer v1-7) 32))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function tie-end-buffer
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun tie-end-buffer ((arg0 dma-buffer))
|
||||
"Set up DMA to finish TIE."
|
||||
(let ((v1-0 *display*)
|
||||
(a1-0 96)
|
||||
)
|
||||
(+! (-> v1-0 mem-reserve-size) a1-0)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(let ((a3-0 (-> v1-0 frames (-> v1-0 on-screen) global-buf)))
|
||||
(if (< (-> a3-0 real-buffer-end) (the-as int (&+ (-> a3-0 base) a1-0)))
|
||||
(set! (-> v1-0 dma-buffer-overflow) #t)
|
||||
)
|
||||
)
|
||||
(when (not (-> v1-0 dma-buffer-overflow))
|
||||
(dma-buffer-add-gs-set arg0 (test-1 (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal))))
|
||||
(let* ((v1-5 arg0)
|
||||
(a1-10 (the-as dma-packet (-> v1-5 base)))
|
||||
)
|
||||
(set! (-> a1-10 dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt)))
|
||||
(set! (-> a1-10 vif0) (new 'static 'vif-tag :cmd (vif-cmd stmask)))
|
||||
(set! (-> a1-10 vif1) (new 'static 'vif-tag))
|
||||
(set! (-> v1-5 base) (the-as pointer (&+ a1-10 16)))
|
||||
)
|
||||
(let* ((v1-6 arg0)
|
||||
(a0-1 (-> v1-6 base))
|
||||
)
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 0) (new 'static 'vif-tag :imm #x4 :cmd (vif-cmd mscalf) :msk #x1))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 1) (new 'static 'vif-tag :cmd (vif-cmd stmod)))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 2) (new 'static 'vif-tag :cmd (vif-cmd flusha) :msk #x1))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 3) (new 'static 'vif-tag :cmd (vif-cmd strow) :msk #x1))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 4) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 5) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 6) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as (pointer vif-tag) a0-1) 7) (new 'static 'vif-tag))
|
||||
(set! (-> v1-6 base) (&+ a0-1 32))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition (debug) for function tie-int-reg
|
||||
(defun-debug tie-int-reg ((arg0 int))
|
||||
"Get the name of TIE VU1 program integer register."
|
||||
(let ((v1-0 arg0))
|
||||
(cond
|
||||
((zero? v1-0)
|
||||
"zero"
|
||||
)
|
||||
((= v1-0 1)
|
||||
"itemp"
|
||||
)
|
||||
((= v1-0 2)
|
||||
"point-ptr"
|
||||
)
|
||||
((= v1-0 3)
|
||||
"clr-ptr"
|
||||
)
|
||||
((= v1-0 4)
|
||||
"target-bp1-ptr"
|
||||
)
|
||||
((= v1-0 5)
|
||||
"skip-bp2"
|
||||
)
|
||||
((= v1-0 6)
|
||||
"target-bp2-ptr"
|
||||
)
|
||||
((= v1-0 7)
|
||||
"target-ip1-ptr"
|
||||
)
|
||||
((= v1-0 8)
|
||||
"target-ip2-ptr"
|
||||
)
|
||||
((= v1-0 9)
|
||||
"ind/ind0"
|
||||
)
|
||||
((= v1-0 10)
|
||||
" ind1"
|
||||
)
|
||||
((= v1-0 11)
|
||||
" ind2"
|
||||
)
|
||||
((= v1-0 12)
|
||||
"dest-ptr"
|
||||
)
|
||||
((= v1-0 13)
|
||||
"dest2-ptr"
|
||||
)
|
||||
((= v1-0 14)
|
||||
"skip-ips"
|
||||
)
|
||||
((= v1-0 15)
|
||||
"kick-addr"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition (debug) for function tie-float-reg
|
||||
(defun-debug tie-float-reg ((arg0 int))
|
||||
"Get the name of TIE VU1 program float register."
|
||||
(let ((v1-0 arg0))
|
||||
(cond
|
||||
((zero? v1-0)
|
||||
"zero"
|
||||
)
|
||||
((= v1-0 1)
|
||||
"t-mtx0"
|
||||
)
|
||||
((= v1-0 2)
|
||||
"t-mtx1"
|
||||
)
|
||||
((= v1-0 3)
|
||||
"t-mtx2"
|
||||
)
|
||||
((= v1-0 4)
|
||||
"t-mtx3"
|
||||
)
|
||||
((= v1-0 5)
|
||||
"vtx-0"
|
||||
)
|
||||
((= v1-0 6)
|
||||
"vtx-1"
|
||||
)
|
||||
((= v1-0 7)
|
||||
"vtx-2"
|
||||
)
|
||||
((= v1-0 8)
|
||||
"vtx-3"
|
||||
)
|
||||
((= v1-0 9)
|
||||
"pos-0/2"
|
||||
)
|
||||
((= v1-0 10)
|
||||
"pos-1/3"
|
||||
)
|
||||
((= v1-0 11)
|
||||
"clr-0"
|
||||
)
|
||||
((= v1-0 12)
|
||||
"clr-1"
|
||||
)
|
||||
((= v1-0 13)
|
||||
"clr-2"
|
||||
)
|
||||
((= v1-0 14)
|
||||
"clr-3"
|
||||
)
|
||||
((= v1-0 15)
|
||||
"tex-0"
|
||||
)
|
||||
((= v1-0 16)
|
||||
"tex-1"
|
||||
)
|
||||
((= v1-0 17)
|
||||
"tex-2"
|
||||
)
|
||||
((= v1-0 18)
|
||||
"tex-3"
|
||||
)
|
||||
((= v1-0 19)
|
||||
"res-0/2"
|
||||
)
|
||||
((= v1-0 20)
|
||||
"res-1/3"
|
||||
)
|
||||
((= v1-0 21)
|
||||
"gifbuf"
|
||||
)
|
||||
((= v1-0 22)
|
||||
"clrbuf"
|
||||
)
|
||||
((= v1-0 23)
|
||||
"extra"
|
||||
)
|
||||
((= v1-0 24)
|
||||
"inds"
|
||||
)
|
||||
((= v1-0 25)
|
||||
"--"
|
||||
)
|
||||
((= v1-0 26)
|
||||
"--"
|
||||
)
|
||||
((= v1-0 27)
|
||||
"morph"
|
||||
)
|
||||
((= v1-0 28)
|
||||
"xyzofs"
|
||||
)
|
||||
((= v1-0 29)
|
||||
"clr1"
|
||||
)
|
||||
((= v1-0 30)
|
||||
"clr2"
|
||||
)
|
||||
((= v1-0 31)
|
||||
"--"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition (debug) for function tie-ints
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defun-debug tie-ints ()
|
||||
"Dump TIE integer regs for debug."
|
||||
(local-vars (sv-16 uint))
|
||||
(let ((gp-0 (+ #x3da0 #x1100c000)))
|
||||
(dotimes (s5-0 16)
|
||||
(if (< s5-0 10)
|
||||
(format 0 " ")
|
||||
)
|
||||
(let ((s4-0 format)
|
||||
(s3-0 0)
|
||||
(s2-0 "vi~d: ~6d #x~4,'0X ~s~%")
|
||||
(s1-0 s5-0)
|
||||
(s0-0 (-> (the-as (pointer uint32) (+ gp-0 (* (* s5-0 4) 4))) 0))
|
||||
)
|
||||
(set! sv-16 (-> (the-as (pointer uint32) (+ gp-0 (* (* s5-0 4) 4))) 0))
|
||||
(let ((t1-0 (tie-int-reg s5-0)))
|
||||
(s4-0 s3-0 s2-0 s1-0 s0-0 sv-16 t1-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition (debug) for function tie-floats
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defun-debug tie-floats ()
|
||||
"Dump TIE float regs for debug."
|
||||
(local-vars (sv-16 uint) (sv-32 uint))
|
||||
(let ((gp-0 (the-as (pointer uint32) (+ #x3da0 #x1100c000))))
|
||||
(dotimes (s5-0 32)
|
||||
(if (< s5-0 10)
|
||||
(format 0 " ")
|
||||
)
|
||||
(format
|
||||
0
|
||||
"vf~d: #x~8,'0X #x~8,'0X #x~8,'0X #x~8,'0X "
|
||||
s5-0
|
||||
(-> gp-0 (* s5-0 4))
|
||||
(-> gp-0 (+ (* s5-0 4) 1))
|
||||
(-> gp-0 (+ (* s5-0 4) 2))
|
||||
(-> gp-0 (+ (* s5-0 4) 3))
|
||||
)
|
||||
(let ((s4-0 format)
|
||||
(s3-0 0)
|
||||
(s2-0 "~F ~F ~F ~F ~s~%")
|
||||
(s1-0 (-> gp-0 (* s5-0 4)))
|
||||
(s0-0 (-> gp-0 (+ (* s5-0 4) 1)))
|
||||
)
|
||||
(set! sv-16 (-> gp-0 (+ (* s5-0 4) 2)))
|
||||
(set! sv-32 (-> gp-0 (+ (* s5-0 4) 3)))
|
||||
(let ((t2-1 (tie-float-reg s5-0)))
|
||||
(s4-0 s3-0 s2-0 s1-0 s0-0 sv-16 sv-32 t2-1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+41
-45
@@ -17,7 +17,7 @@
|
||||
(bucket-id-16 gmerc-l0-pris)
|
||||
(bucket-id-16 tex-l0-pris)
|
||||
(bucket-id-16 gmerc2-l0-pris)
|
||||
(bucket-id-16 bucket32)
|
||||
(bucket-id-16 tie-vanish-l1-tfrag)
|
||||
(bucket-id-16 merc-l0-shrub)
|
||||
(bucket-id-16 emerc-l0-shrub)
|
||||
(bucket-id-16 gmerc-l0-shrub)
|
||||
@@ -29,7 +29,7 @@
|
||||
(bucket-id-16 gmerc-l0-alpha)
|
||||
(bucket-id-16 tex-l0-alpha)
|
||||
(bucket-id-16 gmerc2-l0-alpha)
|
||||
(bucket-id-16 bucket20)
|
||||
(bucket-id-16 tie-vanish-l0-tfrag)
|
||||
(bucket-id-16 merc-l0-water)
|
||||
(bucket-id-16 merc-l0-water)
|
||||
(bucket-id-16 gmerc-l0-water)
|
||||
@@ -41,7 +41,7 @@
|
||||
(bucket-id-16 gmerc-l0-pris)
|
||||
(bucket-id-16 tex-l0-pris)
|
||||
(bucket-id-16 gmerc2-l0-pris)
|
||||
(bucket-id-16 bucket32)
|
||||
(bucket-id-16 tie-vanish-l1-tfrag)
|
||||
(bucket-id-16 merc-l0-pris2)
|
||||
(bucket-id-16 emerc-l0-pris2)
|
||||
(bucket-id-16 gmerc-l0-pris2)
|
||||
@@ -65,7 +65,7 @@
|
||||
(bucket-id-16 gmerc-l1-shrub)
|
||||
(bucket-id-16 tex-l1-shrub)
|
||||
(bucket-id-16 gmerc2-l1-shrub)
|
||||
(bucket-id-16 bucket11)
|
||||
(bucket-id-16 tfrag-l0-tfrag)
|
||||
(bucket-id-16 merc-l1-alpha)
|
||||
(bucket-id-16 emerc-l1-alpha)
|
||||
(bucket-id-16 gmerc-l1-alpha)
|
||||
@@ -89,7 +89,7 @@
|
||||
(bucket-id-16 gmerc-l1-pris2)
|
||||
(bucket-id-16 tex-l1-pris2)
|
||||
(bucket-id-16 gmerc2-l1-pris2)
|
||||
(bucket-id-16 bucket44)
|
||||
(bucket-id-16 tie-vanish-l2-tfrag)
|
||||
(bucket-id-16 merc-l2-tfrag)
|
||||
(bucket-id-16 emerc-l2-tfrag)
|
||||
(bucket-id-16 gmerc-l2-tfrag)
|
||||
@@ -107,7 +107,7 @@
|
||||
(bucket-id-16 gmerc-l2-shrub)
|
||||
(bucket-id-16 tex-l2-shrub)
|
||||
(bucket-id-16 gmerc2-l2-shrub)
|
||||
(bucket-id-16 bucket12)
|
||||
(bucket-id-16 tie-l0-tfrag)
|
||||
(bucket-id-16 merc-l2-alpha)
|
||||
(bucket-id-16 emerc-l2-alpha)
|
||||
(bucket-id-16 gmerc-l2-alpha)
|
||||
@@ -119,7 +119,7 @@
|
||||
(bucket-id-16 gmerc-l2-water)
|
||||
(bucket-id-16 tex-l2-water)
|
||||
(bucket-id-16 gmerc2-l2-water)
|
||||
(bucket-id-16 bucket56)
|
||||
(bucket-id-16 tie-vanish-l3-tfrag)
|
||||
(bucket-id-16 merc-l2-pris)
|
||||
(bucket-id-16 emerc-l2-pris)
|
||||
(bucket-id-16 gmerc-l2-pris)
|
||||
@@ -143,19 +143,19 @@
|
||||
(bucket-id-16 gmerc-l3-pris)
|
||||
(bucket-id-16 tex-l3-pris)
|
||||
(bucket-id-16 gmerc2-l3-pris)
|
||||
(bucket-id-16 bucket35)
|
||||
(bucket-id-16 tfrag-l2-tfrag)
|
||||
(bucket-id-16 merc-l3-shrub)
|
||||
(bucket-id-16 emerc-l3-shrub)
|
||||
(bucket-id-16 gmerc-l3-shrub)
|
||||
(bucket-id-16 tex-l3-shrub)
|
||||
(bucket-id-16 gmerc2-l3-shrub)
|
||||
(bucket-id-16 bucket13)
|
||||
(bucket-id-16 etie-l0-tfrag)
|
||||
(bucket-id-16 merc-l3-alpha)
|
||||
(bucket-id-16 emerc-l3-alpha)
|
||||
(bucket-id-16 gmerc-l3-alpha)
|
||||
(bucket-id-16 tex-l3-alpha)
|
||||
(bucket-id-16 gmerc2-l3-alpha)
|
||||
(bucket-id-16 bucket23)
|
||||
(bucket-id-16 tfrag-l1-tfrag)
|
||||
(bucket-id-16 merc-l3-water)
|
||||
(bucket-id-16 merc-l3-water)
|
||||
(bucket-id-16 gmerc-l3-water)
|
||||
@@ -167,7 +167,7 @@
|
||||
(bucket-id-16 gmerc-l3-pris)
|
||||
(bucket-id-16 tex-l3-pris)
|
||||
(bucket-id-16 gmerc2-l3-pris)
|
||||
(bucket-id-16 bucket35)
|
||||
(bucket-id-16 tfrag-l2-tfrag)
|
||||
(bucket-id-16 merc-l3-pris2)
|
||||
(bucket-id-16 emerc-l3-pris2)
|
||||
(bucket-id-16 gmerc-l3-pris2)
|
||||
@@ -185,19 +185,19 @@
|
||||
(bucket-id-16 gmerc-l4-pris)
|
||||
(bucket-id-16 tex-l4-pris)
|
||||
(bucket-id-16 gmerc2-l4-pris)
|
||||
(bucket-id-16 bucket36)
|
||||
(bucket-id-16 tie-l2-tfrag)
|
||||
(bucket-id-16 merc-l4-shrub)
|
||||
(bucket-id-16 emerc-l4-shrub)
|
||||
(bucket-id-16 gmerc-l4-shrub)
|
||||
(bucket-id-16 tex-l4-shrub)
|
||||
(bucket-id-16 gmerc2-l4-shrub)
|
||||
(bucket-id-16 bucket14)
|
||||
(bucket-id-16 tfrag-scissor-l0-tfrag)
|
||||
(bucket-id-16 merc-l4-alpha)
|
||||
(bucket-id-16 emerc-l4-alpha)
|
||||
(bucket-id-16 gmerc-l4-alpha)
|
||||
(bucket-id-16 tex-l4-alpha)
|
||||
(bucket-id-16 gmerc2-l4-alpha)
|
||||
(bucket-id-16 bucket24)
|
||||
(bucket-id-16 tie-l1-tfrag)
|
||||
(bucket-id-16 merc-l4-water)
|
||||
(bucket-id-16 merc-l4-water)
|
||||
(bucket-id-16 gmerc-l4-water)
|
||||
@@ -209,13 +209,13 @@
|
||||
(bucket-id-16 gmerc-l4-pris)
|
||||
(bucket-id-16 tex-l4-pris)
|
||||
(bucket-id-16 gmerc2-l4-pris)
|
||||
(bucket-id-16 bucket36)
|
||||
(bucket-id-16 tie-l2-tfrag)
|
||||
(bucket-id-16 merc-l4-pris2)
|
||||
(bucket-id-16 emerc-l4-pris2)
|
||||
(bucket-id-16 gmerc-l4-pris2)
|
||||
(bucket-id-16 tex-l4-pris2)
|
||||
(bucket-id-16 gmerc2-l4-pris2)
|
||||
(bucket-id-16 bucket47)
|
||||
(bucket-id-16 tfrag-l3-tfrag)
|
||||
(bucket-id-16 merc-l5-tfrag)
|
||||
(bucket-id-16 emerc-l5-tfrag)
|
||||
(bucket-id-16 gmerc-l5-tfrag)
|
||||
@@ -227,37 +227,37 @@
|
||||
(bucket-id-16 gmerc-l5-pris)
|
||||
(bucket-id-16 tex-l5-pris)
|
||||
(bucket-id-16 gmerc2-l5-pris)
|
||||
(bucket-id-16 bucket37)
|
||||
(bucket-id-16 etie-l2-tfrag)
|
||||
(bucket-id-16 merc-l5-shrub)
|
||||
(bucket-id-16 emerc-l5-shrub)
|
||||
(bucket-id-16 gmerc-l5-shrub)
|
||||
(bucket-id-16 tex-l5-shrub)
|
||||
(bucket-id-16 gmerc2-l5-shrub)
|
||||
(bucket-id-16 bucket15)
|
||||
(bucket-id-16 tie-scissor-l0-tfrag)
|
||||
(bucket-id-16 merc-l5-alpha)
|
||||
(bucket-id-16 emerc-l5-alpha)
|
||||
(bucket-id-16 gmerc-l5-alpha)
|
||||
(bucket-id-16 tex-l5-alpha)
|
||||
(bucket-id-16 gmerc2-l5-alpha)
|
||||
(bucket-id-16 bucket25)
|
||||
(bucket-id-16 etie-l1-tfrag)
|
||||
(bucket-id-16 merc-l5-water)
|
||||
(bucket-id-16 merc-l5-water)
|
||||
(bucket-id-16 gmerc-l5-water)
|
||||
(bucket-id-16 tex-l5-water)
|
||||
(bucket-id-16 gmerc2-l5-water)
|
||||
(bucket-id-16 bucket59)
|
||||
(bucket-id-16 tfrag-l4-tfrag)
|
||||
(bucket-id-16 merc-l5-pris)
|
||||
(bucket-id-16 emerc-l5-pris)
|
||||
(bucket-id-16 gmerc-l5-pris)
|
||||
(bucket-id-16 tex-l5-pris)
|
||||
(bucket-id-16 gmerc2-l5-pris)
|
||||
(bucket-id-16 bucket37)
|
||||
(bucket-id-16 etie-l2-tfrag)
|
||||
(bucket-id-16 merc-l5-pris2)
|
||||
(bucket-id-16 emerc-l5-pris2)
|
||||
(bucket-id-16 gmerc-l5-pris2)
|
||||
(bucket-id-16 tex-l5-pris2)
|
||||
(bucket-id-16 gmerc2-l5-pris2)
|
||||
(bucket-id-16 bucket48)
|
||||
(bucket-id-16 tie-l3-tfrag)
|
||||
(bucket-id-16 merc-l6-tfrag)
|
||||
(bucket-id-16 emerc-l6-tfrag)
|
||||
(bucket-id-16 gmerc-l6-tfrag)
|
||||
@@ -269,37 +269,37 @@
|
||||
(bucket-id-16 gmerc-l6-pris)
|
||||
(bucket-id-16 tex-l6-pris)
|
||||
(bucket-id-16 gmerc2-l6-pris)
|
||||
(bucket-id-16 bucket38)
|
||||
(bucket-id-16 tfrag-scissor-l2-tfrag)
|
||||
(bucket-id-16 merc-l6-shrub)
|
||||
(bucket-id-16 emerc-l6-shrub)
|
||||
(bucket-id-16 gmerc-l6-shrub)
|
||||
(bucket-id-16 tex-l6-shrub)
|
||||
(bucket-id-16 gmerc2-l6-shrub)
|
||||
(bucket-id-16 bucket16)
|
||||
(bucket-id-16 etie-scissor-l0-tfrag)
|
||||
(bucket-id-16 merc-l6-alpha)
|
||||
(bucket-id-16 emerc-l6-alpha)
|
||||
(bucket-id-16 gmerc-l6-alpha)
|
||||
(bucket-id-16 tex-l6-alpha)
|
||||
(bucket-id-16 gmerc2-l6-alpha)
|
||||
(bucket-id-16 bucket26)
|
||||
(bucket-id-16 tfrag-scissor-l1-tfrag)
|
||||
(bucket-id-16 merc-l6-water)
|
||||
(bucket-id-16 merc-l6-water)
|
||||
(bucket-id-16 gmerc-l6-water)
|
||||
(bucket-id-16 tex-l6-water)
|
||||
(bucket-id-16 gmerc2-l6-water)
|
||||
(bucket-id-16 bucket60)
|
||||
(bucket-id-16 tie-l4-tfrag)
|
||||
(bucket-id-16 merc-l6-pris)
|
||||
(bucket-id-16 emerc-l6-pris)
|
||||
(bucket-id-16 gmerc-l6-pris)
|
||||
(bucket-id-16 tex-l6-pris)
|
||||
(bucket-id-16 gmerc2-l6-pris)
|
||||
(bucket-id-16 bucket38)
|
||||
(bucket-id-16 tfrag-scissor-l2-tfrag)
|
||||
(bucket-id-16 merc-l6-pris2)
|
||||
(bucket-id-16 emerc-l6-pris2)
|
||||
(bucket-id-16 gmerc-l6-pris2)
|
||||
(bucket-id-16 tex-l6-pris2)
|
||||
(bucket-id-16 gmerc2-l6-pris2)
|
||||
(bucket-id-16 bucket49)
|
||||
(bucket-id-16 etie-l3-tfrag)
|
||||
(bucket-id-16 merc-l7-tfrag)
|
||||
(bucket-id-16 emerc-l7-tfrag)
|
||||
(bucket-id-16 gmerc-l7-tfrag)
|
||||
@@ -311,7 +311,7 @@
|
||||
(bucket-id-16 gmerc-l7-pris)
|
||||
(bucket-id-16 tex-l7-pris)
|
||||
(bucket-id-16 gmerc2-l7-pris)
|
||||
(bucket-id-16 bucket39)
|
||||
(bucket-id-16 tie-scissor-l2-tfrag)
|
||||
(bucket-id-16 merc-l7-shrub)
|
||||
(bucket-id-16 emerc-l7-shrub)
|
||||
(bucket-id-16 gmerc-l7-shrub)
|
||||
@@ -323,25 +323,25 @@
|
||||
(bucket-id-16 gmerc-l7-alpha)
|
||||
(bucket-id-16 tex-l7-alpha)
|
||||
(bucket-id-16 gmerc2-l7-alpha)
|
||||
(bucket-id-16 bucket27)
|
||||
(bucket-id-16 tie-scissor-l1-tfrag)
|
||||
(bucket-id-16 merc-l7-water)
|
||||
(bucket-id-16 merc-l7-water)
|
||||
(bucket-id-16 gmerc-l7-water)
|
||||
(bucket-id-16 tex-l7-water)
|
||||
(bucket-id-16 gmerc2-l7-water)
|
||||
(bucket-id-16 bucket61)
|
||||
(bucket-id-16 etie-l4-tfrag)
|
||||
(bucket-id-16 merc-l7-pris)
|
||||
(bucket-id-16 emerc-l7-pris)
|
||||
(bucket-id-16 gmerc-l7-pris)
|
||||
(bucket-id-16 tex-l7-pris)
|
||||
(bucket-id-16 gmerc2-l7-pris)
|
||||
(bucket-id-16 bucket39)
|
||||
(bucket-id-16 tie-scissor-l2-tfrag)
|
||||
(bucket-id-16 merc-l7-pris2)
|
||||
(bucket-id-16 emerc-l7-pris2)
|
||||
(bucket-id-16 gmerc-l7-pris2)
|
||||
(bucket-id-16 tex-l7-pris2)
|
||||
(bucket-id-16 gmerc2-l7-pris2)
|
||||
(bucket-id-16 bucket50)
|
||||
(bucket-id-16 tfrag-scissor-l3-tfrag)
|
||||
(bucket-id-16 merc-l8-tfrag)
|
||||
(bucket-id-16 emerc-l8-tfrag)
|
||||
(bucket-id-16 gmerc-l8-tfrag)
|
||||
@@ -353,7 +353,7 @@
|
||||
(bucket-id-16 gmerc-l8-pris)
|
||||
(bucket-id-16 tex-l8-pris)
|
||||
(bucket-id-16 gmerc2-l8-pris)
|
||||
(bucket-id-16 bucket40)
|
||||
(bucket-id-16 etie-scissor-l2-tfrag)
|
||||
(bucket-id-16 merc-l8-shrub)
|
||||
(bucket-id-16 emerc-l8-shrub)
|
||||
(bucket-id-16 gmerc-l8-shrub)
|
||||
@@ -365,25 +365,25 @@
|
||||
(bucket-id-16 gmerc-l8-alpha)
|
||||
(bucket-id-16 tex-l8-alpha)
|
||||
(bucket-id-16 gmerc2-l8-alpha)
|
||||
(bucket-id-16 bucket28)
|
||||
(bucket-id-16 etie-scissor-l1-tfrag)
|
||||
(bucket-id-16 merc-l8-water)
|
||||
(bucket-id-16 merc-l8-water)
|
||||
(bucket-id-16 gmerc-l8-water)
|
||||
(bucket-id-16 tex-l8-water)
|
||||
(bucket-id-16 gmerc2-l8-water)
|
||||
(bucket-id-16 bucket62)
|
||||
(bucket-id-16 tfrag-scissor-l4-tfrag)
|
||||
(bucket-id-16 merc-l8-pris)
|
||||
(bucket-id-16 emerc-l8-pris)
|
||||
(bucket-id-16 gmerc-l8-pris)
|
||||
(bucket-id-16 tex-l8-pris)
|
||||
(bucket-id-16 gmerc2-l8-pris)
|
||||
(bucket-id-16 bucket40)
|
||||
(bucket-id-16 etie-scissor-l2-tfrag)
|
||||
(bucket-id-16 merc-l8-pris2)
|
||||
(bucket-id-16 emerc-l8-pris2)
|
||||
(bucket-id-16 gmerc-l8-pris2)
|
||||
(bucket-id-16 tex-l8-pris2)
|
||||
(bucket-id-16 gmerc2-l8-pris2)
|
||||
(bucket-id-16 bucket51)
|
||||
(bucket-id-16 tie-scissor-l3-tfrag)
|
||||
(bucket-id-16 merc-l9-tfrag)
|
||||
(bucket-id-16 emerc-l9-tfrag)
|
||||
(bucket-id-16 gmerc-l9-tfrag)
|
||||
@@ -413,7 +413,7 @@
|
||||
(bucket-id-16 gmerc-l9-water)
|
||||
(bucket-id-16 tex-l9-water)
|
||||
(bucket-id-16 gmerc2-l9-water)
|
||||
(bucket-id-16 bucket63)
|
||||
(bucket-id-16 tie-scissor-l4-tfrag)
|
||||
(bucket-id-16 merc-l9-pris)
|
||||
(bucket-id-16 emerc-l9-pris)
|
||||
(bucket-id-16 gmerc-l9-pris)
|
||||
@@ -425,7 +425,7 @@
|
||||
(bucket-id-16 gmerc-l9-pris2)
|
||||
(bucket-id-16 tex-l9-pris2)
|
||||
(bucket-id-16 gmerc2-l9-pris2)
|
||||
(bucket-id-16 bucket52)
|
||||
(bucket-id-16 etie-scissor-l3-tfrag)
|
||||
(bucket-id-16 merc-lcom-tfrag)
|
||||
(bucket-id-16 emerc-lcom-tfrag)
|
||||
(bucket-id-16 gmerc-lcom-tfrag)
|
||||
@@ -455,7 +455,7 @@
|
||||
(bucket-id-16 gmerc-lcom-water)
|
||||
(bucket-id-16 tex-lcom-water)
|
||||
(bucket-id-16 gmerc2-lcom-water)
|
||||
(bucket-id-16 bucket64)
|
||||
(bucket-id-16 etie-scissor-l4-tfrag)
|
||||
(bucket-id-16 merc-lcom-pris)
|
||||
(bucket-id-16 emerc-lcom-pris)
|
||||
(bucket-id-16 gmerc-lcom-pris)
|
||||
@@ -1526,7 +1526,3 @@
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(kmemclose)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+32
-32
@@ -162,12 +162,12 @@
|
||||
rn5
|
||||
rn6
|
||||
rn7
|
||||
rn8
|
||||
rn9
|
||||
rn10
|
||||
rn11
|
||||
rn12
|
||||
rn13
|
||||
tfrag
|
||||
tie-scissor
|
||||
tie
|
||||
etie
|
||||
etie-scissor
|
||||
tie-vanish
|
||||
generic
|
||||
merc
|
||||
emerc
|
||||
@@ -175,16 +175,16 @@
|
||||
shrub-near
|
||||
billboard
|
||||
shrub-vanish
|
||||
rn21
|
||||
rn22
|
||||
rn23
|
||||
rn24
|
||||
rn25
|
||||
rn26
|
||||
rn27
|
||||
rn28
|
||||
rn29
|
||||
rn30
|
||||
tfrag-trans
|
||||
tie-scissor-trans
|
||||
tie-trans
|
||||
etie-trans
|
||||
etie-scissor-trans
|
||||
tfrag-water
|
||||
tie-scissor-water
|
||||
tie-water
|
||||
etie-water
|
||||
etie-scissor-water
|
||||
rn31
|
||||
rn32
|
||||
rn33
|
||||
@@ -198,12 +198,12 @@
|
||||
rn5
|
||||
rn6
|
||||
rn7
|
||||
rn8
|
||||
rn9
|
||||
rn10
|
||||
rn11
|
||||
rn12
|
||||
rn13
|
||||
tfrag
|
||||
tie-scissor
|
||||
tie
|
||||
etie
|
||||
etie-scissor
|
||||
tie-vanish
|
||||
generic
|
||||
merc
|
||||
emerc
|
||||
@@ -211,16 +211,16 @@
|
||||
shrub-near
|
||||
billboard
|
||||
shrub-vanish
|
||||
rn21
|
||||
rn22
|
||||
rn23
|
||||
rn24
|
||||
rn25
|
||||
rn26
|
||||
rn27
|
||||
rn28
|
||||
rn29
|
||||
rn30
|
||||
tfrag-trans
|
||||
tie-scissor-trans
|
||||
tie-trans
|
||||
etie-trans
|
||||
etie-scissor-trans
|
||||
tfrag-water
|
||||
tie-scissor-water
|
||||
tie-water
|
||||
etie-water
|
||||
etie-scissor-water
|
||||
rn31
|
||||
rn32
|
||||
rn33
|
||||
|
||||
+2
-1
@@ -375,6 +375,7 @@
|
||||
(loaded-texture-page-count int32)
|
||||
(entity entity-links-array)
|
||||
(closest-object meters 10)
|
||||
(tie-min-dist float :offset 352)
|
||||
(upload-size int32 20 :offset 388)
|
||||
(inside-boxes? basic)
|
||||
(display? symbol)
|
||||
@@ -418,7 +419,7 @@
|
||||
(alpha-dists pointer)
|
||||
(water-masks texture-masks-array)
|
||||
(water-dists pointer)
|
||||
(tfrag-last-calls int32 6)
|
||||
(tfrag-last-calls uint32 6)
|
||||
(texture-anim-array texture-anim-array 11)
|
||||
(light-hash light-hash)
|
||||
(draw-priority float)
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
"joint",
|
||||
"subdivide",
|
||||
"shadow-cpu-h",
|
||||
"foreground"
|
||||
"foreground",
|
||||
"tie-methods"
|
||||
],
|
||||
|
||||
"skip_compile_functions": [
|
||||
@@ -109,7 +110,12 @@
|
||||
// shrubbery
|
||||
"init-dma-test",
|
||||
"draw-prototype-inline-array-shrub",
|
||||
"draw-inline-array-instance-shrub"
|
||||
"draw-inline-array-instance-shrub",
|
||||
// tfrag
|
||||
"tfrag-scissor-end-buffer",
|
||||
"tfrag-scissor-init-buffer",
|
||||
"tfrag-scissor-vu1-init-buf",
|
||||
"(method 9 drawable-tree-instance-tie)"
|
||||
],
|
||||
|
||||
"skip_compile_states": {}
|
||||
|
||||
Reference in New Issue
Block a user