[texture-h] fixes (#356)

* 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
This commit is contained in:
ManDude 2021-04-14 01:22:34 +01:00 committed by GitHub
parent fcbf5b60ff
commit 8b62de35ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 75 additions and 106 deletions

View file

@ -2107,10 +2107,7 @@
(deftype profile-frame (structure)
((name basic :offset-assert 0)
(time-stamp uint32 :offset-assert 4)
(color uint32 :offset-assert 8)
(r uint8 :offset 8) ;; TODO : verify colors
(g uint8 :offset 9) ;; TODO (again) : these are actually bitfields
(b uint8 :offset 10)
(color rgba :offset-assert 8)
)
:method-count-assert 9
:size-assert #xc
@ -2126,7 +2123,7 @@
:size-assert #x4010
:flag-assert #xe00004010
(:methods
(get-last-frame-time-stamp (profile-bar) uint 9)
(get-last-frame-time-stamp (_type_) uint 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-12 () none 12)
@ -3260,63 +3257,28 @@
)
;;(define-extern gs-trxreg object) ;; unknown type
;;(define-extern gif-packet object) ;; unknown type
;;(define-extern gs-fogcol object) ;; unknown type
;;(define-extern gs-zbuf object) ;; unknown type
;;(define-extern gif-bank object) ;; unknown type
;; ;; unknown type
;;(define-extern gs-trxpos object) ;; unknown type
;;(define-extern gs-xy-offset object) ;; unknown type
;;(define-extern gs-tex1 object) ;; unknown type
;;(define-extern gs-prim object) ;; unknown type
;;(define-extern gif-tag object) ;; unknown type
;;(define-extern gs-display object) ;; unknown type
;;(define-extern gs-prmode-cont object) ;; unknown type
;;(define-extern gs-scissor object) ;; unknown type
;;(define-extern gs-st object) ;; unknown type
;;(define-extern gs-smode2 object) ;; unknown type
(define-extern add-reg-gif-packet (function gif-packet int int none))
;;(define-extern draw-context object) ;; unknown type
;;(define-extern gs-texclut object) ;; unknown type
;;(define-extern gs-bgcolor object) ;; unknown type
(define-extern open-gif-packet (function gif-packet gif-packet))
;;(define-extern gif-tag-count object) ;; unknown type
;;(define-extern gs-test object) ;; unknown type
;;(define-extern gs-tex0 object) ;; unknown type
;;(define-extern gif-tag64 object) ;; unknown type
;;(define-extern gs-alpha object) ;; unknown type
;;(define-extern gs-miptbp object) ;; unknown type
;;(define-extern gs-color-clamp object) ;; unknown type
;;(define-extern gif-p3cnt object) ;; unknown type
;;(define-extern gs-clamp object) ;; unknown type
;;(define-extern gs-uv object) ;; unknown type
;;(define-extern gif-stat object) ;; unknown type
;;(define-extern gif-mode object) ;; unknown type
;;(define-extern gs-trxdir object) ;; unknown type
;;(define-extern gs-xyzf object) ;; unknown type
;;(define-extern gs-csr object) ;; unknown type
(define-extern draw-context-set-xy (function draw-context int int none))
;;(define-extern gs-frame object) ;; unknown type
;;(define-extern gs-texa object) ;; unknown type
;;(define-extern gs-bank object) ;; unknown type
;;(define-extern gif-cnt object) ;; unknown type
;;(define-extern gif-ctrl object) ;; unknown type
;;(define-extern gs-gif-tag object) ;; unknown type
;;(define-extern gs-pmode object) ;; unknown type
;;(define-extern gs-dthe object) ;; unknown type
;;(define-extern gs-fog object) ;; unknown type
;;(define-extern gs-xyz object) ;; unknown type
;;(define-extern gif-tag-prim object) ;; unknown type
;;(define-extern gif-p3tag object) ;; unknown type
(define-extern close-gif-packet (function gif-packet int gif-packet))
;;(define-extern gs-display-fb object) ;; unknown type
;;(define-extern gs-bitbltbuf object) ;; unknown type
;;(define-extern gs-rgbaq object) ;; unknown type
;;;;;;;;;;;;;;;
@ -3324,11 +3286,11 @@
;;;;;;;;;;;;;;;
(deftype display-env (structure)
((pmode uint64 :offset-assert 0)
(smode2 uint64 :offset-assert 8)
(dspfb uint64 :offset-assert 16)
(display uint64 :offset-assert 24)
(bgcolor uint64 :offset-assert 32)
((pmode gs-pmode :offset-assert 0)
(smode2 gs-smode2 :offset-assert 8)
(dspfb gs-display-fb :offset-assert 16)
(display gs-display :offset-assert 24)
(bgcolor gs-bgcolor :offset-assert 32)
)
:pack-me
:method-count-assert 9
@ -3409,7 +3371,7 @@
(on-screen int32 :offset-assert 560)
(last-screen int32 :offset-assert 564)
(frames virtual-frame 6 :inline :offset-assert 568)
(bg-clear-color uint32 4 :offset-assert 760)
(bg-clear-color rgba 4 :offset-assert 760)
(real-frame-counter uint64 :offset-assert 776)
(base-frame-counter uint64 :offset-assert 784)
(game-frame-counter uint64 :offset-assert 792)
@ -3671,13 +3633,16 @@
;; texture-h
;;;;;;;;;;;;;;
;; texture-h
(define-extern *texture-enable-user-menu* int)
(define-extern *texture-enable-user* int)
(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
;; likely a bitfield type
)
(deftype texture-pool-segment (structure)
@ -3785,6 +3750,13 @@
)
)
(deftype shader-ptr (uint32)
()
:method-count-assert 9
:size-assert #x4
:flag-assert #x900000004
)
;; texture-h
(deftype texture-link (structure)
((next uint32 :offset-assert 0)
@ -3806,6 +3778,15 @@
:flag-assert #x90000000c
)
;; texture-h
(deftype texture-page-dir (basic)
((pad uint8 #x10))
(:methods
(dummy-9 () none 9)
)
:flag-assert #xa00000014
)
;; texture-h
(deftype texture-relocate-later (basic)
((memcpy basic :offset-assert 4)
@ -3820,12 +3801,13 @@
:flag-assert #x90000001c
)
(define-extern *texture-page-dir* texture-page-dir)
;; texture-h
(deftype adgif-shader (structure)
(
;;(quad UNKNOWN 5 :offset-assert 0)
;;(prims UNKNOWN 10 :offset-assert 0)
(tex0 uint64 :offset-assert 0)
((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)
@ -3834,7 +3816,6 @@
(link-test uint32 :offset 8)
(texture-id uint32 :offset 24)
(next uint32 :offset 40)
(_pad uint64)
)
:method-count-assert 9
:size-assert #x50
@ -3851,6 +3832,19 @@
(define-extern *texture-relocate-later* texture-relocate-later)
(define-extern *sky-base-vram-word* int)
(define-extern *sky-base-block* int)
(define-extern *sky-base-page* int)
(define-extern *depth-cue-base-vram-word* int)
(define-extern *depth-cue-base-block* int)
(define-extern *depth-cue-base-page* int)
(define-extern *eyes-base-vram-word* int)
(define-extern *eyes-base-block* int)
(define-extern *eyes-base-page* int)
(define-extern *ocean-base-vram-word* int)
(define-extern *ocean-base-block* int)
(define-extern *ocean-base-page* int)
;;;;;;;;;;;;;;
;; level-h
;;;;;;;;;;;;;;

View file

@ -199,18 +199,6 @@
["L17", "font-work", true]
],
"display": [
["L47", "float", true],
["L42", "float", true],
["L43", "float", true],
["L44", "float", true],
["L45", "float", true],
["L48", "float", true],
["L46", "float", true],
["L50", "float", true],
["L49", "float", true]
],
"text-h": [["L2", "_auto_", true]],
"font-h": [

View file

@ -6,11 +6,11 @@
;; dgos: GAME, ENGINE
(deftype display-env (structure)
((pmode uint64 :offset-assert 0)
(smode2 uint64 :offset-assert 8)
(dspfb uint64 :offset-assert 16)
(display uint64 :offset-assert 24)
(bgcolor uint64 :offset-assert 32)
((pmode gs-pmode :offset-assert 0)
(smode2 gs-smode2 :offset-assert 8)
(dspfb gs-display-fb :offset-assert 16)
(display gs-display :offset-assert 24)
(bgcolor gs-bgcolor :offset-assert 32)
)
:pack-me
:method-count-assert 9
@ -107,7 +107,7 @@
(on-screen int32 :offset-assert 560)
(last-screen int32 :offset-assert 564)
(frames virtual-frame 6 :inline :offset-assert 568)
(bg-clear-color uint32 4 :offset-assert 760)
(bg-clear-color rgba 4 :offset-assert 760)
(real-frame-counter uint64 :offset-assert 776)
(base-frame-counter uint64 :offset-assert 784)
(game-frame-counter uint64 :offset-assert 792)
@ -179,10 +179,10 @@
(set! (-> obj frames 4 frame) (-> obj frames 0 frame))
(set! (-> obj frames 5 frame) (-> obj frames 1 frame))
(default-buffer-init *default-regs-buffer*)
(set! (-> obj bg-clear-color 0) #x80808080)
(set! (-> obj bg-clear-color 1) #x80808080)
(set! (-> obj bg-clear-color 2) #x80808080)
(set! (-> obj bg-clear-color 3) #x80808080)
(set! (-> obj bg-clear-color 0) (new-rgba #x80 #x80 #x80 #x80))
(set! (-> obj bg-clear-color 1) (new-rgba #x80 #x80 #x80 #x80))
(set! (-> obj bg-clear-color 2) (new-rgba #x80 #x80 #x80 #x80))
(set! (-> obj bg-clear-color 3) (new-rgba #x80 #x80 #x80 #x80))
obj
)

View file

@ -7,32 +7,20 @@
;; mask for different texture things.
;; these are the ones that will be displayed in the menu
(define *texture-enable-user-menu* 31)
(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
)
(defmethod inspect texture-id ((obj texture-id))
(format #t "[~8x] ~A~%" obj 'texture-id)
(format #t "~Tindex: ~D~%" (shr (shl (the-as int obj) 44) 52))
;; you aren't supposed to do this.
(format #t "~Tpage: ~D~%" (shr (logand #xffffffff obj) 20))
;; (set! t9-2 format)
;; (set! a0-3 '#t)
;; (set! a1-2 "~Tpage: ~D~%")
;; (.srl a2-2 obj 20)
;; (t9-2 a0-3 a1-2 a2-2)
obj
)
(deftype texture-pool-segment (structure)
((dest uint32 :offset-assert 0)
(size uint32 :offset-assert 4)
@ -185,13 +173,12 @@
(define *texture-relocate-later* (new 'global 'texture-relocate-later))
(set! (-> *texture-relocate-later* memcpy) #f)
(define *texture-page-dir* #f)
(define *texture-page-dir* (the texture-page-dir #f))
(deftype adgif-shader (structure)
(
;;(quad UNKNOWN 5 :offset-assert 0)
;;(prims UNKNOWN 10 :offset-assert 0)
(tex0 uint64 :offset-assert 0)
((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)
@ -200,7 +187,6 @@
(link-test uint32 :offset 8)
(texture-id uint32 :offset 24)
(next uint32 :offset 40)
(_pad uint64)
)
:method-count-assert 9
:size-assert #x50

View file

@ -47,8 +47,6 @@
;;;; bitfield types
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; TODO: verify these are in the right order.
;; maybe used in timer-h for the color field of profile-frame?
(deftype rgba (uint32)
((r uint8 :offset 0)
(g uint8 :offset 8)
@ -58,6 +56,12 @@
:flag-assert #x900000004
)
(defmacro new-rgba (r g b a)
"Macro for making a new rgba in static space"
`(new 'static 'rgba :r ,r :g ,g :b ,b :a ,a)
)
;; TODO: fields
(deftype xyzw (uint128)
()

View file

@ -92,10 +92,7 @@
(deftype profile-frame (structure)
((name basic :offset-assert 0)
(time-stamp uint32 :offset-assert 4)
(color uint32 :offset-assert 8)
(r uint8 :offset 8) ;; TODO : verify colors
(g uint8 :offset 9) ;; TODO (again) : these are actually bitfields
(b uint8 :offset 10)
(color rgba :offset-assert 8)
)
:method-count-assert 9
:size-assert #xc
@ -107,7 +104,7 @@
(format #t "[~8x] profile-frame~%" this-frame)
(format #t "~Tname: ~A~%" (-> this-frame name))
(format #t "~Ttime-stamp: ~D~%" (-> this-frame time-stamp))
(format #t "~Tcolor: ~D ~D ~D~%" (-> this-frame r) (-> this-frame g) (-> this-frame b))
(format #t "~Tcolor: ~D ~D ~D~%" (-> this-frame color r) (-> this-frame color g) (-> this-frame color b))
)
obj
)
@ -122,7 +119,7 @@
:size-assert #x4010
:flag-assert #xe00004010
(:methods
(get-last-frame-time-stamp (profile-bar) uint 9)
(get-last-frame-time-stamp (_type_) uint 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-12 () none 12)