mirror of
https://github.com/open-goal/jak-project
synced 2026-08-06 18:03:30 -04:00
decomp: generic (#611)
* decomp: Fix casting issue with uint64's from static data * decomp: `generic` * add forward declaration Co-authored-by: water111 <48171810+water111@users.noreply.github.com>
This commit is contained in:
@@ -264,7 +264,7 @@
|
||||
(defun clear-vu0-mem ()
|
||||
(let ((v1-0 (the-as (pointer uint32) #x11004000)))
|
||||
(dotimes (a0-0 1024)
|
||||
(set! (-> v1-0 a0-0) #xabadbeef)
|
||||
(set! (-> v1-0 a0-0) (the-as uint #xabadbeef))
|
||||
)
|
||||
)
|
||||
(let ((v0-0 0))
|
||||
@@ -277,7 +277,7 @@
|
||||
(defun clear-vu1-mem ()
|
||||
(let ((v1-0 (the-as (pointer uint32) #x1100c000)))
|
||||
(dotimes (a0-0 4096)
|
||||
(set! (-> v1-0 a0-0) #xabadbeef)
|
||||
(set! (-> v1-0 a0-0) (the-as uint #xabadbeef))
|
||||
)
|
||||
)
|
||||
(let ((v0-0 0))
|
||||
|
||||
@@ -100,7 +100,3 @@
|
||||
(defun get-aspect-ratio ()
|
||||
(-> *setting-control* current aspect-ratio)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol *generic-foreground-sinks*, type (array generic-dma-foreground-sink)
|
||||
(define
|
||||
*generic-foreground-sinks*
|
||||
(the-as (array generic-dma-foreground-sink)
|
||||
(new
|
||||
'static
|
||||
'boxed-array
|
||||
:type generic-dma-foreground-sink :length 0 :allocated-length 9
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *generic-foreground-sinks* 0)
|
||||
(the-as
|
||||
generic-dma-foreground-sink
|
||||
(-> *level* level0 foreground-sink-group 0 merc-sink)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *generic-foreground-sinks* 1)
|
||||
(the-as
|
||||
generic-dma-foreground-sink
|
||||
(-> *level* level0 foreground-sink-group 1 merc-sink)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *generic-foreground-sinks* 2)
|
||||
(the-as
|
||||
generic-dma-foreground-sink
|
||||
(-> *level* level1 foreground-sink-group 0 merc-sink)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *generic-foreground-sinks* 3)
|
||||
(the-as
|
||||
generic-dma-foreground-sink
|
||||
(-> *level* level1 foreground-sink-group 1 merc-sink)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *generic-foreground-sinks* 4)
|
||||
(the-as
|
||||
generic-dma-foreground-sink
|
||||
(-> *level* level-default foreground-sink-group 0 merc-sink)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *generic-foreground-sinks* 5)
|
||||
(the-as
|
||||
generic-dma-foreground-sink
|
||||
(-> *level* level-default foreground-sink-group 1 merc-sink)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *generic-foreground-sinks* 6)
|
||||
(new 'static 'generic-dma-foreground-sink :bucket 30)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *generic-foreground-sinks* 7)
|
||||
(the-as
|
||||
generic-dma-foreground-sink
|
||||
(-> *level* level0 foreground-sink-group 2 merc-sink)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *generic-foreground-sinks* 8)
|
||||
(the-as
|
||||
generic-dma-foreground-sink
|
||||
(-> *level* level1 foreground-sink-group 2 merc-sink)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function generic-dma-foreground-sink-init
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun generic-dma-foreground-sink-init ((arg0 generic-dma-foreground-sink))
|
||||
(set! (-> arg0 state gifbuf-adr) (the-as uint 837))
|
||||
(set! (-> arg0 state inbuf-adr) (the-as uint 9))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function generic-init-buffers
|
||||
(defun generic-init-buffers ()
|
||||
(vu-lights-default! *default-lights*)
|
||||
(let ((gp-0 #x10001c0)
|
||||
(s5-0 (the-as uint #x1010001c0))
|
||||
)
|
||||
(dotimes (s4-0 9)
|
||||
(let ((s1-0 (-> *generic-foreground-sinks* s4-0)))
|
||||
(when s1-0
|
||||
(let* ((s3-0 (-> s1-0 bucket))
|
||||
(s0-0
|
||||
(-> *display* frames (-> *display* on-screen) frame global-buf)
|
||||
)
|
||||
(s2-0 (-> s0-0 base))
|
||||
)
|
||||
(if (>= s4-0 7)
|
||||
(generic-init-buf s0-0 1 s5-0)
|
||||
(generic-init-buf s0-0 1 (the-as uint gp-0))
|
||||
)
|
||||
(generic-dma-foreground-sink-init s1-0)
|
||||
(let ((a3-0 (-> s0-0 base)))
|
||||
(let ((packet (the-as dma-packet (-> s0-0 base))))
|
||||
(set! (-> packet dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> packet vif0) (new 'static 'vif-tag))
|
||||
(set! (-> packet vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s0-0 base) (&+ (the-as pointer packet) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
||||
s3-0
|
||||
s2-0
|
||||
(the-as (pointer dma-tag) a3-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
;; definition for function generic-sink
|
||||
(defun generic-sink ((arg0 int))
|
||||
(-> *generic-foreground-sinks* arg0)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -410,7 +410,7 @@
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defun destroy-mem ((arg0 (pointer uint32)) (arg1 (pointer uint32)))
|
||||
(while (< (the-as int arg0) (the-as int arg1))
|
||||
(set! (-> arg0 0) #xffffffff)
|
||||
(set! (-> arg0 0) (the-as uint #xffffffff))
|
||||
(set! arg0 (&-> arg0 1))
|
||||
)
|
||||
(let ((v0-0 0))
|
||||
|
||||
@@ -160,7 +160,10 @@
|
||||
;; definition for method 5 of type type
|
||||
;; INFO: Return type mismatch uint vs int.
|
||||
(defmethod asize-of type ((obj type))
|
||||
(the-as int (logand #xfffffff0 (+ (* (-> obj allocated-length) 4) 43)))
|
||||
(the-as
|
||||
int
|
||||
(logand (the-as uint #xfffffff0) (+ (* (-> obj allocated-length) 4) 43))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function basic-type?
|
||||
|
||||
Reference in New Issue
Block a user