decomp: eye (#2148)

This commit is contained in:
Hat Kid
2023-01-28 21:17:49 +01:00
committed by GitHub
parent fc3f4da370
commit fa8c789dcd
9 changed files with 4978 additions and 26 deletions
+10 -9
View File
@@ -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 ;;
+330 -1
View File
@@ -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"]
]
}
+7 -12
View File
@@ -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))
File diff suppressed because it is too large Load Diff
@@ -10,6 +10,7 @@
(merc 0)
(emerc 1)
(mercneric 2)
(eye 3)
)
+1
View File
@@ -5,6 +5,7 @@
;; name in dgo: merc
;; dgos: ENGINE, GAME
(define-extern get-eye-block (function int int int))
;; DECOMP BEGINS
+1 -1
View File
@@ -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)
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -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": {