mirror of
https://github.com/open-goal/jak-project
synced 2026-06-04 02:47:17 -04:00
e5f0fecf17
* get to vif * support basic bitfield access * make bitfields in dma work * clean up dma * fix merge conflict
223 lines
9.0 KiB
Common Lisp
223 lines
9.0 KiB
Common Lisp
;; GCOMMON
|
|
(define-extern name= (function basic basic symbol))
|
|
(define-extern fact (function int int))
|
|
(define-extern max (function int int int))
|
|
(define-extern min (function int int int))
|
|
|
|
;; KERNEL
|
|
(declare-type process basic)
|
|
(declare-type stack-frame basic)
|
|
(declare-type state basic)
|
|
(declare-type cpu-thread basic)
|
|
(declare-type dead-pool basic)
|
|
(declare-type event-message-block structure)
|
|
(declare-type thread basic)
|
|
|
|
(deftype process (process-tree)
|
|
((pool dead-pool :offset-assert #x20)
|
|
(status basic :offset-assert #x24)
|
|
(pid int32 :offset-assert #x28)
|
|
(main-thread cpu-thread :offset-assert #x2c)
|
|
(top-thread thread :offset-assert #x30)
|
|
(entity basic :offset-assert #x34)
|
|
(state state :offset-assert #x38)
|
|
(trans-hook function :offset-assert #x3c)
|
|
(post-hook function :offset-assert #x40)
|
|
(event-hook (function basic int basic event-message-block object) :offset-assert #x44)
|
|
(allocated-length int32 :offset-assert #x48)
|
|
(next-state state :offset-assert #x4c)
|
|
(heap-base pointer :offset-assert #x50)
|
|
(heap-top pointer :offset-assert #x54)
|
|
(heap-cur pointer :offset-assert #x58)
|
|
(stack-frame-top stack-frame :offset-assert #x5c)
|
|
(connection-list connectable :inline :offset-assert #x60)
|
|
(stack uint8 :dynamic :offset-assert #x70)
|
|
)
|
|
|
|
(:methods
|
|
(new (symbol type basic int) _type_ 0)
|
|
(activate (_type_ process-tree basic pointer) process-tree 9)
|
|
(deactivate (process) none 10)
|
|
(dummy-method-11 () none 11)
|
|
(run-logic? (process) symbol 12)
|
|
(dummy-method () none 13)
|
|
)
|
|
|
|
:size-assert #x70
|
|
:method-count-assert 14
|
|
:no-runtime-type ;; already defined by kscheme. Don't do it again.
|
|
)
|
|
|
|
(declare-type dead-pool-heap basic)
|
|
(define-extern *debug-dead-pool* dead-pool-heap)
|
|
(define-extern change-parent (function process-tree process-tree process-tree))
|
|
(define-extern *null-process* process)
|
|
(define-extern *vis-boot* basic)
|
|
(define-extern *stdcon* string)
|
|
(declare-type kernel-context basic)
|
|
(define-extern iterate-process-tree (function process-tree (function object object) kernel-context object))
|
|
(define-extern execute-process-tree (function process-tree (function object object) kernel-context object))
|
|
(define-extern search-process-tree (function process-tree (function process-tree object) process-tree))
|
|
|
|
(define-extern *listener-process* process)
|
|
(define-extern *active-pool* process-tree)
|
|
(define-extern reset-and-call (function thread function object))
|
|
(define-extern ash (function int int int))
|
|
(define-extern inspect-process-tree (function process-tree int int symbol process-tree))
|
|
(define-extern set-to-run-bootstrap (function none))
|
|
(define-extern dead-state state)
|
|
(define-extern *display-pool* process-tree)
|
|
(define-extern *camera-pool* process-tree)
|
|
(define-extern *target-pool* process-tree)
|
|
(define-extern *entity-pool* process-tree)
|
|
(define-extern *default-pool* process-tree)
|
|
(define-extern *stdcon0* string)
|
|
(define-extern *stdcon1* string)
|
|
(define-extern *debug-draw-pauseable* symbol)
|
|
|
|
;; gstate
|
|
(define-extern enter-state (function object object object object object object object))
|
|
(define-extern throw (function symbol object int))
|
|
(defmacro suspend()
|
|
'(none)
|
|
)
|
|
|
|
|
|
;; math
|
|
(define-extern fabs (function float float))
|
|
(define-extern abs (function int int))
|
|
(define-extern rand-vu-init (function float none))
|
|
(define-extern rand-vu (function float))
|
|
|
|
;; matrix
|
|
(declare-type matrix structure)
|
|
(declare-type vector structure)
|
|
(define-extern matrix-transpose! (function matrix matrix matrix))
|
|
(define-extern sin (function float float))
|
|
(define-extern cos (function float float))
|
|
(define-extern vector-sincos! (function vector vector vector int))
|
|
(define-extern matrix-axis-sin-cos! (function matrix vector float float none))
|
|
(define-extern atan (function float float float))
|
|
|
|
;; transform
|
|
(define-extern vector-identity! (function vector vector))
|
|
|
|
;; quaternion
|
|
(define-extern acos (function float float))
|
|
(define-extern acos-rad (function float float))
|
|
(define-extern atan2-rad (function float float float))
|
|
(define-extern vector-length (function vector float))
|
|
(define-extern sincos-rad! (function (pointer float) float int))
|
|
(define-extern atan-series-rad (function float float))
|
|
(define-extern vector-sin-rad! (function vector vector vector))
|
|
(define-extern vector-rad<-vector-deg/2! (function vector vector int))
|
|
(define-extern vector-sincos-rad! (function vector vector vector int))
|
|
(define-extern deg-diff (function float float float))
|
|
(define-extern vector-xz-normalize! (function vector float vector))
|
|
(declare-type quaternion structure)
|
|
(define-extern quaternion-from-two-vectors-max-angle! (function quaternion vector vector float quaternion))
|
|
(define-extern vector-xz-length (function vector float))
|
|
|
|
(defmacro .sync.l ()
|
|
`(none))
|
|
|
|
;; display-h
|
|
(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)
|
|
)
|
|
:pack-me
|
|
:method-count-assert 9
|
|
:size-assert #x28
|
|
:flag-assert #x900000028
|
|
)
|
|
|
|
(deftype draw-env (structure)
|
|
((frame1 uint64 :offset-assert 0)
|
|
(frame1addr uint64 :offset-assert 8)
|
|
(zbuf1 uint64 :offset-assert 16)
|
|
(zbuf1addr uint64 :offset-assert 24)
|
|
(xyoffset1 uint64 :offset-assert 32)
|
|
(xyoffset1addr uint64 :offset-assert 40)
|
|
(scissor1 uint64 :offset-assert 48)
|
|
(scissor1addr uint64 :offset-assert 56)
|
|
(prmodecont uint64 :offset-assert 64)
|
|
(prmodecontaddr uint64 :offset-assert 72)
|
|
(colclamp uint64 :offset-assert 80)
|
|
(colclampaddr uint64 :offset-assert 88)
|
|
(dthe uint64 :offset-assert 96)
|
|
(dtheaddr uint64 :offset-assert 104)
|
|
(test1 uint64 :offset-assert 112)
|
|
(test1addr uint64 :offset-assert 120)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x80
|
|
:flag-assert #x900000080
|
|
)
|
|
|
|
(declare-type display-frame basic)
|
|
|
|
(deftype virtual-frame (structure)
|
|
((display display-env :offset-assert 0)
|
|
(display-last display-env :offset-assert 4)
|
|
(gif pointer :offset-assert 8)
|
|
(draw draw-env :offset-assert 12)
|
|
(frame display-frame :offset-assert 16)
|
|
)
|
|
|
|
:allow-misaligned
|
|
:method-count-assert 9
|
|
:size-assert #x14
|
|
:flag-assert #x900000014
|
|
)
|
|
|
|
(deftype display (basic)
|
|
((display-env0 display-env :inline :offset-assert 8)
|
|
(display-env1 display-env :inline :offset-assert 48)
|
|
(display-env2 display-env :inline :offset-assert 88)
|
|
(gif-tag0 uint128 :offset-assert 128)
|
|
(draw0 draw-env :inline :offset-assert 144)
|
|
(gif-tag1 uint128 :offset-assert 272)
|
|
(draw1 draw-env :inline :offset-assert 288)
|
|
(gif-tag2 uint128 :offset-assert 416)
|
|
(draw2 draw-env :inline :offset-assert 432)
|
|
(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)
|
|
(real-frame-counter uint64 :offset-assert 776)
|
|
(base-frame-counter uint64 :offset-assert 784)
|
|
(game-frame-counter uint64 :offset-assert 792)
|
|
(integral-frame-counter uint64 :offset-assert 800)
|
|
(real-integral-frame-counter uint64 :offset-assert 808)
|
|
(actual-frame-counter uint64 :offset-assert 816)
|
|
(real-actual-frame-counter uint64 :offset-assert 824)
|
|
(part-frame-counter uint64 :offset-assert 832)
|
|
(old-real-frame-counter uint64 :offset-assert 840)
|
|
(old-base-frame-counter uint64 :offset-assert 848)
|
|
(old-game-frame-counter uint64 :offset-assert 856)
|
|
(old-integral-frame-counter uint64 :offset-assert 864)
|
|
(old-real-integral-frame-counter uint64 :offset-assert 872)
|
|
(old-actual-frame-counter uint64 :offset-assert 880)
|
|
(old-real-actual-frame-counter uint64 :offset-assert 888)
|
|
(old-part-frame-counter uint64 :offset-assert 896)
|
|
(time-ratio float :offset-assert 904)
|
|
(seconds-per-frame float :offset-assert 908)
|
|
(frames-per-second float :offset-assert 912)
|
|
(time-factor float :offset-assert 916)
|
|
(time-adjust-ratio float :offset-assert 920)
|
|
)
|
|
:method-count-assert 10
|
|
:size-assert #x39c
|
|
:flag-assert #xa0000039c
|
|
(:methods
|
|
(new (symbol type int int int int int) _type_ 0)
|
|
(dummy-9 () none 9)
|
|
)
|
|
)
|
|
|
|
(define-extern *display* display)
|