diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index c96de62d1c..d3737a2033 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -16735,15 +16735,15 @@ (define-extern upload-generic-shrub (function dma-buffer generic-shrub-fragment int int dma-buffer)) (define-extern shrub-num-tris (function shrubbery uint)) -(define-extern shrub-init-frame (function dma-buffer int none)) +(define-extern shrub-init-frame (function dma-buffer gs-test none)) (define-extern shrub-upload-model (function shrubbery shrub-view-data int symbol)) ;; third arg is `start-bank` from shrub-work (define-extern shrub-do-init-frame (function dma-buffer symbol)) -(define-extern shrub-upload-view-data (function shrub-view-data symbol)) +(define-extern shrub-upload-view-data (function dma-buffer symbol)) (define-extern shrub-init-view-data (function shrub-view-data symbol)) (define-extern mem-usage-shrub-walk (function draw-node drawable-group memory-usage-block int draw-node)) (define-extern shrub-make-perspective-matrix (function matrix matrix)) (define-extern shrub-time (function int int int int int int)) ;; unused -(define-extern draw-inline-array-instance-shrub function) +(define-extern draw-inline-array-instance-shrub (function dma-buffer drawable int (inline-array prototype-bucket-shrub) none)) (define-extern draw-prototype-inline-array-shrub (function int shrub-near-packet none)) (define-extern shrub-upload-test (function generic-shrub-fragment none)) (define-extern test-func (function none)) diff --git a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc index cc8bd21309..60e3aed3c4 100644 --- a/decompiler/config/jak1_ntsc_black_label/hacks.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/hacks.jsonc @@ -191,7 +191,6 @@ // shrubbery "draw-inline-array-instance-shrub", // CFG - "draw-drawable-tree-instance-shrub", // CFG // tfrag "stats-tfrag-asm", @@ -474,6 +473,7 @@ "draw-drawable-tree-dirt-tfrag": [6, 8, 13, 15], "draw-drawable-tree-ice-tfrag": [6, 8, 13, 15], "draw-drawable-tree-instance-tie": [10, 12, 18, 20, 26, 28, 37, 39], + "draw-drawable-tree-instance-shrub": [5, 7, 9, 11], "birth-pickup-at-point": [0], "draw-bones": [0, 1, 2, 8, 81], diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 08891e840d..9beb6ced05 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -7420,5 +7420,23 @@ [54, "v1", "drawable-group"] ], + "draw-drawable-tree-instance-shrub": [ + [85, "a0", "drawable-group"] + ], + + "shrub-init-frame": [ + [[6, 12], "a0", "dma-packet"], + [[13, 21], "a0", "gs-gif-tag"], + [24, "v1", "(pointer gs-test)"], + [26, "v1", "(pointer gs-reg64)"] + ], + "shrub-do-init-frame": [ + [[10, 21], "a0", "dma-packet"], + [[24, 29], "a0", "dma-packet"] + ], + "shrub-upload-view-data": [ + [[3, 16], "a0", "dma-packet"] + ], + "placeholder-do-not-add-below": [] }