[graphics] tie generic (#1341)

* [gtie] tie inst and proto functions

* first chain input to generic ee looks good

* m

* works

* ugh

* add tie generic

* rm debug print

* rm generic ties from fr3
This commit is contained in:
water111
2022-04-29 23:44:53 -04:00
committed by GitHub
parent 08d701bb26
commit a51536de8d
26 changed files with 5513 additions and 52 deletions
+1
View File
@@ -1058,6 +1058,7 @@ Mips2C_Line handle_normal_instr(Mips2C_Output& output,
case InstructionKind::DSLLV:
case InstructionKind::PAND:
case InstructionKind::PCEQB:
case InstructionKind::PPACW:
return handle_generic_op3(i0, instr_str, {});
case InstructionKind::MULS:
return handle_generic_op3(i0, instr_str, "muls");
+7 -7
View File
@@ -6827,7 +6827,7 @@
(gifbuf-adr uint32 :offset-assert 68)
(inbuf-adr uint32 :offset-assert 72)
(fade-val uint32 :offset-assert 76)
(time-of-day-color uint32 :offset-assert 80)
(time-of-day-color rgba :offset-assert 80)
(to-vu0-waits uint32 :offset-assert 84)
(to-spr-waits uint32 :offset-assert 88)
(from-spr-waits uint32 :offset-assert 92)
@@ -16886,11 +16886,11 @@
;; - Functions
(define-extern generic-work-init (function generic-dma-foreground-sink none))
(define-extern generic-upload-vu0 function)
(define-extern generic-upload-vu0 (function none))
(define-extern upload-vu0-program (function vu-function pointer none))
(define-extern generic-initialize-without-sink (function matrix vu-lights none))
(define-extern generic-initialize function)
(define-extern generic-wrapup function)
(define-extern generic-initialize (function generic-dma-foreground-sink matrix vu-lights none))
(define-extern generic-wrapup (function generic-dma-foreground-sink none))
(define-extern generic-dma-from-spr function)
(define-extern generic-light-proc function)
(define-extern generic-envmap-proc function)
@@ -16967,11 +16967,11 @@
;; - Functions
(define-extern generic-tie-dma-to-spad function)
(define-extern generic-tie-dma-to-spad-sync function)
(define-extern generic-tie-dma-to-spad-sync (function object object none))
(define-extern generic-tie-decompress function)
(define-extern generic-tie-upload-next function)
(define-extern generic-tie-convert-proc function)
(define-extern generic-tie-convert function)
(define-extern generic-tie-convert (function none))
(define-extern generic-tie-display-stats function)
(define-extern generic-tie-debug function)
(define-extern generic-tie-execute (function generic-dma-foreground-sink dma-buffer basic none))
@@ -17416,7 +17416,7 @@
(define-extern tie-debug-between (function uint uint uint))
(define-extern tie-debug-one (function uint uint uint))
(define-extern walk-tie-generic-prototypes (function none))
(define-extern draw-inline-array-instance-tie (function pointer drawable int dma-buffer none))
(define-extern draw-inline-array-instance-tie (function pointer (inline-array instance-tie) int dma-buffer none))
(define-extern draw-inline-array-prototype-tie-generic-asm (function dma-buffer int prototype-array-tie none))
(define-extern draw-inline-array-prototype-tie-asm (function dma-buffer int prototype-array-tie none))
(define-extern draw-inline-array-prototype-tie-near-asm (function dma-buffer int prototype-array-tie none))
@@ -141,11 +141,8 @@
"generic-envmap-only-proc",
"generic-no-light",
"generic-no-light+envmap",
"generic-no-light-dproc",
"generic-no-light-dproc-only",
"generic-no-light-proc",
"generic-interp-dproc",
"generic-envmap-dproc",
"generic-prepare-dma-single",
"generic-prepare-dma-double",
"generic-envmap-proc",
@@ -163,11 +160,9 @@
"generic-merc-init-asm",
// generic-tie
"generic-tie-convert",
"generic-tie-convert-proc",
"generic-tie-upload-next",
"generic-tie-decompress",
"generic-tie-dma-to-spad-sync",
// shadow-cpu
"shadow-add-double-edges",
@@ -200,8 +195,6 @@
// tie-methods
"draw-inline-array-prototype-tie-near-asm",
"draw-inline-array-prototype-tie-asm",
"draw-inline-array-prototype-tie-generic-asm",
"draw-inline-array-instance-tie",
// sparticle-launcher
"sp-init-fields!",
@@ -613,7 +606,18 @@
"shadow-scissor-top",
"shadow-scissor-edges",
"shadow-calc-dual-verts",
"shadow-xform-verts"
"shadow-xform-verts",
// generic tie
"draw-inline-array-instance-tie",
"generic-tie-dma-to-spad-sync",
"draw-inline-array-prototype-tie-generic-asm",
"generic-interp-dproc",
"generic-no-light-dproc",
"generic-envmap-dproc",
"generic-tie-convert"
],
"mips2c_jump_table_functions": {
@@ -7778,5 +7778,10 @@
],
"(method 12 effect-control)": [["_stack_", 112, "res-tag"]],
"generic-tie-execute": [
[118, "v1", "terrain-context"],
[124, "v1", "terrain-context"]
],
"placeholder-do-not-add-below": []
}
@@ -2034,6 +2034,10 @@ void add_vertices_and_static_draw(tfrag3::TieTree& tree,
// loop over all prototypes
for (auto& proto : protos) {
if (proto.uses_generic) {
// generic ties go through generic
continue;
}
// bool using_wind = true; // hack, for testing
bool using_wind = proto.stiffness != 0.f;