mirror of
https://github.com/open-goal/jak-project
synced 2026-08-05 01:30:22 -04:00
[jak3] A few early files (#3330)
types-h, vu1-macros, gsound-h, dma-h, video-h, vu1-user-h, profile-h The `gsound-h` is very simple, but the rest have decent docs and all the macros we had from jak 2. So far, barely any differences! (there's a few in gsound-h)
This commit is contained in:
+360
@@ -0,0 +1,360 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type dma-chcr
|
||||
(deftype dma-chcr (uint32)
|
||||
"Memory mapped DMA channel control register. Typically used to start and check on DMA transfer."
|
||||
((dir uint8 :offset 0 :size 1)
|
||||
(mod uint8 :offset 2 :size 2)
|
||||
(asp uint8 :offset 4 :size 2)
|
||||
(tte uint8 :offset 6 :size 1)
|
||||
(tie uint8 :offset 7 :size 1)
|
||||
(str uint8 :offset 8 :size 1)
|
||||
(tag uint16 :offset 16 :size 16)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type dma-chcr
|
||||
(defmethod inspect ((this dma-chcr))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'dma-chcr)
|
||||
(format #t "~1Tdir: ~D~%" (-> this dir))
|
||||
(format #t "~1Tmod: ~D~%" (-> this mod))
|
||||
(format #t "~1Tasp: ~D~%" (-> this asp))
|
||||
(format #t "~1Ttte: ~D~%" (-> this tte))
|
||||
(format #t "~1Ttie: ~D~%" (-> this tie))
|
||||
(format #t "~1Tstr: ~D~%" (-> this str))
|
||||
(format #t "~1Ttag: #x~X~%" (-> this tag))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type dma-bank
|
||||
(deftype dma-bank (structure)
|
||||
"Bank of memory mapped DMA registers for a single channel. Used to control DMA."
|
||||
((chcr dma-chcr :offset 0)
|
||||
(madr uint32 :offset 16)
|
||||
(qwc uint32 :offset 32)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type dma-bank
|
||||
(defmethod inspect ((this dma-bank))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'dma-bank)
|
||||
(format #t "~1Tchcr: #x~X~%" (-> this chcr))
|
||||
(format #t "~1Tmadr: #x~X~%" (-> this madr))
|
||||
(format #t "~1Tqwc: #x~X~%" (-> this qwc))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type dma-bank-source
|
||||
(deftype dma-bank-source (dma-bank)
|
||||
"DMA channel registers for a DMA channel supporting source-chain."
|
||||
((tadr uint32 :offset 48)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type dma-bank-source
|
||||
(defmethod inspect ((this dma-bank-source))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'dma-bank-source)
|
||||
(format #t "~1Tchcr: #x~X~%" (-> this chcr))
|
||||
(format #t "~1Tmadr: #x~X~%" (-> this madr))
|
||||
(format #t "~1Tqwc: #x~X~%" (-> this qwc))
|
||||
(format #t "~1Ttadr: #x~X~%" (-> this tadr))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type dma-bank-vif
|
||||
(deftype dma-bank-vif (dma-bank-source)
|
||||
"DMA channel registers for a DMA channel with call/ret stack."
|
||||
((as0 uint32 :offset 64)
|
||||
(as1 uint32 :offset 80)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type dma-bank-vif
|
||||
(defmethod inspect ((this dma-bank-vif))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'dma-bank-vif)
|
||||
(format #t "~1Tchcr: #x~X~%" (-> this chcr))
|
||||
(format #t "~1Tmadr: #x~X~%" (-> this madr))
|
||||
(format #t "~1Tqwc: #x~X~%" (-> this qwc))
|
||||
(format #t "~1Ttadr: #x~X~%" (-> this tadr))
|
||||
(format #t "~1Tas0: #x~X~%" (-> this as0))
|
||||
(format #t "~1Tas1: #x~X~%" (-> this as1))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type dma-bank-spr
|
||||
(deftype dma-bank-spr (dma-bank-source)
|
||||
"DMA channel registers for a DMA channel supporting scratchpad transfer."
|
||||
((sadr uint32 :offset 128)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type dma-bank-spr
|
||||
(defmethod inspect ((this dma-bank-spr))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'dma-bank-spr)
|
||||
(format #t "~1Tchcr: #x~X~%" (-> this chcr))
|
||||
(format #t "~1Tmadr: #x~X~%" (-> this madr))
|
||||
(format #t "~1Tqwc: #x~X~%" (-> this qwc))
|
||||
(format #t "~1Ttadr: #x~X~%" (-> this tadr))
|
||||
(format #t "~1Tsadr: #x~X~%" (-> this sadr))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type dma-ctrl
|
||||
(deftype dma-ctrl (uint32)
|
||||
"Main DMA control register, shared for all channels."
|
||||
((dmae uint8 :offset 0 :size 1)
|
||||
(rele uint8 :offset 1 :size 1)
|
||||
(mfd uint8 :offset 2 :size 2)
|
||||
(sts uint8 :offset 4 :size 2)
|
||||
(std uint8 :offset 6 :size 2)
|
||||
(rcyc uint8 :offset 8 :size 3)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type dma-enable
|
||||
(deftype dma-enable (uint32)
|
||||
((cpnd uint8 :offset 16 :size 1)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type dma-sqwc
|
||||
(deftype dma-sqwc (uint32)
|
||||
((sqwc uint8 :offset 0 :size 8)
|
||||
(tqwc uint8 :offset 16 :size 8)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type dma-bank-control
|
||||
(deftype dma-bank-control (structure)
|
||||
"Memory mapping for shared DMA registers."
|
||||
((ctrl dma-ctrl :offset 0)
|
||||
(stat uint32 :offset 16)
|
||||
(pcr uint32 :offset 32)
|
||||
(sqwc dma-sqwc :offset 48)
|
||||
(rbsr uint32 :offset 64)
|
||||
(rbor uint32 :offset 80)
|
||||
(stadr uint32 :offset 96)
|
||||
(enabler uint32 :offset 5408)
|
||||
(enablew uint32 :offset 5520)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type dma-bank-control
|
||||
(defmethod inspect ((this dma-bank-control))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'dma-bank-control)
|
||||
(format #t "~1Tctrl: #x~X~%" (-> this ctrl))
|
||||
(format #t "~1Tstat: #x~X~%" (-> this stat))
|
||||
(format #t "~1Tpcr: #x~X~%" (-> this pcr))
|
||||
(format #t "~1Tsqwc: #x~X~%" (-> this sqwc))
|
||||
(format #t "~1Trbsr: #x~X~%" (-> this rbsr))
|
||||
(format #t "~1Trbor: #x~X~%" (-> this rbor))
|
||||
(format #t "~1Tstadr: #x~X~%" (-> this stadr))
|
||||
(format #t "~1Tenabler: ~D~%" (-> this enabler))
|
||||
(format #t "~1Tenablew: ~D~%" (-> this enablew))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type vu-code-block
|
||||
(deftype vu-code-block (basic)
|
||||
"Unused type for some VU code. vu-function is used instead."
|
||||
((name basic)
|
||||
(code uint32)
|
||||
(size int32)
|
||||
(dest-address uint32)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type vu-code-block
|
||||
(defmethod inspect ((this vu-code-block))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~1Tname: ~A~%" (-> this name))
|
||||
(format #t "~1Tcode: #x~X~%" (-> this code))
|
||||
(format #t "~1Tsize: ~D~%" (-> this size))
|
||||
(format #t "~1Tdest-address: ~D~%" (-> this dest-address))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type vu-stat
|
||||
(deftype vu-stat (uint64)
|
||||
()
|
||||
)
|
||||
|
||||
;; definition of type dma-tag
|
||||
(deftype dma-tag (uint64)
|
||||
"The 64-bit tag used by the DMA system."
|
||||
((qwc uint16 :offset 0 :size 16)
|
||||
(pce uint8 :offset 26 :size 2)
|
||||
(id dma-tag-id :offset 28 :size 3)
|
||||
(irq uint8 :offset 31 :size 1)
|
||||
(addr uint32 :offset 32 :size 31)
|
||||
(spr uint8 :offset 63 :size 1)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type dma-tag
|
||||
(defmethod inspect ((this dma-tag))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'dma-tag)
|
||||
(format #t "~1Tqwc: ~D~%" (-> this qwc))
|
||||
(format #t "~1Tpce: ~D~%" (-> this pce))
|
||||
(format #t "~1Tid: ~D~%" (-> this id))
|
||||
(format #t "~1Tirq: ~D~%" (-> this irq))
|
||||
(format #t "~1Taddr: #x~X~%" (-> this addr))
|
||||
(format #t "~1Tspr: ~D~%" (-> this spr))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type dma-bucket
|
||||
(deftype dma-bucket (structure)
|
||||
"A linked list of DMA data, typically all in the same category. Used to organize the full DMA chain."
|
||||
((tag dma-tag)
|
||||
(last (pointer dma-tag))
|
||||
(dummy uint32)
|
||||
(next uint32 :offset 4)
|
||||
(clear uint64 :overlay-at last)
|
||||
(vif0 uint32 :overlay-at last)
|
||||
(vif1 uint32 :overlay-at dummy)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type dma-bucket
|
||||
(defmethod inspect ((this dma-bucket))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'dma-bucket)
|
||||
(format #t "~1Ttag: ~D~%" (-> this tag))
|
||||
(format #t "~1Tlast: #x~X~%" (-> this last))
|
||||
(format #t "~1Tdummy: ~D~%" (-> this dummy))
|
||||
(format #t "~1Tnext: #x~X~%" (-> this next))
|
||||
(format #t "~1Tclear: ~D~%" (-> this clear))
|
||||
(format #t "~1Tvif0: ~D~%" (-> this last))
|
||||
(format #t "~1Tvif1: ~D~%" (-> this dummy))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type vif-mask
|
||||
(deftype vif-mask (uint32)
|
||||
((m0 uint8 :offset 0 :size 2)
|
||||
(m1 uint8 :offset 2 :size 2)
|
||||
(m2 uint8 :offset 4 :size 2)
|
||||
(m3 uint8 :offset 6 :size 2)
|
||||
(m4 uint8 :offset 8 :size 2)
|
||||
(m5 uint8 :offset 10 :size 2)
|
||||
(m6 uint8 :offset 12 :size 2)
|
||||
(m7 uint8 :offset 14 :size 2)
|
||||
(m8 uint8 :offset 16 :size 2)
|
||||
(m9 uint8 :offset 18 :size 2)
|
||||
(m10 uint8 :offset 20 :size 2)
|
||||
(m11 uint8 :offset 22 :size 2)
|
||||
(m12 uint8 :offset 24 :size 2)
|
||||
(m13 uint8 :offset 26 :size 2)
|
||||
(m14 uint8 :offset 28 :size 2)
|
||||
(m15 uint8 :offset 30 :size 2)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type vif-stcycl-imm
|
||||
(deftype vif-stcycl-imm (uint16)
|
||||
"The imm field of a VIF code using STCYCL, which adjusts the pattern for storing data."
|
||||
((cl uint8 :offset 0 :size 8)
|
||||
(wl uint8 :offset 8 :size 8)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type vif-unpack-imm
|
||||
(deftype vif-unpack-imm (uint16)
|
||||
"The imm field of a VIF code using UNPACK, which transfers data to VU memory."
|
||||
((addr uint16 :offset 0 :size 10)
|
||||
(usn uint8 :offset 14 :size 1)
|
||||
(flg uint8 :offset 15 :size 1)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type vif-tag
|
||||
(deftype vif-tag (uint32)
|
||||
"A tag consumed by the VIF, which accepts DMA data."
|
||||
((imm uint16 :offset 0 :size 16)
|
||||
(num uint8 :offset 16 :size 8)
|
||||
(cmd vif-cmd :offset 24 :size 7)
|
||||
(irq uint8 :offset 31 :size 1)
|
||||
(msk uint8 :offset 28 :size 1)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type vif-tag
|
||||
(defmethod inspect ((this vif-tag))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'vif-tag)
|
||||
(format #t "~1Timm: #x~X~%" (-> this imm))
|
||||
(format #t "~1Tnum: ~D~%" (-> this num))
|
||||
(format #t "~1Tcmd: #x~X~%" (-> this cmd))
|
||||
(format #t "~1Tmsk: ~D~%" (-> this msk))
|
||||
(format #t "~1Tirq: ~D~%" (-> this irq))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for function dma-sync-fast
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
;; definition for function dma-send-no-scratch
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
;; definition for function dma-sync-with-count
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
;; definition for function dma-count-until-done
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type video-params
|
||||
(deftype video-params (structure)
|
||||
"Parameters for the framebuffer."
|
||||
((set-video-mode symbol)
|
||||
(reset-video-mode symbol)
|
||||
(display-fbp int32)
|
||||
(relative-x-scale float :offset 16)
|
||||
(display-dx int32)
|
||||
(display-dy int32)
|
||||
(display-sy int32)
|
||||
(relative-x-scale-reciprical float)
|
||||
(screen-pages-high int32)
|
||||
(smode2 uint64)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type video-params
|
||||
(defmethod inspect ((this video-params))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'video-params)
|
||||
(format #t "~1Tset-video-mode: ~A~%" (-> this set-video-mode))
|
||||
(format #t "~1Treset-video-mode: ~A~%" (-> this reset-video-mode))
|
||||
(format #t "~1Tdisplay-fbp: ~D~%" (-> this display-fbp))
|
||||
(format #t "~1Trelative-x-scale: ~f~%" (-> this relative-x-scale))
|
||||
(format #t "~1Tdisplay-dx: ~D~%" (-> this display-dx))
|
||||
(format #t "~1Tdisplay-dy: ~D~%" (-> this display-dy))
|
||||
(format #t "~1Tdisplay-sy: ~D~%" (-> this display-sy))
|
||||
(format #t "~1Trelative-x-scale-reciprical: ~f~%" (-> this relative-x-scale-reciprical))
|
||||
(format #t "~1Tscreen-pages-high: ~D~%" (-> this screen-pages-high))
|
||||
(format #t "~1Tsmode2: ~D~%" (-> this smode2))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for symbol *video-params*, type video-params
|
||||
(define *video-params* (new 'static 'video-params
|
||||
:set-video-mode #f
|
||||
:reset-video-mode #f
|
||||
:display-fbp #xa4
|
||||
:relative-x-scale 1.0
|
||||
:display-dy 8
|
||||
:display-sy #xe0
|
||||
:relative-x-scale-reciprical 1.0
|
||||
:screen-pages-high 13
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type dma-foreground-sink
|
||||
(deftype dma-foreground-sink (basic)
|
||||
"A specification for where a foreground renderer should output its DMA data."
|
||||
((bucket bucket-id)
|
||||
(foreground-texture-page tpage-category)
|
||||
(foreground-texture-level int8)
|
||||
(foreground-output-bucket int8)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type dma-foreground-sink
|
||||
(defmethod inspect ((this dma-foreground-sink))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~1Tbucket: ~D~%" (-> this bucket))
|
||||
(format #t "~1Tforeground-texture-page: ~D~%" (-> this foreground-texture-page))
|
||||
(format #t "~1Tforeground-texture-level: ~D~%" (-> this foreground-texture-level))
|
||||
(format #t "~1Tforeground-output-bucket: ~D~%" (-> this foreground-output-bucket))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type generic-bucket-state
|
||||
(deftype generic-bucket-state (structure)
|
||||
"The state of buffers for the generic renderer.
|
||||
When generating generic DMA data, you must know the previous state
|
||||
of the VU's memory to properly double-buffer the input and output data."
|
||||
((gifbuf-adr uint32)
|
||||
(inbuf-adr uint32)
|
||||
)
|
||||
:pack-me
|
||||
)
|
||||
|
||||
;; definition for method 3 of type generic-bucket-state
|
||||
(defmethod inspect ((this generic-bucket-state))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'generic-bucket-state)
|
||||
(format #t "~1Tgifbuf-adr: ~D~%" (-> this gifbuf-adr))
|
||||
(format #t "~1Tinbuf-adr: ~D~%" (-> this inbuf-adr))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type generic-dma-foreground-sink
|
||||
(deftype generic-dma-foreground-sink (dma-foreground-sink)
|
||||
"A specification for where a foreground generic renderer should output DMA data,
|
||||
and the state of the VU memory buffers at the end of the bucket."
|
||||
((state generic-bucket-state :inline)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type generic-dma-foreground-sink
|
||||
(defmethod inspect ((this generic-dma-foreground-sink))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~1Tbucket: ~D~%" (-> this bucket))
|
||||
(format #t "~1Tforeground-texture-page: ~D~%" (-> this foreground-texture-page))
|
||||
(format #t "~1Tforeground-texture-level: ~D~%" (-> this foreground-texture-level))
|
||||
(format #t "~1Tforeground-output-bucket: ~D~%" (-> this foreground-output-bucket))
|
||||
(format #t "~1Tstate: #<generic-bucket-state @ #x~X>~%" (-> this state))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
+245
@@ -0,0 +1,245 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type profile-segment
|
||||
(deftype profile-segment (structure)
|
||||
"Confusingly, this has two uses. Either a single event, or a summary of all events within a category."
|
||||
((name symbol)
|
||||
(start-time int16)
|
||||
(end-time int16)
|
||||
(count uint8)
|
||||
(vu-count uint8)
|
||||
(depth uint16)
|
||||
(color rgba)
|
||||
(code-time uint16 :overlay-at start-time)
|
||||
(vu-time uint16 :overlay-at end-time)
|
||||
)
|
||||
:allow-misaligned
|
||||
)
|
||||
|
||||
;; definition for method 3 of type profile-segment
|
||||
(defmethod inspect ((this profile-segment))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'profile-segment)
|
||||
(format #t "~1Tname: ~A~%" (-> this name))
|
||||
(format #t "~1Tstart-time: ~D~%" (-> this start-time))
|
||||
(format #t "~1Tend-time: ~D~%" (-> this end-time))
|
||||
(format #t "~1Tcount: ~D~%" (-> this count))
|
||||
(format #t "~1Tvu-count: ~D~%" (-> this vu-count))
|
||||
(format #t "~1Tdepth: ~D~%" (-> this depth))
|
||||
(format #t "~1Tcolor: #x~X~%" (-> this color))
|
||||
(format #t "~1Tcode-time: ~D~%" (-> this code-time))
|
||||
(format #t "~1Tvu-time: ~D~%" (-> this vu-time))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type profile-collapse
|
||||
(deftype profile-collapse (structure)
|
||||
"An array of 'summaries'. Each entry in data is a summary of all events within a category."
|
||||
((count int32)
|
||||
(data profile-segment 48 :inline)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type profile-collapse
|
||||
(defmethod inspect ((this profile-collapse))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'profile-collapse)
|
||||
(format #t "~1Tcount: ~D~%" (-> this count))
|
||||
(format #t "~1Tdata[48] @ #x~X~%" (-> this data))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type profile-segment-array
|
||||
(deftype profile-segment-array (basic)
|
||||
"All profiling data for a frame, stored as a tree of events. There is one for the VU, and one for the EE."
|
||||
((count int16)
|
||||
(depth int8)
|
||||
(max-depth int8)
|
||||
(base-time int16)
|
||||
(segment profile-segment 9)
|
||||
(data profile-segment 1024 :inline)
|
||||
)
|
||||
(:methods
|
||||
(get-total-time (_type_) int)
|
||||
(start-frame! (_type_) none)
|
||||
(start-segment! (_type_ symbol rgba) none)
|
||||
(end-segment! (_type_) none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type profile-segment-array
|
||||
(defmethod inspect ((this profile-segment-array))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(format #t "~1Tcount: ~D~%" (-> this count))
|
||||
(format #t "~1Tdepth: ~D~%" (-> this depth))
|
||||
(format #t "~1Tmax-depth: ~D~%" (-> this max-depth))
|
||||
(format #t "~1Tbase-time: ~D~%" (-> this base-time))
|
||||
(format #t "~1Tsegment[9] @ #x~X~%" (-> this segment))
|
||||
(format #t "~1Tdata[1024] @ #x~X~%" (-> this data))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type profile-array
|
||||
(deftype profile-array (structure)
|
||||
"The EE and VU profilers, and the drawing code."
|
||||
((data profile-segment-array 2)
|
||||
)
|
||||
(:methods
|
||||
(postprocess-data! (_type_) none)
|
||||
(draw-bars! (_type_ dma-buffer int) none)
|
||||
(draw-text! (_type_) none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type profile-array
|
||||
(defmethod inspect ((this profile-array))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'profile-array)
|
||||
(format #t "~1Tdata[2] @ #x~X~%" (-> this data))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for method 9 of type profile-segment-array
|
||||
(defmethod get-total-time ((this profile-segment-array))
|
||||
"Get the duration of the top-level event (typically, the whole frame)"
|
||||
(- (-> this data 0 end-time) (-> this data 0 start-time))
|
||||
)
|
||||
|
||||
;; definition of type profile-spec
|
||||
(deftype profile-spec (structure)
|
||||
"Specification for a profile category."
|
||||
((name basic)
|
||||
(color rgba)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type profile-spec
|
||||
(defmethod inspect ((this profile-spec))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'profile-spec)
|
||||
(format #t "~1Tname: ~A~%" (-> this name))
|
||||
(format #t "~1Tcolor: ~D~%" (-> this color))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for symbol *profile-gap-color*, type rgba
|
||||
(define *profile-gap-color* (new 'static 'rgba :r #x30 :g #x30 :b #x30 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-all-color*, type rgba
|
||||
(define *profile-all-color* (new 'static 'rgba :r #x55 :g #x55 :b #x55 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-blit-color*, type rgba
|
||||
(define *profile-blit-color* (new 'static 'rgba :r #x20 :g #x20 :b #x80 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-sky-color*, type rgba
|
||||
(define *profile-sky-color* (new 'static 'rgba :r #x20 :g #x80 :b #x20 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-ocean-color*, type rgba
|
||||
(define *profile-ocean-color* (new 'static 'rgba :r #x20 :g #x80 :b #x80 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-hfrag-color*, type rgba
|
||||
(define *profile-hfrag-color* (new 'static 'rgba :r #x80 :g #x20 :b #x20 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-tfrag-color*, type rgba
|
||||
(define *profile-tfrag-color* (new 'static 'rgba :r #x80 :g #x20 :b #x80 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-texture-color*, type rgba
|
||||
(define *profile-texture-color* (new 'static 'rgba :r #x80 :g #x80 :b #x20 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-tie-color*, type rgba
|
||||
(define *profile-tie-color* (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-generic-color*, type rgba
|
||||
(define *profile-generic-color* (new 'static 'rgba :r #x70 :g #x70 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-merc-color*, type rgba
|
||||
(define *profile-merc-color* (new 'static 'rgba :r #x70 :b #x70 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-shrubbery-color*, type rgba
|
||||
(define *profile-shrubbery-color* (new 'static 'rgba :r #x70 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-particle-color*, type rgba
|
||||
(define *profile-particle-color* (new 'static 'rgba :g #x70 :b #x70 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-debug-color*, type rgba
|
||||
(define *profile-debug-color* (new 'static 'rgba :g #x70 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-other-color*, type rgba
|
||||
(define *profile-other-color* (new 'static 'rgba :g #x70 :b #x70 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-joints-color*, type rgba
|
||||
(define *profile-joints-color* (new 'static 'rgba :r #x70 :g #x70 :b #x20 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-draw-hook-color*, type rgba
|
||||
(define *profile-draw-hook-color* (new 'static 'rgba :r #x20 :g #x70 :b #x70 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-background-color*, type rgba
|
||||
(define *profile-background-color* (new 'static 'rgba :r #x60 :g #x60 :b #x40 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-foreground-color*, type rgba
|
||||
(define *profile-foreground-color* (new 'static 'rgba :r #x40 :g #x60 :b #x60 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-bones-color*, type rgba
|
||||
(define *profile-bones-color* (new 'static 'rgba :r #x20 :g #x80 :b #x60 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-actors-color*, type rgba
|
||||
(define *profile-actors-color* (new 'static 'rgba :r #x80 :g #x10 :b #x70 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-collide-color*, type rgba
|
||||
(define *profile-collide-color* (new 'static 'rgba :r #x80 :g #x40 :b #x80 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-nav-color*, type rgba
|
||||
(define *profile-nav-color* (new 'static 'rgba :r #x38 :g #x48 :b #x80 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-camera-color*, type rgba
|
||||
(define *profile-camera-color* (new 'static 'rgba :r #x80 :g #x80 :b #x80 :a #x80))
|
||||
|
||||
;; definition for symbol *profile-gs-sync-color*, type rgba
|
||||
(define *profile-gs-sync-color* (new 'static 'rgba :r #x70 :g #x70 :b #x70 :a #x80))
|
||||
|
||||
;; this part is debug only
|
||||
(when *debug-segment*
|
||||
;; definition for symbol *profile-array*, type profile-array
|
||||
(define *profile-array* (new 'debug 'profile-array))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *profile-array* data 0) (new 'debug 'profile-segment-array))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *profile-array* data 1) (new 'debug 'profile-segment-array))
|
||||
|
||||
;; definition for symbol *profile-collapse*, type profile-collapse
|
||||
(define *profile-collapse* (new 'debug 'profile-collapse))
|
||||
|
||||
;; definition for symbol *profile-interrupt-segment*, type profile-segment-array
|
||||
(define *profile-interrupt-segment* (-> *profile-array* data 1))
|
||||
|
||||
;; definition for symbol *profile-interrupt-start*, type symbol
|
||||
(define *profile-interrupt-start* #f)
|
||||
|
||||
)
|
||||
|
||||
|
||||
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type basic-reserved
|
||||
(deftype basic-reserved (basic)
|
||||
()
|
||||
(:methods
|
||||
(basic-reserved-method-9 () none)
|
||||
(basic-reserved-method-10 () none)
|
||||
(basic-reserved-method-11 () none)
|
||||
(basic-reserved-method-12 () none)
|
||||
(basic-reserved-method-13 () none)
|
||||
(basic-reserved-method-14 () none)
|
||||
(basic-reserved-method-15 () none)
|
||||
(basic-reserved-method-16 () none)
|
||||
(basic-reserved-method-17 () none)
|
||||
(basic-reserved-method-18 () none)
|
||||
(basic-reserved-method-19 () none)
|
||||
(basic-reserved-method-20 () none)
|
||||
(basic-reserved-method-21 () none)
|
||||
(basic-reserved-method-22 () none)
|
||||
(basic-reserved-method-23 () none)
|
||||
(basic-reserved-method-24 () none)
|
||||
(basic-reserved-method-25 () none)
|
||||
(basic-reserved-method-26 () none)
|
||||
(basic-reserved-method-27 () none)
|
||||
(basic-reserved-method-28 () none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type basic-reserved
|
||||
(defmethod inspect ((this basic-reserved))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this (-> this type))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type part-id
|
||||
(deftype part-id (uint32)
|
||||
()
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(new 'static 'boxed-array :type type
|
||||
pilot-info
|
||||
flut-info
|
||||
mech-info
|
||||
turret-info
|
||||
indax-info
|
||||
tube-info
|
||||
race-mesh
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user