;;-*-Lisp-*- (in-package goal) ;; definition for symbol mercneric-vu0-block, type vu-function (define mercneric-vu0-block (new 'static 'vu-function :length #xbe :origin #x118 :qlength 95)) ;; definition of type invinitdata (deftype invinitdata (structure) ((count uint8 :offset-assert 0) (init-data uint8 :offset-assert 1) (init-addr uint16 :offset-assert 2) ) :pack-me :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 ) ;; definition for method 3 of type invinitdata (defmethod inspect invinitdata ((obj invinitdata)) (format #t "[~8x] ~A~%" obj 'invinitdata) (format #t "~Tcount: ~D~%" (-> obj count)) (format #t "~Tinit-data: ~D~%" (-> obj init-data)) (format #t "~Tinit-addr: ~D~%" (-> obj init-addr)) obj ) ;; definition for symbol *inv-init-table*, type (inline-array invinitdata) (define *inv-init-table* (new 'static 'inline-array invinitdata 8 (new 'static 'invinitdata :count #x48 :init-addr #x1) (new 'static 'invinitdata :count #x43 :init-data #xc :init-addr #x11) (new 'static 'invinitdata :count #x3d :init-data #x18 :init-addr #x21) (new 'static 'invinitdata :count #x38 :init-data #x22 :init-addr #xe0) (new 'static 'invinitdata :count #x38 :init-data #x24 :init-addr #xe1) (new 'static 'invinitdata :count #x33 :init-data #x30 :init-addr #xf1) (new 'static 'invinitdata :count #x2e :init-data #x3a :init-addr #x190) (new 'static 'invinitdata :count #x2d :init-data #x3c :init-addr #x191) ) ) ;; definition for function generic-merc-init-asm ;; ERROR: function was not converted to expressions. Cannot decompile. ;; definition for function mercneric-matrix-asm ;; ERROR: function was not converted to expressions. Cannot decompile. ;; definition for function mercneric-shader-asm ;; ERROR: function was not converted to expressions. Cannot decompile. ;; definition for function mercneric-bittable-asm ;; ERROR: function was not converted to expressions. Cannot decompile. ;; definition for function mercneric-convert ;; ERROR: function was not converted to expressions. Cannot decompile. ;; definition for function high-speed-reject ;; ERROR: function was not converted to expressions. Cannot decompile. ;; definition for function generic-merc-execute-asm ;; ERROR: function was not converted to expressions. Cannot decompile. ;; definition for function generic-merc-add-to-cue ;; INFO: Return type mismatch merc-globals vs none. (defun generic-merc-add-to-cue ((arg0 generic-dma-foreground-sink)) (set! (-> *merc-globals* sink) arg0) (+! (-> *merc-global-array* count) 1) (set! *merc-globals* (-> *merc-global-array* globals (-> *merc-global-array* count))) (none) ) ;; definition for function generic-merc-execute-all ;; INFO: Return type mismatch profile-frame vs none. ;; WARN: Unsupported inline assembly instruction kind - [mtc0 Perf, r0] ;; WARN: Unsupported inline assembly instruction kind - [sync.l] ;; WARN: Unsupported inline assembly instruction kind - [sync.p] ;; WARN: Unsupported inline assembly instruction kind - [mtpc pcr0, r0] ;; WARN: Unsupported inline assembly instruction kind - [mtpc pcr1, r0] ;; WARN: Unsupported inline assembly instruction kind - [sync.l] ;; WARN: Unsupported inline assembly instruction kind - [sync.p] ;; WARN: Unsupported inline assembly instruction kind - [mtc0 Perf, a0] ;; WARN: Unsupported inline assembly instruction kind - [sync.l] ;; WARN: Unsupported inline assembly instruction kind - [sync.p] ;; WARN: Unsupported inline assembly instruction kind - [mtc0 Perf, r0] ;; WARN: Unsupported inline assembly instruction kind - [sync.l] ;; WARN: Unsupported inline assembly instruction kind - [sync.p] ;; WARN: Unsupported inline assembly instruction kind - [mfpc a0, pcr0] ;; WARN: Unsupported inline assembly instruction kind - [mfpc a0, pcr1] ;; WARN: Unsupported inline assembly instruction kind - [sync.l] ;; WARN: Unsupported inline assembly instruction kind - [cache dxwbin v1, 0] ;; WARN: Unsupported inline assembly instruction kind - [sync.l] ;; WARN: Unsupported inline assembly instruction kind - [cache dxwbin v1, 1] ;; WARN: Unsupported inline assembly instruction kind - [sync.l] (defun generic-merc-execute-all ((arg0 dma-buffer)) (local-vars (a0-26 int) (a0-28 int)) (when (nonzero? (-> *merc-global-array* count)) (let ((gp-0 (-> *display* frames (-> *display* on-screen) frame global-buf base))) (if *debug-segment* (add-frame (-> *display* frames (-> *display* on-screen) frame profile-bar 0) 'draw (new 'static 'rgba :r #x40 :b #x40 :a #x80) ) ) (let* ((v1-15 (-> *perf-stats* data 1)) (a0-8 (-> v1-15 ctrl)) ) (+! (-> v1-15 count) 1) (b! (zero? a0-8) cfg-5 :delay (nop!)) (.mtc0 Perf r0) (.sync.l) (.sync.p) (.mtpc pcr0 r0) (.mtpc pcr1 r0) (.sync.l) (.sync.p) (.mtc0 Perf a0-8) ) (.sync.l) (.sync.p) (label cfg-5) 0 (set! (-> (the-as terrain-context #x70000000) work foreground joint-work joint-stack data 0 vector 0 y) (the-as float 0) ) (set! (-> (the-as terrain-context #x70000000) work foreground joint-work joint-stack data 0 vector 0 z) (the-as float 0) ) (set! (-> (the-as terrain-context #x70000000) work foreground joint-work joint-stack data 0 vector 0 w) (the-as float 0) ) (flush-cache 0) (generic-initialize-without-sink (-> *math-camera* perspective) *default-lights*) (generic-merc-init-asm) (set! (-> (the-as terrain-context #x70000000) work foreground joint-work tq-acc 99 trans x) (the-as float (&+ (-> arg0 end) -65536)) ) (dotimes (s4-0 (the-as int (-> *merc-global-array* count))) (set! *merc-globals* (-> *merc-global-array* globals s4-0)) (let ((s3-0 (-> *merc-globals* sink))) (when (nonzero? (-> *merc-globals* first)) (let* ((s1-0 (-> *display* frames (-> *display* on-screen) frame global-buf)) (s2-0 (-> s1-0 base)) ) (generic-work-init s3-0) (set! (-> (the-as terrain-context #x70000000) work foreground joint-work temp-mtx vector 3 w) (the-as float (-> s1-0 base)) ) (generic-merc-execute-asm) (set! (-> s1-0 base) (the-as pointer (-> (the-as terrain-context #x70000000) work foreground joint-work temp-mtx vector 3 w)) ) (let ((v1-36 (the-as object #x1000d000)) (a0-19 (the-as object #x7000006c)) ) (b! (zero? (logand (-> (the-as terrain-context v1-36) bsp lev-index) 256)) cfg-9 :delay (nop!)) (let ((a1-6 (-> (the-as generic-envmap-saves a0-19) index-mask x))) (nop!) (let ((a2-1 (-> (the-as (pointer int32) v1-36) 0))) (nop!) (let ((a2-2 (logand a2-1 256)) (a1-7 (+ a1-6 1)) ) (b! (nonzero? a2-2) cfg-8 :delay (s.w! (the-as int a0-19) a1-7)) ) ) ) ) (label cfg-9) 0 (let ((a3-0 (-> s1-0 base))) (let ((v1-38 (the-as object (-> s1-0 base)))) (set! (-> (the-as dma-packet v1-38) dma) (new 'static 'dma-tag :id (dma-tag-id next))) (set! (-> (the-as dma-packet v1-38) vif0) (new 'static 'vif-tag)) (set! (-> (the-as dma-packet v1-38) vif1) (new 'static 'vif-tag)) (set! (-> s1-0 base) (&+ (the-as pointer v1-38) 16)) ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) frame bucket-group) (-> s3-0 bucket) s2-0 (the-as (pointer dma-tag) a3-0) ) ) ) (let ((v1-44 (-> arg0 base))) (.sync.l) (.cache dxwbin v1-44 0) (.sync.l) (.cache dxwbin v1-44 1) ) (.sync.l) 0 ) ) ) (let ((v1-51 (-> *perf-stats* data 1))) (b! (zero? (-> v1-51 ctrl)) cfg-14 :delay (nop!)) (.mtc0 Perf r0) (.sync.l) (.sync.p) (.mfpc a0-26 pcr0) (+! (-> v1-51 accum0) a0-26) (.mfpc a0-28 pcr1) (+! (-> v1-51 accum1) a0-28) ) (label cfg-14) 0 (update-wait-stats (-> *perf-stats* data 1) (the-as uint (-> (the-as terrain-context #x70000000) work foreground joint-work joint-stack data 0 vector 0 y) ) (the-as uint (-> (the-as terrain-context #x70000000) work foreground joint-work joint-stack data 0 vector 0 z) ) (the-as uint (-> (the-as terrain-context #x70000000) work foreground joint-work joint-stack data 0 vector 0 w) ) ) (if *debug-segment* (add-frame (-> *display* frames (-> *display* on-screen) frame profile-bar 0) 'draw (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) ) ) (let ((v1-64 *dma-mem-usage*)) (when (nonzero? v1-64) (set! (-> v1-64 length) (max 87 (-> v1-64 length))) (set! (-> v1-64 data 86 name) "pris-generic") (+! (-> v1-64 data 86 count) 1) (+! (-> v1-64 data 86 used) (&- (-> *display* frames (-> *display* on-screen) frame global-buf base) (the-as uint gp-0)) ) (set! (-> v1-64 data 86 total) (-> v1-64 data 86 used)) ) ) ) ) (none) )