Types
hud-battle-enemy: hudsource
Fields
type: type
name: basic
mask: process-mask
parent: pointer
brother: pointer
child: pointer
ppointer: pointer
self: process-tree
pool: dead-pool
status: basic
pid: int32
main-thread: cpu-thread
top-thread: thread
entity: entity-actor
state: state
trans-hook: function
post-hook: function
event-hook: function
allocated-length: int32
next-state: state
heap-base: pointer
heap-top: pointer
heap-cur: pointer
stack-frame-top: stack-frame
connection-list: connectable
stack: uint8
value: int32
value2: int32
target-value: int32
last-increment-time: time-frame
last-target-equal-time: time-frame
offset: int32
y-offset: int32
next-y-offset: int32
x-sgn: int32
y-sgn: int32
text-x: int32
text-y: int32
friend: int32
first-init: symbol
increment-on-event: symbol
skip-particle: int32
disable: symbol
force-on-screen: symbol
deactivate-when-hidden: symbol
trigger-time: time-frame
last-hide-time: time-frame
nb-of-icons: int32
icons: hud-icon
max-nb-of-particles: int32
nb-of-particles: int32
particles: hud-particle
want-skel: symbol
want-skel2: symbol
last-battle: handle
battle-entity: entity-actor
battle-max: int32
battle-alive: int32
battle-mode: symbol
last-task: entity-actor
task-entity: entity-actor
task-track: int32
task2-entity: entity-actor
task2-time: time-frame
task2-track: int32
last-level: symbol
ready?: symbol
kicked: symbol
display-mode?: symbol
Methods
make-enemy-icon(obj: hud-battle-enemy, idx: int, skel-sym: symbol, enemy-ent: entity) => intsource
make a new icon for the hud
kill-icon(obj: hud-battle-enemy, idx: int) => intsource
kill a hud icon
kill-all-icons(obj: hud-battle-enemy) => intsource
kill all hud icons
update-display-status(obj: hud-battle-enemy, skel: symbol, ent: entity, icon-idx: int, trigger-force: symbol) => intsource
logic for displaying or hiding the hud, and drawing the icons.
hud-pc: hudsource
Fields
type: type
name: basic
mask: process-mask
parent: pointer
brother: pointer
child: pointer
ppointer: pointer
self: process-tree
pool: dead-pool
status: basic
pid: int32
main-thread: cpu-thread
top-thread: thread
entity: entity-actor
state: state
trans-hook: function
post-hook: function
event-hook: function
allocated-length: int32
next-state: state
heap-base: pointer
heap-top: pointer
heap-cur: pointer
stack-frame-top: stack-frame
connection-list: connectable
stack: uint8
value: int32
value2: int32
target-value: int32
last-increment-time: time-frame
last-target-equal-time: time-frame
offset: int32
y-offset: int32
next-y-offset: int32
x-sgn: int32
y-sgn: int32
text-x: int32
text-y: int32
friend: int32
first-init: symbol
increment-on-event: symbol
skip-particle: int32
disable: symbol
force-on-screen: symbol
deactivate-when-hidden: symbol
trigger-time: time-frame
last-hide-time: time-frame
nb-of-icons: int32
icons: hud-icon
max-nb-of-particles: int32
nb-of-particles: int32
particles: hud-particle
Functions
activate-hud-pc(tree: process-tree) => intsource
make the pc hud
deactivate-hud-pc() => intsource
kill the pc hud
dma-add-process-drawable-hud-with-hud-lights(proc: process-drawable, draw: draw-control, arg2: symbol, buf: dma-buffer) => nonesource
dma-add-process-drawable-hud-with-lights(proc: process-drawable, draw: draw-control, arg2: symbol, buf: dma-buffer) => nonesource
Variables
HUD_ICON_COUNT: unknownsource
HUD_PART_PC_AMOUNT: unknownsource
Types
entity-debug-inspect: basicsource
Fields
type: type
scroll-y: int16
scroll-y-max: int16
entity: entity
show-actor-info: symbol
Methods
set-entity!(obj: entity-debug-inspect, e: entity) => entitysource
set the entity to inspect
update-pad(obj: entity-debug-inspect, pad-idx: int) => nonesource
respond to pad inputs
Functions
file-stream-read-float(file: file-stream) => floatsource
file-stream-read-int(file: file-stream) => intsource
file-stream-read-symbol(file: file-stream) => symbolsource
file-stream-read-word(file: file-stream) => stringsource
file-stream-seek-past-whitespace(file: file-stream) => intsource
find-flava-log(music: symbol, flava-idx: int) => symbolsource
return #t if the given music's flava is logged into the *pc-settings*, #f otherwise.
find-music-log(music: symbol) => symbolsource
return #t if the given music is logged into the *pc-settings*, #f otherwise.
print-music-log(out: object) => intsource
Variables
*collision-mode*: pc-collision-modesource
*collision-renderer*: symbolsource
*collision-wireframe*: symbolsource
*pc-cheat-temp*: pointersource
Types
pc-bingo-info: structuresource
pc-game-secrets: structuresource
Fields
art: pc-jak1-concept-art
music: pc-music-log-entry
hard-fish-hiscore: int32
hard-rats?: symbol
hard-rats-hiscore: int32
hard-rats-hiwave: int32
hero-mode?: symbol
hud-map?: symbol
hud-counters?: symbol
hud-watch?: symbol
watch-12hr?: symbol
pc-settings: basicsource
Fields
type: type
version: pckernel-version
target-fps: int16
width: int32
height: int32
win-width: int32
win-height: int32
real-width: int32
real-height: int32
lbox-width: int32
lbox-height: int32
dpi-x: float
dpi-y: float
aspect-ratio-auto?: symbol
aspect-ratio: float
aspect-ratio-scale: float
aspect-ratio-reciprocal: float
aspect-custom-x: int
aspect-custom-y: int
display-mode: symbol
letterbox?: symbol
vsync?: symbol
font-scale: float
monitor: int32
os: symbol
user: symbol
debug?: symbol
movie?: symbol
ignore-controller-win-unfocused?: symbol
controller-hp-led?: symbol
controller-eco-led?: symbol
stick-deadzone: float
keyboard-enabled?: symbol
mouse-enabled?: symbol
mouse-camera?: symbol
mouse-xsens: float
mouse-ysens: float
mouse-movement?: symbol
auto-hide-cursor?: symbol
audio-latency-ms: int16
audio-pan-override: float
audio-volume-override: float
audio-channel-nb: int16
gfx-renderer: pc-gfx-renderer
gfx-resolution: float
gfx-anisotropy: float
gfx-msaa: int32
ps2-read-speed?: symbol
ps2-parts?: symbol
ps2-music?: symbol
ps2-se?: symbol
ps2-hints?: symbol
ps2-lod-dist?: symbol
force-envmap?: symbol
shrub-dist-mod: float
lod-dist-mod: float
lod-force-tfrag: int8
lod-force-tie: int8
lod-force-ocean: int8
lod-force-actor: int8
force-actors?: symbol
use-vis?: symbol
hinttitles?: symbol
text-language: pc-subtitle-lang
subtitle-speaker?: symbol
first-camera-h-inverted?: symbol
first-camera-v-inverted?: symbol
third-camera-h-inverted?: symbol
third-camera-v-inverted?: symbol
music-fadeout?: symbol
music-fadein?: symbol
bingo: pc-bingo-info
secrets: pc-game-secrets
scenes-seen: uint8
discord-rpc?: symbol
speedrunner-mode?: symbol
cheats: pc-cheats
cheats-known: pc-cheats
flava-hack: int64
Methods
set-defaults!(obj: pc-settings) => nonesource
Set default settings for the object that aren't handled by the file reading,
this is intended to be called upon object creation.
This is to avoid propagating events to the runtime informing it needs to make changes on startup
when there really is no changes to be made. ie. changing the window size multiple times when ultimately
the true value is within the file that we are about to read.
TODO - it would probably be a lot cleaner to have one struct for the file, and another for settings that
are manipulated at runtime so there is a clear separation of responsibilities
this is intended to be called upon object creation.
This is to avoid propagating events to the runtime informing it needs to make changes on startup
when there really is no changes to be made. ie. changing the window size multiple times when ultimately
the true value is within the file that we are about to read.
TODO - it would probably be a lot cleaner to have one struct for the file, and another for settings that
are manipulated at runtime so there is a clear separation of responsibilities
set-defaults-input!(obj: pc-settings) => nonesource
Set default general input settings
set-defaults-controller!(obj: pc-settings) => nonesource
Set default controller settings
set-defaults-mouse!(obj: pc-settings) => nonesource
Set default mouse settings
update(obj: pc-settings) => nonesource
Update settings to/from PC kernel. Call this at the start of every frame.
This will update things like the aspect-ratio, which will be used for graphics code later.
This will update things like the aspect-ratio, which will be used for graphics code later.
update-from-os(obj: pc-settings) => nonesource
Update settings from the C kernel to GOAL.
update-to-os(obj: pc-settings) => nonesource
Update settings from GOAL to the C kernel.
update-discord-rpc(obj: pc-settings-jak1) => nonesource
update discord rpc module
update-speedrun(obj: pc-settings-jak1) => nonesource
update speedrun module
update-video-hacks(obj: pc-settings-jak1) => objectsource
update the graphics hacks used for sprites and other things. ugh.
reset(obj: pc-settings) => nonesource
Reset back to default settings
reset-audio(obj: pc-settings) => nonesource
Set the default audio settings
reset-input(obj: pc-settings, device: symbol) => nonesource
Set the default input settings
reset-gfx(obj: pc-settings) => nonesource
Set the default graphics settings
reset-ps2(obj: pc-settings) => nonesource
Set the default ps2 settings
reset-misc(obj: pc-settings) => nonesource
Set the default misc settings
reset-original-camera(obj: pc-settings) => nonesource
Set the original game's camera controls
reset-extra(obj: pc-settings) => nonesource
Set the default goodies settings
print-debug-misc(obj: pc-settings-jak1) => objectsource
prints various miscellaneous debug text to the game console, according to what's enabled in this object.
draw(obj: pc-settings, buf: dma-buffer) => objectsource
debug draw some things on-screen
draw-memory(obj: pc-settings, buf: dma-buffer) => symbolsource
draw the memory heap status in the bottom right corner
set-display-mode!(obj: pc-settings, mode: symbol) => intsource
sets the game's display mode
set-size!(obj: pc-settings, width: int, height: int) => nonesource
sets the size of the display window
set-aspect!(obj: pc-settings, aw: int, ah: int) => nonesource
set the aspect ratio used for rendering. this forces native widescreen and takes width and height ratios.
set-aspect-ratio!(obj: pc-settings, aspect: float) => nonesource
set the aspect ratio used for rendering.
set-frame-rate!(obj: pc-settings, rate: int) => intsource
set the target framerate.
set-monitor!(obj: pc-settings, monitor: int) => nonesource
set the monitor to use when in fullscreen/borderless
set-game-setting!(obj: pc-settings-jak1, setting: symbol, value: symbol) => objectsource
get-game-setting(obj: pc-settings-jak1, setting: symbol) => symbolsource
set-game-language!(obj: pc-settings-jak1, lang: language-enum) => language-enumsource
get-game-language(obj: pc-settings-jak1) => language-enumsource
get-current-game-width(obj: pc-settings) => intsource
return the current width in pixels of the visible portion of the game
get-current-game-height(obj: pc-settings) => intsource
return the current height in pixels of the visible portion of the game
read-from-file(obj: pc-settings, filename: string) => symbolsource
read settings from a file
write-to-file(obj: pc-settings, filename: string) => symbolsource
write settings to a file
handle-input-settings(obj: pc-settings, file: file-stream) => objectsource
handle the text parsing input for the 'settings' group
handle-output-settings(obj: pc-settings, file: file-stream) => objectsource
handle the text writing output for the 'settings' group
update-cheats(obj: pc-settings) => intsource
run cheats.
update-music-log(obj: pc-settings) => intsource
update music log settings.
add-to-music-log(obj: pc-settings, music: symbol, flava: int) => intsource
add music and flava information to the music log.
if music already exists, adds flava. if flava already exists, nothing happens.
if music already exists, adds flava. if flava already exists, nothing happens.
commit-to-file(obj: pc-settings) => nonesource
commits the current settings to the file
load-settings(obj: pc-settings) => intsource
load
set-ignore-controller-in-bg!(obj: pc-settings, val: symbol) => nonesource
sets whether or not to ignore controller inputs if the window is in the background
set-enable-keyboard!(obj: pc-settings, val: symbol) => nonesource
sets whether to ignore keyboard input events
update-mouse-controls!(obj: pc-settings) => nonesource
Uses whatever is set on the pc-settings to update the runtime on how it should interpret mouse events
pckernel-version: int64source
Variables
*display-actor-bank*: symbolsource
*display-actor-counts*: symbolsource
*display-heap-status*: symbolsource
*display-pad-debug*: symbolsource
*display-sha*: symbolsource
*display-text-box*: symbolsource
*pc-temp-string-1*: stringsource
*pc-temp-string*: stringsource
ASPECT_16X9: unknownsource
ASPECT_16X9_SCALE: unknownsource
ASPECT_4X3: unknownsource
PC_BASE_HEIGHT: unknownsource
PC_BASE_WIDTH: unknownsource
PC_CHEAT_MAX: unknownsource
PC_KERNEL_INVALID_VERSION: unknownsource
PC_KERNEL_VER_BUILD: unknownsource
PC_KERNEL_VER_MAJOR: unknownsource
PC_KERNEL_VER_MINOR: unknownsource
PC_KERNEL_VER_REVISION: unknownsource
PC_KERNEL_VERSION: unknownsource
PC_MIN_HEIGHT: unknownsource
PC_MIN_WIDTH: unknownsource
PC_MUSIC_LOG_LENGTH: unknownsource
PC_SPOOL_LOG_LENGTH: unknownsource
PC_TEMP_STRING_LEN: unknownsource
PC_VOICE_AMOUNT: unknownsource
PS2_VOICE_AMOUNT: unknownsource
Types
discord-info: structuresource
Fields
fuel: pointer
money-total: pointer
buzzer-total: pointer
deaths: pointer
status: string
level: string
cutscene?: symbol
ogreboss?: symbol
plant-boss?: symbol
racer?: symbol
flutflut?: symbol
time-of-day: pointer
pc-settings-jak1: pc-settingssource
Fields
type: type
version: pckernel-version
target-fps: int16
width: int32
height: int32
win-width: int32
win-height: int32
real-width: int32
real-height: int32
lbox-width: int32
lbox-height: int32
dpi-x: float
dpi-y: float
aspect-ratio-auto?: symbol
aspect-ratio: float
aspect-ratio-scale: float
aspect-ratio-reciprocal: float
aspect-custom-x: int
aspect-custom-y: int
display-mode: symbol
letterbox?: symbol
vsync?: symbol
font-scale: float
monitor: int32
os: symbol
user: symbol
debug?: symbol
movie?: symbol
ignore-controller-win-unfocused?: symbol
controller-hp-led?: symbol
controller-eco-led?: symbol
stick-deadzone: float
keyboard-enabled?: symbol
mouse-enabled?: symbol
mouse-camera?: symbol
mouse-xsens: float
mouse-ysens: float
mouse-movement?: symbol
auto-hide-cursor?: symbol
audio-latency-ms: int16
audio-pan-override: float
audio-volume-override: float
audio-channel-nb: int16
gfx-renderer: pc-gfx-renderer
gfx-resolution: float
gfx-anisotropy: float
gfx-msaa: int32
ps2-read-speed?: symbol
ps2-parts?: symbol
ps2-music?: symbol
ps2-se?: symbol
ps2-hints?: symbol
ps2-lod-dist?: symbol
force-envmap?: symbol
shrub-dist-mod: float
lod-dist-mod: float
lod-force-tfrag: int8
lod-force-tie: int8
lod-force-ocean: int8
lod-force-actor: int8
force-actors?: symbol
use-vis?: symbol
hinttitles?: symbol
text-language: pc-subtitle-lang
subtitle-speaker?: symbol
first-camera-h-inverted?: symbol
first-camera-v-inverted?: symbol
third-camera-h-inverted?: symbol
third-camera-v-inverted?: symbol
music-fadeout?: symbol
music-fadein?: symbol
bingo: pc-bingo-info
secrets: pc-game-secrets
scenes-seen: uint8
discord-rpc?: symbol
speedrunner-mode?: symbol
cheats: pc-cheats
cheats-known: pc-cheats
flava-hack: int64
skip-movies?: symbol
subtitles?: symbol
subtitle-language: pc-subtitle-lang
money-starburst?: symbol
extra-hud?: symbol
Functions
set-reactive-controller-led!(current-hp: float, eco-level: float, eco-kind: int) => nonesource
Variables
*display-bug-report*: symbolsource
*fallback-text-lookup?*: symbolsource
*mood-override-debug*: symbolsource
*mood-override-table*: pointersource
PC_KERNEL_VERSION: unknownsource
Functions
draw-build-revision() => pointersource
Variables
Types
progress-carousell-state: structuresource
Fields
int-backup: int
symbol-backup: symbol
subtitle-backup: pc-subtitle-lang
aspect-native-choice: symbol
current-carousell: array
selection: int
direction: symbol
transition: symbol
x-offset: int32
progress-scroll: structuresource
Fields
transition: float
start-index: int16
real-index: int16
direction: int8
last-screen: progress-screen
Functions
build-binding-reassignment-options(screen: progress-screen) => arraysource
Dynamically creates menu options for reassigning bindings for controllers/mice/keyboard
build-controller-options() => arraysource
Dynamically creates menu options for selecting your controller.
Will attempt to use the name of the controller, but will fallback to a generic number otherwise
Will attempt to use the name of the controller, but will fallback to a generic number otherwise
build-flava-player-options(mus-idx: int) => arraysource
build-monitor-options() => arraysource
build-resolution-options() => intsource
draw-memcard-auto-save-disabled(obj: progress, arg0: font-context) => intsource
draw-memcard-disable-auto-save(obj: progress, arg0: font-context) => intsource
draw-memcard-speedrun-options(obj: progress, arg0: font-context) => intsource
get-language-name(lang: pc-subtitle-lang) => text-idsource
get the text-id from a lang
init-game-options(obj: progress) => nonesource
Set the options for all of the menus.
print-string-in-carousell(arg0: text-id, arg1: font-context, arg2: int, arg3: symbol) => font-contextsource
progress-draw-carousell-from-string-list(options: array, font: font-context, y-off: int, new-val: int) => font-contextsource
yep.
progress-fast-save-and-start-speedrun(category: speedrun-category) => nonesource
saves to first slot, updates last-slot-saved for cursor, then starts speedrun
Variables
*analog-bind-names*: arraysource
*aspect-ratio-options*: arraysource
*button-bind-names*: arraysource
*camera-options*: arraysource
*carousell-frame-rate*: arraysource
*controller-options*: arraysource
*game-options-pc*: arraysource
*gfx-ps2-options*: arraysource
*graphic-options-pc*: arraysource
*input-options*: arraysource
*main-options-pc*: arraysource
*main-options-secrets*: arraysource
*misc-options*: arraysource
*mouse-options*: arraysource
*music-list*: pairsource
*music-player-options*: arraysource
*progress-scroll-end*: unknownsource
*progress-scroll-start*: unknownsource
*quit-to-title*: symbolsource
*secrets-title*: arraysource
*sound-options-pc*: arraysource
*speedrun-il-options*: arraysource
*speedrun-options*: arraysource
*subtitle-languages*: arraysource
*temp-options*: arraysource
*text-languages*: arraysource
*title-pc*: arraysource
GAME_MIN_RES_MULT: unknownsource
PROGRESS_PC_PAGE_HEIGHT: unknownsource
PROGRESS_SCROLL_DIR_DOWN: unknownsource
PROGRESS_SCROLL_DIR_UP: unknownsource
Types
subtitle: processsource
Fields
type: type
name: basic
mask: process-mask
parent: pointer
brother: pointer
child: pointer
ppointer: pointer
self: process-tree
pool: dead-pool
status: basic
pid: int32
main-thread: cpu-thread
top-thread: thread
entity: entity-actor
state: state
trans-hook: function
post-hook: function
event-hook: function
allocated-length: int32
next-state: state
heap-base: pointer
heap-top: pointer
heap-cur: pointer
stack-frame-top: stack-frame
connection-list: connectable
stack: uint8
font: font-context
bank-backup: subtitle-bank
state-time: time-frame
notice-id: text-id
spool-name: string
old-spool-name: string
text-id: text-id
cur-channel: pc-subtitle-channel
debug-lines?: symbol
checking-lines?: symbol
current-debug-scene: int16
current-debug-line: int16
want-subtitle: subtitle-keyframe
hint-subtitle?: symbol
Methods
subtitle-format(obj: subtitle, keyframe: subtitle-keyframe) => stringsource
check settings and format subtitle accordingly.
States
subtitle-debug: TODO
subtitle-debug-checking-lines: TODO
subtitle-bank: structuresource
subtitle-keyframe: structuresource
subtitle-text: structuresource
Fields
kind: pc-subtitle-channel
length: int16
keyframes: inline-array
name: string
id: text-id
hash: uint64
subtitle-text-info: basicsource
Fields
type: type
length: int32
lang: pc-subtitle-lang
dummy: int32
data: subtitle-text
Methods
get-scene-by-name(obj: subtitle-text-info, kind: pc-subtitle-channel, name: string) => subtitle-textsource
get a subtitle scene info with the corresponding name. #f = none found
get-scene-by-text-id(obj: subtitle-text-info, kind: pc-subtitle-channel, id: text-id) => subtitle-textsource
get a subtitle scene info with the corresponding name. #f = none found
Functions
draw-subtitle() => nonesource
load-level-subtitle-files(idx: int) => nonesource
Load the subtitle files needed for level idx.
This function made more sense back when text files were split up, but in the end they put everything
in a single text group and file.
This function made more sense back when text files were split up, but in the end they put everything
in a single text group and file.
load-subtitle-text-info(txt-name: string, curr-text: symbol, heap: kheap) => intsource
load a subtitles text file onto a heap.
txt-name = language-agnostic file name
curr-text = a symbol to a subtitle-text-info to link the file to
heap = the text heap to load the file onto
txt-name = language-agnostic file name
curr-text = a symbol to a subtitle-text-info to link the file to
heap = the text heap to load the file onto
print-game-subtitle(str: string, font-ctxt: font-context, opaque: symbol, alpha: int, line-height: int) => floatsource
Print text. Not worth commenting until we get stack variables in lets, I think
subtitle-init-by-other() => objectsource
subtitle-start() => pointersource
start the subtitle process
subtitle-stop() => pointersource
kill the subtitle process