;; kernel-defs.gc ;; everything defined in the C Kernel / runtime ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; kscheme - InitHeapAndSymbol ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (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) ) (defenum language-enum :type int64 (english) (french) (german) (spanish) (italian) (japanese) (korean) (uk-english) ) (defenum runtime-exit-status :type uint32 (running) (restart-runtime) (exit) (restart-in-debug) ) ;; 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 *scratch-top* pointer) (define-extern zero-func (function int)) ;; InitHeapAndSymbol (define-extern _format (function _varargs_ object)) (define-extern method-set! (function type int object none)) ;; may actually return function. (define-extern kmemopen (function kheap string none)) (define-extern kmemclose (function none)) (define-extern *enable-method-set* int) (define-extern *listener-function* (function object)) (define-extern *debug-segment* symbol) (define-extern dgo-load (function string kheap link-flag int none)) (define-extern malloc (function symbol int pointer)) (define-extern loado (function string kheap object)) (define-extern link (function pointer pointer int kheap int pointer)) (declare-type cpad-info basic) (define-extern cpad-open (function cpad-info int cpad-info)) (define-extern cpad-get-data (function cpad-info cpad-info)) (declare-type mouse-info basic) (define-extern mouse-get-data (function mouse-info none)) (defconstant GAME_TERRITORY_SCEA 0) (defconstant GAME_TERRITORY_SCEE 1) (defconstant GAME_TERRITORY_SCEI 2) (defconstant GAME_TERRITORY_SCEK 3) (define-extern scf-get-territory (function int)) ;; not actually a scf function... (define-extern scf-get-volume "Defined in the kernel" (function int)) (define-extern scf-get-language "Defined in the kernel" (function language-enum)) (define-extern scf-get-aspect "Defined in the kernel" (function uint)) (define-extern scf-get-timeout (function int)) (define-extern scf-get-inactive-timeout (function int)) (define-extern kernel-shutdown (function runtime-exit-status none)) (define-extern *boot-video-mode* "Defined in the kernel" int) (define-extern *kernel-boot-message* symbol) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; PC Port functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defenum pc-renderer-tree-type (none 0) (tfrag3 1) (tie3 2) (invalid)) (defenum pc-collision-mode (none 0) (mode 1) (event 2) (material 3) (skip 4) (skiphide 5)) (defenum pc-gfx-hack (no-tex 0)) ;; TODO - make a common kernel-defs (define-extern __read-ee-timer (function uint)) (define-extern __mem-move (function pointer pointer uint none)) (define-extern __send-gfx-dma-chain (function object object none)) (define-extern __pc-texture-upload-now (function object object none)) (define-extern __pc-texture-relocate (function object object object none)) (define-extern __pc-get-mips2c (function string function)) (define-extern __pc-set-levels (function (pointer string) none)) (define-extern __pc-set-active-levels (function (pointer string) none)) (define-extern __pc-get-tex-remap (function int int int)) ;; Input Related Functions ;; TODO - add get current controller index (define-extern pc-get-controller-count (function int)) (define-extern pc-get-controller-name (function int string string)) (deftype bind-assignment-info (structure) ((port int32) (device-type int32) (for-buttons? symbol) (input-idx int32) (analog-min-range? symbol))) (define-extern pc-get-current-bind (function bind-assignment-info string symbol)) (define-extern pc-waiting-for-bind? (function symbol)) (define-extern pc-set-waiting-for-bind! (function int symbol symbol int none)) (define-extern pc-stop-waiting-for-bind! (function none)) (define-extern pc-get-controller-index (function int int)) (define-extern pc-set-controller! (function int int none)) (define-extern pc-get-keyboard-enabled? (function symbol)) (define-extern pc-set-keyboard-enabled! (function symbol none)) (define-extern pc-set-mouse-options! (function symbol symbol symbol none)) (define-extern pc-set-mouse-camera-sens! (function float float none)) (define-extern pc-current-controller-has-led? (function symbol)) (define-extern pc-current-controller-has-rumble? (function symbol)) (define-extern pc-set-controller-led! (function int int int int none)) (define-extern pc-ignore-background-controller-events! (function symbol none)) (define-extern pc-reset-bindings-to-defaults! (function int int none)) (define-extern pc-set-auto-hide-cursor! (function symbol none)) ;; Display Related Functions (define-extern pc-get-display-mode (function symbol)) (define-extern pc-get-active-display-size (function (pointer int64) (pointer int64) none)) (define-extern pc-get-active-display-refresh-rate (function int)) (define-extern pc-get-display-count (function int)) (define-extern pc-get-display-name (function int string symbol)) (define-extern pc-get-os (function symbol)) (define-extern pc-get-window-size (function (pointer int64) (pointer int64) none)) (define-extern pc-get-window-scale (function (pointer float) (pointer float) none)) (define-extern pc-set-window-size! (function int int none)) (define-extern pc-get-display-id (function int)) (define-extern pc-set-display-id! (function int none)) (define-extern pc-set-display-mode! (function symbol none)) (define-extern pc-get-num-resolutions (function int)) (define-extern pc-get-resolution (function int (pointer int64) (pointer int64) none)) (define-extern pc-is-supported-resolution? (function int int symbol)) (define-extern pc-set-frame-rate (function int none)) (define-extern pc-set-vsync (function symbol none)) (define-extern pc-renderer-tree-set-lod (function pc-renderer-tree-type int none)) (define-extern pc-set-letterbox (function int int none)) (define-extern pc-set-collision (function symbol none)) (define-extern pc-set-collision-wireframe (function symbol none)) (define-extern pc-get-collision-mask (function pc-collision-mode int symbol)) (define-extern pc-set-collision-mask (function pc-collision-mode int symbol none)) (define-extern pc-set-collision-mode (function pc-collision-mode none)) (declare-type discord-info structure) (define-extern pc-discord-rpc-update (function discord-info none)) (define-extern pc-discord-rpc-set (function int none)) (define-extern pc-init-autosplitter-struct (function none)) (define-extern pc-filepath-exists? (function string symbol)) (define-extern pc-mkdir-file-path (function string none)) (define-extern pc-sound-set-flava-hack (function int none)) (define-extern pc-sound-set-fade-hack (function int none)) (define-extern pc-set-window-lock (function symbol none)) (define-extern pc-set-game-resolution (function int int none)) (define-extern pc-set-msaa (function int none)) (define-extern pc-set-gfx-hack (function pc-gfx-hack symbol none)) (define-extern pc-get-unix-timestamp (function int)) (define-extern pc-filter-debug-string? (function string float symbol)) (define-extern pc-screen-shot (function none)) (declare-type screen-shot-settings structure) (define-extern pc-register-screen-shot-settings (function screen-shot-settings none)) (define-extern pc-treat-pad0-as-pad1 (function symbol none)) (define-extern pc-is-imgui-visible? (function symbol)) (define-extern pc-rand (function int)) (define-extern pc-encode-utf8-string (function string string none)) ;; Jak 2 Specific Kernel Definitions (define *pc-waiting-on-rpc?* symbol) (define *pc-rpc-error?* symbol) (define-extern pc-get-last-rpc-error (function string none)) (define-extern pc-fetch-external-race-times (function string none)) (define-extern pc-fetch-external-speedrun-times (function string none)) (define-extern pc-fetch-external-highscores (function string none)) (define-extern pc-get-external-race-time (function string int string (pointer float) none)) ;; returns the score and the name in the given string ptr (define-extern pc-get-external-speedrun-time (function string int string (pointer float) none)) ;; returns the score and the name in the given string ptr (define-extern pc-get-external-highscore (function string int string (pointer float) none)) ;; returns the score and the name in the given string ptr (define-extern pc-get-num-external-race-times (function string int)) (define-extern pc-get-num-external-speedrun-times (function string int)) (define-extern pc-get-num-external-highscores (function string int)) ;; Speedrunner Mode Stuff (define-extern pc-sr-mode-get-practice-entries-amount (function int)) (define-extern pc-sr-mode-get-practice-entry-name (function int string none)) (define-extern pc-sr-mode-get-practice-entry-continue-point (function int string none)) (define-extern pc-sr-mode-get-practice-entry-history-success (function int int)) (define-extern pc-sr-mode-get-practice-entry-history-attempts (function int int)) (define-extern pc-sr-mode-get-practice-entry-session-success (function int int)) (define-extern pc-sr-mode-get-practice-entry-session-attempts (function int int)) (define-extern pc-sr-mode-get-practice-entry-avg-time (function int string none)) (define-extern pc-sr-mode-get-practice-entry-fastest-time (function int string none)) (define-extern pc-sr-mode-record-practice-entry-attempt! (function int symbol (pointer float) symbol)) (declare-type speedrun-practice-objective structure) (define-extern pc-sr-mode-init-practice-info! (function int speedrun-practice-objective none)) ;; TODO - a menu to dump out the 3 numbers with a pre-generated name to the file (define-extern pc-sr-mode-get-custom-category-amount (function int)) (define-extern pc-sr-mode-get-custom-category-name (function int string none)) (define-extern pc-sr-mode-get-custom-category-continue-point (function int string none)) (declare-type speedrun-custom-category structure) (define-extern pc-sr-mode-init-custom-category-info! (function int speedrun-custom-category none)) (define-extern pc-sr-mode-dump-new-custom-category (function speedrun-custom-category none)) (define-extern file-stream-open (function file-stream string symbol file-stream)) (define-extern file-stream-close (function file-stream file-stream)) (define-extern file-stream-length (function file-stream int)) (define-extern file-stream-seek (function file-stream int int int)) (define-extern file-stream-read (function file-stream pointer int int)) (define-extern file-stream-write (function file-stream pointer uint uint)) (define-extern reset-path (function none)) (define-extern install-handler (function int function int)) (define-extern flush-cache (function int none)) (define-extern gs-store-image (function object object object)) (define-extern sync-path (function int int int)) (define-extern kmalloc (function kheap int kmalloc-flags string pointer)) (define-extern *kernel-boot-message* symbol) (define-extern *user* symbol) (define-extern new-dynamic-structure (function symbol type int structure)) (define-extern rpc-busy? (function int uint)) (define-extern rpc-call (function int uint uint uint int uint int uint)) (define-extern string->symbol (function string symbol)) (define-extern pc-get-unix-timestamp (function int)) (define-extern link-begin (function pointer (pointer uint8) int kheap link-flag int)) (define-extern link-reset (function none)) (define-extern kset-language (function language-enum int)) (define-extern syncv (function int int)) (define-extern put-display-env (function object none)) ;; +++memcard-h:mc-status-code (defenum mc-status-code :type uint32 (busy 0) (ok 1) (bad-handle 2) (format-failed 3) (internal-error 4) (write-error 5) (read-error 6) (new-game 7) (no-memory 8) (no-card 9) (no-last 10) (no-format 11) (no-file 12) (no-save 13) (no-space 14) (bad-version 15) (no-process 16) (no-auto-save 17) ) ;; ---memcard-h:mc-status-code (define-extern mc-run (function none)) (define-extern mc-format (function int mc-status-code)) (define-extern mc-unformat (function int mc-status-code)) (define-extern mc-create-file (function int uint mc-status-code)) (define-extern mc-save (function int int pointer int mc-status-code)) (define-extern mc-load (function int int pointer mc-status-code)) (declare-type mc-slot-info structure) (define-extern mc-sync (function int)) (define-extern mc-get-slot-info (function int mc-slot-info none)) (define-extern mc-check-result (function mc-status-code)) ;; mc-makefile (define-extern __pc-get-mips2c (function string function)) (define-extern dma-sync (function pointer int int int)) (define-extern __pc-texture-upload-now (function object object none)) (define-extern __pc-texture-relocate (function object object object none)) (define-extern link-resume (function int)) (define-extern unload (function string none)) (define-extern reset-graph (function int int int int none)) ;; PC stuff (defenum pc-prof-event (begin 0) (end 1) (instant 2) ) (define-extern pc-prof (function string pc-prof-event none)) (define-extern *pc-settings-folder* string) (define-extern *pc-settings-built-sha* string) (define-extern alloc-vagdir-names (function symbol (pointer uint64)))