diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index 7da7a57b3e..93a19f732b 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -20323,7 +20323,7 @@ (deftype eye-control (structure) ((process handle :offset-assert 0) (draw-flag symbol :offset-assert 8) - (different-eyes basic :offset-assert 12) + (different-eyes symbol :offset-assert 12) (random-time uint16 :offset-assert 16) (bucket uint16 :offset-assert 18) (blink float :offset-assert 20) @@ -24342,6 +24342,7 @@ (merc 0) (emerc 1) (mercneric 2) + (eye 3) ) (define-extern foreground-vu0-block vu-function) @@ -30914,17 +30915,17 @@ ;; eye ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *eye-work* object) ;; eye-work -;; (define-extern render-eyes-32 function) -;; (define-extern render-eyes-32-different function) -;; (define-extern render-eyes-64 function) -;; (define-extern render-eyes-64-different function) -;; (define-extern debug-eyes function) +(define-extern *eye-work* eye-work) +(define-extern render-eyes-32 (function dma-buffer eye-control int pointer)) +(define-extern render-eyes-32-different (function dma-buffer eye-control int pointer)) +(define-extern render-eyes-64 (function dma-buffer eye-control int pointer)) +(define-extern render-eyes-64-different (function dma-buffer eye-control int pointer)) +(define-extern debug-eyes (function dma-buffer none)) (define-extern update-eyes (function none)) (define-extern get-eye-block (function int int int)) -;; (define-extern convert-eye-data function) ;; (function eye uint float) +(define-extern convert-eye-data (function eye uint float)) (define-extern merc-eye-anim (function process-drawable none)) -;; (define-extern set-eye-draw-flag function) +(define-extern set-eye-draw-flag (function symbol int int none)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; glist-h ;; diff --git a/decompiler/config/jak2/type_casts.jsonc b/decompiler/config/jak2/type_casts.jsonc index f79c828d95..94fec3f378 100644 --- a/decompiler/config/jak2/type_casts.jsonc +++ b/decompiler/config/jak2/type_casts.jsonc @@ -7958,7 +7958,6 @@ "(anon-function 16 hal3-course)": [[32, "v1", "halt-wait-spot"]], "(anon-function 14 hal3-course)": [[32, "v1", "halt-wait-spot"]], "(anon-function 17 hal3-course)": [[55, "v1", "task-manager"]], - "title-plug-lightning": [[99, "v1", "title-control"]], "(trans idle race-ring)": [ [96, "a1", "process-focusable"], [19, "a0", "part-tracker"] @@ -7968,5 +7967,335 @@ "(method 67 traffic-engine)": [ [[137, 183], "s0", "crimson-guard"], [[44, 86], "a3", "vehicle"] + ], + "set-eye-draw-flag": [[20, "s5", "eye-control"]], + "render-eyes-64": [ + [67, "s0", "adgif-shader"], + [69, "s0", "adgif-shader"], + [71, "s0", "adgif-shader"], + [[78, 82], "a0", "dma-packet"], + [88, "a0", "gs-gif-tag"], + [90, "a0", "gs-gif-tag"], + [56, "v1", "dma-gif-packet"], + [59, "v1", "dma-gif-packet"], + [103, "a0", "(pointer gs-scissor)"], + [105, "a0", "(pointer gs-reg64)"], + [[111, 143], "v1", "(inline-array vector4w)"], + [[174, 178], "a2", "dma-packet"], + [184, "a2", "gs-gif-tag"], + [186, "a2", "gs-gif-tag"], + [199, "a2", "(pointer gs-scissor)"], + [201, "a2", "(pointer gs-reg64)"], + [[223, 253], "a1", "(inline-array vector4w)"], + [[264, 268], "a2", "dma-packet"], + [274, "a2", "gs-gif-tag"], + [276, "a2", "gs-gif-tag"], + [289, "a2", "(pointer gs-scissor)"], + [291, "a2", "(pointer gs-reg64)"], + [[317, 347], "a1", "(inline-array vector4w)"], + [[358, 362], "a0", "dma-packet"], + [368, "a0", "gs-gif-tag"], + [370, "a0", "gs-gif-tag"], + [376, "a0", "(pointer gs-test)"], + [378, "a0", "(pointer gs-reg64)"], + [386, "v1", "(inline-array vector4w)"], + [389, "v1", "(inline-array vector4w)"], + [397, "s0", "adgif-shader"], + [399, "s0", "adgif-shader"], + [401, "s0", "adgif-shader"], + [[424, 428], "a2", "dma-packet"], + [434, "a2", "gs-gif-tag"], + [436, "a2", "gs-gif-tag"], + [449, "a2", "(pointer gs-scissor)"], + [451, "a2", "(pointer gs-reg64)"], + [[473, 503], "a1", "(inline-array vector4w)"], + [[514, 518], "a2", "dma-packet"], + [524, "a2", "gs-gif-tag"], + [526, "a2", "gs-gif-tag"], + [539, "a2", "(pointer gs-scissor)"], + [541, "a2", "(pointer gs-reg64)"], + [[567, 597], "a1", "(inline-array vector4w)"], + [[608, 612], "a0", "dma-packet"], + [618, "a0", "gs-gif-tag"], + [620, "a0", "gs-gif-tag"], + [626, "a0", "(pointer gs-test)"], + [628, "a0", "(pointer gs-reg64)"], + [636, "v1", "dma-gif-packet"], + [639, "v1", "dma-gif-packet"], + [647, "s0", "adgif-shader"], + [649, "s0", "adgif-shader"], + [651, "s0", "adgif-shader"], + [[689, 693], "a2", "dma-packet"], + [699, "a2", "gs-gif-tag"], + [701, "a2", "gs-gif-tag"], + [714, "a2", "(pointer gs-scissor)"], + [716, "a2", "(pointer gs-reg64)"], + [[748, 777], "a1", "(inline-array vector4w)"], + [[803, 807], "a2", "dma-packet"], + [813, "a2", "gs-gif-tag"], + [815, "a2", "gs-gif-tag"], + [828, "a2", "(pointer gs-scissor)"], + [830, "a2", "(pointer gs-reg64)"], + [[863, 892], "a1", "(inline-array vector4w)"] + ], + "merc-eye-anim": [ + [[69, 92], "v1", "eye-control"], + [[111, 270], "s4", "eye-control"] + ], + "update-eyes": [ + [[14, 376], "s4", "eye-control"], + [28, "v1", "process-drawable"], + [34, "v1", "process-drawable"], + [97, "v1", "eye-control-arrays"], + [109, "v1", "eye-control-arrays"], + [121, "v1", "eye-control-arrays"], + [133, "v1", "eye-control-arrays"], + [265, "v1", "eye-control-arrays"], + [159, "a0", "dma-packet"], + [160, "a0", "dma-packet"], + [162, "a0", "dma-packet"], + [169, "a0", "gs-gif-tag"], + [171, "a0", "gs-gif-tag"], + [177, "a0", "(pointer gs-test)"], + [179, "a0", "(pointer gs-reg64)"], + [204, "a0", "dma-packet"], + [205, "a0", "dma-packet"], + [207, "a0", "dma-packet"], + [214, "a0", "gs-gif-tag"], + [216, "a0", "gs-gif-tag"], + [291, "a0", "dma-packet"], + [292, "a0", "dma-packet"], + [294, "a0", "dma-packet"], + [301, "a0", "gs-gif-tag"], + [303, "a0", "gs-gif-tag"], + [309, "a0", "(pointer gs-test)"], + [311, "a0", "(pointer gs-reg64)"], + [336, "a0", "dma-packet"], + [337, "a0", "dma-packet"], + [339, "a0", "dma-packet"], + [346, "a0", "gs-gif-tag"], + [348, "a0", "gs-gif-tag"], + [363, "v1", "dma-packet"], + [364, "v1", "dma-packet"], + [231, "v1", "dma-packet"], + [232, "v1", "dma-packet"], + [230, "v1", "dma-packet"], + [362, "v1", "dma-packet"], + [222, "a0", "(pointer gs-reg64)"], + [224, "a0", "(pointer gs-reg64)"], + [354, "a0", "(pointer gs-reg64)"], + [356, "a0", "(pointer gs-reg64)"] + ], + "render-eyes-64-different": [ + [56, "v1", "dma-gif-packet"], + [59, "v1", "dma-gif-packet"], + [[60, 72], "s0", "adgif-shader"], + [[78, 82], "a0", "dma-packet"], + [88, "a0", "gs-gif-tag"], + [90, "a0", "gs-gif-tag"], + [103, "a0", "(pointer gs-scissor)"], + [105, "a0", "(pointer gs-reg64)"], + [[111, 143], "v1", "(inline-array vector4w)"], + [[174, 178], "a2", "dma-packet"], + [184, "a2", "gs-gif-tag"], + [186, "a2", "gs-gif-tag"], + [199, "a2", "(pointer gs-scissor)"], + [201, "a2", "(pointer gs-reg64)"], + [[223, 253], "a1", "(inline-array vector4w)"], + [266, "v1", "dma-gif-packet"], + [269, "v1", "dma-gif-packet"], + [[270, 282], "s0", "adgif-shader"], + [[304, 308], "a2", "dma-packet"], + [314, "a2", "gs-gif-tag"], + [316, "a2", "gs-gif-tag"], + [329, "a2", "(pointer gs-scissor)"], + [331, "a2", "(pointer gs-reg64)"], + [[357, 387], "a1", "(inline-array vector4w)"], + [[398, 402], "a0", "dma-packet"], + [408, "a0", "gs-gif-tag"], + [410, "a0", "gs-gif-tag"], + [416, "a0", "(pointer gs-test)"], + [418, "a0", "(pointer gs-reg64)"], + [426, "v1", "dma-gif-packet"], + [429, "v1", "dma-gif-packet"], + [[430, 442], "s0", "adgif-shader"], + [[464, 468], "a2", "dma-packet"], + [474, "a2", "gs-gif-tag"], + [476, "a2", "gs-gif-tag"], + [489, "a2", "(pointer gs-scissor)"], + [491, "a2", "(pointer gs-reg64)"], + [[513, 543], "a1", "(inline-array vector4w)"], + [556, "v1", "dma-gif-packet"], + [559, "v1", "dma-gif-packet"], + [[560, 572], "s0", "adgif-shader"], + [[594, 598], "a2", "dma-packet"], + [604, "a2", "gs-gif-tag"], + [606, "a2", "gs-gif-tag"], + [619, "a2", "(pointer gs-scissor)"], + [621, "a2", "(pointer gs-reg64)"], + [[647, 677], "a1", "(inline-array vector4w)"], + [[688, 692], "a0", "dma-packet"], + [698, "a0", "gs-gif-tag"], + [700, "a0", "gs-gif-tag"], + [706, "a0", "(pointer gs-test)"], + [708, "a0", "(pointer gs-reg64)"], + [716, "v1", "dma-gif-packet"], + [719, "v1", "dma-gif-packet"], + [[720, 732], "s0", "adgif-shader"], + [[769, 773], "a2", "dma-packet"], + [779, "a2", "gs-gif-tag"], + [781, "a2", "gs-gif-tag"], + [794, "a2", "(pointer gs-scissor)"], + [796, "a2", "(pointer gs-reg64)"], + [[828, 857], "a1", "(inline-array vector4w)"], + [870, "v1", "dma-gif-packet"], + [873, "v1", "dma-gif-packet"], + [[874, 886], "s0", "adgif-shader"], + [[923, 927], "a2", "dma-packet"], + [933, "a2", "gs-gif-tag"], + [935, "a2", "gs-gif-tag"], + [948, "a2", "(pointer gs-scissor)"], + [950, "a2", "(pointer gs-reg64)"], + [[983, 1012], "a1", "(inline-array vector4w)"] + ], + "render-eyes-32": [ + [56, "v1", "dma-gif-packet"], + [59, "v1", "dma-gif-packet"], + [[60, 72], "s0", "adgif-shader"], + [[78, 82], "a0", "dma-packet"], + [88, "a0", "gs-gif-tag"], + [90, "a0", "gs-gif-tag"], + [103, "a0", "(pointer gs-scissor)"], + [105, "a0", "(pointer gs-reg64)"], + [[111, 143], "v1", "(inline-array vector4w)"], + [[174, 178], "a2", "dma-packet"], + [184, "a2", "gs-gif-tag"], + [186, "a2", "gs-gif-tag"], + [199, "a2", "(pointer gs-scissor)"], + [201, "a2", "(pointer gs-reg64)"], + [[223, 253], "a1", "(inline-array vector4w)"], + [[264, 268], "a2", "dma-packet"], + [274, "a2", "gs-gif-tag"], + [276, "a2", "gs-gif-tag"], + [289, "a2", "(pointer gs-scissor)"], + [291, "a2", "(pointer gs-reg64)"], + [[317, 347], "a1", "(inline-array vector4w)"], + [[358, 362], "a0", "dma-packet"], + [368, "a0", "gs-gif-tag"], + [370, "a0", "gs-gif-tag"], + [376, "a0", "(pointer gs-test)"], + [378, "a0", "(pointer gs-reg64)"], + [386, "v1", "dma-gif-packet"], + [389, "v1", "dma-gif-packet"], + [[390, 402], "s0", "adgif-shader"], + [[424, 428], "a2", "dma-packet"], + [434, "a2", "gs-gif-tag"], + [436, "a2", "gs-gif-tag"], + [449, "a2", "(pointer gs-scissor)"], + [451, "a2", "(pointer gs-reg64)"], + [[473, 503], "a1", "(inline-array vector4w)"], + [[514, 518], "a2", "dma-packet"], + [524, "a2", "gs-gif-tag"], + [526, "a2", "gs-gif-tag"], + [539, "a2", "(pointer gs-scissor)"], + [541, "a2", "(pointer gs-reg64)"], + [[567, 597], "a1", "(inline-array vector4w)"], + [[608, 612], "a0", "dma-packet"], + [618, "a0", "gs-gif-tag"], + [620, "a0", "gs-gif-tag"], + [626, "a0", "(pointer gs-test)"], + [628, "a0", "(pointer gs-reg64)"], + [636, "v1", "dma-gif-packet"], + [639, "v1", "dma-gif-packet"], + [[642, 652], "s0", "adgif-shader"], + [[689, 693], "a2", "dma-packet"], + [699, "a2", "gs-gif-tag"], + [701, "a2", "gs-gif-tag"], + [714, "a2", "(pointer gs-scissor)"], + [716, "a2", "(pointer gs-reg64)"], + [[748, 777], "a1", "(inline-array vector4w)"], + [[803, 807], "a2", "dma-packet"], + [813, "a2", "gs-gif-tag"], + [815, "a2", "gs-gif-tag"], + [828, "a2", "(pointer gs-scissor)"], + [830, "a2", "(pointer gs-reg64)"], + [[863, 892], "a1", "(inline-array vector4w)"] + ], + "render-eyes-32-different": [ + [56, "v1", "dma-gif-packet"], + [59, "v1", "dma-gif-packet"], + [[60, 72], "s0", "adgif-shader"], + [[78, 82], "a0", "dma-packet"], + [88, "a0", "gs-gif-tag"], + [90, "a0", "gs-gif-tag"], + [[111, 143], "v1", "(inline-array vector4w)"], + [[174, 178], "a2", "dma-packet"], + [184, "a2", "gs-gif-tag"], + [186, "a2", "gs-gif-tag"], + [199, "a2", "(pointer gs-scissor)"], + [201, "a2", "(pointer gs-reg64)"], + [[223, 253], "a1", "(inline-array vector4w)"], + [266, "v1", "dma-gif-packet"], + [103, "a0", "(pointer gs-scissor)"], + [105, "a0", "(pointer gs-reg64)"], + [269, "v1", "dma-gif-packet"], + [[270, 282], "s0", "adgif-shader"], + [[304, 308], "a2", "dma-packet"], + [314, "a2", "gs-gif-tag"], + [316, "a2", "gs-gif-tag"], + [329, "a2", "(pointer gs-scissor)"], + [331, "a2", "(pointer gs-reg64)"], + [[357, 387], "a1", "(inline-array vector4w)"], + [[398, 402], "a0", "dma-packet"], + [408, "a0", "gs-gif-tag"], + [410, "a0", "gs-gif-tag"], + [416, "a0", "(pointer gs-test)"], + [418, "a0", "(pointer gs-reg64)"], + [426, "v1", "dma-gif-packet"], + [429, "v1", "dma-gif-packet"], + [[430, 442], "s0", "adgif-shader"], + [[464, 468], "a2", "dma-packet"], + [474, "a2", "gs-gif-tag"], + [476, "a2", "gs-gif-tag"], + [489, "a2", "(pointer gs-scissor)"], + [491, "a2", "(pointer gs-reg64)"], + [[513, 543], "a1", "(inline-array vector4w)"], + [556, "v1", "dma-gif-packet"], + [559, "v1", "dma-gif-packet"], + [[560, 572], "s0", "adgif-shader"], + [[594, 598], "a2", "dma-packet"], + [604, "a2", "gs-gif-tag"], + [606, "a2", "gs-gif-tag"], + [619, "a2", "(pointer gs-scissor)"], + [621, "a2", "(pointer gs-reg64)"], + [[647, 677], "a1", "(inline-array vector4w)"], + [[688, 692], "a0", "dma-packet"], + [698, "a0", "gs-gif-tag"], + [700, "a0", "gs-gif-tag"], + [706, "a0", "(pointer gs-test)"], + [708, "a0", "(pointer gs-reg64)"], + [716, "v1", "dma-gif-packet"], + [719, "v1", "dma-gif-packet"], + [[720, 732], "s0", "adgif-shader"], + [[769, 773], "a2", "dma-packet"], + [779, "a2", "gs-gif-tag"], + [781, "a2", "gs-gif-tag"], + [794, "a2", "(pointer gs-scissor)"], + [796, "a2", "(pointer gs-reg64)"], + [[828, 857], "a1", "(inline-array vector4w)"], + [870, "v1", "dma-gif-packet"], + [873, "v1", "dma-gif-packet"], + [[874, 886], "s0", "adgif-shader"], + [[923, 927], "a2", "dma-packet"], + [933, "a2", "gs-gif-tag"], + [935, "a2", "gs-gif-tag"], + [948, "a2", "(pointer gs-scissor)"], + [950, "a2", "(pointer gs-reg64)"], + [[983, 1012], "a1", "(inline-array vector4w)"] + ], + "debug-eyes": [ + [[4, 8], "a0", "dma-packet"], + [14, "a0", "gs-gif-tag"], + [16, "a0", "gs-gif-tag"] ] } diff --git a/goal_src/jak2/engine/gfx/foreground/eye-h.gc b/goal_src/jak2/engine/gfx/foreground/eye-h.gc index baa86d7f4d..15dffd2fa5 100644 --- a/goal_src/jak2/engine/gfx/foreground/eye-h.gc +++ b/goal_src/jak2/engine/gfx/foreground/eye-h.gc @@ -21,10 +21,11 @@ :flag-assert #x900000020 ) + (deftype eye-control (structure) ((process handle :offset-assert 0) (draw-flag symbol :offset-assert 8) - (different-eyes basic :offset-assert 12) + (different-eyes symbol :offset-assert 12) (random-time uint16 :offset-assert 16) (bucket uint16 :offset-assert 18) (blink float :offset-assert 20) @@ -37,6 +38,7 @@ :flag-assert #x900000060 ) + (deftype eye-control-array (basic) ((data eye-control 16 :inline :offset-assert 16) ) @@ -45,6 +47,7 @@ :flag-assert #x900000610 ) + (deftype eye-control-arrays (basic) ((data eye-control-array 6 :inline :offset-assert 16) (pad uint32 :offset-assert 9328) @@ -54,6 +57,7 @@ :flag-assert #x900002474 ) + (deftype eye-work (structure) ((sprite-tmpl dma-gif-packet :inline :offset-assert 0) (sprite-tmpl2 dma-gif-packet :inline :offset-assert 32) @@ -65,6 +69,7 @@ :flag-assert #x900000088 ) + (define *eye-control-arrays* (new 'static 'eye-control-arrays :data (new 'static 'inline-array eye-control-array 6 (new 'static 'eye-control-array) @@ -77,11 +82,9 @@ ) ) -;; failed to figure out what this is: (dotimes (v1-6 6) (dotimes (a0-10 16) - ;(let ((a1-14 (the-as eye-control (+ (+ (* 96 a0-10) 28 (* 1552 v1-6)) (the-as int *eye-control-arrays*))))) - (let ((a1-14 (-> *eye-control-arrays* data v1-6 data a0-10))) + (let ((a1-14 (the-as eye-control (+ (+ (* 96 a0-10) 28 (* 1552 v1-6)) (the-as int *eye-control-arrays*))))) (set! (-> a1-14 process) (the-as handle #f)) (set! (-> a1-14 draw-flag) #t) (set! (-> a1-14 shaders) (the-as (inline-array adgif-shader) #f)) @@ -90,11 +93,3 @@ ) ) ) - -;; failed to figure out what this is: -0 - - - - -(define-extern get-eye-block (function int int int)) diff --git a/goal_src/jak2/engine/gfx/foreground/eye.gc b/goal_src/jak2/engine/gfx/foreground/eye.gc index e367d0756f..0449912556 100644 --- a/goal_src/jak2/engine/gfx/foreground/eye.gc +++ b/goal_src/jak2/engine/gfx/foreground/eye.gc @@ -7,6 +7,2038 @@ ;; DECOMP BEGINS +(define *eye-work* (new 'static 'eye-work + :sprite-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type sprite) :tme #x1 :fst #x1) + :nreg #x5 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id uv) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id uv) + :regs4 (gif-reg-id xyz2) + ) + ) + :sprite-tmpl2 (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type sprite) :tme #x1 :abe #x1 :fst #x1) + :nreg #x5 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id uv) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id uv) + :regs4 (gif-reg-id xyz2) + ) + ) + :adgif-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 :nloop #x5 :eop #x1 :nreg #x1) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d)) + ) + :blink-table (new 'static 'array float 10 0.0 0.667 0.9 1.0 1.0 1.0 1.0 0.333 0.1 0.0) + ) + ) + +(defun render-eyes-32 ((arg0 dma-buffer) (arg1 eye-control) (arg2 int)) + (local-vars (sv-16 float)) + (let ((s4-0 32) + (s3-0 (+ (* arg2 32) 32)) + (s2-0 (* arg2 32)) + ) + (let ((f28-0 (* 16.0 (+ (the float (+ s4-0 16)) (* 32.0 (-> arg1 left x))))) + (f26-0 (* 16.0 (+ (the float (+ s3-0 16)) (* 32.0 (-> arg1 left y))))) + (f30-0 (* 16.0 (+ (the float (+ s4-0 48)) (* 32.0 (-> arg1 right x))))) + ) + (set! sv-16 (* 16.0 (+ (the float (+ s3-0 16)) (* 32.0 (-> arg1 right y))))) + (let ((s1-0 (-> arg1 shaders 0))) + (let ((v1-14 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-14) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-14) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-0 (the-as adgif-shader (&+ (the-as pointer v1-14) 32)))) + (quad-copy! (the-as pointer s0-0) (the-as pointer s1-0) 5) + (set! (-> s0-0 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-0 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-0 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-20 arg0) + (a0-6 (the-as object (-> v1-20 base))) + ) + (set! (-> (the-as dma-packet a0-6) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-6) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-6) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-20 base) (&+ (the-as pointer a0-6) 16)) + ) + (let* ((v1-21 arg0) + (a0-8 (the-as object (-> v1-21 base))) + ) + (set! (-> (the-as gs-gif-tag a0-8) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-8) regs) GIF_REGS_ALL_AD) + (set! (-> v1-21 base) (&+ (the-as pointer a0-8) 16)) + ) + (let* ((v1-22 arg0) + (a0-10 (-> v1-22 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a0-10) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a0-10) 1) (gs-reg64 scissor-1)) + (set! (-> v1-22 base) (&+ a0-10 16)) + ) + (let ((v1-23 (the-as object (-> arg0 base)))) + (set! (-> (the-as (inline-array vector4w) v1-23) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) v1-23) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 4) (* s4-0 16) (* s3-0 16) #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 5) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 6) (* (+ s4-0 64) 16) (* (+ s3-0 32) 16) #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let ((v1-28 (ash 16 (-> s1-0 tex0 tw))) + (a0-30 (ash 16 (-> s1-0 tex0 th))) + ) + (let* ((a1-22 arg0) + (a2-7 (the-as object (-> a1-22 base))) + ) + (set! (-> (the-as dma-packet a2-7) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-7) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-7) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-22 base) (&+ (the-as pointer a2-7) 16)) + ) + (let* ((a1-23 arg0) + (a2-9 (the-as object (-> a1-23 base))) + ) + (set! (-> (the-as gs-gif-tag a2-9) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-9) regs) GIF_REGS_ALL_AD) + (set! (-> a1-23 base) (&+ (the-as pointer a2-9) 16)) + ) + (let* ((a1-24 arg0) + (a2-11 (-> a1-24 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-11) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-11) 1) (gs-reg64 scissor-1)) + (set! (-> a1-24 base) (&+ a2-11 16)) + ) + (let* ((f0-6 (* 256.0 (-> arg1 left iris-scale))) + (a1-26 (the-as object (-> arg0 base))) + (a2-13 (the int (- f28-0 f0-6))) + (t0-5 (the int (- f26-0 f0-6))) + (a3-9 (the int (+ f28-0 f0-6))) + (t1-0 (the int (+ f26-0 f0-6))) + ) + (set! (-> (the-as (inline-array vector4w) a1-26) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-26) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 4) a2-13 t0-5 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 6) a3-9 t1-0 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let* ((a1-30 arg0) + (a2-17 (the-as object (-> a1-30 base))) + ) + (set! (-> (the-as dma-packet a2-17) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-17) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-17) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-30 base) (&+ (the-as pointer a2-17) 16)) + ) + (let* ((a1-31 arg0) + (a2-19 (the-as object (-> a1-31 base))) + ) + (set! (-> (the-as gs-gif-tag a2-19) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-19) regs) GIF_REGS_ALL_AD) + (set! (-> a1-31 base) (&+ (the-as pointer a2-19) 16)) + ) + (let* ((a1-32 arg0) + (a2-21 (-> a1-32 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-21) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-21) 1) (gs-reg64 scissor-1)) + (set! (-> a1-32 base) (&+ a2-21 16)) + ) + (let* ((f0-10 (* 256.0 (-> arg1 right iris-scale))) + (a1-34 (the-as object (-> arg0 base))) + (a2-23 (the int (- f30-0 f0-10))) + (t0-11 (the int (- sv-16 f0-10))) + (a3-20 (the int (+ f30-0 f0-10))) + (t1-2 (the int (+ sv-16 f0-10))) + ) + (set! (-> (the-as (inline-array vector4w) a1-34) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-34) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 4) a2-23 t0-11 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 6) a3-20 t1-2 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-32 arg0) + (a0-32 (the-as object (-> v1-32 base))) + ) + (set! (-> (the-as dma-packet a0-32) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-32) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-32) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-32 base) (&+ (the-as pointer a0-32) 16)) + ) + (let* ((v1-33 arg0) + (a0-34 (the-as object (-> v1-33 base))) + ) + (set! (-> (the-as gs-gif-tag a0-34) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-34) regs) GIF_REGS_ALL_AD) + (set! (-> v1-33 base) (&+ (the-as pointer a0-34) 16)) + ) + (let* ((v1-34 arg0) + (a0-36 (-> v1-34 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-36) 0) + (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-36) 1) (gs-reg64 test-1)) + (set! (-> v1-34 base) (&+ a0-36 16)) + ) + (let ((s1-1 (-> arg1 shaders 1))) + (let ((v1-36 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-36) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-36) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-1 (the-as adgif-shader (&+ (the-as pointer v1-36) 32)))) + (quad-copy! (the-as pointer s0-1) (the-as pointer s1-1) 5) + (set! (-> s0-1 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-1 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-1 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-43 (ash 16 (-> s1-1 tex0 tw))) + (a0-48 (ash 16 (-> s1-1 tex0 th))) + ) + (let* ((a1-47 arg0) + (a2-27 (the-as object (-> a1-47 base))) + ) + (set! (-> (the-as dma-packet a2-27) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-27) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-27) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-47 base) (&+ (the-as pointer a2-27) 16)) + ) + (let* ((a1-48 arg0) + (a2-29 (the-as object (-> a1-48 base))) + ) + (set! (-> (the-as gs-gif-tag a2-29) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-29) regs) GIF_REGS_ALL_AD) + (set! (-> a1-48 base) (&+ (the-as pointer a2-29) 16)) + ) + (let* ((a1-49 arg0) + (a2-31 (-> a1-49 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-31) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-31) 1) (gs-reg64 scissor-1)) + (set! (-> a1-49 base) (&+ a2-31 16)) + ) + (let* ((f0-14 (* 256.0 (-> arg1 left pupil-scale))) + (a1-51 (the-as object (-> arg0 base))) + (a2-33 (the int (- f28-0 f0-14))) + (t0-17 (the int (- f26-0 f0-14))) + (a3-30 (the int (+ f28-0 f0-14))) + (t1-3 (the int (+ f26-0 f0-14))) + ) + (set! (-> (the-as (inline-array vector4w) a1-51) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-51) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 4) a2-33 t0-17 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 5) v1-43 a0-48 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 6) a3-30 t1-3 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let* ((a1-55 arg0) + (a2-37 (the-as object (-> a1-55 base))) + ) + (set! (-> (the-as dma-packet a2-37) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-37) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-37) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-55 base) (&+ (the-as pointer a2-37) 16)) + ) + (let* ((a1-56 arg0) + (a2-39 (the-as object (-> a1-56 base))) + ) + (set! (-> (the-as gs-gif-tag a2-39) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-39) regs) GIF_REGS_ALL_AD) + (set! (-> a1-56 base) (&+ (the-as pointer a2-39) 16)) + ) + (let* ((a1-57 arg0) + (a2-41 (-> a1-57 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-41) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-41) 1) (gs-reg64 scissor-1)) + (set! (-> a1-57 base) (&+ a2-41 16)) + ) + (let* ((f0-18 (* 256.0 (-> arg1 right pupil-scale))) + (a1-59 (the-as object (-> arg0 base))) + (a2-43 (the int (- f30-0 f0-18))) + (t0-23 (the int (- sv-16 f0-18))) + (a3-41 (the int (+ f30-0 f0-18))) + (t1-5 (the int (+ sv-16 f0-18))) + ) + (set! (-> (the-as (inline-array vector4w) a1-59) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-59) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 4) a2-43 t0-23 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 5) v1-43 a0-48 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 6) a3-41 t1-5 #xffffff 0) + ) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-47 arg0) + (a0-50 (the-as object (-> v1-47 base))) + ) + (set! (-> (the-as dma-packet a0-50) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-50) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-50) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-47 base) (&+ (the-as pointer a0-50) 16)) + ) + (let* ((v1-48 arg0) + (a0-52 (the-as object (-> v1-48 base))) + ) + (set! (-> (the-as gs-gif-tag a0-52) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-52) regs) GIF_REGS_ALL_AD) + (set! (-> v1-48 base) (&+ (the-as pointer a0-52) 16)) + ) + (let* ((v1-49 arg0) + (a0-54 (-> v1-49 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-54) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-54) 1) (gs-reg64 test-1)) + (set! (-> v1-49 base) (&+ a0-54 16)) + ) + (let ((s1-2 (-> arg1 shaders 2))) + (let ((v1-51 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-51) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-51) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-2 (the-as object (&+ (the-as pointer v1-51) 32)))) + (quad-copy! (the-as pointer s0-2) (the-as pointer s1-2) 5) + (set! (-> (the-as adgif-shader s0-2) clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> (the-as adgif-shader s0-2) alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> (the-as adgif-shader s0-2) prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-58 (ash 16 (-> s1-2 tex0 tw))) + (a0-66 (ash 16 (-> s1-2 tex0 th))) + ) + (when (< (-> arg1 left lid) 0.0) + (let ((f0-23 (+ 1.0 (-> arg1 left lid)))) + (set! (-> arg1 left lid) (+ f0-23 (* (- 1.0 f0-23) (-> arg1 blink)))) + ) + ) + (let* ((a1-76 arg0) + (a2-47 (the-as object (-> a1-76 base))) + ) + (set! (-> (the-as dma-packet a2-47) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-47) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-47) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-76 base) (&+ (the-as pointer a2-47) 16)) + ) + (let* ((a1-77 arg0) + (a2-49 (the-as object (-> a1-77 base))) + ) + (set! (-> (the-as gs-gif-tag a2-49) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-49) regs) GIF_REGS_ALL_AD) + (set! (-> a1-77 base) (&+ (the-as pointer a2-49) 16)) + ) + (let* ((a1-78 arg0) + (a2-51 (-> a1-78 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-51) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-51) 1) (gs-reg64 scissor-1)) + (set! (-> a1-78 base) (&+ a2-51 16)) + ) + (let* ((f0-27 (+ (the float (+ s3-0 -32)) (* 32.0 (-> arg1 left lid)))) + (a1-81 (the-as object (-> arg0 base))) + (a2-53 (* s4-0 16)) + (t0-29 (the int (* 16.0 f0-27))) + (a3-53 (* (+ s4-0 32) 16)) + (t1-8 (the int (* 16.0 (+ f0-27 (* 32.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-81) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-81) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 4) a2-53 t0-29 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 5) v1-58 a0-66 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 6) a3-53 t1-8 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (when (< (-> arg1 right lid) 0.0) + (let ((f0-33 (+ 1.0 (-> arg1 right lid)))) + (set! (-> arg1 right lid) (+ f0-33 (* (- 1.0 f0-33) (-> arg1 blink)))) + ) + ) + (let* ((a1-89 arg0) + (a2-57 (the-as object (-> a1-89 base))) + ) + (set! (-> (the-as dma-packet a2-57) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-57) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-57) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-89 base) (&+ (the-as pointer a2-57) 16)) + ) + (let* ((a1-90 arg0) + (a2-59 (the-as object (-> a1-90 base))) + ) + (set! (-> (the-as gs-gif-tag a2-59) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-59) regs) GIF_REGS_ALL_AD) + (set! (-> a1-90 base) (&+ (the-as pointer a2-59) 16)) + ) + (let* ((a1-91 arg0) + (a2-61 (-> a1-91 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-61) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-61) 1) (gs-reg64 scissor-1)) + (set! (-> a1-91 base) (&+ a2-61 16)) + ) + (let* ((f0-37 (+ (the float (+ s3-0 -32)) (* 32.0 (-> arg1 right lid)))) + (a1-94 (the-as object (-> arg0 base))) + (a2-64 (* (+ s4-0 64) 16)) + (t0-35 (the int (* 16.0 f0-37))) + (a3-65 (* (+ s4-0 32) 16)) + (t1-11 (the int (* 16.0 (+ f0-37 (* 32.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-94) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-94) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 4) a2-64 t0-35 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 5) v1-58 a0-66 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 6) a3-65 t1-11 #xffffff 0) + ) + ) + ) + ) + (let ((v0-3 (&+ (-> arg0 base) 112))) + (set! (-> arg0 base) v0-3) + v0-3 + ) + ) + +(defun render-eyes-32-different ((arg0 dma-buffer) (arg1 eye-control) (arg2 int)) + (local-vars (sv-16 float)) + (let ((s4-0 32) + (s3-0 (+ (* arg2 32) 32)) + (s2-0 (* arg2 32)) + ) + (let ((f28-0 (* 16.0 (+ (the float (+ s4-0 16)) (* 32.0 (-> arg1 left x))))) + (f26-0 (* 16.0 (+ (the float (+ s3-0 16)) (* 32.0 (-> arg1 left y))))) + (f30-0 (* 16.0 (+ (the float (+ s4-0 48)) (* 32.0 (-> arg1 right x))))) + ) + (set! sv-16 (* 16.0 (+ (the float (+ s3-0 16)) (* 32.0 (-> arg1 right y))))) + (let ((s1-0 (-> arg1 shaders 0))) + (let ((v1-14 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-14) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-14) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-0 (the-as adgif-shader (&+ (the-as pointer v1-14) 32)))) + (quad-copy! (the-as pointer s0-0) (the-as pointer s1-0) 5) + (set! (-> s0-0 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-0 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-0 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-20 arg0) + (a0-6 (the-as object (-> v1-20 base))) + ) + (set! (-> (the-as dma-packet a0-6) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-6) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-6) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-20 base) (&+ (the-as pointer a0-6) 16)) + ) + (let* ((v1-21 arg0) + (a0-8 (the-as object (-> v1-21 base))) + ) + (set! (-> (the-as gs-gif-tag a0-8) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-8) regs) GIF_REGS_ALL_AD) + (set! (-> v1-21 base) (&+ (the-as pointer a0-8) 16)) + ) + (let* ((v1-22 arg0) + (a0-10 (-> v1-22 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a0-10) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a0-10) 1) (gs-reg64 scissor-1)) + (set! (-> v1-22 base) (&+ a0-10 16)) + ) + (let ((v1-23 (the-as object (-> arg0 base)))) + (set! (-> (the-as (inline-array vector4w) v1-23) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) v1-23) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 4) (* s4-0 16) (* s3-0 16) #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 5) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 6) (* (+ s4-0 64) 16) (* (+ s3-0 32) 16) #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let ((v1-28 (ash 16 (-> s1-0 tex0 tw))) + (a0-30 (ash 16 (-> s1-0 tex0 th))) + ) + (let* ((a1-22 arg0) + (a2-7 (the-as object (-> a1-22 base))) + ) + (set! (-> (the-as dma-packet a2-7) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-7) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-7) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-22 base) (&+ (the-as pointer a2-7) 16)) + ) + (let* ((a1-23 arg0) + (a2-9 (the-as object (-> a1-23 base))) + ) + (set! (-> (the-as gs-gif-tag a2-9) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-9) regs) GIF_REGS_ALL_AD) + (set! (-> a1-23 base) (&+ (the-as pointer a2-9) 16)) + ) + (let* ((a1-24 arg0) + (a2-11 (-> a1-24 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-11) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-11) 1) (gs-reg64 scissor-1)) + (set! (-> a1-24 base) (&+ a2-11 16)) + ) + (let* ((f0-6 (* 256.0 (-> arg1 left iris-scale))) + (a1-26 (the-as object (-> arg0 base))) + (a2-13 (the int (- f28-0 f0-6))) + (t0-5 (the int (- f26-0 f0-6))) + (a3-9 (the int (+ f28-0 f0-6))) + (t1-0 (the int (+ f26-0 f0-6))) + ) + (set! (-> (the-as (inline-array vector4w) a1-26) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-26) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 4) a2-13 t0-5 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 6) a3-9 t1-0 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-1 (-> arg1 shaders 3))) + (let ((v1-33 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-33) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-33) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-1 (the-as adgif-shader (&+ (the-as pointer v1-33) 32)))) + (quad-copy! (the-as pointer s0-1) (the-as pointer s1-1) 5) + (set! (-> s0-1 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-1 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-1 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-40 (ash 16 (-> s1-1 tex0 tw))) + (a0-42 (ash 16 (-> s1-1 tex0 th))) + ) + (let* ((a1-32 arg0) + (a2-17 (the-as object (-> a1-32 base))) + ) + (set! (-> (the-as dma-packet a2-17) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-17) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-17) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-32 base) (&+ (the-as pointer a2-17) 16)) + ) + (let* ((a1-33 arg0) + (a2-19 (the-as object (-> a1-33 base))) + ) + (set! (-> (the-as gs-gif-tag a2-19) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-19) regs) GIF_REGS_ALL_AD) + (set! (-> a1-33 base) (&+ (the-as pointer a2-19) 16)) + ) + (let* ((a1-34 arg0) + (a2-21 (-> a1-34 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-21) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-21) 1) (gs-reg64 scissor-1)) + (set! (-> a1-34 base) (&+ a2-21 16)) + ) + (let* ((f0-10 (* 256.0 (-> arg1 right iris-scale))) + (a1-36 (the-as object (-> arg0 base))) + (a2-23 (the int (- f30-0 f0-10))) + (t0-11 (the int (- sv-16 f0-10))) + (a3-20 (the int (+ f30-0 f0-10))) + (t1-2 (the int (+ sv-16 f0-10))) + ) + (set! (-> (the-as (inline-array vector4w) a1-36) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-36) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 4) a2-23 t0-11 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 5) v1-40 a0-42 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 6) a3-20 t1-2 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-44 arg0) + (a0-44 (the-as object (-> v1-44 base))) + ) + (set! (-> (the-as dma-packet a0-44) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-44) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-44) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-44 base) (&+ (the-as pointer a0-44) 16)) + ) + (let* ((v1-45 arg0) + (a0-46 (the-as object (-> v1-45 base))) + ) + (set! (-> (the-as gs-gif-tag a0-46) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-46) regs) GIF_REGS_ALL_AD) + (set! (-> v1-45 base) (&+ (the-as pointer a0-46) 16)) + ) + (let* ((v1-46 arg0) + (a0-48 (-> v1-46 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-48) 0) + (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-48) 1) (gs-reg64 test-1)) + (set! (-> v1-46 base) (&+ a0-48 16)) + ) + (let ((s1-2 (-> arg1 shaders 1))) + (let ((v1-48 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-48) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-48) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-2 (the-as adgif-shader (&+ (the-as pointer v1-48) 32)))) + (quad-copy! (the-as pointer s0-2) (the-as pointer s1-2) 5) + (set! (-> s0-2 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-2 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-2 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-55 (ash 16 (-> s1-2 tex0 tw))) + (a0-60 (ash 16 (-> s1-2 tex0 th))) + ) + (let* ((a1-49 arg0) + (a2-27 (the-as object (-> a1-49 base))) + ) + (set! (-> (the-as dma-packet a2-27) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-27) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-27) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-49 base) (&+ (the-as pointer a2-27) 16)) + ) + (let* ((a1-50 arg0) + (a2-29 (the-as object (-> a1-50 base))) + ) + (set! (-> (the-as gs-gif-tag a2-29) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-29) regs) GIF_REGS_ALL_AD) + (set! (-> a1-50 base) (&+ (the-as pointer a2-29) 16)) + ) + (let* ((a1-51 arg0) + (a2-31 (-> a1-51 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-31) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-31) 1) (gs-reg64 scissor-1)) + (set! (-> a1-51 base) (&+ a2-31 16)) + ) + (let* ((f0-14 (* 256.0 (-> arg1 left pupil-scale))) + (a1-53 (the-as object (-> arg0 base))) + (a2-33 (the int (- f28-0 f0-14))) + (t0-17 (the int (- f26-0 f0-14))) + (a3-30 (the int (+ f28-0 f0-14))) + (t1-3 (the int (+ f26-0 f0-14))) + ) + (set! (-> (the-as (inline-array vector4w) a1-53) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-53) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 4) a2-33 t0-17 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 5) v1-55 a0-60 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 6) a3-30 t1-3 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-3 (-> arg1 shaders 4))) + (let ((v1-60 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-60) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-60) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-3 (the-as adgif-shader (&+ (the-as pointer v1-60) 32)))) + (quad-copy! (the-as pointer s0-3) (the-as pointer s1-3) 5) + (set! (-> s0-3 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-3 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-3 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-67 (ash 16 (-> s1-3 tex0 tw))) + (a0-72 (ash 16 (-> s1-3 tex0 th))) + ) + (let* ((a1-59 arg0) + (a2-37 (the-as object (-> a1-59 base))) + ) + (set! (-> (the-as dma-packet a2-37) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-37) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-37) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-59 base) (&+ (the-as pointer a2-37) 16)) + ) + (let* ((a1-60 arg0) + (a2-39 (the-as object (-> a1-60 base))) + ) + (set! (-> (the-as gs-gif-tag a2-39) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-39) regs) GIF_REGS_ALL_AD) + (set! (-> a1-60 base) (&+ (the-as pointer a2-39) 16)) + ) + (let* ((a1-61 arg0) + (a2-41 (-> a1-61 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-41) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-41) 1) (gs-reg64 scissor-1)) + (set! (-> a1-61 base) (&+ a2-41 16)) + ) + (let* ((f0-18 (* 256.0 (-> arg1 right pupil-scale))) + (a1-63 (the-as object (-> arg0 base))) + (a2-43 (the int (- f30-0 f0-18))) + (t0-23 (the int (- sv-16 f0-18))) + (a3-41 (the int (+ f30-0 f0-18))) + (t1-5 (the int (+ sv-16 f0-18))) + ) + (set! (-> (the-as (inline-array vector4w) a1-63) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-63) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 4) a2-43 t0-23 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 5) v1-67 a0-72 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 6) a3-41 t1-5 #xffffff 0) + ) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-71 arg0) + (a0-74 (the-as object (-> v1-71 base))) + ) + (set! (-> (the-as dma-packet a0-74) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-74) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-74) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-71 base) (&+ (the-as pointer a0-74) 16)) + ) + (let* ((v1-72 arg0) + (a0-76 (the-as object (-> v1-72 base))) + ) + (set! (-> (the-as gs-gif-tag a0-76) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-76) regs) GIF_REGS_ALL_AD) + (set! (-> v1-72 base) (&+ (the-as pointer a0-76) 16)) + ) + (let* ((v1-73 arg0) + (a0-78 (-> v1-73 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-78) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-78) 1) (gs-reg64 test-1)) + (set! (-> v1-73 base) (&+ a0-78 16)) + ) + (let ((s1-4 (-> arg1 shaders 2))) + (let ((v1-75 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-75) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-75) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-4 (the-as adgif-shader (&+ (the-as pointer v1-75) 32)))) + (quad-copy! (the-as pointer s0-4) (the-as pointer s1-4) 5) + (set! (-> s0-4 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-4 alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> s0-4 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-82 (ash 16 (-> s1-4 tex0 tw))) + (a0-90 (ash 16 (-> s1-4 tex0 th))) + ) + (when (< (-> arg1 left lid) 0.0) + (let ((f0-23 (+ 1.0 (-> arg1 left lid)))) + (set! (-> arg1 left lid) (+ f0-23 (* (- 1.0 f0-23) (-> arg1 blink)))) + ) + ) + (let* ((a1-80 arg0) + (a2-47 (the-as object (-> a1-80 base))) + ) + (set! (-> (the-as dma-packet a2-47) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-47) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-47) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-80 base) (&+ (the-as pointer a2-47) 16)) + ) + (let* ((a1-81 arg0) + (a2-49 (the-as object (-> a1-81 base))) + ) + (set! (-> (the-as gs-gif-tag a2-49) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-49) regs) GIF_REGS_ALL_AD) + (set! (-> a1-81 base) (&+ (the-as pointer a2-49) 16)) + ) + (let* ((a1-82 arg0) + (a2-51 (-> a1-82 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-51) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-51) 1) (gs-reg64 scissor-1)) + (set! (-> a1-82 base) (&+ a2-51 16)) + ) + (let* ((f0-27 (+ (the float (+ s3-0 -32)) (* 32.0 (-> arg1 left lid)))) + (a1-85 (the-as object (-> arg0 base))) + (a2-53 (* s4-0 16)) + (t0-29 (the int (* 16.0 f0-27))) + (a3-53 (* (+ s4-0 32) 16)) + (t1-8 (the int (* 16.0 (+ f0-27 (* 32.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-85) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-85) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 4) a2-53 t0-29 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 5) v1-82 a0-90 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 6) a3-53 t1-8 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-5 (-> arg1 shaders 5))) + (let ((v1-87 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-87) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-87) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-5 (the-as adgif-shader (&+ (the-as pointer v1-87) 32)))) + (quad-copy! (the-as pointer s0-5) (the-as pointer s1-5) 5) + (set! (-> s0-5 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-5 alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> s0-5 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-94 (ash 16 (-> s1-5 tex0 tw))) + (a0-102 (ash 16 (-> s1-5 tex0 th))) + ) + (when (< (-> arg1 right lid) 0.0) + (let ((f0-33 (+ 1.0 (-> arg1 right lid)))) + (set! (-> arg1 right lid) (+ f0-33 (* (- 1.0 f0-33) (-> arg1 blink)))) + ) + ) + (let* ((a1-95 arg0) + (a2-57 (the-as object (-> a1-95 base))) + ) + (set! (-> (the-as dma-packet a2-57) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-57) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-57) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-95 base) (&+ (the-as pointer a2-57) 16)) + ) + (let* ((a1-96 arg0) + (a2-59 (the-as object (-> a1-96 base))) + ) + (set! (-> (the-as gs-gif-tag a2-59) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-59) regs) GIF_REGS_ALL_AD) + (set! (-> a1-96 base) (&+ (the-as pointer a2-59) 16)) + ) + (let* ((a1-97 arg0) + (a2-61 (-> a1-97 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-61) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-61) 1) (gs-reg64 scissor-1)) + (set! (-> a1-97 base) (&+ a2-61 16)) + ) + (let* ((f0-37 (+ (the float (+ s3-0 -32)) (* 32.0 (-> arg1 right lid)))) + (a1-100 (the-as object (-> arg0 base))) + (a2-64 (* (+ s4-0 64) 16)) + (t0-35 (the int (* 16.0 f0-37))) + (a3-65 (* (+ s4-0 32) 16)) + (t1-11 (the int (* 16.0 (+ f0-37 (* 32.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-100) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-100) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 4) a2-64 t0-35 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 5) v1-94 a0-102 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 6) a3-65 t1-11 #xffffff 0) + ) + ) + ) + ) + (let ((v0-6 (&+ (-> arg0 base) 112))) + (set! (-> arg0 base) v0-6) + v0-6 + ) + ) + +(defun render-eyes-64 ((arg0 dma-buffer) (arg1 eye-control) (arg2 int)) + (local-vars (sv-16 float)) + (let ((s4-0 64) + (s3-0 (+ (* arg2 64) 64)) + (s2-0 (* arg2 64)) + ) + (let ((f28-0 (* 16.0 (+ (the float (+ s4-0 32)) (* 64.0 (-> arg1 left x))))) + (f26-0 (* 16.0 (+ (the float (+ s3-0 32)) (* 64.0 (-> arg1 left y))))) + (f30-0 (* 16.0 (+ (the float (+ s4-0 96)) (* 64.0 (-> arg1 right x))))) + ) + (set! sv-16 (* 16.0 (+ (the float (+ s3-0 32)) (* 64.0 (-> arg1 right y))))) + (let ((s1-0 (-> arg1 shaders 0))) + (let ((v1-14 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-14) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-14) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-0 (the-as object (&+ (the-as pointer v1-14) 32)))) + (quad-copy! (the-as pointer s0-0) (the-as pointer s1-0) 5) + (set! (-> (the-as adgif-shader s0-0) clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> (the-as adgif-shader s0-0) alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> (the-as adgif-shader s0-0) prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-20 arg0) + (a0-6 (the-as object (-> v1-20 base))) + ) + (set! (-> (the-as dma-packet a0-6) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-6) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-6) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-20 base) (&+ (the-as pointer a0-6) 16)) + ) + (let* ((v1-21 arg0) + (a0-8 (the-as object (-> v1-21 base))) + ) + (set! (-> (the-as gs-gif-tag a0-8) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-8) regs) GIF_REGS_ALL_AD) + (set! (-> v1-21 base) (&+ (the-as pointer a0-8) 16)) + ) + (let* ((v1-22 arg0) + (a0-10 (-> v1-22 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a0-10) 0) + (new 'static 'gs-scissor :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a0-10) 1) (gs-reg64 scissor-1)) + (set! (-> v1-22 base) (&+ a0-10 16)) + ) + (let ((v1-23 (the-as object (-> arg0 base)))) + (set! (-> (the-as (inline-array vector4w) v1-23) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) v1-23) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 4) (* s4-0 16) (* s3-0 16) #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 5) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 6) (* (+ s4-0 128) 16) (* (+ s3-0 64) 16) #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let ((v1-28 (ash 16 (-> s1-0 tex0 tw))) + (a0-30 (ash 16 (-> s1-0 tex0 th))) + ) + (let* ((a1-22 arg0) + (a2-7 (the-as object (-> a1-22 base))) + ) + (set! (-> (the-as dma-packet a2-7) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-7) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-7) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-22 base) (&+ (the-as pointer a2-7) 16)) + ) + (let* ((a1-23 arg0) + (a2-9 (the-as object (-> a1-23 base))) + ) + (set! (-> (the-as gs-gif-tag a2-9) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-9) regs) GIF_REGS_ALL_AD) + (set! (-> a1-23 base) (&+ (the-as pointer a2-9) 16)) + ) + (let* ((a1-24 arg0) + (a2-11 (-> a1-24 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-11) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-11) 1) (gs-reg64 scissor-1)) + (set! (-> a1-24 base) (&+ a2-11 16)) + ) + (let* ((f0-6 (* 512.0 (-> arg1 left iris-scale))) + (a1-26 (the-as object (-> arg0 base))) + (a2-13 (the int (- f28-0 f0-6))) + (t0-5 (the int (- f26-0 f0-6))) + (a3-9 (the int (+ f28-0 f0-6))) + (t1-0 (the int (+ f26-0 f0-6))) + ) + (set! (-> (the-as (inline-array vector4w) a1-26) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-26) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 4) a2-13 t0-5 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 6) a3-9 t1-0 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let* ((a1-30 arg0) + (a2-17 (the-as object (-> a1-30 base))) + ) + (set! (-> (the-as dma-packet a2-17) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-17) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-17) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-30 base) (&+ (the-as pointer a2-17) 16)) + ) + (let* ((a1-31 arg0) + (a2-19 (the-as object (-> a1-31 base))) + ) + (set! (-> (the-as gs-gif-tag a2-19) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-19) regs) GIF_REGS_ALL_AD) + (set! (-> a1-31 base) (&+ (the-as pointer a2-19) 16)) + ) + (let* ((a1-32 arg0) + (a2-21 (-> a1-32 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-21) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-21) 1) (gs-reg64 scissor-1)) + (set! (-> a1-32 base) (&+ a2-21 16)) + ) + (let* ((f0-10 (* 512.0 (-> arg1 right iris-scale))) + (a1-34 (the-as object (-> arg0 base))) + (a2-23 (the int (- f30-0 f0-10))) + (t0-11 (the int (- sv-16 f0-10))) + (a3-20 (the int (+ f30-0 f0-10))) + (t1-2 (the int (+ sv-16 f0-10))) + ) + (set! (-> (the-as (inline-array vector4w) a1-34) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-34) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 4) a2-23 t0-11 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 6) a3-20 t1-2 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-32 arg0) + (a0-32 (the-as object (-> v1-32 base))) + ) + (set! (-> (the-as dma-packet a0-32) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-32) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-32) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-32 base) (&+ (the-as pointer a0-32) 16)) + ) + (let* ((v1-33 arg0) + (a0-34 (the-as object (-> v1-33 base))) + ) + (set! (-> (the-as gs-gif-tag a0-34) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-34) regs) GIF_REGS_ALL_AD) + (set! (-> v1-33 base) (&+ (the-as pointer a0-34) 16)) + ) + (let* ((v1-34 arg0) + (a0-36 (-> v1-34 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-36) 0) + (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-36) 1) (gs-reg64 test-1)) + (set! (-> v1-34 base) (&+ a0-36 16)) + ) + (let ((s1-1 (-> arg1 shaders 1))) + (let ((v1-36 (the-as object (-> arg0 base)))) + (set! (-> (the-as (inline-array vector4w) v1-36) 0 quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) v1-36) 1 quad) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-1 (the-as object (&+ (the-as pointer v1-36) 32)))) + (quad-copy! (the-as pointer s0-1) (the-as pointer s1-1) 5) + (set! (-> (the-as adgif-shader s0-1) clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> (the-as adgif-shader s0-1) alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> (the-as adgif-shader s0-1) prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-43 (ash 16 (-> s1-1 tex0 tw))) + (a0-48 (ash 16 (-> s1-1 tex0 th))) + ) + (let* ((a1-47 arg0) + (a2-27 (the-as object (-> a1-47 base))) + ) + (set! (-> (the-as dma-packet a2-27) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-27) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-27) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-47 base) (&+ (the-as pointer a2-27) 16)) + ) + (let* ((a1-48 arg0) + (a2-29 (the-as object (-> a1-48 base))) + ) + (set! (-> (the-as gs-gif-tag a2-29) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-29) regs) GIF_REGS_ALL_AD) + (set! (-> a1-48 base) (&+ (the-as pointer a2-29) 16)) + ) + (let* ((a1-49 arg0) + (a2-31 (-> a1-49 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-31) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-31) 1) (gs-reg64 scissor-1)) + (set! (-> a1-49 base) (&+ a2-31 16)) + ) + (let* ((f0-14 (* 512.0 (-> arg1 left pupil-scale))) + (a1-51 (the-as object (-> arg0 base))) + (a2-33 (the int (- f28-0 f0-14))) + (t0-17 (the int (- f26-0 f0-14))) + (a3-30 (the int (+ f28-0 f0-14))) + (t1-3 (the int (+ f26-0 f0-14))) + ) + (set! (-> (the-as (inline-array vector4w) a1-51) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-51) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 4) a2-33 t0-17 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 5) v1-43 a0-48 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 6) a3-30 t1-3 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let* ((a1-55 arg0) + (a2-37 (the-as object (-> a1-55 base))) + ) + (set! (-> (the-as dma-packet a2-37) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-37) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-37) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-55 base) (&+ (the-as pointer a2-37) 16)) + ) + (let* ((a1-56 arg0) + (a2-39 (the-as object (-> a1-56 base))) + ) + (set! (-> (the-as gs-gif-tag a2-39) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-39) regs) GIF_REGS_ALL_AD) + (set! (-> a1-56 base) (&+ (the-as pointer a2-39) 16)) + ) + (let* ((a1-57 arg0) + (a2-41 (-> a1-57 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-41) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-41) 1) (gs-reg64 scissor-1)) + (set! (-> a1-57 base) (&+ a2-41 16)) + ) + (let* ((f0-18 (* 512.0 (-> arg1 right pupil-scale))) + (a1-59 (the-as object (-> arg0 base))) + (a2-43 (the int (- f30-0 f0-18))) + (t0-23 (the int (- sv-16 f0-18))) + (a3-41 (the int (+ f30-0 f0-18))) + (t1-5 (the int (+ sv-16 f0-18))) + ) + (set! (-> (the-as (inline-array vector4w) a1-59) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-59) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 4) a2-43 t0-23 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 5) v1-43 a0-48 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 6) a3-41 t1-5 #xffffff 0) + ) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-47 arg0) + (a0-50 (the-as object (-> v1-47 base))) + ) + (set! (-> (the-as dma-packet a0-50) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-50) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-50) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-47 base) (&+ (the-as pointer a0-50) 16)) + ) + (let* ((v1-48 arg0) + (a0-52 (the-as object (-> v1-48 base))) + ) + (set! (-> (the-as gs-gif-tag a0-52) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-52) regs) GIF_REGS_ALL_AD) + (set! (-> v1-48 base) (&+ (the-as pointer a0-52) 16)) + ) + (let* ((v1-49 arg0) + (a0-54 (-> v1-49 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-54) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-54) 1) (gs-reg64 test-1)) + (set! (-> v1-49 base) (&+ a0-54 16)) + ) + (let ((s1-2 (-> arg1 shaders 2))) + (let ((v1-51 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-51) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-51) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-2 (the-as object (&+ (the-as pointer v1-51) 32)))) + (quad-copy! (the-as pointer s0-2) (the-as pointer s1-2) 5) + (set! (-> (the-as adgif-shader s0-2) clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> (the-as adgif-shader s0-2) alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> (the-as adgif-shader s0-2) prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-58 (ash 16 (-> s1-2 tex0 tw))) + (a0-66 (ash 16 (-> s1-2 tex0 th))) + ) + (when (< (-> arg1 left lid) 0.0) + (let ((f0-23 (+ 1.0 (-> arg1 left lid)))) + (set! (-> arg1 left lid) (+ f0-23 (* (- 1.0 f0-23) (-> arg1 blink)))) + ) + ) + (let* ((a1-76 arg0) + (a2-47 (the-as object (-> a1-76 base))) + ) + (set! (-> (the-as dma-packet a2-47) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-47) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-47) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-76 base) (&+ (the-as pointer a2-47) 16)) + ) + (let* ((a1-77 arg0) + (a2-49 (the-as object (-> a1-77 base))) + ) + (set! (-> (the-as gs-gif-tag a2-49) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-49) regs) GIF_REGS_ALL_AD) + (set! (-> a1-77 base) (&+ (the-as pointer a2-49) 16)) + ) + (let* ((a1-78 arg0) + (a2-51 (-> a1-78 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-51) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-51) 1) (gs-reg64 scissor-1)) + (set! (-> a1-78 base) (&+ a2-51 16)) + ) + (let* ((f0-27 (+ (the float (+ s3-0 -64)) (* 64.0 (-> arg1 left lid)))) + (a1-81 (the-as object (-> arg0 base))) + (a2-53 (* s4-0 16)) + (t0-29 (the int (* 16.0 f0-27))) + (a3-53 (* (+ s4-0 64) 16)) + (t1-8 (the int (* 16.0 (+ f0-27 (* 64.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-81) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-81) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 4) a2-53 t0-29 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 5) v1-58 a0-66 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 6) a3-53 t1-8 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (when (< (-> arg1 right lid) 0.0) + (let ((f0-33 (+ 1.0 (-> arg1 right lid)))) + (set! (-> arg1 right lid) (+ f0-33 (* (- 1.0 f0-33) (-> arg1 blink)))) + ) + ) + (let* ((a1-89 arg0) + (a2-57 (the-as object (-> a1-89 base))) + ) + (set! (-> (the-as dma-packet a2-57) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-57) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-57) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-89 base) (&+ (the-as pointer a2-57) 16)) + ) + (let* ((a1-90 arg0) + (a2-59 (the-as object (-> a1-90 base))) + ) + (set! (-> (the-as gs-gif-tag a2-59) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-59) regs) GIF_REGS_ALL_AD) + (set! (-> a1-90 base) (&+ (the-as pointer a2-59) 16)) + ) + (let* ((a1-91 arg0) + (a2-61 (-> a1-91 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-61) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-61) 1) (gs-reg64 scissor-1)) + (set! (-> a1-91 base) (&+ a2-61 16)) + ) + (let* ((f0-37 (+ (the float (+ s3-0 -64)) (* 64.0 (-> arg1 right lid)))) + (a1-94 (the-as object (-> arg0 base))) + (a2-64 (* (+ s4-0 128) 16)) + (t0-35 (the int (* 16.0 f0-37))) + (a3-65 (* (+ s4-0 64) 16)) + (t1-11 (the int (* 16.0 (+ f0-37 (* 64.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-94) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-94) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 4) a2-64 t0-35 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 5) v1-58 a0-66 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 6) a3-65 t1-11 #xffffff 0) + ) + ) + ) + ) + (let ((v0-3 (&+ (-> arg0 base) 112))) + (set! (-> arg0 base) v0-3) + v0-3 + ) + ) + +(defun render-eyes-64-different ((arg0 dma-buffer) (arg1 eye-control) (arg2 int)) + (local-vars (sv-16 float)) + (let ((s4-0 64) + (s3-0 (+ (* arg2 64) 64)) + (s2-0 (* arg2 64)) + ) + (let ((f28-0 (* 16.0 (+ (the float (+ s4-0 32)) (* 64.0 (-> arg1 left x))))) + (f26-0 (* 16.0 (+ (the float (+ s3-0 32)) (* 64.0 (-> arg1 left y))))) + (f30-0 (* 16.0 (+ (the float (+ s4-0 96)) (* 64.0 (-> arg1 right x))))) + ) + (set! sv-16 (* 16.0 (+ (the float (+ s3-0 32)) (* 64.0 (-> arg1 right y))))) + (let ((s1-0 (-> arg1 shaders 0))) + (let ((v1-14 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-14) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-14) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-0 (the-as adgif-shader (&+ (the-as pointer v1-14) 32)))) + (quad-copy! (the-as pointer s0-0) (the-as pointer s1-0) 5) + (set! (-> s0-0 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-0 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-0 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-20 arg0) + (a0-6 (the-as object (-> v1-20 base))) + ) + (set! (-> (the-as dma-packet a0-6) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-6) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-6) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-20 base) (&+ (the-as pointer a0-6) 16)) + ) + (let* ((v1-21 arg0) + (a0-8 (the-as object (-> v1-21 base))) + ) + (set! (-> (the-as gs-gif-tag a0-8) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-8) regs) GIF_REGS_ALL_AD) + (set! (-> v1-21 base) (&+ (the-as pointer a0-8) 16)) + ) + (let* ((v1-22 arg0) + (a0-10 (-> v1-22 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a0-10) 0) + (new 'static 'gs-scissor :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a0-10) 1) (gs-reg64 scissor-1)) + (set! (-> v1-22 base) (&+ a0-10 16)) + ) + (let ((v1-23 (the-as object (-> arg0 base)))) + (set! (-> (the-as (inline-array vector4w) v1-23) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) v1-23) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 4) (* s4-0 16) (* s3-0 16) #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 5) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 6) (* (+ s4-0 128) 16) (* (+ s3-0 64) 16) #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let ((v1-28 (ash 16 (-> s1-0 tex0 tw))) + (a0-30 (ash 16 (-> s1-0 tex0 th))) + ) + (let* ((a1-22 arg0) + (a2-7 (the-as object (-> a1-22 base))) + ) + (set! (-> (the-as dma-packet a2-7) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-7) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-7) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-22 base) (&+ (the-as pointer a2-7) 16)) + ) + (let* ((a1-23 arg0) + (a2-9 (the-as object (-> a1-23 base))) + ) + (set! (-> (the-as gs-gif-tag a2-9) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-9) regs) GIF_REGS_ALL_AD) + (set! (-> a1-23 base) (&+ (the-as pointer a2-9) 16)) + ) + (let* ((a1-24 arg0) + (a2-11 (-> a1-24 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-11) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-11) 1) (gs-reg64 scissor-1)) + (set! (-> a1-24 base) (&+ a2-11 16)) + ) + (let* ((f0-6 (* 512.0 (-> arg1 left iris-scale))) + (a1-26 (the-as object (-> arg0 base))) + (a2-13 (the int (- f28-0 f0-6))) + (t0-5 (the int (- f26-0 f0-6))) + (a3-9 (the int (+ f28-0 f0-6))) + (t1-0 (the int (+ f26-0 f0-6))) + ) + (set! (-> (the-as (inline-array vector4w) a1-26) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-26) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 4) a2-13 t0-5 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 6) a3-9 t1-0 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-1 (-> arg1 shaders 3))) + (let ((v1-33 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-33) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-33) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-1 (the-as adgif-shader (&+ (the-as pointer v1-33) 32)))) + (quad-copy! (the-as pointer s0-1) (the-as pointer s1-1) 5) + (set! (-> s0-1 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-1 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-1 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-40 (ash 16 (-> s1-1 tex0 tw))) + (a0-42 (ash 16 (-> s1-1 tex0 th))) + ) + (let* ((a1-32 arg0) + (a2-17 (the-as object (-> a1-32 base))) + ) + (set! (-> (the-as dma-packet a2-17) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-17) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-17) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-32 base) (&+ (the-as pointer a2-17) 16)) + ) + (let* ((a1-33 arg0) + (a2-19 (the-as object (-> a1-33 base))) + ) + (set! (-> (the-as gs-gif-tag a2-19) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-19) regs) GIF_REGS_ALL_AD) + (set! (-> a1-33 base) (&+ (the-as pointer a2-19) 16)) + ) + (let* ((a1-34 arg0) + (a2-21 (-> a1-34 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-21) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-21) 1) (gs-reg64 scissor-1)) + (set! (-> a1-34 base) (&+ a2-21 16)) + ) + (let* ((f0-10 (* 512.0 (-> arg1 right iris-scale))) + (a1-36 (the-as object (-> arg0 base))) + (a2-23 (the int (- f30-0 f0-10))) + (t0-11 (the int (- sv-16 f0-10))) + (a3-20 (the int (+ f30-0 f0-10))) + (t1-2 (the int (+ sv-16 f0-10))) + ) + (set! (-> (the-as (inline-array vector4w) a1-36) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-36) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 4) a2-23 t0-11 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 5) v1-40 a0-42 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 6) a3-20 t1-2 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-44 arg0) + (a0-44 (the-as object (-> v1-44 base))) + ) + (set! (-> (the-as dma-packet a0-44) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-44) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-44) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-44 base) (&+ (the-as pointer a0-44) 16)) + ) + (let* ((v1-45 arg0) + (a0-46 (the-as object (-> v1-45 base))) + ) + (set! (-> (the-as gs-gif-tag a0-46) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-46) regs) GIF_REGS_ALL_AD) + (set! (-> v1-45 base) (&+ (the-as pointer a0-46) 16)) + ) + (let* ((v1-46 arg0) + (a0-48 (-> v1-46 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-48) 0) + (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-48) 1) (gs-reg64 test-1)) + (set! (-> v1-46 base) (&+ a0-48 16)) + ) + (let ((s1-2 (-> arg1 shaders 1))) + (let ((v1-48 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-48) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-48) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-2 (the-as adgif-shader (&+ (the-as pointer v1-48) 32)))) + (quad-copy! (the-as pointer s0-2) (the-as pointer s1-2) 5) + (set! (-> s0-2 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-2 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-2 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-55 (ash 16 (-> s1-2 tex0 tw))) + (a0-60 (ash 16 (-> s1-2 tex0 th))) + ) + (let* ((a1-49 arg0) + (a2-27 (the-as object (-> a1-49 base))) + ) + (set! (-> (the-as dma-packet a2-27) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-27) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-27) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-49 base) (&+ (the-as pointer a2-27) 16)) + ) + (let* ((a1-50 arg0) + (a2-29 (the-as object (-> a1-50 base))) + ) + (set! (-> (the-as gs-gif-tag a2-29) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-29) regs) GIF_REGS_ALL_AD) + (set! (-> a1-50 base) (&+ (the-as pointer a2-29) 16)) + ) + (let* ((a1-51 arg0) + (a2-31 (-> a1-51 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-31) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-31) 1) (gs-reg64 scissor-1)) + (set! (-> a1-51 base) (&+ a2-31 16)) + ) + (let* ((f0-14 (* 512.0 (-> arg1 left pupil-scale))) + (a1-53 (the-as object (-> arg0 base))) + (a2-33 (the int (- f28-0 f0-14))) + (t0-17 (the int (- f26-0 f0-14))) + (a3-30 (the int (+ f28-0 f0-14))) + (t1-3 (the int (+ f26-0 f0-14))) + ) + (set! (-> (the-as (inline-array vector4w) a1-53) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-53) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 4) a2-33 t0-17 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 5) v1-55 a0-60 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 6) a3-30 t1-3 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-3 (-> arg1 shaders 4))) + (let ((v1-60 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-60) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-60) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-3 (the-as adgif-shader (&+ (the-as pointer v1-60) 32)))) + (quad-copy! (the-as pointer s0-3) (the-as pointer s1-3) 5) + (set! (-> s0-3 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-3 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-3 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-67 (ash 16 (-> s1-3 tex0 tw))) + (a0-72 (ash 16 (-> s1-3 tex0 th))) + ) + (let* ((a1-59 arg0) + (a2-37 (the-as object (-> a1-59 base))) + ) + (set! (-> (the-as dma-packet a2-37) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-37) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-37) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-59 base) (&+ (the-as pointer a2-37) 16)) + ) + (let* ((a1-60 arg0) + (a2-39 (the-as object (-> a1-60 base))) + ) + (set! (-> (the-as gs-gif-tag a2-39) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-39) regs) GIF_REGS_ALL_AD) + (set! (-> a1-60 base) (&+ (the-as pointer a2-39) 16)) + ) + (let* ((a1-61 arg0) + (a2-41 (-> a1-61 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-41) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-41) 1) (gs-reg64 scissor-1)) + (set! (-> a1-61 base) (&+ a2-41 16)) + ) + (let* ((f0-18 (* 512.0 (-> arg1 right pupil-scale))) + (a1-63 (the-as object (-> arg0 base))) + (a2-43 (the int (- f30-0 f0-18))) + (t0-23 (the int (- sv-16 f0-18))) + (a3-41 (the int (+ f30-0 f0-18))) + (t1-5 (the int (+ sv-16 f0-18))) + ) + (set! (-> (the-as (inline-array vector4w) a1-63) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-63) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 4) a2-43 t0-23 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 5) v1-67 a0-72 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 6) a3-41 t1-5 #xffffff 0) + ) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-71 arg0) + (a0-74 (the-as object (-> v1-71 base))) + ) + (set! (-> (the-as dma-packet a0-74) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-74) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-74) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-71 base) (&+ (the-as pointer a0-74) 16)) + ) + (let* ((v1-72 arg0) + (a0-76 (the-as object (-> v1-72 base))) + ) + (set! (-> (the-as gs-gif-tag a0-76) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-76) regs) GIF_REGS_ALL_AD) + (set! (-> v1-72 base) (&+ (the-as pointer a0-76) 16)) + ) + (let* ((v1-73 arg0) + (a0-78 (-> v1-73 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-78) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-78) 1) (gs-reg64 test-1)) + (set! (-> v1-73 base) (&+ a0-78 16)) + ) + (let ((s1-4 (-> arg1 shaders 2))) + (let ((v1-75 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-75) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-75) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-4 (the-as adgif-shader (&+ (the-as pointer v1-75) 32)))) + (quad-copy! (the-as pointer s0-4) (the-as pointer s1-4) 5) + (set! (-> s0-4 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-4 alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> s0-4 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-82 (ash 16 (-> s1-4 tex0 tw))) + (a0-90 (ash 16 (-> s1-4 tex0 th))) + ) + (when (< (-> arg1 left lid) 0.0) + (let ((f0-23 (+ 1.0 (-> arg1 left lid)))) + (set! (-> arg1 left lid) (+ f0-23 (* (- 1.0 f0-23) (-> arg1 blink)))) + ) + ) + (let* ((a1-80 arg0) + (a2-47 (the-as object (-> a1-80 base))) + ) + (set! (-> (the-as dma-packet a2-47) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-47) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-47) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-80 base) (&+ (the-as pointer a2-47) 16)) + ) + (let* ((a1-81 arg0) + (a2-49 (the-as object (-> a1-81 base))) + ) + (set! (-> (the-as gs-gif-tag a2-49) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-49) regs) GIF_REGS_ALL_AD) + (set! (-> a1-81 base) (&+ (the-as pointer a2-49) 16)) + ) + (let* ((a1-82 arg0) + (a2-51 (-> a1-82 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-51) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-51) 1) (gs-reg64 scissor-1)) + (set! (-> a1-82 base) (&+ a2-51 16)) + ) + (let* ((f0-27 (+ (the float (+ s3-0 -64)) (* 64.0 (-> arg1 left lid)))) + (a1-85 (the-as object (-> arg0 base))) + (a2-53 (* s4-0 16)) + (t0-29 (the int (* 16.0 f0-27))) + (a3-53 (* (+ s4-0 64) 16)) + (t1-8 (the int (* 16.0 (+ f0-27 (* 64.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-85) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-85) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 4) a2-53 t0-29 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 5) v1-82 a0-90 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 6) a3-53 t1-8 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-5 (-> arg1 shaders 5))) + (let ((v1-87 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-87) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-87) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-5 (the-as adgif-shader (&+ (the-as pointer v1-87) 32)))) + (quad-copy! (the-as pointer s0-5) (the-as pointer s1-5) 5) + (set! (-> s0-5 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-5 alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> s0-5 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-94 (ash 16 (-> s1-5 tex0 tw))) + (a0-102 (ash 16 (-> s1-5 tex0 th))) + ) + (when (< (-> arg1 right lid) 0.0) + (let ((f0-33 (+ 1.0 (-> arg1 right lid)))) + (set! (-> arg1 right lid) (+ f0-33 (* (- 1.0 f0-33) (-> arg1 blink)))) + ) + ) + (let* ((a1-95 arg0) + (a2-57 (the-as object (-> a1-95 base))) + ) + (set! (-> (the-as dma-packet a2-57) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-57) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-57) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-95 base) (&+ (the-as pointer a2-57) 16)) + ) + (let* ((a1-96 arg0) + (a2-59 (the-as object (-> a1-96 base))) + ) + (set! (-> (the-as gs-gif-tag a2-59) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-59) regs) GIF_REGS_ALL_AD) + (set! (-> a1-96 base) (&+ (the-as pointer a2-59) 16)) + ) + (let* ((a1-97 arg0) + (a2-61 (-> a1-97 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-61) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-61) 1) (gs-reg64 scissor-1)) + (set! (-> a1-97 base) (&+ a2-61 16)) + ) + (let* ((f0-37 (+ (the float (+ s3-0 -64)) (* 64.0 (-> arg1 right lid)))) + (a1-100 (the-as object (-> arg0 base))) + (a2-64 (* (+ s4-0 128) 16)) + (t0-35 (the int (* 16.0 f0-37))) + (a3-65 (* (+ s4-0 64) 16)) + (t1-11 (the int (* 16.0 (+ f0-37 (* 64.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-100) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-100) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 4) a2-64 t0-35 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 5) v1-94 a0-102 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 6) a3-65 t1-11 #xffffff 0) + ) + ) + ) + ) + (let ((v0-6 (&+ (-> arg0 base) 112))) + (set! (-> arg0 base) v0-6) + v0-6 + ) + ) + +(defun update-eyes () + (when (not (-> *blit-displays-work* screen-copied)) + (dotimes (gp-0 6) + (dotimes (s5-0 16) + (let* ((s4-0 (the-as eye-control (+ (+ (* 96 s5-0) 28 (* 1552 gp-0)) (the-as int *eye-control-arrays*)))) + (v1-8 (handle->process (-> s4-0 process))) + ) + (when (and v1-8 + (logtest? (-> (the-as process-drawable v1-8) skel status) (joint-control-status eye-anim)) + (logtest? (-> (the-as process-drawable v1-8) draw status) (draw-control-status on-screen)) + ) + (when (-> s4-0 shaders) + (when (not (paused?)) + (cond + ((and (>= (-> s4-0 left lid) 0.0) (>= (-> s4-0 right lid) 0.0)) + (set! (-> s4-0 random-time) (the-as uint 60)) + (set! (-> s4-0 blink) 0.0) + ) + (else + (+! (-> s4-0 random-time) -1) + (let ((v1-22 (-> s4-0 random-time))) + (when (< v1-22 (the-as uint 10)) + (set! (-> s4-0 blink) (-> *eye-work* blink-table v1-22)) + (if (zero? v1-22) + (set! (-> s4-0 random-time) (the-as uint (the int (rand-vu-float-range 60.0 240.0)))) + ) + ) + ) + ) + ) + ) + (when (-> s4-0 draw-flag) + (cond + ((and (>= gp-0 3) + (or (movie?) + (and (not (-> (the-as eye-control-arrays (+ (the-as uint *eye-control-arrays*) (* 1552 (+ gp-0 -3)) (* 96 s5-0))) + data + 0 + data + 0 + process + ) + ) + (not (-> (the-as eye-control-arrays (+ (the-as uint *eye-control-arrays*) (* 1552 (+ gp-0 -3)) (* 96 (+ s5-0 1)))) + data + 0 + data + 0 + process + ) + ) + (not (-> (the-as eye-control-arrays (+ (the-as uint *eye-control-arrays*) (* 1552 (+ gp-0 -3)) (* 96 (+ s5-0 2)))) + data + 0 + data + 0 + process + ) + ) + (not (-> (the-as eye-control-arrays (+ (the-as uint *eye-control-arrays*) (* 1552 (+ gp-0 -3)) (* 96 (+ s5-0 3)))) + data + 0 + data + 0 + process + ) + ) + ) + ) + ) + (let* ((s2-0 (-> *display* frames (-> *display* on-screen) global-buf)) + (s3-0 (-> s2-0 base)) + ) + (set-display-gs-state-offset s2-0 (the-as int (-> *eyes-texture-base* vram-page)) 128 256 0 0 64 64) + (let* ((v1-49 s2-0) + (a0-38 (the-as object (-> v1-49 base))) + ) + (set! (-> (the-as dma-packet a0-38) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-38) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-38) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-49 base) (&+ (the-as pointer a0-38) 16)) + ) + (let* ((v1-50 s2-0) + (a0-40 (the-as object (-> v1-50 base))) + ) + (set! (-> (the-as gs-gif-tag a0-40) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-40) regs) GIF_REGS_ALL_AD) + (set! (-> v1-50 base) (&+ (the-as pointer a0-40) 16)) + ) + (let* ((v1-51 s2-0) + (a0-42 (-> v1-51 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-42) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-42) 1) (gs-reg64 test-1)) + (set! (-> v1-51 base) (&+ a0-42 16)) + ) + (if (-> s4-0 different-eyes) + (render-eyes-64-different s2-0 s4-0 (/ s5-0 4)) + (render-eyes-64 s2-0 s4-0 (/ s5-0 4)) + ) + (reset-display-gs-state *display* s2-0) + (let* ((v1-55 s2-0) + (a0-47 (the-as object (-> v1-55 base))) + ) + (set! (-> (the-as dma-packet a0-47) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-47) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-47) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-55 base) (&+ (the-as pointer a0-47) 16)) + ) + (let* ((v1-56 s2-0) + (a0-49 (the-as object (-> v1-56 base))) + ) + (set! (-> (the-as gs-gif-tag a0-49) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-49) regs) GIF_REGS_ALL_AD) + (set! (-> v1-56 base) (&+ (the-as pointer a0-49) 16)) + ) + (let* ((v1-57 s2-0) + (a0-51 (-> v1-57 base)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-51) 0) (gs-reg64 dimx)) + (set! (-> (the-as (pointer gs-reg64) a0-51) 1) (gs-reg64 alpha-1)) + (set! (-> v1-57 base) (&+ a0-51 16)) + ) + (let ((a3-1 (-> s2-0 base))) + (let ((v1-58 (the-as object (-> s2-0 base)))) + (set! (-> (the-as dma-packet v1-58) dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> (the-as dma-packet v1-58) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet v1-58) vif1) (new 'static 'vif-tag)) + (set! (-> s2-0 base) (&+ (the-as pointer v1-58) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) bucket-group) + (the-as bucket-id (-> s4-0 bucket)) + s3-0 + (the-as (pointer dma-tag) a3-1) + ) + ) + ) + ) + ((and (< gp-0 3) + (or (not (movie?)) + (not (-> (the-as eye-control-arrays (+ (the-as uint *eye-control-arrays*) (* 1552 (+ gp-0 3)) (* 96 (* (/ s5-0 4) 4)))) + data + 0 + data + 0 + process + ) + ) + ) + ) + (let* ((s2-1 (-> *display* frames (-> *display* on-screen) global-buf)) + (s3-1 (-> s2-1 base)) + ) + (set-display-gs-state-offset s2-1 (the-as int (-> *eyes-texture-base* vram-page)) 64 512 0 0 32 32) + (let* ((v1-78 s2-1) + (a0-63 (the-as object (-> v1-78 base))) + ) + (set! (-> (the-as dma-packet a0-63) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-63) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-63) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-78 base) (&+ (the-as pointer a0-63) 16)) + ) + (let* ((v1-79 s2-1) + (a0-65 (the-as object (-> v1-79 base))) + ) + (set! (-> (the-as gs-gif-tag a0-65) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-65) regs) GIF_REGS_ALL_AD) + (set! (-> v1-79 base) (&+ (the-as pointer a0-65) 16)) + ) + (let* ((v1-80 s2-1) + (a0-67 (-> v1-80 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-67) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-67) 1) (gs-reg64 test-1)) + (set! (-> v1-80 base) (&+ a0-67 16)) + ) + (if (-> s4-0 different-eyes) + (render-eyes-32-different s2-1 s4-0 s5-0) + (render-eyes-32 s2-1 s4-0 s5-0) + ) + (reset-display-gs-state *display* s2-1) + (let* ((v1-84 s2-1) + (a0-72 (the-as object (-> v1-84 base))) + ) + (set! (-> (the-as dma-packet a0-72) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-72) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-72) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-84 base) (&+ (the-as pointer a0-72) 16)) + ) + (let* ((v1-85 s2-1) + (a0-74 (the-as object (-> v1-85 base))) + ) + (set! (-> (the-as gs-gif-tag a0-74) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-74) regs) GIF_REGS_ALL_AD) + (set! (-> v1-85 base) (&+ (the-as pointer a0-74) 16)) + ) + (let* ((v1-86 s2-1) + (a0-76 (-> v1-86 base)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-76) 0) (gs-reg64 dimx)) + (set! (-> (the-as (pointer gs-reg64) a0-76) 1) (gs-reg64 alpha-1)) + (set! (-> v1-86 base) (&+ a0-76 16)) + ) + (let ((a3-3 (-> s2-1 base))) + (let ((v1-87 (the-as object (-> s2-1 base)))) + (set! (-> (the-as dma-packet v1-87) dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> (the-as dma-packet v1-87) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet v1-87) vif1) (new 'static 'vif-tag)) + (set! (-> s2-1 base) (&+ (the-as pointer v1-87) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) bucket-group) + (the-as bucket-id (-> s4-0 bucket)) + s3-1 + (the-as (pointer dma-tag) a3-3) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; WARN: Return type mismatch uint vs int. (defun get-eye-block ((arg0 int) (arg1 int)) (let ((v1-0 arg0) (a0-4 (-> ct32-24-block-table (* arg1 4))) @@ -15,7 +2047,185 @@ ) ) +(defun convert-eye-data ((arg0 eye) (arg1 uint)) + (local-vars + (v0-0 float) + (v1-0 uint128) + (v1-1 uint128) + (v1-2 uint128) + (v1-3 uint128) + (v1-4 uint128) + (v1-5 uint128) + ) + (rlet ((vf1 :class vf) + (vf2 :class vf) + ) + (.pextlb v1-0 arg1 0) + (.pextlh v1-1 v1-0 0) + (.pw.sra v1-2 v1-1 16) + (.mov vf1 v1-2) + (.pextlb v1-3 0 arg1) + (.pextuh v1-4 0 v1-3) + (.pw.sll v1-5 v1-4 6) + (.mov vf2 v1-5) + (vitof15.xyzw vf1 vf1) + (vitof12.xyzw vf2 vf2) + (.svf (&-> arg0 data 0 quad) vf1) + (.svf (&-> arg0 data 1 quad) vf2) + (.mov v0-0 vf2) + v0-0 + ) + ) + (defun merc-eye-anim ((arg0 process-drawable)) - ;; (format *stdcon* "no eyes for you ~A~%" arg0) + (let* ((v1-2 (-> arg0 draw mgeo header eye-ctrl)) + (a0-2 (-> arg0 skel float-channels)) + (s3-0 (cond + ((> a0-2 0) + (-> arg0 skel channel (+ a0-2 -1 (-> arg0 skel active-channels))) + ) + (else + (let ((a0-8 (-> arg0 skel root-channel)) + (a1-4 (-> arg0 skel effect)) + ) + (-> a0-8 (if a1-4 + (-> a1-4 channel-offset) + 0 + ) + ) + ) + ) + ) + ) + (s5-0 (-> s3-0 frame-group)) + ) + (when (and (logtest? (-> arg0 skel status) (joint-control-status eye-anim)) + (and (nonzero? v1-2) (> (-> arg0 skel active-channels) 0) s5-0) + ) + (cond + ((and (-> arg0 skel override) (!= (-> arg0 skel override 41) 0.0)) + (let ((v1-7 (the-as object (+ (+ (* 96 (mod (-> v1-2 eye-slot) 20)) 28 (* 1552 (/ (-> v1-2 eye-slot) 20))) + (the-as int *eye-control-arrays*) + ) + ) + ) + (a0-26 (-> arg0 skel override)) + ) + (set! (-> (the-as eye-control v1-7) left x) (-> a0-26 42)) + (set! (-> (the-as eye-control v1-7) left y) (-> a0-26 43)) + (set! (-> (the-as eye-control v1-7) left lid) (-> a0-26 44)) + (set! (-> (the-as eye-control v1-7) left iris-scale) (-> a0-26 45)) + (set! (-> (the-as eye-control v1-7) left pupil-scale) (-> a0-26 46)) + (set! (-> (the-as eye-control v1-7) left lid-scale) (-> a0-26 47)) + (set! (-> (the-as eye-control v1-7) right x) (-> a0-26 48)) + (set! (-> (the-as eye-control v1-7) right y) (-> a0-26 49)) + (set! (-> (the-as eye-control v1-7) right lid) (-> a0-26 50)) + (set! (-> (the-as eye-control v1-7) right iris-scale) (-> a0-26 51)) + (set! (-> (the-as eye-control v1-7) right pupil-scale) (-> a0-26 52)) + (set! (-> (the-as eye-control v1-7) right lid-scale) (-> a0-26 53)) + ) + (logior! (-> arg0 skel status) (joint-control-status eye-anim-valid)) + ) + (else + (let* ((s4-0 (the-as eye-control (+ (+ (* 96 (mod (-> v1-2 eye-slot) 20)) 28 (* 1552 (/ (-> v1-2 eye-slot) 20))) + (the-as int *eye-control-arrays*) + ) + ) + ) + (f0-13 (-> s3-0 frame-num)) + (f30-0 (- f0-13 (* (the float (the int (/ f0-13 1.0))) 1.0))) + ) + (set! (-> s4-0 process) (process->handle arg0)) + (if (< 3 (-> v1-2 shader-count)) + (set! (-> s4-0 different-eyes) #t) + (set! (-> s4-0 different-eyes) #f) + ) + (set! (-> s4-0 shaders) (the-as (inline-array adgif-shader) (-> v1-2 left-iris-shader))) + (let ((a0-40 *level*) + (v1-12 (-> arg0 draw)) + ) + (set! (-> s4-0 bucket) (the-as uint (vu1-bucket-map + (the-as int (-> a0-40 draw-index-map (-> v1-12 level-index))) + (the-as int (-> v1-12 default-texture-page)) + (merc-mode eye) + ) + ) + ) + ) + (let ((s2-0 (new 'stack-no-clear 'eye)) + (s1-0 (new 'stack-no-clear 'eye)) + ) + (cond + ((-> s5-0 eye-anim) + (let ((s0-1 (min (the int (-> s3-0 frame-num)) (-> s5-0 eye-anim max-frame))) + (s3-2 (min (+ (the int (-> s3-0 frame-num)) 1) (-> s5-0 eye-anim max-frame))) + ) + (convert-eye-data s2-0 (-> s5-0 eye-anim data (* s0-1 2) dword)) + (convert-eye-data s1-0 (-> s5-0 eye-anim data (* s3-2 2) dword)) + (vector4-lerp! + (the-as vector (-> s4-0 left)) + (the-as vector (-> s2-0 data)) + (the-as vector (-> s1-0 data)) + f30-0 + ) + (vector4-lerp! + (the-as vector (&-> s4-0 left iris-scale)) + (the-as vector (&-> s2-0 iris-scale)) + (the-as vector (&-> s1-0 iris-scale)) + f30-0 + ) + (convert-eye-data s2-0 (-> s5-0 eye-anim data (+ (* s0-1 2) 1) dword)) + (convert-eye-data s1-0 (-> s5-0 eye-anim data (+ (* s3-2 2) 1) dword)) + ) + (vector4-lerp! + (the-as vector (-> s4-0 right)) + (the-as vector (-> s2-0 data)) + (the-as vector (-> s1-0 data)) + f30-0 + ) + (vector4-lerp! + (the-as vector (&-> s4-0 right iris-scale)) + (the-as vector (&-> s2-0 iris-scale)) + (the-as vector (&-> s1-0 iris-scale)) + f30-0 + ) + ) + (else + (format *stdcon* "no eye anim data for ~s~%" (-> arg0 name)) + (set! (-> s4-0 left x) 0.0) + (set! (-> s4-0 left y) 0.0) + (set! (-> s4-0 left lid) -1.0) + (set! (-> s4-0 left iris-scale) 0.55) + (set! (-> s4-0 left pupil-scale) 0.45) + (set! (-> s4-0 left lid-scale) 1.0) + (set! (-> s4-0 right x) 0.0) + (set! (-> s4-0 right y) 0.0) + (set! (-> s4-0 right lid) -1.0) + (set! (-> s4-0 right iris-scale) 0.55) + (set! (-> s4-0 right pupil-scale) 0.45) + (set! (-> s4-0 right lid-scale) 1.0) + ) + ) + ) + ) + (logior! (-> arg0 skel status) (joint-control-status eye-anim-valid)) + ) + ) + ) + ) + (if (logtest? (-> arg0 skel status) (joint-control-status eye-anim-valid)) + (logclear! (-> arg0 skel status) (joint-control-status eye-anim-valid)) + ) + 0 (none) - ) \ No newline at end of file + ) + +(defun set-eye-draw-flag ((arg0 symbol) (arg1 int) (arg2 int)) + (let ((s5-0 (the-as object (+ (+ (* 96 (mod arg1 20)) 28 (* 1552 (/ arg1 20))) (the-as int *eye-control-arrays*)))) + ) + (format 0 "flag: ~a eye-slot: ~d ~%" arg0 arg1) + (set! (-> (the-as eye-control s5-0) draw-flag) arg0) + ) + 0 + (none) + ) diff --git a/goal_src/jak2/engine/gfx/foreground/foreground.gc b/goal_src/jak2/engine/gfx/foreground/foreground.gc index 366e34237b..5ebaeafe65 100644 --- a/goal_src/jak2/engine/gfx/foreground/foreground.gc +++ b/goal_src/jak2/engine/gfx/foreground/foreground.gc @@ -10,6 +10,7 @@ (merc 0) (emerc 1) (mercneric 2) + (eye 3) ) diff --git a/goal_src/jak2/engine/gfx/merc/merc.gc b/goal_src/jak2/engine/gfx/merc/merc.gc index 872d8705e1..34c600023e 100644 --- a/goal_src/jak2/engine/gfx/merc/merc.gc +++ b/goal_src/jak2/engine/gfx/merc/merc.gc @@ -5,6 +5,7 @@ ;; name in dgo: merc ;; dgos: ENGINE, GAME +(define-extern get-eye-block (function int int int)) ;; DECOMP BEGINS diff --git a/test/decompiler/reference/jak2/engine/gfx/foreground/eye-h_REF.gc b/test/decompiler/reference/jak2/engine/gfx/foreground/eye-h_REF.gc index afdf466812..b74f7f8700 100644 --- a/test/decompiler/reference/jak2/engine/gfx/foreground/eye-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/foreground/eye-h_REF.gc @@ -38,7 +38,7 @@ (deftype eye-control (structure) ((process handle :offset-assert 0) (draw-flag symbol :offset-assert 8) - (different-eyes basic :offset-assert 12) + (different-eyes symbol :offset-assert 12) (random-time uint16 :offset-assert 16) (bucket uint16 :offset-assert 18) (blink float :offset-assert 20) diff --git a/test/decompiler/reference/jak2/engine/gfx/foreground/eye_REF.gc b/test/decompiler/reference/jak2/engine/gfx/foreground/eye_REF.gc new file mode 100644 index 0000000000..30edb50ac9 --- /dev/null +++ b/test/decompiler/reference/jak2/engine/gfx/foreground/eye_REF.gc @@ -0,0 +1,2414 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *eye-work*, type eye-work +(define *eye-work* (new 'static 'eye-work + :sprite-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type sprite) :tme #x1 :fst #x1) + :nreg #x5 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id uv) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id uv) + :regs4 (gif-reg-id xyz2) + ) + ) + :sprite-tmpl2 (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 + :nloop #x1 + :eop #x1 + :pre #x1 + :prim (new 'static 'gs-prim :prim (gs-prim-type sprite) :tme #x1 :abe #x1 :fst #x1) + :nreg #x5 + ) + :gif1 (new 'static 'gif-tag-regs + :regs0 (gif-reg-id rgbaq) + :regs1 (gif-reg-id uv) + :regs2 (gif-reg-id xyz2) + :regs3 (gif-reg-id uv) + :regs4 (gif-reg-id xyz2) + ) + ) + :adgif-tmpl (new 'static 'dma-gif-packet + :dma-vif (new 'static 'dma-packet + :dma (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)) + :vif1 (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1) + ) + :gif0 (new 'static 'gif-tag64 :nloop #x5 :eop #x1 :nreg #x1) + :gif1 (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d)) + ) + :blink-table (new 'static 'array float 10 0.0 0.667 0.9 1.0 1.0 1.0 1.0 0.333 0.1 0.0) + ) + ) + +;; definition for function render-eyes-32 +;; INFO: Used lq/sq +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +(defun render-eyes-32 ((arg0 dma-buffer) (arg1 eye-control) (arg2 int)) + (local-vars (sv-16 float)) + (let ((s4-0 32) + (s3-0 (+ (* arg2 32) 32)) + (s2-0 (* arg2 32)) + ) + (let ((f28-0 (* 16.0 (+ (the float (+ s4-0 16)) (* 32.0 (-> arg1 left x))))) + (f26-0 (* 16.0 (+ (the float (+ s3-0 16)) (* 32.0 (-> arg1 left y))))) + (f30-0 (* 16.0 (+ (the float (+ s4-0 48)) (* 32.0 (-> arg1 right x))))) + ) + (set! sv-16 (* 16.0 (+ (the float (+ s3-0 16)) (* 32.0 (-> arg1 right y))))) + (let ((s1-0 (-> arg1 shaders 0))) + (let ((v1-14 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-14) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-14) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-0 (the-as adgif-shader (&+ (the-as pointer v1-14) 32)))) + (quad-copy! (the-as pointer s0-0) (the-as pointer s1-0) 5) + (set! (-> s0-0 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-0 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-0 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-20 arg0) + (a0-6 (the-as object (-> v1-20 base))) + ) + (set! (-> (the-as dma-packet a0-6) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-6) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-6) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-20 base) (&+ (the-as pointer a0-6) 16)) + ) + (let* ((v1-21 arg0) + (a0-8 (the-as object (-> v1-21 base))) + ) + (set! (-> (the-as gs-gif-tag a0-8) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-8) regs) GIF_REGS_ALL_AD) + (set! (-> v1-21 base) (&+ (the-as pointer a0-8) 16)) + ) + (let* ((v1-22 arg0) + (a0-10 (-> v1-22 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a0-10) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a0-10) 1) (gs-reg64 scissor-1)) + (set! (-> v1-22 base) (&+ a0-10 16)) + ) + (let ((v1-23 (the-as object (-> arg0 base)))) + (set! (-> (the-as (inline-array vector4w) v1-23) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) v1-23) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 4) (* s4-0 16) (* s3-0 16) #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 5) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 6) (* (+ s4-0 64) 16) (* (+ s3-0 32) 16) #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let ((v1-28 (ash 16 (-> s1-0 tex0 tw))) + (a0-30 (ash 16 (-> s1-0 tex0 th))) + ) + (let* ((a1-22 arg0) + (a2-7 (the-as object (-> a1-22 base))) + ) + (set! (-> (the-as dma-packet a2-7) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-7) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-7) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-22 base) (&+ (the-as pointer a2-7) 16)) + ) + (let* ((a1-23 arg0) + (a2-9 (the-as object (-> a1-23 base))) + ) + (set! (-> (the-as gs-gif-tag a2-9) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-9) regs) GIF_REGS_ALL_AD) + (set! (-> a1-23 base) (&+ (the-as pointer a2-9) 16)) + ) + (let* ((a1-24 arg0) + (a2-11 (-> a1-24 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-11) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-11) 1) (gs-reg64 scissor-1)) + (set! (-> a1-24 base) (&+ a2-11 16)) + ) + (let* ((f0-6 (* 256.0 (-> arg1 left iris-scale))) + (a1-26 (the-as object (-> arg0 base))) + (a2-13 (the int (- f28-0 f0-6))) + (t0-5 (the int (- f26-0 f0-6))) + (a3-9 (the int (+ f28-0 f0-6))) + (t1-0 (the int (+ f26-0 f0-6))) + ) + (set! (-> (the-as (inline-array vector4w) a1-26) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-26) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 4) a2-13 t0-5 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 6) a3-9 t1-0 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let* ((a1-30 arg0) + (a2-17 (the-as object (-> a1-30 base))) + ) + (set! (-> (the-as dma-packet a2-17) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-17) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-17) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-30 base) (&+ (the-as pointer a2-17) 16)) + ) + (let* ((a1-31 arg0) + (a2-19 (the-as object (-> a1-31 base))) + ) + (set! (-> (the-as gs-gif-tag a2-19) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-19) regs) GIF_REGS_ALL_AD) + (set! (-> a1-31 base) (&+ (the-as pointer a2-19) 16)) + ) + (let* ((a1-32 arg0) + (a2-21 (-> a1-32 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-21) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-21) 1) (gs-reg64 scissor-1)) + (set! (-> a1-32 base) (&+ a2-21 16)) + ) + (let* ((f0-10 (* 256.0 (-> arg1 right iris-scale))) + (a1-34 (the-as object (-> arg0 base))) + (a2-23 (the int (- f30-0 f0-10))) + (t0-11 (the int (- sv-16 f0-10))) + (a3-20 (the int (+ f30-0 f0-10))) + (t1-2 (the int (+ sv-16 f0-10))) + ) + (set! (-> (the-as (inline-array vector4w) a1-34) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-34) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 4) a2-23 t0-11 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 6) a3-20 t1-2 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-32 arg0) + (a0-32 (the-as object (-> v1-32 base))) + ) + (set! (-> (the-as dma-packet a0-32) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-32) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-32) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-32 base) (&+ (the-as pointer a0-32) 16)) + ) + (let* ((v1-33 arg0) + (a0-34 (the-as object (-> v1-33 base))) + ) + (set! (-> (the-as gs-gif-tag a0-34) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-34) regs) GIF_REGS_ALL_AD) + (set! (-> v1-33 base) (&+ (the-as pointer a0-34) 16)) + ) + (let* ((v1-34 arg0) + (a0-36 (-> v1-34 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-36) 0) + (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-36) 1) (gs-reg64 test-1)) + (set! (-> v1-34 base) (&+ a0-36 16)) + ) + (let ((s1-1 (-> arg1 shaders 1))) + (let ((v1-36 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-36) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-36) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-1 (the-as adgif-shader (&+ (the-as pointer v1-36) 32)))) + (quad-copy! (the-as pointer s0-1) (the-as pointer s1-1) 5) + (set! (-> s0-1 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-1 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-1 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-43 (ash 16 (-> s1-1 tex0 tw))) + (a0-48 (ash 16 (-> s1-1 tex0 th))) + ) + (let* ((a1-47 arg0) + (a2-27 (the-as object (-> a1-47 base))) + ) + (set! (-> (the-as dma-packet a2-27) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-27) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-27) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-47 base) (&+ (the-as pointer a2-27) 16)) + ) + (let* ((a1-48 arg0) + (a2-29 (the-as object (-> a1-48 base))) + ) + (set! (-> (the-as gs-gif-tag a2-29) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-29) regs) GIF_REGS_ALL_AD) + (set! (-> a1-48 base) (&+ (the-as pointer a2-29) 16)) + ) + (let* ((a1-49 arg0) + (a2-31 (-> a1-49 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-31) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-31) 1) (gs-reg64 scissor-1)) + (set! (-> a1-49 base) (&+ a2-31 16)) + ) + (let* ((f0-14 (* 256.0 (-> arg1 left pupil-scale))) + (a1-51 (the-as object (-> arg0 base))) + (a2-33 (the int (- f28-0 f0-14))) + (t0-17 (the int (- f26-0 f0-14))) + (a3-30 (the int (+ f28-0 f0-14))) + (t1-3 (the int (+ f26-0 f0-14))) + ) + (set! (-> (the-as (inline-array vector4w) a1-51) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-51) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 4) a2-33 t0-17 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 5) v1-43 a0-48 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 6) a3-30 t1-3 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let* ((a1-55 arg0) + (a2-37 (the-as object (-> a1-55 base))) + ) + (set! (-> (the-as dma-packet a2-37) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-37) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-37) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-55 base) (&+ (the-as pointer a2-37) 16)) + ) + (let* ((a1-56 arg0) + (a2-39 (the-as object (-> a1-56 base))) + ) + (set! (-> (the-as gs-gif-tag a2-39) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-39) regs) GIF_REGS_ALL_AD) + (set! (-> a1-56 base) (&+ (the-as pointer a2-39) 16)) + ) + (let* ((a1-57 arg0) + (a2-41 (-> a1-57 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-41) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-41) 1) (gs-reg64 scissor-1)) + (set! (-> a1-57 base) (&+ a2-41 16)) + ) + (let* ((f0-18 (* 256.0 (-> arg1 right pupil-scale))) + (a1-59 (the-as object (-> arg0 base))) + (a2-43 (the int (- f30-0 f0-18))) + (t0-23 (the int (- sv-16 f0-18))) + (a3-41 (the int (+ f30-0 f0-18))) + (t1-5 (the int (+ sv-16 f0-18))) + ) + (set! (-> (the-as (inline-array vector4w) a1-59) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-59) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 4) a2-43 t0-23 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 5) v1-43 a0-48 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 6) a3-41 t1-5 #xffffff 0) + ) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-47 arg0) + (a0-50 (the-as object (-> v1-47 base))) + ) + (set! (-> (the-as dma-packet a0-50) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-50) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-50) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-47 base) (&+ (the-as pointer a0-50) 16)) + ) + (let* ((v1-48 arg0) + (a0-52 (the-as object (-> v1-48 base))) + ) + (set! (-> (the-as gs-gif-tag a0-52) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-52) regs) GIF_REGS_ALL_AD) + (set! (-> v1-48 base) (&+ (the-as pointer a0-52) 16)) + ) + (let* ((v1-49 arg0) + (a0-54 (-> v1-49 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-54) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-54) 1) (gs-reg64 test-1)) + (set! (-> v1-49 base) (&+ a0-54 16)) + ) + (let ((s1-2 (-> arg1 shaders 2))) + (let ((v1-51 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-51) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-51) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-2 (the-as object (&+ (the-as pointer v1-51) 32)))) + (quad-copy! (the-as pointer s0-2) (the-as pointer s1-2) 5) + (set! (-> (the-as adgif-shader s0-2) clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> (the-as adgif-shader s0-2) alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> (the-as adgif-shader s0-2) prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-58 (ash 16 (-> s1-2 tex0 tw))) + (a0-66 (ash 16 (-> s1-2 tex0 th))) + ) + (when (< (-> arg1 left lid) 0.0) + (let ((f0-23 (+ 1.0 (-> arg1 left lid)))) + (set! (-> arg1 left lid) (+ f0-23 (* (- 1.0 f0-23) (-> arg1 blink)))) + ) + ) + (let* ((a1-76 arg0) + (a2-47 (the-as object (-> a1-76 base))) + ) + (set! (-> (the-as dma-packet a2-47) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-47) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-47) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-76 base) (&+ (the-as pointer a2-47) 16)) + ) + (let* ((a1-77 arg0) + (a2-49 (the-as object (-> a1-77 base))) + ) + (set! (-> (the-as gs-gif-tag a2-49) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-49) regs) GIF_REGS_ALL_AD) + (set! (-> a1-77 base) (&+ (the-as pointer a2-49) 16)) + ) + (let* ((a1-78 arg0) + (a2-51 (-> a1-78 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-51) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-51) 1) (gs-reg64 scissor-1)) + (set! (-> a1-78 base) (&+ a2-51 16)) + ) + (let* ((f0-27 (+ (the float (+ s3-0 -32)) (* 32.0 (-> arg1 left lid)))) + (a1-81 (the-as object (-> arg0 base))) + (a2-53 (* s4-0 16)) + (t0-29 (the int (* 16.0 f0-27))) + (a3-53 (* (+ s4-0 32) 16)) + (t1-8 (the int (* 16.0 (+ f0-27 (* 32.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-81) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-81) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 4) a2-53 t0-29 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 5) v1-58 a0-66 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 6) a3-53 t1-8 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (when (< (-> arg1 right lid) 0.0) + (let ((f0-33 (+ 1.0 (-> arg1 right lid)))) + (set! (-> arg1 right lid) (+ f0-33 (* (- 1.0 f0-33) (-> arg1 blink)))) + ) + ) + (let* ((a1-89 arg0) + (a2-57 (the-as object (-> a1-89 base))) + ) + (set! (-> (the-as dma-packet a2-57) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-57) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-57) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-89 base) (&+ (the-as pointer a2-57) 16)) + ) + (let* ((a1-90 arg0) + (a2-59 (the-as object (-> a1-90 base))) + ) + (set! (-> (the-as gs-gif-tag a2-59) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-59) regs) GIF_REGS_ALL_AD) + (set! (-> a1-90 base) (&+ (the-as pointer a2-59) 16)) + ) + (let* ((a1-91 arg0) + (a2-61 (-> a1-91 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-61) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-61) 1) (gs-reg64 scissor-1)) + (set! (-> a1-91 base) (&+ a2-61 16)) + ) + (let* ((f0-37 (+ (the float (+ s3-0 -32)) (* 32.0 (-> arg1 right lid)))) + (a1-94 (the-as object (-> arg0 base))) + (a2-64 (* (+ s4-0 64) 16)) + (t0-35 (the int (* 16.0 f0-37))) + (a3-65 (* (+ s4-0 32) 16)) + (t1-11 (the int (* 16.0 (+ f0-37 (* 32.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-94) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-94) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 4) a2-64 t0-35 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 5) v1-58 a0-66 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 6) a3-65 t1-11 #xffffff 0) + ) + ) + ) + ) + (let ((v0-3 (&+ (-> arg0 base) 112))) + (set! (-> arg0 base) v0-3) + v0-3 + ) + ) + +;; definition for function render-eyes-32-different +;; INFO: Used lq/sq +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +(defun render-eyes-32-different ((arg0 dma-buffer) (arg1 eye-control) (arg2 int)) + (local-vars (sv-16 float)) + (let ((s4-0 32) + (s3-0 (+ (* arg2 32) 32)) + (s2-0 (* arg2 32)) + ) + (let ((f28-0 (* 16.0 (+ (the float (+ s4-0 16)) (* 32.0 (-> arg1 left x))))) + (f26-0 (* 16.0 (+ (the float (+ s3-0 16)) (* 32.0 (-> arg1 left y))))) + (f30-0 (* 16.0 (+ (the float (+ s4-0 48)) (* 32.0 (-> arg1 right x))))) + ) + (set! sv-16 (* 16.0 (+ (the float (+ s3-0 16)) (* 32.0 (-> arg1 right y))))) + (let ((s1-0 (-> arg1 shaders 0))) + (let ((v1-14 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-14) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-14) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-0 (the-as adgif-shader (&+ (the-as pointer v1-14) 32)))) + (quad-copy! (the-as pointer s0-0) (the-as pointer s1-0) 5) + (set! (-> s0-0 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-0 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-0 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-20 arg0) + (a0-6 (the-as object (-> v1-20 base))) + ) + (set! (-> (the-as dma-packet a0-6) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-6) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-6) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-20 base) (&+ (the-as pointer a0-6) 16)) + ) + (let* ((v1-21 arg0) + (a0-8 (the-as object (-> v1-21 base))) + ) + (set! (-> (the-as gs-gif-tag a0-8) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-8) regs) GIF_REGS_ALL_AD) + (set! (-> v1-21 base) (&+ (the-as pointer a0-8) 16)) + ) + (let* ((v1-22 arg0) + (a0-10 (-> v1-22 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a0-10) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a0-10) 1) (gs-reg64 scissor-1)) + (set! (-> v1-22 base) (&+ a0-10 16)) + ) + (let ((v1-23 (the-as object (-> arg0 base)))) + (set! (-> (the-as (inline-array vector4w) v1-23) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) v1-23) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 4) (* s4-0 16) (* s3-0 16) #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 5) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 6) (* (+ s4-0 64) 16) (* (+ s3-0 32) 16) #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let ((v1-28 (ash 16 (-> s1-0 tex0 tw))) + (a0-30 (ash 16 (-> s1-0 tex0 th))) + ) + (let* ((a1-22 arg0) + (a2-7 (the-as object (-> a1-22 base))) + ) + (set! (-> (the-as dma-packet a2-7) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-7) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-7) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-22 base) (&+ (the-as pointer a2-7) 16)) + ) + (let* ((a1-23 arg0) + (a2-9 (the-as object (-> a1-23 base))) + ) + (set! (-> (the-as gs-gif-tag a2-9) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-9) regs) GIF_REGS_ALL_AD) + (set! (-> a1-23 base) (&+ (the-as pointer a2-9) 16)) + ) + (let* ((a1-24 arg0) + (a2-11 (-> a1-24 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-11) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-11) 1) (gs-reg64 scissor-1)) + (set! (-> a1-24 base) (&+ a2-11 16)) + ) + (let* ((f0-6 (* 256.0 (-> arg1 left iris-scale))) + (a1-26 (the-as object (-> arg0 base))) + (a2-13 (the int (- f28-0 f0-6))) + (t0-5 (the int (- f26-0 f0-6))) + (a3-9 (the int (+ f28-0 f0-6))) + (t1-0 (the int (+ f26-0 f0-6))) + ) + (set! (-> (the-as (inline-array vector4w) a1-26) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-26) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 4) a2-13 t0-5 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 6) a3-9 t1-0 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-1 (-> arg1 shaders 3))) + (let ((v1-33 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-33) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-33) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-1 (the-as adgif-shader (&+ (the-as pointer v1-33) 32)))) + (quad-copy! (the-as pointer s0-1) (the-as pointer s1-1) 5) + (set! (-> s0-1 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-1 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-1 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-40 (ash 16 (-> s1-1 tex0 tw))) + (a0-42 (ash 16 (-> s1-1 tex0 th))) + ) + (let* ((a1-32 arg0) + (a2-17 (the-as object (-> a1-32 base))) + ) + (set! (-> (the-as dma-packet a2-17) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-17) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-17) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-32 base) (&+ (the-as pointer a2-17) 16)) + ) + (let* ((a1-33 arg0) + (a2-19 (the-as object (-> a1-33 base))) + ) + (set! (-> (the-as gs-gif-tag a2-19) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-19) regs) GIF_REGS_ALL_AD) + (set! (-> a1-33 base) (&+ (the-as pointer a2-19) 16)) + ) + (let* ((a1-34 arg0) + (a2-21 (-> a1-34 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-21) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-21) 1) (gs-reg64 scissor-1)) + (set! (-> a1-34 base) (&+ a2-21 16)) + ) + (let* ((f0-10 (* 256.0 (-> arg1 right iris-scale))) + (a1-36 (the-as object (-> arg0 base))) + (a2-23 (the int (- f30-0 f0-10))) + (t0-11 (the int (- sv-16 f0-10))) + (a3-20 (the int (+ f30-0 f0-10))) + (t1-2 (the int (+ sv-16 f0-10))) + ) + (set! (-> (the-as (inline-array vector4w) a1-36) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-36) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 4) a2-23 t0-11 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 5) v1-40 a0-42 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 6) a3-20 t1-2 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-44 arg0) + (a0-44 (the-as object (-> v1-44 base))) + ) + (set! (-> (the-as dma-packet a0-44) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-44) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-44) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-44 base) (&+ (the-as pointer a0-44) 16)) + ) + (let* ((v1-45 arg0) + (a0-46 (the-as object (-> v1-45 base))) + ) + (set! (-> (the-as gs-gif-tag a0-46) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-46) regs) GIF_REGS_ALL_AD) + (set! (-> v1-45 base) (&+ (the-as pointer a0-46) 16)) + ) + (let* ((v1-46 arg0) + (a0-48 (-> v1-46 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-48) 0) + (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-48) 1) (gs-reg64 test-1)) + (set! (-> v1-46 base) (&+ a0-48 16)) + ) + (let ((s1-2 (-> arg1 shaders 1))) + (let ((v1-48 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-48) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-48) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-2 (the-as adgif-shader (&+ (the-as pointer v1-48) 32)))) + (quad-copy! (the-as pointer s0-2) (the-as pointer s1-2) 5) + (set! (-> s0-2 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-2 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-2 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-55 (ash 16 (-> s1-2 tex0 tw))) + (a0-60 (ash 16 (-> s1-2 tex0 th))) + ) + (let* ((a1-49 arg0) + (a2-27 (the-as object (-> a1-49 base))) + ) + (set! (-> (the-as dma-packet a2-27) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-27) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-27) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-49 base) (&+ (the-as pointer a2-27) 16)) + ) + (let* ((a1-50 arg0) + (a2-29 (the-as object (-> a1-50 base))) + ) + (set! (-> (the-as gs-gif-tag a2-29) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-29) regs) GIF_REGS_ALL_AD) + (set! (-> a1-50 base) (&+ (the-as pointer a2-29) 16)) + ) + (let* ((a1-51 arg0) + (a2-31 (-> a1-51 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-31) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-31) 1) (gs-reg64 scissor-1)) + (set! (-> a1-51 base) (&+ a2-31 16)) + ) + (let* ((f0-14 (* 256.0 (-> arg1 left pupil-scale))) + (a1-53 (the-as object (-> arg0 base))) + (a2-33 (the int (- f28-0 f0-14))) + (t0-17 (the int (- f26-0 f0-14))) + (a3-30 (the int (+ f28-0 f0-14))) + (t1-3 (the int (+ f26-0 f0-14))) + ) + (set! (-> (the-as (inline-array vector4w) a1-53) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-53) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 4) a2-33 t0-17 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 5) v1-55 a0-60 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 6) a3-30 t1-3 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-3 (-> arg1 shaders 4))) + (let ((v1-60 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-60) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-60) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-3 (the-as adgif-shader (&+ (the-as pointer v1-60) 32)))) + (quad-copy! (the-as pointer s0-3) (the-as pointer s1-3) 5) + (set! (-> s0-3 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-3 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-3 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-67 (ash 16 (-> s1-3 tex0 tw))) + (a0-72 (ash 16 (-> s1-3 tex0 th))) + ) + (let* ((a1-59 arg0) + (a2-37 (the-as object (-> a1-59 base))) + ) + (set! (-> (the-as dma-packet a2-37) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-37) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-37) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-59 base) (&+ (the-as pointer a2-37) 16)) + ) + (let* ((a1-60 arg0) + (a2-39 (the-as object (-> a1-60 base))) + ) + (set! (-> (the-as gs-gif-tag a2-39) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-39) regs) GIF_REGS_ALL_AD) + (set! (-> a1-60 base) (&+ (the-as pointer a2-39) 16)) + ) + (let* ((a1-61 arg0) + (a2-41 (-> a1-61 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-41) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-41) 1) (gs-reg64 scissor-1)) + (set! (-> a1-61 base) (&+ a2-41 16)) + ) + (let* ((f0-18 (* 256.0 (-> arg1 right pupil-scale))) + (a1-63 (the-as object (-> arg0 base))) + (a2-43 (the int (- f30-0 f0-18))) + (t0-23 (the int (- sv-16 f0-18))) + (a3-41 (the int (+ f30-0 f0-18))) + (t1-5 (the int (+ sv-16 f0-18))) + ) + (set! (-> (the-as (inline-array vector4w) a1-63) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-63) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 4) a2-43 t0-23 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 5) v1-67 a0-72 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 6) a3-41 t1-5 #xffffff 0) + ) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-71 arg0) + (a0-74 (the-as object (-> v1-71 base))) + ) + (set! (-> (the-as dma-packet a0-74) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-74) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-74) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-71 base) (&+ (the-as pointer a0-74) 16)) + ) + (let* ((v1-72 arg0) + (a0-76 (the-as object (-> v1-72 base))) + ) + (set! (-> (the-as gs-gif-tag a0-76) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-76) regs) GIF_REGS_ALL_AD) + (set! (-> v1-72 base) (&+ (the-as pointer a0-76) 16)) + ) + (let* ((v1-73 arg0) + (a0-78 (-> v1-73 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-78) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-78) 1) (gs-reg64 test-1)) + (set! (-> v1-73 base) (&+ a0-78 16)) + ) + (let ((s1-4 (-> arg1 shaders 2))) + (let ((v1-75 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-75) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-75) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-4 (the-as adgif-shader (&+ (the-as pointer v1-75) 32)))) + (quad-copy! (the-as pointer s0-4) (the-as pointer s1-4) 5) + (set! (-> s0-4 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-4 alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> s0-4 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-82 (ash 16 (-> s1-4 tex0 tw))) + (a0-90 (ash 16 (-> s1-4 tex0 th))) + ) + (when (< (-> arg1 left lid) 0.0) + (let ((f0-23 (+ 1.0 (-> arg1 left lid)))) + (set! (-> arg1 left lid) (+ f0-23 (* (- 1.0 f0-23) (-> arg1 blink)))) + ) + ) + (let* ((a1-80 arg0) + (a2-47 (the-as object (-> a1-80 base))) + ) + (set! (-> (the-as dma-packet a2-47) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-47) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-47) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-80 base) (&+ (the-as pointer a2-47) 16)) + ) + (let* ((a1-81 arg0) + (a2-49 (the-as object (-> a1-81 base))) + ) + (set! (-> (the-as gs-gif-tag a2-49) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-49) regs) GIF_REGS_ALL_AD) + (set! (-> a1-81 base) (&+ (the-as pointer a2-49) 16)) + ) + (let* ((a1-82 arg0) + (a2-51 (-> a1-82 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-51) 0) + (new 'static 'gs-scissor :scax1 #x1f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-51) 1) (gs-reg64 scissor-1)) + (set! (-> a1-82 base) (&+ a2-51 16)) + ) + (let* ((f0-27 (+ (the float (+ s3-0 -32)) (* 32.0 (-> arg1 left lid)))) + (a1-85 (the-as object (-> arg0 base))) + (a2-53 (* s4-0 16)) + (t0-29 (the int (* 16.0 f0-27))) + (a3-53 (* (+ s4-0 32) 16)) + (t1-8 (the int (* 16.0 (+ f0-27 (* 32.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-85) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-85) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 4) a2-53 t0-29 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 5) v1-82 a0-90 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 6) a3-53 t1-8 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-5 (-> arg1 shaders 5))) + (let ((v1-87 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-87) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-87) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-5 (the-as adgif-shader (&+ (the-as pointer v1-87) 32)))) + (quad-copy! (the-as pointer s0-5) (the-as pointer s1-5) 5) + (set! (-> s0-5 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x1f :maxv #x1f) + ) + (set! (-> s0-5 alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> s0-5 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-94 (ash 16 (-> s1-5 tex0 tw))) + (a0-102 (ash 16 (-> s1-5 tex0 th))) + ) + (when (< (-> arg1 right lid) 0.0) + (let ((f0-33 (+ 1.0 (-> arg1 right lid)))) + (set! (-> arg1 right lid) (+ f0-33 (* (- 1.0 f0-33) (-> arg1 blink)))) + ) + ) + (let* ((a1-95 arg0) + (a2-57 (the-as object (-> a1-95 base))) + ) + (set! (-> (the-as dma-packet a2-57) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-57) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-57) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-95 base) (&+ (the-as pointer a2-57) 16)) + ) + (let* ((a1-96 arg0) + (a2-59 (the-as object (-> a1-96 base))) + ) + (set! (-> (the-as gs-gif-tag a2-59) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-59) regs) GIF_REGS_ALL_AD) + (set! (-> a1-96 base) (&+ (the-as pointer a2-59) 16)) + ) + (let* ((a1-97 arg0) + (a2-61 (-> a1-97 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-61) 0) + (new 'static 'gs-scissor :scax0 #x20 :scax1 #x3f :scay1 (+ s2-0 31) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-61) 1) (gs-reg64 scissor-1)) + (set! (-> a1-97 base) (&+ a2-61 16)) + ) + (let* ((f0-37 (+ (the float (+ s3-0 -32)) (* 32.0 (-> arg1 right lid)))) + (a1-100 (the-as object (-> arg0 base))) + (a2-64 (* (+ s4-0 64) 16)) + (t0-35 (the int (* 16.0 f0-37))) + (a3-65 (* (+ s4-0 32) 16)) + (t1-11 (the int (* 16.0 (+ f0-37 (* 32.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-100) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-100) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 4) a2-64 t0-35 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 5) v1-94 a0-102 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 6) a3-65 t1-11 #xffffff 0) + ) + ) + ) + ) + (let ((v0-6 (&+ (-> arg0 base) 112))) + (set! (-> arg0 base) v0-6) + v0-6 + ) + ) + +;; definition for function render-eyes-64 +;; INFO: Used lq/sq +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +(defun render-eyes-64 ((arg0 dma-buffer) (arg1 eye-control) (arg2 int)) + (local-vars (sv-16 float)) + (let ((s4-0 64) + (s3-0 (+ (* arg2 64) 64)) + (s2-0 (* arg2 64)) + ) + (let ((f28-0 (* 16.0 (+ (the float (+ s4-0 32)) (* 64.0 (-> arg1 left x))))) + (f26-0 (* 16.0 (+ (the float (+ s3-0 32)) (* 64.0 (-> arg1 left y))))) + (f30-0 (* 16.0 (+ (the float (+ s4-0 96)) (* 64.0 (-> arg1 right x))))) + ) + (set! sv-16 (* 16.0 (+ (the float (+ s3-0 32)) (* 64.0 (-> arg1 right y))))) + (let ((s1-0 (-> arg1 shaders 0))) + (let ((v1-14 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-14) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-14) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-0 (the-as object (&+ (the-as pointer v1-14) 32)))) + (quad-copy! (the-as pointer s0-0) (the-as pointer s1-0) 5) + (set! (-> (the-as adgif-shader s0-0) clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> (the-as adgif-shader s0-0) alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> (the-as adgif-shader s0-0) prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-20 arg0) + (a0-6 (the-as object (-> v1-20 base))) + ) + (set! (-> (the-as dma-packet a0-6) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-6) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-6) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-20 base) (&+ (the-as pointer a0-6) 16)) + ) + (let* ((v1-21 arg0) + (a0-8 (the-as object (-> v1-21 base))) + ) + (set! (-> (the-as gs-gif-tag a0-8) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-8) regs) GIF_REGS_ALL_AD) + (set! (-> v1-21 base) (&+ (the-as pointer a0-8) 16)) + ) + (let* ((v1-22 arg0) + (a0-10 (-> v1-22 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a0-10) 0) + (new 'static 'gs-scissor :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a0-10) 1) (gs-reg64 scissor-1)) + (set! (-> v1-22 base) (&+ a0-10 16)) + ) + (let ((v1-23 (the-as object (-> arg0 base)))) + (set! (-> (the-as (inline-array vector4w) v1-23) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) v1-23) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 4) (* s4-0 16) (* s3-0 16) #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 5) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 6) (* (+ s4-0 128) 16) (* (+ s3-0 64) 16) #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let ((v1-28 (ash 16 (-> s1-0 tex0 tw))) + (a0-30 (ash 16 (-> s1-0 tex0 th))) + ) + (let* ((a1-22 arg0) + (a2-7 (the-as object (-> a1-22 base))) + ) + (set! (-> (the-as dma-packet a2-7) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-7) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-7) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-22 base) (&+ (the-as pointer a2-7) 16)) + ) + (let* ((a1-23 arg0) + (a2-9 (the-as object (-> a1-23 base))) + ) + (set! (-> (the-as gs-gif-tag a2-9) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-9) regs) GIF_REGS_ALL_AD) + (set! (-> a1-23 base) (&+ (the-as pointer a2-9) 16)) + ) + (let* ((a1-24 arg0) + (a2-11 (-> a1-24 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-11) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-11) 1) (gs-reg64 scissor-1)) + (set! (-> a1-24 base) (&+ a2-11 16)) + ) + (let* ((f0-6 (* 512.0 (-> arg1 left iris-scale))) + (a1-26 (the-as object (-> arg0 base))) + (a2-13 (the int (- f28-0 f0-6))) + (t0-5 (the int (- f26-0 f0-6))) + (a3-9 (the int (+ f28-0 f0-6))) + (t1-0 (the int (+ f26-0 f0-6))) + ) + (set! (-> (the-as (inline-array vector4w) a1-26) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-26) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 4) a2-13 t0-5 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 6) a3-9 t1-0 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let* ((a1-30 arg0) + (a2-17 (the-as object (-> a1-30 base))) + ) + (set! (-> (the-as dma-packet a2-17) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-17) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-17) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-30 base) (&+ (the-as pointer a2-17) 16)) + ) + (let* ((a1-31 arg0) + (a2-19 (the-as object (-> a1-31 base))) + ) + (set! (-> (the-as gs-gif-tag a2-19) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-19) regs) GIF_REGS_ALL_AD) + (set! (-> a1-31 base) (&+ (the-as pointer a2-19) 16)) + ) + (let* ((a1-32 arg0) + (a2-21 (-> a1-32 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-21) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-21) 1) (gs-reg64 scissor-1)) + (set! (-> a1-32 base) (&+ a2-21 16)) + ) + (let* ((f0-10 (* 512.0 (-> arg1 right iris-scale))) + (a1-34 (the-as object (-> arg0 base))) + (a2-23 (the int (- f30-0 f0-10))) + (t0-11 (the int (- sv-16 f0-10))) + (a3-20 (the int (+ f30-0 f0-10))) + (t1-2 (the int (+ sv-16 f0-10))) + ) + (set! (-> (the-as (inline-array vector4w) a1-34) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-34) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 4) a2-23 t0-11 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-34) 6) a3-20 t1-2 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-32 arg0) + (a0-32 (the-as object (-> v1-32 base))) + ) + (set! (-> (the-as dma-packet a0-32) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-32) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-32) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-32 base) (&+ (the-as pointer a0-32) 16)) + ) + (let* ((v1-33 arg0) + (a0-34 (the-as object (-> v1-33 base))) + ) + (set! (-> (the-as gs-gif-tag a0-34) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-34) regs) GIF_REGS_ALL_AD) + (set! (-> v1-33 base) (&+ (the-as pointer a0-34) 16)) + ) + (let* ((v1-34 arg0) + (a0-36 (-> v1-34 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-36) 0) + (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-36) 1) (gs-reg64 test-1)) + (set! (-> v1-34 base) (&+ a0-36 16)) + ) + (let ((s1-1 (-> arg1 shaders 1))) + (let ((v1-36 (the-as object (-> arg0 base)))) + (set! (-> (the-as (inline-array vector4w) v1-36) 0 quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) v1-36) 1 quad) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-1 (the-as object (&+ (the-as pointer v1-36) 32)))) + (quad-copy! (the-as pointer s0-1) (the-as pointer s1-1) 5) + (set! (-> (the-as adgif-shader s0-1) clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> (the-as adgif-shader s0-1) alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> (the-as adgif-shader s0-1) prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-43 (ash 16 (-> s1-1 tex0 tw))) + (a0-48 (ash 16 (-> s1-1 tex0 th))) + ) + (let* ((a1-47 arg0) + (a2-27 (the-as object (-> a1-47 base))) + ) + (set! (-> (the-as dma-packet a2-27) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-27) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-27) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-47 base) (&+ (the-as pointer a2-27) 16)) + ) + (let* ((a1-48 arg0) + (a2-29 (the-as object (-> a1-48 base))) + ) + (set! (-> (the-as gs-gif-tag a2-29) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-29) regs) GIF_REGS_ALL_AD) + (set! (-> a1-48 base) (&+ (the-as pointer a2-29) 16)) + ) + (let* ((a1-49 arg0) + (a2-31 (-> a1-49 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-31) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-31) 1) (gs-reg64 scissor-1)) + (set! (-> a1-49 base) (&+ a2-31 16)) + ) + (let* ((f0-14 (* 512.0 (-> arg1 left pupil-scale))) + (a1-51 (the-as object (-> arg0 base))) + (a2-33 (the int (- f28-0 f0-14))) + (t0-17 (the int (- f26-0 f0-14))) + (a3-30 (the int (+ f28-0 f0-14))) + (t1-3 (the int (+ f26-0 f0-14))) + ) + (set! (-> (the-as (inline-array vector4w) a1-51) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-51) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 4) a2-33 t0-17 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 5) v1-43 a0-48 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-51) 6) a3-30 t1-3 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let* ((a1-55 arg0) + (a2-37 (the-as object (-> a1-55 base))) + ) + (set! (-> (the-as dma-packet a2-37) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-37) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-37) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-55 base) (&+ (the-as pointer a2-37) 16)) + ) + (let* ((a1-56 arg0) + (a2-39 (the-as object (-> a1-56 base))) + ) + (set! (-> (the-as gs-gif-tag a2-39) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-39) regs) GIF_REGS_ALL_AD) + (set! (-> a1-56 base) (&+ (the-as pointer a2-39) 16)) + ) + (let* ((a1-57 arg0) + (a2-41 (-> a1-57 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-41) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-41) 1) (gs-reg64 scissor-1)) + (set! (-> a1-57 base) (&+ a2-41 16)) + ) + (let* ((f0-18 (* 512.0 (-> arg1 right pupil-scale))) + (a1-59 (the-as object (-> arg0 base))) + (a2-43 (the int (- f30-0 f0-18))) + (t0-23 (the int (- sv-16 f0-18))) + (a3-41 (the int (+ f30-0 f0-18))) + (t1-5 (the int (+ sv-16 f0-18))) + ) + (set! (-> (the-as (inline-array vector4w) a1-59) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-59) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 4) a2-43 t0-23 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 5) v1-43 a0-48 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-59) 6) a3-41 t1-5 #xffffff 0) + ) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-47 arg0) + (a0-50 (the-as object (-> v1-47 base))) + ) + (set! (-> (the-as dma-packet a0-50) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-50) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-50) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-47 base) (&+ (the-as pointer a0-50) 16)) + ) + (let* ((v1-48 arg0) + (a0-52 (the-as object (-> v1-48 base))) + ) + (set! (-> (the-as gs-gif-tag a0-52) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-52) regs) GIF_REGS_ALL_AD) + (set! (-> v1-48 base) (&+ (the-as pointer a0-52) 16)) + ) + (let* ((v1-49 arg0) + (a0-54 (-> v1-49 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-54) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-54) 1) (gs-reg64 test-1)) + (set! (-> v1-49 base) (&+ a0-54 16)) + ) + (let ((s1-2 (-> arg1 shaders 2))) + (let ((v1-51 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-51) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-51) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-2 (the-as object (&+ (the-as pointer v1-51) 32)))) + (quad-copy! (the-as pointer s0-2) (the-as pointer s1-2) 5) + (set! (-> (the-as adgif-shader s0-2) clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> (the-as adgif-shader s0-2) alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> (the-as adgif-shader s0-2) prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-58 (ash 16 (-> s1-2 tex0 tw))) + (a0-66 (ash 16 (-> s1-2 tex0 th))) + ) + (when (< (-> arg1 left lid) 0.0) + (let ((f0-23 (+ 1.0 (-> arg1 left lid)))) + (set! (-> arg1 left lid) (+ f0-23 (* (- 1.0 f0-23) (-> arg1 blink)))) + ) + ) + (let* ((a1-76 arg0) + (a2-47 (the-as object (-> a1-76 base))) + ) + (set! (-> (the-as dma-packet a2-47) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-47) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-47) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-76 base) (&+ (the-as pointer a2-47) 16)) + ) + (let* ((a1-77 arg0) + (a2-49 (the-as object (-> a1-77 base))) + ) + (set! (-> (the-as gs-gif-tag a2-49) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-49) regs) GIF_REGS_ALL_AD) + (set! (-> a1-77 base) (&+ (the-as pointer a2-49) 16)) + ) + (let* ((a1-78 arg0) + (a2-51 (-> a1-78 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-51) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-51) 1) (gs-reg64 scissor-1)) + (set! (-> a1-78 base) (&+ a2-51 16)) + ) + (let* ((f0-27 (+ (the float (+ s3-0 -64)) (* 64.0 (-> arg1 left lid)))) + (a1-81 (the-as object (-> arg0 base))) + (a2-53 (* s4-0 16)) + (t0-29 (the int (* 16.0 f0-27))) + (a3-53 (* (+ s4-0 64) 16)) + (t1-8 (the int (* 16.0 (+ f0-27 (* 64.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-81) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-81) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 4) a2-53 t0-29 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 5) v1-58 a0-66 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-81) 6) a3-53 t1-8 #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (when (< (-> arg1 right lid) 0.0) + (let ((f0-33 (+ 1.0 (-> arg1 right lid)))) + (set! (-> arg1 right lid) (+ f0-33 (* (- 1.0 f0-33) (-> arg1 blink)))) + ) + ) + (let* ((a1-89 arg0) + (a2-57 (the-as object (-> a1-89 base))) + ) + (set! (-> (the-as dma-packet a2-57) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-57) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-57) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-89 base) (&+ (the-as pointer a2-57) 16)) + ) + (let* ((a1-90 arg0) + (a2-59 (the-as object (-> a1-90 base))) + ) + (set! (-> (the-as gs-gif-tag a2-59) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-59) regs) GIF_REGS_ALL_AD) + (set! (-> a1-90 base) (&+ (the-as pointer a2-59) 16)) + ) + (let* ((a1-91 arg0) + (a2-61 (-> a1-91 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-61) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-61) 1) (gs-reg64 scissor-1)) + (set! (-> a1-91 base) (&+ a2-61 16)) + ) + (let* ((f0-37 (+ (the float (+ s3-0 -64)) (* 64.0 (-> arg1 right lid)))) + (a1-94 (the-as object (-> arg0 base))) + (a2-64 (* (+ s4-0 128) 16)) + (t0-35 (the int (* 16.0 f0-37))) + (a3-65 (* (+ s4-0 64) 16)) + (t1-11 (the int (* 16.0 (+ f0-37 (* 64.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-94) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-94) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 4) a2-64 t0-35 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 5) v1-58 a0-66 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-94) 6) a3-65 t1-11 #xffffff 0) + ) + ) + ) + ) + (let ((v0-3 (&+ (-> arg0 base) 112))) + (set! (-> arg0 base) v0-3) + v0-3 + ) + ) + +;; definition for function render-eyes-64-different +;; INFO: Used lq/sq +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +;; WARN: Stack slot offset 16 signed mismatch +(defun render-eyes-64-different ((arg0 dma-buffer) (arg1 eye-control) (arg2 int)) + (local-vars (sv-16 float)) + (let ((s4-0 64) + (s3-0 (+ (* arg2 64) 64)) + (s2-0 (* arg2 64)) + ) + (let ((f28-0 (* 16.0 (+ (the float (+ s4-0 32)) (* 64.0 (-> arg1 left x))))) + (f26-0 (* 16.0 (+ (the float (+ s3-0 32)) (* 64.0 (-> arg1 left y))))) + (f30-0 (* 16.0 (+ (the float (+ s4-0 96)) (* 64.0 (-> arg1 right x))))) + ) + (set! sv-16 (* 16.0 (+ (the float (+ s3-0 32)) (* 64.0 (-> arg1 right y))))) + (let ((s1-0 (-> arg1 shaders 0))) + (let ((v1-14 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-14) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-14) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-0 (the-as adgif-shader (&+ (the-as pointer v1-14) 32)))) + (quad-copy! (the-as pointer s0-0) (the-as pointer s1-0) 5) + (set! (-> s0-0 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-0 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-0 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-20 arg0) + (a0-6 (the-as object (-> v1-20 base))) + ) + (set! (-> (the-as dma-packet a0-6) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-6) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-6) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-20 base) (&+ (the-as pointer a0-6) 16)) + ) + (let* ((v1-21 arg0) + (a0-8 (the-as object (-> v1-21 base))) + ) + (set! (-> (the-as gs-gif-tag a0-8) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-8) regs) GIF_REGS_ALL_AD) + (set! (-> v1-21 base) (&+ (the-as pointer a0-8) 16)) + ) + (let* ((v1-22 arg0) + (a0-10 (-> v1-22 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a0-10) 0) + (new 'static 'gs-scissor :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a0-10) 1) (gs-reg64 scissor-1)) + (set! (-> v1-22 base) (&+ a0-10 16)) + ) + (let ((v1-23 (the-as object (-> arg0 base)))) + (set! (-> (the-as (inline-array vector4w) v1-23) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) v1-23) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 4) (* s4-0 16) (* s3-0 16) #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 5) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) v1-23) 6) (* (+ s4-0 128) 16) (* (+ s3-0 64) 16) #xffffff 0) + ) + (&+! (-> arg0 base) 112) + (let ((v1-28 (ash 16 (-> s1-0 tex0 tw))) + (a0-30 (ash 16 (-> s1-0 tex0 th))) + ) + (let* ((a1-22 arg0) + (a2-7 (the-as object (-> a1-22 base))) + ) + (set! (-> (the-as dma-packet a2-7) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-7) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-7) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-22 base) (&+ (the-as pointer a2-7) 16)) + ) + (let* ((a1-23 arg0) + (a2-9 (the-as object (-> a1-23 base))) + ) + (set! (-> (the-as gs-gif-tag a2-9) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-9) regs) GIF_REGS_ALL_AD) + (set! (-> a1-23 base) (&+ (the-as pointer a2-9) 16)) + ) + (let* ((a1-24 arg0) + (a2-11 (-> a1-24 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-11) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-11) 1) (gs-reg64 scissor-1)) + (set! (-> a1-24 base) (&+ a2-11 16)) + ) + (let* ((f0-6 (* 512.0 (-> arg1 left iris-scale))) + (a1-26 (the-as object (-> arg0 base))) + (a2-13 (the int (- f28-0 f0-6))) + (t0-5 (the int (- f26-0 f0-6))) + (a3-9 (the int (+ f28-0 f0-6))) + (t1-0 (the int (+ f26-0 f0-6))) + ) + (set! (-> (the-as (inline-array vector4w) a1-26) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-26) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 4) a2-13 t0-5 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 5) v1-28 a0-30 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-26) 6) a3-9 t1-0 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-1 (-> arg1 shaders 3))) + (let ((v1-33 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-33) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-33) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-1 (the-as adgif-shader (&+ (the-as pointer v1-33) 32)))) + (quad-copy! (the-as pointer s0-1) (the-as pointer s1-1) 5) + (set! (-> s0-1 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-1 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-1 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-40 (ash 16 (-> s1-1 tex0 tw))) + (a0-42 (ash 16 (-> s1-1 tex0 th))) + ) + (let* ((a1-32 arg0) + (a2-17 (the-as object (-> a1-32 base))) + ) + (set! (-> (the-as dma-packet a2-17) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-17) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-17) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-32 base) (&+ (the-as pointer a2-17) 16)) + ) + (let* ((a1-33 arg0) + (a2-19 (the-as object (-> a1-33 base))) + ) + (set! (-> (the-as gs-gif-tag a2-19) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-19) regs) GIF_REGS_ALL_AD) + (set! (-> a1-33 base) (&+ (the-as pointer a2-19) 16)) + ) + (let* ((a1-34 arg0) + (a2-21 (-> a1-34 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-21) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-21) 1) (gs-reg64 scissor-1)) + (set! (-> a1-34 base) (&+ a2-21 16)) + ) + (let* ((f0-10 (* 512.0 (-> arg1 right iris-scale))) + (a1-36 (the-as object (-> arg0 base))) + (a2-23 (the int (- f30-0 f0-10))) + (t0-11 (the int (- sv-16 f0-10))) + (a3-20 (the int (+ f30-0 f0-10))) + (t1-2 (the int (+ sv-16 f0-10))) + ) + (set! (-> (the-as (inline-array vector4w) a1-36) 0 quad) (-> *eye-work* sprite-tmpl dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-36) 1 quad) (-> *eye-work* sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 4) a2-23 t0-11 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 5) v1-40 a0-42 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-36) 6) a3-20 t1-2 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-44 arg0) + (a0-44 (the-as object (-> v1-44 base))) + ) + (set! (-> (the-as dma-packet a0-44) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-44) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-44) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-44 base) (&+ (the-as pointer a0-44) 16)) + ) + (let* ((v1-45 arg0) + (a0-46 (the-as object (-> v1-45 base))) + ) + (set! (-> (the-as gs-gif-tag a0-46) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-46) regs) GIF_REGS_ALL_AD) + (set! (-> v1-45 base) (&+ (the-as pointer a0-46) 16)) + ) + (let* ((v1-46 arg0) + (a0-48 (-> v1-46 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-48) 0) + (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-48) 1) (gs-reg64 test-1)) + (set! (-> v1-46 base) (&+ a0-48 16)) + ) + (let ((s1-2 (-> arg1 shaders 1))) + (let ((v1-48 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-48) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-48) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-2 (the-as adgif-shader (&+ (the-as pointer v1-48) 32)))) + (quad-copy! (the-as pointer s0-2) (the-as pointer s1-2) 5) + (set! (-> s0-2 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-2 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-2 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-55 (ash 16 (-> s1-2 tex0 tw))) + (a0-60 (ash 16 (-> s1-2 tex0 th))) + ) + (let* ((a1-49 arg0) + (a2-27 (the-as object (-> a1-49 base))) + ) + (set! (-> (the-as dma-packet a2-27) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-27) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-27) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-49 base) (&+ (the-as pointer a2-27) 16)) + ) + (let* ((a1-50 arg0) + (a2-29 (the-as object (-> a1-50 base))) + ) + (set! (-> (the-as gs-gif-tag a2-29) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-29) regs) GIF_REGS_ALL_AD) + (set! (-> a1-50 base) (&+ (the-as pointer a2-29) 16)) + ) + (let* ((a1-51 arg0) + (a2-31 (-> a1-51 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-31) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-31) 1) (gs-reg64 scissor-1)) + (set! (-> a1-51 base) (&+ a2-31 16)) + ) + (let* ((f0-14 (* 512.0 (-> arg1 left pupil-scale))) + (a1-53 (the-as object (-> arg0 base))) + (a2-33 (the int (- f28-0 f0-14))) + (t0-17 (the int (- f26-0 f0-14))) + (a3-30 (the int (+ f28-0 f0-14))) + (t1-3 (the int (+ f26-0 f0-14))) + ) + (set! (-> (the-as (inline-array vector4w) a1-53) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-53) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 4) a2-33 t0-17 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 5) v1-55 a0-60 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-53) 6) a3-30 t1-3 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-3 (-> arg1 shaders 4))) + (let ((v1-60 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-60) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-60) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-3 (the-as adgif-shader (&+ (the-as pointer v1-60) 32)))) + (quad-copy! (the-as pointer s0-3) (the-as pointer s1-3) 5) + (set! (-> s0-3 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-3 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) + (set! (-> s0-3 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-67 (ash 16 (-> s1-3 tex0 tw))) + (a0-72 (ash 16 (-> s1-3 tex0 th))) + ) + (let* ((a1-59 arg0) + (a2-37 (the-as object (-> a1-59 base))) + ) + (set! (-> (the-as dma-packet a2-37) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-37) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-37) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-59 base) (&+ (the-as pointer a2-37) 16)) + ) + (let* ((a1-60 arg0) + (a2-39 (the-as object (-> a1-60 base))) + ) + (set! (-> (the-as gs-gif-tag a2-39) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-39) regs) GIF_REGS_ALL_AD) + (set! (-> a1-60 base) (&+ (the-as pointer a2-39) 16)) + ) + (let* ((a1-61 arg0) + (a2-41 (-> a1-61 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-41) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-41) 1) (gs-reg64 scissor-1)) + (set! (-> a1-61 base) (&+ a2-41 16)) + ) + (let* ((f0-18 (* 512.0 (-> arg1 right pupil-scale))) + (a1-63 (the-as object (-> arg0 base))) + (a2-43 (the int (- f30-0 f0-18))) + (t0-23 (the int (- sv-16 f0-18))) + (a3-41 (the int (+ f30-0 f0-18))) + (t1-5 (the int (+ sv-16 f0-18))) + ) + (set! (-> (the-as (inline-array vector4w) a1-63) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-63) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 4) a2-43 t0-23 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 5) v1-67 a0-72 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-63) 6) a3-41 t1-5 #xffffff 0) + ) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let* ((v1-71 arg0) + (a0-74 (the-as object (-> v1-71 base))) + ) + (set! (-> (the-as dma-packet a0-74) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-74) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-74) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-71 base) (&+ (the-as pointer a0-74) 16)) + ) + (let* ((v1-72 arg0) + (a0-76 (the-as object (-> v1-72 base))) + ) + (set! (-> (the-as gs-gif-tag a0-76) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-76) regs) GIF_REGS_ALL_AD) + (set! (-> v1-72 base) (&+ (the-as pointer a0-76) 16)) + ) + (let* ((v1-73 arg0) + (a0-78 (-> v1-73 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-78) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-78) 1) (gs-reg64 test-1)) + (set! (-> v1-73 base) (&+ a0-78 16)) + ) + (let ((s1-4 (-> arg1 shaders 2))) + (let ((v1-75 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-75) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-75) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-4 (the-as adgif-shader (&+ (the-as pointer v1-75) 32)))) + (quad-copy! (the-as pointer s0-4) (the-as pointer s1-4) 5) + (set! (-> s0-4 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-4 alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> s0-4 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-82 (ash 16 (-> s1-4 tex0 tw))) + (a0-90 (ash 16 (-> s1-4 tex0 th))) + ) + (when (< (-> arg1 left lid) 0.0) + (let ((f0-23 (+ 1.0 (-> arg1 left lid)))) + (set! (-> arg1 left lid) (+ f0-23 (* (- 1.0 f0-23) (-> arg1 blink)))) + ) + ) + (let* ((a1-80 arg0) + (a2-47 (the-as object (-> a1-80 base))) + ) + (set! (-> (the-as dma-packet a2-47) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-47) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-47) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-80 base) (&+ (the-as pointer a2-47) 16)) + ) + (let* ((a1-81 arg0) + (a2-49 (the-as object (-> a1-81 base))) + ) + (set! (-> (the-as gs-gif-tag a2-49) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-49) regs) GIF_REGS_ALL_AD) + (set! (-> a1-81 base) (&+ (the-as pointer a2-49) 16)) + ) + (let* ((a1-82 arg0) + (a2-51 (-> a1-82 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-51) 0) + (new 'static 'gs-scissor :scax1 #x3f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-51) 1) (gs-reg64 scissor-1)) + (set! (-> a1-82 base) (&+ a2-51 16)) + ) + (let* ((f0-27 (+ (the float (+ s3-0 -64)) (* 64.0 (-> arg1 left lid)))) + (a1-85 (the-as object (-> arg0 base))) + (a2-53 (* s4-0 16)) + (t0-29 (the int (* 16.0 f0-27))) + (a3-53 (* (+ s4-0 64) 16)) + (t1-8 (the int (* 16.0 (+ f0-27 (* 64.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-85) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-85) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 4) a2-53 t0-29 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 5) v1-82 a0-90 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-85) 6) a3-53 t1-8 #xffffff 0) + ) + ) + ) + (&+! (-> arg0 base) 112) + (let ((s1-5 (-> arg1 shaders 5))) + (let ((v1-87 (the-as object (-> arg0 base)))) + (set! (-> (the-as dma-gif-packet v1-87) dma-vif quad) (-> *eye-work* adgif-tmpl dma-vif quad)) + (set! (-> (the-as dma-gif-packet v1-87) quad 1) (-> *eye-work* adgif-tmpl quad 1)) + (let ((s0-5 (the-as adgif-shader (&+ (the-as pointer v1-87) 32)))) + (quad-copy! (the-as pointer s0-5) (the-as pointer s1-5) 5) + (set! (-> s0-5 clamp) + (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp) :maxu #x3f :maxv #x3f) + ) + (set! (-> s0-5 alpha) (new 'static 'gs-alpha :a #x1)) + (set! (-> s0-5 prims 9) (gs-reg64 alpha-1)) + ) + ) + (&+! (-> arg0 base) 112) + (let ((v1-94 (ash 16 (-> s1-5 tex0 tw))) + (a0-102 (ash 16 (-> s1-5 tex0 th))) + ) + (when (< (-> arg1 right lid) 0.0) + (let ((f0-33 (+ 1.0 (-> arg1 right lid)))) + (set! (-> arg1 right lid) (+ f0-33 (* (- 1.0 f0-33) (-> arg1 blink)))) + ) + ) + (let* ((a1-95 arg0) + (a2-57 (the-as object (-> a1-95 base))) + ) + (set! (-> (the-as dma-packet a2-57) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a2-57) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a2-57) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> a1-95 base) (&+ (the-as pointer a2-57) 16)) + ) + (let* ((a1-96 arg0) + (a2-59 (the-as object (-> a1-96 base))) + ) + (set! (-> (the-as gs-gif-tag a2-59) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a2-59) regs) GIF_REGS_ALL_AD) + (set! (-> a1-96 base) (&+ (the-as pointer a2-59) 16)) + ) + (let* ((a1-97 arg0) + (a2-61 (-> a1-97 base)) + ) + (set! (-> (the-as (pointer gs-scissor) a2-61) 0) + (new 'static 'gs-scissor :scax0 #x40 :scax1 #x7f :scay1 (+ s2-0 63) :scay0 s2-0) + ) + (set! (-> (the-as (pointer gs-reg64) a2-61) 1) (gs-reg64 scissor-1)) + (set! (-> a1-97 base) (&+ a2-61 16)) + ) + (let* ((f0-37 (+ (the float (+ s3-0 -64)) (* 64.0 (-> arg1 right lid)))) + (a1-100 (the-as object (-> arg0 base))) + (a2-64 (* (+ s4-0 128) 16)) + (t0-35 (the int (* 16.0 f0-37))) + (a3-65 (* (+ s4-0 64) 16)) + (t1-11 (the int (* 16.0 (+ f0-37 (* 64.0 (-> arg1 left lid-scale)))))) + ) + (set! (-> (the-as (inline-array vector4w) a1-100) 0 quad) (-> *eye-work* sprite-tmpl2 dma-vif quad)) + (set! (-> (the-as (inline-array vector4w) a1-100) 1 quad) (-> *eye-work* sprite-tmpl2 quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 2) 128 128 128 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 3) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 4) a2-64 t0-35 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 5) v1-94 a0-102 0 0) + (set-vector! (-> (the-as (inline-array vector4w) a1-100) 6) a3-65 t1-11 #xffffff 0) + ) + ) + ) + ) + (let ((v0-6 (&+ (-> arg0 base) 112))) + (set! (-> arg0 base) v0-6) + v0-6 + ) + ) + +;; definition for function debug-eyes +;; INFO: Used lq/sq +;; WARN: Return type mismatch pointer vs none. +;; ERROR: Failed store: (s.d! (+ s4-0 8) v1-3) at op 24 +(defun debug-eyes ((arg0 dma-buffer)) + (let* ((v1-0 arg0) + (a0-1 (the-as object (-> v1-0 base))) + ) + (set! (-> (the-as dma-packet a0-1) dma) (new 'static 'dma-tag :qwc #x7 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-1) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-1) vif1) (new 'static 'vif-tag :imm #x7 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-0 base) (&+ (the-as pointer a0-1) 16)) + ) + (let* ((v1-1 arg0) + (a0-3 (the-as object (-> v1-1 base))) + ) + (set! (-> (the-as gs-gif-tag a0-3) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x6)) + (set! (-> (the-as gs-gif-tag a0-3) regs) GIF_REGS_ALL_AD) + (set! (-> v1-1 base) (&+ (the-as pointer a0-3) 16)) + ) + (let* ((s5-0 arg0) + (s4-0 (-> s5-0 base)) + ) + (set! (-> (the-as (pointer int64) s4-0)) #x30003) + (let ((v1-3 71)) + (s.d! (+ s4-0 8) v1-3) + ) + (let ((v1-4 68)) + (s.d! (+ s4-0 16) v1-4) + ) + (let ((v1-5 66)) + (s.d! (+ s4-0 24) v1-5) + ) + (let ((v1-14 + (logior (logior (logior (shr (shl (-> *eyes-texture-base* vram-block) 50) 50) #x4000) (shr (shl (log2 64) 60) 34)) + (shr (shl (log2 512) 60) 30) + ) + ) + ) + (s.d! (+ s4-0 32) v1-14) + ) + (let ((v1-15 6)) + (s.d! (+ s4-0 40) v1-15) + ) + (let ((v1-16 (the-as uint #xeed00080120))) + (s.d! (+ s4-0 48) v1-16) + ) + (let ((v1-17 20)) + (s.d! (+ s4-0 56) v1-17) + ) + (let ((v1-18 (the-as uint #x8000000080))) + (s.d! (+ s4-0 64) v1-18) + ) + (let ((v1-19 59)) + (s.d! (+ s4-0 72) v1-19) + ) + (let ((v1-20 5)) + (s.d! (+ s4-0 80) v1-20) + ) + (let ((v1-21 8)) + (s.d! (+ s4-0 88) v1-21) + ) + (set! (-> s5-0 base) (&+ s4-0 96)) + ) + (let ((v1-23 (-> arg0 base))) + (set! (-> (the-as (pointer uint128) v1-23)) (-> *eye-work* sprite-tmpl dma-vif quad)) + (let ((a0-10 (-> *eye-work* sprite-tmpl quad 1))) + (s.q! (+ v1-23 16) a0-10) + ) + (let ((a0-11 (&+ v1-23 32))) + (set! (-> (the-as (pointer int32) a0-11)) 128) + (let ((a1-6 128)) + (s.w! (+ a0-11 4) a1-6) + ) + (let ((a1-7 128)) + (s.w! (+ a0-11 8) a1-7) + ) + (let ((a1-8 128)) + (s.w! (+ a0-11 12) a1-8) + ) + ) + (let ((a0-12 (&+ v1-23 48))) + (set! (-> (the-as (pointer int32) a0-12)) 0) + (s.w! (+ a0-12 4) 0) + (s.w! (+ a0-12 8) 0) + (s.w! (+ a0-12 12) 0) + ) + (let ((a0-13 (&+ v1-23 64))) + (set! (-> (the-as (pointer int32) a0-13)) #x7e00) + (let ((a1-10 #x7800)) + (s.w! (+ a0-13 4) a1-10) + ) + (let ((a1-11 #xffffff)) + (s.w! (+ a0-13 8) a1-11) + ) + (s.w! (+ a0-13 12) 0) + ) + (let ((a0-14 (&+ v1-23 80))) + (set! (-> (the-as (pointer int32) a0-14)) 1024) + (let ((a1-13 8192)) + (s.w! (+ a0-14 4) a1-13) + ) + (s.w! (+ a0-14 8) 0) + (s.w! (+ a0-14 12) 0) + ) + (let ((v1-24 (&+ v1-23 96))) + (set! (-> (the-as (pointer int32) v1-24)) #x8200) + (let ((a0-16 #x8800)) + (s.w! (+ v1-24 4) a0-16) + ) + (let ((a0-17 #xffffff)) + (s.w! (+ v1-24 8) a0-17) + ) + (s.w! (+ v1-24 12) 0) + ) + ) + (&+! (-> arg0 base) 112) + (none) + ) + +;; definition for function update-eyes +;; WARN: Return type mismatch int vs none. +(defun update-eyes () + (when (not (-> *blit-displays-work* screen-copied)) + (dotimes (gp-0 6) + (dotimes (s5-0 16) + (let* ((s4-0 (the-as eye-control (+ (+ (* 96 s5-0) 28 (* 1552 gp-0)) (the-as int *eye-control-arrays*)))) + (v1-8 (handle->process (-> s4-0 process))) + ) + (when (and v1-8 + (logtest? (-> (the-as process-drawable v1-8) skel status) (joint-control-status eye-anim)) + (logtest? (-> (the-as process-drawable v1-8) draw status) (draw-control-status on-screen)) + ) + (when (-> s4-0 shaders) + (when (not (paused?)) + (cond + ((and (>= (-> s4-0 left lid) 0.0) (>= (-> s4-0 right lid) 0.0)) + (set! (-> s4-0 random-time) (the-as uint 60)) + (set! (-> s4-0 blink) 0.0) + ) + (else + (+! (-> s4-0 random-time) -1) + (let ((v1-22 (-> s4-0 random-time))) + (when (< v1-22 (the-as uint 10)) + (set! (-> s4-0 blink) (-> *eye-work* blink-table v1-22)) + (if (zero? v1-22) + (set! (-> s4-0 random-time) (the-as uint (the int (rand-vu-float-range 60.0 240.0)))) + ) + ) + ) + ) + ) + ) + (when (-> s4-0 draw-flag) + (cond + ((and (>= gp-0 3) + (or (movie?) + (and (not (-> (the-as eye-control-arrays (+ (the-as uint *eye-control-arrays*) (* 1552 (+ gp-0 -3)) (* 96 s5-0))) + data + 0 + data + 0 + process + ) + ) + (not (-> (the-as eye-control-arrays (+ (the-as uint *eye-control-arrays*) (* 1552 (+ gp-0 -3)) (* 96 (+ s5-0 1)))) + data + 0 + data + 0 + process + ) + ) + (not (-> (the-as eye-control-arrays (+ (the-as uint *eye-control-arrays*) (* 1552 (+ gp-0 -3)) (* 96 (+ s5-0 2)))) + data + 0 + data + 0 + process + ) + ) + (not (-> (the-as eye-control-arrays (+ (the-as uint *eye-control-arrays*) (* 1552 (+ gp-0 -3)) (* 96 (+ s5-0 3)))) + data + 0 + data + 0 + process + ) + ) + ) + ) + ) + (let* ((s2-0 (-> *display* frames (-> *display* on-screen) global-buf)) + (s3-0 (-> s2-0 base)) + ) + (set-display-gs-state-offset s2-0 (the-as int (-> *eyes-texture-base* vram-page)) 128 256 0 0 64 64) + (let* ((v1-49 s2-0) + (a0-38 (the-as object (-> v1-49 base))) + ) + (set! (-> (the-as dma-packet a0-38) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-38) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-38) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-49 base) (&+ (the-as pointer a0-38) 16)) + ) + (let* ((v1-50 s2-0) + (a0-40 (the-as object (-> v1-50 base))) + ) + (set! (-> (the-as gs-gif-tag a0-40) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-40) regs) GIF_REGS_ALL_AD) + (set! (-> v1-50 base) (&+ (the-as pointer a0-40) 16)) + ) + (let* ((v1-51 s2-0) + (a0-42 (-> v1-51 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-42) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-42) 1) (gs-reg64 test-1)) + (set! (-> v1-51 base) (&+ a0-42 16)) + ) + (if (-> s4-0 different-eyes) + (render-eyes-64-different s2-0 s4-0 (/ s5-0 4)) + (render-eyes-64 s2-0 s4-0 (/ s5-0 4)) + ) + (reset-display-gs-state *display* s2-0) + (let* ((v1-55 s2-0) + (a0-47 (the-as object (-> v1-55 base))) + ) + (set! (-> (the-as dma-packet a0-47) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-47) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-47) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-55 base) (&+ (the-as pointer a0-47) 16)) + ) + (let* ((v1-56 s2-0) + (a0-49 (the-as object (-> v1-56 base))) + ) + (set! (-> (the-as gs-gif-tag a0-49) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-49) regs) GIF_REGS_ALL_AD) + (set! (-> v1-56 base) (&+ (the-as pointer a0-49) 16)) + ) + (let* ((v1-57 s2-0) + (a0-51 (-> v1-57 base)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-51) 0) (gs-reg64 dimx)) + (set! (-> (the-as (pointer gs-reg64) a0-51) 1) (gs-reg64 alpha-1)) + (set! (-> v1-57 base) (&+ a0-51 16)) + ) + (let ((a3-1 (-> s2-0 base))) + (let ((v1-58 (the-as object (-> s2-0 base)))) + (set! (-> (the-as dma-packet v1-58) dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> (the-as dma-packet v1-58) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet v1-58) vif1) (new 'static 'vif-tag)) + (set! (-> s2-0 base) (&+ (the-as pointer v1-58) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) bucket-group) + (the-as bucket-id (-> s4-0 bucket)) + s3-0 + (the-as (pointer dma-tag) a3-1) + ) + ) + ) + ) + ((and (< gp-0 3) + (or (not (movie?)) + (not (-> (the-as eye-control-arrays (+ (the-as uint *eye-control-arrays*) (* 1552 (+ gp-0 3)) (* 96 (* (/ s5-0 4) 4)))) + data + 0 + data + 0 + process + ) + ) + ) + ) + (let* ((s2-1 (-> *display* frames (-> *display* on-screen) global-buf)) + (s3-1 (-> s2-1 base)) + ) + (set-display-gs-state-offset s2-1 (the-as int (-> *eyes-texture-base* vram-page)) 64 512 0 0 32 32) + (let* ((v1-78 s2-1) + (a0-63 (the-as object (-> v1-78 base))) + ) + (set! (-> (the-as dma-packet a0-63) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-63) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-63) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-78 base) (&+ (the-as pointer a0-63) 16)) + ) + (let* ((v1-79 s2-1) + (a0-65 (the-as object (-> v1-79 base))) + ) + (set! (-> (the-as gs-gif-tag a0-65) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-65) regs) GIF_REGS_ALL_AD) + (set! (-> v1-79 base) (&+ (the-as pointer a0-65) 16)) + ) + (let* ((v1-80 s2-1) + (a0-67 (-> v1-80 base)) + ) + (set! (-> (the-as (pointer gs-test) a0-67) 0) + (new 'static 'gs-test :ate #x1 :atst (gs-atest always) :zte #x1 :ztst (gs-ztest always)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-67) 1) (gs-reg64 test-1)) + (set! (-> v1-80 base) (&+ a0-67 16)) + ) + (if (-> s4-0 different-eyes) + (render-eyes-32-different s2-1 s4-0 s5-0) + (render-eyes-32 s2-1 s4-0 s5-0) + ) + (reset-display-gs-state *display* s2-1) + (let* ((v1-84 s2-1) + (a0-72 (the-as object (-> v1-84 base))) + ) + (set! (-> (the-as dma-packet a0-72) dma) (new 'static 'dma-tag :qwc #x2 :id (dma-tag-id cnt))) + (set! (-> (the-as dma-packet a0-72) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet a0-72) vif1) (new 'static 'vif-tag :imm #x2 :cmd (vif-cmd direct) :msk #x1)) + (set! (-> v1-84 base) (&+ (the-as pointer a0-72) 16)) + ) + (let* ((v1-85 s2-1) + (a0-74 (the-as object (-> v1-85 base))) + ) + (set! (-> (the-as gs-gif-tag a0-74) tag) (new 'static 'gif-tag64 :nloop #x1 :eop #x1 :nreg #x1)) + (set! (-> (the-as gs-gif-tag a0-74) regs) GIF_REGS_ALL_AD) + (set! (-> v1-85 base) (&+ (the-as pointer a0-74) 16)) + ) + (let* ((v1-86 s2-1) + (a0-76 (-> v1-86 base)) + ) + (set! (-> (the-as (pointer gs-reg64) a0-76) 0) (gs-reg64 dimx)) + (set! (-> (the-as (pointer gs-reg64) a0-76) 1) (gs-reg64 alpha-1)) + (set! (-> v1-86 base) (&+ a0-76 16)) + ) + (let ((a3-3 (-> s2-1 base))) + (let ((v1-87 (the-as object (-> s2-1 base)))) + (set! (-> (the-as dma-packet v1-87) dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> (the-as dma-packet v1-87) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet v1-87) vif1) (new 'static 'vif-tag)) + (set! (-> s2-1 base) (&+ (the-as pointer v1-87) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) bucket-group) + (the-as bucket-id (-> s4-0 bucket)) + s3-1 + (the-as (pointer dma-tag) a3-3) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for function get-eye-block +;; WARN: Return type mismatch uint vs int. +(defun get-eye-block ((arg0 int) (arg1 int)) + (let ((v1-0 arg0) + (a0-4 (-> ct32-24-block-table (* arg1 4))) + ) + (the-as int (+ (-> *eyes-texture-base* vram-block) (* v1-0 32) a0-4)) + ) + ) + +;; definition for function convert-eye-data +(defun convert-eye-data ((arg0 eye) (arg1 uint)) + (local-vars + (v0-0 float) + (v1-0 uint128) + (v1-1 uint128) + (v1-2 uint128) + (v1-3 uint128) + (v1-4 uint128) + (v1-5 uint128) + ) + (rlet ((vf1 :class vf) + (vf2 :class vf) + ) + (.pextlb v1-0 arg1 0) + (.pextlh v1-1 v1-0 0) + (.pw.sra v1-2 v1-1 16) + (.mov vf1 v1-2) + (.pextlb v1-3 0 arg1) + (.pextuh v1-4 0 v1-3) + (.pw.sll v1-5 v1-4 6) + (.mov vf2 v1-5) + (vitof15.xyzw vf1 vf1) + (vitof12.xyzw vf2 vf2) + (.svf (&-> arg0 data 0 quad) vf1) + (.svf (&-> arg0 data 1 quad) vf2) + (.mov v0-0 vf2) + v0-0 + ) + ) + +;; definition for function merc-eye-anim +;; WARN: Return type mismatch int vs none. +(defun merc-eye-anim ((arg0 process-drawable)) + (let* ((v1-2 (-> arg0 draw mgeo header eye-ctrl)) + (a0-2 (-> arg0 skel float-channels)) + (s3-0 (cond + ((> a0-2 0) + (-> arg0 skel channel (+ a0-2 -1 (-> arg0 skel active-channels))) + ) + (else + (let ((a0-8 (-> arg0 skel root-channel)) + (a1-4 (-> arg0 skel effect)) + ) + (-> a0-8 (if a1-4 + (-> a1-4 channel-offset) + 0 + ) + ) + ) + ) + ) + ) + (s5-0 (-> s3-0 frame-group)) + ) + (when (and (logtest? (-> arg0 skel status) (joint-control-status eye-anim)) + (and (nonzero? v1-2) (> (-> arg0 skel active-channels) 0) s5-0) + ) + (cond + ((and (-> arg0 skel override) (!= (-> arg0 skel override 41) 0.0)) + (let ((v1-7 (the-as object (+ (+ (* 96 (mod (-> v1-2 eye-slot) 20)) 28 (* 1552 (/ (-> v1-2 eye-slot) 20))) + (the-as int *eye-control-arrays*) + ) + ) + ) + (a0-26 (-> arg0 skel override)) + ) + (set! (-> (the-as eye-control v1-7) left x) (-> a0-26 42)) + (set! (-> (the-as eye-control v1-7) left y) (-> a0-26 43)) + (set! (-> (the-as eye-control v1-7) left lid) (-> a0-26 44)) + (set! (-> (the-as eye-control v1-7) left iris-scale) (-> a0-26 45)) + (set! (-> (the-as eye-control v1-7) left pupil-scale) (-> a0-26 46)) + (set! (-> (the-as eye-control v1-7) left lid-scale) (-> a0-26 47)) + (set! (-> (the-as eye-control v1-7) right x) (-> a0-26 48)) + (set! (-> (the-as eye-control v1-7) right y) (-> a0-26 49)) + (set! (-> (the-as eye-control v1-7) right lid) (-> a0-26 50)) + (set! (-> (the-as eye-control v1-7) right iris-scale) (-> a0-26 51)) + (set! (-> (the-as eye-control v1-7) right pupil-scale) (-> a0-26 52)) + (set! (-> (the-as eye-control v1-7) right lid-scale) (-> a0-26 53)) + ) + (logior! (-> arg0 skel status) (joint-control-status eye-anim-valid)) + ) + (else + (let* ((s4-0 (the-as eye-control (+ (+ (* 96 (mod (-> v1-2 eye-slot) 20)) 28 (* 1552 (/ (-> v1-2 eye-slot) 20))) + (the-as int *eye-control-arrays*) + ) + ) + ) + (f0-13 (-> s3-0 frame-num)) + (f30-0 (- f0-13 (* (the float (the int (/ f0-13 1.0))) 1.0))) + ) + (set! (-> s4-0 process) (process->handle arg0)) + (if (< 3 (-> v1-2 shader-count)) + (set! (-> s4-0 different-eyes) #t) + (set! (-> s4-0 different-eyes) #f) + ) + (set! (-> s4-0 shaders) (the-as (inline-array adgif-shader) (-> v1-2 left-iris-shader))) + (let ((a0-40 *level*) + (v1-12 (-> arg0 draw)) + ) + (set! (-> s4-0 bucket) (the-as uint (vu1-bucket-map + (the-as int (-> a0-40 draw-index-map (-> v1-12 level-index))) + (the-as int (-> v1-12 default-texture-page)) + (merc-mode eye) + ) + ) + ) + ) + (let ((s2-0 (new 'stack-no-clear 'eye)) + (s1-0 (new 'stack-no-clear 'eye)) + ) + (cond + ((-> s5-0 eye-anim) + (let ((s0-1 (min (the int (-> s3-0 frame-num)) (-> s5-0 eye-anim max-frame))) + (s3-2 (min (+ (the int (-> s3-0 frame-num)) 1) (-> s5-0 eye-anim max-frame))) + ) + (convert-eye-data s2-0 (-> s5-0 eye-anim data (* s0-1 2) dword)) + (convert-eye-data s1-0 (-> s5-0 eye-anim data (* s3-2 2) dword)) + (vector4-lerp! + (the-as vector (-> s4-0 left)) + (the-as vector (-> s2-0 data)) + (the-as vector (-> s1-0 data)) + f30-0 + ) + (vector4-lerp! + (the-as vector (&-> s4-0 left iris-scale)) + (the-as vector (&-> s2-0 iris-scale)) + (the-as vector (&-> s1-0 iris-scale)) + f30-0 + ) + (convert-eye-data s2-0 (-> s5-0 eye-anim data (+ (* s0-1 2) 1) dword)) + (convert-eye-data s1-0 (-> s5-0 eye-anim data (+ (* s3-2 2) 1) dword)) + ) + (vector4-lerp! + (the-as vector (-> s4-0 right)) + (the-as vector (-> s2-0 data)) + (the-as vector (-> s1-0 data)) + f30-0 + ) + (vector4-lerp! + (the-as vector (&-> s4-0 right iris-scale)) + (the-as vector (&-> s2-0 iris-scale)) + (the-as vector (&-> s1-0 iris-scale)) + f30-0 + ) + ) + (else + (format *stdcon* "no eye anim data for ~s~%" (-> arg0 name)) + (set! (-> s4-0 left x) 0.0) + (set! (-> s4-0 left y) 0.0) + (set! (-> s4-0 left lid) -1.0) + (set! (-> s4-0 left iris-scale) 0.55) + (set! (-> s4-0 left pupil-scale) 0.45) + (set! (-> s4-0 left lid-scale) 1.0) + (set! (-> s4-0 right x) 0.0) + (set! (-> s4-0 right y) 0.0) + (set! (-> s4-0 right lid) -1.0) + (set! (-> s4-0 right iris-scale) 0.55) + (set! (-> s4-0 right pupil-scale) 0.45) + (set! (-> s4-0 right lid-scale) 1.0) + ) + ) + ) + ) + (logior! (-> arg0 skel status) (joint-control-status eye-anim-valid)) + ) + ) + ) + ) + (if (logtest? (-> arg0 skel status) (joint-control-status eye-anim-valid)) + (logclear! (-> arg0 skel status) (joint-control-status eye-anim-valid)) + ) + 0 + (none) + ) + +;; definition for function set-eye-draw-flag +;; WARN: Return type mismatch int vs none. +(defun set-eye-draw-flag ((arg0 symbol) (arg1 int) (arg2 int)) + (let ((s5-0 (the-as object (+ (+ (* 96 (mod arg1 20)) 28 (* 1552 (/ arg1 20))) (the-as int *eye-control-arrays*)))) + ) + (format 0 "flag: ~a eye-slot: ~d ~%" arg0 arg1) + (set! (-> (the-as eye-control s5-0) draw-flag) arg0) + ) + 0 + (none) + ) + + + + diff --git a/test/offline/config/jak2/config.jsonc b/test/offline/config/jak2/config.jsonc index 0dcd2b32f2..7d57a96d67 100644 --- a/test/offline/config/jak2/config.jsonc +++ b/test/offline/config/jak2/config.jsonc @@ -283,7 +283,8 @@ "(method 16 sew-light-control)", // skipped for now, looking for a caller "(method 3 rhino)", "(method 193 grunt-mech)", // .mula.s - "(method 3 sig-path-sample)" + "(method 3 sig-path-sample)", + "debug-eyes" // unused debug function ], "skip_compile_states": {