mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
8b62de35ea
* move commonly used scripts to specific folders * fixes * Update test.sh * Update test.sh * Fix file permission * move commonly used scripts to specific folders * fixes * Update test.sh * Update test.sh * Fix file permission * [texture-h] fixes * [display-h] use bitfield types
216 lines
6.1 KiB
Common Lisp
216 lines
6.1 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: texture-h.gc
|
|
;; name in dgo: texture-h
|
|
;; dgos: GAME, ENGINE
|
|
|
|
;; mask for different texture things.
|
|
;; these are the ones that will be displayed in the menu
|
|
(define *texture-enable-user-menu* #x1f)
|
|
|
|
;; enabled textures.
|
|
(define *texture-enable-user* 0)
|
|
|
|
(deftype texture-id (uint32)
|
|
((index uint16 :offset 8 :size 12)
|
|
(page uint16 :offset 20 :size 12)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x4
|
|
:flag-assert #x900000004
|
|
)
|
|
|
|
(deftype texture-pool-segment (structure)
|
|
((dest uint32 :offset-assert 0)
|
|
(size uint32 :offset-assert 4)
|
|
)
|
|
:pack-me
|
|
:method-count-assert 9
|
|
:size-assert #x8
|
|
:flag-assert #x900000008
|
|
)
|
|
|
|
(deftype texture-pool (basic)
|
|
((top int32 :offset-assert 4)
|
|
(cur int32 :offset-assert 8)
|
|
(allocate-func basic :offset-assert 12)
|
|
(font-palette int32 :offset-assert 16)
|
|
(segment texture-pool-segment 4 :inline :offset-assert 20)
|
|
(segment-near texture-pool-segment :inline :offset 20)
|
|
(segment-common texture-pool-segment :inline :offset 28)
|
|
(common-page int32 32 :offset-assert 52)
|
|
(common-page-mask int32 :offset-assert 180)
|
|
(ids int32 126 :offset-assert 184)
|
|
)
|
|
:method-count-assert 23
|
|
:size-assert #x2b0
|
|
:flag-assert #x17000002b0
|
|
(:methods
|
|
(dummy-9 () none 9)
|
|
(dummy-10 () none 10)
|
|
(dummy-11 () none 11)
|
|
(dummy-12 () none 12)
|
|
(dummy-13 () none 13)
|
|
(dummy-14 () none 14)
|
|
(dummy-15 () none 15)
|
|
(dummy-16 () none 16)
|
|
(dummy-17 () none 17)
|
|
(dummy-18 () none 18)
|
|
(dummy-19 () none 19)
|
|
(dummy-20 () none 20)
|
|
(dummy-21 () none 21)
|
|
(dummy-22 () none 22)
|
|
)
|
|
)
|
|
|
|
(deftype texture (basic)
|
|
((w int16 :offset-assert 4)
|
|
(h int16 :offset-assert 6)
|
|
(num-mips uint8 :offset-assert 8)
|
|
(tex1-control uint8 :offset-assert 9)
|
|
(psm uint8 :offset-assert 10)
|
|
(mip-shift uint8 :offset-assert 11)
|
|
(clutpsm uint16 :offset-assert 12)
|
|
(dest uint16 7 :offset-assert 14)
|
|
(clutdest uint16 :offset-assert 28)
|
|
(width uint8 7 :offset-assert 30)
|
|
(name basic :offset-assert 40)
|
|
(size uint32 :offset-assert 44)
|
|
(uv-dist float :offset-assert 48)
|
|
(masks uint32 3 :offset-assert 52)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x40
|
|
:flag-assert #x900000040
|
|
)
|
|
|
|
(deftype texture-page-segment (structure)
|
|
((block-data pointer :offset-assert 0)
|
|
(size uint32 :offset-assert 4)
|
|
(dest uint32 :offset-assert 8)
|
|
)
|
|
:pack-me
|
|
:method-count-assert 9
|
|
:size-assert #xc
|
|
:flag-assert #x90000000c
|
|
)
|
|
|
|
(defun texture-mip->segment ((arg0 int) (arg1 int))
|
|
(if (>= 2 arg1) (+ (- -1 arg0) arg1) (max 0 (- 2 arg0)))
|
|
)
|
|
|
|
(deftype texture-page (basic)
|
|
((info basic :offset-assert 4)
|
|
(name basic :offset-assert 8)
|
|
(id uint32 :offset-assert 12)
|
|
(length int32 :offset-assert 16)
|
|
(mip0-size uint32 :offset-assert 20)
|
|
(size uint32 :offset-assert 24)
|
|
(segment texture-page-segment 3 :inline :offset-assert 28)
|
|
(pad uint32 16 :offset-assert 64)
|
|
(data uint8 :dynamic :offset-assert 128)
|
|
)
|
|
:method-count-assert 15
|
|
:size-assert #x80
|
|
:flag-assert #xf00000080
|
|
(:methods
|
|
(dummy-9 () none 9)
|
|
(dummy-10 () none 10)
|
|
(dummy-11 () none 11)
|
|
(dummy-12 () none 12)
|
|
(dummy-13 () none 13)
|
|
(dummy-14 () none 14)
|
|
)
|
|
)
|
|
|
|
(deftype shader-ptr (uint32)
|
|
()
|
|
:method-count-assert 9
|
|
:size-assert #x4
|
|
:flag-assert #x900000004
|
|
)
|
|
|
|
(deftype texture-link (structure)
|
|
((next uint32 :offset-assert 0)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x4
|
|
:flag-assert #x900000004
|
|
)
|
|
|
|
(deftype texture-page-dir-entry (structure)
|
|
((length int16 :offset-assert 0)
|
|
(status uint16 :offset-assert 2)
|
|
(page basic :offset-assert 4)
|
|
(link uint32 :offset-assert 8)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #xc
|
|
:flag-assert #x90000000c
|
|
)
|
|
|
|
(deftype texture-page-dir (basic)
|
|
((pad uint8 #x10))
|
|
(:methods
|
|
(dummy-9 () none 9)
|
|
)
|
|
:flag-assert #xa00000014
|
|
)
|
|
|
|
(deftype texture-relocate-later (basic)
|
|
((memcpy basic :offset-assert 4)
|
|
(dest uint32 :offset-assert 8)
|
|
(source uint32 :offset-assert 12)
|
|
(move uint32 :offset-assert 16)
|
|
(entry texture-page-dir-entry :offset-assert 20)
|
|
(page basic :offset-assert 24)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x1c
|
|
:flag-assert #x90000001c
|
|
)
|
|
|
|
(define *texture-relocate-later* (new 'global 'texture-relocate-later))
|
|
(set! (-> *texture-relocate-later* memcpy) #f)
|
|
(define *texture-page-dir* (the texture-page-dir #f))
|
|
|
|
(deftype adgif-shader (structure)
|
|
((quad uint128 5 :offset 0)
|
|
(prims uint64 10 :offset 0)
|
|
(tex0 uint64 :offset 0)
|
|
(tex1 uint64 :offset 16)
|
|
(miptbp1 uint64 :offset 32)
|
|
(clamp uint64 :offset 48)
|
|
(clamp-reg uint64 :offset 56)
|
|
(alpha uint64 :offset 64)
|
|
(link-test uint32 :offset 8)
|
|
(texture-id uint32 :offset 24)
|
|
(next uint32 :offset 40)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x50
|
|
:flag-assert #x900000050
|
|
)
|
|
|
|
(deftype adgif-shader-array (inline-array-class)
|
|
()
|
|
:method-count-assert 9
|
|
:size-assert #x10
|
|
:flag-assert #x900000010
|
|
)
|
|
(set! (-> adgif-shader-array heap-base) 80)
|
|
|
|
(define *sky-base-vram-word* 0)
|
|
(define *sky-base-block* 0)
|
|
(define *sky-base-page* 0)
|
|
(define *depth-cue-base-vram-word* 0)
|
|
(define *depth-cue-base-block* 0)
|
|
(define *depth-cue-base-page* 0)
|
|
(define *eyes-base-vram-word* 0)
|
|
(define *eyes-base-block* 0)
|
|
(define *eyes-base-page* 0)
|
|
(define *ocean-base-vram-word* 0)
|
|
(define *ocean-base-block* 0)
|
|
(define *ocean-base-page* 0)
|