jak-project/goal_src/engine/gfx/hw/vu1-user-h.gc
ManDude 26c3fb65e9
make some macros for DMA stuff (#725)
* [compiler] allow infinite args for `logior`

* make some dma macros and use them on `display`

* [goos] add `string->symbol`

* make a sketchy macro

* fix tests

* `with-dma-bucket` and `dma-buffer-add-vector4w-2`

* cleanup `debug`

* cleanup `menu`

* go thru `texture` pt 1

* finish `texture`

* `sprite` pt 1

* `sprite` pt 2

* `generic`

* `gs` and `main`
2021-08-01 17:11:32 -04:00

61 lines
1.8 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: vu1-user-h.gc
;; name in dgo: vu1-user-h
;; dgos: GAME, ENGINE
;; VU1 renderers are enabled/disabled with a bitmask.
;; I believe this is renderers which can be enabled/disabled in the debug menu?
(define *vu1-enable-user-menu*
#x1FFFF8)
;; by default, all off.
;; the menu renderers get copied to this on each frame
(define *vu1-enable-user* 0)
;; a dma "sink" is somewhere where a renderer can put stuff.
(deftype dma-foreground-sink (basic)
((bucket bucket-id :offset-assert 4)
(foreground-texture-page int8 :offset-assert 8) ;; ?
(foreground-texture-level int8 :offset-assert 9) ;; ?
(foreground-output-bucket int8 :offset-assert 10) ;; ?
)
:method-count-assert 9
:size-assert #xb
:flag-assert #x90000000b
)
;; additional info for the generic renderer
(deftype generic-bucket-state (structure)
((gifbuf-adr uint32 :offset-assert 0)
(inbuf-adr uint32 :offset-assert 4)
)
:pack-me
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
;; sink for the generic renderer, a normal sink + extra data.
(deftype generic-dma-foreground-sink (dma-foreground-sink)
((state generic-bucket-state :inline :offset-assert 12)
)
:method-count-assert 9
:size-assert #x14
:flag-assert #x900000014
)
;; group of sinks used for the foreground renderers.
(deftype dma-foreground-sink-group (basic)
((sink dma-foreground-sink 3 :offset-assert 4)
(merc-sink dma-foreground-sink :offset 4)
(generic-sink generic-dma-foreground-sink :offset 8)
(level basic :offset-assert 16)
)
:method-count-assert 9
:size-assert #x14
:flag-assert #x900000014
)