[jak2] goalc supports multiple projects (#1619)

* [jak2] goalc supports multiple projects

* disable deci2 server if not debugging
This commit is contained in:
water111
2022-07-06 21:18:08 -04:00
committed by GitHub
parent 8a18072d97
commit 28a2ecdfd3
29 changed files with 239 additions and 81 deletions
+13 -22
View File
@@ -1,13 +1,5 @@
;;-*-Lisp-*-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; OTHER STUFF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; tell compiler about stuff defined/implemented in the runtime.
(asm-file "goal_src/jak1/kernel-defs.gc")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BUILD SYSTEM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -38,10 +30,6 @@
`(asm-file ,file :no-code)
)
(defmacro load-art-import (name)
`(asm-file ,(string-append "goal_src/jak1/import/" (symbol->string name) "-ag.gc") :no-code :no-throw))
(defmacro load-imports ()
`(begin
,@(apply run-frontend-command all-import-files)
@@ -1044,14 +1032,17 @@
`(defconstant ,name (-> self draw art-group data ,idx))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Load Project
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; build system stuff
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; hack to get a goos variable in goal
(defmacro __get_jak1_full_game () *jak1-full-game*)
(defconstant *jak1-full-game* (__get_jak1_full_game))
;; todo: loading jak1 by default
(load-project "goal_src/jak1/game.gp")
(#cond
((eq? GAME_VERSION 'jak1)
(asm-file "goal_src/jak1/compiler-setup.gc")
(seval (fmt #t "Jak 1 Mode\n"))
)
((eq? GAME_VERSION 'jak2)
(asm-file "goal_src/jak2/compiler-setup.gc")
(seval (fmt #t "Jak 2 Mode\n"))
)
)
+18
View File
@@ -0,0 +1,18 @@
;;
;; Compiler Setup for Jak 1
;;
;; load kernel type definitions.
;; these types/functions are provided by Jak 1's runtime.
(asm-file "goal_src/jak1/kernel-defs.gc")
;; load jak 1 project
(load-project "goal_src/jak1/game.gp")
;; jak 1 - specific library stuff.
(defmacro __get_jak1_full_game () *jak1-full-game*)
(defconstant *jak1-full-game* (__get_jak1_full_game))
(defmacro load-art-import (name)
`(asm-file ,(string-append "goal_src/jak1/import/" (symbol->string name) "-ag.gc") :no-code :no-throw))
+9 -9
View File
@@ -75,15 +75,15 @@
)
(defenum link-flag
:bitfield #t
:type int32
(output-load-msg 0)
(output-load-true-msg 1)
(execute-login 2)
(print-login 3)
(force-debug 4)
(fast-link 5)
)
:bitfield #t
:type int32
(output-load-msg 0)
(output-load-true-msg 1)
(execute-login 2)
(print-login 3)
(force-debug 4)
(fast-link 5)
)
(define-extern string->symbol (function string symbol))
+10
View File
@@ -0,0 +1,10 @@
;;
;; Compiler Setup for Jak 2
;;
;; load kernel type definitions.
;; these types/functions are provided by Jak 2's runtime.
(asm-file "goal_src/jak2/kernel-defs.gc")
;; load jak 1 project
(load-project "goal_src/jak2/game.gp")
View File
+77
View File
@@ -0,0 +1,77 @@
;; kernel-defs.gc
;; everything defined in the C Kernel / runtime
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; kscheme - InitHeapAndSymbol
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; fixed symbols
(define-extern #f symbol)
(define-extern #t symbol)
(define-extern function type)
(define-extern basic type)
(define-extern string type)
(define-extern symbol type)
(define-extern type type)
(define-extern object type)
(define-extern link-block type)
(define-extern integer type)
(define-extern sinteger type)
(define-extern uinteger type)
(define-extern binteger type)
(define-extern int8 type)
(define-extern int16 type)
(define-extern int32 type)
(define-extern int64 type)
(define-extern int128 type)
(define-extern uint8 type)
(define-extern uint16 type)
(define-extern uint32 type)
(define-extern uint64 type)
(define-extern uint128 type)
(define-extern float type)
(define-extern process-tree type)
(define-extern process type)
(define-extern thread type)
(define-extern structure type)
(define-extern pair type)
(define-extern pointer type)
(define-extern number type)
(define-extern array type)
(define-extern vu-function type)
(define-extern connectable type)
(define-extern stack-frame type)
(define-extern file-stream type)
(define-extern kheap type)
(define-extern nothing (function none))
(define-extern delete-basic (function basic none))
(define-extern static symbol)
(define-extern global kheap)
(define-extern debug kheap)
(define-extern loading-level kheap) ;; not a kheap at boot
(define-extern loading-package kheap) ;; not a kheap at boot
(define-extern process-level-heap kheap) ;; not a kheap at boot
(define-extern stack symbol)
(define-extern scratch symbol)
(define-extern *stratch-top* pointer)
(define-extern zero-func (function int))
(defenum kmalloc-flags
:bitfield #t
(align-16 4)
(align-64 6)
(align-256 8)
(memset 12)
(top 13)
)
(defenum link-flag
:bitfield #t
:type int32
(output-load-msg 0)
(output-load-true-msg 1)
(execute-login 2)
(print-login 3)
(force-debug 4)
(fast-link 5)
)