From 928673cd130d6b9e398c9230eb909035cd97a078 Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Tue, 15 Jun 2021 04:45:21 +0100 Subject: [PATCH] [decomp] prepare `joint` stuff (#594) * [decomp] prepare `joint` stuff * fix types * fix a missing declaration * update references --- decompiler/config/all-types.gc | 204 +++++++++--------- .../jak1_ntsc_black_label/label_types.jsonc | 5 + .../jak1_ntsc_black_label/type_casts.jsonc | 6 + goal_src/engine/anim/joint-h.gc | 95 ++++---- goal_src/engine/anim/mspace-h.gc | 19 +- goal_src/engine/data/art-h.gc | 58 ++--- goal_src/engine/debug/memory-usage-h.gc | 2 +- goal_src/engine/game/game-h.gc | 31 +-- goal_src/engine/gfx/merc/merc-h.gc | 6 - goal_src/engine/level/level-h.gc | 23 +- goal_src/engine/sound/gsound.gc | 14 +- scripts/batch/test-offline-and-update.bat | 6 + scripts/batch/test-offline.bat | 2 +- .../reference/all_forward_declarations.gc | 5 + .../reference/engine/anim/joint-h_REF.gc | 43 ++-- .../reference/engine/anim/mspace-h_REF.gc | 19 +- .../reference/engine/data/art-h_REF.gc | 45 ++-- .../engine/debug/memory-usage-h_REF.gc | 8 +- .../engine/game/effect-control-h_REF.gc | 2 +- .../reference/engine/game/game-h_REF.gc | 30 +-- .../reference/engine/level/level-h_REF.gc | 2 +- 21 files changed, 334 insertions(+), 291 deletions(-) create mode 100644 scripts/batch/test-offline-and-update.bat diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 94d0028c92..e06dc3271c 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -4406,7 +4406,7 @@ ) (declare-type bsp-header basic) - +(declare-type art-group basic) (deftype level (basic) ((name basic :offset-assert 4) (load-name basic :offset-assert 8) @@ -4416,7 +4416,7 @@ (other basic :offset-assert 24) (heap kheap :inline :offset-assert 32) (bsp bsp-header :offset-assert 48) - (art-group basic :offset-assert 52) + (art-group art-group :offset-assert 52) (info basic :offset-assert 56) (texture-page texture-page 9 :offset-assert 60) (loaded-texture-page basic 16 :offset-assert 96) @@ -5101,7 +5101,7 @@ ;; - Types (deftype memory-usage-info (structure) - ((name basic :offset-assert 0) + ((name string :offset-assert 0) (count int32 :offset-assert 4) (used int32 :offset-assert 8) (total int32 :offset-assert 12) @@ -5383,21 +5383,22 @@ ) (deftype cspace (structure) - ((parent cspace :offset-assert 0) - (joint joint :offset-assert 4) - (joint-num int16 :offset-assert 8) - (geo basic :offset-assert 12) - (bone bone :offset-assert 16) - (param0 basic :offset-assert 20) - (param1 basic :offset-assert 24) - (param2 basic :offset-assert 28) + ((parent cspace :offset-assert 0) + (joint joint :offset-assert 4) + (joint-num int16 :offset-assert 8) + (geo basic :offset-assert 12) + (bone bone :offset-assert 16) + (param0 function :offset-assert 20) + (param1 basic :offset-assert 24) + (param2 basic :offset-assert 28) ) :method-count-assert 10 :size-assert #x20 :flag-assert #xa00000020 ;; field param1 is a basic loaded with a signed load field param2 is a basic loaded with a signed load (:methods - (dummy-9 () none 9) + (new (symbol type basic) _type_ 0) + (dummy-9 (_type_ basic) _type_ 9) ) ) @@ -6953,7 +6954,7 @@ ;; - Types (deftype joint-anim (basic) - ((name basic :offset-assert 4) + ((name string :offset-assert 4) (number int16 :offset-assert 8) (length int16 :offset-assert 10) ) @@ -6963,32 +6964,33 @@ ) (deftype joint-anim-matrix (joint-anim) - ((matrix matrix :offset-assert 12)) ;; guess - ;; inspect in joint + ((data matrix :inline :dynamic :offset 16) + ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) (deftype joint-anim-transformq (joint-anim) - ((transformq transformq :offset-assert 12)) ;; guess - ;; inspect in joint + ((data transformq :inline :dynamic :offset 16) + ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 - ;; too many basic blocks ) (deftype joint-anim-drawable (joint-anim) - ((data uint32 :inline :dynamic :offset-assert 12) ;; guess + ((data drawable :dynamic :offset-assert 12) ;; guess ) :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c ) +(declare-type joint-anim-compressed-hdr structure) (deftype joint-anim-compressed (joint-anim) - () + ((data joint-anim-compressed-hdr :dynamic :offset-assert 12) ;; guess + ) :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c @@ -7053,19 +7055,22 @@ :flag-assert #x900000014 ) +(declare-type res-lump basic) +(declare-type art-element basic) (deftype art (basic) - ((name basic :offset 8) - (length int32 :offset-assert 12) - (extra basic :offset-assert 16) ; possible types: [res-lump] + ((name string :offset 8) + (length int32 :offset-assert 12) + (extra entity :offset-assert 16) ; possible types: [res-lump] + ; this field is very strange ) :method-count-assert 13 :size-assert #x14 :flag-assert #xd00000014 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) + (dummy-9 (_type_) _type_ 9) + (dummy-10 (_type_ string type) art-element 10) + (dummy-11 (_type_ string type) int 11) + (dummy-12 (_type_) symbol 12) ) ) @@ -7075,10 +7080,10 @@ :size-assert #x20 :flag-assert #xd00000020 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) + (dummy-9 (_type_) _type_ 9) + (dummy-10 (_type_ string type) art-element 10) + (dummy-11 (_type_ string type) int 11) + (dummy-12 (_type_) symbol 12) ) ) @@ -7091,45 +7096,48 @@ (deftype art-joint-anim (art-element) ;; figured out manually from custom inspect. - ((speed float :offset 20) + ((_unknown (pointer int16) :offset 4) ;; no clue. used in mem-usage + (speed float :offset 20) (artist-base float :offset 24) (artist-step float :offset 28) - (master-art-group-name basic :offset 32) + (master-art-group-name string :offset 32) (master-art-group-index int32 :offset 36) - (frames pointer :offset 44) - (data joint-anim-compressed :dynamic) + (frames pointer :offset 44) ;; this structure doesn't exist? it's a structure with an array of joint-anim-compressed-hdr starting at offset 12 + (data joint-anim-compressed :dynamic :offset-assert 48) ) - ;; inspect in joint :method-count-assert 13 :size-assert #x30 :flag-assert #xd00000030 ) (deftype art-group (art) - ((pad2 uint8 12)) - ;; inspect in join + ((info file-info :offset 4) + (data art-element :dynamic :offset 32) + ) :method-count-assert 15 :size-assert #x20 :flag-assert #xf00000020 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) + (dummy-9 (_type_) _type_ 9) + (dummy-10 (_type_ string type) art-element 10) + (dummy-11 (_type_ string type) int 11) + (dummy-12 (_type_) symbol 12) (dummy-13 () none 13) (dummy-14 () none 14) ) ) (deftype art-mesh-geo (art-element) - () + ((data basic :dynamic :offset-assert 32) + ) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 ) (deftype art-joint-geo (art-element) - () + ((data joint :dynamic :offset-assert 32) + ) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 @@ -7190,7 +7198,7 @@ (global-effect uint8 :offset-assert 7) (art-group art-group :offset-assert 8) (jgeo art-joint-geo :offset-assert 12) - (mgeo art-mesh-geo :offset-assert 16) + (mgeo merc-ctrl :offset-assert 16) (dma-add-func function :offset-assert 20) (skeleton skeleton-group :offset-assert 24) (lod-set lod-set :inline :offset-assert 28) @@ -7574,12 +7582,6 @@ :method-count-assert 13 :size-assert #x70 :flag-assert #xd00000070 - (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - ) ) (deftype merc-vu1-low-mem (structure) @@ -8705,12 +8707,12 @@ (declare-type joint-control basic) (deftype joint-control-channel (structure) ((parent joint-control :offset-assert 0) - (command basic :offset-assert 4) + (command symbol :offset-assert 4) (frame-interp float :offset-assert 8) (frame-group art-joint-anim :offset-assert 12) (frame-num float :offset-assert 16) - (num-func basic :offset-assert 20) - (param uint32 2 :offset-assert 24) + (num-func (function joint-control-channel float float float) :offset-assert 20) + (param float 2 :offset-assert 24) (group-sub-index int16 :offset-assert 32) (group-size int16 :offset-assert 34) (dist float :offset-assert 36) ;; meters @@ -8721,14 +8723,14 @@ :size-assert #x30 :flag-assert #xa00000030 (:methods - (dummy-9 () none 9) + (dummy-9 (_type_) _type_ 9) ) ) (deftype joint-control (basic) ((status uint16 :offset-assert 4) (allocated-length int16 :offset-assert 6) - (root-channel uint32 :offset 16) + (root-channel joint-control-channel :offset 16) (blend-index int32 :offset-assert 20) (active-channels int32 :offset-assert 24) (generate-frame-function basic :offset-assert 28) @@ -8736,13 +8738,13 @@ (postbind-function basic :offset-assert 36) (effect basic :offset-assert 40) (channel joint-control-channel 3 :inline :offset-assert 48) ;; actually dynamic? - (frame-group0 basic :offset 60) + (frame-group0 art-joint-anim :offset 60) (frame-num0 float :offset 64) (frame-interp0 float :offset 56) - (frame-group1 basic :offset 108) + (frame-group1 art-joint-anim :offset 108) (frame-num1 float :offset 112) (frame-interp1 float :offset 104) - (frame-group2 basic :offset 156) + (frame-group2 art-joint-anim :offset 156) (frame-num2 float :offset 160) (frame-interp2 float :offset 152) ) @@ -8750,8 +8752,9 @@ :size-assert #xc0 :flag-assert #xb000000c0 (:methods + (new (symbol type int) _type_ 0) (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-10 (_type_ symbol) int 10) ) ) @@ -8781,9 +8784,9 @@ (deftype joint-work (structure) ((temp-mtx matrix :inline :offset-assert 0) (joint-stack matrix-stack :inline :offset-assert 64) - (fix-jmp-table uint32 16 :offset-assert 1616) - (frm-jmp-table uint32 16 :offset-assert 1680) - (pair-jmp-table uint32 16 :offset-assert 1744) + (fix-jmp-table (function none) 16 :offset-assert 1616) + (frm-jmp-table (function none) 16 :offset-assert 1680) + (pair-jmp-table (function none) 16 :offset-assert 1744) (uploads channel-upload-info 24 :inline :offset-assert 1808) (num-uploads int32 :offset-assert 2384) (mtx-acc matrix 2 :inline :offset-assert 2400) @@ -9352,20 +9355,21 @@ ;; - Types +(declare-type water-control basic) (deftype process-drawable (process) ((root trsqv :offset-assert 112) - (node-list cspace-array :offset-assert 116) - (draw draw-control :offset-assert 120) - (skel basic :offset-assert 124) + (node-list cspace-array :offset-assert 116) + (draw draw-control :offset-assert 120) + (skel joint-control :offset-assert 124) (nav basic :offset-assert 128) - (align basic :offset-assert 132) + (align align-control :offset-assert 132) (path basic :offset-assert 136) (vol basic :offset-assert 140) - (fact basic :offset-assert 144) + (fact fact-info :offset-assert 144) (link basic :offset-assert 148) (part basic :offset-assert 152) - (water basic :offset-assert 156) - (sound basic :offset-assert 160) + (water water-control :offset-assert 156) + (sound ambient-sound :offset-assert 160) (state-flags uint32 :offset-assert 164) (state-time uint64 :offset-assert 168) ) @@ -14562,36 +14566,36 @@ ;; - Symbols -(define-extern flatten-joint-control-to-spr function) -(define-extern make-joint-jump-tables function) -(define-extern calc-animation-from-spr function) -(define-extern decompress-fixed-data-to-accumulator function) -(define-extern decompress-frame-data-to-accumulator function) -(define-extern decompress-frame-data-pair-to-accumulator function) -(define-extern matrix-from-control! function) -(define-extern matrix-from-control-channel! function) -(define-extern matrix-from-control-pair! function) -(define-extern matrix-from-joint-anim-frame function) -(define-extern create-interpolated-joint-animation-frame function) -(define-extern mem-size function) -(define-extern jacc-mem-usage function) -(define-extern joint-anim-inspect-elt function) -(define-extern joint-anim-login function) -(define-extern joint-control-channel-eval function) -(define-extern joint-control-channel-eval! function) -(define-extern joint-control-channel-group-eval! function) -(define-extern joint-control-channel-group! function) -(define-extern joint-control-copy! function) -(define-extern joint-control-remap! function) -(define-extern cspace<-cspace! function) -(define-extern cspace<-rot-yxy! function) -(define-extern cspace<-transform-yxy! function) -(define-extern cspace<-transformq+trans! function) -(define-extern cspace<-transformq+world-trans! function) -(define-extern cspace-calc-total-matrix! function) -(define-extern cspace<-matrix-no-push-joint! function) -(define-extern cspace<-matrix-joint! function) -(define-extern cspace<-parented-matrix-joint! function) +(define-extern flatten-joint-control-to-spr (function joint-control int)) +(define-extern make-joint-jump-tables (function int)) +(define-extern calc-animation-from-spr (function joint-control int int)) +(define-extern decompress-fixed-data-to-accumulator (function none)) +(define-extern decompress-frame-data-to-accumulator (function none)) +(define-extern decompress-frame-data-pair-to-accumulator (function none)) +(define-extern matrix-from-control! (function matrix-stack joint matrix symbol matrix)) +(define-extern matrix-from-control-channel! (function matrix joint joint-control-channel matrix)) +(define-extern matrix-from-control-pair! (function matrix matrix joint matrix)) +(define-extern matrix-from-joint-anim-frame (function pointer int int matrix)) ;; ??? +(define-extern create-interpolated-joint-animation-frame (function joint-control int process-drawable int)) +(define-extern mem-size (function basic symbol int int)) +(define-extern jacc-mem-usage (function pointer memory-usage-block int int)) +(define-extern joint-anim-inspect-elt (function joint-anim float int)) +(define-extern joint-anim-login (function joint-anim-drawable joint-anim-drawable)) +(define-extern joint-control-channel-eval (function joint-control-channel float)) +(define-extern joint-control-channel-eval! (function joint-control-channel (function joint-control-channel float float float) float)) +(define-extern joint-control-channel-group-eval! (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int)) +(define-extern joint-control-channel-group! (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int)) +(define-extern joint-control-copy! (function joint-control joint-control joint-control)) +(define-extern joint-control-remap! (function joint-control art-group art-group pair int string object)) +(define-extern cspace<-cspace! (function cspace cspace matrix)) +(define-extern cspace<-rot-yxy! function) ;; unused +(define-extern cspace<-transform-yxy! function) ;; unused +(define-extern cspace<-transformq+trans! (function cspace transformq vector matrix)) +(define-extern cspace<-transformq+world-trans! (function cspace transformq vector matrix)) +(define-extern cspace-calc-total-matrix! (function cspace matrix matrix)) +(define-extern cspace<-matrix-no-push-joint! (function cspace matrix matrix)) +(define-extern cspace<-matrix-joint! (function cspace matrix matrix)) +(define-extern cspace<-parented-matrix-joint! (function cspace matrix matrix)) (define-extern clear-frame-accumulator function) (define-extern normalize-frame-quaternions function) diff --git a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc index ed2229a339..81f64ef386 100644 --- a/decompiler/config/jak1_ntsc_black_label/label_types.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/label_types.jsonc @@ -548,6 +548,11 @@ "vol-h": [ ["L13", "float", true] ], + + "joint": [ + ["L330", "float", true], + ["L329", "float", true] + ], "assert-h": [ ["L4", "__assert-info-private-struct", true] diff --git a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc index 88c0f96085..9d798c845b 100644 --- a/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc +++ b/decompiler/config/jak1_ntsc_black_label/type_casts.jsonc @@ -609,6 +609,12 @@ [22, "f0", "float"], [28, "f0", "float"] ], + + "joint-anim-inspect-elt": [ + [9, "gp", "joint-anim-matrix"], + [26, "gp", "joint-anim-transformq"] + ], + "(method 12 art-group)": [[13, "a0", "art-joint-anim"]], "(method 0 path-control)": [ [15, "t9", "(function string none)"], diff --git a/goal_src/engine/anim/joint-h.gc b/goal_src/engine/anim/joint-h.gc index 088ee072bd..e7d5bd8dee 100644 --- a/goal_src/engine/anim/joint-h.gc +++ b/goal_src/engine/anim/joint-h.gc @@ -7,59 +7,60 @@ (declare-type joint-control basic) (deftype joint-control-channel (structure) - ((parent joint-control :offset-assert 0) - (command basic :offset-assert 4) - (frame-interp float :offset-assert 8) - (frame-group art-joint-anim :offset-assert 12) - (frame-num float :offset-assert 16) - (num-func basic :offset-assert 20) - (param uint32 2 :offset-assert 24) - (group-sub-index int16 :offset-assert 32) - (group-size int16 :offset-assert 34) - (dist float :offset-assert 36) - (eval-time uint32 :offset-assert 40) - (inspector-amount float :offset-assert 44) + ((parent joint-control :offset-assert 0) + (command symbol :offset-assert 4) + (frame-interp float :offset-assert 8) + (frame-group art-joint-anim :offset-assert 12) + (frame-num float :offset-assert 16) + (num-func (function joint-control-channel float float float) :offset-assert 20) + (param float 2 :offset-assert 24) + (group-sub-index int16 :offset-assert 32) + (group-size int16 :offset-assert 34) + (dist float :offset-assert 36) ;; meters + (eval-time uint32 :offset-assert 40) + (inspector-amount float :offset-assert 44) ) :method-count-assert 10 :size-assert #x30 :flag-assert #xa00000030 (:methods - (dummy-9 () none 9) + (dummy-9 (_type_) _type_ 9) ) ) (deftype joint-control (basic) - ((status uint16 :offset-assert 4) - (allocated-length int16 :offset-assert 6) - (root-channel uint32 :offset 16) - (blend-index int32 :offset-assert 20) - (active-channels int32 :offset-assert 24) - (generate-frame-function basic :offset-assert 28) - (prebind-function basic :offset-assert 32) - (postbind-function basic :offset-assert 36) - (effect basic :offset-assert 40) - (channel joint-control-channel 3 :inline :offset-assert 48) - (frame-group0 basic :offset 60) - (frame-num0 float :offset 64) - (frame-interp0 float :offset 56) - (frame-group1 basic :offset 108) - (frame-num1 float :offset 112) - (frame-interp1 float :offset 104) - (frame-group2 basic :offset 156) - (frame-num2 float :offset 160) - (frame-interp2 float :offset 152) + ((status uint16 :offset-assert 4) + (allocated-length int16 :offset-assert 6) + (root-channel joint-control-channel :offset 16) + (blend-index int32 :offset-assert 20) + (active-channels int32 :offset-assert 24) + (generate-frame-function basic :offset-assert 28) + (prebind-function basic :offset-assert 32) + (postbind-function basic :offset-assert 36) + (effect basic :offset-assert 40) + (channel joint-control-channel 3 :inline :offset-assert 48) ;; actually dynamic? + (frame-group0 art-joint-anim :offset 60) + (frame-num0 float :offset 64) + (frame-interp0 float :offset 56) + (frame-group1 art-joint-anim :offset 108) + (frame-num1 float :offset 112) + (frame-interp1 float :offset 104) + (frame-group2 art-joint-anim :offset 156) + (frame-num2 float :offset 160) + (frame-interp2 float :offset 152) ) :method-count-assert 11 :size-assert #xc0 :flag-assert #xb000000c0 (:methods + (new (symbol type int) _type_ 0) (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-10 (_type_ symbol) int 10) ) ) (deftype matrix-stack (structure) - ((top matrix :offset-assert 0) + ((top matrix :offset-assert 0) (data matrix 24 :inline :offset-assert 16) ) :method-count-assert 9 @@ -82,18 +83,20 @@ ) (deftype joint-work (structure) - ((temp-mtx matrix :inline :offset-assert 0) - (joint-stack matrix-stack :inline :offset-assert 64) - (fix-jmp-table uint32 16 :offset-assert 1616) - (frm-jmp-table uint32 16 :offset-assert 1680) - (pair-jmp-table uint32 16 :offset-assert 1744) - (uploads channel-upload-info 24 :inline :offset-assert 1808) - (num-uploads int32 :offset-assert 2384) - (mtx-acc matrix 2 :inline :offset-assert 2400) - (tq-acc transformq 100 :inline :offset-assert 2528) - (jacp-hdr joint-anim-compressed-hdr :inline :offset-assert 7328) - (fixed-data joint-anim-compressed-fixed :inline :offset-assert 7392) - (frame-data joint-anim-compressed-frame 2 :inline :offset-assert 9600) + ((temp-mtx matrix :inline :offset-assert 0) + (joint-stack matrix-stack :inline :offset-assert 64) + (fix-jmp-table (function none) 16 :offset-assert 1616) + (frm-jmp-table (function none) 16 :offset-assert 1680) + (pair-jmp-table (function none) 16 :offset-assert 1744) + (uploads channel-upload-info 24 :inline :offset-assert 1808) + (num-uploads int32 :offset-assert 2384) + (mtx-acc matrix 2 :inline :offset-assert 2400) + (tq-acc transformq 100 :inline :offset-assert 2528) + (jacp-hdr joint-anim-compressed-hdr :inline :offset-assert 7328) + (fixed-data joint-anim-compressed-fixed :inline :offset-assert 7392) + (frame-data joint-anim-compressed-frame 2 :inline :offset-assert 9600) + ;(flatten-array UNKNOWN 576 :offset-assert 2400) no clue! + ;(flattened UNKNOWN 24 :offset-assert 2400) no clue! ) :method-count-assert 9 :size-assert #x3640 diff --git a/goal_src/engine/anim/mspace-h.gc b/goal_src/engine/anim/mspace-h.gc index 3b80b7d4fe..ad8aa210ad 100644 --- a/goal_src/engine/anim/mspace-h.gc +++ b/goal_src/engine/anim/mspace-h.gc @@ -47,21 +47,22 @@ (set! (-> skeleton heap-base) 96) (deftype cspace (structure) - ((parent cspace :offset-assert 0) - (joint joint :offset-assert 4) - (joint-num int16 :offset-assert 8) - (geo basic :offset-assert 12) - (bone bone :offset-assert 16) - (param0 basic :offset-assert 20) - (param1 basic :offset-assert 24) - (param2 basic :offset-assert 28) + ((parent cspace :offset-assert 0) + (joint joint :offset-assert 4) + (joint-num int16 :offset-assert 8) + (geo basic :offset-assert 12) + (bone bone :offset-assert 16) + (param0 function :offset-assert 20) + (param1 basic :offset-assert 24) + (param2 basic :offset-assert 28) ) :method-count-assert 10 :size-assert #x20 :flag-assert #xa00000020 ;; params are loaded with signed loads. (:methods - (dummy-9 () none 9) + (new (symbol type basic) _type_ 0) + (dummy-9 (_type_ basic) _type_ 9) ) ) diff --git a/goal_src/engine/data/art-h.gc b/goal_src/engine/data/art-h.gc index 54f6e95ac3..1be78f3991 100644 --- a/goal_src/engine/data/art-h.gc +++ b/goal_src/engine/data/art-h.gc @@ -6,7 +6,7 @@ ;; dgos: GAME, ENGINE (deftype joint-anim (basic) - ((name basic :offset-assert 4) + ((name string :offset-assert 4) (number int16 :offset-assert 8) (length int16 :offset-assert 10) ) @@ -16,32 +16,33 @@ ) (deftype joint-anim-matrix (joint-anim) - ((matrix matrix :offset-assert 12)) ;; guess - ;; inspect in joint + ((data matrix :inline :dynamic :offset 16) + ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) (deftype joint-anim-transformq (joint-anim) - ((transformq transformq :offset-assert 12)) ;; guess - ;; inspect in joint + ((data transformq :inline :dynamic :offset 16) + ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 - ;; too many basic blocks ) (deftype joint-anim-drawable (joint-anim) - ((data uint32 :inline :dynamic :offset-assert 12) ;; guess + ((data drawable :dynamic :offset-assert 12) ;; guess ) :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c ) +(declare-type joint-anim-compressed-hdr structure) (deftype joint-anim-compressed (joint-anim) - () + ((data joint-anim-compressed-hdr :dynamic :offset-assert 12) ;; guess + ) :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c @@ -117,19 +118,21 @@ :flag-assert #x900000014 ) +(declare-type art-element basic) +(declare-type entity basic) (deftype art (basic) - ((name basic :offset 8) - (length int32 :offset-assert 12) - (extra basic :offset-assert 16) + ((name string :offset 8) + (length int32 :offset-assert 12) + (extra entity :offset-assert 16) ) :method-count-assert 13 :size-assert #x14 :flag-assert #xd00000014 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) + (dummy-9 (_type_) _type_ 9) + (dummy-10 (_type_ string type) art-element 10) + (dummy-11 (_type_ string type) int 11) + (dummy-12 (_type_) symbol 12) ) ) @@ -139,10 +142,10 @@ :size-assert #x20 :flag-assert #xd00000020 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) + (dummy-9 (_type_) _type_ 9) + (dummy-10 (_type_ string type) art-element 10) + (dummy-11 (_type_ string type) int 11) + (dummy-12 (_type_) symbol 12) ) ) @@ -155,22 +158,23 @@ (deftype art-joint-anim (art-element) ;; figured out manually from custom inspect. - ((speed float :offset 20) + ((_unknown (pointer int16) :offset 4) ;; no clue. used in mem-usage + (speed float :offset 20) (artist-base float :offset 24) (artist-step float :offset 28) - (master-art-group-name basic :offset 32) + (master-art-group-name string :offset 32) (master-art-group-index int32 :offset 36) (frames pointer :offset 44) (data joint-anim-compressed :dynamic) ) - ;; inspect in joint :method-count-assert 13 :size-assert #x30 :flag-assert #xd00000030 ) (deftype art-group (art) - ((pad2 uint8 12 :offset-assert 20) + ((info file-info :offset 4) + (data art-element :dynamic :offset 32) ) :method-count-assert 15 :size-assert #x20 @@ -182,14 +186,16 @@ ) (deftype art-mesh-geo (art-element) - () + ((data basic :dynamic :offset-assert 32) + ) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 ) (deftype art-joint-geo (art-element) - () + ((data joint :dynamic :offset-assert 32) + ) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 @@ -250,7 +256,7 @@ (global-effect uint8 :offset-assert 7) (art-group art-group :offset-assert 8) (jgeo art-joint-geo :offset-assert 12) - (mgeo art-mesh-geo :offset-assert 16) + (mgeo merc-ctrl :offset-assert 16) (dma-add-func function :offset-assert 20) (skeleton skeleton-group :offset-assert 24) (lod-set lod-set :inline :offset-assert 28) diff --git a/goal_src/engine/debug/memory-usage-h.gc b/goal_src/engine/debug/memory-usage-h.gc index 27daa54d33..9f8ee8a2c5 100644 --- a/goal_src/engine/debug/memory-usage-h.gc +++ b/goal_src/engine/debug/memory-usage-h.gc @@ -6,7 +6,7 @@ ;; dgos: GAME, ENGINE (deftype memory-usage-info (structure) - ((name basic :offset-assert 0) + ((name string :offset-assert 0) (count int32 :offset-assert 4) (used int32 :offset-assert 8) (total int32 :offset-assert 12) diff --git a/goal_src/engine/game/game-h.gc b/goal_src/engine/game/game-h.gc index 909fc8c21c..c98bce9fb9 100644 --- a/goal_src/engine/game/game-h.gc +++ b/goal_src/engine/game/game-h.gc @@ -6,22 +6,23 @@ ;; dgos: GAME, ENGINE +(declare-type water-control basic) (deftype process-drawable (process) - ((root trsqv :offset-assert 112) - (node-list cspace-array :offset-assert 116) - (draw draw-control :offset-assert 120) - (skel basic :offset-assert 124) - (nav basic :offset-assert 128) - (align basic :offset-assert 132) - (path basic :offset-assert 136) - (vol basic :offset-assert 140) - (fact basic :offset-assert 144) - (link basic :offset-assert 148) - (part basic :offset-assert 152) - (water basic :offset-assert 156) - (sound basic :offset-assert 160) - (state-flags uint32 :offset-assert 164) - (state-time uint64 :offset-assert 168) + ((root trsqv :offset-assert 112) + (node-list cspace-array :offset-assert 116) + (draw draw-control :offset-assert 120) + (skel joint-control :offset-assert 124) + (nav basic :offset-assert 128) + (align align-control :offset-assert 132) + (path basic :offset-assert 136) + (vol basic :offset-assert 140) + (fact fact-info :offset-assert 144) + (link basic :offset-assert 148) + (part basic :offset-assert 152) + (water water-control :offset-assert 156) + (sound ambient-sound :offset-assert 160) + (state-flags uint32 :offset-assert 164) + (state-time uint64 :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 diff --git a/goal_src/engine/gfx/merc/merc-h.gc b/goal_src/engine/gfx/merc/merc-h.gc index 551086c136..bd750d92d7 100644 --- a/goal_src/engine/gfx/merc/merc-h.gc +++ b/goal_src/engine/gfx/merc/merc-h.gc @@ -290,12 +290,6 @@ :method-count-assert 13 :size-assert #x70 :flag-assert #xd00000070 - (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) - ) ) (deftype merc-vu1-low-mem (structure) diff --git a/goal_src/engine/level/level-h.gc b/goal_src/engine/level/level-h.gc index 12e151577a..cb507a58f4 100644 --- a/goal_src/engine/level/level-h.gc +++ b/goal_src/engine/level/level-h.gc @@ -122,6 +122,7 @@ ) (declare-type bsp-header basic) +(declare-type art-group basic) ;; Per level-buffer info about the current loaded level. (deftype level (basic) ((name basic :offset-assert 4) @@ -132,18 +133,22 @@ (other basic :offset-assert 24) (heap kheap :inline :offset-assert 32) (bsp bsp-header :offset-assert 48) - (art-group basic :offset-assert 52) + (art-group art-group :offset-assert 52) (info basic :offset-assert 56) (texture-page texture-page 9 :offset-assert 60) - (loaded-texture-page basic 16 :offset-assert 96) + (loaded-texture-page basic 16 :offset-assert 96) (loaded-texture-page-count int32 :offset-assert 160) - (foreground-sink-group dma-foreground-sink-group 3 :inline :offset-assert 176) ;; inline basic, todo check stride. - (foreground-draw-engine basic 3 :offset-assert 272) + ; (foreground-sink-group-0 dma-foreground-sink-group :inline :offset-assert 176) + ; (foreground-sink-group-1 dma-foreground-sink-group :inline :offset-assert 208) + ; (foreground-sink-group-2 dma-foreground-sink-group :inline :offset-assert 240) + ; (array-pad uint8 12) + (foreground-sink-group dma-foreground-sink-group 3 :inline :offset-assert 176) ;; inline basic + (foreground-draw-engine basic 3 :offset-assert 272) (entity basic :offset-assert 284) (ambient basic :offset-assert 288) - (closest-object float 9 :offset-assert 292) - (upload-size int32 9 :offset-assert 328) - (level-distance float :offset-assert 364) ; meters + (closest-object float 9 :offset-assert 292) + (upload-size int32 9 :offset-assert 328) + (level-distance float :offset-assert 364) ; meters (inside-sphere? basic :offset-assert 368) (inside-boxes? basic :offset-assert 372) (display? basic :offset-assert 376) @@ -157,12 +162,12 @@ (vis-info level-vis-info 8 :offset-assert 408) (vis-self-index int32 :offset-assert 440) (vis-adj-index int32 :offset-assert 444) - (vis-buffer uint8 2048 :offset-assert 448) + (vis-buffer uint8 2048 :offset-assert 448) (mem-usage-block basic :offset-assert 2496) (mem-usage int32 :offset-assert 2500) (code-memory-start uint32 :offset-assert 2504) (code-memory-end uint32 :offset-assert 2508) - (texture-mask uint32 9 :offset-assert 2512) + (texture-mask uint32 9 :offset-assert 2512) (force-inside? basic :offset-assert 2548) (pad uint8 56) ) diff --git a/goal_src/engine/sound/gsound.gc b/goal_src/engine/sound/gsound.gc index 1146fbb8e3..e7612d1f0a 100644 --- a/goal_src/engine/sound/gsound.gc +++ b/goal_src/engine/sound/gsound.gc @@ -6,8 +6,8 @@ ;; dgos: GAME, ENGINE -(define *sound-player-rpc* (new 'global 'rpc-buffer-pair (the-as uint 80) (the-as uint 128) RPC-SOUND-PLAYER)) -(define *sound-loader-rpc* (new 'global 'rpc-buffer-pair (the-as uint 80) (the-as uint 1) RPC-SOUND-LOADER)) +(define *sound-player-rpc* (new 'global 'rpc-buffer-pair (the uint (size-of sound-rpc-union)) (the-as uint 128) RPC-SOUND-PLAYER)) +(define *sound-loader-rpc* (new 'global 'rpc-buffer-pair (the uint (size-of sound-rpc-union)) (the-as uint 1) RPC-SOUND-LOADER)) (defun sound-name= ((arg0 sound-name) (arg1 sound-name)) "Return #t if both are the same name" @@ -87,7 +87,7 @@ (let ((cmd (the sound-rpc-get-irx-version (add-element *sound-loader-rpc*)))) (set! (-> cmd command) (sound-command get-irx-version)) (set! (-> cmd ee-addr) (&-> *sound-iop-info* frame)) - (call *sound-loader-rpc* (the-as uint 0) (the-as pointer cmd) (the-as uint 80)) + (call *sound-loader-rpc* (the-as uint 0) (the-as pointer cmd) (the uint (size-of sound-rpc-union))) (sync *sound-loader-rpc* #f) (format 0 "IRX version ~D.~D~%" (-> cmd major) (-> cmd minor)) @@ -529,10 +529,10 @@ (set! name (string->sound-name (symbol->string bc))) (set! sound-times (res-lump-data (the entity src) 'cycle-speed (pointer float))) (set! spec *ambient-spec*) - (let ((sv-64 (new 'static 'res-tag))) - (swhen (res-lump-data-exact (the entity src) 'effect-param sound-play-parms :tag-ptr (& sv-64)) + (let ((tag (new 'static 'res-tag))) + (swhen (res-lump-data-exact (the entity src) 'effect-param sound-play-parms :tag-ptr (& tag)) (set! params bc) - (set! param-count (the int (-> sv-64 elt-count))) + (set! param-count (the int (-> tag elt-count))) ) ) ) @@ -634,7 +634,7 @@ (-> pp name) (-> spec sound-name-char)) (format #t "volume: ~f pitch-mod: ~f~%" - (* 0.09765625 (the float (-> spec volume))) + (* (1/ 10.24) (the float (-> spec volume))) (* 0.000656168 (the float (-> spec pitch-mod)))) ) ) diff --git a/scripts/batch/test-offline-and-update.bat b/scripts/batch/test-offline-and-update.bat new file mode 100644 index 0000000000..da477fac36 --- /dev/null +++ b/scripts/batch/test-offline-and-update.bat @@ -0,0 +1,6 @@ +@echo off +cd ..\.. +out\build\Release\bin\offline-test --dump-mode iso_data\jak1\ +scripts\update_decomp_reference.py failures\ test\decompiler\reference\ +RMDIR /Q/S failures +pause \ No newline at end of file diff --git a/scripts/batch/test-offline.bat b/scripts/batch/test-offline.bat index 5f11e8525a..50f3ed8978 100644 --- a/scripts/batch/test-offline.bat +++ b/scripts/batch/test-offline.bat @@ -1,4 +1,4 @@ @echo off cd ..\.. -out\build\Release\bin\offline-test iso_data\jak1\ +out\build\Release\bin\offline-test --dump-mode iso_data\jak1\ pause \ No newline at end of file diff --git a/test/decompiler/reference/all_forward_declarations.gc b/test/decompiler/reference/all_forward_declarations.gc index cac6abba5b..ab033cca9f 100644 --- a/test/decompiler/reference/all_forward_declarations.gc +++ b/test/decompiler/reference/all_forward_declarations.gc @@ -1061,6 +1061,11 @@ ) ) (define-extern *progress-process* (pointer progress)) + +(declare-type art-element basic) +(declare-type water-control basic) +(declare-type joint-anim-compressed-hdr structure) + (define-extern entity-by-name (function string entity)) (define-extern entity-by-aid (function uint entity)) diff --git a/test/decompiler/reference/engine/anim/joint-h_REF.gc b/test/decompiler/reference/engine/anim/joint-h_REF.gc index 7c654b47e2..e2b2798b98 100644 --- a/test/decompiler/reference/engine/anim/joint-h_REF.gc +++ b/test/decompiler/reference/engine/anim/joint-h_REF.gc @@ -3,24 +3,24 @@ ;; definition of type joint-control-channel (deftype joint-control-channel (structure) - ((parent joint-control :offset-assert 0) - (command basic :offset-assert 4) - (frame-interp float :offset-assert 8) - (frame-group art-joint-anim :offset-assert 12) - (frame-num float :offset-assert 16) - (num-func basic :offset-assert 20) - (param uint32 2 :offset-assert 24) - (group-sub-index int16 :offset-assert 32) - (group-size int16 :offset-assert 34) - (dist float :offset-assert 36) - (eval-time uint32 :offset-assert 40) - (inspector-amount float :offset-assert 44) + ((parent joint-control :offset-assert 0) + (command symbol :offset-assert 4) + (frame-interp float :offset-assert 8) + (frame-group art-joint-anim :offset-assert 12) + (frame-num float :offset-assert 16) + (num-func (function joint-control-channel float float float) :offset-assert 20) + (param float 2 :offset-assert 24) + (group-sub-index int16 :offset-assert 32) + (group-size int16 :offset-assert 34) + (dist float :offset-assert 36) + (eval-time uint32 :offset-assert 40) + (inspector-amount float :offset-assert 44) ) :method-count-assert 10 :size-assert #x30 :flag-assert #xa00000030 (:methods - (dummy-9 () none 9) + (dummy-9 (_type_) _type_ 9) ) ) @@ -46,7 +46,7 @@ (deftype joint-control (basic) ((status uint16 :offset-assert 4) (allocated-length int16 :offset-assert 6) - (root-channel uint32 :offset 16) + (root-channel joint-control-channel :offset 16) (blend-index int32 :offset-assert 20) (active-channels int32 :offset-assert 24) (generate-frame-function basic :offset-assert 28) @@ -54,13 +54,13 @@ (postbind-function basic :offset-assert 36) (effect basic :offset-assert 40) (channel joint-control-channel 3 :inline :offset-assert 48) - (frame-group0 basic :offset 60) + (frame-group0 art-joint-anim :offset 60) (frame-num0 float :offset 64) (frame-interp0 float :offset 56) - (frame-group1 basic :offset 108) + (frame-group1 art-joint-anim :offset 108) (frame-num1 float :offset 112) (frame-interp1 float :offset 104) - (frame-group2 basic :offset 156) + (frame-group2 art-joint-anim :offset 156) (frame-num2 float :offset 160) (frame-interp2 float :offset 152) ) @@ -68,8 +68,9 @@ :size-assert #xc0 :flag-assert #xb000000c0 (:methods + (new (symbol type int) _type_ 0) (dummy-9 () none 9) - (dummy-10 () none 10) + (dummy-10 (_type_ symbol) int 10) ) ) @@ -147,9 +148,9 @@ (deftype joint-work (structure) ((temp-mtx matrix :inline :offset-assert 0) (joint-stack matrix-stack :inline :offset-assert 64) - (fix-jmp-table uint32 16 :offset-assert 1616) - (frm-jmp-table uint32 16 :offset-assert 1680) - (pair-jmp-table uint32 16 :offset-assert 1744) + (fix-jmp-table (function none) 16 :offset-assert 1616) + (frm-jmp-table (function none) 16 :offset-assert 1680) + (pair-jmp-table (function none) 16 :offset-assert 1744) (uploads channel-upload-info 24 :inline :offset-assert 1808) (num-uploads int32 :offset-assert 2384) (mtx-acc matrix 2 :inline :offset-assert 2400) diff --git a/test/decompiler/reference/engine/anim/mspace-h_REF.gc b/test/decompiler/reference/engine/anim/mspace-h_REF.gc index 72500450a1..e342d2e469 100644 --- a/test/decompiler/reference/engine/anim/mspace-h_REF.gc +++ b/test/decompiler/reference/engine/anim/mspace-h_REF.gc @@ -89,20 +89,21 @@ ;; definition of type cspace (deftype cspace (structure) - ((parent cspace :offset-assert 0) - (joint joint :offset-assert 4) - (joint-num int16 :offset-assert 8) - (geo basic :offset-assert 12) - (bone bone :offset-assert 16) - (param0 basic :offset-assert 20) - (param1 basic :offset-assert 24) - (param2 basic :offset-assert 28) + ((parent cspace :offset-assert 0) + (joint joint :offset-assert 4) + (joint-num int16 :offset-assert 8) + (geo basic :offset-assert 12) + (bone bone :offset-assert 16) + (param0 function :offset-assert 20) + (param1 basic :offset-assert 24) + (param2 basic :offset-assert 28) ) :method-count-assert 10 :size-assert #x20 :flag-assert #xa00000020 (:methods - (dummy-9 () none 9) + (new (symbol type basic) _type_ 0) + (dummy-9 (_type_ basic) _type_ 9) ) ) diff --git a/test/decompiler/reference/engine/data/art-h_REF.gc b/test/decompiler/reference/engine/data/art-h_REF.gc index 4d15697306..058e7618d9 100644 --- a/test/decompiler/reference/engine/data/art-h_REF.gc +++ b/test/decompiler/reference/engine/data/art-h_REF.gc @@ -3,9 +3,9 @@ ;; definition of type joint-anim (deftype joint-anim (basic) - ((name basic :offset-assert 4) - (number int16 :offset-assert 8) - (length int16 :offset-assert 10) + ((name string :offset-assert 4) + (number int16 :offset-assert 8) + (length int16 :offset-assert 10) ) :method-count-assert 9 :size-assert #xc @@ -23,7 +23,7 @@ ;; definition of type joint-anim-matrix (deftype joint-anim-matrix (joint-anim) - ((matrix matrix :offset-assert 12) + ((data matrix :inline :dynamic :offset 16) ) :method-count-assert 9 :size-assert #x10 @@ -32,7 +32,7 @@ ;; definition of type joint-anim-transformq (deftype joint-anim-transformq (joint-anim) - ((transformq transformq :offset-assert 12) + ((data transformq :inline :dynamic :offset 16) ) :method-count-assert 9 :size-assert #x10 @@ -41,7 +41,7 @@ ;; definition of type joint-anim-drawable (deftype joint-anim-drawable (joint-anim) - ((data uint32 :inline :dynamic :offset-assert 12) + ((data drawable :dynamic :offset-assert 12) ) :method-count-assert 9 :size-assert #xc @@ -60,7 +60,8 @@ ;; definition of type joint-anim-compressed (deftype joint-anim-compressed (joint-anim) - () + ((data joint-anim-compressed-hdr :dynamic :offset-assert 12) + ) :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c @@ -219,18 +220,18 @@ ;; definition of type art (deftype art (basic) - ((name basic :offset 8) - (length int32 :offset-assert 12) - (extra basic :offset-assert 16) + ((name string :offset 8) + (length int32 :offset-assert 12) + (extra entity :offset-assert 16) ) :method-count-assert 13 :size-assert #x14 :flag-assert #xd00000014 (:methods - (dummy-9 () none 9) - (dummy-10 () none 10) - (dummy-11 () none 11) - (dummy-12 () none 12) + (dummy-9 (_type_) _type_ 9) + (dummy-10 (_type_ string type) art-element 10) + (dummy-11 (_type_ string type) int 11) + (dummy-12 (_type_) symbol 12) ) ) @@ -271,10 +272,11 @@ ;; definition of type art-joint-anim (deftype art-joint-anim (art-element) - ((speed float :offset 20) + ((_unknown (pointer int16) :offset 4) + (speed float :offset 20) (artist-base float :offset 24) (artist-step float :offset 28) - (master-art-group-name basic :offset 32) + (master-art-group-name string :offset 32) (master-art-group-index int32 :offset 36) (frames pointer :offset 44) (data joint-anim-compressed :dynamic :offset-assert 48) @@ -286,7 +288,8 @@ ;; definition of type art-group (deftype art-group (art) - ((pad2 uint8 12 :offset-assert 20) + ((info file-info :offset 4) + (data art-element :dynamic :offset 32) ) :method-count-assert 15 :size-assert #x20 @@ -299,7 +302,8 @@ ;; definition of type art-mesh-geo (deftype art-mesh-geo (art-element) - () + ((data basic :dynamic :offset-assert 32) + ) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 @@ -307,7 +311,8 @@ ;; definition of type art-joint-geo (deftype art-joint-geo (art-element) - () + ((data joint :dynamic :offset-assert 32) + ) :method-count-assert 13 :size-assert #x20 :flag-assert #xd00000020 @@ -403,7 +408,7 @@ (global-effect uint8 :offset-assert 7) (art-group art-group :offset-assert 8) (jgeo art-joint-geo :offset-assert 12) - (mgeo art-mesh-geo :offset-assert 16) + (mgeo merc-ctrl :offset-assert 16) (dma-add-func function :offset-assert 20) (skeleton skeleton-group :offset-assert 24) (lod-set lod-set :inline :offset-assert 28) diff --git a/test/decompiler/reference/engine/debug/memory-usage-h_REF.gc b/test/decompiler/reference/engine/debug/memory-usage-h_REF.gc index 6a1ec0f50a..3206ad3e2f 100644 --- a/test/decompiler/reference/engine/debug/memory-usage-h_REF.gc +++ b/test/decompiler/reference/engine/debug/memory-usage-h_REF.gc @@ -5,10 +5,10 @@ (when *debug-segment* ;; definition of type memory-usage-info (deftype memory-usage-info (structure) - ((name basic :offset-assert 0) - (count int32 :offset-assert 4) - (used int32 :offset-assert 8) - (total int32 :offset-assert 12) + ((name string :offset-assert 0) + (count int32 :offset-assert 4) + (used int32 :offset-assert 8) + (total int32 :offset-assert 12) ) :method-count-assert 9 :size-assert #x10 diff --git a/test/decompiler/reference/engine/game/effect-control-h_REF.gc b/test/decompiler/reference/engine/game/effect-control-h_REF.gc index c3bbf0a4f9..a76028077e 100644 --- a/test/decompiler/reference/engine/game/effect-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/effect-control-h_REF.gc @@ -47,7 +47,7 @@ ((allocation symbol) (type-to-make type) (arg0 process-drawable)) (cond (((method-of-type res-lump get-property-struct) - (the-as res-lump (-> arg0 draw jgeo extra)) + (-> arg0 draw jgeo extra) 'effect-name 'interp -1000000000.0 diff --git a/test/decompiler/reference/engine/game/game-h_REF.gc b/test/decompiler/reference/engine/game/game-h_REF.gc index 17a6468da7..f75ab908a8 100644 --- a/test/decompiler/reference/engine/game/game-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-h_REF.gc @@ -3,21 +3,21 @@ ;; definition of type process-drawable (deftype process-drawable (process) - ((root trsqv :offset-assert 112) - (node-list cspace-array :offset-assert 116) - (draw draw-control :offset-assert 120) - (skel basic :offset-assert 124) - (nav basic :offset-assert 128) - (align basic :offset-assert 132) - (path basic :offset-assert 136) - (vol basic :offset-assert 140) - (fact basic :offset-assert 144) - (link basic :offset-assert 148) - (part basic :offset-assert 152) - (water basic :offset-assert 156) - (sound basic :offset-assert 160) - (state-flags uint32 :offset-assert 164) - (state-time uint64 :offset-assert 168) + ((root trsqv :offset-assert 112) + (node-list cspace-array :offset-assert 116) + (draw draw-control :offset-assert 120) + (skel joint-control :offset-assert 124) + (nav basic :offset-assert 128) + (align align-control :offset-assert 132) + (path basic :offset-assert 136) + (vol basic :offset-assert 140) + (fact fact-info :offset-assert 144) + (link basic :offset-assert 148) + (part basic :offset-assert 152) + (water water-control :offset-assert 156) + (sound ambient-sound :offset-assert 160) + (state-flags uint32 :offset-assert 164) + (state-time uint64 :offset-assert 168) ) :heap-base #x40 :method-count-assert 20 diff --git a/test/decompiler/reference/engine/level/level-h_REF.gc b/test/decompiler/reference/engine/level/level-h_REF.gc index b071e0a6dd..e64cc550df 100644 --- a/test/decompiler/reference/engine/level/level-h_REF.gc +++ b/test/decompiler/reference/engine/level/level-h_REF.gc @@ -147,7 +147,7 @@ (other basic :offset-assert 24) (heap kheap :inline :offset-assert 32) (bsp bsp-header :offset-assert 48) - (art-group basic :offset-assert 52) + (art-group art-group :offset-assert 52) (info basic :offset-assert 56) (texture-page texture-page 9 :offset-assert 60) (loaded-texture-page basic 16 :offset-assert 96)