mirror of
https://github.com/open-goal/jak-project
synced 2026-07-11 15:28:58 -04:00
add ref tests for tfrag (#989)
This commit is contained in:
@@ -16685,8 +16685,8 @@
|
||||
|
||||
;; - Functions
|
||||
|
||||
(define-extern tfrag-details function)
|
||||
(define-extern clip-restore function)
|
||||
(define-extern tfrag-details (function tfragment none))
|
||||
(define-extern clip-restore (function none))
|
||||
|
||||
;; - Unknowns
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"disassemble_code": false,
|
||||
|
||||
// Run the decompiler
|
||||
"decompile_code": false,
|
||||
"decompile_code": true,
|
||||
|
||||
////////////////////////////
|
||||
// DATA ANALYSIS OPTIONS
|
||||
|
||||
@@ -1861,6 +1861,10 @@
|
||||
["L2", "(array array)"]
|
||||
],
|
||||
|
||||
"tfrag-near": [
|
||||
["L1", "vu-function"]
|
||||
],
|
||||
|
||||
// please do not add things after this entry! git is dumb.
|
||||
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
|
||||
}
|
||||
|
||||
@@ -5036,5 +5036,10 @@
|
||||
[64, "vector"]
|
||||
],
|
||||
|
||||
"clip-restore": [
|
||||
[16, "vector"],
|
||||
[32, "matrix"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below!": []
|
||||
}
|
||||
|
||||
@@ -4986,6 +4986,7 @@
|
||||
"tfrag-near-init-buffer": [
|
||||
[[11, 15], "a0", "dma-packet"],
|
||||
[[21, 24], "a0", "gs-gif-tag"],
|
||||
[28, "a0", "(pointer gs-test)"],
|
||||
[30, "a0", "(pointer gs-reg64)"],
|
||||
[[45, 50], "v1", "dma-packet"]
|
||||
],
|
||||
@@ -5000,6 +5001,7 @@
|
||||
"tfrag-init-buffer": [
|
||||
[[11, 15], "a0", "dma-packet"],
|
||||
[[21, 24], "a0", "gs-gif-tag"],
|
||||
[28, "a0", "(pointer gs-test)"],
|
||||
[30, "a0", "(pointer gs-reg64)"],
|
||||
[[45, 50], "v1", "dma-packet"]
|
||||
],
|
||||
@@ -6371,5 +6373,9 @@
|
||||
[40, "t9", "(function none :behavior target)"]
|
||||
],
|
||||
|
||||
"tfrag-details":[
|
||||
[49, "gp", "(pointer uint32)"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below": []
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ JUN.DGO out/iso/JUN.DGO
|
||||
MAI.DGO out/iso/MAI.DGO
|
||||
BEA.DGO out/iso/BEA.DGO
|
||||
CIT.DGO out/iso/CIT.DGO
|
||||
SUN.DGO out/iso/SUN.DGO
|
||||
FUCVICTO.STR out/iso/FUCVICTO.STR
|
||||
FUCV2.STR out/iso/FUCV2.STR
|
||||
FUCV3.STR out/iso/FUCV3.STR
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
("SUN.DGO"
|
||||
("sunken-part.o" "sunken-part")
|
||||
("sunken-part2.o" "sunken-part2")
|
||||
("sunken-part3.o" "sunken-part3")
|
||||
("sunken-part4.o" "sunken-part4")
|
||||
("sunken-part5.o" "sunken-part5")
|
||||
("target-tube.o" "target-tube")
|
||||
("eichar-tube+0-ag-SUN.go" "eichar-tube+0")
|
||||
("sunken-obs.o" "sunken-obs")
|
||||
("shover.o" "shover")
|
||||
("launcherdoor.o" "launcherdoor")
|
||||
("square-platform.o" "square-platform")
|
||||
("sun-iris-door.o" "sun-iris-door")
|
||||
("orbit-plat.o" "orbit-plat")
|
||||
("wedge-plats.o" "wedge-plats")
|
||||
("wall-plat.o" "wall-plat")
|
||||
("qbert-plat.o" "qbert-plat")
|
||||
("steam-cap.o" "steam-cap")
|
||||
("sun-exit-chamber.o" "sun-exit-chamber")
|
||||
("floating-launcher.o" "floating-launcher")
|
||||
("sunken-water.o" "sunken-water")
|
||||
("whirlpool.o" "whirlpool")
|
||||
("sunken-pipegame.o" "sunken-pipegame")
|
||||
("bully.o" "bully")
|
||||
("double-lurker.o" "double-lurker")
|
||||
("helix-water.o" "helix-water")
|
||||
("puffer.o" "puffer")
|
||||
("sunken-fish.o" "sunken-fish")
|
||||
("tpage-661.go" "tpage-661")
|
||||
("tpage-663.go" "tpage-663")
|
||||
("tpage-714.go" "tpage-714")
|
||||
("tpage-662.go" "tpage-662")
|
||||
("tpage-766.go" "tpage-766")
|
||||
("babak-ag.go" "babak")
|
||||
("bully-ag.go" "bully")
|
||||
("double-lurker-ag.go" "double-lurker")
|
||||
("double-lurker-top-ag.go" "double-lurker-top")
|
||||
("exit-chamber-ag.go" "exit-chamber")
|
||||
("generic-button-ag.go" "generic-button")
|
||||
("launcherdoor-ag-SUN.go" "launcherdoor")
|
||||
("orb-cache-top-ag-SUN.go" "orb-cache-top")
|
||||
("orbit-plat-ag.go" "orbit-plat")
|
||||
("orbit-plat-bottom-ag.go" "orbit-plat-bottom")
|
||||
("plat-sunken-ag.go" "plat-sunken")
|
||||
("puffer-ag.go" "puffer")
|
||||
("qbert-plat-ag.go" "qbert-plat")
|
||||
("qbert-plat-on-ag.go" "qbert-plat-on")
|
||||
("seaweed-ag.go" "seaweed")
|
||||
("shover-ag-SUN.go" "shover")
|
||||
("side-to-side-plat-ag.go" "side-to-side-plat")
|
||||
("square-platform-ag.go" "square-platform")
|
||||
("steam-cap-ag-SUN.go" "steam-cap")
|
||||
("sun-iris-door-ag.go" "sun-iris-door")
|
||||
("sunkencam-ag-SUN.go" "sunkencam")
|
||||
("sunkenfisha-ag.go" "sunkenfisha")
|
||||
("wall-plat-ag.go" "wall-plat")
|
||||
("water-anim-sunken-ag.go" "water-anim-sunken")
|
||||
("water-anim-sunken-dark-eco-ag.go" "water-anim-sunken-dark-eco")
|
||||
("wedge-plat-ag.go" "wedge-plat")
|
||||
("wedge-plat-outer-ag.go" "wedge-plat-outer")
|
||||
("whirlpool-ag.go" "whirlpool")
|
||||
("sunken-vis.go" "sunken-vis")
|
||||
)
|
||||
@@ -29,4 +29,24 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun debug-set-camera-pos-rot! ((arg0 vector) (arg1 matrix))
|
||||
(when (and *camera* *camera-combiner*)
|
||||
(send-event *camera* 'change-state cam-free-floating 0)
|
||||
(set! (-> *camera-combiner* trans quad) (-> arg0 quad))
|
||||
(let ((a2-0 (-> *camera-combiner* inv-camera-rot))
|
||||
(v1-10 (-> arg1 vector 0 quad))
|
||||
(a0-4 (-> arg1 vector 1 quad))
|
||||
(a1-2 (-> arg1 vector 2 quad))
|
||||
(a3-0 (-> arg1 vector 3 quad))
|
||||
)
|
||||
(set! (-> a2-0 vector 0 quad) v1-10)
|
||||
(set! (-> a2-0 vector 1 quad) a0-4)
|
||||
(set! (-> a2-0 vector 2 quad) a1-2)
|
||||
(set! (-> a2-0 vector 3 quad) a3-0)
|
||||
)
|
||||
(send-event *camera* 'change-state cam-fixed 0)
|
||||
)
|
||||
arg0
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
@@ -5,4 +5,89 @@
|
||||
;; name in dgo: tfrag-near
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
(define tnear-vu1-block (new 'static 'vu-function :length #x0 :qlength #x0))
|
||||
(define tnear-vu1-block (new 'static 'vu-function :length #x0 :qlength #x0))
|
||||
|
||||
(defun-debug tfrag-details ((arg0 tfragment))
|
||||
"Print some stats about tfrag. It accessest past the end of the dma chain array,
|
||||
so I think this is from a slightly older tfrag format"
|
||||
(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 (-> (the-as (pointer uint32) arg0) 10))
|
||||
)
|
||||
(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)
|
||||
)
|
||||
|
||||
(defun-debug clip-restore ()
|
||||
"Move the camera to a place in sandover"
|
||||
(let ((a0-0 (new-stack-vector0))
|
||||
(a1-0 (new-stack-matrix0))
|
||||
)
|
||||
(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 vector 0 x) -0.9283)
|
||||
(set! (-> a1-0 vector 0 y) 0.0)
|
||||
(set! (-> a1-0 vector 0 z) 0.3716)
|
||||
(set! (-> a1-0 vector 0 w) 0.0)
|
||||
(set! (-> a1-0 vector 1 x) -0.2257)
|
||||
(set! (-> a1-0 vector 1 y) 0.7945)
|
||||
(set! (-> a1-0 vector 1 z) -0.5637)
|
||||
(set! (-> a1-0 vector 1 w) 0.0)
|
||||
(set! (-> a1-0 vector 2 x) -0.2952)
|
||||
(set! (-> a1-0 vector 2 y) -0.6072)
|
||||
(set! (-> a1-0 vector 2 z) -0.7375)
|
||||
(set! (-> a1-0 vector 2 w) 0.0)
|
||||
(set! (-> a1-0 vector 3 x) 0.0)
|
||||
(set! (-> a1-0 vector 3 y) 0.0)
|
||||
(set! (-> a1-0 vector 3 z) 0.0)
|
||||
(set! (-> a1-0 vector 3 w) 1.0)
|
||||
(debug-set-camera-pos-rot! a0-0 a1-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
@@ -219,6 +219,7 @@
|
||||
"out/iso/MAI.DGO"
|
||||
"out/iso/BEA.DGO"
|
||||
"out/iso/CIT.DGO"
|
||||
"out/iso/SUN.DGO"
|
||||
)
|
||||
|
||||
|
||||
@@ -600,6 +601,77 @@
|
||||
"water-anim-village2-ag"
|
||||
"village2-vis"
|
||||
)
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;; LPC
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(cgo "SUN.DGO" "sun.gd")
|
||||
|
||||
(goal-src-sequence
|
||||
"levels/sunken/"
|
||||
:deps ("out/obj/default-menu.o")
|
||||
"sunken-part.gc"
|
||||
"sunken-part2.gc"
|
||||
"sunken-part3.gc"
|
||||
"sunken-part4.gc"
|
||||
"sunken-part5.gc"
|
||||
"target-tube.gc"
|
||||
"sunken-obs.gc"
|
||||
"shover.gc"
|
||||
"square-platform.gc"
|
||||
"sun-iris-door.gc"
|
||||
"orbit-plat.gc"
|
||||
"wedge-plats.gc"
|
||||
"wall-plat.gc"
|
||||
"qbert-plat.gc"
|
||||
"steam-cap.gc"
|
||||
"sun-exit-chamber.gc"
|
||||
"floating-launcher.gc"
|
||||
"sunken-water.gc"
|
||||
"whirlpool.gc"
|
||||
"sunken-pipegame.gc"
|
||||
"bully.gc"
|
||||
"double-lurker.gc"
|
||||
"helix-water.gc"
|
||||
"puffer.gc"
|
||||
"sunken-fish.gc"
|
||||
)
|
||||
|
||||
(copy-textures 661 663 714 662 766)
|
||||
|
||||
(copy-gos
|
||||
"eichar-tube+0-ag-SUN"
|
||||
"bully-ag"
|
||||
"double-lurker-ag"
|
||||
"double-lurker-top-ag"
|
||||
"exit-chamber-ag"
|
||||
"generic-button-ag"
|
||||
"launcherdoor-ag-SUN"
|
||||
"orb-cache-top-ag-SUN"
|
||||
"orbit-plat-ag"
|
||||
"orbit-plat-bottom-ag"
|
||||
"plat-sunken-ag"
|
||||
"puffer-ag"
|
||||
"qbert-plat-ag"
|
||||
"qbert-plat-on-ag"
|
||||
"seaweed-ag"
|
||||
"shover-ag-SUN"
|
||||
"side-to-side-plat-ag"
|
||||
"square-platform-ag"
|
||||
"steam-cap-ag-SUN"
|
||||
"sun-iris-door-ag"
|
||||
"sunkencam-ag-SUN"
|
||||
"sunkenfisha-ag"
|
||||
"wall-plat-ag"
|
||||
"water-anim-sunken-ag"
|
||||
"water-anim-sunken-dark-eco-ag"
|
||||
"wedge-plat-ag"
|
||||
"wedge-plat-outer-ag"
|
||||
"whirlpool-ag"
|
||||
"sunken-vis"
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Village 3
|
||||
|
||||
+1474
File diff suppressed because it is too large
Load Diff
+96
@@ -0,0 +1,96 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol tnear-vu1-block, type vu-function
|
||||
(define tnear-vu1-block (new 'static 'vu-function :length #x388 :qlength #x1c4))
|
||||
|
||||
;; definition (debug) for function tfrag-details
|
||||
;; INFO: 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 (-> (the-as (pointer uint32) arg0) 10))
|
||||
)
|
||||
(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: Return type mismatch vector vs none.
|
||||
;; Used lq/sq
|
||||
(defun-debug clip-restore ()
|
||||
(let ((a0-0 (new-stack-vector0))
|
||||
(a1-0 (new-stack-matrix0))
|
||||
)
|
||||
(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 vector 0 x) -0.9283)
|
||||
(set! (-> a1-0 vector 0 y) 0.0)
|
||||
(set! (-> a1-0 vector 0 z) 0.3716)
|
||||
(set! (-> a1-0 vector 0 w) 0.0)
|
||||
(set! (-> a1-0 vector 1 x) -0.2257)
|
||||
(set! (-> a1-0 vector 1 y) 0.7945)
|
||||
(set! (-> a1-0 vector 1 z) -0.5637)
|
||||
(set! (-> a1-0 vector 1 w) 0.0)
|
||||
(set! (-> a1-0 vector 2 x) -0.2952)
|
||||
(set! (-> a1-0 vector 2 y) -0.6072)
|
||||
(set! (-> a1-0 vector 2 z) -0.7375)
|
||||
(set! (-> a1-0 vector 2 w) 0.0)
|
||||
(set! (-> a1-0 vector 3 x) 0.0)
|
||||
(set! (-> a1-0 vector 3 y) 0.0)
|
||||
(set! (-> a1-0 vector 3 z) 0.0)
|
||||
(set! (-> a1-0 vector 3 w) 1.0)
|
||||
(debug-set-camera-pos-rot! a0-0 a1-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+753
@@ -0,0 +1,753 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for method 9 of type tfragment
|
||||
(defmethod login tfragment ((obj tfragment))
|
||||
(dotimes (s5-0 (the-as int (-> obj num-shaders)))
|
||||
(adgif-shader-login-no-remap (-> obj shader s5-0))
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 8 of type tfragment
|
||||
(defmethod
|
||||
mem-usage
|
||||
tfragment
|
||||
((obj tfragment) (arg0 memory-usage-block) (arg1 int))
|
||||
(when (logtest? arg1 2)
|
||||
(+! (-> arg0 data 19 count) 1)
|
||||
(let
|
||||
((v1-6
|
||||
(+
|
||||
(-> obj num-base-colors)
|
||||
(-> obj num-level0-colors)
|
||||
(-> obj num-level1-colors)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! (-> arg0 data 19 used) v1-6)
|
||||
(+! (-> arg0 data 19 total) (logand -4 (+ v1-6 3)))
|
||||
)
|
||||
(set! obj obj)
|
||||
(goto cfg-16)
|
||||
)
|
||||
(let ((s4-0 1))
|
||||
(set! (-> arg0 length) (max (-> arg0 length) (+ s4-0 8)))
|
||||
(set! (-> arg0 data s4-0 name) (symbol->string 'tfragment))
|
||||
(+! (-> arg0 data s4-0 count) 1)
|
||||
(let ((v1-22 (asize-of obj)))
|
||||
(+! (-> arg0 data s4-0 used) v1-22)
|
||||
(+! (-> arg0 data s4-0 total) (logand -16 (+ v1-22 15)))
|
||||
)
|
||||
(set! (-> arg0 data (+ s4-0 1) name) "tfragment-base")
|
||||
(+! (-> arg0 data (+ s4-0 1) count) 1)
|
||||
(let ((v1-33 (* (-> obj dma-qwc 0) 16)))
|
||||
(+! (-> arg0 data (+ s4-0 1) used) v1-33)
|
||||
(+! (-> arg0 data (+ s4-0 1) total) v1-33)
|
||||
)
|
||||
(set! (-> arg0 data (+ s4-0 2) name) "tfragment-common")
|
||||
(+! (-> arg0 data (+ s4-0 2) count) 1)
|
||||
(let ((v1-43 (* (- (-> obj dma-qwc 1) (-> obj dma-qwc 0)) 16)))
|
||||
(+! (-> arg0 data (+ s4-0 2) used) v1-43)
|
||||
(+! (-> arg0 data (+ s4-0 2) total) v1-43)
|
||||
)
|
||||
(set! (-> arg0 data (+ s4-0 3) name) "tfragment-level0")
|
||||
(when (nonzero? (-> obj num-level0-colors))
|
||||
(+! (-> arg0 data (+ s4-0 3) count) 1)
|
||||
(let ((v1-55 (* (- (-> obj dma-qwc 2) (-> obj dma-qwc 0)) 16)))
|
||||
(+! (-> arg0 data (+ s4-0 3) used) v1-55)
|
||||
(+! (-> arg0 data (+ s4-0 3) total) v1-55)
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 data (+ s4-0 4) name) "tfragment-level1")
|
||||
(when
|
||||
(not
|
||||
(or
|
||||
(= (-> obj dma-level-1) (-> obj dma-common))
|
||||
(= (-> obj dma-level-1) (-> obj dma-base))
|
||||
(zero? (-> obj num-level1-colors))
|
||||
)
|
||||
)
|
||||
(+! (-> arg0 data (+ s4-0 4) count) 1)
|
||||
(let
|
||||
((v1-70
|
||||
(*
|
||||
(-
|
||||
(-> obj dma-qwc 3)
|
||||
(the-as
|
||||
uint
|
||||
(-
|
||||
(/ (the-as int (- (-> obj dma-level-1) (-> obj dma-common))) 16)
|
||||
(the-as int (-> obj dma-qwc 0))
|
||||
)
|
||||
)
|
||||
)
|
||||
16
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! (-> arg0 data (+ s4-0 4) used) v1-70)
|
||||
(+! (-> arg0 data (+ s4-0 4) total) v1-70)
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 data (+ s4-0 5) name) "tfragment-color")
|
||||
(+! (-> arg0 data (+ s4-0 5) count) 1)
|
||||
(let ((v1-79 (if (logtest? arg1 1)
|
||||
0
|
||||
(the-as
|
||||
int
|
||||
(*
|
||||
(+
|
||||
(-> obj num-base-colors)
|
||||
(-> obj num-level0-colors)
|
||||
(-> obj num-level1-colors)
|
||||
)
|
||||
2
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! (-> arg0 data (+ s4-0 5) used) v1-79)
|
||||
(+! (-> arg0 data (+ s4-0 5) total) (logand -16 (+ v1-79 15)))
|
||||
)
|
||||
(set! (-> arg0 data (+ s4-0 6) name) "tfragment-debug")
|
||||
)
|
||||
(label cfg-16)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 3 of type drawable-inline-array-tfrag
|
||||
(defmethod
|
||||
inspect
|
||||
drawable-inline-array-tfrag
|
||||
((obj drawable-inline-array-tfrag))
|
||||
(format #t "[~8x] ~A~%" obj (-> obj type))
|
||||
(format #t "~Tlength: ~D~%" (-> obj length))
|
||||
(format #t "~Tdata[~D]: @ #x~X~%" (-> obj length) (-> obj data))
|
||||
(dotimes (s5-0 (-> obj length))
|
||||
(format #t "~T [~D] ~A~%" s5-0 (-> obj data s5-0))
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 9 of type drawable-inline-array-tfrag
|
||||
(defmethod login drawable-inline-array-tfrag ((obj drawable-inline-array-tfrag))
|
||||
(dotimes (s5-0 (-> obj length))
|
||||
(login (-> obj data s5-0))
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 8 of type drawable-inline-array-tfrag
|
||||
(defmethod
|
||||
mem-usage
|
||||
drawable-inline-array-tfrag
|
||||
((obj drawable-inline-array-tfrag) (arg0 memory-usage-block) (arg1 int))
|
||||
(set! (-> arg0 length) (max 1 (-> arg0 length)))
|
||||
(set! (-> arg0 data 0 name) (symbol->string 'drawable-group))
|
||||
(+! (-> arg0 data 0 count) 1)
|
||||
(let ((v1-7 32))
|
||||
(+! (-> arg0 data 0 used) v1-7)
|
||||
(+! (-> arg0 data 0 total) (logand -16 (+ v1-7 15)))
|
||||
)
|
||||
(dotimes (s3-0 (-> obj length))
|
||||
(mem-usage (-> obj data s3-0) arg0 arg1)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 8 of type drawable-tree-tfrag
|
||||
(defmethod
|
||||
mem-usage
|
||||
drawable-tree-tfrag
|
||||
((obj drawable-tree-tfrag) (arg0 memory-usage-block) (arg1 int))
|
||||
(set! (-> arg0 length) (max 1 (-> arg0 length)))
|
||||
(set! (-> arg0 data 0 name) "drawable-group")
|
||||
(+! (-> arg0 data 0 count) 1)
|
||||
(let ((v1-6 (asize-of obj)))
|
||||
(+! (-> arg0 data 0 used) v1-6)
|
||||
(+! (-> arg0 data 0 total) (logand -16 (+ v1-6 15)))
|
||||
)
|
||||
(when (nonzero? (-> obj time-of-day-pal))
|
||||
(set! (-> arg0 length) (max 9 (-> arg0 length)))
|
||||
(set! (-> arg0 data 8 name) "tfragment-pal")
|
||||
(+! (-> arg0 data 8 count) 1)
|
||||
(let ((v1-18 (asize-of (-> obj time-of-day-pal))))
|
||||
(+! (-> arg0 data 8 used) v1-18)
|
||||
(+! (-> arg0 data 8 total) (logand -16 (+ v1-18 15)))
|
||||
)
|
||||
)
|
||||
(dotimes (s3-0 (-> obj length))
|
||||
(mem-usage (-> obj arrays s3-0) arg0 arg1)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 5 of type drawable-inline-array-tfrag
|
||||
;; INFO: Return type mismatch uint vs int.
|
||||
(defmethod
|
||||
asize-of
|
||||
drawable-inline-array-tfrag
|
||||
((obj drawable-inline-array-tfrag))
|
||||
(the-as
|
||||
int
|
||||
(+ (-> drawable-inline-array-tfrag size) (* (+ (-> obj 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: Return type mismatch tfrag-data vs none.
|
||||
;; Used lq/sq
|
||||
(defun tfrag-data-setup ((arg0 tfrag-data) (arg1 int))
|
||||
(let ((v1-0 *math-camera*))
|
||||
(set-vector!
|
||||
(-> arg0 fog)
|
||||
(-> v1-0 pfog0)
|
||||
(-> v1-0 fog-min)
|
||||
(-> v1-0 fog-max)
|
||||
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)
|
||||
(cond
|
||||
((zero? *subdivide-draw-mode*)
|
||||
(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)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= *subdivide-draw-mode* 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)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= *subdivide-draw-mode* 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)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(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
|
||||
;; INFO: Return type mismatch pointer vs none.
|
||||
(defun add-tfrag-mtx-0 ((arg0 dma-buffer))
|
||||
(let* ((a1-0 4)
|
||||
(v1-0 arg0)
|
||||
(a0-1 (the-as object (-> v1-0 base)))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-1) dma)
|
||||
(new 'static 'dma-tag :id (dma-tag-id cnt) :qwc a1-0)
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-1) vif0)
|
||||
(new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-1) vif1)
|
||||
(new 'static 'vif-tag :imm #x5 :cmd (vif-cmd unpack-v4-32) :num a1-0)
|
||||
)
|
||||
(set! (-> v1-0 base) (&+ (the-as pointer a0-1) 16))
|
||||
)
|
||||
(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
|
||||
;; INFO: Return type mismatch pointer vs none.
|
||||
(defun add-tfrag-mtx-1 ((arg0 dma-buffer))
|
||||
(let* ((a1-0 4)
|
||||
(v1-0 arg0)
|
||||
(a0-1 (the-as object (-> v1-0 base)))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-1) dma)
|
||||
(new 'static 'dma-tag :id (dma-tag-id cnt) :qwc a1-0)
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-1) vif0)
|
||||
(new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-1) vif1)
|
||||
(new 'static 'vif-tag :imm #x14d :cmd (vif-cmd unpack-v4-32) :num a1-0)
|
||||
)
|
||||
(set! (-> v1-0 base) (&+ (the-as pointer a0-1) 16))
|
||||
)
|
||||
(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
|
||||
;; INFO: Return type mismatch pointer vs none.
|
||||
(defun add-tfrag-data ((arg0 dma-buffer) (arg1 int))
|
||||
(let* ((a2-0 14)
|
||||
(v1-0 arg0)
|
||||
(a0-1 (the-as object (-> v1-0 base)))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-1) dma)
|
||||
(new 'static 'dma-tag :id (dma-tag-id cnt) :qwc a2-0)
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-1) vif0)
|
||||
(new 'static 'vif-tag :imm #x404 :cmd (vif-cmd stcycl))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-1) vif1)
|
||||
(new 'static 'vif-tag :imm #x290 :cmd (vif-cmd unpack-v4-32) :num a2-0)
|
||||
)
|
||||
(set! (-> v1-0 base) (&+ (the-as pointer a0-1) 16))
|
||||
)
|
||||
(tfrag-data-setup (the-as tfrag-data (-> arg0 base)) arg1)
|
||||
(&+! (-> arg0 base) 224)
|
||||
(let ((v1-3 (the-as object (-> arg0 base))))
|
||||
(set!
|
||||
(-> (the-as dma-packet v1-3) dma)
|
||||
(new 'static 'dma-tag :id (dma-tag-id cnt))
|
||||
)
|
||||
(set! (-> (the-as dma-packet v1-3) vif0) (new 'static 'vif-tag))
|
||||
(set!
|
||||
(-> (the-as dma-packet 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
|
||||
;; INFO: Return type mismatch symbol vs none.
|
||||
(defun tfrag-print-stats ((arg0 symbol))
|
||||
(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
|
||||
;; INFO: Return type mismatch symbol vs none.
|
||||
(defun tfrag-init-buffer ((arg0 dma-buffer) (arg1 gs-test) (arg2 int))
|
||||
(dma-buffer-add-vu-function arg0 tfrag-vu1-block 1)
|
||||
(let* ((v1-0 arg0)
|
||||
(a0-2 (the-as object (-> v1-0 base)))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-2) dma)
|
||||
(new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))
|
||||
)
|
||||
(set! (-> (the-as dma-packet a0-2) vif0) (new 'static 'vif-tag))
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-2) vif1)
|
||||
(new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)
|
||||
)
|
||||
(set! (-> v1-0 base) (&+ (the-as pointer a0-2) 16))
|
||||
)
|
||||
(let* ((v1-1 arg0)
|
||||
(a0-4 (the-as object (-> v1-1 base)))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as gs-gif-tag a0-4) tag)
|
||||
(new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)
|
||||
)
|
||||
(set!
|
||||
(-> (the-as gs-gif-tag a0-4) regs)
|
||||
(new 'static 'gif-tag-regs
|
||||
:regs0 (gif-reg-id a+d)
|
||||
:regs1 (gif-reg-id a+d)
|
||||
:regs2 (gif-reg-id a+d)
|
||||
:regs3 (gif-reg-id a+d)
|
||||
:regs4 (gif-reg-id a+d)
|
||||
:regs5 (gif-reg-id a+d)
|
||||
:regs6 (gif-reg-id a+d)
|
||||
:regs7 (gif-reg-id a+d)
|
||||
:regs8 (gif-reg-id a+d)
|
||||
:regs9 (gif-reg-id a+d)
|
||||
:regs10 (gif-reg-id a+d)
|
||||
:regs11 (gif-reg-id a+d)
|
||||
:regs12 (gif-reg-id a+d)
|
||||
:regs13 (gif-reg-id a+d)
|
||||
:regs14 (gif-reg-id a+d)
|
||||
:regs15 (gif-reg-id a+d)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 base) (&+ (the-as pointer a0-4) 16))
|
||||
)
|
||||
(let* ((v1-2 arg0)
|
||||
(a0-6 (-> v1-2 base))
|
||||
)
|
||||
(set! (-> (the-as (pointer gs-test) a0-6) 0) arg1)
|
||||
(set! (-> (the-as (pointer gs-reg64) a0-6) 1) (gs-reg64 test-1))
|
||||
(set! (-> v1-2 base) (&+ a0-6 16))
|
||||
)
|
||||
(add-tfrag-mtx-0 arg0)
|
||||
(add-tfrag-mtx-1 arg0)
|
||||
(add-tfrag-data arg0 arg2)
|
||||
(let ((v1-3 (the-as object (-> arg0 base))))
|
||||
(set!
|
||||
(-> (the-as dma-packet v1-3) dma)
|
||||
(new 'static 'dma-tag :id (dma-tag-id cnt))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet v1-3) vif0)
|
||||
(new 'static 'vif-tag :cmd (vif-cmd base))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet v1-3) vif1)
|
||||
(new 'static 'vif-tag :imm #x148 :cmd (vif-cmd offset))
|
||||
)
|
||||
(set! (-> arg0 base) (&+ (the-as pointer v1-3) 16))
|
||||
)
|
||||
(set! (-> *tfrag-work* last-call) (the-as uint 0))
|
||||
(set! (-> t-stat cnt) 0)
|
||||
(set! (-> t-stat tris) 0)
|
||||
(set! (-> t-stat tfaces) 0)
|
||||
(set! (-> t-stat tfrags) 0)
|
||||
(set! (-> t-stat dtris) 0)
|
||||
(set! (-> t-stat dma-cnt) 0)
|
||||
(set! (-> t-stat dma-dta) 0)
|
||||
(set! (-> t-stat dma-tex) 0)
|
||||
(set! (-> t-stat strips) 0)
|
||||
(set! (-> t-stat drawpoints) 0)
|
||||
(set! (-> t-stat base-verts) 0)
|
||||
(set! (-> t-stat level0-verts) 0)
|
||||
(set! (-> t-stat level1-verts) 0)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function tfrag-end-buffer
|
||||
;; INFO: Return type mismatch symbol vs none.
|
||||
(defun tfrag-end-buffer ((arg0 dma-buffer))
|
||||
(let* ((v1-0 arg0)
|
||||
(a1-0 (the-as object (-> v1-0 base)))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a1-0) dma)
|
||||
(new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a1-0) vif0)
|
||||
(new 'static 'vif-tag :cmd (vif-cmd stmask))
|
||||
)
|
||||
(set! (-> (the-as dma-packet a1-0) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> v1-0 base) (&+ (the-as pointer a1-0) 16))
|
||||
)
|
||||
(let* ((v1-1 arg0)
|
||||
(a0-1 (-> v1-1 base))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as (pointer vif-tag) a0-1) 0)
|
||||
(the-as vif-tag (-> *tfrag-work* last-call))
|
||||
)
|
||||
(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 uint32) a0-1) 4) (the-as uint 0))
|
||||
(set! (-> (the-as (pointer uint32) a0-1) 5) (the-as uint 0))
|
||||
(set! (-> (the-as (pointer uint32) a0-1) 6) (the-as uint 0))
|
||||
(set! (-> (the-as (pointer uint32) a0-1) 7) (the-as uint 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-1 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-near-init-buffer
|
||||
;; INFO: Return type mismatch symbol vs none.
|
||||
(defun tfrag-near-init-buffer ((arg0 dma-buffer) (arg1 gs-test) (arg2 int))
|
||||
(dma-buffer-add-vu-function arg0 tnear-vu1-block 1)
|
||||
(let* ((v1-0 arg0)
|
||||
(a0-2 (the-as object (-> v1-0 base)))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-2) dma)
|
||||
(new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))
|
||||
)
|
||||
(set! (-> (the-as dma-packet a0-2) vif0) (new 'static 'vif-tag))
|
||||
(set!
|
||||
(-> (the-as dma-packet a0-2) vif1)
|
||||
(new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)
|
||||
)
|
||||
(set! (-> v1-0 base) (&+ (the-as pointer a0-2) 16))
|
||||
)
|
||||
(let* ((v1-1 arg0)
|
||||
(a0-4 (the-as object (-> v1-1 base)))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as gs-gif-tag a0-4) tag)
|
||||
(new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)
|
||||
)
|
||||
(set!
|
||||
(-> (the-as gs-gif-tag a0-4) regs)
|
||||
(new 'static 'gif-tag-regs
|
||||
:regs0 (gif-reg-id a+d)
|
||||
:regs1 (gif-reg-id a+d)
|
||||
:regs2 (gif-reg-id a+d)
|
||||
:regs3 (gif-reg-id a+d)
|
||||
:regs4 (gif-reg-id a+d)
|
||||
:regs5 (gif-reg-id a+d)
|
||||
:regs6 (gif-reg-id a+d)
|
||||
:regs7 (gif-reg-id a+d)
|
||||
:regs8 (gif-reg-id a+d)
|
||||
:regs9 (gif-reg-id a+d)
|
||||
:regs10 (gif-reg-id a+d)
|
||||
:regs11 (gif-reg-id a+d)
|
||||
:regs12 (gif-reg-id a+d)
|
||||
:regs13 (gif-reg-id a+d)
|
||||
:regs14 (gif-reg-id a+d)
|
||||
:regs15 (gif-reg-id a+d)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-1 base) (&+ (the-as pointer a0-4) 16))
|
||||
)
|
||||
(let* ((v1-2 arg0)
|
||||
(a0-6 (-> v1-2 base))
|
||||
)
|
||||
(set! (-> (the-as (pointer gs-test) a0-6) 0) arg1)
|
||||
(set! (-> (the-as (pointer gs-reg64) a0-6) 1) (gs-reg64 test-1))
|
||||
(set! (-> v1-2 base) (&+ a0-6 16))
|
||||
)
|
||||
(add-tfrag-mtx-0 arg0)
|
||||
(add-tfrag-mtx-1 arg0)
|
||||
(add-tfrag-data arg0 arg2)
|
||||
(let ((v1-3 (the-as object (-> arg0 base))))
|
||||
(set!
|
||||
(-> (the-as dma-packet v1-3) dma)
|
||||
(new 'static 'dma-tag :id (dma-tag-id cnt))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet v1-3) vif0)
|
||||
(new 'static 'vif-tag :cmd (vif-cmd base))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet v1-3) vif1)
|
||||
(new 'static 'vif-tag :imm #x148 :cmd (vif-cmd offset))
|
||||
)
|
||||
(set! (-> arg0 base) (&+ (the-as pointer v1-3) 16))
|
||||
)
|
||||
(set! (-> *tfrag-work* last-call) (the-as uint 0))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function tfrag-near-end-buffer
|
||||
;; INFO: Return type mismatch symbol vs none.
|
||||
(defun tfrag-near-end-buffer ((arg0 dma-buffer))
|
||||
(let* ((v1-0 arg0)
|
||||
(a1-0 (the-as object (-> v1-0 base)))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a1-0) dma)
|
||||
(new 'static 'dma-tag :qwc #x3 :id (dma-tag-id cnt))
|
||||
)
|
||||
(set!
|
||||
(-> (the-as dma-packet a1-0) vif0)
|
||||
(new 'static 'vif-tag :cmd (vif-cmd stmask))
|
||||
)
|
||||
(set! (-> (the-as dma-packet a1-0) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> v1-0 base) (&+ (the-as pointer a1-0) 16))
|
||||
)
|
||||
(let* ((v1-1 arg0)
|
||||
(a0-1 (-> v1-1 base))
|
||||
)
|
||||
(set! (-> (the-as (pointer uint32) a0-1)) (-> *tfrag-work* last-call))
|
||||
(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 uint32) a0-1) 4) (the-as uint 0))
|
||||
(set! (-> (the-as (pointer uint32) a0-1) 5) (the-as uint 0))
|
||||
(set! (-> (the-as (pointer uint32) a0-1) 6) (the-as uint 0))
|
||||
(set! (-> (the-as (pointer uint32) a0-1) 7) (the-as uint 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-1 base) (&+ a0-1 48))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function draw-inline-array-tfrag-near
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
;; definition for function stats-tfrag-asm
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user